On 9 January 2012 12:01, Martin Nowak <d...@dawgfoto.de> wrote:

> Am 04.01.2012, 15:33 Uhr, schrieb Vladimir Panteleev <
> vladi...@thecybershadow.net>:
>
>  On Wednesday, 4 January 2012 at 14:28:07 UTC, Andrei Alexandrescu wrote:
>>
>>> Hmmm, I see that the other way around. D CTFE-generated macros are much
>>> easier to debug because you can actually print the code before mixing it
>>> in. If it looks like valid code... great.
>>>
>>
>> Paging Don Clugston: would it be feasable to have the compiler remember
>> the source position of every single char/string literal or
>> compile-time-evaluated string expression?
>>
>> I'm thinking that if the compiler tracks the source of every string/char
>> literal in the source code, all across to any manipulations, debugging
>> CTFE-generated code would be a lot easier - the compiler would emit error
>> messages pointing inside string literals, and debuggers could step inside
>> code in string literals. (The one thing this doesn't allow is allowing
>> debuggers to step through a DSL with no D code in it.)
>>
>> The naive implementation would store the position of every character,
>> which would blow up the memory usage by about 13 times or so on 32-bit?
>> (For every character, add a struct with 3 fields - char* filename; int
>> line, column). A rope-like structure could cut down on that but possibly
>> drastically complicating the implementation.
>>
>
> Last time I generated big and complex mixin I let the compiler
> output mixins to separate files. This gives you nicer debugging
> and readable error lines.
> https://github.com/D-**Programming-Language/dmd/pull/**426<https://github.com/D-Programming-Language/dmd/pull/426>
>

Amazing idea, this should be standard!
That totally changes my feelings towards mixins :)

Reply via email to