core.stdcpp
Mike via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Tue Aug 26 17:32:18 PDT 2014
On Tuesday, 26 August 2014 at 18:28:38 UTC, Andrei Alexandrescu
wrote:
> I don't understand the objection. Are you arguing that we
> shouldn't make core.stdc and core.stdcpp available, and instead
> let anyone who wants to use libc and libc++ write their own
> declarations?
No. We currently have std.c and core.stdc. I believe core.stdc
should be migrated to std.c, not the other way around. And
before we make the same mistake with core.stdcpp, we should set a
new precedent with std.cpp instead.
"Why?" D is not subset of C. D is not defined in C. It is its
own autonomous language (at least I though it was). Therefore,
the dependencies on libc are artificial. Let's not add another
artificial dependency with core.stdcpp. The OS bindings in
core.sys are another artificial dependency, but let's not go
there right now.
"But druntime relies on libc?" Wrong! Some of the code needed to
port druntime to certain platforms relies on libc (and actually
doesn't need to). This code should be encapsulated and isolated
from other ports, not publicly exposed and conflated with the
rest of the language implementation. This is in the spirit of
issue 11666.
I believe druntime's scope should be reduced to simply
implementing the language, not creating an OS or library API.
That's what phobos and DUB are for.
I'm asking this community to consider setting a new precedent for
druntime: reduce the scope to just the language implementation,
encapsulate and isolate the platform specific logic (e.g. the
ports - see 11666), and deport the artificial dependencies to
phobos or other libraries.
Mike
More information about the Digitalmars-d-announce
mailing list