[前][次][番号順一覧][スレッド一覧]

ruby-changes:9122

From: knu <ko1@a...>
Date: Fri, 12 Dec 2008 18:44:28 +0900 (JST)
Subject: [ruby-changes:9122] Ruby:r20659 (trunk): Add historical NEWS files for the record.

knu	2008-12-12 18:42:26 +0900 (Fri, 12 Dec 2008)

  New Revision: 20659

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20659

  Log:
    Add historical NEWS files for the record.

  Added files:
    trunk/doc/NEWS-1.8.7
    trunk/doc/NEWS-1.9.1

Index: doc/NEWS-1.9.1
===================================================================
--- doc/NEWS-1.9.1	(revision 0)
+++ doc/NEWS-1.9.1	(revision 20659)
@@ -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

Property changes on: doc/NEWS-1.9.1
___________________________________________________________________
Name: svn:mergeinfo
   + 
Name: svn:eol-style
   + LF
Name: svn:keywords
   + Author Date Id Revision

Index: doc/NEWS-1.8.7
===================================================================
--- doc/NEWS-1.8.7	(revision 0)
+++ doc/NEWS-1.8.7	(revision 20659)
@@ -0,0 +1,635 @@
+= 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.6 release
+
+=== Configuration changes
+
+* default C flags
+
+  Some C compiler flags may be added by default depending on your
+  environment.  Specify optflags=.. and warnflags=.. as necessary to
+  override them.
+
+* vendor_ruby directory
+
+  A new library directory named `vendor_ruby' is introduced in
+  addition to `site_ruby'.  The idea is to separate libraries
+  installed by the package system (`vendor') from manually (`site')
+  installed libraries preventing the former from getting overwritten
+  by the latter, while preserving the user option to override vendor
+  libraries with site libraries. (`site_ruby' takes precedence over
+  `vendor_ruby')
+
+  If you are a package maintainer, make each library package configure
+  the library passing the `--vendor' option to `extconf.rb' so that
+  the library files will get installed under `vendor_ruby'.
+
+  You can change the directory locations using configure options such
+  as `--with-sitedir=DIR' and `--with-vendordir=DIR'.
+
+=== Global constants
+
+* new constants
+
+  * RUBY_COPYRIGHT
+  * RUBY_DESCRIPTION
+
+=== Library updates (outstanding ones only)
+
+* new library
+
+  * securerandom
+
+* builtin classes
+
+  * Array#flatten
+  * Array#flatten!
+
+    Takes an optional argument that determines the level of recursion
+    to flatten.
+
+  * Array#eql?
+  * Array#hash
+  * Array#==
+  * Array#<=>
+
+    Handle recursive data properly.
+
+  * Array#index
+  * Array#rindex
+
+    Take a block instead of an argument.
+
+  * Array#collect!
+  * Array#map!
+  * Array#each
+  * Array#each_index
+  * Array#reverse_each
+  * Array#reject
+  * Array#reject!
+  * Array#delete_if
+
+    Return an enumerator if no block is given.
+
+    Note that #map and #collect still return an array unlike Ruby 1.9
+    to keep compatibility.
+
+  * Array#pop
+  * Array#shift
+
+    Take an optional argument specifying the number of elements to
+    remove.
+
+  * Array#choice
+  * Array#combination
+  * Array#cycle
+  * Array#drop
+  * Array#drop_while
+  * Array#permutation
+  * Array#product
+  * Array#shuffle
+  * Array#shuffle!
+  * Array#take,
+  * Array#take_while
+
+    New methods.
+
+  * Binding#eval
+
+    New method.
+
+  * Dir#each
+  * Dir#foreach
+
+    Return an enumerator if no block is given.
+
+  * Enumerable::Enumerator
+
+    New class for various enumeration defined by the enumerator library.
+
+  * Enumerable#each_slice
+  * Enumerable#each_cons
+  * Object#to_enum
+  * Object#enum_for
+
+    New methods for various enumeration defined by the enumerator library.
+
+  * Enumerable#count
+  * Enumerable#cycle
+  * Enumerable#drop
+  * Enumerable#drop_while
+  * Enumerable#find_index
+  * Enumerable#first
+  * Enumerable#group_by
+  * Enumerable#max_by
+  * Enumerable#min_by
+  * Enumerable#minmax
+  * Enumerable#minmax_by
+  * Enumerable#none?
+  * Enumerable#one?
+  * Enumerable#take
+  * Enumerable#take_while
+
+    New methods.
+
+  * Enumerable#find
+  * Enumerable#find_all
+  * Enumerable#partition
+  * Enumerable#reject
+  * Enumerable#select
+  * Enumerable#sort_by
+
+    Return an enumerator if no block is given.
+
+    Note that #map and #collect still return an array unlike Ruby 1.9
+    to keep compatibility.
+
+  * Enumerable#inject
+
+    Accepts a binary operator instead of a block.
+
+  * Enumerable#reduce
+
+    New alias to #inject.
+
+  * Hash#eql?
+  * Hash#hash
+  * Hash#==
+
+    Handle recursive data properly.
+
+  * Hash#delete_if
+  * Hash#each
+  * Hash#each_key
+  * Hash#each_pair
+  * Hash#each_value
+  * Hash#reject!
+  * Hash#select
+  * ENV.delete_if
+  * ENV.each
+  * ENV.each_key
+  * ENV.each_pair
+  * ENV.each_value
+  * ENV.reject!
+  * ENV.select
+
+    Return an enumerator if no block is given.
+
+  * GC.stress
+  * GC.stress=
+
+    New methods.
+
+  * Integer#ord
+  * Integer#odd?
+  * Integer#even?
+  * Integer#pred
+
+    New methods.
+
+  * Integer#downto
+  * Integer#times
+  * Integer#upto
+
+    Return an enumerator if no block is given.
+
+  * IO#each
+  * IO#each_line
+  * IO#each_byte
+  * IO.foreach
+  * ARGF.each
+  * ARGF.each_line
+  * ARGF.each_byte
+
+    Return an enumerator if no block is given.
+
+  * IO#bytes
+  * IO#chars
+  * IO#each_char
+  * IO#getbyte
+  * IO#lines
+  * IO#readbyte
+  * ARGF.bytes
+  * ARGF.chars
+  * ARGF.each_char
+  * ARGF.getbyte
+  * ARGF.lines
+  * ARGF.readbyte
+
+    New methods. 
+
+  * Method#name
+  * Method#owner
+  * Method#receiver
+  * UnboundMethod#name
+  * UnboundMethod#owner
+
+    New methods.
+
+  * Module#class_exec
+  * Module#module_exec
+
+    New methods.
+
+  * Numeric#step
+
+    Return an enumerator if no block is given.
+
+  * Object#instance_exec
+  * Object#tap
+
+    New methods.
+
+  * ObjectSpace.each_object
+
+    Return an enumerator if no block is given.
+
+  * Process.exec implemented.
+
+  * Range#each
+  * Range#step
+
+    Return an enumerator if no block is given.
+
+  * Regexp.union accepts an array of patterns.
+
+  * String#bytesize
+
+    New method, returning the size in bytes. (alias length and size)
+
+  * String#chars
+  * String#each_char
+  * String#partition
+  * String#rpartition
+  * String#start_with?
+  * String#end_with?
+
+    New methods.  These are $KCODE aware unlike #index, #rindex and
+    #include?.
+
+  * String#each_byte
+  * String#each
+  * String#each_line
+  * String#gsub(pattern)
+
+    Return an enumerator if no block is given.
+
+  * String#upto
+
+    An optional second argument is added to specify if the last value
+    should be included.
+
+  * StopIteration
+
+    New exception class that causes Kernel#loop to stop iteration when
+    raised.
+
+  * Struct#each
+  * Struct#each_pair
+
+    Return an enumerator if no block is given.
+
+  * Symbol#to_proc
+
+    New method.
+
+  * __method__
+
+    New global function that returns the name of the current method as
+    a Symbol.
+
+* enumerator
+
+  * Enumerator is now a built-in module.  The #next and #rewind
+    methods are implemented using the "generator" library.  Use with
+    care and be aware of the performance loss.
+
+* ipaddr
+
+  * New methods
+    * IPAddr#<=>
+    * IPAddr#succ
+
+      IPAddr objects are now comparable and enumerable having these
+      methods.  This also means that it is possible to have a Range
+      object between two IPAddr objects.
+
+    * IPAddr#to_range
+
+      A new method to create a Range object for the (network) address.
+
+  * Type coercion support
+    * IPAddr#&
+    * IPAddr#|
+    * IPAddr#==
+    * IPAddr#include?
+
+      These methods now accept a string or an integer instead of an
+      IPAddr object as the argument.
+
+* net/smtp
+
+  * Support SSL/TLS.
+
+* openssl
+
+  * New classes
+    * OpenSSL::PKey::EC
+    * OpenSSL::PKey::EC::Group
+    * OpenSSL::PKey::EC::Point
+    * OpenSSL::PKey::PKCS5
+    * OpenSSL::SSL::Session
+
+  * Documentation!
+
+  * Various new methods (see documentation).
+
+  * Remove redundant module namespace in Cipher, Digest, PKCS7, PKCS12.
+    Compatibility classes are provided which will be removed in Ruby 1.9.
+
+* shellwords
+
+  * Add methods for escaping shell-unsafe characters:
+    * Shellwords.join
+    * Shellwords.escape
+    * Array#shelljoin
+    * String#shellescape
+
+  * Add shorthand methods:
+    * Shellwords.split (alias shellwords)
+    * String#shellsplit
+
+* stringio
+
+  * StringIO#getbyte
+  * StringIO#readbyte
+
+    New methods. (aliases for compatibility with 1.9)
+
+  * StringIO#each_char
+  * StringIO#chars
+
+    New methods.
+
+  * StringIO#each
+  * StringIO#each_line
+  * StringIO#each_byte
+
+    Return an enumerator if no block is given.
+
+* tempfile
+
+  * Tempfile.open and Tempfile.new now accept a suffix for the
+    temporary file to be created.  To specify a suffix, pass an array
+    of [basename, suffix] as the first argument.
+
+      Tempfile.open(['image', 'jpg']) { |tempfile| ... }
+
+* tmpdir
+
+  * New method:
+
+    * Dir.mktmpdir
+
+* uri
+
+  * added LDAPS scheme.
+  * Change for RFC3986:
+    * FTP
+      * URI('ftp://example.com/foo').path #=> 'foo'
+      * URI('ftp://example.com/%2Ffoo').path #=> '/foo'
+      * URI::FTP.build([nil, 'example.com', nil, '/foo', 'i').to_s #=> 'ftp://example.com/%2Ffoo;type=i'
+    * URI merge
+      * URI('http://a/b/c/d;p?q').merge('?y') == URI('http://a/b/c/d;p?y')
+      * URI('http://a/b/c/d;p?q').merge('/./g') == URI('http://a/g')
+      * URI('http://a/b/c/d;p?q').merge('/../g') == URI('http://a/g')
+      * URI('http://a/b/c/d;p?q').merge('../../../g') == URI('http://a/g')
+      * URI('http://a/b/c/d;p?q').merge('../../../../g') == URI('http://a/g')
+
+* rss
+
+  * 0.1.6 -> 0.2.4
+
+  * Fix image module URI
+
+  * Atom support
+
+  * ITunes module support
+
+  * Slash module support
+
+  * content:encoded with RSS 2.0 support
+
+=== Interpreter Implementation
+
+* passing a block to a Proc [experimental]
+
+  This implementation in current shape is known to be buggy/broken,
+  especially with nested block invocation.  Take this as an
+  experimental feature.
+
+* stack trace
+
+  On non-SystemStackError exception, full stack trace is shown.
+
+=== Compatibility issues (excluding feature bug fixes)
+
+* String#slice! had some unintentional bugs and they have been fixed
+  because either they disagreed with documentation or their respective
+  behavior of #slice.  Unfortunately, this causes some
+  incompatibilities in the following (somewhat rare) cases.
+
+  * #slice! no longer expands the array when an out-of-boundary value
+    is given.
+
+      # Ruby 1.8.6
+      a = [1,2]
+      a.slice!(4,0)   #=> nil
+      a               #=> [1,2,nil,nil]
+
+      # Ruby 1.8.7
+      a = [1,2]
+      a.slice!(4,0)   #=> nil
+      a               #=> [1,2]
+
+  * #slice! no longer raises an exception but returns nil when a
+    negative length or out-of-boundary negative position is given.
+
+      # Ruby 1.8.6
+      a = [1,2]
+      a.slice!(1,-1)  #=> (raises IndexError)
+      a.slice!(-5,1)  #=> (raises IndexError)
+
+      # Ruby 1.8.7
+      a = [1,2]
+      a.slice!(1,-1)  #=> nil
+      a.slice!(-5,1)  #=> nil
+
+* String#to_i, String#hex and String#oct no longer accept a sequence
+  of underscores (`__') as part of a number.
+
+    # Ruby 1.8.6
+    '1__0'.to_i     #=> 10
+    '1__0'.to_i(2)  #=> 2  # 0b10
+    '1__0'.oct      #=> 8  # 010
+    '1__0'.hex      #=> 16 # 0x10
+
+    # Ruby 1.8.7
+    '1__0'.to_i     #=> 1
+    '1__0'.to_i(2)  #=> 1
+    '1__0'.oct      #=> 1
+    '1__0'.hex      #=> 1
+
+  The old behavior was inconsistent with Ruby syntax and considered as
+  a bug.
+
+* date
+
+  * Date.parse
+
+    '##.##.##' (where each '#' is a digit) is now taken as 'YY.MM.DD'
+    instead of 'MM.DD.YY'.  While the change may confuse you, you can
+    always use Date.strptime() when you know what you are dealing
+    with.
+
+* stringio
+
+  * StringIO#each_byte
+
+    The return value changed from nil to self.  This is what the
+    document says and the same as each_line() does.
+
+* tempfile
+
+  * The file name format has changed.  No dots are included by default
+    in temporary file names any more.  See above for how to specify a
+    suffix.
+
+* uri
+
+  * See above for details.
+
+== Changes since the 1.8.5 release
+
+=== New platforms/build tools support
+
+* IA64 HP-UX
+
+* Visual C++ 8 SP1
+
+* autoconf 2.6x
+
+=== Global constants
+
+* RUBY_PATCHLEVEL
+
+  New constant since 1.8.5-p1.
+
+=== Library updates (outstanding ones only)
+
+* builtin classes
+
+  * New method: Kernel#instance_variable_defined?
+
+  * New method: Module#class_variable_defined?
+
+  * New feature: Dir::glob() can now take an array of glob patterns.
+
+* date
+
+  * Updated based on date2 4.0.3.
+
+* digest
+
+  * New internal APIs for C and Ruby.
+
+  * Support for autoloading.
+
+      require 'digest'
+
+      # autoloads digest/md5
+      md = Digest::MD5.digest("string")
+
+  * New digest class methods: file
+
+  * New digest instance methods: clone, reset, new, inspect,
+    digest_length (alias size or length), block_length()
+
+  * New library: digest/bubblebabble
+
+  * New function: Digest(name)
+
+* fileutils
+
+  * New option for FileUtils.cp_r(): :remove_destination
+
+* nkf
+
+  * Updated based on nkf as of 2007-01-28.
+
+* thread
+
+  * Replaced with much faster mutex implementation in C.  The former
+    implementation, which is slow but considered to be stable, is
+    available with a configure option `--disable-fastthread'.
+
+* tk
+
+  * Updated Tile extension support based on Tile 0.7.8.
+
+  * Support --without-X11 configure option for non-X11 versions of
+    Tcl/Tk (e.g. Tcl/Tk Aqua).
+
+  * New sample script: irbtkw.rbw -- IRB on Ruby/Tk. It has no trouble
+    about STDIN blocking on Windows.
+
+* webrick
+
+  * New method: WEBrick::Cookie.parse_set_cookies()
+
+=== Compatibility issues (excluding feature bug fixes)
+
+* builtin classes
+
+  * String#intern now raises SecurityError when $SAFE level is greater
+    than zero.
+
+* date
+
+  * Time#to_date and Time#to_datetime are added as private methods.
+    They cause name conflict error in ActiveSupport 1.4.1 and prior,
+    which comes with Rails 1.2.2 and prior.  Updating ActiveSupport
+    and/or Rails to the latest versions fixes the problem.
+
+* digest
+
+  * The constructor does no longer take an initial string to feed.
+    The following examples show how to migrate:
+
+      # Before
+      md = Digest::MD5.new("string")
+      # After (works with any version)
+      md = Digest::MD5.new.update("string")
+        
+      # Before
+      hd = Digest::MD5.new("string").hexdigest
+      # After (works with any version)
+      hd = Digest::MD5.hexdigest("string")
+
+* fileutils
+
+  * A minor implementation change breaks Rake <=0.7.1.
+    Updating Rake to 0.7.2 or higher fixes the problem.
+
+* tk
+
+  * Tk::X_Scrollable (Y_Scrollable) is renamed to Tk::XScrollable
+    (YScrollable). Tk::X_Scrollable (Y_Scrollable) is still available,
+    but it is an alias name.

Property changes on: doc/NEWS-1.8.7
___________________________________________________________________
Name: svn:mergeinfo
   + 
Name: svn:eol-style
   + LF


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]