Bounty for -minimal compiler flag
Daniel Murphy
yebbliesnospam at gmail.com
Fri Feb 14 06:07:35 PST 2014
"1100110" wrote in message news:ldl6v6$255r$1 at digitalmars.com...
> I dont know enough about TLS to comment really. Thoughts?
It's probably platform dependent, I guess it should work everywhere that C
supports TLS.
> Dynamic cast can be disabled.
Sure, but should it be an error or be replaced with a static cast?
> static this/~this is tougher. If it is possible for it to work, then it
> should. I feel that this is more of a language feature.
These might work with init sections, but maybe not.
> similarly, I'd expect scope(exit) to still work.
With no exceptions, scope(xxx) will work just fine.
Similarly, try-catch will be valid, just not throwing.
> profiling and code coverage are fine left out, since other tools can fill
> the same task.
Yah.
> It would be nice if assert didn't depend on the runtime, but it's easy
> enough to implement. conditional, message and exit();
mmm...
> unittests are out as well.
Most likely.
> All of those are optional features really. It would be nice to have them,
> but I feel that those pretty much require a runtime, and the whole point
> is to *not* require the runtime.
>
I don't think it's worth throwing out assert over. A runtime that supported
assert + Object would be about 8 lines and would IMO be worthwhile.
ie small enough to copy+paste into your main.d
> > Also, D classes will fail to link without Object.
>
> I'm unsure how useful classes will be without a GC or the runtime...
> Thoughts?
> I'd be fine with then being disabled.
I'll take it you've never seen how virtual functions are implemented in C?
Classes are awesome.
> >
> > Should `array.length = x` be an error or just unsafely set the length?
>
> Unsafely set the length.
> Justification: There is no way to know whether or not you have manually
> adjusted the array or not.
>
> I see it as similar to pointer arithmetic in current D. Whether it works
> or not is dependent on the programmer.
This puts us in the nasty situation of having code behave differently with
and without the switch. Like dynamic cast, I'd rather it was a compile-time
error and you had to use arr.ptr[0..newlen] instead.
More information about the Digitalmars-d-announce
mailing list