akr
d5c8ad5359
* insns.def (toregexp): generate a regexp from strings instead of one
...
string.
* re.c (rb_reg_new_ary): defined for toregexp. it concatenates
strings after each string is preprocessed.
* compile.c (compile_dstr_fragments): split from compile_dstr.
(compile_dstr): call compile_dstr_fragments.
(compile_dregx): defined for dynamic regexp.
(iseq_compile_each): use compile_dregx for dynamic regexp.
[ruby-dev:33400]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-29 08:03:51 +00:00
ko1
51ea2cf4e4
* compile.c (iseq_compile_each): validate argument expr of "next"
...
statement.
* bootstraptest/test_syntax.rb: add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-26 08:44:43 +00:00
ko1
3b1c663ed9
* compile.c, compile.h: fix to calculate correct stack depth
...
at each instruction.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-26 08:27:00 +00:00
ko1
13b5b22ae6
* compile.c, compile.h: fix stack pointer issues.
...
calculate correct stack depth at compile time.
* insns.def (emptstack): remove it and add a new insn "adjuststack".
* bootstraptest/test_knownbug.rb: move/remove fixed test.
* bootstraptest/test_syntax.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-25 18:02:01 +00:00
nobu
893ee30978
* compile.c (iseq_build_from_ary), iseq.c (iseq_load): fix for format change.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-08 04:05:59 +00:00
akr
6cdef2dc7e
* $Date$ keyword removed to avoid inclusion of locale dependent
...
string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
ko1
633df8de16
* compile.c (iseq_compile_each): fix stack consistency error
...
(break is compiled to throw instead of jump insn).
these problems are reported by Yusuke ENDOH <mame AT tsg.ne.jp>
* bootstraptest/test_knownbug.rb, test_syntax.rb: move fixed test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-25 12:37:16 +00:00
ko1
1af43d329f
* compile.c (iseq_compile_each): fix stack consistency error.
...
a patch from Yusuke ENDOH <mame AT tsg.ne.jp> [ruby-dev:32720]
* bootstraptest/test_syntax.rb: add 2 tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-25 02:24:12 +00:00
ko1
95ca3f72a8
* compile.c (iseq_compile): clear local table if node == 0.
...
a patch from Yusuke ENDOH <mame AT tsg.ne.jp>
* vm.c: clear VM stack.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 20:27:10 +00:00
ko1
e885517639
* compile.c (iseq_compile_each): fix stack consistency bug.
...
a patch from Yusuke ENDOH <mame AT tsg.ne.jp>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 18:54:52 +00:00
ko1
105e00bdd7
* compile.c (iseq_compile_each): add a "pop" insn after break
...
to fix stack consistency error. [ruby-core:14385]
* bootstraptest/test_syntax.rb: add tests for above.
* bootstraptest/test_knownbug.rb: remove fixed bug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 17:41:29 +00:00
matz
fda0ef6f04
* id.c (Init_id): remove several unused symbols. [ruby-core:14362]
...
* compile.c (iseq_specialized_instruction): do not use
VM_CALL_SEND_BANG flag any longer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 17:05:38 +00:00
matz
6ca558d6ab
* proc.c (method_name): preserve Symbol's encoding.
...
* numeric.c (fix_id2name): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 16:38:44 +00:00
ko1
e613c7cf5f
* compile.c: remove "illegal".
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 03:27:31 +00:00
akr
4cf437519f
* regerror.c, string.c, io.c, lib/getoptlong.rb, lib/net/imap.rb,
...
compile.c, sprintf.c, parse.y, ext/win32ole/win32ole.c,
ext/tk/sample/demos-en/entry3.rb, ext/tk/lib/tcltk.rb,
ext/openssl/ossl_bn.c, numeric.c, vm.c,
benchmark/bm_so_meteor_contest.rb, bignum.c, ruby.c: don't "illegal"
for non law violation context.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 02:31:11 +00:00
ko1
f5e7602c33
* compile.c (iseq_compile_each/NODE_RETURN): fix stack consistency.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-20 00:46:12 +00:00
ko1
5485df3e10
* compile.c (iseq_compile_each): add pop after throw as return.
...
* bootstraptest/test_knownbug.rb, test_syntax.rb: move resolved test.
* vm_core.h, iseq.c, compile.h: add debug output code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 21:39:08 +00:00
ko1
10b933295a
* compile.c (iseq_compile_each): remove unused retry entry.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 19:58:58 +00:00
nobu
a927483326
* compile.c (iseq_compile_each): should handle upper level eval iseq
...
from break/next, and COMPILE_ERROR() breaks only one block.
[ruby-dev:31372]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 16:10:54 +00:00
ko1
860b40fd63
* compile.c (iseq_compile_each): remove "retry" in block.
...
("iter{retry}" cause syntax error)
Currently, "begin; ...; rescue; iter{retry}; end" cause
syntax error too.
* bootstraptest/test_jump.rb: ditto.
* lib/drb/invokemethod.rb: ditto.
* sample/drb/darrayc.rb: ditto.
* sample/test.rb: ditto.
* test/drb/drbtest.rb: ditto.
* test/ruby/test_iterator.rb: ditto.
* sample/test.rb: add a 'test' directory on the SYSTEM test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 08:46:49 +00:00
nobu
63fabd365a
* compile.c (iseq_compile_each): fix for segfault. [ruby-dev:31372]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-18 14:53:55 +00:00
ko1
cd84310864
* compile.c, insnhelper.ci, insns.def, object.c, vm.c, vm.h:
...
optimize !@, != method invocation.
* id.c, id.h: ditto.
* bootstraptest/test_syntax.rb: add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-18 12:07:51 +00:00
matz
9d8075b99c
* parse.y (expr): redefinable not (!) operator.
...
* parse.y (arg): ditto.
* object.c (rb_obj_not): new method "!".
* object.c (rb_obj_not_equal): new method "!=".
* object.c (rb_obj_not_match): new method "!~".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 16:39:49 +00:00
akr
0bb9c3e6d9
unused variables removed.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 09:24:52 +00:00
ko1
9c1e3d00d5
* compile.c (iseq_compile_each): fix typo.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-05 05:25:58 +00:00
ko1
0cdd3bced5
* compile.c (iseq_compile_each): "when *[],1" dumps core.
...
a patch from Yusuke ENDOH <mame AT tsg.ne.jp>. [ruby-dev:32350]
* bootstraptest/test_syntax.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-27 06:54:58 +00:00
ko1
1bed0ccca8
* compile.c (iseq_compile_each): "a[*b] += 1" dumps core.
...
a patch from Yusuke ENDOH <mame AT tsg.ne.jp>. [ruby-dev:32354]
* bootstraptest/test_syntax.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-27 06:45:01 +00:00
ko1
b0986a8f82
* compile.c, insns.def: change return value of "defined?"
...
for $&, $1, ... . If such variables are defined,
return "global-variable".
* test/ruby/test_defined.rb: add tests.
* bootstraptest/test_syntax.rb: fix a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-27 04:43:54 +00:00
ko1
329484693a
* insns.def, compile.c: fix to allow dsym for alias/undef.
...
[ruby-dev:32355]
* bootstraptest/test_method.rb: add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-27 01:02:30 +00:00
matz
050a10c607
* compile.c (defined_expr): defined(method(x)) dumped core. a
...
patch from Yusuke ENDOH <mame AT tsg.ne.jp>. [ruby-dev:32335]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-23 01:46:44 +00:00
nobu
126bd20141
* compile.c (iseq_compile_each): alias and undef accept dsyms as well
...
as literals. [ruby-dev:32308]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 17:44:09 +00:00
ko1
d907cbc81d
* blockinlining.c, compile.c, compile.h, debug.c, debug.h,
...
id.c, insnhelper.h, insns.def, thread.c, thread_pthread.ci,
thread_pthread.h, thread_win32.ci, thread_win32.h, vm.h,
vm_dump.c, vm_evalbody.ci, vm_opts.h: fix comments and
copyright year.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-13 22:13:04 +00:00
ko1
65cb92fca3
* compile.c (iseq_specialized_instruction): check argc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-13 06:24:06 +00:00
matz
1eee78b876
* eval.c (rb_f_send): allow send/__send__ to call methods of all
...
visibility again. we no longer provide __send, __send!.
* eval.c (rb_invoke_method): new method to honor private
visibility. if it's invoked in a function call style, it calls
private methods as well (previous 1.9 send behavior).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-04 20:36:20 +00:00
matz
ac835db6c8
* insnhelper.ci (vm_call_method): allow send! to call protected
...
methods as well. [ruby-core:12280]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-28 14:17:28 +00:00
nobu
73c8bfa648
* compile.c (iseq_compile_each): inline cache entries are overwritten
...
in iseq_build_body().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-13 06:42:05 +00:00
ko1
d866a42025
* id.h, id.c: remove idFuncall.
...
* compile.c (iseq_specialized_instruction): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 23:55:16 +00:00
ko1
b285d26a16
* compile.c (compile_massign_opt): fix to skip massign optimization
...
with global variables.
* bootstraptest/test_massign.rb: add some tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 15:19:00 +00:00
ko1
ac150ad226
* compile.c: optimize simple massign.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-23 11:32:21 +00:00
nobu
7912fdf599
* compile.c (compile_massign), insnhelper.ci (vm_throw): not use C99
...
comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-23 07:59:42 +00:00
ko1
e39eb9dab5
* compile.c, insns.def, parse.y: fix massign order. This change
...
causes performance problem. Try vm1_swap benchmark.
[ruby-dev:31522]
* insns.def, insnhelper.ci: move process body of expandarray insn to
vm_expandarray().
* bootstraptest/test_knownbug.rb, bootstraptest/test_massign.rb:
move a solved test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-23 07:10:56 +00:00
nobu
aa071a3b26
* compile.c (make_masgn_lhs, iseq_compile_each): fixed indent.
...
* compile.c (iseq_translate_threaded_code),
vm_evalbody.ci (get_insns_address_table),
template/vmtc.inc.tmpl (insns_address_table): constified.
* vm_evalbody.ci (vm_eval),
template/insns_info.inc.tmpl (insn_stack_increase, insn_ret_num):
suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-23 06:48:28 +00:00
ko1
0a02ad5e2e
* compile.c (iseq_compile_each/NODE_RESBODY): fix to add
...
additional nop to prevent tailcall optimization.
* vm_opts.h: clean up comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-19 04:16:13 +00:00
ko1
0c031468fe
* compile.c (iseq_compile_each): fix to allow self.x=
...
if x= is private.
* bootstraptest/test_method.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 05:07:07 +00:00
ko1
4d3a58bc69
* compile.c (iseq_set_arguments), insnhelper.ci
...
(vm_callee_setup_arg, vm_yield_setup_args):
* bootstraptest/test_block.rb: add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 02:48:13 +00:00
ko1
2c5463fe99
* compile.c (iseq_compile_each): massign should return rvalue(s).
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-17 13:48:39 +00:00
ko1
04176dc21f
* compile.c (iseq_compile_each): fix thorw insn option of next.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 18:12:02 +00:00
ko1
fc466622fd
* compile.c (iseq_set_arguments), insnhelper.ci
...
(vm_callee_setup_arg, vm_yield_setup_args): fix
block parameter problems. [ruby-dev:31437], [ruby-dev:31440]
* bootstraptest/test_block.rb: add a test of [ruby-dev:31440].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 16:29:11 +00:00
ko1
571f22f5fe
* compile.c (iseq_compile_each): fix next/redo stack consistency.
...
[ruby-dev:31373]
* bootstraptest/test_syntax.rb: add tests for above.
* sample/test.rb: fix to use __FILE__ instead of $0 to know basedir.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 13:12:24 +00:00
ko1
161b2e264f
* compile.c (iseq_peephole_optimize): fix peephole optimization
...
bug. [ruby-dev:31360]
* bootstraptest/test_syntax.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-12 19:37:16 +00:00