Skip to content
Release 0.4.4

326 commits since last release.

NEWS:

    In this release, machine got renamed from Wudoo VM to Viua VM.
    It also had a website registered: viuavm.org

CHANGELOG:

    Below is a list of noteworthy changes that can be found in version 0.4.4 of
    Viua.
    Keep in mind that apart from the highlights here, several other changes,
    bugfixes and improvements were made during the development of this release.

Interfacing with C++ libraries

    Programs running on the VM can now import external C++ modules and
    call functions exported by them.
    Modules are looked for in several locations across the filesystem,
    defined by VIUAPATH constant in source code.

    Instructions used for importing C++ modules and calling imported
    functions are EXIMPORT and EXCALL.

Throw-catch mechanism

    It is now possible to throw an object and catch it.
    Several instructions are supporting the throw-catch mechanism in Viua VM.
    Also, the concept of blocks had to be intrudoced to the assembler and the CPU.

    Please, read the manual to learn how to throw and catch objects of various types.

    NOTICE! Throwing is considered beta even by the machine's standard so don't expect it
    to be able to support all the things you may want it to.
    However, it is possible to throw and catch object of *any* type.

Machine-thrown exceptions

    All exceptions thrown by machine are derived from base Exception class.
    This makes it possible to catch them from user code.

New debugger features and improvements

    Read debugger's help to learn about available commands, as few new ones had been introduced.
    Stack trace printing got better.
    NOTICE: in this release debugger was renamed from 'bin/vm/wdb' to 'bin/vm/vdb'.

Renamed base typesystem type from Object to Type

    This is because Object should be a base for user-defined types.
    Nothing changes apart from that.
    Until now, user code had no way of even knowing the type of an object so the change
    is unintrusive.

New tool: disassembler

    Compiled Viua programs can be disassembled using supplied disassembler.
    After building, the new program is available as 'bin/vm/dis'.
    Run it with '--help' option to learn how to use it.