Граф коммитов

6755 Коммитов

Автор SHA1 Сообщение Дата
nobu 8d0b8c879f test_thread.rb: assert_operator for comparison
* test/ruby/test_thread.rb (test_priority): use assert_operator
  for comparison instead of assert_send.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 22:03:19 +00:00
nobu 637585d912 test_fiber.rb: remove core
* test/ruby/test_fiber.rb (TestFiber#invoke_rec): remove core dump
  files by stack overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 20:46:44 +00:00
a_matsuda adb1ee65b7 [DOC] Correct a couple of typos in comments by @dvsuresh [Fixes GH-482]
* doc/ChangeLog-YARV:  Correct a typo in comment
* lib/rubygems/specification.rb:  ditto.
* test/rexml/data/tutorial.xml:  ditto.
* test/ruby/test_settracefunc.rb:  ditto.
* tool/instruction.rb:  ditto.

https://github.com/ruby/ruby/pull/482
[ci-skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 10:54:54 +00:00
nobu 91afce9afa vm_insnhelper.c: post arguments as mandatory
* vm_insnhelper.c (vm_callee_setup_arg_complex): count post
  arguments as mandatory arguments.  [ruby-core:57706] [Bug #8993]
* vm_insnhelper.c (vm_yield_setup_block_args): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 08:39:17 +00:00
nobu 95ed081663 logger.rb: fix extra log ratation
* lib/logger.rb (lock_shift_log): no need to rotate the log file
  if it has been rotated by another process.  based on the patch
  by no6v (Nobuhiro IMAI) in [ruby-core:58620].  [Bug #9133]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 05:43:01 +00:00
nobu 742659cb6c envutil.rb: refine messages
* test/ruby/envutil.rb (assert_file_predicate): place rest
  arguments after predicate name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 05:42:57 +00:00
nobu 7f83b7872a Additional test coverage to Enumerator#peek.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 04:17:06 +00:00
nobu 14557c7829 Additional test coverage to Dir class. Dir['**/*'] should not resolve symlinks.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 04:17:04 +00:00
nobu cb7076696c Additional test coverage to DateTime comparison (sub millisecond).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 04:17:03 +00:00
nobu b83d68a38f proc.c: method by respond_to_missing?
* proc.c (mnew_from_me): method by respond_to_missing? should be
  owned by the original class.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 04:02:00 +00:00
nobu a370556cd2 object.c: check const names
* object.c (rb_mod_const_get, rb_mod_const_defined): check
  constant names more strictly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 03:38:22 +00:00
nobu 241ca7bfff object.c: nested path const_defined?
* object.c (rb_mod_const_defined): support nested class path as
  well as const_get.  [Feature #7414]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:25:58 +00:00
nobu db318509d5 object.c: fix typo
* object.c (rb_mod_const_get): fix typo.  should use SYM2ID() not
  ID2SYM().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:24:35 +00:00
akr 4fd53e476e * ext/socket/lib/socket.rb: Don't test $! in "ensure" clause because
it may be set before the body.
  Reported by ko1 and mrkn.  [ruby-core:59088] [Bug #9247]

* lib/cgi/core.rb: Ditto.

* lib/drb/ssl.rb: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 16:11:12 +00:00
nobu b7c2f5bc93 proc.c: fix inherited owner
* proc.c (mnew_from_me): achieve the original defined_class from
  prepended iclass, to fix inherited owner.
* proc.c (method_owner): return the defined class, but not the
  class which the method object is created from.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 15:18:12 +00:00
nobu 537f327653 test_weakmap.rb: fix test
* test/ruby/test_weakmap.rb (test_include?): create target object in a
  block, so that collected soon as possible.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 14:50:00 +00:00
nobu 36e09fc28b test/ruby: better assertions
* test/ruby: use better assertions instead of mere assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 14:20:53 +00:00
nobu 5bff643540 test_weakmap.rb: fix test
* test/ruby/test_weakmap.rb (test_include?): Object.new does not
  excute the block, use tap.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 14:03:48 +00:00
nobu b71956d12b proc.c, vm_method.c: fix super and alias
* proc.c (method_owner): return the class where alias is defined, not
  the class original method is defined.
* vm_method.c (rb_method_entry_make, rb_alias): store the originally
  defined class in me.  [Bug #7993] [Bug #7842] [Bug #9236]
* vm_method.c (rb_method_entry_get_without_cache): cache included
  module but not iclass.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 13:29:23 +00:00
nobu f1f609bc22 test_weakmap.rb: fix test
* test/ruby/test_weakmap.rb (test_include?): isolate weak
  referenced object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 13:29:07 +00:00
nobu 3ac0ec4ecd test/ruby: better assertions
* test/ruby: use better assertions instead of mere assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 09:18:05 +00:00
nobu 287d2adab0 assertions.rb: last match in assert_raise_with_message
* lib/test/unit/assertions.rb (assert_raise_with_message): set
  caller's last match if expected is a Regexp.

* test/ruby/test_arity.rb (err_mess): use assert_raise_with_message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 09:17:55 +00:00
ko1 0aed7c6874 * error.c: add Exception#backtrace_locations.
Now, there are no setter and independent from Exception#backtrace.
  [Feature #8960]
* eval.c (setup_exception): set backtrace locations for `bt_location'
  special attribute.
* vm_backtrace.c (rb_backtrace_to_location_ary): added.
* internal.h: ditto.
* test/ruby/test_backtrace.rb: add a test for
  Exception#backtrace_locations.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 04:31:06 +00:00
drbrain d35e7b5be2 * lib/rubygems/request_set/lockfile.rb: Import RubyGems master a8d0669
with a 1.8.7 compatibility fix.
* test/rubygems/test_gem_request_set_lockfile.rb:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 01:04:36 +00:00
drbrain 8fadbe5f3e * lib/rubygems: Update to RubyGems master ddac51f. Changes:
* Allow override for the shared gem installation directory for
    rubygems packagers.

  * Lock gem cache files for read and write to improve thread safety.

  * Use io/console when available.

  * Minor cleanup.

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 00:51:04 +00:00
mrkn df33325192 * ext/bigdecimal/bigdecimal.c (VpSetPTR): fix for limitation of the resulting
precision.

* test/bigdecimal/test_bigdecimal.rb (test_limit): add tests for the above
   change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 17:02:27 +00:00
a_matsuda 8920ac2972 * doc/contributing.rdoc: [DOC] Fix typo in comments by @dvsuresh [Fixes GH-475]
* ext/openssl/ossl_ssl.c: ditto.
* test/ruby/test_m17n.rb:  ditto.

https://github.com/ruby/ruby/pull/475
[ci-skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 07:21:19 +00:00
nobu 994bb6d36d test_weakref.rb: use single level WeakRef
* test/test_weakref.rb (make_weakref): return single level
  WeakRef, instead of multiple level, since the second level
  object may be still alive even after the final object get
  finalized, in test_recycled.

* test/test_weakref.rb (test_ref): move living object assertions
  from test_recycled.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 06:17:23 +00:00
ko1 919f1438ae * eval.c (rb_raise_jump): call c_return hook immediately after
popping `raise' frame.
  Patches by deivid (David Rodriguez). [Bug #8886]
* test/ruby/test_settracefunc.rb: catch up this fix.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-11 07:53:16 +00:00
ko1 78d7aa8ae3 revert r44133. See https://bugs.ruby-lang.org/issues/8886 details
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-11 07:41:14 +00:00
nobu 740535f843 hash.c: reject should return a plain hash
* hash.c (rb_hash_reject): return a plain hash, without copying
  the class, default value, instance variables, and taintedness.
  they had been copied just by accident.
  [ruby-core:59045] [Bug #9223]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-11 07:01:29 +00:00
ko1 a4cbd6412a * eval.c (rb_raise_jump): pop frame after setup exception.
Patches by deivid (David Rodriguez). [Bug #8886]
* test/minitest/test_minitest_unit.rb: catch up this change.
* test/ruby/test_backtrace.rb: ditto.
* test/ruby/test_settracefunc.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-11 03:39:52 +00:00
nobu 2c11ccb861 envutil.rb: backtrace may not be present
* test/ruby/envutil.rb (assert_separately): SystemStackError at
  machine stack overflow on platforms where sigaltstack is
  unavailable does not have backtrace.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-11 01:48:17 +00:00
drbrain d6a5fe709e * lib/rubygems: Update to RubyGems master ec8ed22. Notable changes
include:

  * Renamed extension_install_dir to extension_dir (backwards
    compatible).

  * Fixed creation of gem.deps.rb.lock file from
    TestGemRequestSet#test_install_from_gemdeps_install_dir

  * Fixed a typo and some documentation.

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 19:54:19 +00:00
marcandre af4e6084d0 * insns.def: Fix optimization bug of Float#/ [Bug #9238]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 18:18:31 +00:00
nobu 037a9d0655 array.c, hash.c: add salt
* array.c (rb_ary_hash): add salt to differentiate false and empty
  array.  [ruby-core:58993] [Bug #9231]
* hash.c (rb_any_hash, rb_hash_hash): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 14:44:51 +00:00
nobu e5b5ee7487 test_exception.rb: ignore SystemStackError
* test/ruby/test_exception.rb (test_machine_stackoverflow): ignore
  propagated SystemStackError, which has not bee rescued in the
  child process by unknown reason.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 14:02:16 +00:00
nobu 7e47f6838a envutil.rb: ensure errors
* test/ruby/envutil.rb (assert_separately): dump error and
  assertions by END to ensure outputs even if failed to catch the
  raised exception.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 14:02:14 +00:00
nobu 0ede9926f7 openssl/digest.rb: get rid of deprecated class
* ext/openssl/lib/openssl/digest.rb (digest, hexdigest): create
  new instance and call on it directly, to get rid of deprecated
  class OpenSSL::Digest::Digest.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 07:16:01 +00:00
nobu 0326725b24 gc.c: check arguments first
* gc.c (wmap_aset): check if both arguments are able to finalize
  before setting finalizers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 05:17:19 +00:00
nobu 9bd802f556 gc.c: fix WeakMap#inspect
* gc.c (wmap_inspect_i): fix key/value order.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 05:02:17 +00:00
tmm1 7170baa878 objspace_dump.c: include object's gc flags in dump
* ext/objspace/objspace_dump.c (dump_object): include fstring flag on
  strings. include gc flags (old, remembered, wb_protected) on all objects.
* ext/objspace/objspace_dump.c (Init_objspace_dump): initialize lazy
  IDs before first use.
* gc.c (rb_obj_gc_flags): new function to retrieve object flags
* internal.h (RB_OBJ_GC_FLAGS_MAX): maximum flags allowed for one obj
* test/objspace/test_objspace.rb (test_dump_flags): test for above
* test/objspace/test_objspace.rb (test_trace_object_allocations):
  resolve name before dump (for rb_class_path_cached)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 02:26:09 +00:00
tmm1 4092574257 vm_method.c: add new ruby::method-cache-clear dtrace probe
* vm_method.c (rb_clear_method_cache_by_class): fire
  ruby::method-cache-clear probe on global or klass-level method cache
  clear [Bug #9190]
* probes.d (provider ruby): new dtrace probe
* doc/dtrace_probes.rdoc: docs for new probe
* test/dtrace/test_method_cache.rb: test for new probe

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 22:50:44 +00:00
charliesome 7df9798126 * compile.c, insns.def, test/ruby/test_rubyvm.rb, vm.c, vm_core.h,
vm_insnhelper.c, vm_insnhelper.h, vm_method.c: Rename method_serial
  to global_method_state and constant_serial to global_constant_state
  after discussion with ko1.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 10:51:02 +00:00
tmm1 a111923062 hash.c: fix segv in Hash#replace
* hash.c (rb_hash_replace): fix segv on `{}.replace({})` introduced
  in r44060 [Bug #9230] [ruby-core:58991]
* test/ruby/test_hash.rb: regression test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 10:06:49 +00:00
nobu d2cc188ad5 gc.c: ObjectSpace::WeakMap#size
* gc.c (wmap_size): add ObjectSpace::WeakMap#size and #length.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 07:13:40 +00:00
nobu b73a306441 test_weakmap.rb: add
* test/ruby/test_weakmap.rb: test for ObjectSpace::WeakMap.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 07:13:38 +00:00
shugo e759e2739b removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 06:26:34 +00:00
drbrain 05ba6fffcc * lib/rubygems: Update to RubyGems master bf37240. Fixes useless
error message with `gem install -g` with no gem dependencies file.
* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 23:41:14 +00:00
drbrain da3e610adf * lib/rubygems: Update to RubyGems master 096db36. Changes include
support for PATH in Gemfile.lock and a typo fix from Akira Matsuda.
* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 19:32:07 +00:00
nobu cf85aaf83e hash.c: reject shoult infect
* hash.c (rb_hash_reject): result should be infected by the
  receiver.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 11:25:06 +00:00
mrkn 0727a22c69 * bigdecimal.c (BigDecimal_coerce): convert a Float to a BigDecimal instead
of converting the receiver to a Float.
  [ruby-core:58756] [Bug #9192]

* test/bigdecimal/test_bigdecimal.rb: add tests for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 11:20:51 +00:00
nobu dd8710d243 class.c, vm_insnhelper.c: check unknown keywords
* class.c (rb_get_kwargs): if optional is negative, unknown
  keywords are allowed.
* vm_insnhelper.c (vm_callee_setup_keyword_arg): check unknown
  keywords.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 07:19:30 +00:00
nobu 1a5bc2864d test_keyword.rb: check error messages
* test/ruby/test_keyword.rb (test_required_keyword): check also
  error messages.

* test/ruby/test_keyword.rb (test_block_required_keyword): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 07:17:18 +00:00
ktsj 3e1360f370 * array.c (rb_ary_shuffle_bang, rb_ary_sample): check
unknown keywords.

* test/ruby/test_array.rb (test_shuffle, test_sample): tests for
  the above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 05:02:12 +00:00
tmm1 cc1063092b vm.c: add RubyVM.stat for accessing cache serials
* vm.c (ruby_vm_stat): add RubyVM.stat() for access to internal cache
  counters. this methods behaves like GC.stat, accepting an optional
  hash or symbol argument. [Bug #9190] [ruby-core:58750]
* test/ruby/test_rubyvm.rb: test for new method

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 04:05:59 +00:00
tmm1 779ae78995 hash.c: revert r43870 and add alternative parser patch for literal keys
* hash.c (hash_aset_str): revert r43870 due to performance issue
  [Bug #9188] [ruby-core:58730]
* parse.y (assoc): convert literal string hash keys to fstrings
* test/ruby/test_hash.rb (class TestHash): expand test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 01:52:28 +00:00
tmm1 98a74d4dd5 parse.y: use rb_fstring() for strings stored in the symbol table
* parse.y (register_symid_str): use fstrings in symbol table
  [Bug #9171] [ruby-core:58656]
* parse.y (rb_id2str): ditto
* string.c (rb_fstring): create frozen_strings on first usage. this
  allows rb_fstring() calls from the parser (before cString is created)
* string.c (fstring_set_class_i): set klass on fstrings generated
  before cString was defined
* string.c (Init_String): convert frozen_strings table to String
  objects after boot
* ext/-test-/symbol/type.c (bug_sym_id2str): expose rb_id2str()
* test/-ext-/symbol/test_type.rb (module Test_Symbol): verify symbol
  table entries are fstrings

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 01:39:27 +00:00
drbrain 7ed9b794b4 * lib/rubygems: Update to RubyGems master 14749ce. This fixes bugs
handling of gem dependencies lockfiles (Gemfile.lock).

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 01:22:39 +00:00
nobu 7416073cde hash.c: rb_hash_reject without dup
* hash.c (rb_hash_reject): copy unrejected elements only to new hash,
  so that the change on the original receiver can affect.
  [ruby-core:58914] [Bug #9223]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-07 02:16:04 +00:00
nobu 77280b6cd6 test_struct.rb: use assert_same
* test/ruby/test_struct.rb (test_question_mark_in_member): true value
  has no meanings itself.  use assert_same instead.

* test/ruby/test_struct.rb (test_bang_mark_in_member): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-07 01:47:22 +00:00
nobu bc7abeb37b test_struct.rb: use assert_predicate
* test/ruby/test_struct.rb (test_question_mark_in_member): assert_true
  is a method in test-unit. use assert_predicate instead.

* test/ruby/test_struct.rb (test_bang_mark_in_member): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-07 01:44:46 +00:00
charliesome 2e6b1d0cbb * test/ruby/test_struct.rb: Add regression test for question marks and
bangs in struct members. [Closes GH-468]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 23:25:24 +00:00
tmm1 470c9d844b gc.c: add minor marking and lazy sweeping options to GC.start
* gc.c (gc_start_internal): GC.start() now accepts two optional
  keyword arguments. These can be used to disable full_mark (minor
  mark only) or disable immediate_sweep (use lazy sweep). These new
  options are useful for benchmarking GC behavior, or performing minor
  GC out-of-band.
* test/ruby/test_gc.rb (class TestGc): tests for new options.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 05:11:51 +00:00
mrkn 2308fb170e * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec):
treat 0.0 and -0.0 of floating-point numbers specially for an optimization
  and to correctly propagate its signbit to the result.
  [Bug #9214] [ruby-core:58858]

* test/bigdecimal/test_bigdecimal.rb: add tests case for the above change.

* test/bigdecimal/test_bigdecimal_util.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 16:34:59 +00:00
nobu 8cffe06a04 test_objspace.rb: show error
* test/objspace/test_objspace.rb (test_dump_all): show error output if
  nothing dumped.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 13:30:39 +00:00
nobu 19737494b9 array.c: prefer lhs elements
* array.c (rb_ary_or): lhs elements are prefered, so should not
  replace with rhs elements.
* test/ruby/test_array.rb (test_OR_in_order): import the test failed
  by r43969 from rubyspec/core/array/union_spec.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 12:53:31 +00:00
nobu b28f0f1ed2 test_gc.rb: expand timeout
* test/ruby/test_gc.rb (test_sweep_in_finalizer): expand timeout for
  slower machines.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 11:57:32 +00:00
tmm1 4876dd3fb1 gc.c: add GC.latest_gc_info()
* gc.c (struct rb_objspace): rename internal last_collection_flags to
  latest_gc_info
* gc.c (gc_latest_collection_info): add GC.latest_gc_info() with similar
  behavior to GC.stat()
* gc.c (rb_gc_latest_gc_info): new c-api for above
* gc.c (gc_stat_internal): remove :last_collection_flags from GC.stat
* gc.c (gc_profile_decode_flags): remove GC::Profiler.decode_flags
* include/ruby/intern.h (rb_gc_latest_gc_info): export new c-api
* test/ruby/test_gc.rb (class TestGc): test for new behavior
* NEWS: note about new api

* gc.c (gc_stat_internal): raise TypeError on wrong type
* gc.c (gc_stat): fix error message

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 10:30:38 +00:00
tmm1 6692436b9f ext/objspace: remove OS.after_gc_start_hook= and move internal test
* ext/objspace/gc_hook.c: remove this file
* ext/-test-/tracepoint/gc_hook.c: new filename for above
* ext/objspace/objspace.c: remove ObjectSpace.after_gc_start_hook=
* test/objspace/test_objspace.rb: remove test
* test/-ext-/tracepoint/test_tracepoint.rb: add above test for
  tracepoint re-entry

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 09:24:02 +00:00
tmm1 241c1a5459 gc.c: expose GC.stat() to C-api via rb_gc_stat()
* include/ruby/intern.h: add rb_gc_stat() for access to GC.stat
  variables from c-api
* gc.c (rb_gc_stat): new c-api method. accepts either VALUE hash like
  GC.stat, or VALUE symbol key and returns size_t directly. the second
  form is useful to avoid allocations, i.e. for usage inside
  INTERNAL_EVENT_GC tracepoints.
* gc.c (gc_stat): add GC.stat(:key) to return single value instead of hash
* gc.c (gc_stat_internal): helper method to retrieve single or all stat values
* test/ruby/test_gc.rb (class TestGc): test for new behavior
* NEWS: note about this new api

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 07:45:13 +00:00
nobu 19be85f7d1 test_hash.rb: import tests from rubyspec
* test/ruby/test_hash.rb: import tests for recursive hash values
  from rubyspec/core/{array,hash}/hash_spec.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 05:38:15 +00:00
nobu 1402333810 test_hash.rb: move tests
* test/ruby/test_hash.rb: move hash value tests from test_array.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 05:38:13 +00:00
nobu 14b46d30e0 test_gc.rb: shorten
* test/ruby/test_gc.rb (test_sweep_in_finalizer): omit iteration number to 2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 05:35:34 +00:00
tmm1 393b9e65e9 gc.c: split GC_END event into GC_END_MARK and GC_END_SWEEP
* include/ruby/ruby.h: remove INTERNAL_EVENT_GC_END and replace with
  two new events: GC_END_MARK and GC_END_SWEEP
* gc.c (gc_after_sweep): emit GC_END_SWEEP after lazy sweep is done
* gc.c (gc_marks_body): emit GC_END_MARK at end of minor/major mark
* ext/-test-/tracepoint/tracepoint.c (struct tracepoint_track): tests
  for new events.
* test/-ext-/tracepoint/test_tracepoint.rb (class TestTracepointObj):
  ditto.
* NEWS: remove ObjectSpace.after_gc_*_hook. These are only a sample,
  and will be removed before ruby 2.1.
* ext/objspace/gc_hook.c: remove ObjectSpace.after_gc_end_hook=

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 04:26:04 +00:00
nobu c06f12031e gc.c: flush all deferred finalizers
* gc.c (finalize_deferred): flush all deferred finalizers while other
  finalizers can get ready to run newly by lazy sweep.
  [ruby-core:58833] [Bug #9205]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 01:47:12 +00:00
nobu 148135d96b * test/ruby/test_array.rb (test_recursive_hash_value): rename.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-04 04:59:25 +00:00
nobu fc4de12302 delegate.rb: ignore unset target
* lib/delegate.rb (Delegator#method_missing): ignore the target if not
  set, and delegate to global methods.  [ruby-core:58572] [Bug #9155]
* lib/delegate.rb (Delegator#respond_to_missing): ditto.
* lib/delegate.rb (SimpleDelegator#__getobj__): yield and return if
  not delegated but a block is given, like as Hash#fetch.
* lib/delegate.rb (DelegateClass#__getobj__): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-04 03:47:57 +00:00
nobu 218d1f5e1e hash.c: same hash value for similar constructs
* hash.c (rb_hash_recursive): make similar (recursive) constructs
  return same hash value.  execute recursively, and rewind to the
  topmost frame with an object which .eql? to the recursive
  object, if recursion is detected.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 13:32:24 +00:00
nobu 6f2efe84fb hash.c: detect recursion for all
* hash.c (rb_hash): detect recursion for all `hash' methods.  each
  `hash' methods no longer need to use rb_exec_recursive().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 13:18:30 +00:00
nobu b69c18cff1 * test/ruby/test_rubyoptions.rb (TestRubyOptions::SEGVTest::ExpectedStderr):
ignore fault address.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 06:08:19 +00:00
glass 95f983f6d0 * array.c (ary_add_hash): set and return values because string keys
will be frozen. [ruby-core:58809] [Bug #9202]

* array.c (rb_ary_uniq_bang): ditto.

* array.c (rb_ary_or): ditto.

* array.c (rb_ary_uniq): ditto.

* test/ruby/test_array.rb: tests for above.

The patch is from normalperson (Eric Wong).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 04:55:51 +00:00
drbrain e45f56d5db * ext/openssl/lib/openssl/buffering.rb: Return ASCII-8BIT strings from
SSLSocket methods.  [ruby-trunk - Bug #9028]
* test/openssl/test_ssl.rb:  Test for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 01:44:41 +00:00
drbrain f462cdb5d9 * lib/rdoc: Update to RDoc master 900de99. Changes include:
Fixed documentation display of constants

  Fixed handling of unknown parsers

* test/rdoc:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 00:42:49 +00:00
glass ead0c5d356 * hash.c (rb_hash_rehash): make temporary st_table under the control
of GC. [Bug #9187]

* test/ruby/test_hash.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-02 12:59:31 +00:00
drbrain 34e57abf23 * lib/net/smtp.rb (Net::SMTP#critical): Always return a
Net::SMTP::Response.  Patch by Pawel Veselov.
  [ruby-trunk - Bug #9125]
* test/net/smtp/test_smtp.rb:  Test for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-02 05:18:04 +00:00
drbrain 673efdceef * lib/rubygems: Update to RubyGems master baa965b. Notable changes:
Copy directories to lib/ when installing extensions.  This completes
  the fix for [ruby-trunk - Bug #9106]

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-01 20:52:57 +00:00
sorah 46e44fb628 * test/ruby/test_case.rb (test_nomethoderror):
Add test related to r43913, r43914

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-01 17:06:56 +00:00
drbrain 73fc703f7c * lib/rubygems: Update to RubyGems master 66e5c39. Notable changes:
Implement gem.deps.rb (Gemfile) .lock support

  Fixed `gem uninstall` for a relative directory in GEM_HOME.

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 23:27:52 +00:00
tmm1 b05721765e * test/ruby/test_gc.rb (test_gc_reason): Force minor GC by consuming
free slots to fix test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 21:02:00 +00:00
nobu bf9c1d9818 dir.c: check unknown keywords
* dir.c (dir_initialize): check unknown keywords.  [ruby-dev:47152]
  [Bug #8060]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 12:22:20 +00:00
nobu 04ca48fc38 eval.c: determine exit status and signal before finalization
* eval.c (ruby_cleanup): determine exit status and signal to terminate
  before finalization, to get rid of access destroyed T_DATA execption
  object.  [ruby-core:58643] [Bug #9167]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 08:46:41 +00:00
nobu 520f0fec95 enumerator.c: should not store local variable address
* enumerator.c (enumerator_with_index): should not store local variable
  address to memoise the arguments.  it is invalidated after the return.
  [ruby-core:58692] [Bug #9178]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 07:25:17 +00:00
nobu 59ed302965 siphash.c: fix missing condition
* siphash.c (sip_hash24): fix for aligned word access little endian
  platforms.  [ruby-core:58658] [Bug #9172]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 04:28:15 +00:00
nobu dacc2c2436 vm_eval.c: blockarg
* vm_eval.c (rb_yield_block): implement non-nil block argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 04:21:26 +00:00
nobu 4ce307aeee range.c: revert the old behavior
* range.c (range_each): revert the old behavior, no block is given to
  the yielded block.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 04:21:22 +00:00
a_matsuda 0c85ffd8a7 * lib/webrick/httpauth/digestauth.rb: Fix typo in an error message.
* test/ruby/test_parse.rb: Fix typo in a test name.

s/allowd/allowed/

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-29 14:03:26 +00:00
sorah 14361a72ff * test/ruby/test_case.rb (test_method_missing): Test for r43913.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-29 09:08:33 +00:00
tmm1 d7009f76ef * gc.c: Expose details about last garbage collection via GC.stat.
* gc.c (gc_stat): Add :last_collection_flags for reason/trigger/type of
  last GC run.
* gc.c (gc_prof_sweep_timer_stop): Record HAVE_FINALIZE GPR even
  without GC_PROFILE_MORE_DETAIL.
* gc.c (gc_profile_flags): Add GC::Profiler.decode_flags to make sense
  of GC.stat[:last_collection_flags]
* test/ruby/test_gc.rb (class TestGc): Test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-28 07:40:35 +00:00
tmm1 f8994603b3 * test/ruby/test_gc.rb (class TestGc): Fix warning in
test_expand_heap.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 07:07:59 +00:00
tmm1 0094b7bb68 * gc.c (Init_GC): Add new GC::INTERNAL_CONSTANTS for information about
GC heap/page/slot sizing.
* test/ruby/test_gc.rb (class TestGc): test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 06:57:14 +00:00
ko1 5993c141f1 * gc.c (gc_stat): add new information heap_eden_page_length and
heap_tomb_page_length.
* test/ruby/test_gc.rb: fix to use GC.stat[:heap_eden_page_length]
  instead of GC.stat[:heap_length].
  This test expects `heap_eden_page_length' (used pages size).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 06:09:55 +00:00
tmm1 53f3ddfefb * test/ruby/test_eval.rb (class TestEval): Use assert_same instead of
assert_equal.
* test/ruby/test_hash.rb (class TestHash): ditto.
* test/ruby/test_iseq.rb (class TestISeq): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 06:03:37 +00:00
drbrain 9c8f03fac9 * lib/rinda/ring.rb: Announce RingServer for the same process.
[ruby-trunk - Bug #9163]
	* test/rinda/test_rinda.rb:  Tests for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 05:50:21 +00:00
tmm1 fdcc476e21 * test/ruby/test_eval.rb (class TestEval): Add test for shared eval
filenames via rb_fstring().
* test/ruby/test_iseq.rb (class TestISeq): Add test for shared
  iseq labels via rb_fstring(). [Bug #9159]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 05:39:38 +00:00
tmm1 0c3b3e9237 * hash.c (hash_aset_str): Use rb_fstring() to de-duplicate hash string
keys. Patch by Eric Wong. [Bug #8998] [ruby-core:57727]
* test/ruby/test_hash.rb (class TestHash): test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 05:28:55 +00:00
headius 26e969182b * test/ruby/test_string.rb: Add test for error when appending a
Symbol into a String.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 03:28:48 +00:00
nobu c38b4a9b3d test_bug_reporter.rb: remove core
* test/-ext-/bug_reporter/test_bug_reporter.rb (test_bug_reporter_add):
  remove expected core file to get rid of false error in chkbuild.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-27 00:32:37 +00:00
tenderlove 079ff69ca0 * ext/psych/lib/psych/scalar_scanner.rb: fix support for negative
years.
* ext/psych/lib/psych/visitors/yaml_tree.rb: ditto
* test/psych/test_date_time.rb: test for change.
  Fixes: https://github.com/tenderlove/psych/issues/168

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 21:41:48 +00:00
tenderlove 725d6f4970 * ext/psych/lib/psych/scalar_scanner.rb: fix regexp for matching TIME
strings.
* test/psych/test_date_time.rb: test for change.
  Fixes: https://github.com/tenderlove/psych/issues/171

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 19:48:03 +00:00
nobu 4760b9824f string.c: fix memsize of frozen shared string
* string.c (str_new4): copy the original capacity so that memsize of
  frozen shared string returns correct size.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 17:27:01 +00:00
nobu 94f01c55df should not ignore the rest of recursive constructs
* array.c (rb_ary_hash): should not ignore the rest of recursive
  constructs.
* hash.c (rb_hash_hash): ditto.
* range.c (range_hash): ditto.
* struct.c (rb_struct_hash): ditto.
* test/-ext-/test_recursion.rb (TestRecursion): separate from
  test/ruby/test_thread.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 17:20:16 +00:00
nobu d503381ce8 hash.c: cut off if recursion
* hash.c (rb_hash): cut off if recursion detected to get rid of stack
  overflow.  [ruby-core:58567] [Bug #9151]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 13:43:40 +00:00
ko1 a4b0c3c26b * test/ruby/test_settracefunc.rb: add tests for a_call/a_return
by Brandur <brandur@mutelight.org> [Feature #9120]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 11:03:57 +00:00
ko1 5b40cb6a2c * vm_trace.c: prohibit to specify normal events and internal events
simultaneously.
  I will introduce special care for internal events later.
* ext/-test-/tracepoint/tracepoint.c: test this behavior.
* test/-ext-/tracepoint/test_tracepoint.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 08:41:44 +00:00
nobu 079009fb93 file.c: fix buffer overflow
* file.c (rb_readlink): fix buffer overflow on a long symlink. since
  rb_str_modify_expand() expands from its length but not its capacity,
  need to set the length properly for each expansion.
  [ruby-core:58592] [Bug #9157]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 07:30:37 +00:00
drbrain 04817ae6d3 * lib/rubygems: Update to RubyGems master 612f85a. Notable changes:
Fixed installation and activation of git: and path: gems via
  Gem.use_gemdeps

  Improved documentation coverage

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-25 19:14:49 +00:00
ko1 84b7d6d533 * test/-ext-/tracepoint/test_tracepoint.rb: catch up GC.stat changes
at r43835.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-24 20:06:02 +00:00
ko1 f06002208d * gc.c (gc_stat): add internal information.
* heap_swept_slot
  * malloc_increase
  * malloc_limit
  * remembered_shady_object
  * remembered_shady_object_limit
  * old_object
  * old_object_limit
  * oldmalloc_increase
  * oldmalloc_limit
* gc.c (gc_stat): rename names.
  * heap_live_num -> heap_live_slot
  * heap_free_num -> heap_free_slot
  * heap_final_slot -> heap_final_slot
  Quote from RDoc of GC.stat():
    "The contents of the hash are implementation specific and may
    be changed in the future."
* test/ruby/test_gc.rb: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-24 19:08:33 +00:00
ko1 15bbf34c69 * test/ruby/test_gc.rb: catch up last commit.
Now RUBY_GC_OLDSPACE_LIMIT(...) is RUBY_GC_OLDMALLOC_LIMIT(...).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-24 19:01:14 +00:00
jeg2 895e9b0acd * lib/csv.rb: Optimize header hashes by freezing string keys.
[ruby-core:58510]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-24 00:44:41 +00:00
tmm1 34176b023e * ext/objspace/objspace_dump.c: test fixes and win32 compatibility
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-24 00:22:19 +00:00
jeg2 80c4b4b3d7 * lib/csv.rb: If skip_lines is set to a String, convert it to a Regexp
to prevent the alternative, which is that each line in the CSV gets
  converted to a Regexp when calling skip_lines#match.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-23 23:12:11 +00:00
ko1 dbe9e6a5f8 * gc.c: fix gloval variable name.
Now we have following environments (and related variable names).
  * RUBY_GC_HEAP_INIT_SLOTS
  * RUBY_GC_HEAP_FREE_SLOTS
  * RUBY_GC_HEAP_GROWTH_FACTOR (new from 2.1)
  * RUBY_GC_HEAP_GROWTH_MAX_SLOTS (new from 2.1)
  * obsolete
    * RUBY_FREE_MIN       -> RUBY_GC_HEAP_FREE_SLOTS (from 2.1)
    * RUBY_HEAP_MIN_SLOTS -> RUBY_GC_HEAP_INIT_SLOTS (from 2.1)
  * RUBY_GC_MALLOC_LIMIT
  * RUBY_GC_MALLOC_LIMIT_MAX (new from 2.1)
  * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR (new from 2.1)
  * RUBY_GC_OLDSPACE_LIMIT (new from 2.1)
  * RUBY_GC_OLDSPACE_LIMIT_MAX (new from 2.1)
  * RUBY_GC_OLDSPACE_LIMIT_GROWTH_FACTOR (new from 2.1)
* test/ruby/test_gc.rb: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-23 03:33:10 +00:00
drbrain e8e18cff7a * lib/rubygems: Update to RubyGems master dcce4ff. Important changes
in this commit:

  Remove automatic detection of gem dependencies files.  This prevents a
  security hole as described in [ruby-core:58490]

  Fixed bugs for installing git gems.

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 18:53:21 +00:00
tarui d56cbe5ad7 * test/ruby/test_settracefunc.rb (test_tracepoint_thread): bugfix.
Take care about the thread switch between Thread.new and let to
	  create_thread.
	  TracePoint's block is sometimes run with create_thread == nil,
	  so we have to perform Thread check later.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 18:22:57 +00:00
naruse 95a6be1a17 * transcode.c (str_transcode0): don't scrub invalid chars if
str.encode doesn't have explicit invalid: :replace.
  workaround fix for see #8995

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 08:50:14 +00:00
mrkn 2043bb5c34 * ext/bigdecimal/bigdecimal.c (BigDecimal_power): Round the result value.
[Bug #8818] [ruby-core:56802]

* test/bigdecimal/test_bigdecimal.rb: Add a test for the above fix.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 07:52:17 +00:00
nobu f229f6e32c test_string.rb: refine assertions
* test/ruby/test_string.rb: refine assertions, instead of mere assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 06:32:34 +00:00
nobu 5cb83d9dab util.c: ignore too long fraction part
* util.c (ruby_strtod): ignore too long fraction part, which does not
  affect the result.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 03:43:56 +00:00
akr a89132ca7f * test/ruby/test_settracefunc.rb: Ignore events from other threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 03:03:11 +00:00
zzak d553c518d5 * test/digest/test_digest.rb: Reverse order of assert_equal
Reported by @splattael


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 00:43:08 +00:00
drbrain 5307d803f5 * lib/rubygems: Update to RubyGems master 50a8210. Important changes
in this commit:

  RubyGems now automatically checks for gem.deps.rb or Gemfile when
  running ruby executables.  This behavior is similar to `bundle exec
  rake`.  This change may be reverted before Ruby 2.1.0 if too many bugs
  are found.

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 23:27:30 +00:00
mrkn ff3e585014 * ext/bigdecimal/bigdecimal.c (BigDecimal_sqrt): Fix the precision of
the result BigDecimal of sqrt.
  [Bug #5266] [ruby-dev:44450]

* test/bigdecimal/test_bigdecimal.rb: add tests for the above changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 12:37:46 +00:00
nobu 7800a4b566 test_tempfile.rb: suppress warnings
* test/test_tempfile.rb (test_tempfile_is_unlinked_when_ruby_exits): no error should emit.

* test/test_tempfile.rb (test_tempfile_encoding_ascii8bit): remove unused variable.

* test/test_tempfile.rb (test_tempfile_encoding_ascii8bit2): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 09:51:18 +00:00
nobu bb6607404a delegate.rb: check if target is set
* lib/delegate.rb (SimpleDelegator#__getobj__): target object must be set.
* lib/delegate.rb (DelegateClass#__getobj__): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 09:47:31 +00:00
zzak 671dbfdda8 * test/digest/test_digest.rb: Add more tests for digest/bubblebabble
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 07:51:29 +00:00
knu d3edb4a85e * test/uri/test_generic.rb (URI#test_merge): Test uri + URI(path)
in addition to uri + path.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 07:26:53 +00:00
zzak 543c99e25a * test/digest/test_digest.rb: Add test for Digest::SHA256.bubblebabble
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 01:31:51 +00:00
akr ced9ad5ab5 * random.c (rand_init): Make it possible to specify arbitrary array
for init_genrand().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-20 11:05:38 +00:00
nobu cdde8c23de test_exception.rb: enclose hash defininition
* test/ruby/test_exception.rb: (test_machine_stackoverflow): enclose
  hash defininition because SystemStackError raises at line 3 on
  FreeBSD, for unknown reason.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-20 09:01:42 +00:00
naruse 14cab32596 * ext/json: merge JSON 1.8.1.
002ac2771c...e09ffc0d7d
* Remove Rubinius exception since transcoding should be working now.
* Fix https://github.com/flori/json/issues/162 reported by Marc-Andre
  Lafortune <github_rocks@marc-andre.ca>. Thanks!
* Applied patches by Yui NARUSE <naruse@airemix.jp> to suppress
  warning with -Wchar-subscripts and better validate UTF-8 strings.
* Applied patch by ginriki@github to remove unnecessary if.
* Add load/dump interface to JSON::GenericObject to make
  serialize :some_attribute, JSON::GenericObject
  work in Rails active models for convenient
  SomeModel#some_attribute.foo.bar access to serialised JSON data.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-20 02:55:08 +00:00
nobu a9a6c103e5 delegate.rb: refix r43682
* lib/delegate.rb (Delegator#send): separate from method_missing so
  that super calls proper method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19 16:27:40 +00:00
nobu a8e29fb206 test_rdoc_generator_darkfish.rb: ignore nlink is not provided
* test/rdoc/test_rdoc_generator_darkfish.rb (assert_hard_link): makes
  no sense on platforms where link count is not provided.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19 14:34:20 +00:00
nobu 4528d7e0cf rubygems/source/git.rb: discard output
* lib/rubygems/source/git.rb (Gem::Source::Git#checkout): discard git
  output.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19 14:00:29 +00:00
akr 6895e77ffc * test/net/http/utils.rb (spawn_server): Specify zero for port to
avoid reusing an allocated port.

* test/net/http/test_http.rb: Don't specify port here.

* test/net/http/test_https.rb: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19 12:29:46 +00:00
drbrain cc46b530b0 * lib/rdoc: Update to RDoc master a1195ce. Changes include:
Improved accessibility of the main sidebar navigation.

  Fixed handling of regexp options in HTML source highlighting.

* test/rdoc:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19 00:47:33 +00:00
drbrain a7fa4d5d9a * lib/rubygems: Update to RubyGems master 6a3d9f9. Changes include:
Compatibly renamed Gem::DependencyResolver to Gem::Resolver.

  Added support for git gems in gem.deps.rb and Gemfile.

  Fixed resolver bugs.

* test/rubygems: ditto.

* lib/rubygems/LICENSE.txt:  Updated to license from RubyGems trunk.
  [ruby-trunk - Bug #9086]

* lib/rubygems/commands/which_command.rb:  RubyGems now indicates
  failure when any file is missing.  [ruby-trunk - Bug #9004]

* lib/rubygems/ext/builder:  Extensions are now installed into the
  extension install directory and the first directory in the require
  path from the gem.  This allows backwards compatibility with msgpack
  and other gems that calculate full require paths.
  [ruby-trunk - Bug #9106]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19 00:34:13 +00:00
headius 64e693dd32 * test/bigdecimal/test_bigdecimal.rb: incorporate BigMath.log
tests from JRuby by Peter Vandenabeele.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-18 19:02:11 +00:00
nobu 340390093b eval_intern.h: refine stack overflow detection
* eval_intern.h (TH_PUSH_TAG, TH_EXEC_TAG): refine stack overflow
  detection.  chain local tag after setjmp() successed on it, because
  calling setjmp() also can overflow the stack.
  [ruby-dev:47804] [Bug #9109]
* vm_eval.c (rb_catch_obj): now th->tag points previous tag until
  TH_EXEC_TAG().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-18 13:47:56 +00:00
kou a66a9fbb10 * lib/rexml/parsers/ultralightparser.rb
(REXML::Parsers::UltraLightParser#parse): Fix wrong :start_doctype
  position.
  [Bug #9061] [ruby-dev:47778]
  Patch by Ippei Obayashi. Thanks!!!

* test/rexml/parser/test_ultra_light.rb: Add a test for this case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-16 09:31:24 +00:00
tarui bc3db2a512 * test/ruby/test_hash.rb (class TestHash): add tests for [ruby-dev:47803] [Bug #9105]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-16 00:24:39 +00:00
nobu 6e3184e25a envutil.rb: crash report on Mac OS X
* test/ruby/envutil.rb (EnvUtil.diagnostic_reports): find crash report
  on Mac OS X.

* test/ruby/envutil.rb (Test::Unit::Assertions::FailDesc): include
  crash report on Mac OS X.

* test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err):
  remove crash reports if exist.

* test/ruby/test_process.rb (TestProcess#test_status_kill): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 22:14:09 +00:00
nobu 006eca88cf test_beginendblock.rb: assert_normal_exit
* test/ruby/test_beginendblock.rb (test_callcc_at_exit): use
  assert_normal_exit for better message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 20:54:16 +00:00
glass 77a5f5b57b * eval_jump.c (rb_exec_end_proc): fix double free or corruption error
when reentering by callcc. [ruby-core:58329] [Bug #9110]

 * test/ruby/test_beginendblock.rb: test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 15:29:23 +00:00
nobu 549b35c1dc eval.c: refactor exception cause
* eval.c (setup_exception): set up cause after exception to be raised
  is fixed.  [Feature #8257]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 14:08:49 +00:00
nobu e7d29c6cda hash.c: iteration level with reentering
* hash.c (hash_foreach_iter, hash_foreach_ensure, rb_hash_foreach):
  deal with iteration level when reentering by callcc.  temporary
  measure until rollback of ensure is introduced.  [ruby-dev:47807]
  [Bug #9105]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 13:21:38 +00:00
nobu ca5739979d delegate.rb: get rid of global function interference
* lib/delegate.rb (Delegator#send): override to get rid of global function interference.
  [Fixes GH-449]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 08:07:39 +00:00
nobu 91aa8da578 objspace_dump.c: refine output
* ext/objspace/objspace_dump.c (dump_output): allow IO object as
  output, and use Tempfile.create and return open file instead of
  mkstemp() and path name for :file output.
  [ruby-core:58266] [Bug #9102]
* test/objspace/test_objspace.rb (TestObjSpace#dump_my_heap_please):
  remove temporary output file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-14 16:06:09 +00:00
akr e4f8f8907c * test/openssl/test_cipher.rb (test_aes_gcm_wrong_tag): Don't use
String#succ because it can make modified (wrong) auth_tag longer
  than 16 bytes.  The longer auth_tag makes that
  EVP_CIPHER_CTX_ctrl (and internally aes_gcm_ctrl) fail.
  [ruby-core:55143] [Bug #8439] reported by Vit Ondruch.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-14 10:58:15 +00:00
nobu 04c7fa0f3b hash.c: restore iter_lev
* hash.c (hash_foreach_ensure): restore iter_lev to the previous
  value, not just decrement.  [ruby-dev:47803] [Bug #9105]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-14 02:35:40 +00:00
drbrain 067e24d6e2 * test/rubygems/insure_session.rb: Remove unused test file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-12 01:16:11 +00:00
drbrain 44d0a6dcd7 * lib/rubygems: Update to RubyGems master b9213d7. Changes include:
Fixed tests on Windows (I hope) by forcing platform for
  platform-dependent tests.

  Fixed File.exists? warnings.

  Improved testing infrastructure.

* test/rubygems:  ditto.

* test/rdoc/test_rdoc_rubygems_hook.rb:  Switch to util_spec like
  RubyGems.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-12 00:16:41 +00:00
drbrain e22d8781c8 * lib/rubygems/specification.rb: Include 2.2.0.preview.2 when checking
if extensions should be built.  Fixes a ruby-ci failure.
* test/rubygems/test_gem_specification.rb:  Test for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-10 19:37:05 +00:00
drbrain 4f6779bac7 * lib/rubygems: Update to RubyGems master 4bdc4f2. Important changes
in this commit:

  RubyGems now chooses the test server port reliably.  Patch by akr.

  Partial implementation of bundler's Gemfile format.

  Refactorings to improve the new resolver.

  Fixes bugs in the resolver.

* test/rubygems:  Tests for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-10 17:51:40 +00:00
nobu b050cc5ab9 error.c: Exception#cause
* error.c (exc_cause): captured previous exception.
* eval.c (make_exception): capture previous exception automagically.
  [Feature #8257]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-10 13:16:33 +00:00
nobu 90b9996523 parse.y: remove "f" suffix [ruby-core:57966] [Feature #9042]
revert r42847 "test_string.rb: add test string encoding"

revert r42846 "parse.y: freeze in advance to reduce objects"

revert r42843 "parse.y: deduplicate frozen string literals"

revert r42780 "test_string.rb: yet another test"

revert r42779 "parse.y: valid suffix word only"

revert r42778 "test_string.rb: remove duplicated code"

revert r42775 "parse.y: force_encoding"

This reverts commit 93ea04ecec.

revert r42773 "Add frozen string literals"

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-10 06:13:02 +00:00
nobu d6f5e30df8 test_objectspace.rb: run in separate process
* test/ruby/test_objectspace.rb (TestObjectSpace#test_finalizer): run
  in separate process so that finalizers run at termination certainly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-09 18:12:39 +00:00
nobu 0a5b32c45a envutil.rb: under_gc_stress parameter
* test/ruby/envutil.rb (EnvUtil#under_gc_stress): add stress parameter
  so that making possible to disable stressing explicitly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-09 16:46:17 +00:00
nobu 3fdff0501a gc.c: private call
* gc.c (should_be_callable): allow private call since rb_eval_cmd
  calls even private methods.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-09 15:36:46 +00:00
nobu ab60cf1a99 test_objspace.rb: assertion for temporary file
* test/objspace/test_objspace.rb (TestObjSpace#test_dump_all): add
  assertion for output to temporary file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-09 13:35:01 +00:00
akr c3fdc2cfb0 * test/objspace/test_objspace.rb (test_dump_all): Make the test string
shorter to be an embedded string on 32bit environment as well as
  64bit environment.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-09 11:53:02 +00:00
tmm1 d0d6e2ecfa * ext/objspace/object_tracing.c: Add experimental methods to dump
objectspace as json: ObjectSpace.dump_all and ObjectSpace.dump(obj).
These methods are useful for debugging reference leaks and memory growth
in large ruby applications. [Bug #9026] [ruby-core:57893] [Fixes GH-423]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-08 17:06:55 +00:00
nobu 74f424c26a test_logger.rb: clear garbage files
* test/logger/test_logger.rb (test_shifting_age_in_multiprocess):
  unlink rotated log files all.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-07 18:11:38 +00:00
nobu cf5ef3db5e vm_trace.c: isolate errinfo in trace blocks
* vm_trace.c (rb_threadptr_exec_event_hooks_orig): errinfo should not
  be propagated to trace blocks so that no argument raise does not
  throw internal objects.  [ruby-dev:47793] [Bug #9088]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-07 00:39:56 +00:00
naruse e7194e9648 Suppress warnings: ambiguous first argument; put parentheses or even spaces
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-06 06:25:18 +00:00
tenderlove 9ae2651d19 * ext/psych/lib/psych/visitors/to_ruby.rb: process merge keys before
reviving objects. Fixes GH psych #168
* test/psych/test_merge_keys.rb: test for change
  https://github.com/tenderlove/psych/issues/168

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-05 19:15:40 +00:00
akr 7835e321ea * test/ruby/test_thread.rb (test_thread_join_in_trap):
Run the test in a different process.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-05 12:25:15 +00:00
nobu b2f7e64caf test_command_processor.rb: clear tmpdir
* test/shell/test_command_processor.rb (TestShell#teardown): should
  not leave temporary directories.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-05 08:10:32 +00:00
akr 7a3f2845df * test/xmlrpc: Don't use fixed ports: 8070 and 8071.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-04 13:21:53 +00:00
akr 445b04d18d * test/xmlrpc/webrick_testing.rb (start_server): Initialize the server
at main thread to fail early.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-04 06:27:54 +00:00
akr ddf1d3aaed * test/xmlrpc: Wrap definitions by TestXMLRPC module.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-03 11:41:53 +00:00
akr 438a91c072 * test/xmlrpc/webrick_testing.rb (stop_server): Don't try to shutdown
the server if the server is not started.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-03 11:26:58 +00:00
nobu 3c8072937c logger.rb: fix r43511 for Windows
* lib/logger.rb (Logger::LogDevice::LogDeviceMutex#lock_shift_log):
  open file can't be removed or renamed on Windows.  [ruby-dev:47790]
  [Bug #9046]
* test/logger/test_logger.rb (TestLogDevice#run_children): don't use
  fork.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-02 06:15:02 +00:00
naruse 0749adc54c * lib/logger.rb: Inter-process locking for log rotation
Current implementation fails log rotation on multi process env.
  by sonots <sonots@gmail.com>
  https://github.com/ruby/ruby/pull/428 fix GH-428 [Bug #9046]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-01 22:14:42 +00:00
nobu 99981ece00 test_m17n.rb: fix encoding
* test/ruby/test_m17n.rb (test_scrub): fix expected encoding, for
  non-UTF-8 environment.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-01 13:46:29 +00:00
nobu e7fac351c2 string.c: fix typo
* string.c (rb_str_scrub): fix typo, should yield invalid byte
  sequence to be scrubbed.  reported by znz at IRC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-01 11:53:59 +00:00
nobu d7b729dcd0 test_m17n.rb: nil replacement
* test/ruby/test_m17n.rb (test_scrub, test_scrub_bang): now explicit
  nil is allowed as replacement.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-01 08:00:43 +00:00
tenderlove e0c6dd91a4 * ext/psych/lib/psych/visitors/yaml_tree.rb: string subclasses should
not be considered to be binary.  Fixes Psych / GH 166
  https://github.com/tenderlove/psych/issues/166

* test/psych/test_string.rb: test for fix

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-29 18:10:24 +00:00
tmm1 29dbed183e * gc.c (gc_profile_total_time): fix off-by-one error in GC::Profiler.total_time.
* test/ruby/test_gc.rb (class TestGc): test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-29 02:11:26 +00:00
akr e2ec76056a * test/readline/test_readline.rb (teardown): Clear Readline.input and
Readline.output.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-28 14:26:41 +00:00
nobu 4a21c8cc27 test_exception.rb: missing test
* test/ruby/test_exception.rb (test_to_s): missing test for r30455.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-28 04:11:20 +00:00
tmm1 5b529e5a3d * vm_backtrace.c (rb_profile_frame_classpath): handle singleton
methods defined directly on an object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-27 19:17:24 +00:00
nobu ab453f901d struct.c: fix warning message
* struct.c (new_struct): fix warning message, class name and encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-27 15:52:39 +00:00
nobu f8978ba3f9 envutil.rb: fix disabling gems in assert_separately
* test/ruby/envutil.rb (assert_separately): fix the position of
  --disable=gems option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-27 01:36:18 +00:00
nobu 64f2b9f990 range.c: modify check
* range.c (range_initialize_copy): disallow to modify after
  initialized.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-26 10:08:02 +00:00
nobu 2c6518c37d envutil.rb: disable gems in child process
* test/ruby/envutil.rb (assert_separately): disable gems by default to
  get rid of loading test-unit gem, which doesn't have _assertions
  method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-26 10:07:13 +00:00
marcandre 8afbb0e6ef * parse.y: Remove +(binary) and -(binary) special cases [Feature #9048]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-24 12:58:54 +00:00
tmm1 b906f0ed17 * gc.c: add new initial_growth_max tuning parameter. [ruby-core:57928] [Bug #9035]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-23 22:47:29 +00:00
marcandre f9a169fff2 * lib/ostruct.rb: raise NoMethodError with a #name and #args.
Patch by Kenichi Kamiya. [Fixes GH-383]

* test/ostruct/test_ostruct.rb: Added tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-23 15:14:17 +00:00