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.