summaryrefslogtreecommitdiffstats
path: root/eval_intern.h
Commit message (Collapse)AuthorAgeFilesLines
* * eval_method.c: renamed from vm_method.c. "vm_method.c" is includedko12008-05-241-16/+4
| | | | | | | | | | | | | | | 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
* * eval.c, eval_intern.h, include/ruby/intern.h, include/ruby/ruby.h,ko12008-05-221-10/+8
| | | | | | | | 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
* * vm.c (vm_get_ruby_level_cfp): moved from eval_intern.h.nobu2008-05-221-14/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h, vm_core.h, include/ruby/intern.h, include/ruby/ruby.h,usa2008-05-221-7/+9
| | | | | | | | vm.c: need to add const to prototypes, of course. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling.ko12008-05-191-13/+4
| | | | | | | | | | | | | | 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
* * eval_intern.h (enum ruby_tag_type): enum for debug.nobu2008-05-081-9/+20
| | | | | | | * debug.c (dummy_gdb_enums.value_type): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h: speficy the values of the enumeration constantsmame2008-04-301-2/+2
| | | | | | | explicitly. [ruby-dev:34489] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (RUBY_SETJMP, RUBY_LONGJMP, RUBY_JMP_BUF): prefersnobu2008-03-311-6/+4
| | | | | | | | | | | | | | | __builtin_setjmp, _setjmp over setjmp and sigsetjmp. [ruby-core:16023], [ruby-core:16086] * configure.in (--with-setjmp-type): new option to override the default rule in the above. * eval_intern.h (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp), vm_core.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and RUBY_JMP_BUF. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h (TH_EXEC_TAG): need not to FLUSH_REGISTER_WINDOWS.matz2008-03-191-2/+1
| | | | | | [ruby-core:15871], [ruby-dev:34088] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h (rb_thread_raised_set): use generic flags.nobu2008-03-121-8/+9
| | | | | | | | | | | * eval.c (rb_longjmp): clear all raised flags. * eval.c (stack_check): leave clearing flag to rb_longjmp. * gc.c (rb_memerror): use thread raised flag instead of static flag. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (stack_check): made flag per threads.nobu2008-02-281-2/+10
| | | | | | | * thread.c (rb_thread_set_raised, rb_thread_reset_raised): prefixed. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c, gc.c (setjmp): sigsetjmp is a macro on cygwin.nobu2008-01-211-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in (sigsetjmp): check if available.nobu2008-01-191-1/+1
| | | | | | | * eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h, insnhelper.h, thread_pthread.h, vm_core.h, vm_opts.h:nobu2008-01-181-3/+3
| | | | | | | | | | | | prefixed include guards with RUBY. * id.h: added include guard. * regenc.h, regint.h, regparse.h: prefixed include guards with ONIGURUMA. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * README.EXT.ja, dir.c, eval.c, eval_intern.h, lex.c.src,matz2007-12-251-6/+6
| | | | | | | | lex.c.blt, keywords, load.c, thread.c: more ANSI'ize. a patch from Tadashi Saito <shiba AT mail2.accsnet.ne.jp> in [ruby-dev:32725] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c (rb_obj_public_method): Object#public_method to retrievematz2007-12-171-1/+1
| | | | | | | | | | | | | | | | public method object. * proc.c (rb_mod_public_instance_method): Module#public_instance_method to retrieve public instance method from class / module. * proc.c (mnew): visibility check added. * eval_error.ci (rb_print_undef): add rb_ prefix. * eval_error.ci (rb_print_undef): add visibility in the error message. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h (CHECK_STACK_OVERFLOW): reserve frame size.ko12007-12-091-1/+1
| | | | | | | | [ruby-dev:32485] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (eval): fix to check stack overflow.ko12007-09-261-0/+6
| | | | | | | | * eval_intern.h, vm.h: move CHECK_STACK_OVERFLOW() macro. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.h, eval_intern.h: move some macros to eval_intern.h.ko12007-09-141-2/+11
| | | | | | | | | * eval_jump.ci (rb_f_throw): fix to use NEW_THROW_OBJECT(). * eval.c (rb_f_loop): remove additional macro. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c (Init_Proc), eval.c (Init_eval), eval_intern.h: moveko12007-08-141-2/+0
| | | | | | | | | | | | init place of exception_error. * inits.c: ditto. * eval.c (Init_eval): set exception_error#throwed_state as TAG_FATAL. [ruby-dev:31407] * bootstraptest/test_exception.rb: add a test for above. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * blockinlining.c: remove "yarv" prefix.ko12007-07-121-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * array.c, numeric.c: ditto. * insnhelper.ci, insns.def, vm_evalbody.ci: ditto. * yarvcore.c: removed. * yarvcore.h: renamed to core.h. * cont.c, debug.c, error.c, process.c, signal.c : ditto. * ext/probeprofiler/probeprofiler.c: ditto. * id.c, id.h: added. * inits.c: ditto. * compile.c: rename internal functions. * compile.h: fix debug flag. * eval.c, object.c, vm.c: remove ruby_top_self. use rb_vm_top_self() instead. * eval_intern.h, eval_load: ditto. * gc.c: rename yarv_machine_stack_mark() to rb_gc_mark_machine_stack(). * insnhelper.h: remove unused macros. * iseq.c: add iseq_compile() to create iseq object from source string. * proc.c: rename a internal function. * template/insns.inc.tmpl: remove YARV prefix. * thread.c: * vm.c (rb_iseq_eval): added. * vm.c: move some functions from yarvcore.c. * vm_dump.c: fix to remove compiler warning. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c: rename iseq_translate_direct_threaded_code()ko12007-07-021-32/+1
| | | | | | | | | | | | | to iseq_translate_threaded_code(). * eval_intern.h, yarvcore.h: mv EXEC_EVENT_HOOK() and exec_event_hooks() to yarvcore.h. * insnhelper.ci, vm.c: mv yarv_finish_insn_seq to vm.c. * insns.def (opt_call_c_function): fix to use RESTORE_REGS(). * iseq.c (rb_iseq_build_for_ruby2cext): fix to allocate iseq. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h, yarvcore.h: move declaration of sysstack_errorko12007-07-011-1/+0
| | | | | | | | | | | to yarvcore.h. * iseq.c: fix symbol name (:toplevel -> :top). * lib/vm/instruction.rb, template/vm.inc.tmpl: replacable current file name. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.h: add RUBY_ prefix to debug macros.ko12007-06-251-0/+2
| | | | | | | | | | | | * cont.c, proc.c, yarvcore.c, * gc.c: define ruby_gc_debug_indent variable to debug mark/free. * vm.c, insnhelper.ci: rename some functions to vm_* or rb_vm_*. move some functions, definitions, declarations to suitable files. * eval.c, yarvcore.h, eval_error.ci, insnhelper.ci: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c: remove ruby_current_node and change eval() prototype.ko12007-06-241-3/+0
| | | | | | | | | | | fix to use rb_sourcefile/line() instead of ruby_sourcefile/line. * error.c, eval_error.ci, eval_load.c, eval_safe.ci, gc.c, include/ruby/intern.h, parse.y, process.c, ruby.c: ditto. * vm.c: fix spaces. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c: some refactoring.ko12007-06-241-12/+12
| | | | | | | | | | | | | | * rename th_* to vm_*. * remove unused variables functions. * add prototypes. * blockinlining.c, compile.c, cont.c, eval.c, eval_intern.h, eval_jump.h, eval_load.c, inits.c, insns.def, iseq.c, parse.y, proc.c, process.c, signal.c, thread.c, vm.c, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_load.c (rb_require_safe, ruby_init_ext): load with ruby levelnobu2007-06-181-0/+1
| | | | | | | | | | cfp. [ruby-core:10779] * eval_intern.h, vm.c (rb_vm_call_cfunc): new function to call a function with ruby level cfp. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby: moved public headers.nobu2007-06-101-5/+5
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h, eval.c (ruby_init): remove POP_TAG_INIT().ko12007-06-061-1/+0
| | | | | | | | * cont.c (rb_fiber_start): remove zero-clearing tag. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * cont.c (rb_fiber_start): clear th->tag and check error to fixko12007-06-051-1/+4
| | | | | | | | | | [ruby-dev:30888] and [ruby-dev:30889]. * eval_intern.h: fix rb_fiber_start() prototype. * test/ruby/test_fiber.rb: add tests for above. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * cont.c (cont_capture): store all local variables in heapko12007-05-301-7/+2
| | | | | | | | | | | ([ruby-dev:30832]). * vm.c (th_stack_to_heap): added. * test/ruby/test_continuation.rb: add a test for above. * eval_intern.h (th_get_ruby_level_cfp): fix to clean code. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * cont.c: support Fiber. Check test/ruby/test_fiber.rb for detail.ko12007-05-271-0/+8
| | | | | | | | | | | | | Fiber is known as "Micro Thread", "Coroutine", and other terms. At this time, only Fiber#pass is supported to change context. I want to know more suitable method name/API for Fiber (... do you know more suitable class name instead of Fiber?) as "suspend/resume", "call", "yield", "start/kick/stop/restart", .... * eval.c, eval_intern.h, thread.c, yarvcore.c, yarvcore.h: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * yarvcore.h: remove rb_control_frame_t#callee_id.ko12007-04-251-8/+12
| | | | | | | | | | | | | | * vm_macro.def: ditto. * eval_intern.h (exec_event_hooks): fix to check event flags * eval_intern.h (EXEC_EVENT_HOOK): fix to re-check event flags. * ext/probeprofiler : added. this profiler is sampling based profiler. * vm.c: add rb_thread_current_status() API for probeprofiler. * thread.c (rb_thread_execute_interrupts): add comments. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h (PUSH_TAG): no argument now.nobu2007-04-251-15/+1
| | | | | | | | * eval.c, eval_error.h, eval_jump.h, eval_load.c, proc.c, thread.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h: add prototypes of rb_sourceline() andko12007-04-201-0/+3
| | | | | | | | rb_sourcefile(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c, node.h, thread.c, yarvcore.[ch], eval_intern.h:ko12007-04-191-0/+26
| | | | | | | | | | | | | | | | | support set_trace_func (incomplete. id and klass don't be passed). And support Thread#set_trace_func which hook only specified thread and Thread#add_trace_func which add new trace func instead of replace old one. C level API was modified. See thread.c (logic) and yarvcore.h (data structures). * vm.c, vm_macro.def: add hook points. * compile.c, insns.def: fix "trace" instruction. * iseq.c, vm_macro.h: add compile option "trace_instruction". * test/ruby/test_settracefunc.rb: hook "c-return" of set_trace_func. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c: fix to use rb_status_line_set/get/clear().ko12007-02-081-1/+1
| | | | | | | | * eval_intern.h: fix line break. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * blockinlining.c, error.c, eval.c, eval_error.h, eval_intern.h,ko12007-02-081-27/+10
| | | | | | | | | | | | | | | | eval_jump.h, eval_load.c, eval_safe.h, gc.c, proc.c, signal.c, thread.c, thread_pthread.ci, thread_win32.ci, vm.c, vm.h, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h: fix typo (rb_thead_t -> rb_thread_t). * eval_intern.h: remove unused definitions. * common.mk: fix around vm_opts.h path and remove harmful argument passed to insns2vm.rb. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h: remove UNSUPPORTED() macro.ko12007-02-071-9/+0
| | | | | | | | | * thread.c: fix to define Continuation methods (they only do rb_notimplement()). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h, yarvcore.h: remove unused macro definition.ko12007-02-071-62/+0
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * this commit is a result of refactoring. only renaming functions,ko12007-02-071-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | moving definitions place, add/remove prototypes, deleting unused variables and removing yarv.h. This commit doesn't change any behavior of ruby/vm. * yarv.h, common.mk: remove yarv.h (contents are moved to yarvcore.h). * error.c, eval_intern.h: include yarvcore.h instead yarv.h * rename some functions: * debug.[ch]: debug_*() -> ruby_debug_*() * iseq.c: iseq_*() -> rb_iseq_*(), ruby_iseq_disasm() * iseq.c: node_name() -> ruby_node_name() * vm.c: yarv_check_redefinition_opt_method() -> rb_vm_check_redefinition_opt_method() * some refactoring with checking -Wall. * array.c: remove rb_ary_ptr() (unused) and remove unused local variables. * object.c: add a prototype of rb_mod_module_exec(). * eval_intern.h (ruby_cref): set it inline. * eval_load.c (rb_load), yarvcore.c: yarv_load() -> rb_load_internal(). * parse.y: add a prototype of rb_parse_in_eval() (in eval.c). * process.c: add a prototype of rb_thread_stop_timer_thread() (in thread.c). * thread.c: remove raw_gets() function (unused) and fix some format mismatch (format mismatchs have remained yet. this is todo). * thread.c (rb_thread_wait_fd_rw): fix typo on label name. * thread_pthread.ci: comment out codes with USE_THREAD_CACHE. * vm.c (rb_svar, rb_backref_get, rb_backref_get, rb_lastline_get, rb_lastline_set) : moved from yarvcore.c. * vm.c (yarv_init_redefined_flag): add a prototype and rename yarv_opt_method_table to vm_opt_method_table. * vm.c (rb_thread_eval): moved from yarvcore.c. * yarvcore.c: remove unused global variables and fix to use nsdr(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * blockinlining.c, compile.c, compile.h, error.c, eval.c,ko12007-02-061-19/+19
| | | | | | | | | | | | | | | | | | | | | | eval_intern.h, eval_jump.h, eval_load.c, eval_method.h, eval_safe.h, gc.c, insnhelper.h, insns.def, iseq.c, proc.c, process.c, signal.c, thread.c, thread_pthread.ci, thread_win32.ci, vm.c, vm.h, vm_dump.c, vm_evalbody.ci, vm_macro.def, yarv.h, yarvcore.h, yarvcore.c: change type and macro names: * yarv_*_t -> rb_*_t * yarv_*_struct -> rb_*_struct * yarv_tag -> rb_vm_tag * YARV_* -> RUBY_VM_* * proc.c, vm.c: move functions about env object creation from proc.c to vm.c. * proc.c, yarvcore.c: fix rb_cVM initialization place. * inits.c: change Init_ISeq() order (after Init_VM). * ruby.h, proc.c: change declaration place of rb_cEnv from proc.c to ruby.c. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Merge YARVko12006-12-311-0/+328
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e