Bounty for -minimal compiler flag
Elie Morisse
syniurge at gmail.com
Sun Feb 16 08:18:12 PST 2014
On Thursday, 13 February 2014 at 23:14:20 UTC, 1100110 wrote:
> I think it's about time I gave back to this wonderful community.
>
> I'm offering a $50 bounty on this.
> (Preferably Bitcoins, but I'll use bountysource if desired.)
>
> rules:
> Has to be called -minimal
> Has to fulfill Walter's original post. (listed below)
> Has to split the separate parts into different flags as well as
> -minimal(-nogc, -nomoduleinfo, etc. Naming is left to the
> implementer).
>
>
> This seems to be a good idea and has lots of support from the
> community, would anyone like to chip in a few more bucks?
>
> I haven't set the bounty yet, depends on if multiple people
> chip in. I'll probably set it sometime tonight.
>
> Let me know what y'all think, am I leaving anything out?
> Thanks
>
>
> On Tuesday, 11 February 2014 at 19:43:00 UTC, Walter Bright
> wrote:
>> I've toyed with this idea for a while, and wondered what the
>> interest there is in something like this.
>>
>> The idea is to be able to use a subset of D that does not
>> require any of druntime or phobos - it can be linked merely
>> with the C standard library. To that end, there'd be a
>> compiler switch (-betterC) which would enforce the subset.
>>
>> (First off, I hate the name "better C", any suggestions?)
>>
>> The subset would disallow use of any features that rely on:
>>
>> 1. moduleinfo
>> 2. exception handling
>> 3. gc
>> 4. Object
>>
>> I've used such a subset before when bringing D up on a new
>> platform, as the new platform didn't have a working phobos.
>>
>> What do you think?
Isn't this a bit premature?
The idea is controversial, if you read the thread Andrei and
Walter wanted to postpone it:
>I convinced Walter of my view on this, so he won't work on it. I
>trust
that at least between the two of us we can focus on working on
what
matters most first.
>
>Andrei
so why the hurry?
std.allocator should solve the biggest issue which is not making
the GC mandatory, and then I don't see the point of stripping D
of many of its essential features (classes, array operations,
TLS, dynamic casts, static ctors and dtors, ...) when GDC and LDC
are already able to enable them (i.e add parts of druntime and
Phobos to the binary) on a per-needed basis when statically
linking.
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 (saving memory)?
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.
More information about the Digitalmars-d-announce
mailing list