225 Commits
Author SHA1 Message Date
usa 3d36516d3a merge revision(s) 55602: [Backport #12560]
require "rbconfig/sizeof"

	They may fail parallel test-all

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@55636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-11 14:38:49 +00:00
usa 23bc28e2df merge revision(s) 55054: [Backport #12390]
* string.c (rb_str_modify_expand): check integer overflow.
	  [ruby-core:75592] [Bug #12390]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@55352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-10 06:58:57 +00:00
usa 88efadca4a merge revision(s) 54611,54612: [Backport #12291]
* struct.c (struct_make_members_list): extract making member name
	  list from char* va_list, with creating symbols without
	  intermediate IDs.

	* struct.c (struct_make_members_list, rb_struct_s_def): member
	  names should be unique. [ruby-core:74971] [Bug #12291]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@54685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-22 06:59:00 +00:00
usa b0f5d2eb2c merge revision(s) 54484: [Backport #12095]
* vm_core.h (rb_vm_struct): make at_exit a single linked list but
	  not RArray, not to mark the registered functions by the write
	  barrier.  based on the patches by Evan Phoenix.
	  [ruby-core:73908] [Bug #12095]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@54683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-22 06:18:03 +00:00
nagachika 82752cc1ce merge revision(s) 49154: [Backport #10384]
ext/-test-/dln/empty: move from ext/-test-/win32/dln

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@54342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 17:46:51 +00:00
nagachika 1f4640cf04 merge revision(s) 54003: [Backport #12153]
* test/-ext-/float/test_nextafter.rb: In AIX,
	  nextafter(+0.0,-0.0)=+0.0, and nextafter(-0.0,+0.0)=-0.0,
	  but they should return -0.0 and +0.0, respectively. This is
	  a known bug in nextafter(3) on AIX, so skip related tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@54338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-28 17:03:02 +00:00
nagachika c07ec84345 merge revision(s) 51190: [Backport #11338]
* iseq.c (iseq_data_to_ary): dump kw_arg as symbol

	* test/-ext-/iseq_load/test_iseq_load.rb: test kw_arg roundtrip
	  [ruby-core:69891] [Bug #11338]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@52783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-29 07:29:09 +00:00
nagachika 20ef4699e5 merge revision(s) 50334,50337: [Backport #10942]
* string.c (STR_SET_EMBED): clear NOFREE flag at embedding as
	  embedded strings no longer refer static strings.
	  [ruby-core:68436] [Bug #10942]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@50550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-19 19:52:07 +00:00
nagachika b836c3acec merge revision(s) 50038: [Backport #10985]
* proc.c (respond_to_missing_p): check if the receiver responds to
	  the given method by respond_to_missing?.

	* proc.c (mnew_missing): create Method object for method_missing.
	  [ruby-core:68564] [Bug #10985]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@50546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-19 17:59:39 +00:00
naruse 81c3784004 merge revision(s) 49517: [Backport #10831]
* vm_core.h (rb_call_info_kw_arg_struct): make keywords a symbols
	  list to get rid of inadvertent creation by variable keyword
	  arguments.  [ruby-core:68031] [Bug #10831]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-20 08:52:15 +00:00
naruse d43dcc67ce merge revision(s) 49405-49408:
* string.c (str_make_independent_expand): terminate String when
	  moved from heap to embedded.  [Fix GH-821].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-19 06:33:07 +00:00
naruse 43defa7000 merge revision(s) 49499,49500,49501,49502,49504,49505,49506,49507: [Backport #10828]
* vm_insnhelper.c: Fix one type of symbol leak with +send+
	* vm_insnhelper.c: Fix symbol leak with +send+ [Bug #10828]

	* vm_insnhelper.c (ci_missing_reason): return the reason of method
	  missing in call info.

	* vm_insnhelper.c (vm_call_opt_send): re-apply r49500 with the
	  proper missing reason.  [Bug #10828]

	* vm_eval.c (send_internal), vm_insnhelper.c (vm_call_opt_send):
	  convert String method name into a Symbol, as method_missing
	  method expects its first argument to be a Symbol.  [Bug #10828]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-14 04:46:22 +00:00
naruse eb07614085 merge revision(s) 49055: [Backport #10667]
* thread.c (rb_thread_variable_get): fix dynamic symbol keys.
	  rb_check_id() returns non-zero only for static symbols, whereas
	  thread local variable keys can be dynamic symbols.
	  [ruby-core:67185] [Bug #10667]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-03 12:20:06 +00:00
nobu 88ae402cbf string.c: term fill
* string.c (tr_trans): fill wchar terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 01:20:41 +00:00
nobu 5c100b57f8 string.c: term fill
* string.c (rb_str_squeeze_bang): fill wchar terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-11 00:37:58 +00:00
nobu 7a77cf7133 string.c: term fill
* string.c (rb_str_delete_bang): fill wchar terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 12:26:11 +00:00
nobu 117438ee7b string.c: term fill
* string.c (rb_str_sub_bang): fill wchar terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 12:09:49 +00:00
nobu 9d17096309 string.c: term fill
* string.c (rb_str_splice_0): fill wchar terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:49:10 +00:00
nobu ed94c24944 string.c: term fill
* string.c (rb_str_chop_bang): fill wchar terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:56 +00:00
nobu c77efe1144 string.c: term fill
* string.c (rb_str_chomp_bang): fill wchar terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 07:48:48 +00:00
nobu d5b5338421 test_cstr.rb: all wchar encodings
* test/-ext-/string/test_cstr.rb (assert_wchars_term_char): test
  for all wide char encodings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 04:39:45 +00:00
nobu bf74f633c5 test_cstr.rb: failed encoding name
* test/-ext-/string/test_cstr.rb (test_wchar_long): show the
  failed encoding name in error messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-10 00:40:17 +00:00
normal 9581954a96 mostly fix rb_iseq_load
This allows reporters commenters of [Feature #8543] to load
instruction sequences directly.  Some test cases are still failing
but documented in test/-ext-/iseq_load/test_iseq_load.rb.

* compile.c (rb_iseq_build_from_exception): entry->sp is unsigned
  (iseq_build_callinfo_from_hash): account for kw_arg
  (iseq_build_from_ary_body): update for r35459
  (CHECK_STRING, CHECK_INTEGER): remove unused checks
  (int_param): new function for checking new `params' hash
  (iseq_build_kw): new function for loading rb_iseq_param_keyword
  (rb_iseq_build_from_ary): account for `misc' entry and general
   structure changes
  [Feature #8543]
* iseq.c (CHECK_HASH): new macro (for `misc' and `param' entries)
  (iseq_load): account for `misc' and `params' hashes
  (iseq_data_to_ary): add final opt to arg_opt_labels,
   fix kw support, account for unsigned entry->sp
* ext/-test-/iseq_load/iseq_load.c: new ext for test
* ext/-test-/iseq_load/extconf.rb: ditto
* test/-ext-/iseq_load/test_iseq_load.rb: new test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-03 22:16:58 +00:00
nobu 09fbd56e6f process.c: get rid of inadvertent ID pindown
* process.c (check_exec_redirect_fd, check_exec_redirect),
  (rb_execarg_addopt): get rid of inadvertent ID pindown.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-24 03:44:45 +00:00
nobu 8eb0c810b2 get rid of inadvertent ID creation
* object.c (rb_mod_const_get, rb_mod_const_defined): ditto.
* variable.c (rb_const_missing, rb_mod_const_missing): call
  const_missing without new ID to get rid of inadvertent ID
  creation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-21 16:11:55 +00:00
nobu 88212206f6 test_inadvertent_creation.rb: split test
* test/-ext-/symbol/test_inadvertent_creation.rb: split
  test_module_const_defined? from test_module_const_get, and
  assertion for the latter.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-17 18:40:50 +00:00
nobu de870875f7 vm_eval.c: rb_current_receiver
* vm_eval.c (rb_current_receiver): new function to return the
  receiver in the current control frame.  [Feature #10195]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-16 10:38:15 +00:00
nobu b1acfbc121 ext/-test-/proc/super.c: rename
* ext/-test-/proc/super.c: renamed the file and maker method.
  [Feature #10195]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-16 10:11:28 +00:00
akr fb2008a73a * test/lib/envutil.rb: Moved from test/ruby/.
* test/lib/find_executable.rb: Ditto.

* test/lib/memory_status.rb: Ditto.

* test/lib/test/unit.rb: require envutil.

* test/: Don't require envutil in test files.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-13 16:05:37 +00:00
nobu 770128ade3 test_bmethod.rb: block in bmethod test
* test/-ext-/proc/test_bmethod.rb (test_super_in_bmethod): block
  in bmethod test for [Feature #10195].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-09 14:58:33 +00:00
nobu 71c8cf27db test_bmethod.rb: super in bmethod test
* test/-ext-/proc/test_bmethod.rb (test_super_in_bmethod): super
  in bmethod test for [Feature #10195].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-09 14:33:19 +00:00
nobu 3614f8bd1c string.c: wchar terminator
* string.c (rb_str_lstrip_bang, rb_str_rstrip_bang): terminate
  wchar strings with wchar 0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-05 01:54:22 +00:00
nobu 7b011fd11e * ext/-test-/printf/printf.c, test/-ext-/test_printf.rb: remove
test for snprintf(3).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-04 05:03:50 +00:00
nobu d4c22161f3 test/-ext-/hash/test_delete.rb: assert deleted values
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-23 14:18:32 +00:00
nobu ca7835bec6 hash.c: rb_hash_delete does not call the block
* hash.c (rb_hash_delete): now does not call the block given to
  the current method.  [ruby-core:65861] [Bug #10413]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-23 12:42:57 +00:00
normal 585e1594c9 Revert r47971, r47972 [ruby-core:65764]
The current implementation currently delivers signals to self
immediately and synchronously, so we do not need explicit,
potentially-confusing sleeps to wait for signal delivery.

* test/-ext-/bug_reporter/test_bug_reporter.rb
  (test_bug_reporter_add): revert r47972
* test/ruby/test_rubyoptions.rb (test_segv_test): revert r47971
  [ruby-core:65764]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 18:11:49 +00:00
akr 4c02456b3d Set ASCII-8BIT encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 12:27:43 +00:00
normal eec651a05e test/-ext-/bug_reporter/test_bug_reporter.rb: fix race
Signal delivery is not immediate, so wait for signal delivery.

* test/-ext-/bug_reporter/test_bug_reporter.rb
  (test_bug_reporter_add): fix race

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 02:01:51 +00:00
akr e1ba2d418a * test/ruby/envutil.rb (assert_pattern_list) Renamed from
assert_regexp_list.
  Show multiline string in multi lines.

* test/-ext-/bug_reporter/test_bug_reporter.rb: Use
  assert_pattern_list.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 08:59:46 +00:00
normal f8b219e4d6 st: test packed-to-unpacked transitions during iteration
The st_foreach and st_foreach_check functions support transitioning
from a packed to an unpacked state during iteration.  However, this
functionality did not get exercised by the current test suite until
now.  This should help us prevent breakage when making modifications
to st.

* ext/-test-/st/foreach/extconf.rb: new file
* ext/-test-/st/foreach/foreach.c: ditto
* test/-ext-/st/test_foreach.rb: ditto
  [Feature #10321]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-09 07:16:19 +00:00
normal 11548f9253 test/-ext-/string/test_modify_expand.rb: increase limit for {je,tc}malloc
In this test, jemalloc and tcmalloc are both more hesitant to
release memory to the kernel than the stock glibc allocator.

Tested on jemalloc 3.6.0 (self-built) and libtcmalloc-minimal 2.0-2
(Debian package) on x86_64-linux

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 22:05:22 +00:00
naruse a8ec4b2cf2 * string.c (sym_find): remove Symbol.find because we have Symbol GC now.
https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20140904Japan
  If you still want this, request again on Redmine. [Feature #7854]
  https://bugs.ruby-lang.org/issues/7854

* ext/-test-/symbol/init.c (sym_find): moved from string.c for tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-11 21:22:52 +00:00
nobu fa326bf312 GC.stat key name
* test/-ext-/tracepoint/test_tracepoint.rb: follow the change of
  key name of GC.stat.

* test/ruby/test_hash.rb (TestHash#test_AREF_fstring_key): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 11:22:23 +00:00
nobu 34ec7c5b49 win32/test_console_attr.rb: reset attributes
* ext/-test-/win32/console/attribute.c (console_set_attribute):
  set console attribute.

* test/-ext-/win32/test_console_attr.rb (reset): reset attributes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-21 13:10:34 +00:00
nobu 43b00d8a11 win32.c: manage reverse video
* win32/win32.c (constat_attr): manage reverse video internally
  since Windows console window does not manage it.  based on the
  patch by white leaf in [ruby-dev:48483].  [Bug #10158]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-21 08:10:34 +00:00
nobu bae87a4790 vsnprintf.c: fix string precision
* vsnprintf.c (BSD_vfprintf): fix string width when precision is
  given.  as the result of `memchr` is NULL or its offset from the
  start cannot exceed the size, the comparison was always false.
  [ruby-core:62737] [Bug #9861]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-25 02:56:36 +00:00
akr 63fee73500 * configure.in: Check nextafter() availability.
* include/ruby/missing.h (nextafter): New optional declaration.

* missing/nextafter.c: New file.

* numeric.c: Float#next_float and Float#prev_float implemented.

   [ruby-core:62562] [Feature #9834]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-18 00:37:10 +00:00
nobu b522335554 test_inadvertent_creation.rb: use Symbol.find
* ext/-test-/symbol/intern.c: Symbol.find is available now.

* test/-ext-/symbol/test_inadvertent_creation.rb (noninterned_name):
  use Symbol.find instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-30 15:16:07 +00:00
naruse c71019f888 * ext/-test-/string/coderange.c: add Bug::String.new#coderange_scan
to explicitly scan coderange.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-21 10:14:46 +00:00
akr 9aa67e267b * bignum.c (SIZEOF_BDIGIT): Renamed from SIZEOF_BDIGITS.
* internal.h: Ditto.

* marshal.c: Ditto.

* rational.c: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-13 03:48:17 +00:00