mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
a73894337a
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@12195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
/*-*-c-*-*/
|
|
/**********************************************************************
|
|
|
|
vm_opts.h - VM optimize option
|
|
|
|
$Author$
|
|
$Date$
|
|
|
|
Copyright (C) 2004-2006 Koichi Sasada
|
|
|
|
**********************************************************************/
|
|
|
|
|
|
#ifndef VM_OPTS_H_INCLUDED
|
|
#define VM_OPTS_H_INCLUDED
|
|
|
|
/* C compiler depend */
|
|
#define OPT_DIRECT_THREADED_CODE 1
|
|
#define OPT_CALL_THREADED_CODE 0
|
|
|
|
/* architecture independent */
|
|
|
|
/* VM running option */
|
|
#define OPT_CHECKED_RUN 1
|
|
#define OPT_TRACE_INSTRUCTION 1
|
|
|
|
/* at compile */
|
|
#define OPT_INLINE_CONST_CACHE 1
|
|
#define OPT_PEEPHOLE_OPTIMIZATION 1
|
|
#define OPT_SPECIALISED_INSTRUCTION 1
|
|
|
|
/* at runtime */
|
|
#define OPT_INLINE_METHOD_CACHE 1
|
|
#define OPT_BLOCKINLINING 0
|
|
|
|
/* architecture independent, affects generated code */
|
|
#define OPT_OPERANDS_UNIFICATION 0
|
|
#define OPT_INSTRUCTIONS_UNIFICATION 0
|
|
|
|
/* code generation parameter */
|
|
#define OPT_UNIFY_ALL_COMBINATION 0
|
|
#define OPT_STACK_CACHING 0
|
|
|
|
/* misc */
|
|
#define SUPPORT_JOKE 0
|
|
|
|
#endif /* VM_OPTS_H_INCLUDED */
|
|
|