| |
| Posted by monkyyy in reply to ryuukk_ | PermalinkReply |
|
monkyyy
Posted in reply to ryuukk_
| On Monday, 24 June 2024 at 13:38:31 UTC, ryuukk_ wrote:
> On Sunday, 23 June 2024 at 17:18:11 UTC, monkyyy wrote:
> import std;
auto foo()(){static assert(0);}
auto bar(){static assert(0);}
void main(){
"hello world".writeln;
}
In the above code, foo doesnt break, bar does.
In the vain of removing the "unreachable statement" error and reducing phoboes interdependence( https://forum.dlang.org/post/xiprhwrxykatbhlhhcru@forum.dlang.org), have a debug flag that will treat bar as foo, with an empty template header. So only used code breaks compiles.
In wasm with a broken libc, phoboes is unusable, for silly reasons like t_time being undefined so I cant use anything that imports chains to core.*, which as far as I know is all of Phobos
-templateify ?
the function is never called, it should never assert imo, why even compile unused functions?, sounds like the compiler is wasting time, but i am not a compiler dev so i am clueless here, just wanted to point that out, hopefully someone could enlighten us
"the c stack" was made in the 1970's or whatever for very different machines, headers were a helpful pre-pass for memory reasons, shared libs or incremental compilation; not only is d a little to close to c to change that default behavior but changing that to be bottom up would probably be more controversial then a gc for the "systems programming" crowd as youd need a workaround to even use c libs and current os's
Eventually there are solutions to swap from a bottom up rather then a top down method, template languages must have them to work, but they came after the foundation we sit on.
|