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

24334 Коммитов

Автор SHA1 Сообщение Дата
tmm1 5ac7c395c1 test/net/imap/test_imap.rb: fix test failures due to expired certs
* test/net/imap/cacert.pem: generate new CA cert, since the last one
  expired. [Bug #9341] [ruby-core:59459]
* test/net/imap/server.crt: new server cert signed with updated CA.
* test/net/imap/Makefile: add `make regen_certs` to automate this
  process.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-03 01:46:55 +00:00
eregon 1cc709a84a * ext/bigdecimal: update class method call style from :: to .
in documentation and usage.
* ext/bigdecimal/lib/bigdecimal/math.rb: [DOC] fix examples values.
  Computations were made using ruby 2.0.0p247 to ensure
  no effect of the recent BigDecimal bug.
* ext/bigdecimal/sample/nlsolve.rb: fix indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-02 15:10:13 +00:00
glass 72385b042d * io.c (io_fwrite): freeze converted str.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-02 07:29:13 +00:00
nobu 243e581db0 eval.c: extra modifier
* eval.c (rb_longjmp): remove an extra modifier from the forward
  declaration to match the actual definition.  [ruby-core:59451]
  [Bug #9338]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-01 19:15:29 +00:00
glass b66d7182b7 * vm_eval.c (method_missing): use ALLOCV_N() instead of
ALLOCA_N() and rb_ary_tmp_new().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-01 16:40:11 +00:00
glass 56b0396944 * array.c (rb_ary_zip): use ALLOCV_N() instead of ALLOCA_N().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-01 15:55:51 +00:00
glass 2c11bda8b9 * hash.c (rb_hash_keys): make rb_hash_keys() static.
it is no longer used from array.c since r43969.
  the patch is from normalperson (Eric Wong).
  [ruby-core:59449] [Feature #9336]

* internal.h: remove definition of rb_hash_keys().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-01 15:19:23 +00:00
nobu 41d42a5937 configure.in: LDFLAGS and DLDFLAGS for opt-dir
* 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/trunk@44476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-01 09:19:37 +00:00
nobu dd6834b054 configure.in: use SSE2
* configure.in: use SSE2 instructions for drop unexpected
  precisions.  [ruby-core:54738] [Bug #8358]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-01 02:12:38 +00:00
nobu 8a46d4027c eval.c: raise with cause
* eval.c (rb_f_raise): add cause: optional keyword argument.
  [ruby-core:58610] [Feature #8257] [EXPERIMENTAL]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-31 14:49:16 +00:00
arton 2cdee22370 remove HAVE_FSEEKO from win32/win32.c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-31 13:12:23 +00:00
glass 4e4e65a148 * io.c (io_fwrite): allocate frozen str only when str is not converted.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-31 12:25:16 +00:00
nobu 2bca263569 mkmf.rb: expand RUBY_SO_NAME
* 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/trunk@44469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-31 06:44:58 +00:00
zzak 5e3ec457d2 Add [DOC] tag [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-30 19:47:59 +00:00
ayumin ff529cdc25 * variable.c: Adding extra example in docs. [Bug #9210]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-30 14:39:35 +00:00
nobu 5db5677c66 encoding.c: mask dummy flags
* 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/trunk@44462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-30 09:34:19 +00:00
eban 5b59832c6a * tool/make-snapshot: needs CXXFLAGS. [ruby-core:59393][Bug #9320]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-30 07:14:43 +00:00
sorah e8792774df * lib/mkmf.rb (configuration): Make CXXFLAGS customizable.
Patch by Kohei Suzuki (eagletmt). [Fixes GH-492]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-29 09:43:12 +00:00
nobu a69f01fa52 proc.c: fix inherited method owner
* proc.c (mnew_from_me): keep iclass as-is, to make inheritance
  chain consistent.  [ruby-core:59358] [Bug #9315]

* proc.c (method_owner): return the original defined_class from
  prepended iclass, instead.

* vm_insnhelper.c (vm_search_super_method): revert r44455, no
  longer defined_class becomes a module.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-29 03:11:17 +00:00
nobu cb08e70822 test_sprintf.rb: sprintf with a hash as parameter
* test/ruby/test_sprintf.rb (test_hash): Added tests for sprintf
  with a hash as parameter.  [Fixes GH-491]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-28 23:47:31 +00:00
nobu 24c3331bdf vm_insnhelper.c: missing super in method module
* vm_insnhelper.c (vm_search_super_method): direct superclass of a
  module is found when super called in a Method object generated a
  method defined in a module, call method_missing in that case.
  [ruby-core:59358] [Bug #9315]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-28 23:21:14 +00:00
eregon 7e978b1070 * compar.c (cmp_eq_recursive): Fix the return value, the value for
failed #<=> should be nil. It was raising a NoMethodError for
  the test case TestComparable#test_no_cmp (undefined method `>'
  for false:FalseClass). Yet one more reason for #7688.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-28 22:28:39 +00:00
eregon 58a60b264d * object.c (Kernel#<=>) surround Comparable operators with <code> tags.
The #== method was hidden in ri/rdoc's output and was highlighting
  the line instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-28 13:22:42 +00:00
charliesome 75f4731f90 * benchmark/bm_so_meteor_contest.rb: [DOC] Fix a few typos
* ext/fiddle/lib/fiddle/import.rb: ditto
* ext/psych/lib/psych.rb: ditto
* ext/psych/lib/psych/nodes/sequence.rb: ditto
* ext/tk/lib/multi-tk.rb: ditto
* ext/tk/lib/tcltk.rb: ditto

Closes GH-490

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-28 08:25:28 +00:00
nobu 04bb9d6b75 parse.y: save cmdarg_stack in local scope
* 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/trunk@44449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-27 15:42:49 +00:00
usa cdf80f030d * win32/{setup.mak,Makefile.sub}: update fake.rb like
template/fake.rb.in.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-27 04:25:47 +00:00
usa c283ebb2d2 * win32/Makefile.sub (fake.rb): should depend on version.h because
if RUBY_VERSION is updated, fake.rb need to say the new version
  to avoid install error in rbconfig.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-26 07:11:51 +00:00
nobu 3a247f6489 hash.c: no extra states copy
* hash.c (HASH_REJECT_COPY_EXTRA_STATES): turn off the old
  behavior, copying extra states by accident.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-26 05:25:08 +00:00
matz ae9bda718d * version.h (RUBY_VERSION): 2.2.0 development has started.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-26 03:16:32 +00:00
usa 0928035b9f * ChangeLog: reformatting for the previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-26 01:29:51 +00:00
usa 71d3a294d4 * tool/merger.rb (tag): support 2.1.1 semi-automatic tagging and 2.2.0 explicit tagging.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-26 01:28:18 +00:00
marcandre 64f0682d7d * proc.c: Having any mandatory keyword argument increases min arity [#9299]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 21:36:19 +00:00
marcandre 43c3f447a4 * proc.c: Having optional keyword arguments makes maximum arity +1, not unlimited [#8072]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 21:27:48 +00:00
usa 52668960c5 * tool/release.sh: make symbolic links.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 16:10:21 +00:00
kazu da8b79b4c4 old ChangeLog and NEWS move to doc
* doc/NEWS-2.1.0: moved from NEWS
* doc/ChangeLog-2.1.0: moved ChangeLog older than created ruby_2_0_0 branch
* NEWS: NEWS for 2.2.0 that describes changes since 2.1.0
* ChangeLog: ChangeLog since created v2_1_0_rc1 tag (branch point of ruby_2_1 branch)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 16:05:13 +00:00
usa 213d2aa629 * tool/make-snapshot: support new version scheme.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 15:46:02 +00:00
nobu 27682eefa4 compile.c: unnamed keyword rest check
* 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/trunk@44420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 13:44:18 +00:00
zzak d3908b7f83 * lib/abbrev.rb: [DOC] rdoc format patch by Giorgos Tsiftsis [Bug #9146]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 13:34:27 +00:00
nobu 4398093755 iseq.c: fix parameter of unnamed rest keywords argument
* iseq.c (rb_iseq_parameters): push argument type symbol only for
  unnamed rest keywords argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 11:30:15 +00:00
nobu 7fd58845d9 proc.c: fix arity of rest keywords argument
* proc.c (rb_iseq_min_max_arity): maximum argument is unlimited if
  having rest keywords argument.  [ruby-core:53298] [Bug #8072]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 11:28:56 +00:00
ko1 485e6ebed8 * vm_insnhelper.c (argument_error): insert dummy frame to make
a backtrace object intead of modify backtrace string array.
  [Bug #9295]
* test/ruby/test_backtrace.rb: add a test for this patch.
  fix test to compare a result of Exception#backtrace with
  a result of Exception#backtrace_locations.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 09:35:03 +00:00
nobu 58a7cdaaf0 win32/win32.c: mingw jungle
* configure.in: let mingw do something black-magic, and check if
  _gmtime64_s() is available actually.
* win32/win32.c (gmtime_s, localtime_s): use _gmtime64_s() and
  _localtime64_s() if available, not depending on very confusing
  mingw variants macros.  based on the patch by phasis68 (Heesob
  Park) at [ruby-core:58764].  [ruby-core:58391] [Bug #9119]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 04:00:59 +00:00
mame e8052778c1 * sample/trick2013/: added the award-winning entries of TRICK 2013.
See https://github.com/tric/trick2013 for the contest outline.
  (Matz has approved the attachment.)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 03:45:15 +00:00
nobu 1e7a929c1d ossl_ssl.c: declare OP_MSIE_SSLV2_RSA_PADDING only if defined
* ext/openssl/ossl_ssl.c (Init_ossl_ssl): Declare a constant
  `OP_MSIE_SSLV2_RSA_PADDING` only if the macro is defined.  The
  `SSL_OP_MSIE_SSLV2_RSA_PADDING` has been removed from latest
  snapshot of OpenSSL 1.0.1.  [Fixes GH-488]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-25 01:42:09 +00:00
nobu a11831a9a5 proc.c: Binding#local_variables
* proc.c (bind_local_variables): allowing binding to list its
  local variables.  patch by Jack Danger Canty <jackdanger AT
  squareup.com> at [ruby-core:56543].  [Feature #8773]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-24 16:03:12 +00:00
nobu 7e2269a9ce test_fileutils.rb: tests for chown
* test/fileutils/fileasserts.rb (assert_ownership_user): new
  assertion for user ownership.
* test/fileutils/test_fileutils.rb (test_chown_error),
  (test_chown_without_permission, test_chown_with_root):
  based on the patch by vajrasky (Vajrasky Kok) at
  [ruby-core:59298].  [Feature #9292]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-24 14:20:47 +00:00
nobu 1fc3319973 proc.c: make method by define_method public
* proc.c (rb_mod_define_method): consider visibility only if self
  in the caller is same as the receiver, otherwise make public as
  well as old behavior.  [ruby-core:57747] [Bug #9005]
  [ruby-core:58497] [Bug #9141]
* vm.c (rb_vm_cref_in_context): return ruby level cref if self is
  same.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-24 07:28:11 +00:00
ko1 777cd24ebb * README.EXT: add a refer to URL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-24 05:13:43 +00:00
ko1 215c40b813 * README.EXT: add a document about RGenGC.
Reviewed by havenwood.
  [misc #8962]
* README.EXT.ja: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-24 05:00:37 +00:00
ko1 def62c3267 * include/ruby/ruby.h (RARRAY_ASET): try to avoid compiler warning.
[Bug #9287]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-24 03:13:52 +00:00
nobu a137f4ed3a * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-24 01:16:23 +00:00
usa 156d7f5f60 * test/fileutils/test_fileutils.rb (setup): should not call
Process.groups for Windows.  get rid of many errors introduced by
  r44364.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-23 20:06:44 +00:00
nobu e6847d1c55 test_fileutils.rb: tests for chown
* test/fileutils/fileasserts.rb (assert_ownership_group): new
  assertion for group ownership.
* test/fileutils/test_fileutils.rb (test_chown{,_verbose,_noop}):
  based on the patch by vajrasky (Vajrasky Kok) at
  [ruby-core:59281].  [Feature #9286]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-23 09:37:23 +00:00
nobu c25c84777c hash.c: reduce warning
* hash.c (HAS_EXTRA_STATES): warn extra states only when something
  differ.  [ruby-core:59254] [Bug #9275]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-23 06:53:51 +00:00
marcandre 9471f4187f * array.c: Have to_h raise on elements that are not key-value pairs [#9239]
* enum.c: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-23 03:42:29 +00:00
zzak 573762a7b7 * doc/syntax/methods.rdoc: [DOC] Added example for underscore
conventions in method names. Also added doc to clarify encoding
  character set support for Ruby programs and elaborated on defining
  predicate and bang methods. Based on a patch by @gaurish
  [Fixes GH-477] https://github.com/ruby/ruby/pull/477


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 20:13:09 +00:00
zzak cadd660689 * doc/ChangeLog-1.9.3: [DOC] Fix typos by @dvsuresh
[Fixes GH-485] https://github.com/ruby/ruby/pull/485
* ext/openssl/ossl_config.c: ditto
* lib/rss/utils.rb, lib/time.rb: ditto
* test/ruby/envutil.rb: ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 18:21:14 +00:00
zzak ba12864469 commit miss from r44346
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 15:48:49 +00:00
drbrain e5eb6e9a3b * test/rubygems/test_gem_ext_builder.rb: Fix warning due to ambiguous
expression.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 02:12:38 +00:00
drbrain cb8be30ef1 * lib/rubygems/commands/install_command.rb: Restore gem install
--ignore-dependencies for remote gems
* test/rubygems/test_gem_commands_install_command.rb:  Test for the
  above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 02:06:02 +00:00
drbrain 87923e02ba * lib/rdoc.rb: Set RDoc to release version.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 01:25:41 +00:00
drbrain 1d8484d421 * lib/rubygems.rb: Set RubyGems to release version.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 01:19:20 +00:00
drbrain 67ec75152e * lib/rubygems.rb (module Gem): Fix comment for
Gem::load_path_insert_index.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-22 01:16:22 +00:00
ko1 94e870b000 * 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/trunk@44327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-21 19:11:12 +00:00
nobu 9f368b5ac9 file.c: destination path only
* file.c: remove unnecessary the source path from EEXIST error
  messages and show the destination path only.  [ruby-core:59202]
  [Feature #9263]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-21 04:00:31 +00:00
nobu 1ffbe07e17 resolv.rb: no encodings
* 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/trunk@44312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-21 03:37:26 +00:00
usa 0abe1fee13 * tool/make-snapshot: replace RUBY_PATCHLEVEL_STR in version.h to
show users that this ruby is a preview/rc version.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 20:46:21 +00:00
usa 7ff4413eab * win32/Makefile.sub (fake.rb): fixed wrong RUBY_PLATFORM, to correctly
install win32.h.
  [ruby-core:58801][Bug #9199] reported by arton.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 20:05:30 +00:00
ko1 f11b54213a * vm_method.c: check definition of
GLOBAL_METHOD_CACHE_SIZE and GLOBAL_METHOD_CACHE_MASK.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 08:57:24 +00:00
ko1 c702005a7b * include/ruby/ruby.h: rename OBJ_WRITE and OBJ_WRITTEN into
RB_OBJ_WRITE and RB_OBJ_WRITTEN.
* array.c, class.c, compile.c, hash.c, internal.h, iseq.c,
  proc.c, process.c, re.c, string.c, variable.c, vm.c,
  vm_eval.c, vm_insnhelper.c, vm_insnhelper.h,
  vm_method.c: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 08:07:47 +00:00
ko1 b766cc4e70 * include/ruby/ruby.h: add a comment for WB interfaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 07:01:52 +00:00
nobu b0381a4b1f configure.in: use RUBY_APPEND_OPTIONS
* configure.in: DLDFLAGS is defined in --with-opt-dir handler, so
  ${DLDFLAGS=} does not work now.  use RUBY_APPEND_OPTIONS instead.
  [ruby-dev:47855] [Bug #9256]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 07:00:56 +00:00
naruse f10068dc44 * configure.in (AC_ARG_WITH): use withval directly.
fix failure on FreeBSD.
  http://fb32.rubyci.org/~chkbuild/ruby-trunk/log/20131217T070301Z.diff.html.gz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 05:51:12 +00:00
tmm1 3409690957 ruby.h: swap iv_index_tbl and super for struct RClass
* include/ruby/ruby.h (struct RClass): add super, remove iv_index_tbl.
  since RCLASS_SUPER() is commonly used inside while loops, we move it
  back inside struct RClass to improve cache hits. this provides a
  small improvement (1%) in hotspots like rb_obj_is_kind_of()
* internal.h (struct rb_classext_struct): remove super, add
  iv_index_table
* internal.h (RCLASS_SUPER): update for new location
* internal.h (RCLASS_SET_SUPER): ditto
* internal.h (RCLASS_IV_INDEX_TBL): ditto
* object.c (rb_class_get_superclass): ditto
* include/ruby/backward/classext.h (RCLASS_SUPER): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 05:10:07 +00:00
drbrain 37e4a8d39d * lib/rubygems: Update to RubyGems master 03d6ae7. Changes include:
* Fixed typos.

  * Relaxed Gem.ruby test for ruby packagers that do not use `ruby`.

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-19 22:09:19 +00:00
ko1 0a8c1142b0 * gc.c (heap_get_freeobj): improve hot path performance.
* gc.c (heap_get_freeobj_from_next_freepage): replace with
  heap_get_freepage(). It returns freeobj instead of freepage.
  This is not on hot path.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-19 05:04:55 +00:00
drbrain f8bcd57cb7 * lib/rubygems: Update to RubyGems master af60443. Changes include:
* Improved speed of `gem install --ignore-dependencies`.

  * Open read-write for exclusive flock.  [ruby-trunk - Bug #9257]

  * Remove specification before install to prevent infinite loop.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-19 03:05:37 +00:00
tmm1 4cd675ea9e vm_insnhelper.c: optimize for loop
* vm_insnhelper.c (vm_call_iseq_setup_normal): simple for loop
  condition optimization. this area shows up as a hotspot in VM
  profiles.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-19 02:27:36 +00:00
ko1 9797647e25 * gc.c (newobj_of): don't need to RBASIC_SET_CLASS() which includes WB
here because created obj is always YOUNG/INFANT.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-19 01:51:16 +00:00
ko1 2ad4a1600b * benchmark/gc/gcbench.rb: check GC::OPTS availability
for not MRI 2.1.0.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-19 01:49:59 +00:00
tmm1 3f8deb966c gc.c: remove redundant freelist assignment
* gc.c (heap_get_freeobj): remove redundant assignment. heap->freelist
  is set after the while() loop already.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 18:11:54 +00:00
ko1 49dcd2fee4 * test/runner.rb: fix commit miss on r44278.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 16:55:01 +00:00
ko1 d767adf990 * gc.c (garbage_collect_body): lazy_sweep setting should work
without USE_RGENGC.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 15:27:41 +00:00
ko1 a0a1d0f268 * gc.c (gc_profile_dump_major_reason): fix this function because major_reason
can be OR of multiple reasons.
* gc.c (gc_profile_dump_on): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 14:34:23 +00:00
ko1 661cf78bef * gc.c (gc_profile_record_get): should return an empty array
when profiling is active.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 08:04:08 +00:00
ko1 7bdb9fe17f * gc.c (gc_profile_clear, gc_profile_enable): remove rest_sweep().
* gc.c: check objspace->profile.current_record before inserting
  profiling record by new macro gc_prof_enabled().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 07:58:04 +00:00
ko1 26e553d0ed * vm_exec.h (VM_DEBUG_STACKOVERFLOW): added.
disable stack overflow check for every stack pushing as default.
* vm_exec.c (vm_stack_overflow_for_insn): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 05:33:50 +00:00
drbrain 228ad3d799 * lib/rubygems: Update to RubyGems master d8f12e2. This increases the
speed of `gem install --ignore-dependencies` which helps bundler
  tests.
* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 01:02:58 +00:00
ko1 2648a803c1 * test/ruby/test_gc.rb (test_expand_heap): allow +/-1 diff.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-18 00:01:08 +00:00
ktsj 5760abaf08 * test/ruby/test_io.rb: fix duplicated test name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-17 14:46:56 +00:00
nobu 571955c13f hash.c: revert
* hash.c (rb_hash_reject): revert to deprecated behavior, with
  warnings, due to compatibility for HashWithDifferentAccess.
  [ruby-core:59154] [Bug #9223]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-17 11:15:00 +00:00
knu f38a2926e0 misc/ruby-electric.el: Import version 2.1.1.
* ruby-electric-delete-backward-char: Enable support for number
    prefix.

  * ruby-electric-curlies: Fix electric operation after an open
    curly.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-17 08:33:01 +00:00
nobu a98e343d39 vm_trace.c: isolate exceptions
* vm_trace.c (rb_postponed_job_flush): isolate exceptions in
  postponed jobs and restore outer ones.  based on a patch by
  tarui.  [ruby-core:58652] [Bug #9168]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-17 07:19:25 +00:00
tmm1 7c51c8fd17 configure.in: build probes with systemtap's dtrace wrapper
* configure.in (RUBY_DTRACE_POSTPROCESS): Fix compatibility with
  systemtap on linux. stap requires `dtrace -G` post-processing, but
  the dtrace compatibility wrapper is very strict about probes.d
  syntax.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-17 02:03:09 +00:00
drbrain e80f2c118a * lib/rubygems: Update to RubyGems master 1c5f4b3. Allows rubygems
repackagers to disable backward-compatible shared gem directory
  behavior.
* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 20:18:29 +00:00
drbrain 14e213c3c0 * NEWS (RDoc): Update version number so I don't have to change it
for the final release.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 20:14:50 +00:00
kazu 4210568457 fix typos
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 13:59:38 +00:00
ko1 9ae9f7c9d3 * gc.c (rb_objspace_markable_object_p): should check special_const_p
first (by is_markable_object()).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 10:22:03 +00:00
ko1 d4f80bd74e * ext/objspace/objspace.c (reachable_object_from_root_i): use
compare_by_identity hash to avoid hash modify problem
  during iteration.
  [Bug #9252]
* ext/objspace/objspace.c (reachable_objects_from_root): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 10:16:51 +00:00
nobu f89bd95b4d * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 09:21:05 +00:00
ko1 8d254db25b * gc.c (gc_verify_internal_consistency): should not use
rb_objspace_each_objects() because it call rest_sweep().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 09:19:24 +00:00
ko1 1a209e496d * gc.c (rb_objspace_markable_object_p): fix last commit (build error).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 09:07:52 +00:00
ko1 1779f77fbb * gc.c (rb_objspace_markable_object_p): it should be live objects.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 09:05:57 +00:00
ko1 60b7bd2ea3 * gc.c (rb_objspace_each_objects): should not clear dont_lazy_sweep
flag in nested case.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 09:01:49 +00:00
ko1 d8eb7f3c0d * vm_method.c (rb_method_entry_make): fix WB miss.
Note that rb_method_entry_t::klass is not constified.
  We may  constify this field.
* test/ruby/test_alias.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 07:46:48 +00:00
a_matsuda c3405de433 * ChangeLog: [DOC] Fix typo
s/geneartion/generation/
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 06:11:48 +00:00
nobu 4fcdce3b68 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 05:21:05 +00:00
ko1 c979a67bb4 * gc.c: use gc_verify_internal_consistency() instead of
gc_check_before_marks_i() for check consistency
  on RGENGC_CHECK_MODE >= 2.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 05:18:21 +00:00
naruse 2a732947a6 * process.c (make_clock_result): add :second as a unit for
Process.clock_gettime.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 05:04:03 +00:00
ko1 dfa892af43 * gc.c: introduce GC.verify_internal_consistency method to verify GC
internal data structure.
  Now this method only checks geneartion (old/young) consistency.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 04:12:48 +00:00
tmm1 d87de08512 typo: wheb -> when
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 02:51:25 +00:00
tmm1 99df7a1b5b gc.c: fix build with RGENGC_ESTIMATE_OLDMALLOC=0
* gc.c (gc_info_decode): Fix build errors wheb compiled with
	  RGENGC_ESTIMATE_OLDMALLOC=0
	* gc.c (objspace_malloc_increase): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-16 02:50:45 +00:00
ko1 1448b0abf5 * ext/objspace/objspace.c (reachable_object_from_root_i):
reachable objects should not include categories and
  category_objects because it is noisy information.
  In fact, objects created after calling
  ObjectSpace.reachable_objects_from_root should not be included
  as a returning hash objects. Currently, mswin64 platform has a
  problem because of this behaviour. Should we trace new objects?



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-15 04:42:23 +00:00
drbrain 6c9a3cb681 * lib/rubygems/basic_specification.rb (class Gem): Revert r44213, it
causes SystemStackError for bundler


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-15 00:51:37 +00:00
drbrain 23201ab1c4 * lib/rdoc: Update to RDoc master 263a9e5. This improves the
accessibility of the search box.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 22:09:35 +00:00
drbrain e6147745d5 * lib/rubygems/basic_specification.rb: Update to RubyGems master
9c718fe.  Removes code duplication.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 20:28:45 +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 36e9f58ddf configure.in: unexpand exec_prefix in rubylibprefix
* configure.in (rubylibprefix): replace exec_prefix as well as
  bindir and libdir.  a patch by kimuraw (Wataru Kimura) at
  [ruby-dev:47852].  [Bug #9160]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 07:26:52 +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 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 1e4a955435 scanf.rb: fix rescue modifier
* lib/scanf.rb (IO#scanf): fix mistaken use of rescue modifier.
  a patch by Mon_Ouie at [ruby-core:52813].  [Bug #7940]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:55:33 +00:00
nobu fcd7887407 util.c: bump stack size in ruby_qsort()
* util.c (ruby_qsort): fix potential stack overflow on a large
  machine.  based on the patch by Conrad Irwin <conrad.irwin AT
  gmail.com> at [ruby-core:51816].  [Bug #7772]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:45:07 +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 c74995b2af ChangeLog: fix commit miss
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:12:50 +00:00
nobu ae1a466401 object.c: fix r44189
* object.c (rb_mod_const_get): already interned junk name may be
  valid nested class path.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:11:37 +00:00
nobu b2f9a0f5cb eval.c: reuse tag
* eval.c (rb_rescue2): reuse tags pushed for body proc to protect
  rescue proc too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 16:32:00 +00:00
tarui 71286e3770 * gc.c (wmap_final_func): Bugfix. Should update *value to new pointer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 16:19:49 +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
ngoto 42ae24a6e8 * internal.h (ruby_sized_xrealloc2): fix typo introduced in r44117, which cause compile error on Solaris.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 15:44:13 +00:00
nobu 26d147c733 thread.c: reduce tags and stack
* thread.c: (exec_recursive): use rb_catch_protect() instead of
  rb_catch_obj() and PUSH_TAG(), and reduce pushing tags and
  machine stack usage.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 15:22:18 +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 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
tmm1 3ba2006aa4 gc.c: GC.latest_gc_info reports most interesting major_by flag
* gc.c (gc_info_decode): Use :major_by=>:nofree as fallback reason
	  when other trigger conditions are present.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 07:30:33 +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
ko1 c700511888 * gc.c (garbage_collect_body): use rb_bug() and explicit error message
instead of using assert().
  [Bug #9222]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 03:02:03 +00:00
ko1 3477670963 * array.c: fix comment to remove the word "shady".
* variable.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 02:53:27 +00:00
ko1 55a77f29c1 * gc.c: rename *shady* func/macros.
* RVALUE_RAW_SHADY()   -> RVALUE_WB_PROTECTED_RAW()
  * RVALUE_SHADY()       -> RVALUE_RAW_SHADY()
  * rgengc_check_shady() -> rgengc_check_relation().
  And fix some messages using "shady" to "non-WB-protected".



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 02:38:05 +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
tmm1 c2dcb947aa object.c: use RCLASS_M_TBL_WRAPPER for equality checks
* class.c (include_modules_at): use RCLASS_M_TBL_WRAPPER for
  equality checks. this avoids an unnecessary deference inside a tight
  loop, fixing a performance regression from r43973.
* object.c (rb_obj_is_kind_of): ditto.
* object.c (rb_class_inherited_p): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 23:19:02 +00:00
mrkn f27509fd1a Append [ruby-core:50269] [Bug #7458] in the previous Changelog entry
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 17:08:26 +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
mrkn 7d3538db3f * ext/bigdecimal/bigdecimal.c (VpAddAbs): put out a conditional branch from
the inside of while-loop.

* ext/bigdecimal/bigdecimal.c (VpSubAbs): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 17:02:24 +00:00
mrkn 27d53fb5df * ext/bigdecimal/bigdecimal.c (VPrint): be a static function, support another
dump formats, and add more information of the given bigdecimal.

* ext/bigdecimal/bigdecimal.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 17:02:20 +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
tmm1 bd892d05ed compile.c: add opt_aset instruction for faster Hash#[]= and Array#[]=
* compile.c (iseq_specialized_instruction): emit opt_aset instruction
  to optimize Hash#[]= and Array#[]= when called with Fixnum argument.
  [Bug #9227] [ruby-core:58956]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-11 06:38:42 +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
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 9a938987cb date_strptime.c: get rid of backtrack explosion
* ext/date/date_strptime.c (date__strptime_internal): unset
  case-insensitive flag for [:alpha:], which already implies both
  cases, to get rid of backtrack explosion.  [ruby-core:58984]
  [Bug #9221]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 14:58:43 +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
hsbt 4d5729a7ee * man/ruby.1: [DOC] Use www.ruby-toolbox.com instead of RAA.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 09:22:32 +00:00
nobu cdc2eeda6a gc.c: simple array for wmap
* gc.c (wmap_finalize, wmap_aset_update): use simple malloced array
  instead of T_ARRAY, to reduce GC pressure.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 08:21:33 +00:00
tmm1 40d7c9c18b gc.c: speed up RGENGC_CHECK_MODE by removing unncessary check
* gc.c (reflist_add): revert changes from r44109. it is unnecessary
  after r44113
* gc.c (allrefs_i): fix whitespace
* gc.c (allrefs_roots_i): fix whitespace

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 06:58:48 +00:00
ko1 1b29c00f00 * gc.c (allrefs_add): push obj only if allrefs table doesn't have
obj.
* gc.c (allrefs_roots_i): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 06:47:15 +00:00
ko1 14979f2161 * gc.c (RGENGC_CHECK_MODE): separate checkers to different modes.
* 2: enable generational bits check (for debugging)
  * 3: enable livness check
  * 4: show all references



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 06:44:35 +00:00
ko1 8d4253f7e1 * gc.c (gc_marks_check): disable GC during checking and
restore malloc_increase info.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 06:21:52 +00:00
tmm1 3705007e7a gc.c: build complete object graph for RGENGC_CHECK_MODE
* gc.c (reflist_add): return 0 if reference already exists
	* gc.c (allrefs_add): return 1 on newly added references
	* gc.c (allrefs_i): follow references to construct complete object
	  graph. before this patch, RGENGC_CHECK could fail to verify some WB
	  miss issues. [Bug #9226] [ruby-core:58959]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 05:46:48 +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
drbrain 4f7c10f06f * ext/.document: Remove curses from documentable directories.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 21:16:19 +00:00
zzak 99e04c1345 * ext/openssl/lib/openssl/digest.rb: Deprecate OpenSSL::Digest::Digest
[Fixes GH-446] https://github.com/ruby/ruby/pull/446


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 19:56:45 +00:00
ktsj 2251a2729a * ext/thread/thread.c: [DOC] add call-seq alias for Queue#enq, #<<, etc.
* ext/thread/thread.c (Init_thread): use rb_define_alias instead of
  rb_alias to document alias.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 15:47:35 +00:00
charliesome c039c70815 * internal.h (RCLASS_SERIAL): Add RCLASS_SERIAL as a convenience
accessor for RCLASS_EXT(klass)->class_serial.

* class.c, vm_insnhelper.c, vm_method.c: Use RCLASS_SERIAL

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 11:00:23 +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
ko1 5dc77048a3 * vm.c (vm_stat): renamed from ruby_vm_stat.
Should not use ruby_ prefix here.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 09:12:23 +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
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
shugo 9c5b2fd8aa * ext/curses, sample/curses: removed curses.
* NEWS: added an entry for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 04:39:49 +00:00
nobu d3363a96df object_tracing.c: fix allocation from NEWOBJ hook
* ext/objspace/object_tracing.c (newobj_i): use cached class path
  only to get rid object allocation during NEWOBJ hook.
  [ruby-core:58853] [Bug #9212]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 03:26:07 +00:00
nobu b4ab650e1a variable.c: rb_class_path_cached
* variable.c (rb_class_path_cached): returns cached class path
  only, without searching and allocating new class path string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 03:25:38 +00:00
nobu 334294d0e2 date_parse.c: get rid of backtrack explosion
* ext/date/date_parse.c (parse_time): unset case-insensitive flag
  for [:alpha:], which already implies both cases, to get rid of
  backtrack explosion.  [ruby-core:58876] [Bug #9221]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-09 02:14:35 +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 68e2146738 * NEWS: Update RubyGems entry with notable features.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 19:52:38 +00:00
drbrain d71eb3108c * ext/.document: Add syslog/lib and thread/thread.c to documentable
items.  [ruby-trunk - Bug #9228]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 19:44:07 +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
naruse 91539d71d8 * lib/net/http/responses.rb:
Add `HTTPIMUsed`, as it is also supported by rack/rails.
  RFC - http://tools.ietf.org/html/rfc3229
  by Vipul A M <vipulnsward@gmail.com>
  https://github.com/ruby/ruby/pull/447 fix GH-447

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 17:11:46 +00:00
mrkn e0097ea89f Fix the description in ChangeLog
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 14:30:03 +00:00
nobu 673aa23050 class.c: rest kwargs
* class.c (rb_get_kwargs): when values is non-null, remove
  extracted keywords from the rest keyword argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 11:47:39 +00:00
kanemoto 9109292789 avoid circular dependency on AIX
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 11:33:59 +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
ktsj b521f42a88 * NEWS: [DOC] update NEWS about GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 09:33:56 +00:00
ktsj 40468b5bf1 * object.c: [DOC] document Module#singleton_class?.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 08:54:23 +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
ktsj 7f5a9f3881 * array.c (rb_ary_shuffle_bang, rb_ary_sample): rename local variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 05:58:17 +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 3dd248f13d hash.c: fix WB miss issue in Hash#replace
* hash.c (rb_hash_replace): add a write barrier to fix GC mark miss on
  hashes using Hash#replace [Bug #9226] [ruby-core:58948]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 03:03:42 +00:00
tmm1 8f77cfb308 gc.c: promote long-lived NODE_CREF objects to oldgen
* include/ruby/ruby.h: add RGENGC_WB_PROTECTED_NODE_CREF setting
  In a large app, this reduces the size of
  remembered_shady_object_count by 80%. [Bug #9225] [ruby-core:58947]
* gc.c (rb_node_newnode): add FL_WB_PROTECTED flag to NODE_CREF
* class.c (rewrite_cref_stack): insert OBJ_WRITE for NODE_CREF
* iseq.c (set_relation): ditto
* iseq.c (rb_iseq_clone): ditto
* vm_eval.c (rb_yield_refine_block): ditto
* vm_insnhelper.c (vm_cref_push): ditto
* vm_insnhelper.h (COPY_CREF): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 02:28:04 +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 12c8533e1a * lib/rubygems.rb: Update version for upcoming ruby 2.1.0 RC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 01:25:05 +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
charliesome e0290c9404 * array.c (rb_ary_or): use RHASH_TBL_RAW instead of RHASH_TBL
* process.c (rb_execarg_fixup): use RHASH_TBL_RAW and insert write
  barriers where appropriate

* vm.c (kwmerge_i): use RHASH_TBL_RAW

* vm.c (HASH_ASET): use rb_hash_aset instead of calling directly into
  st_insert

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 00:41:01 +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
charliesome 8d6904e0a2 * ChangeLog: fix spelling of contributor's name
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 23:32:04 +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
nobu 113008a7ae class.c: move kwarg functions
* class.c (rb_extract_keywords, rb_get_kwargs): move from
  vm_insnhelper.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 10:33:42 +00:00
ko1 b91e889c34 * gc.c: change oldmalloc meaning.
Increase oldmalloc_increase with malloc_increase
  instead of using obj_memsize_of().
  This change will avoid the danger of memory full without major GC.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 10:27:02 +00:00
ko1 f09058b877 * gc.c (atomic_sub_nounderflow): not 0 but val itself.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 10:09:38 +00:00
ko1 e4720e1118 * gc.c (rb_objspace_alloc, Init_heap): initialize
oldmalloc_increase_limit at Init_heap.
  rb_objspace_alloc() is not called on some platforms.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 09:38:22 +00:00
ko1 2c616737e5 * gc.c (garbage_collect_body): bug fix.
initialize after recording.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 09:34:26 +00:00
ko1 cb62399d90 * gc.c (atomic_sub_nounderflow): added to simplify atomic sub with
care about underflow.
* gc.c (objspace_malloc_increase): use it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 08:53:47 +00:00
nobu b9cafaf524 vm_insnhelper.c: rb_get_kwargs
* vm_insnhelper.c (rb_get_kwargs): get keyword argument values from an
  option hash, not only checking keys.
* dir.c (dir_initialize): use rb_get_kwargs.
* gc.c (gc_start_internal): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 08:10:47 +00:00
nobu 378d20f80d ruby-mode.el: expand/unexpand block
* misc/ruby-mode.el (ruby-brace-to-do-end): split single line block.
* misc/ruby-mode.el (ruby-do-end-to-brace): shrink single line block
  to one line.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 07:47:47 +00:00
ko1 0e20c2afa8 * gc.c (gc_start_internal): do not use rb_gc_start() and rb_gc().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 07:22:25 +00:00
nobu b10a8c52e3 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 06:31:06 +00:00
ko1 73d6dc252d * gc.c (gc_start_internal, rb_gc): do not need
heap_pages_free_unused_pages() here.
  It was done in after_sweep().
* gc.c (rb_gc): The reason is now GPR_FLAG_CAPI.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 06:26:02 +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
hsbt 56654cb04d * lib/erb.rb: [DOC] fix broken link.
Use rubygems.org and www.ruby-toolbox.com instead of RAA. [Bug #9197]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 02:54:55 +00:00
hsbt ea1180ef80 * lib/webrick/httprequest.rb: [DOC] Fix broken link of CGI specification by @udzura [fix GH-466]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-06 01:56:44 +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 1a1c0aeb50 mkmf.rb: strip destdir from prefix
* lib/mkmf.rb (configuration): strip destdir part from prefix to get
  rid of duplication.  a patch by arton at [ruby-core:58859].
  [ruby-core:58856] [Bug #9213]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 13:18:07 +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
ko1 b9cf1033aa * gc.c (gc_info_decode): fix to avoid syntax error on VS2012.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 12:06:59 +00:00
duerst 737c7d816b st.c: tweaked comment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 10:35:50 +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
ko1 53035271a8 * gc.c: change function names vm_ prefix to objspace_ prefix.
They are objspace_ functionality.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 08:52:30 +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 97ac1f6767 ChangeLog: about malloc_size(3) availability
* ChangeLog: malloc_size(3) on MacOS X says it's a BSD Library
  Function, so possibly some other BSDs may have but seems unavailable
  on FreeBSD at least.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 06:56:05 +00:00
nobu 1bbc52dee1 hash.c: bail out to the outermost frame
* hash.c (rb_hash): revert r43981 and bail out to the outermost frame
  when recursion is detected.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 05:40:43 +00:00
ko1 cda7250de0 * gc.c (vm_malloc_size): added.
return malloc_usable_size() if possible.
* gc.c (MALLOC_ALLOCATED_SIZE): add new setting macro to enable
  GC.allocated_size.
  If platform supports `malloc_usable_size()' (or similar one),
  GC.allocated_size can be implemented with this function.
  Default is 0.
* gc.c (vm_xmalloc, vm_xrealloc, vm_xfree): use vm_malloc_size()
  to detect collect allocated size.
* gc.c (vm_malloc_increase): refactoring.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 04:54:20 +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 fb29aefc7a ruby_atomic.h: ATOMIC_PTR_EXCHANGE
* ruby_atomic.h (ATOMIC_PTR_EXCHANGE): atomic exchange function for
  a generic pointer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 01:48:10 +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
tmm1 53e0d4666c gc.c: Load GC tuning settings earlier during boot.
* gc.c (ruby_gc_set_params): Accept safe_level argument so GC tuning
  settings can be applied before rb_safe_level() is available.
* internal.h (rb_gc_set_params): ditto.
* ruby.c (process_options): Apply GC tuning early during boot process
  so boot-time allocations can benefit. This also benefits any code
  loaded in via `ruby -r`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 00:19:13 +00:00
tmm1 348903a628 * vm_trace.c (rb_suppress_tracing): Fix initialization of stack
allocated rb_trace_arg_t structure. Without this patch, sometimes
  INTERNAL_EVENT_GC would be skipped accidentally inside
  rb_threadptr_exec_event_hooks_orig().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-04 04:05:15 +00:00
tmm1 753fe47175 * string.c (fstr_update_callback): Improve implementation in r43968
based on feedback from @nagachika. In the existing case, we can
  return ST_STOP to prevent any hash modification. In the !existing
  case, set both key and value to the fstr.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-04 04:05:13 +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 b7c6db94ae gc.c: use malloc_size
* configure.in: check malloc_size() available on BSD.
* gc.c: use malloc_size() with malloc/malloc.h on BSD.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 14:48:20 +00:00
nari 7e1f3c636b * object.c (rb_obj_clone): don't copy FL_WB_PROTECTED of a
original object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 14:14:09 +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 c7159e81fc vm_eval.c: rb_catch_protect
* vm_eval.c (rb_catch_protect): new function similar to
  rb_catch_obj(), but protect from all global jumps like as
  rb_load_protect(), rb_protect(), etc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 12:53:18 +00:00
nobu 1f34456dc8 ChangeLog: complement the intention
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 12:08:39 +00:00
nari 53f1de2f49 * object.c (rb_obj_clone): Protect FL_PROMOTED and FL_WB_PROTECTED
flags of a destination object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 11:24:11 +00:00
glass 437b8bc53b * array.c (rb_hash_rehash): use hash_alloc() instead of rb_hash_new().
[Bug #9187]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 11:19:06 +00:00
tmm1 4258235876 * load.c (features_index_add_single): Move loaded_features_index array values off
the ruby heap. [Bug #9201] [ruby-core:58805]
* load.c (loaded_features_index_clear_i): Clean up off-heap array structure.
* vm.c (rb_vm_mark): Remove unnecessary mark_tbl for loaded_features_index.
  This improves minor GC time by 15% in a large application.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 08:13:31 +00:00
tmm1 084b602d9a * include/ruby/ruby.h (struct RClass): Add wrapper struct around
RClass->m_tbl with serial. This prevents double marking method
  tables, since many classes/modules can share the same method table.
  This improves minor mark time in a large application by 30%.
* internal.h (struct method_table_wrapper): Define new
  wrapper struct with additional serial.
* internal.h (RCLASS_M_TBL_INIT): New macro for initializing method
  table wrapper and st_table.
* method.h (void rb_sweep_method_entry): Rename rb_free_m_table to
  rb_free_m_tbl for consistentcy
* .gdbinit (define rb_method_entry): Update rb_method_entry gdb helper
  for new method table structure.
* class.c: Use RCLASS_M_TBL_WRAPPER and
  RCLASS_M_TBL_INIT macros.
* class.c (rb_include_class_new): Share WRAPPER between module and
  iclass, so serial can prevent double marking.
* eval.c (rb_prepend_module): ditto.
* eval.c (rb_using_refinement): ditto.
* gc.c: Mark and free new wrapper struct.
* gc.c (obj_memsize_of): Count size of additional wrapper struct.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 08:11:07 +00:00
glass 2b07df37d1 * array.c (rb_ary_uniq_bang): remove duplicate code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 05:13: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
tmm1 6edaf997e3 * string.c (rb_fstring): Use st_update instead of st_lookup +
st_insert.
* string.c (fstr_update_callback): New callback for st_update.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 03:40:56 +00:00
nobu 41a73480c6 rdoc/constant.rb: reapply r43006 for workaround of
NoMethodError
* lib/rdoc/constant.rb (RDoc::Constant#documented?): workaround for
  NoMethodError when the original of alias is not found.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 03:18:52 +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
usa ff9f9c6d84 * hash.c (getenv): fixed test failures introduced by r43950.
[ruby-core:58774] [Bug #9195] reported by phasis68 (Heesob Park).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-02 13:31:14 +00:00