This week was mainly spent on infrastructure around the VM; CI, test configurations, and issue tracking.
More test configurations
Tests run on CI now run under three configurations: 1/ with sanitisers enabled, 2/ with sanitisers disabled but under Valgrind, 3/ with sanitisers disabled but with high optimisation level.
Each CI run is now much longer, but the results are more useful.
Possible compilation failures
Compilation of Viua may fail on machines with 4GB or less of RAM with high levels of optimisation
This affects compilation of assembler middle-end (the part that converts tokenised source code into
compiled bytecode), and static analyser (the code that checks types and register usage is
huge and a bit complicated).
Issue tracker embedded in Git repository
Apart from issue tracker on GitHub (which contains only the most "prominent" ones), issues are also
collected in the
issue tool repository.
This repository is now embedded inside Viua's Git repository.
About saturating arithmetic
I good resource to read about saturating arithmetic can be found on prof. John Regehr's Embedded in Academia website.
Also, I found a template-heavy implementation of saturating arithmetic for C++. It is an incredibly interesting read if you're interested in saturating arithmetic (or how to write useful templates in C++).