Do not lower primitives to "void*" to get better compiler checking
parent
034dcc9c3b
commit
1b0db9623b
|
@ -3,157 +3,157 @@
|
|||
namespace factor
|
||||
{
|
||||
|
||||
void *primitives[] = {
|
||||
(void *)primitive_bignum_to_fixnum,
|
||||
(void *)primitive_float_to_fixnum,
|
||||
(void *)primitive_fixnum_to_bignum,
|
||||
(void *)primitive_float_to_bignum,
|
||||
(void *)primitive_fixnum_to_float,
|
||||
(void *)primitive_bignum_to_float,
|
||||
(void *)primitive_str_to_float,
|
||||
(void *)primitive_float_to_str,
|
||||
(void *)primitive_float_bits,
|
||||
(void *)primitive_double_bits,
|
||||
(void *)primitive_bits_float,
|
||||
(void *)primitive_bits_double,
|
||||
(void *)primitive_fixnum_add,
|
||||
(void *)primitive_fixnum_subtract,
|
||||
(void *)primitive_fixnum_multiply,
|
||||
(void *)primitive_fixnum_divint,
|
||||
(void *)primitive_fixnum_divmod,
|
||||
(void *)primitive_fixnum_shift,
|
||||
(void *)primitive_bignum_eq,
|
||||
(void *)primitive_bignum_add,
|
||||
(void *)primitive_bignum_subtract,
|
||||
(void *)primitive_bignum_multiply,
|
||||
(void *)primitive_bignum_divint,
|
||||
(void *)primitive_bignum_mod,
|
||||
(void *)primitive_bignum_divmod,
|
||||
(void *)primitive_bignum_and,
|
||||
(void *)primitive_bignum_or,
|
||||
(void *)primitive_bignum_xor,
|
||||
(void *)primitive_bignum_not,
|
||||
(void *)primitive_bignum_shift,
|
||||
(void *)primitive_bignum_less,
|
||||
(void *)primitive_bignum_lesseq,
|
||||
(void *)primitive_bignum_greater,
|
||||
(void *)primitive_bignum_greatereq,
|
||||
(void *)primitive_bignum_bitp,
|
||||
(void *)primitive_bignum_log2,
|
||||
(void *)primitive_byte_array_to_bignum,
|
||||
(void *)primitive_float_eq,
|
||||
(void *)primitive_float_add,
|
||||
(void *)primitive_float_subtract,
|
||||
(void *)primitive_float_multiply,
|
||||
(void *)primitive_float_divfloat,
|
||||
(void *)primitive_float_mod,
|
||||
(void *)primitive_float_less,
|
||||
(void *)primitive_float_lesseq,
|
||||
(void *)primitive_float_greater,
|
||||
(void *)primitive_float_greatereq,
|
||||
(void *)primitive_word,
|
||||
(void *)primitive_word_xt,
|
||||
(void *)primitive_getenv,
|
||||
(void *)primitive_setenv,
|
||||
(void *)primitive_existsp,
|
||||
(void *)primitive_gc,
|
||||
(void *)primitive_gc_stats,
|
||||
(void *)primitive_save_image,
|
||||
(void *)primitive_save_image_and_exit,
|
||||
(void *)primitive_datastack,
|
||||
(void *)primitive_retainstack,
|
||||
(void *)primitive_callstack,
|
||||
(void *)primitive_set_datastack,
|
||||
(void *)primitive_set_retainstack,
|
||||
(void *)primitive_set_callstack,
|
||||
(void *)primitive_exit,
|
||||
(void *)primitive_data_room,
|
||||
(void *)primitive_code_room,
|
||||
(void *)primitive_micros,
|
||||
(void *)primitive_modify_code_heap,
|
||||
(void *)primitive_dlopen,
|
||||
(void *)primitive_dlsym,
|
||||
(void *)primitive_dlclose,
|
||||
(void *)primitive_byte_array,
|
||||
(void *)primitive_uninitialized_byte_array,
|
||||
(void *)primitive_displaced_alien,
|
||||
(void *)primitive_alien_signed_cell,
|
||||
(void *)primitive_set_alien_signed_cell,
|
||||
(void *)primitive_alien_unsigned_cell,
|
||||
(void *)primitive_set_alien_unsigned_cell,
|
||||
(void *)primitive_alien_signed_8,
|
||||
(void *)primitive_set_alien_signed_8,
|
||||
(void *)primitive_alien_unsigned_8,
|
||||
(void *)primitive_set_alien_unsigned_8,
|
||||
(void *)primitive_alien_signed_4,
|
||||
(void *)primitive_set_alien_signed_4,
|
||||
(void *)primitive_alien_unsigned_4,
|
||||
(void *)primitive_set_alien_unsigned_4,
|
||||
(void *)primitive_alien_signed_2,
|
||||
(void *)primitive_set_alien_signed_2,
|
||||
(void *)primitive_alien_unsigned_2,
|
||||
(void *)primitive_set_alien_unsigned_2,
|
||||
(void *)primitive_alien_signed_1,
|
||||
(void *)primitive_set_alien_signed_1,
|
||||
(void *)primitive_alien_unsigned_1,
|
||||
(void *)primitive_set_alien_unsigned_1,
|
||||
(void *)primitive_alien_float,
|
||||
(void *)primitive_set_alien_float,
|
||||
(void *)primitive_alien_double,
|
||||
(void *)primitive_set_alien_double,
|
||||
(void *)primitive_alien_cell,
|
||||
(void *)primitive_set_alien_cell,
|
||||
(void *)primitive_alien_address,
|
||||
(void *)primitive_set_slot,
|
||||
(void *)primitive_string_nth,
|
||||
(void *)primitive_set_string_nth_fast,
|
||||
(void *)primitive_set_string_nth_slow,
|
||||
(void *)primitive_resize_array,
|
||||
(void *)primitive_resize_string,
|
||||
(void *)primitive_array,
|
||||
(void *)primitive_begin_scan,
|
||||
(void *)primitive_next_object,
|
||||
(void *)primitive_end_scan,
|
||||
(void *)primitive_size,
|
||||
(void *)primitive_die,
|
||||
(void *)primitive_fopen,
|
||||
(void *)primitive_fgetc,
|
||||
(void *)primitive_fread,
|
||||
(void *)primitive_fputc,
|
||||
(void *)primitive_fwrite,
|
||||
(void *)primitive_fflush,
|
||||
(void *)primitive_fseek,
|
||||
(void *)primitive_fclose,
|
||||
(void *)primitive_wrapper,
|
||||
(void *)primitive_clone,
|
||||
(void *)primitive_string,
|
||||
(void *)primitive_array_to_quotation,
|
||||
(void *)primitive_quotation_xt,
|
||||
(void *)primitive_tuple,
|
||||
(void *)primitive_profiling,
|
||||
(void *)primitive_become,
|
||||
(void *)primitive_sleep,
|
||||
(void *)primitive_tuple_boa,
|
||||
(void *)primitive_callstack_to_array,
|
||||
(void *)primitive_innermost_stack_frame_quot,
|
||||
(void *)primitive_innermost_stack_frame_scan,
|
||||
(void *)primitive_set_innermost_stack_frame_quot,
|
||||
(void *)primitive_call_clear,
|
||||
(void *)primitive_resize_byte_array,
|
||||
(void *)primitive_dll_validp,
|
||||
(void *)primitive_unimplemented,
|
||||
(void *)primitive_clear_gc_stats,
|
||||
(void *)primitive_jit_compile,
|
||||
(void *)primitive_load_locals,
|
||||
(void *)primitive_check_datastack,
|
||||
(void *)primitive_inline_cache_miss,
|
||||
(void *)primitive_mega_cache_miss,
|
||||
(void *)primitive_lookup_method,
|
||||
(void *)primitive_reset_dispatch_stats,
|
||||
(void *)primitive_dispatch_stats,
|
||||
(void *)primitive_reset_inline_cache_stats,
|
||||
(void *)primitive_inline_cache_stats,
|
||||
(void *)primitive_optimized_p,
|
||||
primitive_type primitives[] = {
|
||||
primitive_bignum_to_fixnum,
|
||||
primitive_float_to_fixnum,
|
||||
primitive_fixnum_to_bignum,
|
||||
primitive_float_to_bignum,
|
||||
primitive_fixnum_to_float,
|
||||
primitive_bignum_to_float,
|
||||
primitive_str_to_float,
|
||||
primitive_float_to_str,
|
||||
primitive_float_bits,
|
||||
primitive_double_bits,
|
||||
primitive_bits_float,
|
||||
primitive_bits_double,
|
||||
primitive_fixnum_add,
|
||||
primitive_fixnum_subtract,
|
||||
primitive_fixnum_multiply,
|
||||
primitive_fixnum_divint,
|
||||
primitive_fixnum_divmod,
|
||||
primitive_fixnum_shift,
|
||||
primitive_bignum_eq,
|
||||
primitive_bignum_add,
|
||||
primitive_bignum_subtract,
|
||||
primitive_bignum_multiply,
|
||||
primitive_bignum_divint,
|
||||
primitive_bignum_mod,
|
||||
primitive_bignum_divmod,
|
||||
primitive_bignum_and,
|
||||
primitive_bignum_or,
|
||||
primitive_bignum_xor,
|
||||
primitive_bignum_not,
|
||||
primitive_bignum_shift,
|
||||
primitive_bignum_less,
|
||||
primitive_bignum_lesseq,
|
||||
primitive_bignum_greater,
|
||||
primitive_bignum_greatereq,
|
||||
primitive_bignum_bitp,
|
||||
primitive_bignum_log2,
|
||||
primitive_byte_array_to_bignum,
|
||||
primitive_float_eq,
|
||||
primitive_float_add,
|
||||
primitive_float_subtract,
|
||||
primitive_float_multiply,
|
||||
primitive_float_divfloat,
|
||||
primitive_float_mod,
|
||||
primitive_float_less,
|
||||
primitive_float_lesseq,
|
||||
primitive_float_greater,
|
||||
primitive_float_greatereq,
|
||||
primitive_word,
|
||||
primitive_word_xt,
|
||||
primitive_getenv,
|
||||
primitive_setenv,
|
||||
primitive_existsp,
|
||||
primitive_gc,
|
||||
primitive_gc_stats,
|
||||
primitive_save_image,
|
||||
primitive_save_image_and_exit,
|
||||
primitive_datastack,
|
||||
primitive_retainstack,
|
||||
primitive_callstack,
|
||||
primitive_set_datastack,
|
||||
primitive_set_retainstack,
|
||||
primitive_set_callstack,
|
||||
primitive_exit,
|
||||
primitive_data_room,
|
||||
primitive_code_room,
|
||||
primitive_micros,
|
||||
primitive_modify_code_heap,
|
||||
primitive_dlopen,
|
||||
primitive_dlsym,
|
||||
primitive_dlclose,
|
||||
primitive_byte_array,
|
||||
primitive_uninitialized_byte_array,
|
||||
primitive_displaced_alien,
|
||||
primitive_alien_signed_cell,
|
||||
primitive_set_alien_signed_cell,
|
||||
primitive_alien_unsigned_cell,
|
||||
primitive_set_alien_unsigned_cell,
|
||||
primitive_alien_signed_8,
|
||||
primitive_set_alien_signed_8,
|
||||
primitive_alien_unsigned_8,
|
||||
primitive_set_alien_unsigned_8,
|
||||
primitive_alien_signed_4,
|
||||
primitive_set_alien_signed_4,
|
||||
primitive_alien_unsigned_4,
|
||||
primitive_set_alien_unsigned_4,
|
||||
primitive_alien_signed_2,
|
||||
primitive_set_alien_signed_2,
|
||||
primitive_alien_unsigned_2,
|
||||
primitive_set_alien_unsigned_2,
|
||||
primitive_alien_signed_1,
|
||||
primitive_set_alien_signed_1,
|
||||
primitive_alien_unsigned_1,
|
||||
primitive_set_alien_unsigned_1,
|
||||
primitive_alien_float,
|
||||
primitive_set_alien_float,
|
||||
primitive_alien_double,
|
||||
primitive_set_alien_double,
|
||||
primitive_alien_cell,
|
||||
primitive_set_alien_cell,
|
||||
primitive_alien_address,
|
||||
primitive_set_slot,
|
||||
primitive_string_nth,
|
||||
primitive_set_string_nth_fast,
|
||||
primitive_set_string_nth_slow,
|
||||
primitive_resize_array,
|
||||
primitive_resize_string,
|
||||
primitive_array,
|
||||
primitive_begin_scan,
|
||||
primitive_next_object,
|
||||
primitive_end_scan,
|
||||
primitive_size,
|
||||
primitive_die,
|
||||
primitive_fopen,
|
||||
primitive_fgetc,
|
||||
primitive_fread,
|
||||
primitive_fputc,
|
||||
primitive_fwrite,
|
||||
primitive_fflush,
|
||||
primitive_fseek,
|
||||
primitive_fclose,
|
||||
primitive_wrapper,
|
||||
primitive_clone,
|
||||
primitive_string,
|
||||
primitive_array_to_quotation,
|
||||
primitive_quotation_xt,
|
||||
primitive_tuple,
|
||||
primitive_profiling,
|
||||
primitive_become,
|
||||
primitive_sleep,
|
||||
primitive_tuple_boa,
|
||||
primitive_callstack_to_array,
|
||||
primitive_innermost_stack_frame_quot,
|
||||
primitive_innermost_stack_frame_scan,
|
||||
primitive_set_innermost_stack_frame_quot,
|
||||
primitive_call_clear,
|
||||
primitive_resize_byte_array,
|
||||
primitive_dll_validp,
|
||||
primitive_unimplemented,
|
||||
primitive_clear_gc_stats,
|
||||
primitive_jit_compile,
|
||||
primitive_load_locals,
|
||||
primitive_check_datastack,
|
||||
primitive_inline_cache_miss,
|
||||
primitive_mega_cache_miss,
|
||||
primitive_lookup_method,
|
||||
primitive_reset_dispatch_stats,
|
||||
primitive_dispatch_stats,
|
||||
primitive_reset_inline_cache_stats,
|
||||
primitive_inline_cache_stats,
|
||||
primitive_optimized_p,
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
namespace factor
|
||||
{
|
||||
|
||||
extern void *primitives[];
|
||||
extern "C" typedef void (*primitive_type)();
|
||||
extern primitive_type primitives[];
|
||||
|
||||
#define PRIMITIVE(name) extern "C" void primitive_##name()
|
||||
|
||||
|
|
Loading…
Reference in New Issue