summaryrefslogtreecommitdiff
path: root/version.h
AgeCommit message (Collapse)Author
2014-02-24merge revision(s) 44809,44811,44813,44815,44816,44817,44818,44918,45003: ↵naruse
[Backport #9482] * ext/psych/yaml/emitter.c: merge libyaml 0.1.5 * ext/psych/yaml/loader.c: ditto * ext/psych/yaml/parser.c: ditto * ext/psych/yaml/reader.c: ditto * ext/psych/yaml/scanner.c: ditto * ext/psych/yaml/writer.c: ditto * ext/psych/yaml/yaml_private.h: ditto * ext/psych/lib/psych.rb: New release of psych. * ext/psych/psych.gemspec: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 45130: [Backport #9554]naruse
* ext/io/console/console.c (console_dev): need read access for conout$ because some functions need it. [Bug#9554] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44412,44413,44414,44420,44421: [Backport #9298]naruse
test_method.rb, test_proc.rb: suppress warnings * test/ruby/test_method.rb: suppress warnings in verbose mode. * test/ruby/test_proc.rb: ditto. * proc.c (rb_iseq_min_max_arity): maximum argument is unlimited if having rest keywords argument. [ruby-core:53298] [Bug #8072] * iseq.c (rb_iseq_parameters): push argument type symbol only for unnamed rest keywords argument. * compile.c (iseq_set_arguments): set arg_keyword_check from nd_cflag, which is set by parser. internal ID is used for unnamed keyword rest argument, which should be separated from no keyword check. * iseq.c (rb_iseq_parameters): if no keyword check, keyword rest is present. * parse.y (new_args_tail_gen): set keywords check to nd_cflag, which equals to that keyword rest is not present. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 45084: [Backport #9547]naruse
* ext/socket/init.c (wait_connectable): break if the socket is writable to avoid infinite loops on FreeBSD and other platforms which conforms to SUSv3. This problem cannot be reproduced with loopback interfaces, so it's hard to write test code. rsock_connect() and wait_connectable() are overly complicated, so they should be refactored, but I commit this fix as a workaround for the release of Ruby 1.9.3 scheduled on Feb 24. [ruby-core:60940] [Bug #9547] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 45076: [Backport #9535]naruse
* class.c (rb_mod_init_copy): do nothing if copying self. [ruby-dev:47989] [Bug #9535] * hash.c (rb_hash_initialize_copy): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 45057,45059: [Backport #9533]naruse
* hash.c (rb_hash_flatten): fix behavior of flatten(-1). [ruby-dev:47988] [Bug #9533] * test/ruby/test_array.rb: test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44637: [Backport #9385]naruse
* lib/open-uri.rb: Make proxy disabling working again. Fixed by Christophe Philemotte. [ruby-core:59650] [Bug #9385] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44628: [Backport #9413]naruse
* eval.c (rb_mod_s_constants): return its own constants for other than Module itself. [ruby-core:59763] [Bug #9413] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44514: [Backport #9374]naruse
* ext/json/generator/depend: add build dependencies for json extension [Bug #9374] [ruby-core:59609] * ext/json/parser/depend: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44731,44751: [Backport #8978]naruse
* ext/fiddle/closure.c: use sizeof(*pcl) for correct sizeof value. [ruby-core:57599] [Bug #8978]. Thanks mame! * ext/fiddle/closure.c: use sizeof(*pcl) for correct sizeof value. [ruby-core:57599] [Bug #8978]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44772: [Backport #9430]naruse
benchmark/driver: avoid large alloc in driver process * benchmark/driver: avoid large alloc in driver process [ruby-core:59869] [Bug #9430] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 45066: [Backport #9545] [Backport #9550]naruse
* ext/socket/ancdata.c (bsock_sendmsg_internal): only retry on error (bsock_recvmsg_internal): ditto * test/socket/test_unix.rb: test above for infinite loop git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44670,44671,44673,44675: [Backport #8783]naruse
thread_pthread.c: timer thread stack size * thread_pthread.c (rb_thread_create_timer_thread): define the stack size for timer thread at compile time. * thread_pthread.c (rb_thread_create_timer_thread): expand timer thread stack size to get rid of segfault on FreeBSD/powerpc64. based on the patch by Steve Wills at [ruby-core:59923]. [ruby-core:56590] [Bug #8783] * thread_pthread.c (rb_thread_create_timer_thread): fix for platforms where PTHREAD_STACK_MIN is a dynamic value and not a compile-time constant. [ruby-dev:47911] [Bug #9436] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44549: [Backport #9387]naruse
* range.c (Range#size): [DOC] improve description and add examples. Patch by @skade. [Fixes GH-501] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44696: [Backport #9429]naruse
* lib/racc/rdoc/grammar.en.rdoc: [DOC] Correct grammar and typos Patch by Giorgos Tsiftsis [Bug #9429] [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44878,44879: [Backport #9483]naruse
* ext/ripper/lib/ripper/lexer.rb: [DOC] use lower case version of core classes when referring to return value, since we aren't directly talking about the class. Patch by Jonathan Jackson [Bug #9483] * lib/open-uri.rb: [DOC] use lower case version of core classes, same as commit r44878, based on patch by Jonathan Jackson [Bug #9483] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44463: [Backport #9210]naruse
* variable.c: adding extra example in docs. patched by Steve Klabnik. [Bug #9210] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44642: [Backport #9093]naruse
* lib/resolv.rb (Resolv::DNS::Resource::TXT#data): Return concatenated string. Patch by Ryan Brunner. [ruby-core:58220] [Bug #9093] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44584,44587,44945: [Backport #9243]naruse
* ext/openssl/ossl_pkey_dh.c: Fixed typo by Sandor Szテシcs [Bug #9243] * ext/openssl/ossl_pkey_dh.c: Fixed typo by Sandor Sz?cs [Bug #9243] * ext/openssl/ossl_pkey_dh.c: Fixed typo by Sandor Szuecs [Bug #9243] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44586: [Backport #9152]naruse
* lib/xmlrpc/client.rb: [DOC] Remove note about SSL package on RAA Since RAA has been deprecated, and the SSL package has been replaced with net/https this statement is entirely false and should be deleted. [Bug #9152] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44585: [Backport #9268]naruse
* lib/net/smtp.rb: [DOC] Remove dead link to RAA by Giorgos Tsiftsis Fixes the following bugs: [Bug #9152] [Bug #9268] [Bug #9394] * lib/open-uri.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44880: [Backport #9477]naruse
* lib/resolv.rb: Ignore name servers which cause EAFNOSUPPORT on socket creation. Reported by Bjoern Rennhak. [ruby-core:60442] [Bug #9477] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44884: [Backport #9498]naruse
* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder): Raise DecodeError if no data before the limit. Reported by Will Bryant. [ruby-core:60557] [Bug #9498] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44931: [Backport #9452]naruse
* vm_insnhelper.c (vm_call_method): should check ci->me->flag of a refining method in case the method is private. [ruby-core:60111] [Bug #9452] * vm_method.c (make_method_entry_refined): set me->flag of a refined method entry to NOEX_PUBLIC in case the original method is private and it is refined as a public method. The original flag is stored in me->def->body.orig_me, so it's OK to make a refined method entry public. [ruby-core:60111] [Bug #9452] * test/ruby/test_refinement.rb: related tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44568: [Backport #9399]naruse
* iseq.c (iseq_load): keep type_map to get rid of memory leak. based on a patch by Eric Wong at [ruby-core:59699]. [Bug #9399] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-22merge revision(s) 44595: [Backport #9342]naruse
* ext/thread/thread.c (rb_szqueue_clear): notify SZQUEUE_WAITERS on SizedQueue#clear. [ruby-core:59462] [Bug #9342] * test/thread/test_queue.rb: add test. the patch is from Justin Collins. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44925: [Backport #9492]naruse
* configure.in: check if pthread_setname_np is available. * thread_pthread.c: pthread_setname_np is not available on old Darwins. [ruby-core:60524] [Bug #9492] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44449: [Backport #9416]naruse
* parse.y (local_push_gen, local_pop_gen): save cmdarg_stack to isolate command argument state from outer scope. [ruby-core:59342] [Bug #9308] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44616,44622,44623,44626,44632,44636:naruse
add timeout to test_do_reply http://fb64b.rubyci.org/~chkbuild/ruby-trunk/log/20140115T073301Z.log.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44462,44477: [Backport #9314]naruse
* encoding.c (must_encindex, rb_enc_from_index, rb_obj_encoding): mask encoding index and ignore dummy flags. [ruby-core:59354] [Bug #9314] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44469: [Backport #9329]naruse
* lib/mkmf.rb (RbConfig): expand RUBY_SO_NAME for extensions backward compatibility. [ruby-core:59426] [Bug #9329] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44472: [Backport #9333]naruse
* win32/Makefile.sub: remove HAVE_FSEEKO because fseeko removed from win32/win32.c Fixed [Bug #9333]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44531: [Backport #9300]naruse
* ext/psych/lib/psych/visitors/yaml_tree.rb: dumping strings with quotes should not have changed. [ruby-core:59316] [Bug #9300] * ext/psych/lib/psych.rb: fixed missing require. * test/psych/test_string.rb: test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44790: [Backport #9472]naruse
* io.c (rb_io_syswrite): add RB_GC_GUARD [Bug #9472][ruby-core:60407] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44312,44318: [Backport #9273]naruse
* lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not consider encodings in hosts file. [ruby-core:59239] [Bug #9273] * lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44604,44605,44606: [Backport #9415]naruse
test_m17n.rb: split tests for inspect * test/ruby/test_m17n.rb (test_utf_16_32_inspect): split tests for each encodings. * string.c (get_actual_encoding): get actual encoding according to the BOM if exists. * string.c (rb_str_inspect): use according encoding, instead of pseudo encodings, UTF-{16,32}. [ruby-core:59757] [Bug #8940] * string.c (get_encoding): respect BOM on pseudo encodings. [ruby-dev:47895] [Bug #9415] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21merge revision(s) 44720: [Backport #9455]naruse
* compile.c (iseq_build_from_ary_body): Use :blockptr instead of :block as hash key when loading serialized instruction sequences from arrays. [Bug #9455] [ruby-core:60146] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-20merge revision(s) 44654: [Backport #9426]naruse
tracepoint.c: disable tracepoint * ext/-test-/tracepoint/tracepoint.c (tracepoint_track_objspace_events): ensure tracepoint disabled. [ruby-dev:47901] [Bug #9426] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-20merge revision(s) 44687,44706,44727: [Backport #8770]naruse
* process.c (recv_child_error): Fix deadlock in rb_fork_internal when a signal is sent to the parent process while Ruby is forking in IO.popen. Patch by Scott Francis. Closes GH-513. * process.c (send_child_error): retry write on EINTR to fix occasional Errno::EINTR from Process.spawn. * process.c (recv_child_error): retry read on EINTR to fix occasional Errno::EINTR from Process.spawn. * process.c (READ_FROM_CHILD): Apply the last hunk of 0001-process.c-avoid-EINTR-from-Process.spawn.patch written by Eric Wong in [Bug #8770]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-20merge revision(s) 44494:naruse
* lib/rinda/ring.rb (Rinda::RingFinger#make_socket): Use ipv4_multicast_ttl option for portability. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-20merge revision(s) 44638: [Backport #9350]naruse
* ext/socket/option.c: IP_MULTICAST_LOOP and IP_MULTICAST_TTL socket option takes a byte on OpenBSD. Fixed by Jeremy Evans. [ruby-core:59496] [Bug #9350] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-19* 2014-02-20svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-19merge revision(s) 44327: [Backport #9276]naruse
* gc.c (ruby_gc_set_params): don't show obsolete warnings for RUBY_FREE_MIN/RUBY_HEAP_MIN_SLOTS if RUBY_GC_HEAP_FREE_SLOTS/RUBY_GC_HEAP_INIT_SLOTS are given. [Bug #9276] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-19merge revision(s) 45021,45022,45028: [Backport #9524]naruse
* gc.c: introduce new environment variable "RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR" to control major/minor GC frequency. Do full GC when the number of old objects is more than R * N where R is this factor and * test/ruby/test_gc.rb: add a test. * gc.c (get_envparam_double): fix a warning message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-18merge revision(s) 44492: [Backport #9351]naruse
* lib/rinda/ring.rb (Rinda::RingFinger#make_socket): Use ipv4_multicast_loop option for portability. Patch by Jeremy Evans. [ruby-trunk - Bug #9351] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-16merge revision(s) 44476: [Backport #9317]naruse
* configure.in: reset LDFLAGS and DLDFLAGS for opt-dir again after LIBPATHFLAG and RPATHFLAG are set. [ruby-dev:47868] [Bug #9317] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-16merge revision(s) 44474,44538,44539,44890,44896: [Backport #9495]naruse
* configure.in: use SSE2 instructions for drop unexpected precisions. [ruby-core:54738] [Bug #8358] * configure.in: use SSE2 instructions to drop unexpected precisions on other than mingw. [ruby-core:59472] [Bug #8358] * configure.in: -mstackrealign is necessary for -msse2 working. [ruby-core:54716] [Bug #8349] * configure.in: -mstackrealign is necessary for -msse2 working. [ruby-core:54716] [Bug #8349] * configure.in: add qouting brackets and append wildcard for the rest after target_cpu, to properly detect platform for SSE2 instructions. [ruby-core:60576] [Bug #8358] * configure.in: Fix compilation error. https://bugs.ruby-lang.org/issues/8358#note-16 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@44993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-10merge revision(s) 44579: [Backport #9500]naruse
ext: use PRIsVALUE for rb_raise and rb_warn * ext/bigdecimal/bigdecimal.c (BigDecimal_new): use PRIsVALUE for rb_raise() and rb_warn(). * ext/openssl/ossl_cipher.c (ossl_cipher_init): ditto. * ext/racc/cparse/cparse.c (extract_user_token): ditto. * ext/syslog/syslog.c (mSyslog_log): ditto. * ext/openssl/ossl.h (OSSL_Check_Kind, OSSL_Check_Instance): now ossl_raise() also accepts PRIsVALUE. * ext/openssl/ossl_asn1.c (ossl_asn1_default_tag): git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@44904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-10merge revision(s) 44572,44578,44591,44592: [Backport #9490]naruse
ext: use rb_sprintf() and rb_vsprintf() with PRIsVALUE git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@44903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-06merge revision(s) 44861,44862: [Backport #9493]naruse
* gc.c (get_envparam_int): don't accept a value equals to lowerbound (changed by last commit) because "" or "foo" (not a number) strings are parsed as 0. They should be rejected. * gc.c (get_envparam_double): ditto. * gc.c (get_envparam_int): accept a value equals to lowerbound. * gc.c (get_envparam_int): correct warning messsages. * gc.c (get_envparam_double): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@44868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e