2011年11月 4日

[installer 3002] ruby-1.9.3-p0

ruby-1.9.3-p0 出ています。

ライセンスが GPLv2 から BSD ライセンスに変更されています。

☆ ruby-1.9.3-p0
http://www.ruby-lang.org/
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz

== Changes since the 1.9.2 release
=== License

* Ruby's License is changed from a dual license with GPLv2
to a dual license with 2-clause BSDL.

=== Known platform dependent issues
==== OS X Lion

* You have to configure ruby with '--with-gcc=gcc-4.2' if you're using
Xcode 4.1, or, if you're using Xcode 4.2, you have to configure ruby
with '--with-gcc=clang'.

=== C API updates

* rb_scan_args() is enhanced with support for option hash argument
extraction.

* ruby_vm_at_exit() added. This enables extension libs to hook a VM
termination.

* rb_reserved_fd_p() added. If you want to close all file descriptors,
check using this API. [ruby-core:37759]

=== Library updates (outstanding ones only)

* builtin classes

* ARGF
* new methods:
* ARGF.print
* ARGF.printf
* ARGF.putc
* ARGF.puts
* ARGF.read_nonblock
* ARGF.to_write_io
* ARGF.write

* Array
* extended method:
* Array#pack supports endian modifiers

* Bignum
* Multiplication algorithm for Bignums with a large number of digits over
150 BDIGITs is changed in order to reduce its calculation time.
Now such large Bignums are multiplied by using Toom-3 algorithm.

* Encoding
* new encodings:
* CP950
* CP951
* UTF-16
* UTF-32
* change alias:
* SJIS is Windows-31J

* File
* new constant:
* File::NULL
name of NULL device.
* File::DIRECT
name of O_DIRECT.

* IO
* extended method:
* IO#putc supports multibyte characters
* new methods:
* IO#advise
* IO.write(name, string, [offset] )
Write `string` to file `name`.
Opposite with File.read.
* IO.binwrite(name, string, [offset] )
binary version of IO.write.

* Kernel
* move #__id__ to BasicObject.
* extended method:
* Kernel#rand supports range argument

* Module
* new methods:
* Module#private_constant
* Module#public_constant

* Random
* extended method:
* Random.rand supports range argument

* String
* extended method:
* String#unpack supports endian modifiers
* new method:
* String#prepend
* String#byteslice

* Time
* extended method:
* Time#strftime supports %:z and %::z.

* Process
* Process#maxgroups and Process#maxgroups= now raise NotImplementedError if
the platform don't support supplementary groups concept.

* bigdecimal

* BigDecimal#power and BigDecimal#** support non-integral exponent.

* Kernel.BigDecimal and BigDecimal.new now accept instances of Integer,
Rational, Float, and BigDecimal. If you pass a Rational or a Float to
them, you must specify the precision to produce the digits of a BigDecimal.

* The behavior of BigDecimal#coerce with a Rational is changed. It uses
the precision of the receiver BigDecimal to produce the digits of a
BigDecimal from the given Rational.

* bigdecimal/util

* BigDecimal#to_d and Integer#to_d are added.

* Float#to_d accepts a precision.

* Rational#to_d raises ArgumentError when passing zero or negative
precision.

* Rational#to_d

* Zero and an implicit precision is deprecated.
This feature is removed at the next release of bigdecimal.

* A negative precision isn't supported.
Be careful it is an incompatible change.

* date

* Accepts flonum explicitly with limitations.
* If the given offset is flonum, DateTime assumes its precision is
at most second.

DateTime.new(2001,2,3,0,0,0,3.0/24) ==
DateTime.new(2001,2,3,0,0,0,'+03:00')
#=> true

* If the given operand for -/+ is flonum, DateTime assumes its
precision is at most nanosecond.

DateTime.new(2001,2,3) + 0.5 == DateTime.new(2001,2,3,12)
#=> true

* Precision of offset is always at most second.

Rational('0.5') == Rational('0.500001') #=> false
DateTime.new(2001,2,3,0,0,0,Rational('0.5')) ==
DateTime.new(2001,2,3,0,0,0,Rational('0.500001'))
#=> true

* Ignores long offset and far reform day (with warning).

* Now accepts only:

-1<=offset<=1 (-24:00..+24:00)
2298874<=start<=2426355 or -/+oo
(proleptic Gregorian/Julian mean -/+oo)

* A method strftime cannot produce huge output (same as Time's one).

* Even though Date/DateTime can handle far dates, the following causes
an exception.

DateTime.new(1<<10000).strftime('%Y') # Errno::ERANGE

* Changed the format of inspect.
* Changed the format of marshal (but, can load old dumps).

* io/console
* new methods:
* IO#noecho {|io| }
* IO#echo=
* IO#echo?
* IO#raw {|io| }
* IO#raw!
* IO#getch
* IO#winsize
* IO.console

* json
* updated to v1.5.4.

* matrix
* new classes:
* Matrix::EigenvalueDecomposition
* Matrix::LUPDecomposition
* new methods:
* Matrix#diagonal?
* Matrix#eigen
* Matrix#eigensystem
* Matrix#hermitian?
* Matrix#lower_triangular?
* Matrix#lup
* Matrix#lup_decomposition
* Matrix#normal?
* Matrix#orthogonal?
* Matrix#permutation?
* Matrix#round
* Matrix#symmetric?
* Matrix#unitary?
* Matrix#upper_triangular?
* Matrix#zero?
* Vector#magnitude, #norm
* Vector#normalize
* extended methods:
* Matrix#each and #each_with_index can iterate on a subset of the elements
* Matrix#find_index returns [row, column] and can iterate on a subset
of the elements
* Matrix#** implements Numeric exponents (using the eigensystem)
* Matrix.zero can build rectangular matrices

* minitest
* Minitest has been updated to version 2.2.2.
* For full details, see https://github.com/seattlerb/minitest/blob/master/History.txt

* net/http
* SNI (Server Name Indication) supported for HTTPS.

* Allow to configure to wait server returning '100 continue' response
before sending HTTP request body. Set Net::HTTP#continue_timeout AND pass
'expect' => '100-continue' to a extra HTTP header.

For example, the following code sends HTTP header and waits for getting
'100 continue' response before sending HTTP request body. When 0.5 [sec]
timeout occurs or the server send '100 continue', the client sends HTTP
request body.
http.continue_timeout = 0.5
http.request_post('/continue', 'body=BODY', 'expect' => '100-continue')

* new method:
* Net::HTTPRequest#set_form): Added to support
both application/x-www-form-urlencoded and multipart/form-data.

* objspace
* new method:
* ObjectSpace::memsize_of_all

* openssl
* PKey::RSA and PKey::DSA now use the generic X.509 encoding scheme
(e.g. used in a X.509 certificate's Subject Public Key Info) when
exporting public keys to DER or PEM. Backward compatibility is
ensured by (already existing) fallbacks during creation.
* OpenSSL::ASN1::Constructive#new and OpenSSL::ASN1::Primitive#new
(and the constructors of their sub-classes) will no longer force
tagging to be set to :EXPLICIT when tag and/or tag_class are passed
as parameters. tagging must be set explicitly.
* Support for infinite length encodings via infinite_length attribute.
* OpenSSL::PKey.read( file | string [, pwd] ) allows to read arbitrary
public/private keys in DER-/PEM-encoded form with an optional password
for encrypted PEM encodings.
* Add new method OpenSSL::X509::Name#hash_old as a wrapper of
X509_NAME_hash_old() defined from OpenSSL 1.0.0. It returns OpenSSL 0.9.8
compatible hash value.

* optparse
* support for bash/zsh completion.

* Rake
* Rake has been upgraded from 0.8.7 to 0.9.2.2. For full release notes see
https://github.com/jimweirich/rake/blob/master/CHANGES

* RDoc
* RDoc has been upgraded to version 3.9.4. For full release notes see
http://docs.seattlerb.org/rdoc/History_txt.html

* rexml
* Support Ruby native encoding mechanism and iconv dependency is dropped.

* RubyGems
* RubyGems has been upgraded to version 1.8.10. For full release notes see
http://rubygems.rubyforge.org/rubygems-update/History_txt.html

* stringio
* extended method:
* StringIO#set_encoding can get 2nd argument and optional hash.

* test/unit
* New arguments:
* -j N, --jobs=N: Allow run N testcases at once.
* --jobs-status: Show status of jobs when parallel running.
* --no-retry: Don't retry testcases which failed when parallel running.
* --ruby=RUBY: path to ruby for job(worker) process. optional.
* --hide-skip: Hide skip messages. You'll see the number of skips at end of
test result.

* uri
* new methods:
* URI::Generic#hostname
* URI::Generic#hostname=

* webrick
* new method:
* WEBrick::HTTPRequest#continue for generating '100 continue' response.
* new logging directive:
* %{remote}p for remote (client) port number.

* yaml
* The default YAML engine is now Psych. You may downgrade to syck by setting
YAML::ENGINE.yamler = 'syck'.

* zlib
* new methods:
* Zlib.deflate
* Zlib.inflate

* FileUtils
* extended method:
* FileUtils#chmod supports symbolic mode argument.

=== Language changes

* Regexps now support Unicode 6.0. (new characters and scripts)

* [experimental] Regexps now support Age property.
Unlike Perl, current implementation takes interpretation of the
interpretation of UTS #18.
http://www.unicode.org/reports/tr18/

* Turning on/off indentation warnings with directives.
("# -*- warn-indent: true -*-" / "# -*- warn-indent: false -*-")

=== Compatibility issues (excluding feature bug fixes)

* Rational#to_d

See above.

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


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




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