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