"temporary" templates

Paul Backus snarwin at gmail.com
Wed Nov 27 16:19:05 UTC 2019


On Wednesday, 27 November 2019 at 08:45:55 UTC, FeepingCreature 
wrote:
> On Tuesday, 26 November 2019 at 18:59:26 UTC, Paul Backus wrote:
>> This will cause compilation to become non-deterministic, since 
>> the result of template evaluation can depend on the order in 
>> which declarations are semantically analyzed:
>>
>
> ...
>
> Snapshot the lexical environment at the point of instantiation? 
> Could make namespaces linked list of arrays so you can 
> copy-on-write them for relatively cheap. Compilation is pure 
> enough that this should be sufficient.

The lexical environment is not enough. Due to the power of D's 
reflection, the result of template instantiation depends, in the 
worst case, on the state of the entire AST at time of 
instantiation.

Using an immutable AST with copy-on-write semantics would 
probably work.


More information about the Digitalmars-d mailing list