mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* include/ruby/ruby.h: added some declarations for event hooks.
* lib/profile.rb: set VM::InstructionSequence.compile_option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fd0ab68415
commit
731aa0d0a8
4 changed files with 40 additions and 23 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Fri Nov 16 16:26:57 2007 Shugo Maeda <shugo@ruby-lang.org>
|
||||||
|
|
||||||
|
* include/ruby/ruby.h: added some declarations for event hooks.
|
||||||
|
|
||||||
|
* lib/profile.rb: set VM::InstructionSequence.compile_option.
|
||||||
|
|
||||||
Fri Nov 16 11:16:41 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Fri Nov 16 11:16:41 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* lib/yaml/rubytypes.rb (String#is_binary_data?): use Integer#fdiv.
|
* lib/yaml/rubytypes.rb (String#is_binary_data?): use Integer#fdiv.
|
||||||
|
|
|
@ -940,6 +940,36 @@ void ruby_sysinit(int *, char ***);
|
||||||
#define HAVE_NATIVETHREAD
|
#define HAVE_NATIVETHREAD
|
||||||
int is_ruby_native_thread(void);
|
int is_ruby_native_thread(void);
|
||||||
|
|
||||||
|
#define RUBY_EVENT_NONE 0x00
|
||||||
|
#define RUBY_EVENT_LINE 0x01
|
||||||
|
#define RUBY_EVENT_CLASS 0x02
|
||||||
|
#define RUBY_EVENT_END 0x04
|
||||||
|
#define RUBY_EVENT_CALL 0x08
|
||||||
|
#define RUBY_EVENT_RETURN 0x10
|
||||||
|
#define RUBY_EVENT_C_CALL 0x20
|
||||||
|
#define RUBY_EVENT_C_RETURN 0x40
|
||||||
|
#define RUBY_EVENT_RAISE 0x80
|
||||||
|
#define RUBY_EVENT_ALL 0xff
|
||||||
|
#define RUBY_EVENT_VM 0x100
|
||||||
|
#define RUBY_EVENT_SWITCH 0x200
|
||||||
|
|
||||||
|
typedef unsigned int rb_event_flag_t;
|
||||||
|
typedef void (*rb_event_hook_func_t)(rb_event_flag_t, VALUE data, VALUE, ID, VALUE klass);
|
||||||
|
|
||||||
|
typedef struct rb_event_hook_struct {
|
||||||
|
rb_event_flag_t flag;
|
||||||
|
rb_event_hook_func_t func;
|
||||||
|
VALUE data;
|
||||||
|
struct rb_event_hook_struct *next;
|
||||||
|
} rb_event_hook_t;
|
||||||
|
|
||||||
|
void rb_thread_add_event_hook(rb_thread_t *th, rb_event_hook_func_t func,
|
||||||
|
rb_event_flag_t events, VALUE data);
|
||||||
|
void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events,
|
||||||
|
VALUE data);
|
||||||
|
int rb_thread_remove_event_hook(rb_thread_t *th, rb_event_hook_func_t func);
|
||||||
|
int rb_remove_event_hook(rb_event_hook_func_t func);
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
#if 0
|
#if 0
|
||||||
{ /* satisfy cc-mode */
|
{ /* satisfy cc-mode */
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
require 'profiler'
|
require 'profiler'
|
||||||
|
|
||||||
|
VM::InstructionSequence.compile_option = {
|
||||||
|
:trace_instruction => true,
|
||||||
|
:specialized_instruction => false
|
||||||
|
}
|
||||||
END {
|
END {
|
||||||
Profiler__::print_profile(STDERR)
|
Profiler__::print_profile(STDERR)
|
||||||
}
|
}
|
||||||
|
|
23
vm_core.h
23
vm_core.h
|
@ -275,29 +275,6 @@ struct rb_iseq_struct {
|
||||||
|
|
||||||
typedef struct rb_iseq_struct rb_iseq_t;
|
typedef struct rb_iseq_struct rb_iseq_t;
|
||||||
|
|
||||||
#define RUBY_EVENT_NONE 0x00
|
|
||||||
#define RUBY_EVENT_LINE 0x01
|
|
||||||
#define RUBY_EVENT_CLASS 0x02
|
|
||||||
#define RUBY_EVENT_END 0x04
|
|
||||||
#define RUBY_EVENT_CALL 0x08
|
|
||||||
#define RUBY_EVENT_RETURN 0x10
|
|
||||||
#define RUBY_EVENT_C_CALL 0x20
|
|
||||||
#define RUBY_EVENT_C_RETURN 0x40
|
|
||||||
#define RUBY_EVENT_RAISE 0x80
|
|
||||||
#define RUBY_EVENT_ALL 0xff
|
|
||||||
#define RUBY_EVENT_VM 0x100
|
|
||||||
#define RUBY_EVENT_SWITCH 0x200
|
|
||||||
|
|
||||||
typedef unsigned int rb_event_flag_t;
|
|
||||||
typedef void (*rb_event_hook_func_t)(rb_event_flag_t, VALUE data, VALUE, ID, VALUE klass);
|
|
||||||
|
|
||||||
typedef struct rb_event_hook_struct {
|
|
||||||
rb_event_flag_t flag;
|
|
||||||
rb_event_hook_func_t func;
|
|
||||||
VALUE data;
|
|
||||||
struct rb_event_hook_struct *next;
|
|
||||||
} rb_event_hook_t;
|
|
||||||
|
|
||||||
#define GetVMPtr(obj, ptr) \
|
#define GetVMPtr(obj, ptr) \
|
||||||
GetCoreDataFromValue(obj, rb_vm_t, ptr)
|
GetCoreDataFromValue(obj, rb_vm_t, ptr)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue