On Wednesday, 10 December 2014 at 10:46:58 UTC, bearophile wrote:
The #[no_std] attribute is used to avoid the runtime in Rust.
Do we have any use for a @noruntime attribute in D?
All @noruntime functions are also @nogc (so you don't need to
put both attributes).
This could give a compilation error:
void foo(int[] a) @noruntime {
int[5] b = a[];
}
I just remembered I had an idea for this specific feature that
would require no special attribute. You simply take all the
hard-coded symbols out of the compiler and put them in a .di
header file. Then you can version out, @deprectate, @disable, or
not import the .di file if you don't want any or all of the
runtime.
I tried to implement this in GDC, but failed. I need to put more
time into it to try and figure it out. Theoretically, though, I
think it should work.
Mike