summaryrefslogtreecommitdiff
path: root/doc/NEWS-1.9.1
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-12 09:42:26 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-12 09:42:26 +0000
commitcef2867e6653c0f607e38d20384d4305280cf598 (patch)
tree643c924047c110e50c100e2906fe4aa5f8088193 /doc/NEWS-1.9.1
parent303c28d49b7a0990d597b753f9976a10d1e26a2f (diff)
Add historical NEWS files for the record.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'doc/NEWS-1.9.1')
-rw-r--r--doc/NEWS-1.9.1204
1 files changed, 204 insertions, 0 deletions
diff --git a/doc/NEWS-1.9.1 b/doc/NEWS-1.9.1
new file mode 100644
index 0000000000..faf2607efe
--- /dev/null
+++ b/doc/NEWS-1.9.1
@@ -0,0 +1,204 @@
+= NEWS
+
+This document is a list of user visible feature changes made between
+releases except for bug fixes.
+
+Note that each entry is kept so brief that no reason behind or
+reference information is supplied with. For a full list of changes
+with all sufficient information, see the ChangeLog file.
+
+== Changes since the 1.8.7 release
+
+=== Compatibility issues
+
+* language core
+
+ * New syntax and semantics
+ o Block arguments are always local
+ o Block arguments
+ o New semantics for block arguments
+ o Block local variables
+ o Method used for splat arguments: #to_splat
+ o defined? and local variables
+
+* builtin classes and objects
+
+ * 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 was removed (use count {|i| !i.nil?})
+ o Array#choice was removed (use sample)
+ o Array#[m,n] = nil places nil in the array.
+ * Enumerable and Enumerator
+ o Enumerable#map,collect_all called without a block returns
+ an enumerator.
+ * 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?
+ * String
+ o No longer an Enumerable
+ o ?c semantics
+ o "One-char-wide" semantics for String#[] and String#[]= [Ruby2]
+ o Encoding-awareness
+ * Hash
+ o Hash#to_s is equivalent to Hash#inspect
+ o Semantics for Hash#each and Hash#each_pair
+ o Hash#select returns a hash
+ o Hash#key is the new name for #index which has been deprecated.
+ o Most of the changes in Hash apply to hash like interfaces such as
+ ENV and *DBM.
+ * Integer
+ o Integer(nil) raises TypeError
+ * IO operations
+ o IO#getc
+ 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
+ * Struct
+ o Struct#inspect
+ * Symbols: restriction on literal symbols
+ * $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
+
+* bundled libraries
+
+ * Readline
+ o If Readline uses libedit, Readline::HISTORY[0] returns the first of the history.
+
+=== Language core changes
+
+ * 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
+
+=== Library updates
+
+ * 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#each_with_object [experimental]
+ o Enumerator#with_object
+ o Enumerator.new { ... }
+ * 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#default_proc=
+ 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? iterates over elements and compares the
+ given value with each element unless the range is numeric.
+ Use Range#cover? for the old behavior, i.e. comparison
+ with boundary values.
+ o Range#min, Range#max
+ * Regexp
+ o Regexp#=== matches symbols
+ o Regexp.try_convert
+ * String
+ o String#clear
+ o String#ord
+ o String#getbyte, String#setbyte
+ 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 changes
+
+ * Memory Diet
+ * Object Compaction - Object, Array, String, Hash, Struct, Class, Module
+ * st_table compaction (inlining small tables)
+ * YARV