In message “Re: [ruby-dev:32384] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Tue, 27 Nov 2007 23:36:52 +0900, “Akinori MUSHA”
[email protected] writes:
|
|[1 <text/plain; ISO-2022-JP (7bit)>]
|e$B!!:G6a$5$$j5$L#$NIp<T$G$9!#e(B
|
|e$B!!e(B1.9.1e$B$N%j%j!<%9A0$K!“$<$R$H$be(B1.8e$B7O$N$h$&$Ke(B NEWS e$B%U%!%$%k$re(B
|e$BMQ0U$7$?$$$G$9!#e(B(e$B%f!<%6$K8+$($kJQ99e(B/e$BDI2CE@%j%9%He(B)
|
|e$B!!$3$l$r<h$j9~$a$l$P$$$$$N$+$J$H;W$$$^$9$,!”$I$&$G$7$g$&!#e(B
|
| eigenclass.org
e$B$=$3$+$i$5$i$K;d$,$^$H$a$?$b$N$G$9!#$,!“7k9=8+Mn$H$7$,$”$j$=e(B
e$B$&!#:G=i$N0lJb$/$i$$$K$O$J$k$G$7$g$&!#e(B
Incompatible (Severe)
* New syntax and semantics
o Block arguments are always local
o Block arguments
o New semantics for block arguments
o Block local variables [EXPERIMENTAL]
* String
o No longer an Enumerable
o ?c semantics
o "One-char-wide" semantics for String#[] and String#[]=
[Ruby2]
o Encoding-awareness
* IO operations
o IO#getc
Incompatible (Trivial)
* New syntax and semantics
o Method used for splat arguments: #to_splat
o defined? and local variables
* Kernel and Object
o Kernel#require
* Class and Module
o Class variables behavior
o Module#attr is an alias of attr_reader
o Module#instance_methods, #private_instance_methods,
#public_instance_methods
o Extra subclassing check when binding UnboundMethods
* Exceptions
o Equality of exceptions
o SystemStackError
o SecurityError
o Removed Exception#to_str [Ruby2]
* Array
o Array#nitems
o Array#[m,n] = nil places nil in the array.
* Hash
o Hash#to_s is equivalent to Hash#inspect
o Semantics for Hash#each and Hash#each_pair
o Hash#select
* Integer
o Integer(nil) raises TypeError
* Struct
o Struct#inspect
* File and Dir operations
o #to_path in File.path, File.chmod, File.lchmod, File.chown,
File.lchown, File.utime, File.unlink… [Ruby2]
o Dir.[], Dir.glob
o Dir.exist?
* IO operations
o Non-blocking IO
o IO#getbyte, IO#readbyte, StringIO#getbyte, StringIO#readbyte
o Kernel#open [Ruby2]
o IO#initialize now accepts an IO argument
o StringIO#readpartial
o IO#lines
o IO#bytes
o IO.try_convert
o Limit input in IO#gets, IO#readline, IO#readlines,
IO#each_line, IO#lines, IO.foreach, IO.readlines, StringIO#gets,
StringIO#readline, StringIO#each, StringIO#readlines
o IO#ungetc, StringIO#ungetc
* Time
o New format in Time#to_s
o Timezone information preserved on Marshal.dump/load
* Symbols: restriction on literal symbols
* $SAFE and bound methods
* Deprecation
o VERSION and friends
o StringScanner
o Kernel.to_a
o Kernel#getc
o Object#type
o File.exists?
o Hash#index
o ENV.index
o Symbol#to_int
o Removed Array and Hash #indices, #indexes
Compatible
* New syntax and semantics
o New literal hash syntax [Ruby2]
o New syntax for lambdas [VERY EXPERIMENTAL]
o .() and calling Procs without #call/#[] [EXPERIMENTAL]
o Mandatory arguments after optional arguments allowed
o Multiple splats allowed
o Arguments to #[]
o printf-style formatted strings (%)
o Newlines allowed before ternary colon
* Kernel and Object
o BasicObject
o #instance_exec
o Object#=~
o Object#tap
o Kernel#instance_variable_defined?
o Kernel#define_singleton_method
o Kernel#singleton_methods, Kernel#methods
* Class and Module
o Module#const_defined?, #const_get and #method_defined?
o Module#class_variable_defined?
o #class_variable_{set,get}
o Class of singleton classes
o #module_exec
* Binding#eval
* Blocks and Procs
o Arity of blocks without arguments
o proc is now a synonym of Proc.new
* Blocks and Procs
o Proc#yield
o Passing blocks to #[]
o Proc#lambda?
* Enumerable and Enumerator
o Enumerable methods called without a block
o Enumerable#cycle
o Enumerable#each_with_index
o Enumerable#first(n)
o Enumerable#group_by
o Enumerable#find_index
o Enumerable#take
o Enumerable#drop
o Enumerator#each
o Enumerable#inject (#reduce) without a block
o Enumerable#count
o Enumerable#reduce
o Enumerator#with_index [EXPERIMENTAL]
o Enumerable##min_by, #max_by
o Enumerable#zip
o Enumerable#minmax and minmax_by
o Enumerator#rewind
o Enumerator#next
* Regexp#match, String#match
o Regexp#match, String#match
* Fiber: coroutines/micro-threads
* Array
o Block argument to Array#index, Array#rindex [Ruby2]
o Array#combination
o Array#permutation
o Array#product
o Array#pop, Array#shift
o Array#to_s is equivalent to Array#inspect
o Array.try_convert
* Hash
o preserving item insertion order
o Hash#_compare_by_identity and Hash#compare_by_identity?
o Hash.try_convert
* Integer
o Integer#odd?, #even?
o Integer#pred
* Method
o Method#receiver
o Method#name
o Method#owner
* Numeric
o Numeric#upto, #downto, #times, #step
o Numeric#scalar?, Complex#scalar?
o Numeric#div
o Numeric#fdiv
* Range
o Range#cover?
o Range#include?
o Range#min, Range#max
* Regexp
o Regexp#=== matches symbols
o Regexp.try_convert
* String
o String#clear
o String#each_char
o String#ord
o String#partition, #rpartition
o String#lines
o String#bytes
o String#encoding
o String#force_encoding
o String#start_with?, #end_with?
o String#unpack with a block
o String#hash
o String#upto
o String.try_convert
* Symbol
o Zero-length symbols allowed
o Symbol#=== matches strings
o Symbol#intern
o Symbol#encoding
o Symbol methods similar to those in String
* Math
o Math#log and Math#log2
* File and Dir operations
o New methods
* Process
o Process.setrlimit
o Process.daemon
o Process.exec
* Misc. new methods
o GC.stress, GC.stress=
o Method#hash, Proc#hash
o __method__ and __callee__
o Symbol#to_proc
- Implementation
- Memory Diet
- Object Compaction - Object, Array, String, Hash, Struct, Class,
Module
- st_table compaction (inlining small tables)
- YARV