Commit graph

180 commits

Author SHA1 Message Date
yugui
1ca6da8d80 merges r25266 from trunk into ruby_1_9_1.
--
* compile.c (ADD_TRACE): fire coverage event in ensure clause.
  [ruby-dev:39303]

* iseq.h, iseq.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@26476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-30 12:45:14 +00:00
yugui
dd1e757adb merges r24761 and r24999 from trunk into ruby_1_9_1.
--
* compile.c (iseq_compile_each): op_asgn to aref should return rhs.
  [ruby-core:25387]
--
* compile.c (iseq_compile_each), parse.y (stmt, arg): arg_concat()
  on op_asgn was inversed.  [ruby-core:25629] [Bug #2050]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@25940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-27 02:54:02 +00:00
yugui
5beab8043a merges r24757 and r24758 from trunk into ruby_1_9_1.
--
* compile.c (iseq_compile_each): &&= and ||= should return rhs.
  [ruby-dev:39163] (#1996), [ruby-core:25143]
--
* compile.c (iseq_compile_each): &&= and ||= should return rhs.
  [ruby-dev:39163] (#1996), [ruby-core:25143]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@25589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-31 13:04:32 +00:00
yugui
2f3fa385db merges r24579 and r24581 from trunk into ruby_1_9_1.
--
* compile.c (NODE_RETURN): fire return event at explicit return.
  [ruby-dev:38701]
--
* test/ruby/test_settracefunc.rb (test_return, test_return2): add two
  tests for [ruby-dev:38701] and [ruby-core:24463].
--
* parse.y (reduce_nodes_gen): preserve NODE_FL_NEWLINE flag during
  node reducing.  [ruby-core:24463]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@25537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-28 14:15:24 +00:00
yugui
23cc3c2b87 merges r24323 from trunk into ruby_1_9_1.
--
* 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/branches/ruby_1_9_1@24451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-08 10:56:25 +00:00
yugui
b6a98140d5 merges r24243 from trunk into ruby_1_9_1.
--
* vm_core.h (struct rb_iseq_t): add a new field line_no.  This field
  represents line number from which the original code of the iseq
  starts.  [ruby-dev:38698]

* iseq.c, compile.c: ditto.

* parse.y: line number hack (for Proc#source_location) is no longer
  needed.

* test/ruby/test_settracefunc.rb: line number of set_trace_func is now
  compatible with 1.8's.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@24446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-08 10:52:38 +00:00
yugui
ba71368071 merges r23815 from trunk into ruby_1_9_1.
--
* compile.c (iseq_set_arguments, iseq_compile_each): internal
  arrays must be hidden.  [ruby-dev:38613]

* vm.c (Init_top_self): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-24 16:08:04 +00:00
yugui
68a2b3cf7f merges r23474 from trunk into ruby_1_9_1.
--
* compile.c (rb_parse_in_eval): returns true in true eval, not in
  main.  [ruby-dev:38382]

* parse.y (program): inherits dvars in eval or main.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-22 09:49:28 +00:00
yugui
efa92c86a5 merges r22662 from trunk into ruby_1_9_1.
--
* compile.c (cdhash_type, iseq_set_sequence): should not call
  methods of the argument of case, to keep the semantics of
  case/when.  [ruby-dev:38079]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@22749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-04 09:19:45 +00:00
yugui
4a3765a2cb merges r22363 from trunk into ruby_1_9_1.
* 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/branches/ruby_1_9_1@22536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 12:49:46 +00:00
yugui
c7782f91c8 merges r22259 from trunk into ruby_1_9_1.
* compile.c (hide_obj): OBJ_FREEZE() is not an expression.  a patch
  from nagachika <nagachika00 AT gmail.com> at [ruby-dev:37977].

* compile.c (insn_set_sc_state): fixed typoe.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@22533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 12:49:21 +00:00
yugui
f08b595a5b merges r22255 from trunk into ruby_1_9_1.
* compile.c (compile_array_, defined_expr, iseq_compile_each): hide
  and freeze internal literal objects, to prevent from modifying.
  [ruby-dev:37959]

* iseq.c (insn_operand_intern): copy internal literal objects.

* insns.def (putstring, duparray): ditto.

* string.c (rb_str_replace): exported.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@22532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 12:49:14 +00:00
yugui
3c000eab7c merges r21659 from trunk into ruby_1_9_1.
* vm.c: add a prefix "rb_" to exposed functions
  vm_get_ruby_level_next_cfp(), rb_vm_make_env_object(),
  vm_stack_to_heap(), vm_make_proc(), vm_invoke_proc(),
  vm_get_sourceline(), vm_cref(), vm_localjump_error(),
  vm_make_jump_tag_but_local_jump(), vm_jump_tag_but_local_jump().
  This changes may affect only core because most of renamed functions
  require a pointer of not-exposed struct such as rb_thread_t or NODE.
  In short, they are core functions.
* cont.c, eval.c, eval_intern.h, load.c, proc.c, thread.c,
  vm_core.h, vm_dump.c, vm_eval.c, vm_exec.c, vm_insnhelper.c:
  ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-28 11:09:42 +00:00
yugui
3929773eef merges r21653 from trunk into ruby_1_9_1.
* iseq.c:
  rename ruby_iseq_disasm_insn() -> rb_iseq_disasm_insn().
  rename ruby_iseq_disasm() -> rb_iseq_disasm().
* compile.c:
  rename ruby_iseq_compile() -> rb_iseq_compile_node().
  rename ruby_iseq_translate_threaded_code() ->
  rb_iseq_translate_threaded_code().
  rename ruby_insns_name_array() -> rb_insns_name_array().
  rename ruby_iseq_build_from_ary() -> rb_iseq_build_from_ary().
* iseq.c, compile.c: remove ruby_insn_make_insn_table() and make
  static function insn_make_insn_table().
* iseq.h, ruby.c, vm.c, vm_core.h, vm_eval.c, vm_dump.c,
  blockinlining.c: ditto.
  Rename strange "ruby_" prefix to "rb_" prefix.
  This changes may affect only core because renamed functions
  require a pointer of rb_iseq_t which is not exposed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-28 11:09:24 +00:00
yugui
1bf3fe1d60 merges r21571 from trunk into ruby_1_9_1.
* ruby.c (process_options): decrement parse_in_eval to recognize
  parsing main or normal eval script.
* compile.c (rb_parse_in_main): return 1 if parsing main script.
  (if parse_in_eval is negative value, it means main script)
* parse.y (yycompile0): check rb_parse_in_main() to accumulate
  script text.  Bug #848 [ruby-core:20450]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-15 16:33:06 +00:00
yugui
7e35c2e2d0 merges r21088 from trunk into ruby_1_(_1.
* iseq.h, iseq.c (rb_iseq_new_main): add a type ISEQ_TYPE_MAIN.
  [ruby-dev:37619]
* compile.c (rb_dvar_defined, ruby_iseq_compile): ditto.
* iseq.c (iseq_data_to_ary, iseq_load): ditto.
* compile.c (iseq_compile_each): fix to check ip->compile_data.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-28 09:40:46 +00:00
yugui
846ca98acf merges r21079 from trunk into ruby_1_9_1.
* 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/branches/ruby_1_9_1@21083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-27 02:16:28 +00:00
yugui
8bfc3df0bb merges r20970 from trunk into ruby_1_9_1.
* compile.c (iseq_peephole_optimize): fix typo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-25 09:56:04 +00:00
yugui
2e52bda3c8 merges r20593 from trunk into ruby_1_9_1.
* compile.c (iseq_compile_each), gc.c (assign_heap_slot),
  (gc_mark_children), parse.y (vtable_alloc, vtable_free, vtable_add),
  proc.c (proc_to_s), thread.c (terminate_i, rb_thread_terminate_all),
  (thread_start_func_2, blocking_region_begin, blocking_region_end),
  (rb_thread_kill), thread_pthread.c (native_thread_create),
  (ubf_pthread_cond_signal), vm.c (check_env, thread_free), vm_dump.c
  (vm_env_dump_raw, vm_stack_dump_each, vm_thread_dump_state),
  (vm_call0): use void pointer for %p.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-13 01:01:02 +00:00
yugui
377a658169 merges r20536 from trunk into ruby_1_9_1.
* compile.c (iseq_set_sequence): uses rb_compile_warning() for
  warning at compilation time.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-05 13:34:42 +00:00
yugui
51782c7f38 merges r20535 from trunk into ruby_1_9_1.
* compile.c (ruby_iseq_compile, ruby_iseq_translate_threaded_code),
  (ruby_insns_name_array, ruby_iseq_build_from_ary): prefixed with
  ruby_.

* iseq.c (ruby_iseq_load, ruby_insn_make_insn_table): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-05 13:34:34 +00:00
mame
01cdeb8da7 * compile.c (iseq_set_sequence): fix memory leak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-16 14:38:08 +00:00
nobu
c809aaa5e1 * compile.c (iseq_compile_each): fixed indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-12 01:18:49 +00:00
mame
f2aabd1802 * compile.c (iseq_set_sequence): check duplicated when clauses.
[ruby-dev:36616]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-28 13:15:34 +00:00
ko1
2e311f6bd5 * include/ruby/node.h, node.h: move node.h from include path.
This change stop to install node.h beacuase of saving ABI
  (node.h will be changed. Extensions should not depends on
  this file).
* blockinlining.c, class.c, compile.c, debug.h, enum.c,
  gc.c, iseq.c, parse.y, ruby.c, signal.c, variable.c,
  vm.c, vm_core.h, vm_dump.c: ditto.
* ext/ripper/depend: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 19:52:31 +00:00
ko1
7f7834abf7 * include/ruby/node.h, vm_core.h: move definition of
RUBY_VM_METHOD_NODE to node.h.
* class.c, common.mk: remove useless inclusion.
* compile.h, iseq.h, vm_core.h: rename compile.h to iseq.h.
  move some definitions from vm_core.h to iseq.h.
* compile.c, iseq.c, vm.c: ditto.
* eval.c, compile.c: move some functions for parser
  from eval.c to compile.c.
* eval_intern.h, vm_core.h: move va_init_list() macro to
  vm_core.h.
* iseq.c (rb_iseq_new_top, rb_iseq_first_lineno): added.
* load.c, ruby.c: use rb_iseq_new_top() instead of
  rb_iseq_new() with ISEQ_TYPE_TOP constant directly.
* proc.c: use rb_iseq_first_lineno() instead of accessing
  iseq structure.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 07:49:45 +00:00
matz
9839d737c2 * compile.c (defined_expr): default defined? should return
"expression" without evaluating the expression.  [ruby-dev:35967]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-25 14:04:09 +00:00
matz
cc3cbd2965 * compile.c (defined_expr): should handle NODE_{AND,OR} as
"expression".  [ruby-dev:35951]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-25 10:06:12 +00:00
nobu
74cd315a50 * compile.c (iseq_build_body): suppress a warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-23 07:01:57 +00:00
nobu
5f9c188d97 * include/ruby/ruby.h (rb_intern_const): tiny optimization.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-16 00:20:31 +00:00
nobu
0acca9a826 * compile.c (insn_data_to_s_detail), file.c (rb_stat_inspect),
iseq.c (ruby_iseq_disasm_insn, ruby_iseq_disasm),
  process.c (pst_message), re.c (match_inspect): use rb_str_catf.

* dir.c (dir_inspect), iseq.c (iseq_inspect, insn_operand_intern): use
  rb_sprintf.

* error.c (rb_name_error, rb_raise, rb_loaderror, rb_fatal): use
  rb_vsprintf.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-22 08:53:34 +00:00
nobu
16ab763b1f * compile.c (iseq_compile_each): NODE_POSTEXE should set each end
procs only once.  [ruby-dev:35596]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-20 13:50:14 +00:00
ko1
807fbd6940 * compile.c, vm.c, insns.def: call FrozenCore.set_postexe method
instead to use "postexe" insn.
* id.c, id.h: add a prepared id for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 12:19:00 +00:00
shyouhei
3e69e83a62 * include/ruby/ruby.h (enum ruby_special_consts): ISO C forbids
comma at end of enumerator list

 	* include/ruby/ruby.h (enum ruby_value_type): ditto.

	* eval_intern.h (enum): ditto.

	* vm_core.h (enum rb_thread_status): ditto.

	* parse.y (enum lex_state_e): ditto.

	* parse.y (enum string_type): ditto.

	* process.c (enum): ditto.

	* ruby.c (enum dump_flag_bits): ditto.

	* ruby.c (enum disable_flag_bits): ditto.

	* compile.c (iseq_link_element): ditto

	* debug.c (union): ditto.

	* cont.c (enum context_type): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 08:27:58 +00:00
ko1
eb33f91cb7 * compile.c, insns.def, vm.c, vm_core.h: remove some insns
(undef, alias, definemethod).
  Call RubyVM::FrozenCore's singleton method instead.
  Add "putiseq" and "putspecialobject" instructions.
* id.c, id.h: add ids for above.
* tool/parse.rb: "VM" no longer exists.  Use RubyVM instead.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-01 03:05:58 +00:00
mame
59e103794e * compile.c (iseq_build_from_ary): initialize arg_opts, a patch from
Adam Strzelecki <ono@java.pl> in [ruby-core:17220].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-23 15:23:12 +00:00
wanabe
266a84c904 * compile.c (iseq_build_from_ary): fix expression to obtain
iseq->local_size and iseq->local_table_size.  [ruby-dev:35205]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-23 15:12:29 +00:00
wanabe
62b6a462d7 * compile.c : treat []&&= in virtually the same way as []||=.
[ruby-dev:34679]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 13:49:16 +00:00
nobu
5a647a3f5f * include/ruby/ruby.h (CONST_ID): constant ID cache for non-gcc.
* *.c: no cache in init functions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 09:25:32 +00:00
nobu
075530a685 * suppress warnings with -Wwrite-string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-31 09:28:20 +00:00
mame
e0a264a9ef * compile.c (defined_expr): fix SEGV by defined?([1]).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-30 13:15:03 +00:00
mame
a93136879e * compile.c (iseq_compile): set local_table for
ISEQ_TYPE_DEFINED_GUARD.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-25 08:55:09 +00:00
mame
8742de6f10 * compile.c (iseq_build_body): remove side effect from
VM::InstructionSequence.load.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-25 08:52:57 +00:00
ko1
59c061235f * eval_method.c: renamed from vm_method.c. "vm_method.c" is included
by "vm.c".
* vm_eval.c: added.  Some codes are moved from "eval.c"
* common.mk: fix for above changes.
* compile.c: make a vm_eval(0)
* eval.c, eval_error.c, eval_intern.h, eval_jump.c, proc.c, vm.c,
  id.c, id.h, vm_core.h, vm_dump.c, vm_evalbody.c, vm_insnhelper.c,
  blockinlining.c: fix for above changes.  and do some refactoring.
  this changes improve rb_yield() performance.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-24 17:50:17 +00:00
mame
956dead480 * compile.c (iseq_set_exception_table, NODE_WHILE, NODE_NEXT): remove
special handling that decrements sp in CATCH_TYPE_NEXT for NODE_WHILE.

* vm.c (vm_eval_body), vm_insnhelper.c (vm_throw): remove unused code.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-24 06:29:48 +00:00
mame
846ea1727f * compile.c (get_destination_insn, get_next_insn, get_prev_insn):
peephole optimization should not ignore ISEQ_ELEMENT_ADJUST.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-22 14:45:54 +00:00
ko1
385f0e8af6 * vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling.
VM value stack frame of block contains cref information.
  (dfp[-1] points CREF)
* compile.c, eval_intern.h, eval_method.c, load.c, proc.c,
  vm_dump.h, vm_core.h: ditto.
* include/ruby/ruby.h, gc.c: remove T_VALUES because of above
  changes.
* bootstraptest/test_eval.rb, test_knownbug.rb: move solved test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-19 03:08:50 +00:00
ko1
5e4edb43a2 * insns.def: add a "putcbase" instruction.
* compile.c, insns.def: fix to use putcbase instruction for
  class search.  Qundef should not be used.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-14 02:31:28 +00:00
matz
b15fe02d19 * eval.c (is_defined): add NODE_OP_ASGN_{OR,AND}. "defined?(a||=1)"
should not operate assignment.  [ruby-dev:34645]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-12 05:05:50 +00:00
matz
837c76bd7b * compile.c (iseq_compile_each): should call compile_cpath() for
modules as well.  [ruby-dev:34585]

* insns.def (defineclass): add undef handling.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-05 15:01:42 +00:00