June 29, 2011 [dmd-internals] Template instatiation order | ||||
---|---|---|---|---|
| ||||
I recently stumbled over bug 2962. http://d.puremagic.com/issues/show_bug.cgi?id=2962 Now the conclusion of this is, that semantic3 on a template instance with alias parameter must run strictly after it's instantiating parent. The current way of adding instances back as members to their module doesn't provide this, as modules are analyzed in cmdline order. Proposed solution: - set up one array of Dsymbols - each template instance get appended to it - after each semantic stage of modules the semantic for all instances is run - before generating object code the instances are added back to their module to distribute the comdats Is it worth pursuing this approach? Would there be a better solution using existing deferring mechanisms? see attached patch for a hacked implementation Martin -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-proof-of-concept-hack-for-ordered-template-instantia.patch Type: application/octet-stream Size: 3046 bytes Desc: not available URL: <http://lists.puremagic.com/pipermail/dmd-internals/attachments/20110629/1085cc66/attachment.obj> |
Copyright © 1999-2021 by the D Language Foundation