Am 17.02.2014 21:40, schrieb inout:
On Monday, 17 February 2014 at 06:40:54 UTC, Paulo Pinto wrote:
On Sunday, 16 February 2014 at 23:40:58 UTC, 1100110 wrote:
On 2/16/14, 10:18, Elie Morisse wrote:
IMHO an approach that would not involve making a binary choice between
"full D" and "minimal D" is to add an option to make the linker strip
druntime and Phobos' shared libraries (or any shared library, and it's
not specific to D btw) to the "lowest common denominator" required by a
bunch of libraries and applications. Wouldn't that fulfill one of the
two goals -nodruntime is trying to achieve as far as I understand
And regarding the other goal, to help porting D to other platforms a
stub druntime would be cleaner than a hackish compiler flag that
requires many changes to DMD.
No. Any library compiled with -nogc will be 100% usable from a
program compiled without it. Same goes for -noexceptions, etc.
This *is* a lowest common denominator. And as such, the lowest
common denominator is fully usable from code outside the subset.
All these do is error on whatever feature they are disabling.
However I doubt the other way around will work.
Linking all those nice D libraries developed with standard D into
But what do I know, I always enable everything in C++.
Note that you can disable rtti/exceptions etc in C++ (and in fact
we do that in all the companies that I have ever worked for since
around 2005). The feature is there because it's very useful.
This discussion is all about adding similar capabilities to D.
I know, did you read my last sentence? I usually enable everything
unless I cannot do it.
I find it a pain to mix and match third C++ libraries distributed in
binary form, exactly because of that.
That is one of the reasons behind C++'s complexity as the compilers need
to tackle several flavours of the language.