Ruby Major Releases Cheatsheet
Ruby (MRI) most relevant versions.
| Ruby 1.8.0 | |
| 2003-08 | |
class.allocate |
|
| first argument parentheses change | |
to_str |
|
| multiple assignment behaviour change | |
| many lib changes | |
| Ruby 1.8.5 | |
| 2006-08 | |
| Non-blocking IO | |
| rdoc/ri changes | |
| Ruby 1.8.6 | |
| 2007-03 | |
| Faster mutex | |
| Ruby 1.8.7 | |
| 2008-06 | |
| Enumerator (from 1.9) | |
| Ruby 1.9 | |
| 2007-12 | |
| new hash syntax | |
| new lambda syntax | |
| splats/mandatory arguments changes… | |
| block arguments are local; new semantics | |
| new lines before : or . | |
| source code encoding/magic comments | |
| constant definition semantics | |
| Enumerators | |
| Hash preserves order | |
| String encodings | |
String#[] semantics, ?x |
|
rray#choice nitems |
|
to_s == inspect in Hash, etc |
|
| Fibers | |
| Native Threads / GIL | |
| YARV | |
String#each_line/lines, not each |
|
| continuations moved to library | |
| Precision removed | |
| Ruby 1.9.2 | |
| 2010-08 | |
Regexp chages (\p…) |
|
$: no current dir; use require_relative |
|
Float#rationalize INFINITY NAN |
|
| Ruby 1.9.3 | |
| 2011-10 | |
| Regexp changes | |
| libs/internal | |
| Ruby 2.0 | |
| 2013-02 | |
| keyword arguments | |
| refinements (experimental) | |
%i %I symbol arrays |
|
| UTF-8 default encoding | |
| lazy enumeration | |
| Ruby 2.1 | |
| 2013-12 | semantic versioning from now on; 2.1.x vs 1.9.3-px |
| refinements | |
| frozen string literals | |
| r,i numeric suffixes | |
| def returns name as symbol | |
| required keyword arguments (without default value) | |
| RGenGC (generational GC) | |
| Ruby 2.2 | |
| 2014-12-25 | |
| Incremental GC, Symbol GC | |
Float#next_float, prev_float |
|
Enumerable#slice_after |
|
File.birthtime |
Numerical features availability
Float#roundwith precision argument 1.9Rationalwith 0 denominator raisesZeroDivisionErrorsince 1.9.1 1Float#to_r1.9.1 1Float#rationalize1.9.2Float::NAN,INFINITY: 1.9.2Float(hex-string)/printf %a %A: 1.9.2BigDecimalconstructor fromInteger,Float+precision,Rational+precision: 1.9.3BigMathmodule functions (rather that needing to includeBigMath…): 1.9.3- bigdecimal/util
#to_d1.9.3 Float#next_floatRuby 2.2Float#prev_floatRuby 2.2