rubinius

The Rubinius Language Platform

MPL-2.0 License

Stars
3.1K

Bot releases are hidden (Show)

rubinius - Release 4.0

Published by brixen over 5 years ago

Version 4.0 (2019-05-04)

rubinius - Release 3.107

Published by brixen over 6 years ago

Version 3.107 (2018-07-15)

  • Fixed marking finalizer of ManagedFinalizer. (Brian Shirai)
rubinius - Release 3.106

Published by brixen over 6 years ago

Version 3.106 (2018-07-07)

  • Align frozen object's error message with MRI. (Jun Aruga)
  • Normalize RUBY_T_xxx definitions with MRI. (Brian Shirai)
    Taken from github.com/ruby/ruby commit 4b1fbbe92a758416294c3f336bb8e22bab3f1ff0
rubinius - Release 3.105

Published by brixen over 6 years ago

Version 3.105 (2018-05-28)

  • Load paths with trailing separator. Fixes #3797. (Brian Shirai)
rubinius - Release 3.104

Published by brixen over 6 years ago

Version 3.104 (2018-05-15)

  • Add NULL check to reference_p predicate. (Brian Shirai)
rubinius - Release 3.103

Published by brixen over 6 years ago

Version 3.103 (2018-05-11)

  • Populate INCFLAGS rather than CFLAGS at configure time (Aaron Stone)
  • Update configure to use incflags. (Brian Shirai)
  • Update rbconfig to use incflags. (Brian Shirai)
rubinius - Release 3.102

Published by brixen over 6 years ago

Version 3.102 (2018-05-11)

Thanks to @sodabrew and @saizai for figuring out what was happening.

rubinius - Release 3.101

Published by brixen over 6 years ago

Version 3.101 (2018-05-05)

  • Switch to new MemoryHeader. (Brian Shirai)
  • Add mutex header. (Brian Shirai)
  • Cache Fiber's last value. (Brian Shirai)
    In the Rubinius implementation, every Fiber is actually a separate
    pthread that is coordinated by the owning Thread object. Passing values
    from and to the Fiber is mediated by the Thread.

Behind both a Thread and a Fiber is a data structure for various
information that supports the functioning of the Thread or Fiber. When
the underlying pthread function terminates, it sets sets that structure
to a "zombie" status so that its resources can eventually be released.
In doing so, it removes the reference to the Thread object associated
with the Fiber, so we need to cache the last value in the Fiber itself.

  • Fix isinf/isnan namespace issue on GNU stdlib. (Brian Shirai)
  • In README and README.md, refer to rubinius-book/getting_rubinius.html for more detailed information about building from source. (Jack Desert)
  • Don't set object reference to NULL. (Brian Shirai)
  • Hide some more core library methods. (Brian Shirai)
  • Reset logger lock after fork(). (Brian Shirai)
rubinius - Release 3.100

Published by brixen over 6 years ago

Version 3.100 (2018-03-02)

  • Add seq number & nodename to diagnostics JSON. (Brian Shirai)
  • Use better supported time rendering. (Brian Shirai)
  • Add thread name & ID to diagnostics. (Brian Shirai)
  • Add new object header. (Brian Shirai)
    The new header and extended header provide several capabilities:
  1. All header assignments are concurrency safe (ie devoid of
    pathological data races in read+update+write and write+write scenarios);
  2. Enables two kinds of managed objects: object-oriented ones (ie
    instances of a class) and data-oriented ones (ie instances of a type);
  3. Allows for asserting the "ownership" of managed objects based on the
    thread_id signature;
  4. Allows for moving objects by designating the location of an object as
    a pointer "forwarding" to the new location of the object;
  5. Allows for pinning a managed object so that its location cannot be
    changed;
  6. Allows for "visiting" an object by tracing the objects it references
    independently from the garbage collector's tracing of objects so that
    a subgraph of the object graph can be traced in a way that
    interleaves with the activity of the garbage collector marking
    visited objects;
  7. Allows for retaining objects based on a count of references to that
    object instead of only by reachability (ie the transitive closure
    over the object graph);
  8. Allows for extending the header to consume more than a single machine
    word (assumes 64-bit architecture);
  9. Allows for assigning a unique ID to an object that is bounded by the
    range of a Fixnum value by using an extended header;
  10. Enables storing a fixed-point memory address that indirectly
    references the managed object to provide opaque object references
    for the C-API;
  11. Allows for locking an object by the thread owning the object, or
    expanding the locking mechanism to a system-dependent mutex;
  12. Enables type-specific bits of information in the header.
  • Add object_id and C-API handle to new header. (Brian Shirai)
  • Replaced C macro approach to MemoryHeader. (Brian Shirai)
  • Added more MemoryHeader operations. (Brian Shirai)
  • Fixed variable reference. (Brian Shirai)
  • Fixed setting referenced count. (Brian Shirai)
  • Fixed MemoryHeader::get_object_id. (Brian Shirai)
  • Fixed MemoryHeader::get_handle. (Brian Shirai)
  • Added MemoryHeader locking. (Brian Shirai)
  • Try to use LLVM 5.0 on Travis Linux. (Brian Shirai)
  • Try forcing libc++ on Travis. (Brian Shirai)
  • Try installing libc++ on Travis. (Brian Shirai)
  • Of course I'd want libc++ without the ABI FFS. (Brian Shirai)
  • Fixed lock test. (Brian Shirai)
  • temp fix for cleaning up after gems with C-exts (Chuck Remes)
  • Remove legacy test-unit and preinstall test-unit gem. (Brian Shirai)
  • Use LLVM 5.0 for building binaries for Linux. (Brian Shirai)
  • Revert to non-libc++. (Brian Shirai)
  • Remove memory header lock test temporarily. (Brian Shirai)
  • Fixed disabling VM test. (Brian Shirai)
rubinius - Release 3.99

Published by brixen over 6 years ago

Version 3.99 (2018-02-09)

  • Add profiler minimum sample config for reporting. (Brian Shirai)
  • Fix inline cache. Closes #3783. (Brian Shirai)
rubinius - Release 3.98

Published by brixen over 6 years ago

Version 3.98 (2018-02-07)

rubinius - Release 3.97

Published by brixen over 6 years ago

Version 3.97 (2018-02-05)

  • Use internal Rubinius FFI TimeVal. (Brian Shirai)
  • Start assertion, code execution insns. (Brian Shirai)
  • Implement m_log insn. (Brian Shirai)
  • Update compiler. (Brian Shirai)
  • Implement some assertion instructions. (Brian Shirai)
  • Cleanup configuration. (Brian Shirai)
  • Start migrating metrics to diagnostics. (Brian Shirai)
  • More diagnostics restructuring. (Brian Shirai)
  • Start emitting diagnostics as JSON. (Brian Shirai)
  • Include for open(2). (Brian Shirai)
  • Add SymbolTable diagnostics. (Brian Shirai)
  • More memory diagnostics. (Brian Shirai)
  • Add metrics reporting to diagnostics. (Brian Shirai)
  • Don't capture State, it's passed. (Brian Shirai)
  • Start adding profiler entries. (Brian Shirai)
  • Report profiler index and entries. (Brian Shirai)
  • Fix warning. (Brian Shirai)
  • Use more efficient profiler format. (Brian Shirai)
  • Handle interleaving intermittent & recurring diagnostics. (Brian Shirai)
  • Add output for remaining diagnostics/metrics. (Brian Shirai)
rubinius - Release 3.96

Published by brixen over 6 years ago

Version 3.96 (2018-01-26)

  • Reset autoload if currently loading autoload. Fixes #3513. (Brian Shirai)
  • Improved halting process. (Brian Shirai)
rubinius - Release 3.95

Published by brixen over 6 years ago

Version 3.95 (2018-01-25)

  • Fixed pre-install Bundler 1.11.2. (Brian Shirai)
rubinius - Release 3.94

Published by brixen over 6 years ago

Version 3.94 (2018-01-24)

  • Fix process-critical section management. Related to #3781. (Brian Shirai)
  • Synchronize rubygems methods that use Psych. Related to #3781. (Brian Shirai)
  • Synchronize fetching C-API Handle index. Related to #3781. (Brian Shirai)
  • Revert to Bundler 1.11.2. Related to #3781. (Brian Shirai)
  • Fixed callee. Closes #3782. (Brian Shirai)
  • Fixed MethodPrediction inheritance. (Brian Shirai)
  • Check VM::current() in C-API. Fixes #3759. (Brian Shirai)
  • Don't fail to install if missing gem. (Brian Shirai)
rubinius - Release 3.93

Published by brixen over 6 years ago

Version 3.93 (2018-01-20)

  • Improved installing gems. (Brian Shirai)

  • Update Bundler. (Brian Shirai)

  • Fixed [const_]defined? under autoload. Closes #3769. (Brian Shirai)

  • fix bug where 'abstract' class FileDescriptor is instantiated; always default to Buffered (Chuck Remes)

  • Fix defined? with autoload better. Closes #3769 again. (Brian Shirai)

  • Always parenthesize macro arguments. (Brian Shirai)

  • Don't remove codedb cache. (Brian Shirai)
    We may need it for the release tarball.

  • Remove primitives previously used for defined?. (Brian Shirai)

rubinius - Release 3.92

Published by brixen almost 7 years ago

Version 3.92 (2018-01-17)

  • Update rubygems to 2.7.4. (Brian Shirai)
    Updating rubygems-update
    Successfully installed rubygems-update-2.7.4
    Installing RubyGems 2.7.4

=== 2.6.14 / 2017-10-09

Security fixes:

  • Whitelist classes and symbols that are in loaded YAML.
    See CVE-2017-0903 for full details.
    Fix by Aaron Patterson.

=== 2.6.13 / 2017-08-27

Security fixes:

  • Fix a DNS request hijacking vulnerability. (CVE-2017-0902)
    Discovered by Jonathan Claudius, fix by Samuel Giddins.
  • Fix an ANSI escape sequence vulnerability. (CVE-2017-0899)
    Discovered by Yusuke Endoh, fix by Evan Phoenix.
  • Fix a DOS vulnerability in the query command. (CVE-2017-0900)
    Discovered by Yusuke Endoh, fix by Samuel Giddins.
  • Fix a vulnerability in the gem installer that allowed a malicious gem
    to overwrite arbitrary files. (CVE-2017-0901)
    Discovered by Yusuke Endoh, fix by Samuel Giddins.

=== 2.6.12 / 2017-04-30

Bug fixes:

  • Fix test_self_find_files_with_gemfile to sort expected files. Pull
    request #1880 by Kazuaki Matsuo.
  • Fix issue for MinGW / MSYS2 builds and testing. Pull request #1879 by
    MSP-Greg.
  • Fix gem open to open highest version number rather than lowest. Pull
    request #1877 by Tim Pope.
  • Add a test for requiring a default spec as installed by the ruby
    installer. Pull request #1899 by Samuel Giddins.
  • Fix broken --exact parameter to gem command. Pull request #1873 by Jason
    Frey.
  • [Installer] Generate backwards-compatible binstubs. Pull request #1904
    by Samuel Giddins.
  • Fix pre-existing source recognition on add action. Pull request #1883 by
    Jonathan Claudius.
  • Prevent negative IDs in output of #inspect. Pull request #1908 by Vít
    Ondruch.
  • Allow Gem.finish_resolve to respect already-activated specs. Pull
    request #1910 by Samuel Giddins.

=== 2.6.11 / 2017-03-16

Bug fixes:

  • Fixed broken tests on ruby-head. Pull request #1841 by
    SHIBATA Hiroshi.
  • Update vendored Molinillo to 0.5.7. Pull request #1859 by Samuel
    Giddins.
  • Avoid activating Ruby 2.5 default gems when possible. Pull request #1843
    by Samuel Giddins.
  • Use improved resolver sorting algorithm. Pull request #1856 by
    Samuel Giddins.

=== 2.6.10 / 2017-01-23

Bug fixes:

  • Fix require calling the wrong gem method when it is overridden.
    Pull request #1822 by Samuel Giddins.

=== 2.6.9 / 2017-01-20

Bug fixes:

  • Allow initializing versions with empty strings. Pull request #1767 by
    Luis Sagastume.
  • Fix TypeError on 2.4. Pull request #1788 by Nobuyoshi Nakada.
  • Don't output mkmf.log message if compilation didn't fail. Pull request
    #1808 by Jeremy Evans.
  • Fixed broken links and overzealous URL encoding in gem server. Pull
    request #1809 by Nicole Orchard.
  • Update vendored Molinillo to 0.5.5. Pull request #1812 by Samuel
    Giddins.
  • RakeBuilder: avoid frozen string issue. Pull request #1819 by Olle
    Jonsson.

=== 2.6.8 / 2016-10-29

Bug fixes:

  • Improve SSL verification failure message. Pull request #1751
    by Eric Hodel.
  • Ensure to_spec falls back on prerelease specs. Pull request
    #1755 by André Arko.
  • Update vendored Molinillo to 0.5.3. Pull request #1763 by
    Samuel Giddins.

=== 2.6.7 / 2016-09-26

Bug fixes:

  • Install native extensions in the correct location when using the
    --user-install flag. Pull request #1683 by Noah Kantrowitz.
  • When calling Gem.sources, load sources from configuration
    if present, else use the default sources. Pull request #1699
    by Luis Sagastume.
  • Fail gracefully when attempting to redirect without a Location.
    Pull request #1711 by Samuel Giddins.
  • Update vendored Molinillo to 0.5.1. Pull request #1714 by
    Samuel Giddins.

=== 2.6.6 / 2016-06-22

Bug fixes:

  • Sort installed versions to make sure we install the latest version when
    running gem update --system. As a one-time fix, run
    gem update --system=2.6.6. Pull request #1601 by David Radcliffe.

RubyGems installed the following executables:
/source/rubinius/rubinius/bin/gem

RubyGems system software updated

  • Add instruction pointer to backtrace. (Brian Shirai)
  • Ensure #initialize is private. Fixes #3780. (Brian Shirai)
  • Add Location::Missing#ip. (Brian Shirai)
rubinius - Release 3.91

Published by brixen almost 7 years ago

Version 3.91 (2018-01-15)

  • WIP: Fix range of Fixnum. Closes #3636. (Brian Shirai)

  • Introduce proper lock for internalizing CompiledCode. (Brian Shirai)

  • Cleanup old C++ missing classes. (Brian Shirai)

  • Remove missing/hashtable for Leopard. (Brian Shirai)

  • Accommodate registers. (Brian Shirai)
    This is a temporary approach until the CallFrame is re-worked to treat
    registers as first-class entities.

  • Add more instruction templates. (Brian Shirai)

  • Unmarshal CompiledCode#registers. (Brian Shirai)

  • Remove VM unmarshal tests. (Brian Shirai)
    This facility is so fundamental that there's no way for Rubinius to
    function if it isn't working, so the test for it adds no information and
    duplicates work.

  • Add implementation for more new instructions. (Brian Shirai)

  • Update compiler version. (Brian Shirai)

  • More instructions and specs. (Brian Shirai)

  • Use unmanaged memory for CallSite. (Brian Shirai)
    This is a provisional implementation awaiting full support for reference
    counting in the managed heap and garbage collector.

There are broadly four kinds of memory in Rubinius:

  1. Memory on the call stack (ie not C locals) like the CallFrame object;
  2. Unmanaged memory that is part of C/C++ structures (eg an instance of
    std::string) and really not closely related to managed (eg Ruby)
    objects;
  3. Unmanaged memory that is closely related (eg MachineCode, CallSite)
    to managed (eg Ruby) objects;
  4. Managed (eg Ruby) objects.

It's possible to put both 3 and 4 into the same category (ie managed
objects) if we allow for every one of those objects to use an extra
machine word or two (or some sort of side table) in order to keep track
of them.

The challenge in this approach is to ensure that the garbage collector
knows how to process them to find all the references they may contain.

By creating a composite model for the garbage collector that uses both
tracing and reference counting, it's possible to put managed objects in
places that won't be traced, and preserve their lifetime by counting how
many times they are referenced by live objects.

Another thing to note about 3 and 4 is that the difference mostly comes
down to whether the object will be exposed as a reference to the managed
(eg Ruby) code. For example, can it be stored in a local variable, or in
an Array or Hash? If it can be stored, then it needs to respond like a
managed object (eg what happens when it's passed to the method 'p').

This new mechanism maintains CallSite as a Ruby object because it's
useful for conveying the information at the call site to Ruby code. In
the future, arbitrary objects will be able to interact by means of
functions attached to them via FFI, so the system can handle non-managed
objects in a manner that is consistent with how it handles managed
objects.

rubinius - Release 3.90

Published by brixen almost 7 years ago

Version 3.90 (2018-01-06)

  • Reset ThreadNexus mutex after fork(). (Brian Shirai)
  • Add start of PEG instructions. (Brian Shirai)
  • Update instruction list. (Brian Shirai)
  • Update compiler gems. (Brian Shirai)
  • Use different synch mechanism in Thread spec. (Brian Shirai)
  • Update gems_list.txt. (Brian Shirai)
  • Start adding instrumentation instructions. (Brian Shirai)
  • update minitest, fixes and closes GH-3760 (Chuck Remes)
  • minitest is a special case for gem updates, so update scripts that refer to it (Chuck Remes)
  • update rake, rb-readline, and rdoc to latest versions (Chuck Remes)
  • fallback to rdoc 5.1.0 last version that does NOT require ripper (Chuck Remes)
  • only print log message if (Chuck Remes)
  • Implement m_counter insn. (Brian Shirai)
  • Better Thread#kill spec. (Brian Shirai)
  • Update some diagnostics. (Brian Shirai)
  • verify that each with a limit returns no more than limit chars (Chuck Remes)
  • fix each(limit) - longer explanation below (Chuck Remes)
    When calling each(limit) or each_line(limit) there is a lot of
    logic to figure out if a separator or limit were passed. In
    the case of #each, when a limit is specified it still picks up
    $/ as the separator. Therefore EachReader#read_to_separator_with_limit
    is used. There was a bug where a buffer was being assigned another
    string fragment buffer += result which returned a new buffer
    object. The calling method was relying on buffer being the same
    object reference passed to its child method. Changing to #<<
    resolved the bug.

Separately, the spec to test this behavior showed that #each_line
broke. It has similar logic to figure out separator or limit but
in this case it was passing each(5, 5, &blk) after figuring out
the limit. The fix is to reset sep_or_limit once we know what
it is supposed to be.

Incidently the only way to call EachReader#read_to_limit is to
set $/ = nil and send no separator in the #each method call.

  • Fixed inline cache for recursive calls. (Brian Shirai)
    We cache a method at a call site after the method has been invoked so
    that we don't cache methods that raised exceptions.

But when a method is called recursively, the state of the cache will
have changed and when unwinding from the dispatch call, we need check
that the state of the cache is what we assume it to be. A similar thing
can happen when code is executing concurrently.

rubinius - Release 3.89

Published by brixen almost 7 years ago

Version 3.89 (2018-01-02)

  • Open read-only CodeDB cache. (Brian Shirai)
  • Respect --stagingdir option. (Brian Shirai)
  • Fix configure. (Brian Shirai)
  • Make Prediction::valid std::atomic. (Brian Shirai)
  • Rework finalizer thread synchronization. (Brian Shirai)
  • Insulate C-ext build and gem install from DESTDIR. (Brian Shirai)
Package Rankings
Top 6.73% on Proxy.golang.org
Badges
Extracted from project README
Gitter Build Status