ruby-changes:44539
From: naruse <ko1@a...>
Date: Sun, 6 Nov 2016 03:09:44 +0900 (JST)
Subject: [ruby-changes:44539] naruse:r56612 (trunk): Add ChangeLog-2015 as an anchor of new ChangeLog see #12283
naruse 2016-11-06 03:09:36 +0900 (Sun, 06 Nov 2016) New Revision: 56612 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=56612 Log: Add ChangeLog-2015 as an anchor of new ChangeLog see #12283 Added files: trunk/doc/ChangeLog-2015 Index: doc/ChangeLog-2015 =================================================================== --- doc/ChangeLog-2015 (revision 0) +++ doc/ChangeLog-2015 (revision 56612) @@ -0,0 +1,791 @@ https://github.com/ruby/ruby/blob/trunk/doc/ChangeLog-2015#L1 +------------------------------------------------------------------------ +r53395 | marcandre | 2015-12-31 14:37:21 +0900 (Thu, 31 Dec 2015) | 2 lines + +* lib/ostruct.rb: Fix new_ostruct_member to correctly avoid redefinition + [#11901] +------------------------------------------------------------------------ +r53394 | nobu | 2015-12-31 10:49:27 +0900 (Thu, 31 Dec 2015) | 4 lines + +test_module.rb: sort constants + +* test/ruby/test_module.rb (test_classpath): since r53376, all + results of Module#constants should be sorted to compare. +------------------------------------------------------------------------ +r53393 | nobu | 2015-12-31 10:38:28 +0900 (Thu, 31 Dec 2015) | 4 lines + +ruby-additional.el: escape control code + +* misc/ruby-additional.el (ruby-encode-unicode): escape control + code except for LF. +------------------------------------------------------------------------ +r53392 | nobu | 2015-12-31 09:39:03 +0900 (Thu, 31 Dec 2015) | 4 lines + +ruby-additional.el: encode non-ASCII code only + +* misc/ruby-additional.el (ruby-encode-unicode): encode non-ASCII + code only, excluding ASCII control code, e.g. \t, \n, etc. +------------------------------------------------------------------------ +r53391 | naruse | 2015-12-31 04:06:55 +0900 (Thu, 31 Dec 2015) | 1 line + +skip if locale is not UTF-8 +------------------------------------------------------------------------ +r53390 | naruse | 2015-12-31 02:47:43 +0900 (Thu, 31 Dec 2015) | 5 lines + +* test/ruby/test_module.rb (test_classpath): r53376 may change + the order of m.constants. + `make TESTS='-v ruby/test_class.rb ruby/test_module.rb' test-all` + may fail after that. + http://rubyci.s3.amazonaws.com/tk2-243-31075/ruby-trunk/log/20151230T164202Z.log.html.gz +------------------------------------------------------------------------ +r53389 | svn | 2015-12-31 02:20:50 +0900 (Thu, 31 Dec 2015) | 1 line + +* 2015-12-31 +------------------------------------------------------------------------ +r53388 | eregon | 2015-12-31 02:20:28 +0900 (Thu, 31 Dec 2015) | 1 line + +* common.mk (help): Fix typo. +------------------------------------------------------------------------ +r53387 | hsbt | 2015-12-30 20:53:15 +0900 (Wed, 30 Dec 2015) | 2 lines + +* lib/net/http/responses.rb: Added new response class for 451 status code. +* lib/net/http.rb: documentation for HTTPUnavailableForLegalReasons +------------------------------------------------------------------------ +r53386 | hsbt | 2015-12-30 20:45:52 +0900 (Wed, 30 Dec 2015) | 3 lines + +* lib/webrick/httpstatus.rb: Added HTTP 451 Status Code. + [fix GH-1167] Patch by @MuhammetDilmac + https://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00 +------------------------------------------------------------------------ +r53385 | hsbt | 2015-12-30 20:26:09 +0900 (Wed, 30 Dec 2015) | 2 lines + +* doc/syntax/calling_methods.rdoc: fix old operator for safe navigation + operator. [ci skip][fix GH-1182] Patch by @dougo +------------------------------------------------------------------------ +r53384 | nobu | 2015-12-30 16:43:25 +0900 (Wed, 30 Dec 2015) | 4 lines + +Add test for String#ord + +* test/ruby/test_string.rb (test_ord): Add test for String#ord. + [Fix GH-1181] +------------------------------------------------------------------------ +r53383 | nobu | 2015-12-30 11:28:59 +0900 (Wed, 30 Dec 2015) | 6 lines + +forwardable.rb: adjust backtrace by tail call + +* lib/forwardable.rb (def_instance_delegator): adjust backtrace of + method body by tail call optimization. adjusting the delegated + target is still done by deleting backtrace. +* lib/forwardable.rb (def_single_delegator): ditto. +------------------------------------------------------------------------ +r53382 | nobu | 2015-12-30 11:26:15 +0900 (Wed, 30 Dec 2015) | 3 lines + +fix commit miss + +* test/test_forwardable.rb: add tests for r53381. +------------------------------------------------------------------------ +r53381 | nobu | 2015-12-30 11:18:44 +0900 (Wed, 30 Dec 2015) | 71 lines + +Forwardable: Fix delegating to 'args' and 'block' + +* lib/forwardable.rb (def_instance_delegator) fix delegating to + 'args' and 'block', clashing with local variables in generated + methods. [ruby-core:72579] [Bug #11916] + +* lib/forwardable.rb (def_single_delegator): ditto. + +If you have a class that uses Forwardable to delegate a method to +another object, and the method that returns the delegate object is +called `args` or `block`, then Forwardable will fail to work. + +Here's a simple example: + + class ModelCreator + extend Forwardable + + attr_reader :args + + def_delegator :args, :model_name + + def initialize(args) + @args = args + end + end + + ModelCreator.new.model_name + +If you run the last line above, then you'll get: + + NoMethodError: undefined method `model_name' for []:Array + +This error occurs because `def_delegator` -- as it is written in Ruby -- +uses metaprogramming to add methods to the class that will then delegate +to the delegate object. So it's as if we had written: + + class ModelCreator + extend Forwardable + + attr_reader :args + + def model_name(*args, &block) + args.model_name(*args, &block) + end + + def initialize(args) + @args = args + end + end + +As you can see, `def_delegator` will not only forward the method call +onto the delegate object, it will also forward any arguments provided as +well. It is here that the bug arises: it splats all of the arguments +into a variable which is called `args`, and because of how variable +scope works in Ruby, it then attempts to call `model_name` on *this* +variable and *not* our delegate object method. + +The fix is to call the delegate object method manually using `__send__`. +(This assumes, of course, that the given receiver is, in fact, the name +of a method and not the name of an instance variable, which is also a +possibility.) We use `__send__` because the delegate object method could +be private. + +So, that looks like this: + + def model_name(*args, &block) + __send__(:args).model_name(*args, &block) + end + +Because `def_delegators` and `delegate` use `def_delegator` internally, +they also get this fix as well. +------------------------------------------------------------------------ +r53380 | nobu | 2015-12-30 09:58:58 +0900 (Wed, 30 Dec 2015) | 5 lines + +object.c: fix prepend cmp + +* object.c (rb_class_inherited_p): search the corresponding + ancestor to prepended module from prepending class itself. + [ruby-core:72493] [Bug #11878] +------------------------------------------------------------------------ +r53379 | nobu | 2015-12-30 09:20:03 +0900 (Wed, 30 Dec 2015) | 5 lines + +test_io.rb: test for rb_io_modestr_fmode + +* test/stringio/test_io.rb (test_flag): add assertion for error when + text and binary mode are mixed. + [ruby-dev:49465] [Feature #11921] +------------------------------------------------------------------------ +r53378 | nobu | 2015-12-30 08:44:01 +0900 (Wed, 30 Dec 2015) | 4 lines + +test_stringio.rb: test_initialize + +* test/stringio/test_stringio.rb (test_initialize): add test for + StringIO#initialize. [ruby-core:72585] [Feature #11920] +------------------------------------------------------------------------ +r53377 | normal | 2015-12-30 05:21:17 +0900 (Wed, 30 Dec 2015) | 4 lines + +ChangeLog: add entry for r53376 + +Oops :x +[ruby-core:72112] [Feature #11614] +------------------------------------------------------------------------ +r53376 | normal | 2015-12-30 05:19:14 +0900 (Wed, 30 Dec 2015) | 40 lines + +use id_table for constant tables + +valgrind 3.9.0 on x86-64 reports a minor reduction in memory usage +when loading only RubyGems and RDoc by running: ruby -rrdoc -eexit + +before: HEAP SUMMARY: + in use at exit: 2,913,448 bytes in 27,394 blocks + total heap usage: 48,362 allocs, 20,968 frees, 9,034,621 bytes alloc + +after: HEAP SUMMARY: + in use at exit: 2,880,056 bytes in 26,712 blocks + total heap usage: 47,791 allocs, 21,079 frees, 9,046,507 bytes alloc + +* class.c (struct clone_const_arg): adjust for id_table + (clone_const): ditto + (clone_const_i): ditto + (rb_mod_init_copy): ditto + (rb_singleton_class_clone_and_attach): ditto + (rb_include_class_new): ditto + (include_modules_at): ditto +* constant.h (rb_free_const_table): ditto +* gc.c (free_const_entry_i): ditto + (rb_free_const_table): ditto + (obj_memsize_of): ditto + (mark_const_entry_i): ditto + (mark_const_tbl): ditto +* internal.h (struct rb_classext_struct): ditto +* object.c (rb_mod_const_set): resolve class name on assignment +* variable.c (const_update): replace with const_tbl_update + (const_tbl_update): new function + (fc_i): adjust for id_table + (find_class_path): ditto + (autoload_const_set): st_update => const_tbl_update + (rb_const_remove): adjust for id_table + (sv_i): ditto + (rb_local_constants_i): ditto + (rb_local_constants): ditto + (rb_mod_const_at): ditto + (rb_mod_const_set): ditto + (rb_const_lookup): ditto +------------------------------------------------------------------------ +r53375 | nagachika | 2015-12-30 04:26:52 +0900 (Wed, 30 Dec 2015) | 2 lines + +* thread_pthread.c (rb_thread_create_timer_thread): destroy attr even + if pthread_create() failed. +------------------------------------------------------------------------ +r53374 | svn | 2015-12-30 03:20:33 +0900 (Wed, 30 Dec 2015) | 1 line + +* 2015-12-30 +------------------------------------------------------------------------ +r53373 | normal | 2015-12-30 03:20:27 +0900 (Wed, 30 Dec 2015) | 36 lines + +thread_pthread.c (rb_thread_create_timer_thread): fix race + +This fixes an occasional [ASYNC BUG] failure in +bootstraptest/test_fork.rb '[ruby-dev:37934]' +which tests fork/pthread_create failure by setting +RLIMIT_NPROC to 1 and triggering EAGAIN on pthread_create +when attempting to recreate the timer thread. + +The problem timeline is as follows: + +thread 1 thread 2 +--------------------------------------------------------------- +rb_thread_create_timer_thread +setup_communication_pipe + rb_thread_wakeup_timer_thread_low +pthread_create fails pipe looks valid, write! +CLOSE_INVALIDATE (x4) EBADF -> ASYNC BUG + +The checks in rb_thread_wakeup_timer_thread_low only tried to +guarantee proper ordering with native_stop_timer_thread, not +rb_thread_create_timer_thread :x + +Now, this should allow rb_thread_create_timer_thread to +synchronize properly with rb_thread_wakeup_timer_thread_low by +delaying the validation marking of the timer_thread_pipe until +we are certain the timer thread is alive. + +In this version, rb_thread_wakeup_timer_thread_low becomes a +noop. Threading is still completely broken with NPROC==1, but +there's not much we can do about it beside warn the user. +We no longer spew a scary [ASYNC BUG] message or dump core +on them. + +* thread_pthread.c (setup_communication_pipe): delay setting owner + (rb_thread_create_timer_thread): until thread creation succeeds + [ruby-core:72590] [Bug #11922] +------------------------------------------------------------------------ +r53372 | nobu | 2015-12-29 21:23:04 +0900 (Tue, 29 Dec 2015) | 4 lines + +ruby.c: overriding warning options + +* ruby.c (proc_options): successive -W option overrides previous + warning options. +------------------------------------------------------------------------ +r53371 | nagachika | 2015-12-29 21:17:21 +0900 (Tue, 29 Dec 2015) | 1 line + +* ChangeLog: remove duplicated entries at r53366. +------------------------------------------------------------------------ +r53370 | nobu | 2015-12-29 19:39:53 +0900 (Tue, 29 Dec 2015) | 4 lines + +ruby.c: parse -W option + +* ruby.c (proc_options): parse and skip '-W' option and its + argument even if ignored. +------------------------------------------------------------------------ +r53369 | nobu | 2015-12-29 19:12:48 +0900 (Tue, 29 Dec 2015) | 4 lines + +ruby.c: command line option over RUBYOPT env + +* ruby.c (proc_options): -W command line option should be able to + override -w in RUBYOPT environment variable. +------------------------------------------------------------------------ +r53368 | nobu | 2015-12-29 17:54:18 +0900 (Tue, 29 Dec 2015) | 4 lines + +eval.c: warn block for using + +* eval.c (ignored_block): warn if a block is given to `using`, + which is probably for `Module.new`. +------------------------------------------------------------------------ +r53367 | nobu | 2015-12-29 17:36:22 +0900 (Tue, 29 Dec 2015) | 4 lines + +compile.c: adjust label reference + +* compile.c (new_adjust_body): labels referred by adjuststack + shoud not be optimized away. +------------------------------------------------------------------------ +r53366 | nobu | 2015-12-29 12:48:36 +0900 (Tue, 29 Dec 2015) | 5 lines + +ostruct.rb: respond_to? + +* lib/ostruct.rb (OpenStruct): make respond_to? working on + just-allocated objects for workaround of Psych. + [ruby-core:72501] [Bug #11884] +------------------------------------------------------------------------ +r53365 | mrkn | 2015-12-29 10:37:20 +0900 (Tue, 29 Dec 2015) | 5 lines + +* test/mkmf/test_have_func.rb (test_have_func): + Add assertion to examine the existence of HAVE_RUBY_INIT. + +* test/mkmf/test_have_func.rb (test_not_have_func): + Add assertion to examine the absence of HAVE_RUBY_INIT. +------------------------------------------------------------------------ +r53364 | normal | 2015-12-29 06:52:15 +0900 (Tue, 29 Dec 2015) | 4 lines + +thread_sync.c: static classes + +We do not want to waste space by exposing globals to other +objects. +------------------------------------------------------------------------ +r53363 | normal | 2015-12-29 05:31:10 +0900 (Tue, 29 Dec 2015) | 5 lines + +Resolv::IPv6.create: avoid modifying frozen string literal + +* lib/resolv.rb (Resolv::IPv6.create): avoid modifying frozen +* test/resolv/test_dns.rb (test_ipv6_create): test for above + [Bug #11910] [ruby-core:72559] +------------------------------------------------------------------------ +r53362 | a_matsuda | 2015-12-29 00:10:25 +0900 (Tue, 29 Dec 2015) | 1 line + +:warning: key "accelerator" is duplicated and overwritten in Tk samples +------------------------------------------------------------------------ +r53361 | a_matsuda | 2015-12-29 00:10:19 +0900 (Tue, 29 Dec 2015) | 1 line + +Missing require +------------------------------------------------------------------------ +r53360 | a_matsuda | 2015-12-29 00:10:10 +0900 (Tue, 29 Dec 2015) | 1 line + +parsedate is no more available since 1.9 +------------------------------------------------------------------------ +r53359 | svn | 2015-12-29 00:10:08 +0900 (Tue, 29 Dec 2015) | 1 line + +* 2015-12-29 +------------------------------------------------------------------------ +r53358 | a_matsuda | 2015-12-29 00:09:59 +0900 (Tue, 29 Dec 2015) | 4 lines + +Convert euc-jp resource file in Tk sample to utf-8 + +The sample program assumes the file to be encoded in utf-8 +https://github.com/ruby/ruby/blob/02531898987693bd28879c78b3cb660006891186/ext/tk/sample/tkoptdb.rb#L15-L17 +------------------------------------------------------------------------ +r53357 | a_matsuda | 2015-12-29 00:09:51 +0900 (Tue, 29 Dec 2015) | 1 line + +Documentation typo +------------------------------------------------------------------------ +r53356 | kazu | 2015-12-28 16:04:01 +0900 (Mon, 28 Dec 2015) | 1 line + +fix a typo [ci skip] +------------------------------------------------------------------------ +r53355 | nobu | 2015-12-28 15:42:18 +0900 (Mon, 28 Dec 2015) | 4 lines + +iseq.c: suppress warnings + +* iseq.c (rb_iseq_compile_with_option): suppress "clobbered" + warnings by old gcc. +------------------------------------------------------------------------ +r53354 | nobu | 2015-12-28 14:56:00 +0900 (Mon, 28 Dec 2015) | 4 lines + +Add test for String#rstrip! + +* test/ruby/test_string.rb (TestString#test_rstrip_bang): Add test + for String#rstrip!. [Fix GH-1176] +------------------------------------------------------------------------ +r53353 | svn | 2015-12-28 09:19:11 +0900 (Mon, 28 Dec 2015) | 1 line + +* 2015-12-28 +------------------------------------------------------------------------ +r53352 | nobu | 2015-12-28 09:18:55 +0900 (Mon, 28 Dec 2015) | 4 lines + +Add test for String#lstrip! + +* test/ruby/test_string.rb (TestString#test_lstrip_bang): Add test + for String#lstrip!. [Fix GH-1176] +------------------------------------------------------------------------ +r53351 | svn | 2015-12-27 23:34:16 +0900 (Sun, 27 Dec 2015) | 1 line + +* remove trailing spaces. +------------------------------------------------------------------------ +r53350 | suke | 2015-12-27 23:34:11 +0900 (Sun, 27 Dec 2015) | 3 lines + +* ext/win32ole/win32ole.c (ole_variant2val): refactoring. + + +------------------------------------------------------------------------ +r53349 | usa | 2015-12-27 21:24:03 +0900 (Sun, 27 Dec 2015) | 3 lines + +* test/ruby/test_process.rb (TestProcess#test_execopts_open_chdir_m17n_path): + test for r53346, r53347 and r53348. + +------------------------------------------------------------------------ +r53348 | usa | 2015-12-27 21:15:20 +0900 (Sun, 27 Dec 2015) | 3 lines + +* process.c (rb_execarg_parent_start1): need to convert the encoding to + ospath's one. + +------------------------------------------------------------------------ +r53347 | usa | 2015-12-27 21:03:45 +0900 (Sun, 27 Dec 2015) | 2 lines + +* process.c (rb_execarg_addopt): need to convert to ospath. + +------------------------------------------------------------------------ +r53346 | usa | 2015-12-27 20:54:59 +0900 (Sun, 27 Dec 2015) | 3 lines + +* process.c: use rb_w32_uchdir() instead of plain chdir() on Windows. + reported by naruse via twitter. + +------------------------------------------------------------------------ +r53345 | hsbt | 2015-12-27 20:00:36 +0900 (Sun, 27 Dec 2015) | 1 line + +* enc/x_emoji.h: fix dead-link. +------------------------------------------------------------------------ +r53344 | hsbt | 2015-12-27 19:55:59 +0900 (Sun, 27 Dec 2015) | 1 line + +* doc/NEWS-2.3.0: fix a typo. +------------------------------------------------------------------------ +r53343 | a_matsuda | 2015-12-27 18:59:31 +0900 (Sun, 27 Dec 2015) | 3 lines + +Method name typo in a Tk sample + +* ext/tk/sample/tkextlib/treectrl/help.rb: kength => length +------------------------------------------------------------------------ +r53342 | a_matsuda | 2015-12-27 18:59:20 +0900 (Sun, 27 Dec 2015) | 3 lines + +ivar name typo in a Tk sample + +* ext/tk/sample/tkextlib/treectrl/outlook-newgroup.rb: @Messge => @Message +------------------------------------------------------------------------ +r53341 | a_matsuda | 2015-12-27 18:59:13 +0900 (Sun, 27 Dec 2015) | 3 lines + +Method name typo in a Tk sample + +* ext/tk/sample/tktextio.rb: trancate => truncate +------------------------------------------------------------------------ +r53340 | a_matsuda | 2015-12-27 18:58:58 +0900 (Sun, 27 Dec 2015) | 3 lines + +ivar name typo in a Tk sample + +* ext/tk/sample/tktextio.rb: @opne => @open +------------------------------------------------------------------------ +r53339 | a_matsuda | 2015-12-27 18:58:48 +0900 (Sun, 27 Dec 2015) | 4 lines + +Typo in Tk samples + +* ext/tk/sample/demos-en/goldberg.rb: miliseconds => milliseconds +* ext/tk/sample/demos-jp/goldberg.rb: miliseconds => milliseconds +------------------------------------------------------------------------ +r53338 | a_matsuda | 2015-12-27 18:58:22 +0900 (Sun, 27 Dec 2015) | 4 lines + +Method nam (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/