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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
✨ What's new?
It is now possible to link against symbols that should be statically present at link-time using the extern.code section
Each binding is given a type that should correspond to the underlying FFI type, but this cannot be checked
Bang-types have made it into N*!
These are used to forget about some register binding
However, “forget” means different things depending on where the bang-type lies:
If the bang-type is in the caller's context, then this means that upon returning from this function, the register associated to the bang-type cannot be trusted anymore
This allows for some kind of reminder as to which register has to be callee-saved
If the bang-type is in the continuation, then this means that we basically don't care about the previous value in a register, and that we may even plan on overwriting it
String literals are also a thing now, which makes it easier to write a basic "hello, world!" example
A new sref n, r instruction was born, to be able to fetch a reference to a stack cell
And finally, packed structures with their literal equivalents for the data sections
And as a side note, a small emacs mode was written just to provide syntax highlighting for N* code:
🐛 Bug fixes
sst r, n was compiled to the wrong opcodes when targeting amd64
When type-checking the mv instruction, when it moved the continuation, the register environment χ was not extended with the correct type (the ∀(). part was erased)