System programming in D (Was: The God Language)
Martin Nowak
dawg at dawgfoto.de
Mon Jan 9 02:01:16 PST 2012
Am 04.01.2012, 15:33 Uhr, schrieb Vladimir Panteleev
<vladimir at 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
More information about the Digitalmars-d
mailing list