pkgsrc/lang/ruby25-base/ALTERNATIVES
taca 2dfeb784d5 lang/ruby25-base: add ruby25-base 2.5.0
Ruby 2.5.0 is the first stable release of the Ruby 2.5 series. It introduces
many new features and performance improvements. The notable changes are as
follows:

o New Features

* rescue/else/ensure are now allowed to be used directly with do/end
  blocks. [Feature #12906]
* Add yield_self to yield given block in its context. Unlike tap, it returns
  the result of the block. [Feature #6721]
* Support branch coverage and method coverage measurement. The branch coverage
  indicates which branches are executed and which are not. The method coverage
  indicates which methods are invoked and which are not. By running a test
  suite with these new features, you will know which branches and methods are
  executed, and evaluate total coverage of the test suite more
  strictly. [Feature #13901]
* Hash#slice [Feature #8499] and Hash#transform_keys [Feature #13583]
* Struct.new can create classes that accept keyword arguments. [Feature
  #11925]
* Enumerable#any?, all?, none?, and one? accept a pattern argument. [Feature
  #11286]
* Top-level constant look-up is no longer available. [Feature #11547]
* One of our most loved libraries, pp.rb, is now automatically loaded. You no
  longer have to write require "pp". [Feature #14123]
* Print backtrace and error message in reverse order (oldest call first, most
  recent call last). When a long backtrace appears on your terminal (TTY), you
  can easily find the cause line at the bottom of the backtrace. Note that the
  order is reversed only when the backtrace is printed out to the terminal
  directly. [Feature #8661] [experimental]

o Performance improvements

* About 5-10% performance improvement by removing all trace instructions from
  overall bytecode (instruction sequences). The trace instruction was added to
  support the TracePoint. However, in most cases, TracePoint is not used and
  trace instructions are pure overhead. Instead, now we use a dynamic
  instrumentation technique. See [Feature #14104] for more details.
* Block passing by a block parameter (e.g. def foo(&b); bar(&b); end) is about
  3 times faster than Ruby 2.4 by “Lazy Proc allocation” technique. [Feature
  #14045]
* Mutex is rewritten to be smaller and faster. [Feature #13517]
* ERB now generates code from a template twice as fast as Ruby 2.4.
* Improve performance of some built-in methods including Array#concat,
  Enumerable#sort_by, String#concat, String#index, Time#+, and more.
* IO.copy_stream uses copy_file_range(2) to copy offload. [Feature #13867]

o Other notable changes since 2.4

* SecureRandom now prefers OS-provided sources over OpenSSL. [Bug #9569]
* Promote cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr,
  scanf, sdbm, stringio, strscan, webrick, zlib from standard libraries to
  default gems.
* Update to Onigmo 6.1.3.
  - It adds the absence operator.
  - Note that Ruby 2.4.1 also includes this change.
* Update to Psych 3.0.2.
* Update to RubyGems 2.7.3.
* Update to RDoc 6.0.1.
  - Switch the lexer from IRB based one to Ripper. This dramatically improves
    the performance of document generation.
  - Fix a significant amount of bugs that existed over ten years.
  - Add support for new Ruby syntax from the latest versions.
* Update supported Unicode version to 10.0.0.
* Thread.report_on_exception is now set to true by default. This change helps
  debugging of multi-threaded programs. [Feature #14143]
* IO#write now receives multiple arguments. [Feature #9323]

See NEWS or commit logs for details.
2018-01-08 14:19:06 +00:00

5 lines
188 B
Text

bin/erb @PREFIX@/bin/erb@RUBY_SUFFIX@
bin/gem @PREFIX@/bin/gem@RUBY_SUFFIX@
bin/irb @PREFIX@/bin/irb@RUBY_SUFFIX@
bin/rake @PREFIX@/bin/rake@RUBY_SUFFIX@
bin/ruby @PREFIX@/bin/@RUBY_NAME@