aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
Commit message (Collapse)AuthorAgeFilesLines
* * include/ruby/intern.h, proc.c: revert rb_proc_call() andko12008-06-101-3/+9
| | | | | | | | | | create rb_proc_call_with_block() instaed. * include/ruby/ruby.h, eval_jump.c, thread.c, vm_insnhelper.c: rb_blockptr should not be exposed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h, vm_core.h: add a type rb_blockptr.mame2008-06-091-3/+4
| | | | | | | | | | | | | | | | | | | | | | * vm_insnhelper.c (vm_yield_with_cfunc): vm_yield_with_cfunc receives blockptr and passes it to iterating block. * proc.c (rb_proc_call), include/ruby/intern.h: rb_proc_call receives blockptr. "rb_proc_call(self, args, blockptr)" in C corresponds to "self.call(*args, &block)" in Ruby. * proc.c (proc_call): pass blockptr to block that is written in C. * proc.c (curry): receive blockptr and pass it to original proc. [ruby-core:15551] * vm.c (invoke_block_from_c): fix for change of vm_yield_with_cfunc. * thread.c (call_trace_proc), eval_jump.c (rb_call_end_proc): fix for change of rb_proc_call. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c, vm.c, proc.c : revert r17021. [ruby-dev:34997]wanabe2008-06-081-12/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method withwanabe2008-06-081-3/+12
| | | | | | | | | | block that both is written in C. [ruby-dev:34273] [ruby-core:15551] * proc.c (curry): use proc_call instead of rb_proc_call. [ruby-dev:34273] [ruby-core:15551] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_throw): regard break as return in lambda.wanabe2008-06-081-1/+2
| | | | | | [ruby-dev:34646] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_callee_setup_arg): check simple flag beforeko12008-06-061-80/+84
| | | | | | | | calling setup_arg function(). this change reduce function call. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_method.c: renamed from vm_method.c. "vm_method.c" is includedko12008-05-241-5/+5
| | | | | | | | | | | | | | | 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
* * compile.c (iseq_set_exception_table, NODE_WHILE, NODE_NEXT): removemame2008-05-241-6/+1
| | | | | | | | | 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
* * eval.c, eval_intern.h, include/ruby/intern.h, include/ruby/ruby.h,ko12008-05-221-56/+47
| | | | | | | | vm.c, vm_core.h, vm_insnhelper.c: remove pointless "const". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c, vm.c, vm_core.h, vm_insnhelper.c: specify "const".ko12008-05-221-1/+1
| | | | | | | | * vm_opts.h: add a OPT_TOKEN_THREADED_CODE macro. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def, vm_insnhelper.c: specify "const".ko12008-05-211-81/+96
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c, vm_insnhelper.c: fix cref in instance_evalko12008-05-191-34/+38
| | | | | | | | | | | and cvar_base search protocol. * bootstraptest/test_knownbug.rb, test_eval.rb: move soleved test and add new tests. * test/ruby/test_eval.rb: fix tests for spec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling.ko12008-05-191-62/+47
| | | | | | | | | | | | | | 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
* * compile.c (compile_cpath): use Qundef to denote cbase lookup.matz2008-05-051-1/+1
| | | | | | | | | | | * insns.def (defineclass): Qudef is passed for cbase. * insns.def (setconstant): ditto. * vm_insnhelper.c (vm_check_if_namespace): use rb_inspect() instead of rb_obj_as_string() for better description. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_get_ev_const): search from the base klass if itnobu2008-04-221-2/+2
| | | | | | | is given. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def (defineclass): check if cbase is a class or a module.nobu2008-04-031-8/+14
| | | | | | | [ruby-core:16118] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c: math.h for isnan.nobu2008-01-171-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_call_method): check argument number tonobu2008-01-171-27/+31
| | | | | | | attr_reader. [ruby-core:15120] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * $Date$ keyword removed to avoid inclusion of locale dependentakr2008-01-061-1/+0
| | | | | | | string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_callee_setup_arg): it is not inlinable becauseakr2008-01-051-1/+1
| | | | | | | alloca is used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * common.mk, *.ci: renamed to *.c.ko12007-12-201-0/+1455
* eval_laod.c: renamed to load.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e