Commit graph

7991 commits

Author SHA1 Message Date
ko1
bef2e29aab * vm.c (rb_vm_rewind_cfp): add new function to rewind specified cfp
with invoking RUBY_EVENT_C_RETURN.
  [Bug #9961]
* vm_core.h: ditto.
* eval.c (rb_protect): use it.
* eval.c (rb_rescue2): ditto.
* vm_eval.c (rb_iterate): ditto.
* test/ruby/test_settracefunc.rb: add a test.
* vm_core.h (rb_name_err_mesg_new):



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-19 12:43:48 +00:00
ko1
370212a8ae * vm.c (invoke_block_from_c): move call/return event timing for
bmethod. It can invoke inconsistent call event if this call raises
  argument error.
  [Bug #9959]
* vm_insnhelper.c (vm_call_bmethod_body): ditto.
* test/ruby/test_settracefunc.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-19 10:49:46 +00:00
ko1
59bdf7eac8 * vm_core.h: add VM_FRAME_MAGIC_RESCUE to recognize normal block or
rescue clause.
* vm.c (vm_exec): use VM_FRAME_MAGIC_RESCUE on at rescue/ensure.
* test/ruby/test_settracefunc.rb: should not invoke b_return at rescue
  clause.
  [Bug #9957]
* vm_dump.c (control_frame_dump): check VM_FRAME_MAGIC_RESCUE.
* vm_dump.c (vm_stack_dump_each): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-19 09:17:21 +00:00
nobu
b2066b11d8 proc.c: Implement Method#curry
* proc.c (rb_method_curry): Implement Method#curry, which delegates
  to to_proc.curry.  [ruby-core:62212] [Feature #9783]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-19 04:42:16 +00:00
shugo
6479e0b04f * lib/net/ftp.rb (gets, readline): read lines without LF properly.
[ruby-core:63205] [Bug #9949]

* test/net/ftp/test_buffered_socket.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-17 07:44:53 +00:00
nobu
d689dca633 eval.c: pass unknown options
* eval.c (extract_raise_opts): pass unknown options to the
  exception, so that exception class can receive a hash argument.
  [ruby-core:63203] [Feature #8257]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-17 03:37:47 +00:00
nobu
664d209de3 runner.rb: instance variable
* test/runner.rb (before_setup, after_teardown): use an instance
  variable instead of a class variable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 19:51:38 +00:00
ko1
dbf2578656 * test/runner.rb: failure message should be passed as an argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 10:01:44 +00:00
ko1
3a1c08e58f * test/runner.rb: capture TracePoint stat before setup and compare
it after teardown.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 09:45:03 +00:00
hsbt
e5af180eb0 * test/uri/test_generic.rb: fix wrong arguments for test case.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 09:23:02 +00:00
hsbt
9761965d05 * test/date/test_date_arith.rb: remove unused block argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 09:17:55 +00:00
hsbt
ea7c1f4dc6 * test/date/test_date_strptime.rb: remove useless variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 09:17:54 +00:00
nobu
fd444f90b5 process.c: use UTF-8
* process.c (open): use UTF-8 version function to support
  non-ascii path properly.  [ruby-core:63185] [Bug #9946]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 05:35:59 +00:00
nobu
f3db73f107 test_file_exhaustive.rb: fix expected value
* test/ruby/test_file_exhaustive.rb (test_expand_path_memsize):
  correct expected value, count terminator byte.  [Bug #9934]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-15 11:49:25 +00:00
nobu
106f3e9d17 test_file_exhaustive.rb: fix assertion
* test/ruby/test_file_exhaustive.rb (test_expand_path_memsize):
  wrong expected value, considering a prefix (drive letter or UNC)
  on DOSISH platforms.  [Bug #9934]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-15 01:09:19 +00:00
nobu
dcae4b9d42 runner.rb: use class variable
* test/runner.rb (after_teardown): turn zombie traces hash into a
  class variable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-14 23:13:50 +00:00
nobu
045b6e9fb9 runner.rb: check increment
* test/runner.rb (after_teardown): check increment of active trace
  events.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-14 22:11:22 +00:00
nobu
5a83ce3f15 runner.rb: include event name
* test/runner.rb (after_teardown): include active trace event name
  in the failure message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-14 21:54:11 +00:00
nobu
b654e0719a array.c: non-recursive rcombinate0
* array.c (rcombinate0): remove recursion, by looping with indexes
  stored in `p`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-14 01:55:25 +00:00
nobu
4802149e44 array.c: non-recursive rpermute0
* array.c (rpermute0): remove recursion, by looping with indexes
  stored in `p`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-14 01:55:07 +00:00
nobu
9d6b7aede9 array.c: non-recursive permute0
* array.c (permute0): remove recursion, by looping with indexes
  stored in `p`.  [ruby-core:63103] [Bug #9932]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-14 01:54:45 +00:00
ko1
4945572f3c * vm_trace.c: add new method TracePoint.stat to debug
TracePoint mechanism.
  Ruby users should not use this method. So I don't note this method
  in the NEWS file.
* test/runner.rb: detect zombie active TracePoints with
  TracePoint.stat.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-13 09:01:21 +00:00
ko1
ddae6a05d7 * vm_trace.c: clear and restore recursive checking thread local data
to avoid unexpected throw from TracePoint.
  [Bug #9940]
* test/ruby/test_settracefunc.rb: add a test.
* thread.c: adde
  * rb_threadptr_reset_recursive_data(rb_thread_t *th);
  * rb_threadptr_restore_recursive_data(rb_thread_t *th, VALUE old);
* vm_core.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-13 08:50:11 +00:00
nobu
537b4a6422 array.c: combination on a shared copy
* array.c (rb_ary_combination): iterate on a shared copy, and use
  array of indexes instead of array of chosen objects.
  [ruby-core:63149] [Bug #9939]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-13 08:34:17 +00:00
tmm1
559a827579 add more test coverage for [ruby-core:63136] [Bug #9934]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-13 00:00:03 +00:00
nobu
e2890123ac file.c: shrink expanded path
* file.c (expand_path): shrink expanded path which no longer needs
  rooms to append.  [ruby-core:63114] [Bug #9934]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-12 04:09:41 +00:00
ko1
c8c9952066 * gc.c: invoke GC before memory allocation (xmalloc/xrealloc)
when GC.stress = true.
  [Bug #9859]
* test/ruby/test_gc.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-10 16:55:32 +00:00
nobu
9ada2641c6 envutil.rb: avoid error on OS X 10.10
* test/ruby/envutil.rb (diagnostic_reports): Mac OS X 10.10 may
  not create plist file with crash file together.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-10 14:44:26 +00:00
xibbar
5c99f241a0 * lib/cgi/core.rb: Provide a mechanism to specify the
max_multipart_length of multipart data.
  [Feature #8370] patch by Leif Eriksen <leif.eriksen.au@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-10 04:29:49 +00:00
nobu
f9a5335ed4 csv.rb: honor encoding option
* lib/csv.rb (CSV#<<): honor explicity given encoding.  based on
  the patch by DAISUKE TANIWAKI <daisuketaniwaki AT gmail.com> at
  [ruby-core:62113].  [Bug #9766]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-10 01:57:10 +00:00
nobu
473dc1c5c0 envutil.rb: use keyword argument
* test/ruby/envutil.rb (assert_valid_syntax): use keyword argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-10 01:44:57 +00:00
nobu
ce4ecc6b13 fold too long line
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-09 14:05:47 +00:00
eregon
a21ac07f69 * numeric.c (do_coerce): Add a warning when an exception is raised
or an invalid value is returned in #coerce called by
  numeric comparison operators and the exception
  thrown by the caller has no information on the failure.
  In the next release such exception should not be rescued or
  should be the cause of the caller exception. nil is accepted
  as the "no possible coercion" return value. See #7688.
* test/ruby/test_numeric.rb: Add corresponding test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-07 13:16:01 +00:00
nobu
0e7cd6417a io.c: truncate before appending
* io.c (read_all): truncate the buffer before appending read data,
  instead of truncating before reading.
  [ruby-core:55951] [Bug #8625]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-07 03:51:57 +00:00
akr
4169440f38 * object.c (rb_mod_initialize_clone): Override Kernel#initialize_clone
to avoid an exception on Class.new.freeze.clone.to_s.
  Reported by Andrew Grimm.  [ruby-core:41858] [Bug #5828]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-07 02:41:01 +00:00
eregon
bc211f3634 digest.c: fix #== for non-string arguments
* ext/digest/digest.c (rb_digest_instance_equal):
  fix #== for non-string arguments. [ruby-core:62967] [Bug #9913]
* test/digest/test_digest.rb: add test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-06 21:05:48 +00:00
nobu
199f814f32 compile.c, parse.y: private op assign
* compile.c (iseq_compile_each), parse.y (new_attr_op_assign_gen):
  allow op assign to a private attribute.
  [ruby-core:62949] [Bug #9907]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-06 08:07:13 +00:00
nobu
7342e78ea6 test_assignment.rb: assignment to private attribute
* test/ruby/test_assignment.rb (test_assign_private_self): test
  for r3509, assignment to private attribute is allowed iff its
  receiver is literal `self`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-06 07:58:35 +00:00
nobu
3c93a7d969 test_assignment.rb: split test_assign
* test/ruby/test_assignment.rb (test_assign): split by assignment
  forms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-06 07:58:31 +00:00
nobu
71a3cb13eb io.c: not shorten buffer unless succeeded
* io.c (io_setstrbuf, io_read): should not shorten the given buffer until
  read succeeds.  [ruby-core:55951] [Bug #8625]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-06 04:39:37 +00:00
tenderlove
3f6eafaaa0 * ext/psych/lib/psych/visitors/yaml_tree.rb: dump empty symbols with a
tag so that they can be parsed on input. [Bug #9873] [ruby-core:62825]
* test/psych/test_symbol.rb: test for change

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-05 22:42:58 +00:00
akr
88fda023aa Join a thread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-05 09:16:57 +00:00
nobu
5861d4f18b re.c: consider name encoding
* re.c (match_aref, rb_reg_regsub): consider encoding of captured
  names, encoding-incompatible should not match.
  [ruby-dev:48278] [Bug #9903]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-04 13:09:57 +00:00
nobu
561fe11035 re.c: fix name with NUL
* re.c (match_aref): should not ignore name after NUL byte.
  [ruby-dev:48275] [Bug #9902]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-04 12:23:57 +00:00
nobu
140929d8ba vm.c: return the result hash
* vm.c (core_hash_merge_kwd): should return the result hash, which
  may be converted from and differ from the given argument.
  [ruby-core:62921] [Bug #9898]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-03 19:08:40 +00:00
ko1
a5fd4c45e3 * test/ruby/test_gc.rb: allocate more objects to invoke GC by newobj.
GC allows extending pages depends on heap_increment.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-03 09:47:54 +00:00
shugo
87505dd771 * lib/net/imap.rb (body_type_1part): Gmail IMAP reports a body
type as "MIXED" followed immediately by params
	  [ruby-core:62864] [Bug #9885]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-03 04:19:57 +00:00
ko1
d27a685b95 * test/ruby/memory_status.rb: add $LOAD_PATH to load test/unit
correctly for fiddle/import unavailable environments.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-03 03:29:12 +00:00
usa
5d9eae4abb * test/openssl/test_ssl.rb (OpenSSL::TestSSL#test_verify_result):
shouldn't use same server for respective tests, because the 1st
  test sometimes kills the server main loop silently.
  [Bug #9881] [ruby-dev:48266]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-03 00:48:29 +00:00
akr
59ae4924b0 Join threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-02 11:34:50 +00:00