On Tuesday, 24 January 2017 at 06:35:56 UTC, Stefan Koch wrote:
The blacklisted functions are now down to only two.

Those are the bitswap function in druntime.
Because the interpreter does handle all values as 64bit internally it tends to miscompile code that uses xor on 32bit values.

And the second one is the "to" template from std.conv;
Because of the aforementioned UTF issues.

NOTE: that the blacklist is by nature transitive meaning a function that calls a blacklisted function will also not be interpreted by newCTFE

The blacklisting of bitswap was removed, because we now bailout on bit-level operations on 32bit values.

However I did have to add a unittest-specific bailout for fail_compilation/fail14304.d which requires the ctfe interpeter to detect a semantically invalid situation that should have been detected before we ever begin ctfe.

Reply via email to