aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * lib/net/http/responses.rb: Added new response class for 451 status code.hsbt2015-12-303-0/+9
| | | | | | * lib/net/http.rb: documentation for HTTPUnavailableForLegalReasons git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/webrick/httpstatus.rb: Added HTTP 451 Status Code.hsbt2015-12-302-0/+7
| | | | | | | [fix GH-1167] Patch by @MuhammetDilmac https://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/syntax/calling_methods.rdoc: fix old operator for safe navigationhsbt2015-12-302-1/+6
| | | | | | operator. [ci skip][fix GH-1182] Patch by @dougo git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add test for String#ordnobu2015-12-302-0/+12
| | | | | | | * test/ruby/test_string.rb (test_ord): Add test for String#ord. [Fix GH-1181] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* forwardable.rb: adjust backtrace by tail callnobu2015-12-303-18/+38
| | | | | | | | | * 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix commit missnobu2015-12-301-3/+101
| | | | | | * test/test_forwardable.rb: add tests for r53381. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Forwardable: Fix delegating to 'args' and 'block'nobu2015-12-302-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: fix prepend cmpnobu2015-12-303-5/+14
| | | | | | | | * object.c (rb_class_inherited_p): search the corresponding ancestor to prepended module from prepending class itself. [ruby-core:72493] [Bug #11878] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_io.rb: test for rb_io_modestr_fmodenobu2015-12-302-0/+10
| | | | | | | | * test/stringio/test_io.rb (test_flag): add assertion for error when text and binary mode are mixed. [ruby-dev:49465] [Feature #11921] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_stringio.rb: test_initializenobu2015-12-292-0/+26
| | | | | | | * test/stringio/test_stringio.rb (test_initialize): add test for StringIO#initialize. [ruby-core:72585] [Feature #11920] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: add entry for r53376normal2015-12-291-0/+31
| | | | | | | Oops :x [ruby-core:72112] [Feature #11614] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use id_table for constant tablesnormal2015-12-296-112/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (rb_thread_create_timer_thread): destroy attr evennagachika2015-12-292-3/+6
| | | | | | if pthread_create() failed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-12-30svn2015-12-291-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (rb_thread_create_timer_thread): fix racenormal2015-12-292-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: overriding warning optionsnobu2015-12-292-2/+5
| | | | | | | * ruby.c (proc_options): successive -W option overrides previous warning options. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ChangeLog: remove duplicated entries at r53366.nagachika2015-12-291-6/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: parse -W optionnobu2015-12-291-12/+14
| | | | | | | * ruby.c (proc_options): parse and skip '-W' option and its argument even if ignored. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: command line option over RUBYOPT envnobu2015-12-293-2/+17
| | | | | | | * ruby.c (proc_options): -W command line option should be able to override -w in RUBYOPT environment variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c: warn block for usingnobu2015-12-292-0/+21
| | | | | | | * eval.c (ignored_block): warn if a block is given to `using`, which is probably for `Module.new`. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: adjust label referencenobu2015-12-291-0/+1
| | | | | | | * compile.c (new_adjust_body): labels referred by adjuststack shoud not be optimized away. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ostruct.rb: respond_to?nobu2015-12-293-0/+21
| | | | | | | | * lib/ostruct.rb (OpenStruct): make respond_to? working on just-allocated objects for workaround of Psych. [ruby-core:72501] [Bug #11884] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/mkmf/test_have_func.rb (test_have_func):mrkn2015-12-292-0/+10
| | | | | | | | | 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_sync.c: static classesnormal2015-12-282-2/+6
| | | | | | | We do not want to waste space by exposing globals to other objects. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Resolv::IPv6.create: avoid modifying frozen string literalnormal2015-12-283-5/+17
| | | | | | | | * 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] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* :warning: key "accelerator" is duplicated and overwritten in Tk samplesa_matsuda2015-12-285-5/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Missing requirea_matsuda2015-12-281-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parsedate is no more available since 1.9a_matsuda2015-12-282-8/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-12-29svn2015-12-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Convert euc-jp resource file in Tk sample to utf-8a_matsuda2015-12-281-5/+5
| | | | | | | 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 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Documentation typoa_matsuda2015-12-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-12-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c: suppress warningsnobu2015-12-281-14/+8
| | | | | | | * iseq.c (rb_iseq_compile_with_option): suppress "clobbered" warnings by old gcc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add test for String#rstrip!nobu2015-12-282-0/+21
| | | | | | | * test/ruby/test_string.rb (TestString#test_rstrip_bang): Add test for String#rstrip!. [Fix GH-1176] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-12-28svn2015-12-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add test for String#lstrip!nobu2015-12-282-0/+19
| | | | | | | * test/ruby/test_string.rb (TestString#test_lstrip_bang): Add test for String#lstrip!. [Fix GH-1176] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-12-271-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/win32ole/win32ole.c (ole_variant2val): refactoring.suke2015-12-272-10/+12
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (TestProcess#test_execopts_open_chdir_m17n_path):usa2015-12-271-0/+10
| | | | | | | test for r53346, r53347 and r53348. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_execarg_parent_start1): need to convert the encoding tousa2015-12-272-1/+8
| | | | | | | ospath's one. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_execarg_addopt): need to convert to ospath.usa2015-12-272-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c: use rb_w32_uchdir() instead of plain chdir() on Windows.usa2015-12-272-0/+10
| | | | | | | reported by naruse via twitter. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enc/x_emoji.h: fix dead-link.hsbt2015-12-272-2/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/NEWS-2.3.0: fix a typo.hsbt2015-12-272-1/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Method name typo in a Tk samplea_matsuda2015-12-271-1/+1
| | | | | | * ext/tk/sample/tkextlib/treectrl/help.rb: kength => length git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ivar name typo in a Tk samplea_matsuda2015-12-271-2/+2
| | | | | | * ext/tk/sample/tkextlib/treectrl/outlook-newgroup.rb: @Messge => @Message git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Method name typo in a Tk samplea_matsuda2015-12-271-1/+1
| | | | | | * ext/tk/sample/tktextio.rb: trancate => truncate git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ivar name typo in a Tk samplea_matsuda2015-12-271-1/+1
| | | | | | * ext/tk/sample/tktextio.rb: @opne => @open git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Typo in Tk samplesa_matsuda2015-12-272-8/+8
| | | | | | | * ext/tk/sample/demos-en/goldberg.rb: miliseconds => milliseconds * ext/tk/sample/demos-jp/goldberg.rb: miliseconds => milliseconds git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Method name typo in Tk samplesa_matsuda2015-12-272-2/+2
| | | | | | | * ext/tk/sample/demos-en/ctext.rb: seleect_adjust => select_adjust * ext/tk/sample/demos-jp/ctext.rb: seleect_adjust => select_adjust git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e