All Versions
Latest Version
Avg Release Cycle
17 days
Latest Release
518 days ago

Changelog History
Page 1

  • v5.0 Changes

    May 16, 2020

    🔖 Version 5.0 (2020-05-16)

  • v4.20 Changes

    April 21, 2020

    🔖 Version 4.20 (2020-04-20)

    • JIT: "I'm back fam" 😻 (Brian Shirai)
      Narrator: "Kinda, sorta"
  • v4.19 Changes

    April 21, 2020

    🔖 Version 4.19 (2020-04-20)

    • 🗄 Clean up some deprecations. (Brian Shirai)
  • v4.18 Changes

    April 21, 2020

    🔖 Version 4.18 (2020-04-20)

    • Distributed ThreadNexus to Machine, Threads, ThreadState. (Brian Shirai)
  • v4.17

    April 19, 2020
  • v4.16 Changes

    April 17, 2020

    🔖 Version 4.16 (2020-02-22)

    🍱 🤷 (Brian Shirai)

    ⚡️ Start updating README. (Brian Shirai)

    🚚 Move more of Environment into Machine. (Brian Shirai)

    ✂ Removed C++ tests. (Brian Shirai)
    ✅ Maintaining these tests for a decade, I can confidently state they don't
    ➕ add enough value to compensate for the maintenance cost. As more C++
    code (eg primitives, object classes) are replaced by instructions, the
    ✅ value of the tests diminishes even more.

    ✂ Removed configure step for machine tests. (Brian Shirai)

    🚚 Moved locks to Machine. (Brian Shirai)

    ✂ Removed remnants of C++ tests. (Brian Shirai)

    Boot and halt on main thread. (Brian Shirai)

    ⚡️ Update (Brian Shirai)

    ⚡️ Update (Brian Shirai)

    ⚡️ Update (Brian Shirai)

    ✂ Removed old concurrency utils. (Brian Shirai)

    ⚡️ Update (Brian Shirai)

    ⚡️ Update (Brian Shirai)

    Some Channel and misc cleanup. (Brian Shirai)

    More Thread, ThreadState cleanup. (Brian Shirai)

    Finalize UnwindSite caches. (Brian Shirai)

    🚀 Release last ThreadState. (Brian Shirai)

    Don't discard MachineThread ThreadState on fork. (Brian Shirai)

  • v4.15 Changes

    February 02, 2020

    🔖 Version 4.15 (2020-02-02)

    • Try a GitHub Action for CI. (Brian Shirai)
    • 🍱 Tabs 😭. (Brian Shirai)
    • 👕 My castle for a CLI linter. (Brian Shirai)
    • Name some things. (Brian Shirai)
    • Fifth times a charm?. (Brian Shirai)
    • 📦 Shotgun the packages. (Brian Shirai)
    • 🍱 Maybe later GitHub Actions. 👋 (Brian Shirai)
    • Dispose of ExtendedHeaders at the end of a GC cycle. (Brian Shirai)
    • Ensure CallFrame is initialized. (Brian Shirai)
    • ➕ Added undefined behavior sanitizer to --sanitize. (Brian Shirai)
    • ⚙ Run specs in small batches. (Brian Shirai)
    • Clean up some old stuff. (Brian Shirai)
    • Try Bionic again. (Brian Shirai)
    • 🚀 Release rapidjson document storage. (Brian Shirai)
    • 🚀 Revert "Release rapidjson document storage." (Brian Shirai)
      The diagnostics JSON reporters need reworking.

    ⏪ This reverts commit be1e28c.

    • ✂ Remove obsolete JIT file. (Brian Shirai)
    • Introduce new Machine structure. (Brian Shirai)
      This provides proper and orderly creation of all the virtual machine
      components, and the orderly destruction of those components when the
      virtual machine halts.

    [x] 1. Add Machine to SharedState;
    [x] 1. Pass Machine through Environment to SharedState

    🚚 [x] 1. Move SharedState items for env into Environment;

    🔧 [x] 1. Move Configuration to Machine;

    🚚 [x] 1. Move ThreadNexus to Machine;

    🛠 Fixnum is deprecated.

    🚚 [x] 1. Move MachineThreads to Machine;

    🚚 [x] 1. Move Collector to Machine;

    🚚 [x] 1. Move Memory to Machine;

    🚚 [x] 1. Move SymbolTable into Memory;

    🚚 [x] 1. Move Globals into Memory;

    ✅ Make VM tests pass for now.

    ➕ Add task to show CodeDB dir. (Brian Shirai)

    ⏪ Revert "Add task to show CodeDB dir." (Brian Shirai)
    ⏪ This reverts commit 2b6949e.

    ✅ Locate the CodeDB for the VM tests. (Brian Shirai)

    ✂ Removed SharedState, VMThreadState. (Brian Shirai)

    🚚 Moved State to ThreadState. (Brian Shirai)
    This is a first step to eliminating VM and ManagedThread.

    ✂ Removed ManagedThread. (Brian Shirai)

    ✂ Removed VM. (Brian Shirai)

    Back to the ol' Trusty. (Brian Shirai)
    There is some process or IO related issue on Bionic that is extremely

    Ok, fine, fail on Bionic then. (Brian Shirai)
    ⏪ Revert "Back to the ol' Trusty."

    ⏪ This reverts commit a53fd06.

    More cleanup. (Brian Shirai)
    ✂ Removed MachineThreads list. Specific MachineThread's lifecycle
    🚚 functions are called directly. Handling around fork() moved to Machine.
    Some Console cleanup.

    Let backtrace locations wrap. (Brian Shirai)

    Clean a few spec tags. (Brian Shirai)

  • v4.14 Changes

    January 26, 2020

    🔖 Version 4.14 (2020-01-26)

    ➕ Added start of array-type instructions. (Brian Shirai)

    ⏪ Revert "Disable experimental compiler plugins." (Brian Shirai)
    ⏪ This reverts commit 806f3be.

    More work on array-type instructions. (Brian Shirai)

    ➕ Added --sanitize configure flag. (Brian Shirai)
    🍎 This doesn't work yet on macOS 😭

    👍 clang: error: unsupported option '-fsanitize=leak' for target 'x86_64-apple-darwin19.2.0'

    🛠 Fix warning on Ubuntu Bionic. (Brian Shirai)
    ⚠ machine/ffi_util.cpp:53:10: warning: In the GNU C Library, "major" is defined by <sys/sysmacros.h>.
    For historical compatibility, it is currently defined by <sys/types.h> as well, but we plan to
    ✂ remove this soon. To use "major", include <sys/sysmacros.h> directly. If you did not intend to
    👉 use a system-defined macro "major", you should undefine it after including <sys/types.h>.

    Switch to AddressSanitizer. (Brian Shirai)

    ✨ Enhance --sanitize configure option. (Brian Shirai)

    🍎 Exclude sysmacros.h on macOS. (Brian Shirai)

    Clean up some Valgrind-exposed memory leaks. (Brian Shirai)

    👉 Use unsynchronized set during GC. (Brian Shirai)
    🔀 We only run one thread during GC, so we don't need synchronized (un)set.

    Track code return value for GC. (Brian Shirai)

    Rework extended header & memory handle mechanisms. (Brian Shirai)

    ➕ Added ref count instructions. (Brian Shirai)

    ➕ Added deprecation for Fixnum, Bignum. (Brian Shirai)

    Clean up from memory header rework. (Brian Shirai)

    ✂ Removed a bunch of Rake stuff. (Brian Shirai)

    Start to clean up 'Machine'. (Brian Shirai)

    Checkpoint for GC after saving object reference. (Brian Shirai)
    👀 It turns out, surprisingly enough, it's much easier to see the object we
    👀 are trying to trace if we put it where we can see it first.

  • v4.13 Changes

    January 20, 2020

    🔖 Version 4.13 (2020-01-20)

    ➕ Added more math functions. (Brian Shirai)

    Replaced Bignum#<<, Bignum#>> primitives. (Brian Shirai)

    Replaced Fixnum#size, Bignum#size primitives. (Brian Shirai)

    Replaced {Fixnum, Bignum}#bit_length primitives. (Brian Shirai)

    Switch Travis to use 18.04 bionic. (Brian Shirai)

    🐧 Install gdbm on Linux for Travis 18.04 bionic. (Brian Shirai)

    🐧 Install gdbm on Linux for Travis 18.04 bionic. (Brian Shirai)

    ⏪ Revert switching Travis to bionic. (Brian Shirai)

    Replaced more Bignum, Fixnum primitives. (Brian Shirai)

    ➕ Added more instructions. (Brian Shirai)

    Replaced {Fixnum, Bignum}#{to_s, inspect} primitives. (Brian Shirai)

    Replaced {Bignum, Fixnum}#to_f primitive. (Brian Shirai)

    Replaced {Fixnum, Bignum}#divmod primitives. (Brian Shirai)

    🔌 Enable experimental compiler plugins. (Brian Shirai)

    🏗 Ignore stdlib C-exts that won't build. (Brian Shirai)

    Try bionic on Travis again. (Brian Shirai)

    🚚 Moved Fixnum.=== to Integer. (Brian Shirai)

    👌 Improved Process.waitpid. (Brian Shirai)

    ✂ Removed unnecessary subprocess from Fiber#resume spec. (Brian Shirai)

    Reset process start time in forked child. (Brian Shirai)

    Back to trusty. (Brian Shirai)

    Simplify Integer.===. (Brian Shirai)

    Finished removing Fixnum, Bignum classes in core. (Brian Shirai)
    🚚 More work remains before the constants can be removed.

    Reset start time after fork. (Brian Shirai)

    🖐 Handle coded caches better. (Brian Shirai)
    This is still very messy and all this should be proper dependencies, but
    👷 I'd rather build that in the new build system that doesn't use Ruby.

    ➕ Added more floating point instructions. (Brian Shirai)

    Replaced Float#{nan?, infinity?} primitives. (Brian Shirai)

    👉 Make a proper pointer to registers. (Brian Shirai)
    Previously, the registers were referenced relative to the beginning of
    the stack by adjusting all the register indexes when creating the
    MachineCode instance.

    🔌 Disable experimental compiler plugins. (Brian Shirai)

  • v4.12 Changes

    January 07, 2020

    🔖 Version 4.12 (2020-01-06)

    Replaced more Float, Fixnum, Bignum primitives. (Brian Shirai)

    🛠 Fixed spec assuming 32bit. (Brian Shirai)

    Replaced more Integer bitwise primitives. (Brian Shirai)

    ✂ Removed nonsense spec. (Brian Shirai)
    👍 Not going to support this behavior. Rubinius returns true for all three

    💎 $ ruby -v -e 'p 0x800000000000027 <= (0x800000000000027 + 0.0)'
    💎 ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin19]
    💎 $ ruby -v -e 'p 1 <= (1 + 0.0)'
    💎 ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin19]
    $ ruby -v -e 'p (2*64) <= ((2*64) + 0.0)'
    💎 ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin19]

    Replaced Bignum#~, Bignum#[email protected] primitives. (Brian Shirai)