Skip to content

Commit 3ee6089

Browse files
authored
Merge pull request #997 from bloomberg/continue_specialization
specialize int vector
2 parents 1306cc6 + 7aa7c23 commit 3ee6089

30 files changed

+1968
-1315
lines changed

jscomp/Makefile

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,18 @@ ext/int_hash_set.ml: ext/hash_set.cppo.ml
3434
cppo -D TYPE_INT $< -o $@
3535
ext/ident_hash_set.ml: ext/hash_set.cppo.ml
3636
cppo -D TYPE_IDENT $< -o $@
37+
ext/hash_set.ml: ext/hash_set.cppo.ml
38+
cppo -D TYPE_FUNCTOR $< -o $@
39+
ext/hash_set_poly.ml: ext/hash_set.cppo.ml
40+
cppo $< -o $@
3741

42+
ext/int_vec.ml: ext/vec.cppo.ml
43+
cppo -D TYPE_INT $< -o $@
44+
ext/resize_array.ml: ext/vec.cppo.ml
45+
cppo -D TYPE_FUNCTOR $< -o $@
3846
## Stubs
3947
.c.o:
40-
$(NATIVE) -c $< -ccopt -o -ccopt $@
48+
$(NATIVE) -ccopt -o -ccopt $@ -c $<
4149

4250
STUBS_OBJS=stubs/ext_basic_hash_stubs.o
4351

@@ -73,12 +81,15 @@ common/bs_version.ml: build_version.js ../package.json
7381
STUB_SRCS = bs_hash_stubs
7482
OUNIT_SRCS = oUnit oUnitDiff oUnitLogger oUnitTypes oUnitUtils oUnitChooser
7583
OUNIT_CMXS = $(addprefix ounit/, $(addsuffix .cmx, $(OUNIT_SRCS)))
76-
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
84+
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_stubs_test ounit_hash_set_tests ounit_scc_tests ounit_json_tests ounit_vec_test ounit_tests_main
7785
OUNIT_TESTS_CMXS = $(addprefix ounit_tests/, $(addsuffix .cmx, $(OUNIT_TESTS_SRCS)))
7886

7987
EXT_SRCS = ext_util\
8088
ext_int\
81-
ext_array ext_bytes ext_char resize_array string_vec\
89+
ext_array ext_bytes ext_char\
90+
vec_gen \
91+
resize_array \
92+
string_vec\
8293
int_vec int_vec_vec bal_set_common\
8394
bal_tree bal_map_common bal_map\
8495
ext_file_pp ext_format \
@@ -91,11 +102,13 @@ EXT_SRCS = ext_util\
91102
ext_pervasives ext_pp ext_ref ext_sys \
92103
hash_set_gen hash_set string_hash_set int_hash_set \
93104
ordered_hash_set ordered_hash_map union_find \
94-
ident_set int_map literals string_map \
105+
ident_set\
106+
int_map literals string_map \
95107
string_set ext_scc ext_pp_scope\
96108
ext_io\
97109
ext_ident\
98110
ident_hash_set\
111+
hash_set_poly\
99112
ident_hashtbl\
100113
int_hashtbl\
101114
ext_filename

jscomp/all.depend

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ ext/ext_int.cmx : ext/ext_int.cmi
44
ext/ext_array.cmx : ext/ext_array.cmi
55
ext/ext_bytes.cmx : ext/ext_bytes.cmi
66
ext/ext_char.cmx : ext/ext_char.cmi
7-
ext/resize_array.cmx : ext/ext_array.cmx ext/resize_array.cmi
7+
ext/vec_gen.cmx : ext/ext_array.cmx
8+
ext/resize_array.cmx : ext/vec_gen.cmx ext/resize_array.cmi
89
ext/string_vec.cmx : ext/resize_array.cmx ext/string_vec.cmi
9-
ext/int_vec.cmx : ext/resize_array.cmx ext/int_vec.cmi
10+
ext/int_vec.cmx : ext/vec_gen.cmx ext/int_vec.cmi
1011
ext/int_vec_vec.cmx : ext/resize_array.cmx ext/int_vec.cmx \
1112
ext/int_vec_vec.cmi
1213
ext/bal_set_common.cmx :
@@ -51,6 +52,7 @@ ext/ext_ident.cmx : ext/string_hashtbl.cmx ext/string_hash_set.cmx \
5152
ext/ext_string.cmx ext/ext_ident.cmi
5253
ext/ident_hash_set.cmx : ext/hash_set_gen.cmx ext/ext_ident.cmx \
5354
stubs/bs_hash_stubs.cmx ext/ident_hash_set.cmi
55+
ext/hash_set_poly.cmx : ext/hash_set_gen.cmx ext/hash_set_poly.cmi
5456
ext/ident_hashtbl.cmx : ext/hashtbl_gen.cmx ext/ext_ident.cmx \
5557
stubs/bs_hash_stubs.cmx ext/ident_hashtbl.cmi
5658
ext/int_hashtbl.cmx : ext/hashtbl_gen.cmx ext/ext_int.cmx \
@@ -62,10 +64,10 @@ ext/ext_int.cmi :
6264
ext/ext_array.cmi :
6365
ext/ext_bytes.cmi :
6466
ext/ext_char.cmi :
65-
ext/resize_array.cmi :
66-
ext/string_vec.cmi : ext/resize_array.cmi
67-
ext/int_vec.cmi : ext/resize_array.cmi
68-
ext/int_vec_vec.cmi : ext/resize_array.cmi ext/int_vec.cmi
67+
ext/resize_array.cmi : ext/vec_gen.cmx
68+
ext/string_vec.cmi : ext/vec_gen.cmx
69+
ext/int_vec.cmi : ext/vec_gen.cmx
70+
ext/int_vec_vec.cmi : ext/vec_gen.cmx ext/int_vec.cmi
6971
ext/bal_tree.cmi : ext/bal_set_common.cmx
7072
ext/bal_map.cmi : ext/bal_map_common.cmx
7173
ext/ext_file_pp.cmi :
@@ -97,6 +99,7 @@ ext/ext_pp_scope.cmi : ext/ident_set.cmi
9799
ext/ext_io.cmi :
98100
ext/ext_ident.cmi :
99101
ext/ident_hash_set.cmi : ext/hash_set_gen.cmx
102+
ext/hash_set_poly.cmi :
100103
ext/ident_hashtbl.cmi : ext/hashtbl_gen.cmx
101104
ext/int_hashtbl.cmi : ext/hashtbl_gen.cmx
102105
ext/ext_filename.cmi :
@@ -220,7 +223,7 @@ core/lam_stats.cmi : core/lam_module_ident.cmi core/lam.cmi \
220223
core/config_util.cmi : core/js_cmj_format.cmi
221224
core/lam_compile_defs.cmi : core/lam_stats.cmi core/j.cmx core/ident_map.cmi
222225
core/js_fold_basic.cmi : core/lam_module_ident.cmi core/j.cmx \
223-
ext/ident_set.cmi ext/hash_set.cmi
226+
ext/ident_set.cmi ext/hash_set_poly.cmi
224227
core/js_pass_scope.cmi : core/j.cmx ext/ident_set.cmi
225228
core/js_op_util.cmi : core/js_op.cmx core/j.cmx
226229
core/js_analyzer.cmi : core/j.cmx ext/ident_set.cmi
@@ -249,7 +252,7 @@ core/js_pass_flatten_and_mark_dead.cmi : core/j.cmx
249252
core/js_ast_util.cmi : core/j.cmx
250253
core/lam_dce.cmi : core/lam_group.cmi
251254
core/lam_compile_env.cmi : core/lam_module_ident.cmi core/lam.cmi \
252-
common/js_config.cmi core/js_cmj_format.cmi ext/hash_set.cmi
255+
common/js_config.cmi core/js_cmj_format.cmi ext/hash_set_poly.cmi
253256
core/lam_stats_util.cmi : core/lam_stats.cmi core/lam.cmi
254257
core/lam_stats_export.cmi : core/lam_stats.cmi core/lam_module_ident.cmi \
255258
core/lam.cmi core/js_cmj_format.cmi core/ident_map.cmi
@@ -322,7 +325,7 @@ core/lam_compile_defs.cmx : core/lam_stats.cmx core/j.cmx core/ident_map.cmx \
322325
core/js_map.cmx : core/j.cmx
323326
core/js_fold.cmx : core/j.cmx
324327
core/js_fold_basic.cmx : core/lam_module_ident.cmx core/js_fold.cmx \
325-
common/js_config.cmx core/j.cmx ext/ident_set.cmx ext/hash_set.cmx \
328+
common/js_config.cmx core/j.cmx ext/ident_set.cmx ext/hash_set_poly.cmx \
326329
ext/ext_ident.cmx core/js_fold_basic.cmi
327330
core/js_pass_scope.cmx : core/js_fun_env.cmx core/js_fold.cmx \
328331
core/js_closure.cmx ext/ident_set.cmx common/ext_log.cmx \
@@ -390,7 +393,7 @@ core/lam_group_pass.cmx : core/lam.cmx
390393
core/lam_compile_env.cmx : core/type_util.cmx ext/string_map.cmx \
391394
core/lam_module_ident.cmx core/lam.cmx core/js_stmt_make.cmx \
392395
core/js_exp_make.cmx common/js_config.cmx core/js_cmj_format.cmx \
393-
ext/hash_set.cmx ext/ext_ident.cmx core/config_util.cmx \
396+
ext/hash_set_poly.cmx ext/ext_ident.cmx core/config_util.cmx \
394397
core/lam_compile_env.cmi
395398
core/lam_stats_util.cmx : core/lam_stats.cmx core/lam_compile_env.cmx \
396399
core/lam.cmx ext/ident_hashtbl.cmx ext/ext_list.cmx \
@@ -537,8 +540,12 @@ ounit_tests/ounit_bal_tree_tests.cmx : ounit_tests/ounit_tests_util.cmx \
537540
ounit_tests/ounit_path_tests.cmx : ounit/oUnit.cmx ext/ext_filename.cmx
538541
ounit_tests/ounit_union_find_tests.cmx : ext/union_find.cmx ounit/oUnit.cmx \
539542
ext/int_vec_vec.cmx ext/int_vec.cmx ext/ext_string.cmx
543+
ounit_tests/ounit_hash_stubs_test.cmx : ounit_tests/ounit_tests_util.cmx \
544+
ounit/oUnit.cmx ext/int_hash_set.cmx ext/hash_set_poly.cmx \
545+
stubs/bs_hash_stubs.cmx
540546
ounit_tests/ounit_hash_set_tests.cmx : ext/string_hash_set.cmx \
541-
ext/ordered_hash_set.cmx ounit/oUnit.cmx ext/hash_set.cmx
547+
ext/ordered_hash_set.cmx ounit/oUnit.cmx ext/hash_set_poly.cmx \
548+
ext/hash_set.cmx
542549
ounit_tests/ounit_scc_tests.cmx : ounit/oUnit.cmx ext/int_vec_vec.cmx \
543550
ext/int_vec.cmx ext/ext_string.cmx ext/ext_scc.cmx
544551
ounit_tests/ounit_json_tests.cmx : ext/string_map.cmx ounit/oUnit.cmx \

jscomp/bin/all_ounit_tests.d

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ bin/all_ounit_tests.ml : ext/ext_util.mli
2323
bin/all_ounit_tests.ml : ext/hash_set_gen.ml
2424
bin/all_ounit_tests.ml : ext/hash_set.ml
2525
bin/all_ounit_tests.ml : ext/hash_set.mli
26+
bin/all_ounit_tests.ml : ext/hash_set_poly.ml
27+
bin/all_ounit_tests.ml : ext/hash_set_poly.mli
2628
bin/all_ounit_tests.ml : ext/ordered_hash_set.ml
2729
bin/all_ounit_tests.ml : ext/ordered_hash_set.mli
2830
bin/all_ounit_tests.ml : stubs/bs_hash_stubs.ml
@@ -48,10 +50,11 @@ bin/all_ounit_tests.ml : ext/literals.mli
4850
bin/all_ounit_tests.ml : ext/ext_filename.ml
4951
bin/all_ounit_tests.ml : ext/ext_filename.mli
5052
bin/all_ounit_tests.ml : ounit_tests/ounit_path_tests.ml
51-
bin/all_ounit_tests.ml : ext/resize_array.ml
52-
bin/all_ounit_tests.ml : ext/resize_array.mli
53+
bin/all_ounit_tests.ml : ext/vec_gen.ml
5354
bin/all_ounit_tests.ml : ext/int_vec.ml
5455
bin/all_ounit_tests.ml : ext/int_vec.mli
56+
bin/all_ounit_tests.ml : ext/resize_array.ml
57+
bin/all_ounit_tests.ml : ext/resize_array.mli
5558
bin/all_ounit_tests.ml : ext/int_vec_vec.ml
5659
bin/all_ounit_tests.ml : ext/int_vec_vec.mli
5760
bin/all_ounit_tests.ml : ext/ext_scc.ml

0 commit comments

Comments
 (0)