Language core features:
· Keyword arguments, which give flexibility to API design
· Module#prepend, which is a new way to extend a class
· A literal %i, which creates an array of symbols easily
· __dir__, which returns the dirname of the file currently being executed
· The UTF-8 default encoding, which make many magic comments omissible
Built-in libraries:
· Enumerable#lazy and Enumerator::Lazy, for (possibly infinite) lazy stream
· Enumerator#size and Range#size, for lazy size evaluation
· #to_h, which is a new convention for conversion to Hash
· Onigmo, which is a new regexp engine (a fork of Oniguruma)
· Asynchronous exception handling API
Debug support:
· DTrace support, which enables run-time diagnosis in production
· TracePoint, which is an improved tracing API
Performance improvements:
· GC optimization by bitmap marking
· Kernel#require optimization which makes Rails startup very fast
· VM optimization such as method dispatch
· Float operation optimization
· This release includes some security fixes, and other many bug fixes.
· Turn on verification of server SSL certs.
· Disallow redirects from https to http.
· Fix for Ruby OpenSSL module: Allow "0/n splitting" as a prevention for the TLS BEAST attack.
· Fixed: LLVM/clang support.
· Fixed: GCC 4.7 support.
· Other bug fixes.
· Fixed denial of service attack for Ruby's Hash algorithm in the 1.8.7 series.
· Ruby's License is changed from a dual license with GPLv2 to a dual license with 2-clause BSDL.
· rb_scan_args() is enhanced with support for option hash argument extraction.
· ruby_vm_at_exit() added. This enables extension libs to hook a VM termination.
· Regexps now support Unicode 6.0.
· Should not use fixed path name for tests.
· Net::SMTP should close the SSL connection if the connection verification fails.
· Fixed more for readline, and so on.
· Decrement for ungotten line.
· Get rid of backtrack explosion by nested repeat operators.
· Should succeed the taint status from the origin.
· Many new methods
· New socket API (improved IPv6 support)
· New encodings
· New Random class which supports several random numbers generators
· Time is reimplemented. The bug with year 2038 is fixed.
· regex improvements
· $: doesn't include the current direcotry.
· dl is reimplemented on top of libffi.
· New psych library wrapping libyaml which can replace syck.