Releases: rubinius/rubinius
Release 3.98
Version 3.98 (2018-02-07)
-
Report measurement insns as diagnostics. (Brian Shirai)
-
Add missing measurements file. (Brian Shirai)
-
Update rubygems to 2.7.5. (Brian Shirai)
-
Cripple Bundler concurrency on Rubinius. (Brian Shirai)
See eg #3781 (comment)
and https://github.com/bundler/bundler/issues/6274
and historically rubygems/bundler#5142 -
Added more measurement diagnostics. (Brian Shirai)
Release 3.97
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
Version 3.96 (2018-01-26)
- Reset autoload if currently loading autoload. Fixes #3513. (Brian Shirai)
- Improved halting process. (Brian Shirai)
Release 3.95
Version 3.95 (2018-01-25)
- Fixed pre-install Bundler 1.11.2. (Brian Shirai)
Release 3.94
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
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
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 wronggem
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 fromconfiguration
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
runninggem 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
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:
- Memory on the call stack (ie not C locals) like the CallFrame object;
- 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; - Unmanaged memory that is closely related (eg MachineCode, CallSite)
to managed (eg Ruby) objects; - 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
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 fragmentbuffer += 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
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)