diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-10 14:54:03 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-10 14:54:03 +0000 |
commit | a4f423f18bd60312c7e6e503c60e368c064abbd1 (patch) | |
tree | 6af8b06e3d889fe64a4a738897d4eccf4c98dbe2 /doc/NEWS-1.9.3 | |
parent | 431812bd62be5f204f7ad8acbf6d61981ab47ee4 (diff) | |
download | ruby-a4f423f18bd60312c7e6e503c60e368c064abbd1.tar.gz |
* docs/NEWS-1.9.3: moved from NEWS.
* docs/ChangeLog-1.9.3: merged ChangeLog for 1.9.3.
* NEWS: NEWS for 1.9.4 that describes changes since 1.9.3
* ChangeLog: new ChangeLog for 1.9.4.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'doc/NEWS-1.9.3')
-rw-r--r-- | doc/NEWS-1.9.3 | 298 |
1 files changed, 298 insertions, 0 deletions
diff --git a/doc/NEWS-1.9.3 b/doc/NEWS-1.9.3 new file mode 100644 index 0000000000..ef00c1164e --- /dev/null +++ b/doc/NEWS-1.9.3 @@ -0,0 +1,298 @@ +# -*- rd -*- += 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.9.2 release +=== License + +* Ruby's License is changed from a dual license with GPLv2 + to a dual license with 2-clause BSDL. + +=== 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. + +=== 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 + * Kernel.BigDecimal and BigDecimal.new now accept instances of Integer, + Rational, and Float. 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. + +* 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 gives + an empty string: + + DateTime.new(1<<10000).strftime('%Y') #=> "" + + * 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 + +* 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 + +* 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. + +* 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.1. For full release notes see + https://github.com/jimweirich/rake/blob/master/CHANGES + +* RDoc + * RDoc has been upgraded from 2.5.8 to 3.8. 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.5.1. 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) + + None |