On 10/08/2015 9:48 a.m., JDemler wrote:
On Sunday, 9 August 2015 at 14:00:55 UTC, Rikki Cattermole wrote:
On 10/08/2015 1:57 a.m., cym13 wrote:
On Sunday, 9 August 2015 at 13:51:21 UTC, Andrei Alexandrescu wrote:
On 8/9/15 5:07 AM, JDemler wrote:
We can read files at compile-time:

   enum file = import(fileName);

But we cannot write to a file or create files at compile time.

Generating code at compile-time and mixing it in is fun but has a few
flaws.
It isn't debuggable, the generated code cannot be directly
inspected (we
have to use pragma(msg, )) and it is not possible to manually tweak
it.

If we could generate source files (.d) at compile time and then import
them using mixins or something else, these problems can be dealt with.

I think this is an interesting pursuit that closes the circle on a
number of issues, such as debuggability and compilation speed of mixin
code. -- Andrei

The moment this is added to D, we will have two complete languages in
one: an interpreted one at compile-time and another at runtime.

While I find this interesting, I wonder wether this is  a good idea
or not.

I'm actually at the point where I believe the addition of string
import was a bad one. No. I prefer preprocessing into a D file first.
It irks me, you have to be pretty careful with them, but at least a
preprocessed file you know _exactly_ where all files need to be for CT.

Consider vibe.d's diet templates: They are compiled into d code using
information of the types provided by the user.
Without string imports at compile-time that would either result in a
two-step compile process or would rely on run-time type information.
Both is nothing I would like to use.

Imagine the .dt files could be compiled into .dt.d files and then
imported at compile-time. The development process would be much easier
(debugging and examining the source files becomes trivial) and the usage
would be more transparent (I see what my .dt file gets compiled into)
and would have faster compile times (as Andrei mentioned).

Yeah this is the main use case. I just like being devils advocate a bit too much atm.

Reply via email to