Does D have too many features?

foobar foo at bar.com
Wed May 9 02:16:41 PDT 2012


On Wednesday, 9 May 2012 at 08:16:35 UTC, Alex Rønne Petersen 
wrote:
>>
>> I personally use "import core.stdc" as an indicator that there 
>> may be some feature missing from Phobos.  It's easily 
>> greppable, and easy to avoid using the routines.  In fact, I 
>> think "import core" anything should be an exceptional case in 
>> a typical D application.  Everything exposed in Druntime is 
>> for what I'd consider power users.  Unsafe threads, runtime 
>> and GC hooks, platform API calls, etc.  It's all there because 
>> the higher-level stuff needs it, but is really not intended 
>> for general use.
>>
>
> I just hope none of it goes away. I make extensive use of many 
> core.* modules.
>

Could you please provide more details about your use-cases?
As Sean said, it might indicate missing functionality in Phobos.
Keep in mind we were specifically discussing the C APIs which are 
an external dependency. No one suggests removing the low-level 
druntime APIs such as GC hooks.

>> Once upon a time, there was a D runtime library (unrelated to 
>> Druntime) that has no C library dependence at all.  It was an 
>> interesting idea, but I don't know that there's any system 
>> that D targets which doesn't support C.
>
> *Is* there any system that doesn't support C? ;)

It isn't only a question of whether the system supports C or not. 
There are many considerations when choosing your tool-chain. For 
instance, the reference implementation of some languages is 
implemented in ML for its correctness properties. EcmaScript for 
instance uses ML for the language/runtime.
In the JS case, it doesn't necessarily mean your browser will run 
ML, it just means the highly optimized vendor implementation has 
an official correct version to compare to.

In the D world, we have a few projects that aim to implement a D 
compiler using D. Why would such a compiler/runtime need to 
provide C APIs if it's completely written in D?


More information about the Digitalmars-d mailing list