Am 16.02.2014 17:18, schrieb Elie Morisse:
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.)

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?

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.


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.

That is also my opinion.

Reply via email to