On Saturday, 21 June 2014 at 04:34:50 UTC, aaaaa wrote:
Currently what happens is you do

dmd program1.d

and program1.d uses mixin and compile time reflections to internally rewrite itself to be effectively program2.d so

dmd program1.d

and

dmd program2.d

are the same.

However another possible way might be

rdmd program3.d > program2.d
dmd program2.d

That is, program3.d would (at runtime) generate program2.d which you can then compile. This has the advantage of being possibly faster and simpler, because you don't have to do everything at compile time. Recent talks have lamented at the limited tools available for compile time debugging and if you generate the code at runtime, you have access to all the runtime facilities for debugging code. This also removes the restriction of not being able to do system calls during compile time because you can do whatever you want during the runtime of program3.d

I have no idea how much more complex this would be and am just thinking out loud. Anyway, thanks everyone for developing and maintaining D!

If that was as effective as doing it at compile time, then any language could do it and we would have never needed/wanted all the compile time features that we have now.

Reply via email to