Skip to content

Releases: rubinius/rubinius

Release 3.98

08 Feb 00:58
97223a3
Compare
Choose a tag to compare

Version 3.98 (2018-02-07)

Release 3.97

06 Feb 01:36
0f32aad
Compare
Choose a tag to compare

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)

Release 3.96

27 Jan 01:11
1205239
Compare
Choose a tag to compare

Version 3.96 (2018-01-26)

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

Release 3.95

25 Jan 16:06
b71836b
Compare
Choose a tag to compare

Version 3.95 (2018-01-25)

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

Release 3.94

25 Jan 06:29
7ce2379
Compare
Choose a tag to compare

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)

Release 3.93

20 Jan 22:23
7551236
Compare
Choose a tag to compare

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)

Release 3.92

17 Jan 18:08
75eb7fe
Compare
Choose a tag to compare

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)

Release 3.91

16 Jan 06:01
8a429c4
Compare
Choose a tag to compare

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.

Release 3.90

06 Jan 22:46
273aea3
Compare
Choose a tag to compare

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.

Release 3.89

02 Jan 20:58
e447ad4
Compare
Choose a tag to compare

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)