summaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
Commit message (Collapse)AuthorAgeFilesLines
* * common.mk: clean upko12008-09-231-2/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | - remove blockinlining.$(OBJEXT) to built - make ENCODING_H_INCLDUES variable (include/ruby/encoding.h) - make VM_CORE_H_INCLUDES variable (vm_core.h) - simplify rules. - make depends rule to output depend status using gcc -MM. * include/ruby/mvm.h, include/ruby/vm.h: rename mvm.h to vm.h. * include/ruby.h: ditto. * load.c: add inclusion explicitly. * enumerator.c, object.c, parse.y, thread.c, vm_dump.c: remove useless inclusion. * eval_intern.h: cleanup inclusion. * vm_core.h: rb_thread_t should be defined in this file. * vm_evalbody.c, vm_exec.c: rename vm_evalbody.c to vm_exec.c. * vm.h, vm_exec.h: rename vm.h to vm_exec.h. * insnhelper.h, vm_insnhelper.h: rename insnhelper.h to vm_insnhelper.h. * vm.c, vm_insnhelper.c, vm_insnhelper.h: - rename vm_eval() to vm_exec_core(). - rename vm_eval_body() to vm_exec(). - cleanup include order. * vm_method.c: fix comment. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_method_missing): C99.usa2008-09-031-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_method_missing): copy arguments to allocatedmame2008-09-021-2/+3
| | | | | | | memory from machine stack. [ruby-dev:36064] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_call_method): copy arguments to allocatedko12008-08-291-2/+3
| | | | | | | | | memory from machine stack. [ruby-dev:36028] * KNOWNBUGS.rb, bootstraptest/test_method.rb: move fixed test. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_yield_setup_args): object with to_ary shouldmatz2008-08-281-2/+2
| | | | | | | behave like array. a patch from Yusuke Endoh <mame at tsg.ne.jp> in [ruby-dev:35988]. [ruby-dev:35977] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c (proc_new): use the given class.nobu2008-08-201-2/+2
| | | | | | | * vm.c (vm_make_proc): added an argument for the class. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (caller_setup_args): should ensure if the valuematz2008-08-131-1/+1
| | | | | | from to_proc is a real Proc. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c, vm_insnhelper.c (vm_define_method): moveko12008-08-121-40/+0
| | | | | | | | function place. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (opt_eq_func): large function to make inline.nobu2008-08-081-1/+5
| | | | | | | * bcc32/Makefile.sub (config.h): cannot compile a big inline function. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_throw): fix "return" process from "lambda".ko12008-06-191-16/+18
| | | | | | | | | * bootstraptest/test_proc.rb: add a test. * bootstraptest/pending.rb: add a pending bug. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c, vm_insnhelper.c: fix escape process with "braek" and "return"ko12008-06-171-12/+16
| | | | | | | | | syntax in "lambda". [ ruby-Bugs-19304 ], [ruby-core:17164] * KNOWNBUGS.rb, bootstraptest/test_proc.rb: add/move solved test. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c, eval_intern.h (PASS_PASSED_BLOCK):ko12008-06-101-28/+16
| | | | | | | | | | | | | | | set a VM_FRAME_FLAG_PASSED flag to skip this frame when searching ruby-level-cfp. * eval.c, eval_intern.h, proc.c: fix to check cfp. if there is no valid ruby-level-cfp, cause RuntimeError exception. [ruby-dev:34128] * vm_core.h, vm_evalbody.c, vm.c, vm_dump.c, vm_insnhelper.c, insns.def: rename FRAME_MAGIC_* to VM_FRAME_MAGIC_*. * KNOWNBUGS.rb, bootstraptest/test*.rb: move solved bugs. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/ruby/trunk@16524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * insns.def, vm_insnhelper.c: specify "const".ko12008-05-211-81/+96
| | | | git-svn-id: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/ruby/trunk@15894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c: math.h for isnan.nobu2008-01-171-0/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/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: http://svn.ruby-lang.org/repos/ruby/trunk@14364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e