A betterC modular standard library?

Ilya Yaroshenko via Digitalmars-d digitalmars-d at puremagic.com
Sun Dec 18 07:01:55 PST 2016


On Sunday, 18 December 2016 at 14:37:55 UTC, Radu wrote:
> On Sunday, 18 December 2016 at 09:26:09 UTC, Ilya Yaroshenko 
> wrote:
>> Hi,
>>
>> Who is interested in betterC _modular_* standard library?
>> I am planing to make libmir org a community for it.
>> Thought and concerns?
>>
>> We already have better `cpuid` and better `random` packages. 
>> The betterC std.range and std.algorithm analogs would be 
>> released with new ndslice implementation. Mir's algorithm 
>> would be faster then Phobos and will generate less template 
>> bloat. Then lightweight threads, multithread GLAS, matrix 
>> inversion. Fastest I/O and http2 ...
>>
>> (they all are betterC modular libraries)
>>
>> Andrei and probably 90% of existing D users don't want Phobos 
>> to move this direction.
>>
>> In other hand I need a commercial attractive D infrastructure 
>> for large and heavy system projects. There is no commercial 
>> perspective for me to contribute to Phobos because:
>>
>> 1. Phobos version depends on compiler version. Delay with LDC 
>> release is too large. It should / can be one day.
>>
>> 2. We can not do hot fixes in Phobos without compiling and 
>> deploying patched libphobos. Mir's DUB package are much more 
>> flexible.
>>
>> 3. Dependencies should be clear. Modularity is a proper way 
>> for large std library. In phobos everything integrated with 
>> everything. DRuntime -> Phobos abstraction is weird for 
>> betterC because system modules can depends universal 
>> algorithms, but universal algorithm are more portable if they 
>> have not system dependencies.
>>
>> 4. Phobos does not provide and will not provide betterC 
>> guaranties. If something works for betterC mode now it may not 
>> work in the future release.
>>
>> [1] https://github.com/libmir/
>> * - separate github/DUB libraries with clear dependencies.
>>
>> Best regards,
>> Ilya
>
> I hope this doesn't turn into a new Tango vs. Phobos war.
>
> If you have ideas on how to improve things without messing the 
> entire community with ego wars and such, then it sounds good. 
> Otherwise thumbs down!

Maybe I will be able to propose them on DConf.

> The first sign of faith will be that your modules will always 
> work with druntime and phobos - i.e. you wont require a special 
> runtime for your stuff to work.

Yes/No in the same time.

1. It would be always possible to use Mir and Phobos together, 
100% guarantee. Furthermore, some Mir libraries are going to be 
infrastructure for _all_, not only for D. For example Mir GLAS 
will target the Julia language after D.

2. In the same time many thing is not possible to create with 
Phobos/Druntime. The simplest example is numeric libraries. I can 
create a multithread GLAS with core.thread, but if I do so GLAS 
will never be accepted as default BLAS implementation for Julia. 
So, i need to create my own low level thread library. Intel MKL, 
OpenBLAS have their own thread management: this is common 
practice.

Cheers,
Ilya


More information about the Digitalmars-d mailing list