Does D have too many features?

Sean Kelly sean at invisibleduck.org
Tue May 8 14:22:30 PDT 2012


On May 8, 2012, at 10:24 AM, foobar wrote:

> On Tuesday, 8 May 2012 at 17:03:10 UTC, Lars T. Kyllingstad wrote:
>> On Tuesday, 8 May 2012 at 16:35:05 UTC, foobar wrote:
>>> On Tuesday, 8 May 2012 at 14:59:43 UTC, Lars T. Kyllingstad wrote:
>>>> On Tuesday, 8 May 2012 at 14:48:27 UTC, foobar wrote:
>>>>> [...], what if I find it useful to use e.g. FORTRAN code, should the relevant functions also be in the stdlib?
>>>> 
>>>> No, FORTRAN has absolutely nothing to do with D.  C, on the other hand, does.  Both druntime and Phobos depend heavily on the C stdlib.  The GC uses malloc/free, std.stdio.File is a wrapper around FILE*, etc.
>>>> 
>>>> -Lars
>>> 
>>> Irrelevant. For all I care druntime could be implemented in Klingon. That doesn't mean its API needs to include Klingon as well. That's called "encapsulation".
>> 
>> Um... so you don't mind the C/POSIX declarations being there, you just want them to be private so you aren't tempted to use them in your own code?
> 
> Yes, pretty much.
> They are an implementation detail of druntime/phobos.
> 
> Other vendors may choose to implement the tool-chain with another language in mind and as long as the API remains the same I shouldn't need to care e.g. how the GC allocation is implemented (Perhaps it's done with FORTRAN's memory allocation routines).
> 
> If I ,the user, want to interface with C I need to use the "official" C headers in Deimos. This is after all the official location for that.

I think this is two separate issues.  The GC implementation is very much hidden already.  The only point of exposure for standard C headers is in core.*, and frankly, I think the only ones actually used are core.sys.windows and core.sys.posix (posix admittedly being a superset of standard C, as stated before).


More information about the Digitalmars-d mailing list