ruby-changes:20455
From: yugui <ko1@a...>
Date: Sun, 10 Jul 2011 23:54:24 +0900 (JST)
Subject: [ruby-changes:20455] yugui:r32503 (trunk): * docs/NEWS-1.9.3: moved from NEWS.
yugui 2011-07-10 23:54:03 +0900 (Sun, 10 Jul 2011) New Revision: 32503 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32503 Log: * 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. Added files: trunk/doc/NEWS-1.9.3 Modified files: trunk/ChangeLog trunk/NEWS trunk/doc/ChangeLog-1.9.3 Index: doc/NEWS-1.9.3 =================================================================== --- doc/NEWS-1.9.3 (revision 0) +++ doc/NEWS-1.9.3 (revision 32503) @@ -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 Property changes on: doc/NEWS-1.9.3 ___________________________________________________________________ Added: svn:eol-style + LF Index: doc/ChangeLog-1.9.3 =================================================================== --- doc/ChangeLog-1.9.3 (revision 32502) +++ doc/ChangeLog-1.9.3 (revision 32503) @@ -1,3 +1,12154 @@ +Sun Jul 10 22:50:00 2011 Kenta Murata <mrkn@m...> + + * ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): fix + precision treatment errors. + + * test/bigdecimal/test_bigdecimal.rb: add tests for the above change. + fix precision treatment errors. + + * ext/bigdecimal/bigdecimal.c (BigDecimal_power): precision argument + should be optional for its compatibility. + +Sun Jul 10 22:38:09 2011 Nobuyoshi Nakada <nobu@r...> + + * parse.y (var_ref): distinguish vcall from local variable + references. based on a patch by Michael Edgar michael.j.edgar + AT dartmouth.edu. Bug #5002 + +Sun Jul 10 21:51:29 2011 Koichi Sasada <ko1@a...> + + * internal.h: add comments (cautions). + +Sun Jul 10 20:59:38 2011 Shota Fukumori <sorah@t...> + + * lib/test/unit.rb: Add new class variable `@@testfile_prefix`. + This is for changing test name prefix. (For testing) + + * test/testunit/tests_for_parallel/ptest_first.rb: Renamed from + test_first.rb + + * test/testunit/tests_for_parallel/ptest_second.rb: Renamed from + test_second.rb + + * test/testunit/tests_for_parallel/ptest_third.rb: Renamed from + test_third.rb + + * test/testunit/tests_for_parallel/ptest_forth.rb: Renamed from + test_forth.rb + + * test/testunit/tests_for_parallel/runner.rb: Remove misc.rb + + * test/testunit/tests_for_parallel/ptest_first.rb: ditto. + + * test/testunit/tests_for_parallel/ptest_second.rb: ditto. + + * test/testunit/tests_for_parallel/ptest_third.rb: ditto. + + * test/testunit/tests_for_parallel/ptest_forth.rb: ditto. + + * test/testunit/tests_for_parallel/misc.rb: Removed because no longer + needed. + + * test/testunit/test_parallel.rb: Fix assertions for above. + +Sun Jul 10 16:57:08 2011 Koichi Sasada <ko1@a...> + + * vm_insnhelper.c (vm_throw): check a class frame. + Fixes Bug #4648. + The patch is contributed by Kazuki Tsujimoto. + + * bootstraptest/test_proc.rb: add tests for above. + +Sun Jul 10 17:28:01 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * thread_pthread.c (mutex_debug): use exit(EXIT_FAILURE) instad of + exit(1). + * thread_pthread.c (add_signal_thread_list): ditto. + * thread.c (rb_thread_call_with_gvl): ditto. + * util.c (Bug): ditto. + +Sun Jul 10 15:58:12 2011 NARUSE, Yui <naruse@r...> + + * ext/json: Merge json gem 1.5.4+ (f7f78896607b6f6226cd). + [Bug #4700] + +Sun Jul 10 16:41:32 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * vm_core.h (typedef struct rb_vm_struct): create a new + 'inhibit_thread_createion' field. + * thread.c (rb_thread_terminate_all): set inhibit_thread_creation. + * thread.c (thread_s_new): don't permit to create new thread + if the VM is under destruction. Otherwise evil finalizer code + can make SEGV. [Bug #4992][ruby-core:37858] + + * bootstraptest/test_objectspace.rb: new test for this fix. + +Sun Jul 10 16:06:16 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * signal.c (sigsegv): use abort() instead of exit() when nested + SEGV was happen. Because unnested SEGV use abort(). + [Bug #5013][ruby-dev:44078] + +Sun Jul 10 15:30:00 2011 Kenta Murata <mrkn@m...> + + * load.c (rb_f_autoload): prevent to autoload for singleton + classes. fixes [Bug #4886] [ruby-dev:43816] + + * bootstraptest/test_autoload.rb: add tests for the above change. + +Sun Jul 10 15:09:17 2011 Shota Fukumori <sorah@t...> + + * lib/test/unit/assertions.rb: Import documentation patch by Justin + Collins. [ruby-core:37225] [Feature #4903] + +Sun Jul 10 14:57:36 2011 Tadayoshi Funaba <tadf@d...> + + * ext/date/date_core.c: canonicalizes nth and sf. + +Sun Jul 10 14:13:50 2011 Koichi Sasada <ko1@a...> + + * internal.h (rb_thread_call_with_gvl, rb_thread_call_without_gvl): + make them visible as experimental C APIs. fixes Feature #4328. + +Sun Jul 10 12:18:00 2011 Kenta Murata <mrkn@m...> + + * ext/bigdecimal/bigdecimal.c (BigDecimal_power): support non-integral + exponent. fixes [Bug #3271] + + * ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): ditto. + + * ext/bigdecimal/bigdecimal.c (BigDecimal_power_op): add a function to + only use for "**" operator. + + * test/bigdecimal/test_bigdecimal.rb: add a bunch of tests for the + above changes. + + * ext/bigdecimal/bigdecimal.c (is_integer): add an utility function. + + * ext/bigdecimal/bigdecimal.c (is_negative): ditto. + + * ext/bigdecimal/bigdecimal.c (is_positive): ditto. + + * ext/bigdecimal/bigdecimal.c (is_zero): ditto. + + * ext/bigdecimal/bigdecimal.c (is_one): ditto. + + * ext/bigdecimal/bigdecimal.c (is_even): ditto. + +Sun Jul 10 12:08:39 2011 Yusuke Endoh <mame@t...> + + * compile.c (when_vals): when a string literal is written on when + clause, skip string creation to make it faster. [ruby-dev:44068] + [Feature #5000] + +Sun Jul 10 11:35:29 2011 Yusuke Endoh <mame@t...> + + * parse.y (reduce_nodes_gen): NODE_RETURN in rescue body must not be + reduced when there is an else clause. This caused bizarre behavior + in [Bug #4473] [ruby-core:35629] [ruby-core:37884]. + +Sun Jul 10 09:46:14 2011 Masaya Tarui <tarui@r...> + + * range.c (range_max): fix behavior with excluded end value. + [Bug #4591] + +Sun Jul 10 09:13:18 2011 Eric Hodel <drbrain@s...> + + * NEWS: Fix RubyGems version. [Ruby 1.9 - Bug #5004] + +Sat Jul 9 20:01:59 2011 Tadayoshi Funaba <tadf@d...> + + * internal.h: rb_rational_reciprocal is defined in rational.c. + +Sat Jul 9 19:48:31 2011 Tadayoshi Funaba <tadf@d...> + + * internal.h: added declarations. + * complex.c: followed the above change. + +Sat Jul 9 17:24:41 2011 Tadayoshi Funaba <tadf@d...> + + * NEWS: bigdecimal is not a builtin. + +Sat Jul 9 17:17:53 2011 Tadayoshi Funaba <tadf@d...> + + * ext/date/date_core.c: some improvements for performance. + +Sat Jul 9 16:56:01 2011 Nobuyoshi Nakada <nobu@r...> + + * atomic.h (ATOMIC_OR): _InterlockedOr is unavailable in VC6. + + * numeric.c (ULLONG_MAX): fallback definition. + +Sat Jul 9 15:59:19 2011 Nobuyoshi Nakada <nobu@r...> + + * win32/win32.c (rb_w32_{read,write}): should be signed. + Bug #5001 + +Sat Jul 9 14:02:20 2011 Takeyuki FUJIOKA <xibbar@r...> + + * lib/cgi/core.rb: fix multipart form parsing bug. [Bug #3866] + +Sat Jul 9 11:41:03 2011 Marc-Andre Lafortune <ruby-core@m...> + + * lib/matrix.rb: Add Vector#normalize [ruby-dev:43829] + +Sat Jul 9 09:25:06 2011 Eric Hodel <drbrain@s...> + + * enumerator.c: Remove "enumeration sequenced by". + [Ruby 1.9 - Bug #4757] + +Sat Jul 9 09:14:56 2011 Eric Hodel <drbrain@s...> + + * io.c: Note that methods other than IO#gets may increase IO#lineno. + [Ruby 1.9 - Bug #4902] + +Sat Jul 9 08:39:39 2011 Nobuyoshi Nakada <nobu@r...> + + * common.mk (RUN_OPT): disable gems. + +Sat Jul 9 08:37:05 2011 Nobuyoshi Nakada <nobu@r...> + + * io.c (rb_io_close): close(2) on a fd which is being read by + another thread causes deadlock on Mac OS X 10.5 + +Fri Jul 8 21:20:39 2011 NARUSE, Yui <naruse@r...> + + * addr2line.c: use USE_ELF instead of __ELF__ because Solaris + doesn't define it. USE_ELF is already provided by configure. + patched by Naohisa Goto. [ruby-dev:44066] [Bug #4998] + + * addr2line.h: ditto. + + * vm_dump.c: ditto. + +Fri Jul 8 16:40:38 2011 Nobuyoshi Nakada <nobu@r...> + + * ext/json/parser/parser.rl (convert_encoding): should not modify + the argument. + + * ext/json/parser/parser.rl (convert_encoding): no needs to use + force_encoding. + +Fri Jul 8 15:53:31 2011 Nobuyoshi Nakada <nobu@r...> + + * error.c (rb_bug): get rid of segfault after all threads + disposed. + +Fri Jul 8 15:01:06 2011 NAKAMURA Usaku <usa@r...> + + * ext/openssl/ossl.h: include openssl/e_os2.h before checking the + defition of OPENSSL_SYS_WIN32. + +Fri Jul 8 14:40:39 2011 NAKAMURA Usaku <usa@r...> + + * win32/win32.c (wunlink): reverted a part of r32426. it was mistakenly + mixed. + +Fri Jul 8 14:29:47 2011 Narihiro Nakamura <authornari@g...> + + * configure.in: can't subtract void *. + +Fri Jul 8 14:33:26 2011 NAKAMURA Usaku <usa@r...> + + * win32/Makefile.sub (config.h): define GC_MARK_STACKFRAME_WORD. + fixed build problem of r32438. the value (30) is temporary value. + maybe it's enough by 20~24 according to my observation. + +Fri Jul 8 13:47:39 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * thread.c (rb_mutex_unlock_all): folded into + rb_threadptr_unlock_all_locking_mutexes. + * thread.c (rb_threadptr_unlock_all_locking_mutexes) ditto. + +Fri Jul 8 13:36:02 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * thread.c (thread_unlock_all_locking_mutexes): rename to + rb_threadptr_unlock_all_locking_mutexes and remove static. + * vm_core.h: add rb_threadptr_unlock_all_locking_mutexes declaration. + * thread.c (thread_start_func_2): adjust the above rename. + + * eval.c (ruby_cleanup): call rb_threadptr_unlock_all_locking_mutexes + again after finalizer. [Bug #4988] [ruby-dev:44049] + +Fri Jul 8 13:06:09 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * cont.c (FIBER_MACHINE_STACK_ALLOCATION_SIZE): Fiber stack size + don't need to keep multiple number of sizeof(VALUE). + +Fri Jul 8 11:39:12 2011 Nobuyoshi Nakada <nobu@r...> + + * common.mk (sudo-precheck): true command is not standard on + Windows. + +Fri Jul 8 10:39:52 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * thread_pthread.c (gvl_destroy): fix cond_t leak. + +Fri Jul 8 09:17:59 2011 Eric Hodel <drbrain@s...> + + * gc.c: Improve documentation + +Thu Jul 7 23:35:31 2011 Narihiro Nakamura <authornari@g...> + + * gc.c: change water_mark value that may call + gc_mark(lev <= GC_LEVEL_MAX) in gc_mark(). + In ruby_stack_check(), water_mark is a value that may call some + C function. Fixes Bug #3781 + + * configure.in: define GC_MARK_STACKFRAME_WORD that approximate + size of gc_mark() and gc_mark_children() stackframes. + +Thu Jul 7 17:55:05 2011 NAKAMURA Usaku <usa@r...> + + * test/testunit/test_parallel.rb (TestParallelWorker#teardown): wait + the child process even if the communication pipe is br (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/