aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-29 20:23:27 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-29 20:23:27 +0100
commitc24042a694b960237827c6255d5d407fb58227dc (patch)
tree7e2114e69aa27cb7a62f6af0028eff9f08eef614
parent4645d92db40ecffa7cad4bf71acc93482954e8d7 (diff)
downloadcompcert-kvx-c24042a694b960237827c6255d5d407fb58227dc.tar.gz
compcert-kvx-c24042a694b960237827c6255d5d407fb58227dc.zip
FIXME: Jumptables have linking issues.
-rw-r--r--common/Switchaux.ml4
-rw-r--r--test/monniaux/ocaml/byterun/caml/jumptbl.h40
-rw-r--r--test/monniaux/ocaml/byterun/caml/opnames.h48
-rw-r--r--test/monniaux/ocaml/byterun/prims.c1153
4 files changed, 1245 insertions, 0 deletions
diff --git a/common/Switchaux.ml b/common/Switchaux.ml
index 69300feb..81d7208f 100644
--- a/common/Switchaux.ml
+++ b/common/Switchaux.ml
@@ -80,6 +80,9 @@ let compile_switch_as_jumptable default cases minkey maxkey =
CTaction default)
let dense_enough (numcases: int) (minkey: Z.t) (maxkey: Z.t) =
+ false
+
+ (* DM FIXME 2019-03-29 do not use jump tables bug in assembly/link
let span = Z.sub maxkey minkey in
assert (Z.ge span Z.zero);
let tree_size = Z.mul (Z.of_uint 4) (Z.of_uint numcases)
@@ -87,6 +90,7 @@ let dense_enough (numcases: int) (minkey: Z.t) (maxkey: Z.t) =
numcases >= 7 (* small jump tables are always less efficient *)
&& Z.le table_size tree_size
&& Z.lt span (Z.of_uint Sys.max_array_length)
+ *)
let compile_switch modulus default table =
let (tbl, keys) = normalize_table table in
diff --git a/test/monniaux/ocaml/byterun/caml/jumptbl.h b/test/monniaux/ocaml/byterun/caml/jumptbl.h
new file mode 100644
index 00000000..30588756
--- /dev/null
+++ b/test/monniaux/ocaml/byterun/caml/jumptbl.h
@@ -0,0 +1,40 @@
+ &&lbl_ACC0, &&lbl_ACC1, &&lbl_ACC2, &&lbl_ACC3, &&lbl_ACC4, &&lbl_ACC5, &&lbl_ACC6, &&lbl_ACC7,
+ &&lbl_ACC, &&lbl_PUSH,
+ &&lbl_PUSHACC0, &&lbl_PUSHACC1, &&lbl_PUSHACC2, &&lbl_PUSHACC3,
+ &&lbl_PUSHACC4, &&lbl_PUSHACC5, &&lbl_PUSHACC6, &&lbl_PUSHACC7,
+ &&lbl_PUSHACC, &&lbl_POP, &&lbl_ASSIGN,
+ &&lbl_ENVACC1, &&lbl_ENVACC2, &&lbl_ENVACC3, &&lbl_ENVACC4, &&lbl_ENVACC,
+ &&lbl_PUSHENVACC1, &&lbl_PUSHENVACC2, &&lbl_PUSHENVACC3, &&lbl_PUSHENVACC4, &&lbl_PUSHENVACC,
+ &&lbl_PUSH_RETADDR, &&lbl_APPLY, &&lbl_APPLY1, &&lbl_APPLY2, &&lbl_APPLY3,
+ &&lbl_APPTERM, &&lbl_APPTERM1, &&lbl_APPTERM2, &&lbl_APPTERM3,
+ &&lbl_RETURN, &&lbl_RESTART, &&lbl_GRAB,
+ &&lbl_CLOSURE, &&lbl_CLOSUREREC,
+ &&lbl_OFFSETCLOSUREM2, &&lbl_OFFSETCLOSURE0, &&lbl_OFFSETCLOSURE2, &&lbl_OFFSETCLOSURE,
+ &&lbl_PUSHOFFSETCLOSUREM2, &&lbl_PUSHOFFSETCLOSURE0,
+ &&lbl_PUSHOFFSETCLOSURE2, &&lbl_PUSHOFFSETCLOSURE,
+ &&lbl_GETGLOBAL, &&lbl_PUSHGETGLOBAL, &&lbl_GETGLOBALFIELD, &&lbl_PUSHGETGLOBALFIELD, &&lbl_SETGLOBAL,
+ &&lbl_ATOM0, &&lbl_ATOM, &&lbl_PUSHATOM0, &&lbl_PUSHATOM,
+ &&lbl_MAKEBLOCK, &&lbl_MAKEBLOCK1, &&lbl_MAKEBLOCK2, &&lbl_MAKEBLOCK3, &&lbl_MAKEFLOATBLOCK,
+ &&lbl_GETFIELD0, &&lbl_GETFIELD1, &&lbl_GETFIELD2, &&lbl_GETFIELD3, &&lbl_GETFIELD, &&lbl_GETFLOATFIELD,
+ &&lbl_SETFIELD0, &&lbl_SETFIELD1, &&lbl_SETFIELD2, &&lbl_SETFIELD3, &&lbl_SETFIELD, &&lbl_SETFLOATFIELD,
+ &&lbl_VECTLENGTH, &&lbl_GETVECTITEM, &&lbl_SETVECTITEM,
+ &&lbl_GETBYTESCHAR, &&lbl_SETBYTESCHAR,
+ &&lbl_BRANCH, &&lbl_BRANCHIF, &&lbl_BRANCHIFNOT, &&lbl_SWITCH, &&lbl_BOOLNOT,
+ &&lbl_PUSHTRAP, &&lbl_POPTRAP, &&lbl_RAISE,
+ &&lbl_CHECK_SIGNALS,
+ &&lbl_C_CALL1, &&lbl_C_CALL2, &&lbl_C_CALL3, &&lbl_C_CALL4, &&lbl_C_CALL5, &&lbl_C_CALLN,
+ &&lbl_CONST0, &&lbl_CONST1, &&lbl_CONST2, &&lbl_CONST3, &&lbl_CONSTINT,
+ &&lbl_PUSHCONST0, &&lbl_PUSHCONST1, &&lbl_PUSHCONST2, &&lbl_PUSHCONST3, &&lbl_PUSHCONSTINT,
+ &&lbl_NEGINT, &&lbl_ADDINT, &&lbl_SUBINT, &&lbl_MULINT, &&lbl_DIVINT, &&lbl_MODINT,
+ &&lbl_ANDINT, &&lbl_ORINT, &&lbl_XORINT, &&lbl_LSLINT, &&lbl_LSRINT, &&lbl_ASRINT,
+ &&lbl_EQ, &&lbl_NEQ, &&lbl_LTINT, &&lbl_LEINT, &&lbl_GTINT, &&lbl_GEINT,
+ &&lbl_OFFSETINT, &&lbl_OFFSETREF, &&lbl_ISINT,
+ &&lbl_GETMETHOD,
+ &&lbl_BEQ, &&lbl_BNEQ, &&lbl_BLTINT, &&lbl_BLEINT, &&lbl_BGTINT, &&lbl_BGEINT,
+ &&lbl_ULTINT, &&lbl_UGEINT,
+ &&lbl_BULTINT, &&lbl_BUGEINT,
+ &&lbl_GETPUBMET, &&lbl_GETDYNMET,
+ &&lbl_STOP,
+ &&lbl_EVENT, &&lbl_BREAK,
+ &&lbl_RERAISE, &&lbl_RAISE_NOTRACE,
+ &&lbl_GETSTRINGCHAR,
diff --git a/test/monniaux/ocaml/byterun/caml/opnames.h b/test/monniaux/ocaml/byterun/caml/opnames.h
new file mode 100644
index 00000000..bf6144cf
--- /dev/null
+++ b/test/monniaux/ocaml/byterun/caml/opnames.h
@@ -0,0 +1,48 @@
+
+
+
+
+char * names_of_instructions [] = {
+ "ACC0", "ACC1", "ACC2", "ACC3", "ACC4", "ACC5", "ACC6", "ACC7",
+ "ACC", "PUSH",
+ "PUSHACC0", "PUSHACC1", "PUSHACC2", "PUSHACC3",
+ "PUSHACC4", "PUSHACC5", "PUSHACC6", "PUSHACC7",
+ "PUSHACC", "POP", "ASSIGN",
+ "ENVACC1", "ENVACC2", "ENVACC3", "ENVACC4", "ENVACC",
+ "PUSHENVACC1", "PUSHENVACC2", "PUSHENVACC3", "PUSHENVACC4", "PUSHENVACC",
+ "PUSH_RETADDR", "APPLY", "APPLY1", "APPLY2", "APPLY3",
+ "APPTERM", "APPTERM1", "APPTERM2", "APPTERM3",
+ "RETURN", "RESTART", "GRAB",
+ "CLOSURE", "CLOSUREREC",
+ "OFFSETCLOSUREM2", "OFFSETCLOSURE0", "OFFSETCLOSURE2", "OFFSETCLOSURE",
+ "PUSHOFFSETCLOSUREM2", "PUSHOFFSETCLOSURE0",
+ "PUSHOFFSETCLOSURE2", "PUSHOFFSETCLOSURE",
+ "GETGLOBAL", "PUSHGETGLOBAL", "GETGLOBALFIELD", "PUSHGETGLOBALFIELD", "SETGLOBAL",
+ "ATOM0", "ATOM", "PUSHATOM0", "PUSHATOM",
+ "MAKEBLOCK", "MAKEBLOCK1", "MAKEBLOCK2", "MAKEBLOCK3", "MAKEFLOATBLOCK",
+ "GETFIELD0", "GETFIELD1", "GETFIELD2", "GETFIELD3", "GETFIELD", "GETFLOATFIELD",
+ "SETFIELD0", "SETFIELD1", "SETFIELD2", "SETFIELD3", "SETFIELD", "SETFLOATFIELD",
+ "VECTLENGTH", "GETVECTITEM", "SETVECTITEM",
+ "GETBYTESCHAR", "SETBYTESCHAR",
+ "BRANCH", "BRANCHIF", "BRANCHIFNOT", "SWITCH", "BOOLNOT",
+ "PUSHTRAP", "POPTRAP", "RAISE",
+ "CHECK_SIGNALS",
+ "C_CALL1", "C_CALL2", "C_CALL3", "C_CALL4", "C_CALL5", "C_CALLN",
+ "CONST0", "CONST1", "CONST2", "CONST3", "CONSTINT",
+ "PUSHCONST0", "PUSHCONST1", "PUSHCONST2", "PUSHCONST3", "PUSHCONSTINT",
+ "NEGINT", "ADDINT", "SUBINT", "MULINT", "DIVINT", "MODINT",
+ "ANDINT", "ORINT", "XORINT", "LSLINT", "LSRINT", "ASRINT",
+ "EQ", "NEQ", "LTINT", "LEINT", "GTINT", "GEINT",
+ "OFFSETINT", "OFFSETREF", "ISINT",
+ "GETMETHOD",
+ "BEQ", "BNEQ", "BLTINT", "BLEINT", "BGTINT", "BGEINT",
+ "ULTINT", "UGEINT",
+ "BULTINT", "BUGEINT",
+ "GETPUBMET", "GETDYNMET",
+ "STOP",
+ "EVENT", "BREAK",
+ "RERAISE", "RAISE_NOTRACE",
+ "GETSTRINGCHAR",
+"FIRST_UNIMPLEMENTED_OP"};
+
+
diff --git a/test/monniaux/ocaml/byterun/prims.c b/test/monniaux/ocaml/byterun/prims.c
new file mode 100644
index 00000000..15ebf593
--- /dev/null
+++ b/test/monniaux/ocaml/byterun/prims.c
@@ -0,0 +1,1153 @@
+#define CAML_INTERNALS
+#include "caml/mlvalues.h"
+#include "caml/prims.h"
+extern value caml_abs_float();
+extern value caml_acos_float();
+extern value caml_add_debug_info();
+extern value caml_add_float();
+extern value caml_alloc_dummy();
+extern value caml_alloc_dummy_float();
+extern value caml_alloc_dummy_function();
+extern value caml_array_append();
+extern value caml_array_blit();
+extern value caml_array_concat();
+extern value caml_array_get();
+extern value caml_array_get_addr();
+extern value caml_array_get_float();
+extern value caml_array_set();
+extern value caml_array_set_addr();
+extern value caml_array_set_float();
+extern value caml_array_sub();
+extern value caml_array_unsafe_get();
+extern value caml_array_unsafe_get_float();
+extern value caml_array_unsafe_set();
+extern value caml_array_unsafe_set_addr();
+extern value caml_array_unsafe_set_float();
+extern value caml_asin_float();
+extern value caml_atan2_float();
+extern value caml_atan_float();
+extern value caml_ba_blit();
+extern value caml_ba_change_layout();
+extern value caml_ba_create();
+extern value caml_ba_dim();
+extern value caml_ba_dim_1();
+extern value caml_ba_dim_2();
+extern value caml_ba_dim_3();
+extern value caml_ba_fill();
+extern value caml_ba_get_1();
+extern value caml_ba_get_2();
+extern value caml_ba_get_3();
+extern value caml_ba_get_generic();
+extern value caml_ba_kind();
+extern value caml_ba_layout();
+extern value caml_ba_num_dims();
+extern value caml_ba_reshape();
+extern value caml_ba_set_1();
+extern value caml_ba_set_2();
+extern value caml_ba_set_3();
+extern value caml_ba_set_generic();
+extern value caml_ba_slice();
+extern value caml_ba_sub();
+extern value caml_ba_uint8_get16();
+extern value caml_ba_uint8_get32();
+extern value caml_ba_uint8_get64();
+extern value caml_ba_uint8_set16();
+extern value caml_ba_uint8_set32();
+extern value caml_ba_uint8_set64();
+extern value caml_backtrace_status();
+extern value caml_blit_bytes();
+extern value caml_blit_string();
+extern value caml_bswap16();
+extern value caml_bytes_compare();
+extern value caml_bytes_equal();
+extern value caml_bytes_get();
+extern value caml_bytes_get16();
+extern value caml_bytes_get32();
+extern value caml_bytes_get64();
+extern value caml_bytes_greaterequal();
+extern value caml_bytes_greaterthan();
+extern value caml_bytes_lessequal();
+extern value caml_bytes_lessthan();
+extern value caml_bytes_notequal();
+extern value caml_bytes_of_string();
+extern value caml_bytes_set();
+extern value caml_bytes_set16();
+extern value caml_bytes_set32();
+extern value caml_bytes_set64();
+extern value caml_ceil_float();
+extern value caml_channel_descriptor();
+extern value caml_classify_float();
+extern value caml_compare();
+extern value caml_convert_raw_backtrace();
+extern value caml_convert_raw_backtrace_slot();
+extern value caml_copysign_float();
+extern value caml_cos_float();
+extern value caml_cosh_float();
+extern value caml_create_bytes();
+extern value caml_create_string();
+extern value caml_div_float();
+extern value caml_dynlink_add_primitive();
+extern value caml_dynlink_close_lib();
+extern value caml_dynlink_get_current_libs();
+extern value caml_dynlink_lookup_symbol();
+extern value caml_dynlink_open_lib();
+extern value caml_ensure_stack_capacity();
+extern value caml_ephe_blit_data();
+extern value caml_ephe_blit_key();
+extern value caml_ephe_check_data();
+extern value caml_ephe_check_key();
+extern value caml_ephe_create();
+extern value caml_ephe_get_data();
+extern value caml_ephe_get_data_copy();
+extern value caml_ephe_get_key();
+extern value caml_ephe_get_key_copy();
+extern value caml_ephe_set_data();
+extern value caml_ephe_set_key();
+extern value caml_ephe_unset_data();
+extern value caml_ephe_unset_key();
+extern value caml_eq_float();
+extern value caml_equal();
+extern value caml_exp_float();
+extern value caml_expm1_float();
+extern value caml_fill_bytes();
+extern value caml_fill_string();
+extern value caml_final_register();
+extern value caml_final_register_called_without_value();
+extern value caml_final_release();
+extern value caml_float_compare();
+extern value caml_float_of_int();
+extern value caml_float_of_string();
+extern value caml_floatarray_create();
+extern value caml_floatarray_get();
+extern value caml_floatarray_set();
+extern value caml_floatarray_unsafe_get();
+extern value caml_floatarray_unsafe_set();
+extern value caml_floor_float();
+extern value caml_fmod_float();
+extern value caml_format_float();
+extern value caml_format_int();
+extern value caml_fresh_oo_id();
+extern value caml_frexp_float();
+extern value caml_gc_compaction();
+extern value caml_gc_counters();
+extern value caml_gc_full_major();
+extern value caml_gc_get();
+extern value caml_gc_huge_fallback_count();
+extern value caml_gc_major();
+extern value caml_gc_major_slice();
+extern value caml_gc_minor();
+extern value caml_gc_minor_words();
+extern value caml_gc_quick_stat();
+extern value caml_gc_set();
+extern value caml_gc_stat();
+extern value caml_ge_float();
+extern value caml_get_current_callstack();
+extern value caml_get_current_environment();
+extern value caml_get_exception_backtrace();
+extern value caml_get_exception_raw_backtrace();
+extern value caml_get_global_data();
+extern value caml_get_major_bucket();
+extern value caml_get_major_credit();
+extern value caml_get_minor_free();
+extern value caml_get_public_method();
+extern value caml_get_section_table();
+extern value caml_greaterequal();
+extern value caml_greaterthan();
+extern value caml_gt_float();
+extern value caml_hash();
+extern value caml_hash_univ_param();
+extern value caml_hexstring_of_float();
+extern value caml_hypot_float();
+extern value caml_input_value();
+extern value caml_input_value_from_bytes();
+extern value caml_input_value_from_string();
+extern value caml_input_value_to_outside_heap();
+extern value caml_install_signal_handler();
+extern value caml_int32_add();
+extern value caml_int32_and();
+extern value caml_int32_bits_of_float();
+extern value caml_int32_bswap();
+extern value caml_int32_compare();
+extern value caml_int32_div();
+extern value caml_int32_float_of_bits();
+extern value caml_int32_format();
+extern value caml_int32_mod();
+extern value caml_int32_mul();
+extern value caml_int32_neg();
+extern value caml_int32_of_float();
+extern value caml_int32_of_int();
+extern value caml_int32_of_string();
+extern value caml_int32_or();
+extern value caml_int32_shift_left();
+extern value caml_int32_shift_right();
+extern value caml_int32_shift_right_unsigned();
+extern value caml_int32_sub();
+extern value caml_int32_to_float();
+extern value caml_int32_to_int();
+extern value caml_int32_xor();
+extern value caml_int64_add();
+extern value caml_int64_and();
+extern value caml_int64_bits_of_float();
+extern value caml_int64_bswap();
+extern value caml_int64_compare();
+extern value caml_int64_div();
+extern value caml_int64_float_of_bits();
+extern value caml_int64_format();
+extern value caml_int64_mod();
+extern value caml_int64_mul();
+extern value caml_int64_neg();
+extern value caml_int64_of_float();
+extern value caml_int64_of_int();
+extern value caml_int64_of_int32();
+extern value caml_int64_of_nativeint();
+extern value caml_int64_of_string();
+extern value caml_int64_or();
+extern value caml_int64_shift_left();
+extern value caml_int64_shift_right();
+extern value caml_int64_shift_right_unsigned();
+extern value caml_int64_sub();
+extern value caml_int64_to_float();
+extern value caml_int64_to_int();
+extern value caml_int64_to_int32();
+extern value caml_int64_to_nativeint();
+extern value caml_int64_xor();
+extern value caml_int_as_pointer();
+extern value caml_int_compare();
+extern value caml_int_of_float();
+extern value caml_int_of_string();
+extern value caml_invoke_traced_function();
+extern value caml_lazy_follow_forward();
+extern value caml_lazy_make_forward();
+extern value caml_ldexp_float();
+extern value caml_le_float();
+extern value caml_lessequal();
+extern value caml_lessthan();
+extern value caml_lex_engine();
+extern value caml_log10_float();
+extern value caml_log1p_float();
+extern value caml_log_float();
+extern value caml_lt_float();
+extern value caml_make_array();
+extern value caml_make_float_vect();
+extern value caml_make_vect();
+extern value caml_marshal_data_size();
+extern value caml_md5_chan();
+extern value caml_md5_string();
+extern value caml_ml_bytes_length();
+extern value caml_ml_channel_size();
+extern value caml_ml_channel_size_64();
+extern value caml_ml_close_channel();
+extern value caml_ml_enable_runtime_warnings();
+extern value caml_ml_flush();
+extern value caml_ml_flush_partial();
+extern value caml_ml_input();
+extern value caml_ml_input_char();
+extern value caml_ml_input_int();
+extern value caml_ml_input_scan_line();
+extern value caml_ml_open_descriptor_in();
+extern value caml_ml_open_descriptor_out();
+extern value caml_ml_out_channels_list();
+extern value caml_ml_output();
+extern value caml_ml_output_bytes();
+extern value caml_ml_output_char();
+extern value caml_ml_output_int();
+extern value caml_ml_output_partial();
+extern value caml_ml_pos_in();
+extern value caml_ml_pos_in_64();
+extern value caml_ml_pos_out();
+extern value caml_ml_pos_out_64();
+extern value caml_ml_runtime_warnings_enabled();
+extern value caml_ml_seek_in();
+extern value caml_ml_seek_in_64();
+extern value caml_ml_seek_out();
+extern value caml_ml_seek_out_64();
+extern value caml_ml_set_binary_mode();
+extern value caml_ml_set_channel_name();
+extern value caml_ml_string_length();
+extern value caml_modf_float();
+extern value caml_mul_float();
+extern value caml_nativeint_add();
+extern value caml_nativeint_and();
+extern value caml_nativeint_bswap();
+extern value caml_nativeint_compare();
+extern value caml_nativeint_div();
+extern value caml_nativeint_format();
+extern value caml_nativeint_mod();
+extern value caml_nativeint_mul();
+extern value caml_nativeint_neg();
+extern value caml_nativeint_of_float();
+extern value caml_nativeint_of_int();
+extern value caml_nativeint_of_int32();
+extern value caml_nativeint_of_string();
+extern value caml_nativeint_or();
+extern value caml_nativeint_shift_left();
+extern value caml_nativeint_shift_right();
+extern value caml_nativeint_shift_right_unsigned();
+extern value caml_nativeint_sub();
+extern value caml_nativeint_to_float();
+extern value caml_nativeint_to_int();
+extern value caml_nativeint_to_int32();
+extern value caml_nativeint_xor();
+extern value caml_neg_float();
+extern value caml_neq_float();
+extern value caml_new_lex_engine();
+extern value caml_notequal();
+extern value caml_obj_add_offset();
+extern value caml_obj_block();
+extern value caml_obj_dup();
+extern value caml_obj_is_block();
+extern value caml_obj_reachable_words();
+extern value caml_obj_set_tag();
+extern value caml_obj_tag();
+extern value caml_obj_truncate();
+extern value caml_output_value();
+extern value caml_output_value_to_buffer();
+extern value caml_output_value_to_bytes();
+extern value caml_output_value_to_string();
+extern value caml_parse_engine();
+extern value caml_power_float();
+extern value caml_raw_backtrace_length();
+extern value caml_raw_backtrace_next_slot();
+extern value caml_raw_backtrace_slot();
+extern value caml_realloc_global();
+extern value caml_record_backtrace();
+extern value caml_register_channel_for_spacetime();
+extern value caml_register_code_fragment();
+extern value caml_register_named_value();
+extern value caml_reify_bytecode();
+extern value caml_remove_debug_info();
+extern value caml_reset_afl_instrumentation();
+extern value caml_restore_raw_backtrace();
+extern value caml_runtime_parameters();
+extern value caml_runtime_variant();
+extern value caml_set_oo_id();
+extern value caml_set_parser_trace();
+extern value caml_setup_afl();
+extern value caml_sin_float();
+extern value caml_sinh_float();
+extern value caml_spacetime_enabled();
+extern value caml_spacetime_only_works_for_native_code();
+extern value caml_sqrt_float();
+extern value caml_static_alloc();
+extern value caml_static_free();
+extern value caml_static_release_bytecode();
+extern value caml_static_resize();
+extern value caml_string_compare();
+extern value caml_string_equal();
+extern value caml_string_get();
+extern value caml_string_get16();
+extern value caml_string_get32();
+extern value caml_string_get64();
+extern value caml_string_greaterequal();
+extern value caml_string_greaterthan();
+extern value caml_string_lessequal();
+extern value caml_string_lessthan();
+extern value caml_string_notequal();
+extern value caml_string_of_bytes();
+extern value caml_string_set();
+extern value caml_sub_float();
+extern value caml_sys_chdir();
+extern value caml_sys_close();
+extern value caml_sys_const_backend_type();
+extern value caml_sys_const_big_endian();
+extern value caml_sys_const_int_size();
+extern value caml_sys_const_max_wosize();
+extern value caml_sys_const_ostype_cygwin();
+extern value caml_sys_const_ostype_unix();
+extern value caml_sys_const_ostype_win32();
+extern value caml_sys_const_word_size();
+extern value caml_sys_exit();
+extern value caml_sys_file_exists();
+extern value caml_sys_get_argv();
+extern value caml_sys_get_config();
+extern value caml_sys_getcwd();
+extern value caml_sys_getenv();
+extern value caml_sys_is_directory();
+extern value caml_sys_isatty();
+extern value caml_sys_open();
+extern value caml_sys_random_seed();
+extern value caml_sys_read_directory();
+extern value caml_sys_remove();
+extern value caml_sys_rename();
+extern value caml_sys_system_command();
+extern value caml_sys_time();
+extern value caml_sys_time_include_children();
+extern value caml_sys_unsafe_getenv();
+extern value caml_tan_float();
+extern value caml_tanh_float();
+extern value caml_terminfo_rows();
+extern value caml_update_dummy();
+extern value caml_weak_blit();
+extern value caml_weak_check();
+extern value caml_weak_create();
+extern value caml_weak_get();
+extern value caml_weak_get_copy();
+extern value caml_weak_set();
+c_primitive caml_builtin_cprim[] = {
+ caml_abs_float,
+ caml_acos_float,
+ caml_add_debug_info,
+ caml_add_float,
+ caml_alloc_dummy,
+ caml_alloc_dummy_float,
+ caml_alloc_dummy_function,
+ caml_array_append,
+ caml_array_blit,
+ caml_array_concat,
+ caml_array_get,
+ caml_array_get_addr,
+ caml_array_get_float,
+ caml_array_set,
+ caml_array_set_addr,
+ caml_array_set_float,
+ caml_array_sub,
+ caml_array_unsafe_get,
+ caml_array_unsafe_get_float,
+ caml_array_unsafe_set,
+ caml_array_unsafe_set_addr,
+ caml_array_unsafe_set_float,
+ caml_asin_float,
+ caml_atan2_float,
+ caml_atan_float,
+ caml_ba_blit,
+ caml_ba_change_layout,
+ caml_ba_create,
+ caml_ba_dim,
+ caml_ba_dim_1,
+ caml_ba_dim_2,
+ caml_ba_dim_3,
+ caml_ba_fill,
+ caml_ba_get_1,
+ caml_ba_get_2,
+ caml_ba_get_3,
+ caml_ba_get_generic,
+ caml_ba_kind,
+ caml_ba_layout,
+ caml_ba_num_dims,
+ caml_ba_reshape,
+ caml_ba_set_1,
+ caml_ba_set_2,
+ caml_ba_set_3,
+ caml_ba_set_generic,
+ caml_ba_slice,
+ caml_ba_sub,
+ caml_ba_uint8_get16,
+ caml_ba_uint8_get32,
+ caml_ba_uint8_get64,
+ caml_ba_uint8_set16,
+ caml_ba_uint8_set32,
+ caml_ba_uint8_set64,
+ caml_backtrace_status,
+ caml_blit_bytes,
+ caml_blit_string,
+ caml_bswap16,
+ caml_bytes_compare,
+ caml_bytes_equal,
+ caml_bytes_get,
+ caml_bytes_get16,
+ caml_bytes_get32,
+ caml_bytes_get64,
+ caml_bytes_greaterequal,
+ caml_bytes_greaterthan,
+ caml_bytes_lessequal,
+ caml_bytes_lessthan,
+ caml_bytes_notequal,
+ caml_bytes_of_string,
+ caml_bytes_set,
+ caml_bytes_set16,
+ caml_bytes_set32,
+ caml_bytes_set64,
+ caml_ceil_float,
+ caml_channel_descriptor,
+ caml_classify_float,
+ caml_compare,
+ caml_convert_raw_backtrace,
+ caml_convert_raw_backtrace_slot,
+ caml_copysign_float,
+ caml_cos_float,
+ caml_cosh_float,
+ caml_create_bytes,
+ caml_create_string,
+ caml_div_float,
+ caml_dynlink_add_primitive,
+ caml_dynlink_close_lib,
+ caml_dynlink_get_current_libs,
+ caml_dynlink_lookup_symbol,
+ caml_dynlink_open_lib,
+ caml_ensure_stack_capacity,
+ caml_ephe_blit_data,
+ caml_ephe_blit_key,
+ caml_ephe_check_data,
+ caml_ephe_check_key,
+ caml_ephe_create,
+ caml_ephe_get_data,
+ caml_ephe_get_data_copy,
+ caml_ephe_get_key,
+ caml_ephe_get_key_copy,
+ caml_ephe_set_data,
+ caml_ephe_set_key,
+ caml_ephe_unset_data,
+ caml_ephe_unset_key,
+ caml_eq_float,
+ caml_equal,
+ caml_exp_float,
+ caml_expm1_float,
+ caml_fill_bytes,
+ caml_fill_string,
+ caml_final_register,
+ caml_final_register_called_without_value,
+ caml_final_release,
+ caml_float_compare,
+ caml_float_of_int,
+ caml_float_of_string,
+ caml_floatarray_create,
+ caml_floatarray_get,
+ caml_floatarray_set,
+ caml_floatarray_unsafe_get,
+ caml_floatarray_unsafe_set,
+ caml_floor_float,
+ caml_fmod_float,
+ caml_format_float,
+ caml_format_int,
+ caml_fresh_oo_id,
+ caml_frexp_float,
+ caml_gc_compaction,
+ caml_gc_counters,
+ caml_gc_full_major,
+ caml_gc_get,
+ caml_gc_huge_fallback_count,
+ caml_gc_major,
+ caml_gc_major_slice,
+ caml_gc_minor,
+ caml_gc_minor_words,
+ caml_gc_quick_stat,
+ caml_gc_set,
+ caml_gc_stat,
+ caml_ge_float,
+ caml_get_current_callstack,
+ caml_get_current_environment,
+ caml_get_exception_backtrace,
+ caml_get_exception_raw_backtrace,
+ caml_get_global_data,
+ caml_get_major_bucket,
+ caml_get_major_credit,
+ caml_get_minor_free,
+ caml_get_public_method,
+ caml_get_section_table,
+ caml_greaterequal,
+ caml_greaterthan,
+ caml_gt_float,
+ caml_hash,
+ caml_hash_univ_param,
+ caml_hexstring_of_float,
+ caml_hypot_float,
+ caml_input_value,
+ caml_input_value_from_bytes,
+ caml_input_value_from_string,
+ caml_input_value_to_outside_heap,
+ caml_install_signal_handler,
+ caml_int32_add,
+ caml_int32_and,
+ caml_int32_bits_of_float,
+ caml_int32_bswap,
+ caml_int32_compare,
+ caml_int32_div,
+ caml_int32_float_of_bits,
+ caml_int32_format,
+ caml_int32_mod,
+ caml_int32_mul,
+ caml_int32_neg,
+ caml_int32_of_float,
+ caml_int32_of_int,
+ caml_int32_of_string,
+ caml_int32_or,
+ caml_int32_shift_left,
+ caml_int32_shift_right,
+ caml_int32_shift_right_unsigned,
+ caml_int32_sub,
+ caml_int32_to_float,
+ caml_int32_to_int,
+ caml_int32_xor,
+ caml_int64_add,
+ caml_int64_and,
+ caml_int64_bits_of_float,
+ caml_int64_bswap,
+ caml_int64_compare,
+ caml_int64_div,
+ caml_int64_float_of_bits,
+ caml_int64_format,
+ caml_int64_mod,
+ caml_int64_mul,
+ caml_int64_neg,
+ caml_int64_of_float,
+ caml_int64_of_int,
+ caml_int64_of_int32,
+ caml_int64_of_nativeint,
+ caml_int64_of_string,
+ caml_int64_or,
+ caml_int64_shift_left,
+ caml_int64_shift_right,
+ caml_int64_shift_right_unsigned,
+ caml_int64_sub,
+ caml_int64_to_float,
+ caml_int64_to_int,
+ caml_int64_to_int32,
+ caml_int64_to_nativeint,
+ caml_int64_xor,
+ caml_int_as_pointer,
+ caml_int_compare,
+ caml_int_of_float,
+ caml_int_of_string,
+ caml_invoke_traced_function,
+ caml_lazy_follow_forward,
+ caml_lazy_make_forward,
+ caml_ldexp_float,
+ caml_le_float,
+ caml_lessequal,
+ caml_lessthan,
+ caml_lex_engine,
+ caml_log10_float,
+ caml_log1p_float,
+ caml_log_float,
+ caml_lt_float,
+ caml_make_array,
+ caml_make_float_vect,
+ caml_make_vect,
+ caml_marshal_data_size,
+ caml_md5_chan,
+ caml_md5_string,
+ caml_ml_bytes_length,
+ caml_ml_channel_size,
+ caml_ml_channel_size_64,
+ caml_ml_close_channel,
+ caml_ml_enable_runtime_warnings,
+ caml_ml_flush,
+ caml_ml_flush_partial,
+ caml_ml_input,
+ caml_ml_input_char,
+ caml_ml_input_int,
+ caml_ml_input_scan_line,
+ caml_ml_open_descriptor_in,
+ caml_ml_open_descriptor_out,
+ caml_ml_out_channels_list,
+ caml_ml_output,
+ caml_ml_output_bytes,
+ caml_ml_output_char,
+ caml_ml_output_int,
+ caml_ml_output_partial,
+ caml_ml_pos_in,
+ caml_ml_pos_in_64,
+ caml_ml_pos_out,
+ caml_ml_pos_out_64,
+ caml_ml_runtime_warnings_enabled,
+ caml_ml_seek_in,
+ caml_ml_seek_in_64,
+ caml_ml_seek_out,
+ caml_ml_seek_out_64,
+ caml_ml_set_binary_mode,
+ caml_ml_set_channel_name,
+ caml_ml_string_length,
+ caml_modf_float,
+ caml_mul_float,
+ caml_nativeint_add,
+ caml_nativeint_and,
+ caml_nativeint_bswap,
+ caml_nativeint_compare,
+ caml_nativeint_div,
+ caml_nativeint_format,
+ caml_nativeint_mod,
+ caml_nativeint_mul,
+ caml_nativeint_neg,
+ caml_nativeint_of_float,
+ caml_nativeint_of_int,
+ caml_nativeint_of_int32,
+ caml_nativeint_of_string,
+ caml_nativeint_or,
+ caml_nativeint_shift_left,
+ caml_nativeint_shift_right,
+ caml_nativeint_shift_right_unsigned,
+ caml_nativeint_sub,
+ caml_nativeint_to_float,
+ caml_nativeint_to_int,
+ caml_nativeint_to_int32,
+ caml_nativeint_xor,
+ caml_neg_float,
+ caml_neq_float,
+ caml_new_lex_engine,
+ caml_notequal,
+ caml_obj_add_offset,
+ caml_obj_block,
+ caml_obj_dup,
+ caml_obj_is_block,
+ caml_obj_reachable_words,
+ caml_obj_set_tag,
+ caml_obj_tag,
+ caml_obj_truncate,
+ caml_output_value,
+ caml_output_value_to_buffer,
+ caml_output_value_to_bytes,
+ caml_output_value_to_string,
+ caml_parse_engine,
+ caml_power_float,
+ caml_raw_backtrace_length,
+ caml_raw_backtrace_next_slot,
+ caml_raw_backtrace_slot,
+ caml_realloc_global,
+ caml_record_backtrace,
+ caml_register_channel_for_spacetime,
+ caml_register_code_fragment,
+ caml_register_named_value,
+ caml_reify_bytecode,
+ caml_remove_debug_info,
+ caml_reset_afl_instrumentation,
+ caml_restore_raw_backtrace,
+ caml_runtime_parameters,
+ caml_runtime_variant,
+ caml_set_oo_id,
+ caml_set_parser_trace,
+ caml_setup_afl,
+ caml_sin_float,
+ caml_sinh_float,
+ caml_spacetime_enabled,
+ caml_spacetime_only_works_for_native_code,
+ caml_sqrt_float,
+ caml_static_alloc,
+ caml_static_free,
+ caml_static_release_bytecode,
+ caml_static_resize,
+ caml_string_compare,
+ caml_string_equal,
+ caml_string_get,
+ caml_string_get16,
+ caml_string_get32,
+ caml_string_get64,
+ caml_string_greaterequal,
+ caml_string_greaterthan,
+ caml_string_lessequal,
+ caml_string_lessthan,
+ caml_string_notequal,
+ caml_string_of_bytes,
+ caml_string_set,
+ caml_sub_float,
+ caml_sys_chdir,
+ caml_sys_close,
+ caml_sys_const_backend_type,
+ caml_sys_const_big_endian,
+ caml_sys_const_int_size,
+ caml_sys_const_max_wosize,
+ caml_sys_const_ostype_cygwin,
+ caml_sys_const_ostype_unix,
+ caml_sys_const_ostype_win32,
+ caml_sys_const_word_size,
+ caml_sys_exit,
+ caml_sys_file_exists,
+ caml_sys_get_argv,
+ caml_sys_get_config,
+ caml_sys_getcwd,
+ caml_sys_getenv,
+ caml_sys_is_directory,
+ caml_sys_isatty,
+ caml_sys_open,
+ caml_sys_random_seed,
+ caml_sys_read_directory,
+ caml_sys_remove,
+ caml_sys_rename,
+ caml_sys_system_command,
+ caml_sys_time,
+ caml_sys_time_include_children,
+ caml_sys_unsafe_getenv,
+ caml_tan_float,
+ caml_tanh_float,
+ caml_terminfo_rows,
+ caml_update_dummy,
+ caml_weak_blit,
+ caml_weak_check,
+ caml_weak_create,
+ caml_weak_get,
+ caml_weak_get_copy,
+ caml_weak_set,
+ 0 };
+char * caml_names_of_builtin_cprim[] = {
+ "caml_abs_float",
+ "caml_acos_float",
+ "caml_add_debug_info",
+ "caml_add_float",
+ "caml_alloc_dummy",
+ "caml_alloc_dummy_float",
+ "caml_alloc_dummy_function",
+ "caml_array_append",
+ "caml_array_blit",
+ "caml_array_concat",
+ "caml_array_get",
+ "caml_array_get_addr",
+ "caml_array_get_float",
+ "caml_array_set",
+ "caml_array_set_addr",
+ "caml_array_set_float",
+ "caml_array_sub",
+ "caml_array_unsafe_get",
+ "caml_array_unsafe_get_float",
+ "caml_array_unsafe_set",
+ "caml_array_unsafe_set_addr",
+ "caml_array_unsafe_set_float",
+ "caml_asin_float",
+ "caml_atan2_float",
+ "caml_atan_float",
+ "caml_ba_blit",
+ "caml_ba_change_layout",
+ "caml_ba_create",
+ "caml_ba_dim",
+ "caml_ba_dim_1",
+ "caml_ba_dim_2",
+ "caml_ba_dim_3",
+ "caml_ba_fill",
+ "caml_ba_get_1",
+ "caml_ba_get_2",
+ "caml_ba_get_3",
+ "caml_ba_get_generic",
+ "caml_ba_kind",
+ "caml_ba_layout",
+ "caml_ba_num_dims",
+ "caml_ba_reshape",
+ "caml_ba_set_1",
+ "caml_ba_set_2",
+ "caml_ba_set_3",
+ "caml_ba_set_generic",
+ "caml_ba_slice",
+ "caml_ba_sub",
+ "caml_ba_uint8_get16",
+ "caml_ba_uint8_get32",
+ "caml_ba_uint8_get64",
+ "caml_ba_uint8_set16",
+ "caml_ba_uint8_set32",
+ "caml_ba_uint8_set64",
+ "caml_backtrace_status",
+ "caml_blit_bytes",
+ "caml_blit_string",
+ "caml_bswap16",
+ "caml_bytes_compare",
+ "caml_bytes_equal",
+ "caml_bytes_get",
+ "caml_bytes_get16",
+ "caml_bytes_get32",
+ "caml_bytes_get64",
+ "caml_bytes_greaterequal",
+ "caml_bytes_greaterthan",
+ "caml_bytes_lessequal",
+ "caml_bytes_lessthan",
+ "caml_bytes_notequal",
+ "caml_bytes_of_string",
+ "caml_bytes_set",
+ "caml_bytes_set16",
+ "caml_bytes_set32",
+ "caml_bytes_set64",
+ "caml_ceil_float",
+ "caml_channel_descriptor",
+ "caml_classify_float",
+ "caml_compare",
+ "caml_convert_raw_backtrace",
+ "caml_convert_raw_backtrace_slot",
+ "caml_copysign_float",
+ "caml_cos_float",
+ "caml_cosh_float",
+ "caml_create_bytes",
+ "caml_create_string",
+ "caml_div_float",
+ "caml_dynlink_add_primitive",
+ "caml_dynlink_close_lib",
+ "caml_dynlink_get_current_libs",
+ "caml_dynlink_lookup_symbol",
+ "caml_dynlink_open_lib",
+ "caml_ensure_stack_capacity",
+ "caml_ephe_blit_data",
+ "caml_ephe_blit_key",
+ "caml_ephe_check_data",
+ "caml_ephe_check_key",
+ "caml_ephe_create",
+ "caml_ephe_get_data",
+ "caml_ephe_get_data_copy",
+ "caml_ephe_get_key",
+ "caml_ephe_get_key_copy",
+ "caml_ephe_set_data",
+ "caml_ephe_set_key",
+ "caml_ephe_unset_data",
+ "caml_ephe_unset_key",
+ "caml_eq_float",
+ "caml_equal",
+ "caml_exp_float",
+ "caml_expm1_float",
+ "caml_fill_bytes",
+ "caml_fill_string",
+ "caml_final_register",
+ "caml_final_register_called_without_value",
+ "caml_final_release",
+ "caml_float_compare",
+ "caml_float_of_int",
+ "caml_float_of_string",
+ "caml_floatarray_create",
+ "caml_floatarray_get",
+ "caml_floatarray_set",
+ "caml_floatarray_unsafe_get",
+ "caml_floatarray_unsafe_set",
+ "caml_floor_float",
+ "caml_fmod_float",
+ "caml_format_float",
+ "caml_format_int",
+ "caml_fresh_oo_id",
+ "caml_frexp_float",
+ "caml_gc_compaction",
+ "caml_gc_counters",
+ "caml_gc_full_major",
+ "caml_gc_get",
+ "caml_gc_huge_fallback_count",
+ "caml_gc_major",
+ "caml_gc_major_slice",
+ "caml_gc_minor",
+ "caml_gc_minor_words",
+ "caml_gc_quick_stat",
+ "caml_gc_set",
+ "caml_gc_stat",
+ "caml_ge_float",
+ "caml_get_current_callstack",
+ "caml_get_current_environment",
+ "caml_get_exception_backtrace",
+ "caml_get_exception_raw_backtrace",
+ "caml_get_global_data",
+ "caml_get_major_bucket",
+ "caml_get_major_credit",
+ "caml_get_minor_free",
+ "caml_get_public_method",
+ "caml_get_section_table",
+ "caml_greaterequal",
+ "caml_greaterthan",
+ "caml_gt_float",
+ "caml_hash",
+ "caml_hash_univ_param",
+ "caml_hexstring_of_float",
+ "caml_hypot_float",
+ "caml_input_value",
+ "caml_input_value_from_bytes",
+ "caml_input_value_from_string",
+ "caml_input_value_to_outside_heap",
+ "caml_install_signal_handler",
+ "caml_int32_add",
+ "caml_int32_and",
+ "caml_int32_bits_of_float",
+ "caml_int32_bswap",
+ "caml_int32_compare",
+ "caml_int32_div",
+ "caml_int32_float_of_bits",
+ "caml_int32_format",
+ "caml_int32_mod",
+ "caml_int32_mul",
+ "caml_int32_neg",
+ "caml_int32_of_float",
+ "caml_int32_of_int",
+ "caml_int32_of_string",
+ "caml_int32_or",
+ "caml_int32_shift_left",
+ "caml_int32_shift_right",
+ "caml_int32_shift_right_unsigned",
+ "caml_int32_sub",
+ "caml_int32_to_float",
+ "caml_int32_to_int",
+ "caml_int32_xor",
+ "caml_int64_add",
+ "caml_int64_and",
+ "caml_int64_bits_of_float",
+ "caml_int64_bswap",
+ "caml_int64_compare",
+ "caml_int64_div",
+ "caml_int64_float_of_bits",
+ "caml_int64_format",
+ "caml_int64_mod",
+ "caml_int64_mul",
+ "caml_int64_neg",
+ "caml_int64_of_float",
+ "caml_int64_of_int",
+ "caml_int64_of_int32",
+ "caml_int64_of_nativeint",
+ "caml_int64_of_string",
+ "caml_int64_or",
+ "caml_int64_shift_left",
+ "caml_int64_shift_right",
+ "caml_int64_shift_right_unsigned",
+ "caml_int64_sub",
+ "caml_int64_to_float",
+ "caml_int64_to_int",
+ "caml_int64_to_int32",
+ "caml_int64_to_nativeint",
+ "caml_int64_xor",
+ "caml_int_as_pointer",
+ "caml_int_compare",
+ "caml_int_of_float",
+ "caml_int_of_string",
+ "caml_invoke_traced_function",
+ "caml_lazy_follow_forward",
+ "caml_lazy_make_forward",
+ "caml_ldexp_float",
+ "caml_le_float",
+ "caml_lessequal",
+ "caml_lessthan",
+ "caml_lex_engine",
+ "caml_log10_float",
+ "caml_log1p_float",
+ "caml_log_float",
+ "caml_lt_float",
+ "caml_make_array",
+ "caml_make_float_vect",
+ "caml_make_vect",
+ "caml_marshal_data_size",
+ "caml_md5_chan",
+ "caml_md5_string",
+ "caml_ml_bytes_length",
+ "caml_ml_channel_size",
+ "caml_ml_channel_size_64",
+ "caml_ml_close_channel",
+ "caml_ml_enable_runtime_warnings",
+ "caml_ml_flush",
+ "caml_ml_flush_partial",
+ "caml_ml_input",
+ "caml_ml_input_char",
+ "caml_ml_input_int",
+ "caml_ml_input_scan_line",
+ "caml_ml_open_descriptor_in",
+ "caml_ml_open_descriptor_out",
+ "caml_ml_out_channels_list",
+ "caml_ml_output",
+ "caml_ml_output_bytes",
+ "caml_ml_output_char",
+ "caml_ml_output_int",
+ "caml_ml_output_partial",
+ "caml_ml_pos_in",
+ "caml_ml_pos_in_64",
+ "caml_ml_pos_out",
+ "caml_ml_pos_out_64",
+ "caml_ml_runtime_warnings_enabled",
+ "caml_ml_seek_in",
+ "caml_ml_seek_in_64",
+ "caml_ml_seek_out",
+ "caml_ml_seek_out_64",
+ "caml_ml_set_binary_mode",
+ "caml_ml_set_channel_name",
+ "caml_ml_string_length",
+ "caml_modf_float",
+ "caml_mul_float",
+ "caml_nativeint_add",
+ "caml_nativeint_and",
+ "caml_nativeint_bswap",
+ "caml_nativeint_compare",
+ "caml_nativeint_div",
+ "caml_nativeint_format",
+ "caml_nativeint_mod",
+ "caml_nativeint_mul",
+ "caml_nativeint_neg",
+ "caml_nativeint_of_float",
+ "caml_nativeint_of_int",
+ "caml_nativeint_of_int32",
+ "caml_nativeint_of_string",
+ "caml_nativeint_or",
+ "caml_nativeint_shift_left",
+ "caml_nativeint_shift_right",
+ "caml_nativeint_shift_right_unsigned",
+ "caml_nativeint_sub",
+ "caml_nativeint_to_float",
+ "caml_nativeint_to_int",
+ "caml_nativeint_to_int32",
+ "caml_nativeint_xor",
+ "caml_neg_float",
+ "caml_neq_float",
+ "caml_new_lex_engine",
+ "caml_notequal",
+ "caml_obj_add_offset",
+ "caml_obj_block",
+ "caml_obj_dup",
+ "caml_obj_is_block",
+ "caml_obj_reachable_words",
+ "caml_obj_set_tag",
+ "caml_obj_tag",
+ "caml_obj_truncate",
+ "caml_output_value",
+ "caml_output_value_to_buffer",
+ "caml_output_value_to_bytes",
+ "caml_output_value_to_string",
+ "caml_parse_engine",
+ "caml_power_float",
+ "caml_raw_backtrace_length",
+ "caml_raw_backtrace_next_slot",
+ "caml_raw_backtrace_slot",
+ "caml_realloc_global",
+ "caml_record_backtrace",
+ "caml_register_channel_for_spacetime",
+ "caml_register_code_fragment",
+ "caml_register_named_value",
+ "caml_reify_bytecode",
+ "caml_remove_debug_info",
+ "caml_reset_afl_instrumentation",
+ "caml_restore_raw_backtrace",
+ "caml_runtime_parameters",
+ "caml_runtime_variant",
+ "caml_set_oo_id",
+ "caml_set_parser_trace",
+ "caml_setup_afl",
+ "caml_sin_float",
+ "caml_sinh_float",
+ "caml_spacetime_enabled",
+ "caml_spacetime_only_works_for_native_code",
+ "caml_sqrt_float",
+ "caml_static_alloc",
+ "caml_static_free",
+ "caml_static_release_bytecode",
+ "caml_static_resize",
+ "caml_string_compare",
+ "caml_string_equal",
+ "caml_string_get",
+ "caml_string_get16",
+ "caml_string_get32",
+ "caml_string_get64",
+ "caml_string_greaterequal",
+ "caml_string_greaterthan",
+ "caml_string_lessequal",
+ "caml_string_lessthan",
+ "caml_string_notequal",
+ "caml_string_of_bytes",
+ "caml_string_set",
+ "caml_sub_float",
+ "caml_sys_chdir",
+ "caml_sys_close",
+ "caml_sys_const_backend_type",
+ "caml_sys_const_big_endian",
+ "caml_sys_const_int_size",
+ "caml_sys_const_max_wosize",
+ "caml_sys_const_ostype_cygwin",
+ "caml_sys_const_ostype_unix",
+ "caml_sys_const_ostype_win32",
+ "caml_sys_const_word_size",
+ "caml_sys_exit",
+ "caml_sys_file_exists",
+ "caml_sys_get_argv",
+ "caml_sys_get_config",
+ "caml_sys_getcwd",
+ "caml_sys_getenv",
+ "caml_sys_is_directory",
+ "caml_sys_isatty",
+ "caml_sys_open",
+ "caml_sys_random_seed",
+ "caml_sys_read_directory",
+ "caml_sys_remove",
+ "caml_sys_rename",
+ "caml_sys_system_command",
+ "caml_sys_time",
+ "caml_sys_time_include_children",
+ "caml_sys_unsafe_getenv",
+ "caml_tan_float",
+ "caml_tanh_float",
+ "caml_terminfo_rows",
+ "caml_update_dummy",
+ "caml_weak_blit",
+ "caml_weak_check",
+ "caml_weak_create",
+ "caml_weak_get",
+ "caml_weak_get_copy",
+ "caml_weak_set",
+ 0 };