Skip to content

Commit 8b59c70

Browse files
authored
Merge pull request #1059 from bloomberg/better_scc
accelerate src using ident mask
2 parents ef8e334 + 49ef130 commit 8b59c70

21 files changed

+5219
-3437
lines changed

jscomp/Makefile

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ ext/ident_hash_set.ml: ext/hash_set.cppo.ml
3939
ext/hash_set.ml: ext/hash_set.cppo.ml
4040
cppo -D TYPE_FUNCTOR $< -o $@
4141
ext/hash_set_poly.ml: ext/hash_set.cppo.ml
42-
cppo $< -o $@
42+
cppo -D TYPE_POLY $< -o $@
43+
44+
# ext/hash_set_ident_mask.ml: ext/hash_set.cppo.ml
45+
# cppo -D TYPE_IDENT_MASK $< -o $@
4346

4447
ext/int_vec.ml: ext/vec.cppo.ml
4548
cppo -D TYPE_INT $< -o $@
@@ -139,6 +142,7 @@ OUNIT_TESTS_SRCS = ounit_tests_util \
139142
ounit_topsort_tests\
140143
ounit_sexp_tests\
141144
ounit_int_vec_tests\
145+
ounit_ident_mask_tests\
142146
ounit_tests_main
143147
OUNIT_TESTS_CMXS = $(addprefix ounit_tests/, $(addsuffix .cmx, $(OUNIT_TESTS_SRCS)))
144148

@@ -162,8 +166,11 @@ EXT_SRCS = ext_util\
162166
ext_map \
163167
ext_marshal ext_option \
164168
ext_pervasives ext_pp ext_ref ext_sys \
165-
hash_set_gen hash_set string_hash_set int_hash_set \
169+
hash_set_gen hash_set \
170+
string_hash_set \
166171
ext_ident\
172+
int_hash_set \
173+
hash_set_ident_mask\
167174
ordered_hash_set_gen\
168175
ordered_hash_set_string\
169176
ordered_hash_set_ident\
@@ -386,7 +393,7 @@ bin/all_ounit_tests.ml:./bin/bspack.exe
386393

387394

388395
bin/all_ounit_tests.exe: stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml
389-
ocamloptp -P a -g -I bin -w -a unix.cmxa $^ -o $@
396+
ocamloptp -I +compiler-libs ocamlcommon.cmxa -P a -g -I bin -w -a unix.cmxa $^ -o $@
390397

391398
test:bin/all_ounit_tests.exe
392399
$^ && ocamlprof bin/all_ounit_tests.ml > bin/all_ounit_tests.i.ml && rm ocamlprof.dump
@@ -464,7 +471,7 @@ world:
464471
travis-world-test:
465472
$(MAKE) world
466473
@echo "Making test"
467-
$(NATIVE) -g -I bin -w -a unix.cmxa stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml -o bin/all_ounit_tests.exe && bin/all_ounit_tests.exe
474+
$(NATIVE) -g -I bin -I +compiler-libs -w -a ocamlcommon.cmxa unix.cmxa stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml -o bin/all_ounit_tests.exe && bin/all_ounit_tests.exe
468475
$(MAKE) -C test all
469476
@echo "Making test finsihed"
470477

jscomp/all.depend

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,12 @@ ext/hash_set_gen.cmx : ext/ext_util.cmx
3232
ext/hash_set.cmx : ext/hash_set_gen.cmx ext/hash_set.cmi
3333
ext/string_hash_set.cmx : ext/hash_set_gen.cmx ext/ext_string.cmx \
3434
stubs/bs_hash_stubs.cmx ext/string_hash_set.cmi
35-
ext/int_hash_set.cmx : ext/hash_set_gen.cmx ext/ext_int.cmx \
36-
stubs/bs_hash_stubs.cmx ext/int_hash_set.cmi
3735
ext/ext_ident.cmx : ext/string_hashtbl.cmx ext/string_hash_set.cmx \
3836
ext/ext_string.cmx ext/ext_ident.cmi
37+
ext/int_hash_set.cmx : ext/hash_set_gen.cmx ext/ext_int.cmx \
38+
stubs/bs_hash_stubs.cmx ext/int_hash_set.cmi
39+
ext/hash_set_ident_mask.cmx : ext/ext_util.cmx ext/ext_ident.cmx \
40+
stubs/bs_hash_stubs.cmx ext/hash_set_ident_mask.cmi
3941
ext/ordered_hash_set_gen.cmx : ext/ext_util.cmx
4042
ext/ordered_hash_set_string.cmx : ext/ordered_hash_set_gen.cmx \
4143
ext/ext_util.cmx ext/ext_string.cmx stubs/bs_hash_stubs.cmx \
@@ -101,8 +103,9 @@ ext/ext_ref.cmi :
101103
ext/ext_sys.cmi :
102104
ext/hash_set.cmi : ext/hash_set_gen.cmx
103105
ext/string_hash_set.cmi : ext/hash_set_gen.cmx
104-
ext/int_hash_set.cmi : ext/hash_set_gen.cmx
105106
ext/ext_ident.cmi :
107+
ext/int_hash_set.cmi : ext/hash_set_gen.cmx
108+
ext/hash_set_ident_mask.cmi :
106109
ext/ordered_hash_set_string.cmi : ext/ordered_hash_set_gen.cmx
107110
ext/ordered_hash_set_ident.cmi : ext/ordered_hash_set_gen.cmx
108111
ext/union_find.cmi :
@@ -324,7 +327,8 @@ core/lam.cmx : ext/ordered_hash_map_local_ident.cmx \
324327
core/ocaml_stdlib_slots.cmx ext/literals.cmx common/js_config.cmx \
325328
ext/int_vec_vec.cmx ext/int_vec_util.cmx ext/int_vec.cmx \
326329
ext/ident_set.cmx ext/ident_hashtbl.cmx ext/ident_hash_set.cmx \
327-
ext/ext_string.cmx ext/ext_scc.cmx core/lam.cmi
330+
ext/hash_set_ident_mask.cmx ext/ext_string.cmx ext/ext_scc.cmx \
331+
core/lam.cmi
328332
core/lam_print.cmx : core/lam.cmx core/lam_print.cmi
329333
core/lam_beta_reduce_util.cmx : core/lam.cmx ext/ident_hashtbl.cmx \
330334
core/lam_beta_reduce_util.cmi
@@ -607,6 +611,8 @@ ounit_tests/ounit_topsort_tests.cmx : ext/set_int.cmx ounit/oUnit.cmx \
607611
ounit_tests/ounit_sexp_tests.cmx : ounit/oUnit.cmx ext/ext_sexp.cmx
608612
ounit_tests/ounit_int_vec_tests.cmx : ounit/oUnit.cmx ext/int_vec_util.cmx \
609613
ext/int_vec.cmx
614+
ounit_tests/ounit_ident_mask_tests.cmx : ounit/oUnit.cmx \
615+
ext/hash_set_ident_mask.cmx
610616
ounit_tests/ounit_tests_main.cmx : ext/resize_array.cmx \
611617
ounit_tests/ounit_vec_test.cmx ounit_tests/ounit_union_find_tests.cmx \
612618
ounit_tests/ounit_topsort_tests.cmx ounit_tests/ounit_string_tests.cmx \
@@ -615,6 +621,7 @@ ounit_tests/ounit_tests_main.cmx : ext/resize_array.cmx \
615621
ounit_tests/ounit_ordered_hash_set_tests.cmx \
616622
ounit_tests/ounit_map_tests.cmx ounit_tests/ounit_list_test.cmx \
617623
ounit_tests/ounit_json_tests.cmx ounit_tests/ounit_int_vec_tests.cmx \
624+
ounit_tests/ounit_ident_mask_tests.cmx \
618625
ounit_tests/ounit_hashtbl_tests.cmx ounit_tests/ounit_hash_stubs_test.cmx \
619626
ounit_tests/ounit_hash_set_tests.cmx ounit_tests/ounit_bal_tree_tests.cmx \
620627
ounit_tests/ounit_array_tests.cmx ounit/oUnit.cmx \

jscomp/bin/all_ounit_tests.d

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ bin/all_ounit_tests.ml : ext/hashtbl_gen.ml
4141
bin/all_ounit_tests.ml : ext/string_hashtbl.ml
4242
bin/all_ounit_tests.ml : ext/string_hashtbl.mli
4343
bin/all_ounit_tests.ml : ounit_tests/ounit_hashtbl_tests.ml
44+
bin/all_ounit_tests.ml : ext/ext_ident.ml
45+
bin/all_ounit_tests.ml : ext/ext_ident.mli
46+
bin/all_ounit_tests.ml : ext/hash_set_ident_mask.ml
47+
bin/all_ounit_tests.ml : ext/hash_set_ident_mask.mli
48+
bin/all_ounit_tests.ml : ounit_tests/ounit_ident_mask_tests.ml
4449
bin/all_ounit_tests.ml : ext/vec_gen.ml
4550
bin/all_ounit_tests.ml : ext/int_vec.ml
4651
bin/all_ounit_tests.ml : ext/int_vec.mli

0 commit comments

Comments
 (0)