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

491 Коммитов

Автор SHA1 Сообщение Дата
nobu 2c9c6271e8 bootstraptest/runner.rb: refine output
* bootstraptest/runner.rb (exec_test, show_progress): erase with
  white spaces, and adjust each results at same column.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-10 14:11:57 +00:00
akr bcc2c89eb5 Show the epapsed time for failed test as well.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-08 01:22:11 +00:00
nobu 75cbab3bb8 test_thread.rb: remove garbage
* bootstraptest/test_thread.rb: remove a garbage line for debug.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-08 01:02:49 +00:00
nobu 85521e60ee bootstraptest/test_{fork,io,thread}.rb: reduce sleep times
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-07 19:57:46 +00:00
nobu 7d8fc3696e runner.rb: elapsed times
* bootstraptest/runner.rb (show_progress): show each elapsed times
  in verbose mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-07 19:57:43 +00:00
akr 07f2563745 * (lib/tmpdir.rb): Rescue LoadError on etc.so for miniruby.
Revert r45707, r45711, r45717.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-29 05:19:38 +00:00
nobu 37ce765ba3 fix typo [Fix GH-603]
* bootstraptest/test_literal.rb: fix typo of "dynamic".  [ci skip]
* regexp.rdoc: fix typo of "organized".  [ci skip]
* lib/session.rb: fix typo of "recognized".  [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-28 15:20:28 +00:00
akr a87c3b4869 * bootstraptest/test_io.rb: Add etc.so to $" before require 'tmpdir'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-24 13:56:09 +00:00
akr 917681a3b7 revert r45709.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-24 13:54:07 +00:00
akr b3cd42ede0 * bootstraptest/test_io.rb: Don't use tmpdir because etc.so is not
usable from miniruby.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-24 13:40:18 +00:00
naruse 4892d046e5 FreeBSD 10 SEGVs this less than 4M + 12K bytes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-15 01:57:59 +00:00
nobu 1dcc985092 fix matching
* bootstraptest/test_thread.rb: String#=~ does not accept String.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 12:59:09 +00:00
ko1 f928c326ca * bootstraptest/runner.rb: check nil before calling `signal?'
for a process status.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-16 08:46:00 +00:00
nobu 15798b606e vm.c: initialize defined_module_hash early
* vm.c (Init_BareVM): initialize defined_module_hash here,
  Init_top_self() is too late to register core classes/modules.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-13 11:59:27 +00:00
nobu 2f57e80640 parse.y: parse precisely
* parse.y (parser_number_literal_suffix): return bit set of found
  suffixes.
* parse.y (parser_set_number_literal, parser_set_integer_literal):
  split from parser_number_literal_suffix to set yyvlal.
* parse.y (parser_yylex): parse rational number literal with decimal
  point precisely.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 14:14:55 +00:00
charliesome 29c5a3b89c * parse.y (negate_lit): add T_RATIONAL and T_COMPLEX to the switch
statement, and call rb_bug() if an unknown type is passed to
  negate_lit(). [ruby-core:56316] [Bug #8717]

* bootstraptest/test_literal_suffix.rb (assert_equal): add test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 01:40:27 +00:00
mrkn ae0181b7fe * bootstraptest/test_literal_suffix.rb: add two test cases to
examine that "1if true" and "1rescue nil" are recognized as 1.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 15:14:45 +00:00
mrkn e06407cf7d * rational.c (rb_flt_rationalize_with_prec): new public C function
to rationalize a Float instance with a precision.

* rational.c (rb_flt_rationalize): new public C function to
 rationalize a Float instance.  A precision is calculated from
 the given float number.

* include/ruby/intern.h: Add rb_flt_rationalize_with_prec and
  rb_flt_rationalize.

* parse.y: implement number literal suffixes, 'r' and 'i'.
  [ruby-core:55096] [Feature #8430]

* bootstraptest/test_literal_suffix.rb: add tests for parser to scan
  number literals with the above tsuffixes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 14:58:54 +00:00
ko1 4ab37a13ce * bootstraptest/test_thread.rb: rescue resource limitation errors.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-23 06:41:37 +00:00
shugo c8151d1235 * bootstraptest/test_autoload.rb, bootstraptest/test_method.rb:
remove tests for $SAFE=4.

* lib/pp.rb: use taint instead of untrust to avoid warnings when
  $VERBOSE is set to true.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-13 02:01:42 +00:00
nobu bd407329df test: tty option
* bootstraptest/runner.rb (main): add --tty option to output like
  terminal, for mingw/mswin on cygwin.

* lib/test/unit.rb (Test::Unit::Options#setup_options): ditto.

* sample/test.rb (Progress#initialize): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-15 00:59:19 +00:00
nobu cccd464e4d runner.rb: colorize
* bootstraptest/runner.rb (exec_test): colorize final messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-15 00:59:16 +00:00
nobu 9f7717e836 * bootstraptest/runner.rb (exec_test): break lines if not tty.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-12 07:06:49 +00:00
ko1 a5e2f3221a * compile.c (compile_array_): modify wrong optimization.
A script "[print(1)]; print(2)" should output "12".
  However, the compiler had eliminted "[print(1)]" expression
  because it is void expression (unused array).
  Of course, side-effect should be remained.
  This issue is reported by Masaya Tarui.
* bootstraptest/test_literal.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-09 18:38:41 +00:00
yugui c9f5a8f3f2 * bootstraptest/test_io.c: add a test for [ruby-dev:46834].
* io.c (rb_cloexec_fcntl_dupfd) Use an emulation with dup(2) when
  fcntl(2) and/or F_DUPFD is unavailable.
  Suggested by akr.

* configure.in (HAVE_FCNTL): NativeClient does not provide fcntl(2).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-06 09:48:00 +00:00
yugui 6efba755da Fix failures on btest for NativeClient.
* bootstraptest/runner.rb (nacl?): New method to distinguish NaCl
  corss build.

* bootstraptest/test_io.rb: Skip unsupported operations.

* bootstraptest/test_literal.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-03 15:39:15 +00:00
nobu 10c8aa81fb * bootstraptest/test_thread.rb: get rid of confusing ruby-mode.el
indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-01 14:42:52 +00:00
nobu 4136f8ce89 * bootstraptest/test_thread.rb: get rid of "invalid nest" error in
ruby-mode.el.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-01 14:42:50 +00:00
ko1 956cc2934d * vm.c (rb_vm_make_env_object): make Proc object if Env is possible
to point block.
  [ruby-core:41038] [ruby-trunk - Bug #5634]
* vm.c (rb_vm_make_proc): No need to make Proc object here.
* bootstraptest/test_proc.rb: add tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-27 11:58:10 +00:00
ko1 42e9fc4110 * bootstraptest/test_thread.rb: try to `join' each 100
threads.
  This benchmark seems consuming long time on travis-ci
  several times (and make `failure').



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-26 10:14:01 +00:00
ko1 ffd3cbdc75 * vm_insnhelper.c (vm_caller_setup_args): save and restore
ci->argc and ci->blockptr before and after method invocations
  because these method dispatches override call_info.
* bootstraptest/test_method.rb: add tests for this fix.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 08:34:43 +00:00
nobu f7894e422a vm.c: rewrite all catch points
* vm.c (rb_vm_rewrite_ep_in_errinfo): rewrite all catch points in
  errinfo, not only the topmost frame.  based on the patch by
  ktsj (Kazuki Tsujimoto) in [ruby-dev:45656]. [Bug #6460]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-02 19:14:24 +00:00
nobu e6c5b9f308 revert r37326 "remove string literal concatenation"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-25 14:06:31 +00:00
nobu db1f7079b6 remove string literal concatenation
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-25 10:07:22 +00:00
ko1 3083ad7b83 * vm_insnhelper.c (vm_call_method): disable CI_SET_FASTPATH() if
this method call needs splat argument because cahced functions
  (vm_call_attrset, vm_call_ivar, vm_call_cfunc_fast_(unary|binary))
  do not check an arity.
* bootstraptest/test_method.rb: add a test to check an above issue.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-15 21:35:29 +00:00
ko1 fb9034e757 * bootstraptest/test_block.rb: add tests for block with super.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-10 18:38:01 +00:00
nobu dde9f6958d parse.y: token name
* parse.y: more descriptive token names in syntax error messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-20 14:06:52 +00:00
nobu 89bcc681f0 parse.y: token name
* parse.y: more descriptive token names in syntax error messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-20 14:02:32 +00:00
ko1 e2f5d4f9c7 * bootstrap/test_exception.rb: fix a last committed test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-08 08:11:12 +00:00
ko1 93b6f8d619 * compile.c, insns.def (checkmatch):
remove checkincludearray instruction and
  add new instruction checkmatch.
  This change is to solve
  [Bug #4438] "rescue args type check omitted".
* iseq.c: increment ISEQ_MAJOR_VERSION because removal of
  checkincludearray instruction.
* vm_core.h: add several definitions for
  the checkmatch instruction.
* vm_insnhelper.c (check_match): added.
* bootstraptest/test_exception.rb: add a test.
* test/ruby/test_exception.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-08 07:52:19 +00:00
nobu 28827e61d1 method in instance_eval
* class.c (rb_special_singleton_class_of): utility function.
* vm_eval.c (eval_under): special deal for class variable scope with
  instance_eval.
* vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow method
  definition in instance_eval of special constants.  [ruby-core:28324]
  [Bug #2788]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-06 15:31:13 +00:00
nobu 5425128e2b bootstraptest: fix missing bs
* bootstraptest/runner.rb (show_progress): fix missing bs.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-05 08:18:23 +00:00
nobu 6b801ac9f8 bootstraptest: refine error output
* bootstraptest/runner.rb (show_progress): refine error output. do not
  count non-empty error message, but just warn.
* bootstraptest/runner.rb (error): show errors immediately if tty.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-05 06:15:00 +00:00
naruse 31f3a2e780 bootstrap/runner.rb must be run with Ruby 1.8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-04 11:23:13 +00:00
nobu 91a254fd08 bootstraptest: no stderr output
* bootstraptest/runner.rb (assert_check): capture stderr and ensure
  nothing is output.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-03 21:19:52 +00:00
nobu 5605afa5e2 test: reduce output if succeded
* bootstraptest/runner.rb (exec_test): reduce output if succeded.
* sample/test.rb (PROGRESS.finish): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-26 07:46:26 +00:00
ko1 c4bc9b5758 * iseq.c, vm_eval.c: set th->base_block properly.
th->base_block is information for (a) parsing, (b) compiling
  and (c) setting up the frame to execute the program passed by
  `eval' method.  For example, (1) parser need to know up-level
  variables to detect it is variable or method without paren.
  Befor (a), (b) and (c), VM set th->base_block by passed bindng
  (or previous frame information).  After execute (a), (b) and (c),
  VM should clear th->base_block.  However, if (a), (b) or (c)
  raises an exception, then th->base_block is not cleared.
  Problem is that the uncleared value th->balo_block is used for
  irrelevant iseq compilation.  It causes SEGV or critical error.
  I tried to solve this problem: to clear them before exception,
  but finally I found out that it is difficult to do it (Ruby
  program can be run in many places).
  Because of this background, I set th->base_block before
  compiling iseq and restore it after compiling.
  Basically, th->base_block is dirty hack (similar to global
  variable) and this patch is also dirty.
* bootstraptest/test_eval.rb: add a test for above.
* internal.h: remove unused decl.
* iseq.c (rb_iseq_compile_with_option): add base_block parameter.
  set th->base_block before compation and restore it after
  compilation.
* ruby.c (require_libraries): pass 0 as base_block instead of
  setting th->base_block
* tool/compile_prelude.rb (prelude_eval): apply above changes.
* vm.c, vm_eval.c: ditto.
* vm_core.h: add comments.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-22 09:32:56 +00:00
nobu 3fb38c6178 bootstraptest: ignore -j
* bootstraptest/runner.rb (main): ignore -j option for compatibility
  with test/unit.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-15 22:12:30 +00:00
nobu 19b4b7de3b test: TEST_COLORS
* bootstraptest/runner.rb (main): fixed typo.
* lib/test/unit.rb (Test::Unit::Runner#_prepare_run): ditto.
* sample/test.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-15 01:38:32 +00:00
nobu 0243943aad test: TEST_COLORS
* bootstraptest/runner.rb (main): customize colors by dircolors-like
  style environment variable TEST_COLORS.

* lib/test/unit.rb (Test::Unit::Runner#_prepare_run): ditto.

* sample/test.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-15 00:56:39 +00:00
nobu 65672e63f5 test: unknown --color argument
* bootstraptest/runner.rb (main): warn unknown --color argument.

* sample/test.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-15 00:56:36 +00:00
nobu a8ddde3b78 test: help message
* bootstraptest/runner.rb (main): add --color option to the help
  message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-15 00:56:33 +00:00
nobu 82aa43407c win32: VT100 escape
* win32/win32.c (constat_apply): apply VT100 functions.
  [ruby-core:44958] [Feature #6418]
* win32/win32.c (constat_parse): parse some VT100 escape sequence.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-04 06:39:40 +00:00
nobu 2f76e6d34c color option
* bootstraptest/runner.rb, sample/test.rb: add --color option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-30 01:24:08 +00:00
nobu 779922622b tests: customizable colors
* bootstraptest/runner.rb, lib/test/unit.rb, sample/test.rb:
  customizable colors.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-08 00:25:47 +00:00
nobu a6003269b6 bootstraptest/runner.rb: refine output
* bootstraptest/runner.rb (exec_test, show_progress): show rotators
  and pass/fail counts.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-07 18:53:42 +00:00
ko1 ee7f8d4805 * compile.c (compile_array, compile_array_):
Divide big array (or hash) literals into several blocks and
  concatetene them.  There was a problem that a big array (hash)
  literal causes SystemStackError exception (stack overflow)
  because VM push all contents of the literal onto VM stack to
  make an array (or hash).  To solve this issue, we make several
  arrays (hashes) and concatenate them to make a big array (hash)
  object.
  ??
* compile.c (iseq_compile_each, setup_args): use modified
  compile_array.
* vm.c (m_core_hash_from_ary, m_core_hash_merge_ary,
  m_core_hash_merge_ptr): added for above change.
* id.c (Init_id), parse.y: add core method ids.
* bootstraptest/test_literal.rb: add simple tests.
* bootstraptest/test_eval.rb: remove rescue clause to catch
  SystemStackError exception.
* test/ruby/test_literal.rb: add tests to check no stack overflow.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-12 01:33:34 +00:00
ktsj 66f9d5fe11 * test/ruby/test_object.rb (test_send_with_block): moved from
bootstraptest/test_flow.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-02 06:25:01 +00:00
ktsj db9657a8bf * bootstraptest/test_flow.rb: remove an unused parameter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-23 16:39:11 +00:00
ktsj dd834c683d * vm_eval.c (send_internal): PASS_PASSED_BLOCK_TH must be placed
just before calling rb_call0.

* bootstraptest/test_flow.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-23 16:23:13 +00:00
kosaki 5c29d116c2 * bootstraptest/runner.rb: don't suppress SIGINT.
[Feature #5612] [ruby-dev:44856]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-12 04:37:54 +00:00
ktsj a09e7139a3 * proc.c (proc_new): force to rewrite errinfo when calling Proc.new in ensure.
[Bug #5234] [ruby-core:39125]
  This code will be removed after changing throw mechanism (see r33064).

* vm.c (rb_vm_rewrite_dfp_in_errinfo): new function.

* vm.c (vm_make_env_each): changed accordingly.

* vm_core.h: ditto.

* bootstraptest/test_flow.rb: add tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-27 09:59:48 +00:00
ko1 ef039de560 * vm.c (vm_make_env_each): work around to solve Bug #2729.
fixes: Bug #2729
  a patch from Kazuki Tsujimoto <kazuki@callcc.net>
  This problem is caused by changing dfp (dynamic env pointer)
  from saved dfp.  Saved dfp is pointed env in VM stack.  However,
  the dfp can be moved because VM copies env from VM stack to
  the heap.  At this copying, dfp was also changed.  To solve this
  problem, I'll try to change throw mechanism (not save target dfp,
  but save target cfp).
* bootstraptest/test_flow.rb: add a test for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-24 23:37:56 +00:00
ko1 9cf9d5eaf7 * vm_insnhelper.c (vm_throw): check a class frame.
Fixes Bug #4648.
  The patch is contributed by Kazuki Tsujimoto.
* bootstraptest/test_proc.rb: add tests for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 09:04:44 +00:00
kosaki a119b9d146 * vm_core.h (typedef struct rb_vm_struct): create a new
'inhibit_thread_createion' field.
* thread.c (rb_thread_terminate_all): set inhibit_thread_creation.
* thread.c (thread_s_new): don't permit to create new thread
  if the VM is under destruction. Otherwise evil finalizer code
  can make SEGV. [Bug #4992][ruby-core:37858]

* bootstraptest/test_objectspace.rb: new test for this fix.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 07:46:00 +00:00
mrkn 564fb6a795 * load.c (rb_f_autoload): prevent to autoload for singleton
classes.  fixes [Bug #4886] [ruby-dev:43816]
* bootstraptest/test_autoload.rb: add tests for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 06:32:06 +00:00
kosaki 8739bb305d add test for [ruby-dev:44049].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 04:57:27 +00:00
ko1 fa4514e4fe * thread.c (rb_threadptr_check_signal): only wake up main thread.
* thread.c (rb_threadptr_execute_interrupts_common): check signal
  deliverly if it is main thread.
  fixes [ruby-dev:44005] [Ruby 1.9 - Bug #4950]
* bootstraptest/test_fork.rb: add a test for above.
* signal.c (rb_get_next_signal): skip if signal_buff is empty.
  (check signal_buff.size first)
* vm_core.h: remove unused variable rb_thread_t::exec_signal.
* thread.c (rb_thread_check_trap_pending): check
  rb_signal_buff_size() because rb_thread_t::exec_signal
  is no longer available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-30 22:29:34 +00:00
naruse 021f166509 * compile.c (iseq_compile_each): fix return value of obj[a,*b]=c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-17 10:18:39 +00:00
akr 7d6fe4e604 * bootstraptest/runner.rb (show_progress): refine verbose mode.
(exec_test): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-14 14:17:42 +00:00
akr 92c0438049 * bootstraptest/runner.rb (show_progress): extracted from assert_check.
(assert_check): use show_progress.
  (assert_normal_exit): ditto.
  (assert_finish): ditto.
  (flunk): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-14 14:07:02 +00:00
eban 10bf738bee * bootstraptest/runner.rb: should initilize $stress to avoid warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-11 09:07:26 +00:00
nobu 3a47cf3395 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-15 11:55:52 +00:00
shugo 4273aa8e72 * vm_insnhelper.c (vm_get_ev_const): search root cref properly.
[ruby-dev:43365]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-31 07:52:40 +00:00
ko1 f01fae2885 * bootstraptest/test_method.rb: fix last commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-21 16:56:59 +00:00
ko1 9831508ba3 bootstraptest/test_method.rb: add a test for [ruby-core:30534].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-21 16:53:06 +00:00
mame be1c68caeb * bootstraptest/test_class.rb: add a test for [ruby-core:30843].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-27 18:13:06 +00:00
mame 59af57e257 * iseq_compile_each (NODE_DEFINED): put nil first to fix stack
consistency.  [ruby-core:30293]
  Now, lfinish[0] of defined_expr seems not to be used.  Refactoring
  may be needed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 10:48:17 +00:00
mame b8571b4285 * vm_eval.c (eval_string_with_cref): propagative filename and line_no
of binding.  [ruby-dev:38767] [ruby-core:28307]

* vm_core.h (rb_binding_t), proc.c: add filename and line_no fields to
  preserve them.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 18:41:51 +00:00
mame 80f7f8d07e * compile.c (iseq_compile_each), vm_insnhelper.c (vm_invoke_block,
vm_throw): allow "return" and "yield" even in singleton class
  definition.  based on a patch from wanabe <s.wanabe AT gmail.com>
  for "return".  [ruby-core:21379] [ruby-dev:40975]

* insns.def (defineclass): ditto (straightforwardly push block ptr,
  instead of dfp ptr with special flag).

* vm_core.h (RUBY_VM_CLASS_SPECIAL_P): ditto (no longer needed).

* proc.c (proc_new): ditto (remove handling for special flag).

* bootstraptest/test_jump.rb: add tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 18:21:39 +00:00
ko1 833cade2dc * vm_method.c (rb_unlink_method_entry, rb_sweep_method_entry):
added.  Unlinked method entries are collected to
  vm->unlinked_method_entry_list.  On the GC timing, mark all method
  entries which are on all living threads.  Only non-marked method
  entries are collected.  This hack prevents releasing living method
  entry.
  [Performance Consideration] Since this Method Entry GC (MEGC)
  doesn't occuer frequently, MEGC will not be a performance bottleneck.
  However, to traverse living method entries, every control frame push
  needs to clear cfp->me field.  This will be a performance issue
  (because pushing control frame is occurred frequently).
  Bug #2777 [ruby-dev:40457]
* cont.c (fiber_init): init cfp->me.
* gc.c (garbage_collect): kick rb_sweep_method_entry().
* method.h (rb_method_entry_t): add a mark field.
* vm.c (invoke_block_from_c): set passed me.
* vm.c (rb_thread_mark): mark cfp->me.
* vm_core.h (rb_thread_t): add a field passed_me.
* vm_core.h (rb_vm_t): add a field unlinked_method_entry_list.
* vm_insnhelper.c (vm_push_frame): clear cfp->me at all times.
* vm_insnhelper.c (vm_call_bmethod): pass me.
* bootstraptest/test_method.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-05 17:51:21 +00:00
nobu a6242670f3 * bootstraptest/test_io.rb (megacontent-copy_stream): get rid of
deadlock.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-05 02:43:15 +00:00
mame e59b9d35fc * insns.def (onceinlinecache): add exclusion control for a region
between onceinlinecache and setinlinecache.  [ruby-dev:39768]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-27 14:06:16 +00:00
mame 0ffb18de45 * bootstraptest/test_thread.rb: fix test. [Bug #2342]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-22 14:02:09 +00:00
nobu 82ba40b434 * parse.y (parser_yylex): reverted r27388 due to backward
compatibility.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-21 04:36:05 +00:00
mame adfe4f3930 * compile.c (NODE_NEXT, NODE_REDO): add dummy putnil instruction to
fix stack consistency error.  [ruby-core:28172]

* bootstraptest/test_jump.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-20 15:28:33 +00:00
mame ab10ac8f12 * bootstraptest/test_fork.rb: add a test for [ruby-core:28924].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-19 16:03:39 +00:00
nobu e70a308c75 * parse.y (parser_yylex): seems like a symbol-literal when spaces
are unbalanced.  [ruby-core:29578]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-18 03:48:54 +00:00
nobu cfab29b7db * parse.y (string_content): preserve cond_stack and cmdarg_stack.
[ruby-core:29579]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-18 03:32:06 +00:00
nobu 54985ad7dd * bootstraptest/test_io.rb: reduced megacontent test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-18 03:26:56 +00:00
akr 24421c835d * bootstraptest/runner.rb (assert_normal_exit): add :timeout option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-17 12:27:34 +00:00
nobu 09205cf2c3 * vm.c (vm_exec): reset thread state before starting vm loop.
[ruby-core:28129]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-09 19:06:39 +00:00
akr dd4537ad99 * bootstraptest/runner.rb: sort test files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-07 14:09:43 +00:00
mame 3a9ce187de * vm_insnhelper.c (vm_throw): fixed infinite loop. [ruby-core:27969]
(re-commit of r26522 since forgot to add a change, sorry)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-31 12:41:47 +00:00
usa 0676ac37be * bootstraptest/test_thread.rb: please please please remember that there are
platforms that do not support fork.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-11 07:47:29 +00:00
nobu 4ba0fe5fd3 * thread_pthread.c (native_mutex_reinitialize_atfork): release and
re-acquire the lock at re-initialization.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-10 06:49:15 +00:00
nobu 770b05dd9b * parse.y (dyna_pop_gen): pop dvars. [ruby-dev:39861]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-09 16:12:57 +00:00
shugo 4cec4edd0b fixed tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-04 07:09:21 +00:00
nobu 9b02e165d3 * parse.y (dyna_push_gen, dyna_pop_gen): adjust local vtable level
for the case of syntax errors in method name or argument inside
  do block.   [ruby-core:26961]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-30 21:16:31 +00:00
usa d3eb005737 * bootsraptest/test_io.rb: skip the test of io/nonblock on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-25 04:09:59 +00:00