Releases: csgordon/ir441
v2.1.2 Additional GC fixes
Incorporates @stephen-hansen's fixes for the GC dereferencing null and losing track of valid allocations after a second GC.
This release lacks a Windows x64 binary due to lack of access to an appropriate Windows machine. It should build just fine on Windows.
v2.1.1
Improved GC support, which now works with multiple functions on the stack.
Also includes tweak from @stephen-hansen to read from stdin if no filename is provided, which means code can now be run via:
my-compiler < source.441 | ir441 exec
in addition to the old workflow based on pointing the interpreter at a file (which still works).
This release also includes a native Windows x86-64 binary.
Full Changelog: v2.1...v2.1.1
GC Support
This release adds lightly-tested support for exec-fixed and exec-gc modes, both of which run with a limit of 100 slots (including GC metadata).
v1.0.1
This patches a couple small bugs found during the class hackathon, and adds some support for Windows line endings. There is now also a binary for native Windows without you needing to build it yourself.
There is also a rough cut at a performance counter implementation. If you're trying out your optimization, and want to see if it actually worked, you should be able to run ir441 perf <myfile.ir>
and after execution you'll see rough stats on how many of different operation types the code performed. In a future update this will be extended with a cost model that gives a kind of cycle count, which will make these stats slightly easier to interpret (since, e.g., a function call is more expensive than an add operation on real hardware).
V1: First Release
First release of ir441 tool. Run with no arguments to see usage information.
Binaries are included for Intel builds of MacOS, Linux, and Cygwin on Windows. If you're running Windows Subsystem for Linux on Windows, use the Linux build.
No native windows binary at the moment because there's no standard solution to cross-compile a Windows executable from Mac. You can build your own by installing Rust, cloning the source, and running cargo build
in the project directory.