summaryrefslogtreecommitdiffstats
path: root/bytecomp/symtable.ml
diff options
context:
space:
mode:
Diffstat (limited to 'bytecomp/symtable.ml')
-rw-r--r--bytecomp/symtable.ml16
1 files changed, 13 insertions, 3 deletions
diff --git a/bytecomp/symtable.ml b/bytecomp/symtable.ml
index 6ba9278c6..fa281da16 100644
--- a/bytecomp/symtable.ml
+++ b/bytecomp/symtable.ml
@@ -82,11 +82,21 @@ let num_of_prim name =
let require_primitive name =
if name.[0] <> '%' then begin num_of_prim name; () end
-open Printf
-
-let output_primitives outchan =
+let all_primitives () =
let prim = Array.create !c_prim_table.num_cnt "" in
Tbl.iter (fun name number -> prim.(number) <- name) !c_prim_table.num_tbl;
+ prim
+
+let output_primitive_names outchan =
+ let prim = all_primitives() in
+ for i = 0 to Array.length prim - 1 do
+ output_string outchan prim.(i); output_char outchan '\000'
+ done
+
+open Printf
+
+let output_primitive_table outchan =
+ let prim = all_primitives() in
for i = 0 to Array.length prim - 1 do
fprintf outchan "extern long %s();\n" prim.(i)
done;