Skip to content

v1.5.0

Choose a tag to compare

@kvthweatt kvthweatt released this 09 Oct 02:36
· 52 commits to main since this release

What's Changed

Versions now have names, this one is Spicy Sugar.

Fix to DCE which didn't account for Linux _start entrypoint. Also changed how Linux programs are compiled, skipping ASM output and instead outputs the object file.

Changed XOR from ^^ to ^|. The reasoning is phonetic, if ^ is "ex"ponentiation, then borrowing ^ in the start of ^| we get "ex-or".

New syntax for bit indexing values to complement bit slices. The form is:

x[`y]

Bit indexing starts at 0 and is the most significant bit with respect to endianness of the target value's type.

Added a new prototype IDE which includes the REPL at the bottom output panel and integrates the LSP which also received improvements like completion, signature help, and integrates visualizers for both effects and template constraints.

Fix to arithmetic between literals cast to differing endianness

Fix to endianness handling with bit slices and bit indexing, was double inverting LE

Added remaining language features to comptime

Added typed enums, exhaustive switch on tagged unions, fixed bug in fvmcodegen.py: _visit_function_def was accidentally defined inside another method instead of at class level making it uncallable, and added dictionaries with dict type

Added effects.

Upgrade to contracts: added #binding{pre:post} suffix allowing the specification of contract position, exclusion, and other requirements.

Full Changelog: v1.3.0...v1.5.0