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

533 Коммитов

Автор SHA1 Сообщение Дата
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
usa f6fbdf261e * bootstraptest/test_thread.rb: propagate the exception within a thread to
outer.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-24 01:30:00 +00:00
usa 1968717136 * test_thread.rb: DO NOT USE FORK WITHOUT RESCUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-19 00:56:44 +00:00
nobu 748fe216c2 * thread.c (rb_thread_atfork_internal): reinitialize global lock
at fork to get rid of deadlock.  based on the patch from Hongli
  Lai in [ruby-core:26783].  [ruby-core:26361]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-18 09:25:11 +00:00
mame 31c0e3385f * thread.c (thread_cleanup_func): delete locking_mutex when thread
object become dummy because of fork.  [ruby-core:26744]
  [ruby-core:26745]

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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-15 15:10:49 +00:00
nobu 9bcccca47a * bootstraptest/test_gc.rb: added tests based on [ruby-dev:39484]
from wanabe <s.wanabe AT gmail.com>.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 09:42:20 +00:00
nobu a97e80ba74 * tool/instruction.rb (make_header_prepare_stack): check stack
overflow.  [ruby-core:25714]

* tool/instruction.rb (make_footer_stack_val): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 02:28:08 +00:00
nobu 2620a84070 * bootstraptest/test_thread.rb: just check for normal exit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-11 12:06:34 +00:00
nobu fb03cb8275 * parse.y (literal_concat_gen): concat body from dstr instead of
nd_next.  [ruby-core:25284]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-03 08:57:28 +00:00
nobu b6cf785119 * vm.c (collect_local_variables_in_env): skips internal variables.
[ruby-core:25125]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-26 03:37:08 +00:00
akr 7c2d363bae * bootstraptest/runner.rb (main): "usage" description updated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-23 06:24:33 +00:00
akr 0ebb7c1c9b * bootstraptest/runner.rb (Dir.mktmpdir): updated to latest.
(in_temporary_working_directory): temporary directory name changed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-23 06:15:00 +00:00
nobu c82826ce5f * bootstraptest/test_exception.rb: test for [ruby-core:24767].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-05 04:01:08 +00:00
nobu 9997227af8 * bootstraptest/runner.rb: forgot shebang line.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-03 07:20:14 +00:00
nobu 8b0fef3747 * bootstraptest/runner.rb: got rid of using /bin/sh.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-03 06:35:38 +00:00
nobu 59e5d0f177 * bootstraptest/runner.rb: made executable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-02 12:06:31 +00:00
nobu 6a26b59600 * parse.y (literal_concat0): tail can be nil. [ruby-dev:38980]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-02 12:04:43 +00:00
mame 3129ed327e * parse.y (literal_concat_gen): NODE_DSTR was incorrectly handled as
NODE_STR.  [ruby-dev:38968]

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



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 18:02:37 +00:00
mame df878f78c5 * compile.c (iseq_compile_each): fix stack consistency error.
[ruby-core:24611]

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


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 12:42:41 +00:00
matz 300d60a8e4 * bootstraptest/test_io.rb: block write may block for long time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-21 16:36:41 +00:00
akr b205b5e7b6 fix tests for load_path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-22 07:28:33 +00:00
ko1 0cdfbc9446 * thread_pthread.c (rb_thread_create_timer_thread): print fatal error
message to stderr instead of using rb_bug().
* KNOWNBUGS.rb, bootstraptest/test_fork.rb: move a fixed test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-07 23:59:58 +00:00
nobu f4a0a73175 * variable.c (rb_autoload_load): checks if iv_tbl is valid.
[ruby-dev:38456]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-15 06:15:14 +00:00
nobu d222c7533c * bootstraptest/test_io.rb: test for [ruby-dev:38131].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-26 09:44:35 +00:00
nobu 5f47ed9b59 * file.c (file_load_ok): checks if regular file. [ruby-dev:38097]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-27 06:49:43 +00:00
usa 4176051753 * test_fork.rb: no need to test if fork(2) is not implemented.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-26 05:02:21 +00:00
usa 3eff6d398b * test_thread.rb: broken test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-26 05:01:03 +00:00
mame c43236eaf7 * bootstraptest/test_thread.rb: fix for environment where fork is not
available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23 16:24:46 +00:00
mame c55dd9b7d8 * thread.c (thread_cleanup_func): unlock all locked mutexes even when
forking.  [ruby-core:22269]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23 16:20:06 +00:00
nobu 1e51a7b2c6 * vm_eval.c (method_missing): should not pop cfp if missing method
is method_missing.  [ruby-core:22298]

* vm_eval.c (rb_raise_method_missing): new function to directly
  raise NoMethodError.

* vm_insnhelper.c (vm_call_method): fixed the case method_missing
  is missing.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 01:47:11 +00:00
knu fd2b650d06 * bootstraptest/runner.rb: Use RUBY_DESCRIPTION if defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18 06:27:47 +00:00
nobu e5edfbf207 * bootstraptest/test_fork.rb: test for [ruby-core:22158]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-18 01:49:17 +00:00
ko1 c9e4dc308f * compile.c: fix to add "ensure" codes across "while" clause
before "return" expression.  [ruby-dev:37967]
* bootstraptest/test_flow.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-16 20:54:58 +00:00
nobu 6b7dbd3e31 * insns.def (defineclass): try to autoload const to be overridden.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-12 15:48:44 +00:00
akr c77f323088 * bootstraptest/runner.rb: refine success message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-04 12:57:17 +00:00
akr 21675bb6a7 reduce test time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-02 08:08:52 +00:00
nobu 132d0624ec * variable.c (rb_const_get_0), vm_insnhelper.c (vm_get_ev_const):
avoids infinite self recursion autoload.  [ruby-core:21696]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-31 20:19:44 +00:00
ko1 a3a45fafa3 * vm.c (rb_vm_inc_const_missing_count, ruby_vm_const_missing_count):
added.
* vm_insnhelper.h: ditto.
* variable.c (rb_const_get_0), insns.def: Constants should not be
  cached if const_missing is called.  [ruby-core:21059] [Bug #967]
* bootstraptest/test_class.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-15 15:31:43 +00:00
mame f35f46a9f1 * bootstraptest/test_proc.rb: suppress error message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-02 13:20:46 +00:00
ko1 bd96f1fe70 * eval.c (get_errinfo): return th->errinfo value
if normal errinfo place (dynamic local viriable) is not found.
  fixes Bug #732 [ruby-dev:37046].
* bootstraptest/test_proc.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-27 04:45:28 +00:00
ko1 597220ef0c * vm.c (Init_VM): create and define TOPLEVEL_BINDING at first.
* vm.c (vm_set_main_stack, rb_iseq_eval_main): added.
* parse.y (rb_parser_compile_file): fix to check parse_in_eval flag.
* eval.c (ruby_exec_node): use rb_iseq_eval_main()
  instead of rb_iseq_eval().
* iseq.c (rb_iseq_new_main), vm_core.h: added.
  main script (specified by -e or script name) should be run
  under TOPLEVEL_BINDING using Kernel#eval.  Above changes
  simulate Kernel#eval behaviour.  [ruby-dev:37240]
* compile.c (make_name_for_block): skip iseq except block type.
  this fix is needed for [ruby-dev:37240], and also fixes
  [ruby-dev:35392].



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-27 01:15:56 +00:00
ko1 a71fb38d47 * vm_insnhelper.c (vm_method_search): return rb_cObject if there is no
super class.  [ruby-dev:37587]
* bootstraptest/test_method.rb: add tests for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-25 04:19:33 +00:00
ko1 7c982059ea * proc.c (proc_new): should use proc_dup() if block has Proc.
* vm.c (vm_make_proc_from_block): should use rb_cProc for block.
* vm.c (vm_make_proc): add an assertion.
* bootstraptest/test_proc.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-25 03:51:35 +00:00
ko1 f0da2e1657 * vm_insnhelper.c (vm_call_method): use class of method defined
instead of receiver's class on bmethod.  fixes [ruby-core:20786]
* bootstraptest/test_method.rb: add a test for above.
* vm_insnhelper.c (vm_setup_method): remove unused parameter klass.
* vm_insnhelper.h (CALL_METHOD): ditto.
* insns.def, vm_eval.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-24 11:47:00 +00:00
nobu 8c8d666467 * vm_insnhelper.c (vm_callee_setup_arg_complex): uses cfp from
blockptr instead of the current cfp.  [ruby-core:20544]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-15 07:26:48 +00:00
nobu 8e864d1e86 * load.c (rb_get_load_path): returns the load path without
touching.

* load.c (rb_feature_provided): new function to return the loading
  path in addition to rb_provided().

* load.c (search_required): sets path if loading.

* variable.c (autoload_provided): load paths are expanded to check
  if loading.

* variable.c (autoload_node): keeps autoload mark while loading.
  [ruby-core:20235]

* variable.c (rb_const_get_0): loops while autoload mark is set.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-04 18:29:20 +00:00
usa e8d91f1213 * bootstraptest/test_thread.rb: ignore some exceptions.
[ruby-dev:36951]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-28 00:52:32 +00:00
ko1 3337185ed6 * parse.y (arg_concat_gen): concat target node should be NODE_ARRAY.
[ruby-core:19413]
* bootstraptest/test_method.rb: add tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-21 20:45:35 +00:00
ko1 03b2fc9adf * bootstraptest/test_thread.rb: add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-31 07:39:45 +00:00
ko1 100d0a568e * vm_insnhelper.c (vm_call_method): copy arguments to allocated
memory from machine stack.  [ruby-dev:36028]
* KNOWNBUGS.rb, bootstraptest/test_method.rb: move fixed test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-29 08:24:51 +00:00
usa a7fa5122d7 * bootstraptest/test_io.rb: no need to create real file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-28 10:05:35 +00:00
nobu faf2541c2b * gc.c (rb_gc_call_finalizer_at_exit): self-referencing finalizers
cannot be invoked.  [ruby-dev:35681]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-06 11:48:30 +00:00
naruse 99c3a01dc7 * bootstraptests/method.rb: increase RLIMIT_STACK size to 4M+8Kbytes
because FreeBSD fails this less than that.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-27 13:24:18 +00:00
nobu f3fcd2e4a0 * io.c (rb_io_wait_readable, rb_io_wait_writable): check if the file
descriptor is closed.

* thread.c (rb_thread_wait_fd_rw): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-11 11:51:39 +00:00
akr 5c91367675 add ML ref.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-10 14:52:24 +00:00
nobu 1a5f1a8c69 * vm_core.h (rb_thread_t), vm.c (rb_thread_mark), process.c
(rb_last_status_get, rb_last_status_set, rb_last_status_clear):
  moved last_status from rb_vm_t.  [ruby-dev:35414]

* vm.c (th_init2): initialize last_status with nil.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-10 03:10:00 +00:00
matz 5336cbdfd3 * string.c (str_gsub): should preserve last successful match
data.  [ruby-dev:35182]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-19 17:11:55 +00:00
ko1 e929f49e56 * KNOWNBUGS.rb, bootstraptest/pending.rb: move a bug (?) to pending.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-19 16:08:16 +00:00
ko1 e7dac48a91 * proc.c (proc_new): fix to return Proc object if block is already
in heap.  [ruby-core:15711]
* bootstraptest/test_proc.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-19 15:43:25 +00:00