Skip to content

Releases: skx/go.vm

release-0.6

26 May 05:00
@skx skx
cd72b88
Compare
Choose a tag to compare

This release adds a bit more test-coverage to the CPU, and corrects an embarrassing issue where the stack didn't work as expected:

  • Reported in #12, by @longxueyuu
    • Resolved in #13, along with corresponding test-case.

release-0.5

22 Apr 03:19
@skx skx
Compare
Choose a tag to compare

This release contains a number of internal cleanups, largely relating to improved error-handling.

The fuzzing support has been updated to use the native facilities available in go1.18+. As a result of updating the fuzzer numerous issues were detected and resolved. (Processing invalid bytecode was always expected to cause issues, but now there should be no outright crashes, instead the various methods will return errors appropriately.)

All the examples have been updated to use jmp rather than goto, and our internal trap setup has been fixed to define all possible traps as unimplemented explicitly.

The repository has had the workflows updated for both merge-request and push events, which should ensure that we don't break in the future.

release-0.4

24 Feb 14:57
@skx skx
Compare
Choose a tag to compare

This release is being made solely to transition the testing and release process from TravisCI to github actions:

There were some internal cleanups relating to out-of-range registers, and updated documentation on how to fuzz-test the application, but these are minor tweaks.

release-0.3

27 Jul 09:36
@skx skx
Compare
Choose a tag to compare

This release updates the internal implementation to avoid accessing register-contents directly, instead we use the register-type functions. This avoids future changes to be made more easily, via the defined interface.

Otherwise there are no significant changes, instead we've updated the comments and code to fix some golint warnings.

release-0.2

02 Jul 08:21
@skx skx
Compare
Choose a tag to compare

This release fixes a bug affecting cloning a register, such that this example now works correctly:

  store #0, "Steve"
  store #10, #0
  print_str #10

This does three things:

  • Stores the string "Steve" in register 0.
  • Sets register 10 to have the contents of register 0.
  • Prints the string in register 10 (i.e. "Steve")

In addition to this bugfix there is now a new trap int 0x02 which updates the string stored in register #0 to remove any trailing newline/space. This is demonstrated in the following example:

release-0.1

01 Jul 17:31
@skx skx
Compare
Choose a tag to compare

This is the first stable-release:

  • All the examples are confirmed working.
  • All the legacy code works as it should.
  • The new DATA "String content" assembler option works.
  • The extension-mechanism, of using traps via the int operation, works as it should.