Topics: More test configurations - Possible compilation failures - Issue tracker embedded in Git repository and About saturating arithmetic

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 enabled (-O3). 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++).