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