* io.c (rb_open_file): encoding in mode string was ignored if perm is
[ruby-svn.git] / doc / NEWS
blob729354df2de48824ec7118c1f217e2f6940d4a87
1 Changes for 1.9
3 Incompatible (Severe)
5     * New syntax and semantics
6           o Block arguments are always local
7           o Block arguments
8           o New semantics for block arguments
9           o Block local variables
10     * Array
11           o Array#nitems was removed (use count {|i| !i.nil?})
12           o Array#choice was removed (use sample)
13     * String
14           o No longer an Enumerable
15           o ?c semantics
16           o "One-char-wide" semantics for String#[] and String#[]= [Ruby2]
17           o Encoding-awareness
18     * IO operations
19           o IO#getc
21 Incompatible (Trivial)
23     * New syntax and semantics
24           o Method used for splat arguments: #to_splat
25           o defined? and local variables
26     * Kernel and Object
27           o Kernel#require
28     * Class and Module
29           o Class variables behavior
30           o Module#attr is an alias of attr_reader
31           o Module#instance_methods, #private_instance_methods, #public_instance_methods
32           o Extra subclassing check when binding UnboundMethods
33     * Exceptions
34           o Equality of exceptions
35           o SystemStackError
36           o SecurityError
37           o Removed Exception#to_str [Ruby2]
38     * Array
39           o Array#[m,n] = nil places nil in the array.
40     * Hash
41           o Hash#to_s is equivalent to Hash#inspect
42           o Semantics for Hash#each and Hash#each_pair
43           o Hash#select
44     * Integer
45           o Integer(nil) raises TypeError
46     * Struct
47           o Struct#inspect
48     * File and Dir operations
49           o #to_path in File.path, File.chmod, File.lchmod, File.chown, File.lchown, File.utime, File.unlink... [Ruby2]
50           o Dir.[], Dir.glob
51           o Dir.exist?
52     * IO operations
53           o Non-blocking IO
54           o Kernel#open takes encoding specified
55           o IO#initialize now accepts an IO argument
56           o StringIO#readpartial
57           o IO.try_convert
58           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
59           o IO#ungetc, StringIO#ungetc
60           o IO#internal_encoding, IO#external_encoding, IO#set_encoding
61           o IO.pipe takes encoding option
62     * Time
63           o New format in Time#to_s
64           o Timezone information preserved on Marshal.dump/load
65     * Symbols: restriction on literal symbols
66     * Readline
67           o If Readline uses libedit, Readline::HISTORY[0] returns the first of the history.
68     * $SAFE and bound methods
69     * Deprecation
70           o VERSION and friends
71           o Kernel.to_a
72           o Kernel#getc
73           o Object#type
74           o Hash#index
75           o ENV.index
76           o Symbol#to_int
77           o Removed Array and Hash #indices, #indexes
78           o libraries: base64, mailread, getopts, parsearg, soap, wsdl
80 Compatible
82     * New syntax and semantics
83           o New literal hash syntax
84           o New syntax for lambdas
85           o .() and calling Procs without #call/#[]
86           o Mandatory arguments after optional arguments allowed
87           o Multiple splats allowed
88           o Arguments to #[]
89           o printf-style formatted strings (%)
90           o Newlines allowed before ternary colon
91     * Kernel and Object
92           o BasicObject
93           o Object#=~
94           o Kernel#instance_variable_defined?
95           o Kernel#define_singleton_method
96           o Kernel#singleton_methods, Kernel#methods
97     * Class and Module
98           o Module#const_defined?, #const_get and #method_defined?
99           o Module#class_variable_defined?
100           o #class_variable_{set,get}
101           o Class of singleton classes
102     * Binding#eval
103     * Blocks and Procs
104           o Arity of blocks without arguments
105           o proc is now a synonym of Proc.new
106     * Blocks and Procs
107           o Proc#yield
108           o Passing blocks to #[]
109           o Proc#lambda?
110     * Enumerable and Enumerator
111           o Enumerable#map,collect_all called without a block returns
112             an enumerator.
113     * Regexp#match, String#match
114           o Regexp#match, String#match
115     * Fiber: coroutines/micro-threads
116     * Array
117           o Array#delete returns a deleted element rather than a given
118             object
119           o Array#to_s is equivalent to Array#inspect
120           o Array.try_convert
121     * Hash
122           o preserving item insertion order
123           o Hash#_compare_by_identity and Hash#compare_by_identity?
124           o Hash.try_convert
125     * Numeric
126           o Numeric#upto, #downto, #times, #step
127           o Numeric#scalar?, Complex#scalar?
128           o Numeric#div
129           o Numeric#fdiv
130     * Range
131           o Range#cover?
132           o Range#include?
133           o Range#min, Range#max
134     * Regexp
135           o Regexp#=== matches symbols
136           o Regexp.try_convert
137     * String
138           o String#clear
139           o String#ord
140           o String#encoding
141           o String#force_encoding
142           o String#unpack with a block
143           o String#hash
144           o String.try_convert
145           o String.encoding, String#force_encoding, String#encode
146     * Symbol
147           o Zero-length symbols allowed
148           o Symbol#=== matches strings
149           o Symbol#intern
150           o Symbol#encoding
151           o Symbol methods similar to those in String
152     * Math
153           o Math#log and Math#log2
154     * File and Dir operations
155           o New methods
156     * Process
157           o Process.daemon
158     * Readline
159           o Readline.vi_editing_mode?
160           o Readline.emacs_editing_mode?
161           o Readline.HISTORY::clear
162     * Misc. new methods
163           o public_send
164           o GC.count
165           o ObjectSpace.count_objects
166           o Method#hash, Proc#hash
167           o __callee__
169 * Implementation
170     * Memory Diet
171       * Object Compaction - Object, Array, String, Hash, Struct, Class, Module
172       * st_table compaction (inlining small tables)
173     * YARV