[Bug 69] core.builtins should be nothrow, pure and probably @safe

gdc-bugzilla at gdcproject.org gdc-bugzilla at gdcproject.org
Fri Jul 5 03:02:19 PDT 2013


http://bugzilla.gdcproject.org/show_bug.cgi?id=69

--- Comment #2 from Iain Buclaw <ibuclaw at gdcproject.org> 2013-07-05 10:02:19 UTC ---
The most likely sequence of events were that gdc support was added first (we
were there first, what can I say? :) - then dmd support once its vector support
stabilised.  Some time during or after dmd support was put on, pure: nothrow:
@safe: was put into the module.

In any case, nothing has changed since std.simd was first brewed. Function
purity/nothrow is never assumed, and can only go off what the built-in function
symbol is marked as.  Likewise with @safe, the compiler currently only
determines whether to @trust a built-in function or not depending on if it has
been marked as nothrow.  Which is an interesting, and probably wrong way of
inferring @safe-ty, but I suppose in one aspect no one has maybe tested it
enough to find any holes in it yet.  It seems safe is never a good assumption
to make. :)


We could guarantee @safe-ty for builtin functions that are intrinsically
expanded by the compiler (have no equivalent library call).  Will have to think
about whether to assume pure/nothrow in that situation also.

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the D.gnu mailing list