2010年12月28日

[installer 2623] ruby-1.8.7-p330, 1.9.2-p136

ruby-1.8.7-p330, 1.9.2-p136 出ています。

☆ ruby-1.8.7-p330
http://www.ruby-lang.org/
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p330.tar.gz

== Changes since the 1.8.6 release

=== Configuration changes

* 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
* Array#select

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.

* Enumerable#to_a

Can take optional arguments and pass them to #each.

* 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#bytes

New method

* String#bytesize

New method, returning the size in bytes. (alias length and size)

* String#chars
* String#each_char
* String#lines
* 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.


☆ ruby-1.9.2-p136
http://www.ruby-lang.org/
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p136.tar.gz

== Changes since the 1.9.1 release
=== Library updates (outstanding ones only)

* builtin classes

* Array
* new method:
* Array#keep_if
* Array#repeated_combination
* Array#repeated_permutation
* Array#rotate
* Array#rotate!
* Array#select!
* Array#sort_by!

* extended methods:
* Array#{uniq,uniq!,product} can take a block.

* Complex
* new methods:
* Complex#rationalize

* Dir
* new method:
* Dir.home

* Encoding
* new encodings:
* Big5
* Big5-UAO
* ISO-2022-JP-KDDI
* SJIS-DoCoMo
* SJIS-KDDI
* SJIS-SoftBank
* UTF8-DoCoMo
* UTF8-KDDI
* UTF8-SoftBank

* new method:
* ascii_compatible?

* Enumerable
* New methods:
* Enumerable#chunk
* Enumerable#collect_concat
* Enumerable#each_entry
* Enumerable#flat_map
* Enumerable#slice_before

* Enumerator
* new methods:
* Enumerator#peek
* Enumerator#next_values
* Enumerator#peek_values
* Enumerator#feed
* StopIteration#result

* extended methods:
* #with_index accepts an optional argument that specifies the
index number to start with, defaulted to 0.

* incompatible changes:
* #rewind now calls the "rewind" method of the enclosed object
if defined.
* #next doesn't clear the position at end.

* ENV
* Uses locale's encoding
* ENV.[]= raises Errno::{EINVAL,ENOMEM} etc. on failure.
* new methods:
* ENV.keep_if
* ENV.select!

* Float
* new constants:
* Float::INFINITY
* Float::NAN
* new methods:
* Float#rationalize

* File
* new methods:
* File.realpath
* File.realdirpath

* GC::Profiler
* new method:
* GC::Profiler.total_time

* Hash
* new methods:
* Hash#keep_if
* Hash#select!

* IO
* new method:
* IO#autoclose=
* IO#autoclose?
* IO#fdatasync
* IO#codepoints
* IO#each_codepoint

* extended methods:
* IO.pipe can take a block.

* new modules:
* IO::WaitReadable
* IO::WaitWritable
They are used to extend non-blocking exceptions.

* Integer
* new methods:
* Integer#rationalize

* Kernel
* new methods:
* Kernel#respond_to_missing?
* Kernel#singleton_class
* Kernel#require_relative

* extended methods:
* Kernel#respond_to? can be used to detect methods not implemented.
For example, Process.respond_to?(:fork) returns false on Windows.

* incompatible changes:
* Kernel#instance_eval yields the receiver.

* Kernel#exec
* Kernel#spawn
* Kernel#system
* Kernel#` (`...`)
..etc.

On Windows, the current directory is no longer implicitly
prepended to the default command search path, just like other
platforms.

* MatchData
* New method:
* MatchData#==

* NilClass
* new methods:
* NilClass#rationalize

* Object
* extended methods:
* Float() supports hexadecimal floating point format.
* printf() supports %a/%A format.

* Proc
* extended method:
* Proc#source_location returns location even if receiver is a method
defined by attr_reader / attr_writer / attr_accessor.

* Process
* extended methods:
* Process.spawn accepts [:child, FD] for a redirect target.

* Random (new class to generate pseudo-random numbers)

* Rational
* new methods:
* Rational#rationalize

* String
* extended methods:
* string[regexp, name] is supported for named capture.

* Thread
* new methods:
* Thread#add_trace_func
* Thread#set_trace_func

* Time
* extended feature:
* time_t restriction is removed to represent before 1901 and after 2038.
Proleptic Gregorian calendar is used for old dates.
* Time.new have optional arguments to specify date with time offset.
* Time#getlocal, Time#localtime have optional time offset argument.

* new method:
* Time#to_r
* Time#subsec
* Time#round

* incompatible changes:
* The year argument of Time.{utc,gm,local,mktime} is now interpreted as
the value itself. For example, Time.utc(99) means the year 99 AD,
not 1999 AD.

* digest
* new methods:
* Digest::Class.base64digest
* Digest::Instance#base64digest
* Digest::Instance#base64digest!

* Digest::HMAC (digest/hmac) has been marked as deprecated because
it was unintentional for the experimental library to be included
in the final release of 1.9.1. Please use OpenSSL::HMAC instead.

* rss

* 0.2.4 -> 0.2.7.

* RSS::Maker.make
* raise an exception not returns nil for invalid feed making.
* requires block.

* RSS::Maker.[]
* new method to return maker class.

* RSS::Maker.supported?(version)
* new method to check whether given version is supported.

* RSS::Maker: item.guid.permanent_link?
* new alias of item.guid.isPermaLink
* RSS::Maker: item.guid.permanent_link=
* new alias of item.guid.isPermaLink=

* DL
* Now uses libffi as a backend if avaiable.
It means DL works fine on more platforms.

* Fiddle
* A lightweight wrapper for libffi.

* YAML
* Now uses libyaml as a backend if available.
It means YAML library supports new standards for YAML.

* Psych
* A wrapper for libyaml.

* JSON
* Update to JSON 1.1.9

* REXML

* REXML::Document.entity_expansion_limit=

New method to set the entity expansion limit. By default the limit is
set to 10000. See the following URL for details.

http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/

* RDoc

* Updated to RDoc 2.5.8

* RubyGems

* Updated to RubyGems 1.3.7

* logger

* imported upstream version (logger/1.2.7)
* do not raise an exception even if log writing failed.
* do not raise ShiftingError if an aged file already exists.
(no ShiftingError will be raised from 1.2.7, just warn() instead)

* matrix
* API change to adhere strictly to mathematical definitions:
* Matrices must now be rectangular.
* trace, regular?, singular? are defined only for square matrices
* support for empty matrices
* all integer matrices now have the right determinant (also an integer)

* Matrix and Vector include Enumerable.

* new methods:
* Matrix.build
* Matrix.empty
* Matrix#conj
* Matrix#conjugate
* Matrix#each
* Matrix#each_with_index
* Matrix#empty?
* Matrix#imag
* Matrix#imaginary
* Matrix#real
* Matrix#real?
* Matrix#rect
* Matrix#rectangular

* net/http
* merged net/https.

* open3
* new methods:
* Open3.popen2
* Open3.popen2e
* Open3.capture3
* Open3.capture2
* Open3.capture2e
* Open3.pipeline_rw
* Open3.pipeline_r
* Open3.pipeline_w
* Open3.pipeline_start
* Open3.pipeline

* pty
* new methods:
* PTY.open
* PTY.check
* deprecated methods:
* protect_signal
* reset_signal

* openssl
* new methods:
* OpenSSL::Buffering#read_nonblock
* OpenSSL::Buffering#write_nonblock
* OpenSSL::SSL::SSLSocket#connect_nonblock
* OpenSSL::SSL::SSLSocket#accept_nonblock

* scanf
* support %a/%A format.


* socket

* incompatible changes:
* Socket#{recvfrom,recvfrom_nonblock,accept,accept_nonblock,sysaccept}
returns a sender address as Addrinfo object instead of a binary sockaddr string.
Addrinfo#to_s returns the old binary sockaddr string.
* BasicSocket#getsockopt returns Socket::Option object instead of a binary string.
Socket::Option#to_s returns the old binary string.
* Socket.do_not_reverse_lookup is turned on by default now.

* new class:
* Addrinfo
* Socket::Option
* Socket::AncillaryData

* new methods:
* Socket.ip_address_list
* Socket.tcp
* Socket.tcp_server_loop
* Socket.tcp_server_sockets
* Socket.udp_server_sockets
* Socket.udp_server_loop_on
* Socket.udp_server_loop
* Socket.unix
* Socket.unix_server_loop
* Socket.unix_server_socket
* Socket.accept_loop
* Socket#ipv6only!
* BasicSocket#local_address
* BasicSocket#remote_address
* BasicSocket#connect_address
* BasicSocket#sendmsg
* BasicSocket#sendmsg_nonblock
* BasicSocket#recvmsg
* BasicSocket#recvmsg_nonblock
* BasicSocket#getpeereid

* extended methods:
* Socket.new's 3rd argument is optional now.
* Socket.pair's 3rd argument is optional now.
* Socket.pair and UNIXSocket.pair can take a block.
* BasicSocket#send, UDPSocket#send, Socket.getnameinfo, Socket#bind, and
Socket#{connect,connect_nonblock} accepts an Addrinfo object as sockaddr.
* BasicSocket#getsockopt accepts a Socket::Option object.
* Socket.getaddrinfo and IPSocket#{addr,peeraddr} accept an optional
argument to turn reverse lookup on/off.

* constant names can be accepted as well as constant values.
i.e. Socket.new(:PF_INET, :SOCK_STREAM, 0)
The constant names can be specified without the prefix.
i.e. Socket.new(:INET, :STREAM, 0)
* protocol/address family
* socket type
* socket option protocol level
* socket option name
* shutdown's argument

* stringio
* new methods:
* StringIO#read_nonblock
* StringIO#write_nonblock
* pathname
* new methods:
* Pathname#binread
* Pathname#realdirpath
* Pathname#each_child

* extended methods:
* Pathname#realpath and Pathname#realdirpath takes optional basedir
argument.

* Readline
* new methods:
* Readline.set_screen_size
* Readline.get_screen_size

* extended methods:
* Readline.completion_proc= accepts nil.
nil means to use default completion proc.

* set
* new methods:
* Set#keep_if
* Set#select!

* time
* incompatible changes:
* Time.parse raises ArgumentError when no date information.

* thread
* extended method:
* ConditionVariable#wait takes timeout argument.

* securerandom
* new methods:
* SecureRandom.urlsafe_base64

* URI
* new methods:
* URI.encode_www_form
* URI.decode_www_form
* URI.encode_www_form_component
* URI.decode_www_form_component
* Obsoleted methods:
* URI.decode
* URI.encode
* URI.escape
* URI.unescape

* etc
* new methods:
* Etc::Passwd.each
* Etc::Group.each

* zlib
* new methods:
* Zlib::GzipFile#path
* Zlib.#adler32_combine
* Zlib.#crc32_combine

* rbconfig
* new methods:
* RbConfig.ruby

=== Language changes

* Regexp properties (\p{}) names now ignore underscores, spaces, and case, so
\p{ol chiki} is the same as \p{Ol_Chiki}
* Regexps now support Unicode 5.2 (new characters and scripts)
* \d, \s, and \w are now ASCII only; use POSIX bracket classes and \p{} for
Unicode semantics
* $: no longer includes the current directory, use require_relative
* Symbol with an invalid encoding is forbidden to exist.

=== Compilation options

* --program-prefix and --program-suffix no longer act on the shared object
names nor paths to libraries.

use --with-rubylibprefix='${libruby}/${RUBY_INSTALL_NAME}' and
--with-soname='${RUBY_INSTALL_NAME}' for the same result as Ruby 1.9.1.

* --with-arch is added for universal binary, instead of
--enable-fat-binary option.

=== Compatibility issues (excluding feature bug fixes)

* Enumerator#rewind
* Socket#recvfrom
* Socket#recvfrom_nonblock
* Socket#accept
* Socket#accept_nonblock
* Socket#sysaccept
* BasicSocket#getsockopt
* Time.utc
* Time.gm
* Time.local
* Time.mktime
* Time.parse
* --program-prefix and --program-suffix
* --enable-fat-binary
* $:

See above.

* Digest::HMAC

Deprecated. See above.

----
こがよういちろう


投稿者 xml-rpc : 2010年12月28日 09:17
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/101016
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。