You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ccall: make distinction of pointer vs name a syntatic distinction
We have long expected users to be explicit about the library name for
`ccall`, and the `@ccall` macro has even always enforced that. That
means users should have already been using explicit syntax. And indeed,
other syntax forms weren't handled reliably (since doing so would
require linearizing IR if and only if the runtime values required it,
which is not something that is computable, and thus was often done
wrong). This now aligns the runtime and compiler to expect only syntax
forms that we could reliably handle before without errors, and adds
explicit errors for cases that we previously knew would be unreliable
because they relied upon inference making particular decisions for the
semantics. The `ccall` function is already very special since it is more
like a actual macro (it does not exist as a binding or value), so we can
make unusual syntax decisions like this, mirroring `@ccall`.
This drops support for #37123,
since we were going to use that for LazyLibraries, be we decided that
approach was quite buggy and that PR would make static compilation quite
impossible to support, so we instead actually implemented LazyLibraries
with a different approach. It could be re-enabled, but we never had
correct lowering or inference support for it, so it is presumably
still unused.
0 commit comments