On Wed, 13 Jul 2011 02:32:41 -0400, Dmitry Olshansky
<dmitry.o...@gmail.com> wrote:
On 12.07.2011 18:22, dsimcha wrote:
The documentation for CTFE is outdated and specifies limitations that no
longer exist thanks to Don's massive overhaul. For example, a big one
is that
pointers now work. What limitations that could potentially be removed
still
do exist in CTFE as of 2.054?
Just hited all of the below:
- try/catch
- intrinsics (bsr, bsf etc. ) this currently also means no Appender
Don has a patch for appender that allows it to work during CTFE:
https://github.com/D-Programming-Language/phobos/pull/129
Actually, that was merged, prior to 2.054 release, may want to try
appender again ;)
- array.reserve
array.reserve is specific to the GC, and the GC isn't the same during
compile time. Asking for this is like asking for GC.malloc.
However, if there ever was a working D compiler written in D, these kinds
of things could be done no problem. Reserve does seem like a useful thing
to allow during CTFE.
Of course, I could change reserve to simply do nothing during ctfe, which
would make things "work", even though reserving wasn't actually
happening...
- foreach over tupple (aka static foreach)