Skip to content

Commit ee2300d

Browse files
committed
improve hashtbl performance
1 parent 9d0748f commit ee2300d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+3886
-2606
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,5 @@ lib/bs
8181
lib/js/jscomp/test
8282

8383
*.goog.js
84-
*.jsoo.js
84+
*.jsoo.js
85+
*.so

jscomp/Makefile

+44-12
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ ifndef EXE
66
endif
77
.SECONDARY:
88
NATIVE=ocamlopt.opt$(EXE)
9+
BYTE=ocamlc.opt$(EXE)
910
OCAMLLEX=ocamllex.opt$(EXE)
1011
CAMLP4OF=camlp4of
1112
CAMLDEP=ocamldep.opt$(EXE)
@@ -16,7 +17,7 @@ COMPFLAGS= -g -w -40-30 -warn-error +a-40-30
1617

1718
print-% : ; @echo $* = $($*)
1819

19-
INCLUDES= -I +compiler-libs -I ext -I common -I syntax -I depends -I core -I bsb -I ounit -I ounit_tests
20+
INCLUDES= -I +compiler-libs -I stubs -I ext -I common -I syntax -I depends -I core -I bsb -I ounit -I ounit_tests
2021

2122
.mli.cmi:
2223
$(NATIVE) $(INCLUDES) $(COMPFLAGS) -c $<
@@ -26,6 +27,23 @@ INCLUDES= -I +compiler-libs -I ext -I common -I syntax -I depends -I core -I bsb
2627

2728
.mll.ml:
2829
$(OCAMLLEX) $< -o $@ || (rm $@ && exit 2)
30+
31+
32+
## Stubs
33+
.c.o:
34+
$(NATIVE) -c $< -o $@
35+
36+
STUBS_OBJS=stubs/ext_basic_hash_stubs.o
37+
38+
dllbs_hash.so libbs_hash.a: $(STUBS_OBJS)
39+
ocamlmklib $(STUBS_OBJS) -o bs_hash
40+
41+
bs_hash.cmxa:stubs/bs_hash_stubs.ml libbs_hash.a
42+
$(NATIVE) -a $< -o $@ -cclib libbs_hash.a
43+
44+
bs_hash.cma:stubs/bs_hash_stubs.ml dllbs_hash.so
45+
$(BYTE) -a $< -o $@ -dllib dllbs_hash.so
46+
2947
## native plugin was not installed in opam..
3048

3149
## Beging Rules only make sense in dev mode
@@ -48,17 +66,27 @@ common/bs_version.ml: build_version.js ../package.json
4866
### list files
4967
OUNIT_SRCS = oUnit oUnitDiff oUnitLogger oUnitTypes oUnitUtils oUnitChooser
5068
OUNIT_CMXS = $(addprefix ounit/, $(addsuffix .cmx, $(OUNIT_SRCS)))
51-
OUNIT_TESTS_SRCS = ounit_array_tests ounit_list_test ounit_bal_tree_tests ounit_path_tests ounit_union_find_tests ounit_hash_set_tests ounit_scc_tests ounit_json_tests ounit_vec_test ounit_tests_main
69+
OUNIT_TESTS_SRCS = ounit_tests_util ounit_array_tests ounit_list_test ounit_bal_tree_tests ounit_path_tests ounit_union_find_tests ounit_hash_set_tests ounit_scc_tests ounit_json_tests ounit_vec_test ounit_tests_main
5270
OUNIT_TESTS_CMXS = $(addprefix ounit_tests/, $(addsuffix .cmx, $(OUNIT_TESTS_SRCS)))
5371

54-
EXT_SRCS = ext_array ext_bytes ext_char resize_array string_vec int_vec int_vec_vec bal_set_common\
72+
EXT_SRCS = ext_array ext_bytes ext_char resize_array string_vec\
73+
int_vec int_vec_vec bal_set_common\
5574
bal_tree bal_map_common bal_map\
56-
ext_file_pp ext_format ext_hashtbl ext_list ext_map \
75+
ext_file_pp ext_format \
76+
hashtbl_gen \
77+
ext_hashtbl \
78+
string_hashtbl\
79+
ext_list ext_map \
5780
ext_marshal ext_option \
5881
ext_pervasives ext_pp ext_ref ext_string ext_sys \
59-
hash_set ordered_hash_set ordered_hash_map union_find \
82+
hash_set_gen hash_set string_hash_set int_hash_set ordered_hash_set ordered_hash_map union_find \
6083
ident_set int_map literals string_map \
61-
string_set ext_scc ext_pp_scope ext_io ext_ident ext_filename
84+
string_set ext_scc ext_pp_scope\
85+
ext_io\
86+
ext_ident\
87+
ident_hashtbl\
88+
int_hashtbl\
89+
ext_filename
6290

6391
EXT_CMXS=$(addprefix ext/, $(addsuffix .cmx, $(EXT_SRCS)))
6492
COMMON_SRCS= bs_version js_config bs_pkg ext_log bs_loc bs_warnings lam_methname binary_cache
@@ -117,7 +145,7 @@ bin/bsb.exe: ext.cmxa common.cmxa bsb.cmxa bsb/bsb_main.cmx
117145
# bin/bsc: ext.cmxa common.cmxa depends.cmxa syntax.cmxa core.cmxa
118146
# $(NATIVE) -g -linkall -I +compiler-libs ocamlcommon.cmxa $^ -o $@
119147

120-
bin/bsc.exe: ext.cmxa common.cmxa syntax.cmxa depends.cmxa core.cmxa core/js_main.cmx
148+
bin/bsc.exe: bs_hash.cmxa ext.cmxa common.cmxa syntax.cmxa depends.cmxa core.cmxa core/js_main.cmx
121149
@echo "Linking"
122150
$(NATIVE) -g -linkall -I +compiler-libs ocamlcommon.cmxa $^ -o $@
123151
bin/jscmj.exe:ext.cmxa common.cmxa syntax.cmxa depends.cmxa core.cmxa jscmj_main.cmx
@@ -185,7 +213,7 @@ bin/bsppx.ml:./bin/bspack.exe
185213

186214

187215
bin/whole_compiler.ml:./bin/bspack.exe
188-
$< -bs-MD -prelude-str 'module Config = Config_whole_compiler' -bs-exclude-I config -o $@ -bs-main Js_main -I ../ocaml/utils/ -I ../ocaml/parsing/ -I ../ocaml/typing/ -I ../ocaml/bytecomp/ -I ../ocaml/driver/ -I ext -I syntax -I depends -I common -I core
216+
$< -bs-MD -prelude-str 'module Config = Config_whole_compiler' -bs-exclude-I config -o $@ -bs-main Js_main -I ../ocaml/utils/ -I ../ocaml/parsing/ -I ../ocaml/typing/ -I ../ocaml/bytecomp/ -I ../ocaml/driver/ -I stubs -I ext -I syntax -I depends -I common -I core
189217

190218
bin/bsdep.ml:./bin/bspack.exe
191219
BS_OCAMLDEP=true $< -bs-MD -prelude-str 'module Config = Config_bsdep' -bs-exclude-I config -I ../ocaml/utils/ -I ../ocaml/parsing/ -I ../ocaml/driver -I ../ocaml/tools -I common -I ext -I syntax -I depends -I core -bs-main Ocamldep -o $@
@@ -212,18 +240,22 @@ bin/js_compiler.ml:./bin/bspack.exe
212240
BS_COMPILER_IN_BROWSER=true bspack.exe -bs-MD -prelude-str 'module Config = Config_whole_compiler' -bs-exclude-I config -o $@ -bs-main Jsoo_main -I ../ocaml/utils/ -I ../ocaml/parsing/ -I ../ocaml/typing/ -I ../ocaml/bytecomp/ -I ../ocaml/driver/ -I ext -I syntax -I depends -I common -I core
213241

214242
bin/all_ounit_tests.ml:./bin/bspack.exe
215-
$< -bs-MD -I ounit -I ounit_tests -I bsb -I common -I ext -I syntax -I depends -I bspp -I core -bs-main Ounit_tests_main -o $@
243+
$< -bs-MD -I ounit -I ounit_tests -I stubs -I bsb -I common -I ext -I syntax -I depends -I bspp -I core -bs-main Ounit_tests_main -o $@
216244
-include bin/all_ounit_tests.d
217245

218-
bin/all_ounit_tests.exe:bin/all_ounit_tests.mli bin/all_ounit_tests.ml
219-
ocamlopt.opt -g -I bin -w -a unix.cmxa $^ -o $@
246+
bin/all_ounit_tests.exe: stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml
247+
$(NATIVE) -g -I bin -w -a unix.cmxa $^ -o $@
220248

221249
test:bin/all_ounit_tests.exe
222250
$^
251+
252+
# bin/all_ounit_tests.i.exe: stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml
253+
# $(NATIVE) -ppx /Users/hzhang295/.opam/4.02.3+local-git-master/lib/bisect_ppx/bisect_ppx -g -I bin -w -a unix.cmxa $^ -o $@
254+
223255
.PHONY:ounit_test
224256
# TODO: Fix Me use its own configuration
225257
bin/js_compiler.byte:bin/js_compiler.mli bin/js_compiler.ml
226-
ocamlc.opt -w -a -I bin bin/config_whole_compiler.mli bin/config_whole_compiler.ml $^ -no-check-prims -o $@
258+
$(BYTE) -w -a -I bin bin/config_whole_compiler.mli bin/config_whole_compiler.ml $^ -no-check-prims -o $@
227259

228260

229261

jscomp/all.depend

+48-27
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ ext/ext_filename.cmx : ext/literals.cmx ext/ext_string.cmx \
1010
ext/ext_pervasives.cmx ext/ext_filename.cmi
1111
ext/ext_format.cmx : ext/ext_format.cmi
1212
ext/ext_hashtbl.cmx : ext/ext_hashtbl.cmi
13-
ext/ext_ident.cmx : ext/string_set.cmx ext/ext_string.cmx ext/ext_ident.cmi
13+
ext/ext_ident.cmx : ext/string_hashtbl.cmx ext/string_hash_set.cmx \
14+
ext/ext_string.cmx ext/ext_ident.cmi
1415
ext/ext_int.cmx :
1516
ext/ext_io.cmx : ext/ext_pervasives.cmx ext/ext_io.cmi
1617
ext/ext_list.cmx : ext/ext_list.cmi
@@ -25,9 +26,15 @@ ext/ext_ref.cmx : ext/ext_ref.cmi
2526
ext/ext_scc.cmx : ext/int_vec_vec.cmx ext/int_vec.cmx ext/ext_scc.cmi
2627
ext/ext_string.cmx : ext/ext_bytes.cmx ext/ext_string.cmi
2728
ext/ext_sys.cmx : ext/ext_sys.cmi
28-
ext/hash_set.cmx : ext/hash_set.cmi
29+
ext/hash_set.cmx : ext/hash_set_gen.cmx ext/hash_set.cmi
30+
ext/hash_set_gen.cmx :
31+
ext/hashtbl_gen.cmx :
32+
ext/ident_hashtbl.cmx : ext/hashtbl_gen.cmx ext/ext_ident.cmx \
33+
ext/ident_hashtbl.cmi
2934
ext/ident_set.cmx : ext/ext_format.cmx ext/bal_set_common.cmx \
3035
ext/ident_set.cmi
36+
ext/int_hash_set.cmx : ext/hash_set_gen.cmx ext/int_hash_set.cmi
37+
ext/int_hashtbl.cmx : ext/hashtbl_gen.cmx ext/int_hashtbl.cmi
3138
ext/int_map.cmx : ext/int_map.cmi
3239
ext/int_vec.cmx : ext/resize_array.cmx ext/int_vec.cmi
3340
ext/int_vec_vec.cmx : ext/resize_array.cmx ext/int_vec.cmx \
@@ -36,6 +43,8 @@ ext/literals.cmx : ext/literals.cmi
3643
ext/ordered_hash_map.cmx : ext/ordered_hash_map.cmi
3744
ext/ordered_hash_set.cmx : ext/ordered_hash_set.cmi
3845
ext/resize_array.cmx : ext/ext_array.cmx ext/resize_array.cmi
46+
ext/string_hash_set.cmx : ext/hash_set_gen.cmx ext/string_hash_set.cmi
47+
ext/string_hashtbl.cmx : ext/hashtbl_gen.cmx ext/string_hashtbl.cmi
3948
ext/string_map.cmx : ext/bal_map_common.cmx ext/string_map.cmi
4049
ext/string_set.cmx : ext/bal_set_common.cmx ext/string_set.cmi
4150
ext/string_vec.cmx : ext/resize_array.cmx ext/string_vec.cmi
@@ -63,14 +72,19 @@ ext/ext_scc.cmi : ext/int_vec_vec.cmi ext/int_vec.cmi
6372
ext/ext_string.cmi :
6473
ext/ext_sys.cmi :
6574
ext/hash_set.cmi :
75+
ext/ident_hashtbl.cmi :
6676
ext/ident_set.cmi : ext/ext_format.cmi
77+
ext/int_hash_set.cmi : ext/hash_set.cmi
78+
ext/int_hashtbl.cmi :
6779
ext/int_map.cmi :
6880
ext/int_vec.cmi : ext/resize_array.cmi
6981
ext/int_vec_vec.cmi : ext/resize_array.cmi ext/int_vec.cmi
7082
ext/literals.cmi :
7183
ext/ordered_hash_map.cmi :
7284
ext/ordered_hash_set.cmi :
7385
ext/resize_array.cmi :
86+
ext/string_hash_set.cmi : ext/hash_set.cmi
87+
ext/string_hashtbl.cmi :
7488
ext/string_map.cmi :
7589
ext/string_set.cmi :
7690
ext/string_vec.cmi : ext/resize_array.cmi
@@ -178,9 +192,9 @@ depends/bs_exception.cmi :
178192
depends/depends_post_process.cmi :
179193
core/bs_conditional_initial.cmx : common/bs_version.cmx \
180194
core/bs_conditional_initial.cmi
181-
core/bspack_main.cmx : ext/ext_string.cmx ext/ext_pervasives.cmx \
182-
ext/ext_list.cmx ext/ext_io.cmx ext/ext_filename.cmx \
183-
depends/ast_extract.cmx core/bspack_main.cmi
195+
core/bspack_main.cmx : ext/string_hashtbl.cmx ext/ext_string.cmx \
196+
ext/ext_pervasives.cmx ext/ext_list.cmx ext/ext_io.cmx \
197+
ext/ext_filename.cmx depends/ast_extract.cmx core/bspack_main.cmi
184198
core/bspp_main.cmx : core/bspp_main.cmi
185199
core/bsppx_main.cmx : syntax/ppx_entry.cmx
186200
core/config_util.cmx : core/js_cmj_format.cmx depends/bs_exception.cmx \
@@ -260,15 +274,15 @@ core/js_pass_flatten.cmx : core/js_stmt_make.cmx core/js_map.cmx \
260274
core/js_pass_flatten_and_mark_dead.cmx : core/js_stmt_make.cmx \
261275
core/js_op_util.cmx core/js_map.cmx core/js_fold.cmx core/js_exp_make.cmx \
262276
common/js_config.cmx core/js_analyzer.cmx core/j.cmx ext/ident_set.cmx \
263-
common/ext_log.cmx ext/ext_list.cmx ext/ext_ident.cmx \
264-
core/js_pass_flatten_and_mark_dead.cmi
277+
ext/ident_hashtbl.cmx common/ext_log.cmx ext/ext_list.cmx \
278+
ext/ext_ident.cmx core/js_pass_flatten_and_mark_dead.cmi
265279
core/js_pass_scope.cmx : core/js_fun_env.cmx core/js_fold.cmx \
266280
core/js_closure.cmx ext/ident_set.cmx common/ext_log.cmx \
267281
core/js_pass_scope.cmi
268282
core/js_pass_tailcall_inline.cmx : core/js_stmt_make.cmx core/js_op_util.cmx \
269283
core/js_map.cmx core/js_fold.cmx core/js_exp_make.cmx \
270-
core/js_analyzer.cmx core/j.cmx ext/ident_set.cmx ext/ext_list.cmx \
271-
core/js_pass_tailcall_inline.cmi
284+
core/js_analyzer.cmx core/j.cmx ext/ident_set.cmx ext/ident_hashtbl.cmx \
285+
ext/ext_list.cmx core/js_pass_tailcall_inline.cmi
272286
core/js_program_loader.cmx : core/lam_module_ident.cmx \
273287
core/lam_compile_env.cmx core/js_stmt_make.cmx core/js_exp_make.cmx \
274288
common/js_config.cmx core/j.cmx ext/ident_set.cmx ext/ext_pervasives.cmx \
@@ -287,9 +301,10 @@ core/lam_analysis.cmx : core/lam.cmx ext/ident_set.cmx core/ident_map.cmx \
287301
core/lam_analysis.cmi
288302
core/lam_beta_reduce.cmx : core/lam_util.cmx core/lam_stats.cmx \
289303
core/lam_compile_global.cmx core/lam_beta_reduce_util.cmx \
290-
core/lam_analysis.cmx core/lam.cmx core/ident_map.cmx ext/ext_hashtbl.cmx \
291-
core/lam_beta_reduce.cmi
292-
core/lam_beta_reduce_util.cmx : core/lam.cmx core/lam_beta_reduce_util.cmi
304+
core/lam_analysis.cmx core/lam.cmx core/ident_map.cmx \
305+
ext/ident_hashtbl.cmx core/lam_beta_reduce.cmi
306+
core/lam_beta_reduce_util.cmx : core/lam.cmx ext/ident_hashtbl.cmx \
307+
core/lam_beta_reduce_util.cmi
293308
core/lam_compile.cmx : ext/literals.cmx core/lam_util.cmx \
294309
common/lam_methname.cmx core/lam_exit_code.cmx \
295310
core/lam_compile_primitive.cmx core/lam_compile_global.cmx \
@@ -347,8 +362,8 @@ core/lam_compile_primitive.cmx : core/lam_util.cmx \
347362
core/lam_compile_primitive.cmi
348363
core/lam_compile_util.cmx : core/js_op.cmx core/lam_compile_util.cmi
349364
core/lam_dce.cmx : core/lam_group.cmx core/lam_analysis.cmx core/lam.cmx \
350-
ext/ident_set.cmx ext/hash_set.cmx ext/ext_pervasives.cmx \
351-
ext/ext_ident.cmx core/lam_dce.cmi
365+
ext/ident_set.cmx ext/ident_hashtbl.cmx ext/hash_set.cmx \
366+
ext/ext_pervasives.cmx ext/ext_ident.cmx core/lam_dce.cmi
352367
core/lam_dispatch_primitive.cmx : core/js_stmt_make.cmx \
353368
core/js_of_lam_tuple.cmx core/js_of_lam_option.cmx \
354369
core/js_of_lam_exception.cmx core/js_of_lam_array.cmx core/js_long.cmx \
@@ -366,22 +381,23 @@ core/lam_pass_alpha_conversion.cmx : core/lam_util.cmx \
366381
core/lam_stats_util.cmx core/lam_stats.cmx core/lam.cmx ext/ext_list.cmx \
367382
core/lam_pass_alpha_conversion.cmi
368383
core/lam_pass_collect.cmx : core/lam_util.cmx core/lam_stats_util.cmx \
369-
core/lam_stats.cmx core/lam.cmx ext/ident_set.cmx ext/hash_set.cmx \
370-
core/lam_pass_collect.cmi
384+
core/lam_stats.cmx core/lam.cmx ext/ident_set.cmx ext/ident_hashtbl.cmx \
385+
ext/hash_set.cmx core/lam_pass_collect.cmi
371386
core/lam_pass_exits.cmx : core/lam_util.cmx core/lam_beta_reduce.cmx \
372-
core/lam_analysis.cmx core/lam.cmx core/ident_map.cmx \
387+
core/lam_analysis.cmx core/lam.cmx ext/int_hashtbl.cmx core/ident_map.cmx \
373388
core/lam_pass_exits.cmi
374389
core/lam_pass_lets_dce.cmx : core/lam_util.cmx core/lam_beta_reduce.cmx \
375390
core/lam_analysis.cmx core/lam.cmx ext/ident_set.cmx core/ident_map.cmx \
376-
ext/ext_list.cmx core/lam_pass_lets_dce.cmi
391+
ext/ident_hashtbl.cmx ext/ext_list.cmx core/lam_pass_lets_dce.cmi
377392
core/lam_pass_remove_alias.cmx : core/lam_util.cmx core/lam_stats.cmx \
378393
core/lam_module_ident.cmx core/lam_inline_util.cmx \
379394
core/lam_compile_env.cmx core/lam_beta_reduce.cmx core/lam_analysis.cmx \
380-
core/lam.cmx ext/ident_set.cmx ext/ext_list.cmx \
395+
core/lam.cmx ext/ident_set.cmx ext/ident_hashtbl.cmx ext/ext_list.cmx \
381396
core/lam_pass_remove_alias.cmi
382397
core/lam_print.cmx : core/lam.cmx core/lam_print.cmi
383398
core/lam_stats.cmx : core/lam_module_ident.cmx core/lam.cmx \
384-
ext/ident_set.cmx ext/hash_set.cmx core/lam_stats.cmi
399+
ext/ident_set.cmx ext/ident_hashtbl.cmx ext/hash_set.cmx \
400+
core/lam_stats.cmi
385401
core/lam_stats_export.cmx : ext/string_map.cmx core/lam_stats_util.cmx \
386402
core/lam_stats.cmx core/lam_module_ident.cmx core/lam_inline_util.cmx \
387403
core/lam_compile_env.cmx core/lam_analysis.cmx core/lam.cmx \
@@ -390,12 +406,13 @@ core/lam_stats_export.cmx : ext/string_map.cmx core/lam_stats_util.cmx \
390406
ext/ext_option.cmx common/ext_log.cmx ext/ext_list.cmx ext/ext_ident.cmx \
391407
ext/ext_filename.cmx core/lam_stats_export.cmi
392408
core/lam_stats_util.cmx : core/lam_stats.cmx core/lam_compile_env.cmx \
393-
core/lam.cmx ext/ext_list.cmx core/lam_stats_util.cmi
409+
core/lam.cmx ext/ident_hashtbl.cmx ext/ext_list.cmx \
410+
core/lam_stats_util.cmi
394411
core/lam_util.cmx : ext/literals.cmx core/lam_stats.cmx core/lam_print.cmx \
395412
core/lam_module_ident.cmx core/lam_analysis.cmx core/lam.cmx \
396413
core/js_fold_basic.cmx common/js_config.cmx ext/ident_set.cmx \
397-
core/ident_map.cmx ext/ext_list.cmx ext/ext_filename.cmx \
398-
core/lam_util.cmi
414+
core/ident_map.cmx ext/ident_hashtbl.cmx ext/ext_list.cmx \
415+
ext/ext_filename.cmx core/lam_util.cmi
399416
core/ocaml_batch_compile.cmx : core/ocaml_parse.cmx \
400417
core/js_implementation.cmx common/js_config.cmx ext/ext_ref.cmx \
401418
ext/ext_pervasives.cmx ext/ext_format.cmx ext/ext_filename.cmx \
@@ -481,14 +498,14 @@ core/lam_module_ident.cmi : core/js_op.cmx common/js_config.cmi core/j.cmx
481498
core/lam_pass_alpha_conversion.cmi : core/lam_stats.cmi core/lam.cmi
482499
core/lam_pass_collect.cmi : core/lam_stats.cmi core/lam.cmi
483500
core/lam_pass_eliminate_ref.cmi :
484-
core/lam_pass_exits.cmi : core/lam.cmi
501+
core/lam_pass_exits.cmi : core/lam.cmi ext/int_hashtbl.cmi
485502
core/lam_pass_lets_dce.cmi : core/lam.cmi
486503
core/lam_pass_remove_alias.cmi : core/lam_stats.cmi core/lam.cmi
487504
core/lam_pass_unused_params.cmi : core/lam.cmi
488505
core/lam_print.cmi : core/lam.cmi
489506
core/lam_runtime.cmi :
490507
core/lam_stats.cmi : core/lam_module_ident.cmi core/lam.cmi \
491-
ext/ident_set.cmi ext/hash_set.cmi
508+
ext/ident_set.cmi ext/ident_hashtbl.cmi ext/hash_set.cmi
492509
core/lam_stats_export.cmi : core/lam_stats.cmi core/lam_module_ident.cmi \
493510
core/lam.cmi core/js_cmj_format.cmi core/ident_map.cmi
494511
core/lam_stats_util.cmi : core/lam_stats.cmi core/lam.cmi
@@ -553,10 +570,12 @@ ounit/oUnitTypes.cmx :
553570
ounit/oUnitUtils.cmx : ounit/oUnitTypes.cmx
554571
ounit_tests/ounit_array_tests.cmx : ounit/oUnit.cmx ext/ext_string.cmx \
555572
ext/ext_array.cmx
556-
ounit_tests/ounit_bal_tree_tests.cmx : ounit/oUnit.cmx ext/ext_int.cmx \
557-
ext/bal_tree.cmx ext/bal_set_common.cmx
573+
ounit_tests/ounit_bal_tree_tests.cmx : ounit_tests/ounit_tests_util.cmx \
574+
ounit/oUnit.cmx ext/ext_int.cmx ext/bal_tree.cmx ext/bal_set_common.cmx
558575
ounit_tests/ounit_hash_set_tests.cmx : ext/ordered_hash_set.cmx \
559576
ounit/oUnit.cmx ext/hash_set.cmx
577+
ounit_tests/ounit_hash_stubs_test.cmx : ounit_tests/ounit_tests_util.cmx \
578+
ounit/oUnit.cmx ext/int_hash_set.cmx ext/hash_set.cmx
560579
ounit_tests/ounit_json_tests.cmx : ext/string_map.cmx ounit/oUnit.cmx \
561580
bsb/bsb_json.cmx
562581
ounit_tests/ounit_list_test.cmx : ounit/oUnit.cmx ext/ext_list.cmx
@@ -567,9 +586,11 @@ ounit_tests/ounit_tests_main.cmx : ext/resize_array.cmx \
567586
ounit_tests/ounit_vec_test.cmx ounit_tests/ounit_union_find_tests.cmx \
568587
ounit_tests/ounit_scc_tests.cmx ounit_tests/ounit_path_tests.cmx \
569588
ounit_tests/ounit_list_test.cmx ounit_tests/ounit_json_tests.cmx \
589+
ounit_tests/ounit_hash_stubs_test.cmx \
570590
ounit_tests/ounit_hash_set_tests.cmx ounit_tests/ounit_bal_tree_tests.cmx \
571591
ounit_tests/ounit_array_tests.cmx ounit/oUnit.cmx \
572592
ounit_tests/ounit_tests_main.cmi
593+
ounit_tests/ounit_tests_util.cmx :
573594
ounit_tests/ounit_union_find_tests.cmx : ext/union_find.cmx ounit/oUnit.cmx \
574595
ext/int_vec_vec.cmx ext/int_vec.cmx ext/ext_string.cmx
575596
ounit_tests/ounit_vec_test.cmx : ounit/oUnit.cmx ext/int_vec.cmx \

jscomp/bin/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ bsb_helper.exe: bsb_helper.mli bsb_helper.ml
2424
config_whole_compiler.ml:config_whole_compiler.mlp ../config.js
2525
node ../config.js
2626
bsc.exe: config_whole_compiler.mli config_whole_compiler.ml whole_compiler.mli whole_compiler.ml
27-
$(NATIVE) -w -a $^ -o $@
27+
$(NATIVE) -w -a ../stubs/ext_basic_hash_stubs.c $^ -o $@
2828

2929
bspack.exe: config_bspack.mli config_bspack.ml bspack.mli bspack.ml
3030
$(NATIVE) -w -a unix.cmxa $^ -o $@

jscomp/bin/all_ounit_tests.d

+6
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,18 @@ bin/all_ounit_tests.ml : ext/bal_set_common.ml
1515
bin/all_ounit_tests.ml : ext/bal_tree.ml
1616
bin/all_ounit_tests.ml : ext/bal_tree.mli
1717
bin/all_ounit_tests.ml : ext/ext_int.ml
18+
bin/all_ounit_tests.ml : ounit_tests/ounit_tests_util.ml
1819
bin/all_ounit_tests.ml : ounit_tests/ounit_bal_tree_tests.ml
20+
bin/all_ounit_tests.ml : ext/hash_set_gen.ml
1921
bin/all_ounit_tests.ml : ext/hash_set.ml
2022
bin/all_ounit_tests.ml : ext/hash_set.mli
2123
bin/all_ounit_tests.ml : ext/ordered_hash_set.ml
2224
bin/all_ounit_tests.ml : ext/ordered_hash_set.mli
2325
bin/all_ounit_tests.ml : ounit_tests/ounit_hash_set_tests.ml
26+
bin/all_ounit_tests.ml : stubs/bs_hash_stubs.ml
27+
bin/all_ounit_tests.ml : ext/int_hash_set.ml
28+
bin/all_ounit_tests.ml : ext/int_hash_set.mli
29+
bin/all_ounit_tests.ml : ounit_tests/ounit_hash_stubs_test.ml
2430
bin/all_ounit_tests.ml : ext/bal_map_common.ml
2531
bin/all_ounit_tests.ml : ext/string_map.ml
2632
bin/all_ounit_tests.ml : ext/string_map.mli

0 commit comments

Comments
 (0)