A betterC modular standard library?

Ilya Yaroshenko via Digitalmars-d digitalmars-d at puremagic.com
Tue Dec 20 04:30:03 PST 2016


On Tuesday, 20 December 2016 at 12:00:43 UTC, Walter Bright wrote:
> On 12/18/2016 1:02 PM, Ilya Yaroshenko wrote:
>> I need to understand how it is can be done because I did not 
>> find a valid solution.
>>
>> mir-cpuid has global symbols, they are accessed using 
>> extern(C) API. If multiple
>> libraries trying to initialize it than it will be initialized 
>> only once.
>>
>> extern C API does not solve a problem with DRuntime because 
>> current DRuntime is
>> not a betterC library and it is huge. A huge betterC library 
>> is a problem too
>> because it is less portable.
>
> cpuid can be written in a manner that it is self-contained. If 
> so, it doesn't matter how large druntime is, as it won't have 
> references to any of the rest of it and so the rest won't be 
> pulled in by the linker.

This is true for application but not for libraries. mir-glas 
depends on mir-cpuid. If I want GLAS to be ported for a new 
target then I will release a new CPUID version and will be able 
to use it the same day. With DRuntime (as solid project), I need 
to wait up to 6 months before it will be released with DMD and 
then with LDC. Workaround are possible, but they requires more 
efforts, more time, more code.

Please do not force Mir to use DRuntime. We need a solid solution

I do not force anyone to drop DRuntime: Mir libraries can be used 
with DRuntime/Phobos. We have full backward compatibility. 
DRuntime does not satisfy portability requirements (which was 
repeated multiple times in this thread). DRuntime (at least for 
now and future few years) is a big constraint for betterC libs to 
replace existing C analogs. Please do not force me to use 
DRuntime.


More information about the Digitalmars-d mailing list