mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 433095e50e
			
		
	
	
		433095e50e
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			179 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Changes for 1.9
 | |
| 
 | |
| 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
 | |
|     * Array
 | |
|           o Array#nitems was removed (use count {|i| !i.nil?})
 | |
|           o Array#choice was removed (use sample)
 | |
|     * 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#[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 Kernel#open takes "t" for newline conversion
 | |
|           o Kernel#open takes encoding specified
 | |
|           o IO#initialize now accepts an IO argument
 | |
|           o StringIO#readpartial
 | |
|           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
 | |
| 	  o IO#internal_encoding, IO#external_encoding, IO#set_encoding
 | |
| 	  o IO.pipe takes encoding option
 | |
|     * Time
 | |
|           o New format in Time#to_s
 | |
|           o Timezone information preserved on Marshal.dump/load
 | |
|     * Symbols: restriction on literal symbols
 | |
|     * Readline
 | |
|           o If Readline uses libedit, Readline::HISTORY[0] returns the first of the history.
 | |
|     * $SAFE and bound methods
 | |
|     * Deprecation
 | |
|           o VERSION and friends
 | |
|           o Kernel.to_a
 | |
|           o Kernel#getc
 | |
|           o Object#type
 | |
|           o Hash#index
 | |
|           o ENV.index
 | |
|           o Symbol#to_int
 | |
|           o Removed Array and Hash #indices, #indexes
 | |
| 	  o libraries: base64, mailread, getopts, parsearg, soap, wsdl
 | |
| 
 | |
| Compatible
 | |
| 
 | |
|     * New syntax and semantics
 | |
|           o New literal hash syntax
 | |
|           o New syntax for lambdas
 | |
|           o .() and calling Procs without #call/#[]
 | |
|           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 Object#=~
 | |
|           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
 | |
|     * 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#map,collect_all called without a block returns
 | |
|             an enumerator.
 | |
|           o Enumerable#each_with_object [experimental]
 | |
|           o Enumerator#with_object [experimental]
 | |
|           o Enumerator.new { ... } [experimental]
 | |
|     * Regexp#match, String#match
 | |
|           o Regexp#match, String#match
 | |
|     * Encoding
 | |
|     * Encoding::Converter
 | |
|     * Fiber: coroutines/micro-threads
 | |
|     * Array
 | |
|           o Array#delete returns a deleted element rather than a given
 | |
|             object
 | |
|           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
 | |
|     * 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#ord
 | |
|           o String#encoding
 | |
|           o String#force_encoding
 | |
|           o String#unpack with a block
 | |
|           o String#hash
 | |
|           o String.try_convert
 | |
| 	  o String.encoding, String#force_encoding, String#encode
 | |
|     * 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.daemon
 | |
|     * Readline
 | |
|           o Readline.vi_editing_mode?
 | |
|           o Readline.emacs_editing_mode?
 | |
|           o Readline::HISTORY.clear
 | |
|     * Misc. new methods
 | |
|           o public_send
 | |
|           o GC.count
 | |
|           o ObjectSpace.count_objects
 | |
|           o Method#hash, Proc#hash
 | |
|           o __callee__
 | |
| 
 | |
| * Implementation
 | |
|     * Memory Diet
 | |
|       * Object Compaction - Object, Array, String, Hash, Struct, Class, Module
 | |
|       * st_table compaction (inlining small tables)
 | |
|     * YARV
 |