Skip to content

Commit 195391b

Browse files
authored
Merge pull request #1024 from bloomberg/clean_up
add a sanitizer to check the invariant of each pass for quality control
2 parents 2bdf271 + 9efb5a1 commit 195391b

18 files changed

+1084
-887
lines changed

jscomp/Makefile

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ BYTE=ocamlc.opt$(EXE)
1010
OCAMLLEX=ocamllex.opt$(EXE)
1111
CAMLP4OF=camlp4of
1212
CAMLDEP=ocamldep.opt$(EXE)
13-
COMPFLAGS= -g -w +6-40-30 -warn-error +a-40-30
13+
COMPFLAGS= -g -w +6-40-30 -warn-error +a-40-30-23
1414

1515

16-
.SUFFIXES: .mli .ml .cmi .cmx .mll
16+
.SUFFIXES: .mli .ml .cmi .cmx .mll .c .o
1717

1818
print-% : ; @echo $* = $($*)
1919

@@ -187,8 +187,10 @@ SYNTAX_SRCS=ast_derive_constructor ast_derive_util ast_exp ast_external ast_lift
187187
SYNTAX_CMXS=$(addprefix syntax/, $(addsuffix .cmx, $(SYNTAX_SRCS)))
188188
DEPENDS_SRCS= depends_post_process bs_exception ast_extract binary_ast
189189
DEPENDS_CMXS=$(addprefix depends/, $(addsuffix .cmx, $(DEPENDS_SRCS)))
190-
CORE_SRCS= type_int_to_string type_util ocaml_stdlib_slots ident_util bs_conditional_initial ocaml_options ocaml_parse lam\
191-
lam_print lam_beta_reduce_util lam_inline_util lam_analysis js_cmj_format js_fun_env js_call_info js_closure js_op js_number js_cmj_datasets\
190+
CORE_SRCS= type_int_to_string type_util ocaml_stdlib_slots bs_conditional_initial ocaml_options ocaml_parse lam\
191+
lam_print lam_beta_reduce_util lam_inline_util lam_analysis\
192+
lam_closure\
193+
js_cmj_format js_fun_env js_call_info js_closure js_op js_number js_cmj_datasets\
192194
lam_exit_code j lam_module_ident lam_compile_util lam_stats config_util lam_compile_defs js_map js_fold js_fold_basic js_pass_scope\
193195
js_op_util js_analyzer js_shake js_exp_make js_long js_of_lam_exception js_of_lam_module js_of_lam_array js_of_lam_block js_of_lam_string\
194196
js_of_lam_tuple js_of_lam_record js_of_lam_float_record js_arr lam_compile_const \
@@ -458,6 +460,6 @@ clean:
458460
rm -f bsb/bs_json.ml bsb/sexp_lexer.ml core/js_fold.ml core/js_map.ml
459461
rm -f common/bs_version.ml
460462
rm -rf bin/config_whole_compiler.ml
461-
git clean -dfx ext common syntax depends core bsb
463+
git clean -dfx stubs ext common syntax depends core bsb
462464

463465
.PHONY: release releasebuild libs snapshotml force-snapshotml

jscomp/all.depend

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,8 @@ core/lam.cmi : ext/ident_set.cmi
216216
core/lam_print.cmi : core/lam.cmi
217217
core/lam_beta_reduce_util.cmi : core/lam.cmi
218218
core/lam_inline_util.cmi : core/lam.cmi
219-
core/lam_analysis.cmi : core/lam.cmi ext/ident_set.cmi ext/ident_map.cmi
219+
core/lam_analysis.cmi : core/lam.cmi
220+
core/lam_closure.cmi : core/lam.cmi ext/ident_set.cmi ext/ident_map.cmi
220221
core/js_cmj_format.cmi : ext/string_map.cmi core/lam.cmi \
221222
common/js_config.cmi
222223
core/js_fun_env.cmi : ext/ident_set.cmi
@@ -276,7 +277,7 @@ core/js_output.cmi : core/lam_compile_defs.cmi core/lam.cmi core/j.cmx
276277
core/lam_compile_global.cmi : core/lam_compile_env.cmi core/lam.cmi \
277278
core/j.cmx
278279
core/lam_dispatch_primitive.cmi : core/j.cmx
279-
core/lam_beta_reduce.cmi : core/lam_stats.cmi core/lam_analysis.cmi \
280+
core/lam_beta_reduce.cmi : core/lam_stats.cmi core/lam_closure.cmi \
280281
core/lam.cmi ext/ident_map.cmi
281282
core/lam_compile_external_call.cmi : core/lam_compile_defs.cmi core/j.cmx
282283
core/lam_compile_primitive.cmi : core/lam_compile_defs.cmi core/lam.cmi \
@@ -293,22 +294,22 @@ core/type_int_to_string.cmx :
293294
core/type_util.cmx : core/type_int_to_string.cmx common/ext_log.cmx \
294295
core/type_util.cmi
295296
core/ocaml_stdlib_slots.cmx :
296-
core/ident_util.cmx : common/ext_log.cmx
297297
core/bs_conditional_initial.cmx : common/bs_version.cmx \
298298
core/bs_conditional_initial.cmi
299299
core/ocaml_options.cmx : common/bs_version.cmx core/ocaml_options.cmi
300300
core/ocaml_parse.cmx : syntax/ppx_entry.cmx common/js_config.cmx \
301301
core/ocaml_parse.cmi
302302
core/lam.cmx : ext/ordered_hash_map_local_ident.cmx \
303303
core/ocaml_stdlib_slots.cmx ext/literals.cmx common/js_config.cmx \
304-
ext/int_vec_vec.cmx ext/int_vec.cmx ext/ident_set.cmx ext/ext_string.cmx \
305-
ext/ext_scc.cmx core/lam.cmi
304+
ext/int_vec_vec.cmx ext/int_vec.cmx ext/ident_set.cmx \
305+
ext/ident_hash_set.cmx ext/ext_string.cmx ext/ext_scc.cmx core/lam.cmi
306306
core/lam_print.cmx : core/lam.cmx core/lam_print.cmi
307307
core/lam_beta_reduce_util.cmx : core/lam.cmx ext/ident_hashtbl.cmx \
308308
core/lam_beta_reduce_util.cmi
309309
core/lam_inline_util.cmx : core/lam.cmx core/lam_inline_util.cmi
310-
core/lam_analysis.cmx : core/lam.cmx ext/ident_set.cmx ext/ident_map.cmx \
311-
core/lam_analysis.cmi
310+
core/lam_analysis.cmx : core/lam.cmx core/lam_analysis.cmi
311+
core/lam_closure.cmx : core/lam_analysis.cmx core/lam.cmx ext/ident_set.cmx \
312+
ext/ident_map.cmx core/lam_closure.cmi
312313
core/js_cmj_format.cmx : ext/string_map.cmx core/lam.cmx \
313314
common/js_config.cmx ext/ext_pervasives.cmx core/js_cmj_format.cmi
314315
core/js_fun_env.cmx : ext/ident_set.cmx ext/ext_list.cmx core/js_fun_env.cmi
@@ -410,11 +411,12 @@ core/lam_stats_util.cmx : core/lam_stats.cmx core/lam_compile_env.cmx \
410411
core/lam_stats_util.cmi
411412
core/lam_stats_export.cmx : ext/string_map.cmx core/lam_stats_util.cmx \
412413
core/lam_stats.cmx core/lam_module_ident.cmx core/lam_inline_util.cmx \
413-
core/lam_compile_env.cmx core/lam_analysis.cmx core/lam.cmx \
414-
common/js_config.cmx core/js_cmj_format.cmx ext/ident_set.cmx \
415-
ext/ident_map.cmx ext/ext_string.cmx ext/ext_pervasives.cmx \
416-
ext/ext_option.cmx common/ext_log.cmx ext/ext_list.cmx ext/ext_ident.cmx \
417-
ext/ext_filename.cmx core/lam_stats_export.cmi
414+
core/lam_compile_env.cmx core/lam_closure.cmx core/lam_analysis.cmx \
415+
core/lam.cmx common/js_config.cmx core/js_cmj_format.cmx \
416+
ext/ident_set.cmx ext/ident_map.cmx ext/ext_string.cmx \
417+
ext/ext_pervasives.cmx ext/ext_option.cmx common/ext_log.cmx \
418+
ext/ext_list.cmx ext/ext_ident.cmx ext/ext_filename.cmx \
419+
core/lam_stats_export.cmi
418420
core/lam_pass_alpha_conversion.cmx : core/lam_util.cmx \
419421
core/lam_stats_util.cmx core/lam_stats.cmx core/lam.cmx ext/ext_list.cmx \
420422
core/lam_pass_alpha_conversion.cmi
@@ -449,9 +451,9 @@ core/lam_dispatch_primitive.cmx : core/js_stmt_make.cmx \
449451
core/js_exp_make.cmx common/js_config.cmx core/js_analyzer.cmx core/j.cmx \
450452
common/ext_log.cmx ext/ext_list.cmx core/lam_dispatch_primitive.cmi
451453
core/lam_beta_reduce.cmx : core/lam_util.cmx core/lam_stats.cmx \
452-
core/lam_compile_global.cmx core/lam_beta_reduce_util.cmx \
453-
core/lam_analysis.cmx core/lam.cmx ext/ident_map.cmx \
454-
ext/ident_hashtbl.cmx core/lam_beta_reduce.cmi
454+
core/lam_compile_global.cmx core/lam_closure.cmx \
455+
core/lam_beta_reduce_util.cmx core/lam_analysis.cmx core/lam.cmx \
456+
ext/ident_map.cmx ext/ident_hashtbl.cmx core/lam_beta_reduce.cmi
455457
core/lam_compile_external_call.cmx : core/lam_dispatch_primitive.cmx \
456458
core/lam_compile_env.cmx core/lam_compile_defs.cmx core/js_op.cmx \
457459
core/js_of_lam_variant.cmx core/js_of_lam_option.cmx core/js_exp_make.cmx \
@@ -470,13 +472,13 @@ core/lam_compile.cmx : ext/literals.cmx core/lam_util.cmx \
470472
common/lam_methname.cmx core/lam_exit_code.cmx \
471473
core/lam_compile_primitive.cmx core/lam_compile_global.cmx \
472474
core/lam_compile_env.cmx core/lam_compile_defs.cmx \
473-
core/lam_compile_const.cmx core/lam_beta_reduce.cmx core/lam_analysis.cmx \
474-
core/lam.cmx core/js_stmt_make.cmx core/js_output.cmx \
475-
core/js_of_lam_record.cmx core/js_of_lam_array.cmx core/js_exp_make.cmx \
476-
common/js_config.cmx core/js_call_info.cmx core/js_ast_util.cmx \
477-
core/js_arr.cmx core/js_analyzer.cmx core/j.cmx ext/ident_set.cmx \
478-
ext/ident_map.cmx ext/ext_string.cmx ext/ext_list.cmx ext/ext_ident.cmx \
479-
core/lam_compile.cmi
475+
core/lam_compile_const.cmx core/lam_closure.cmx core/lam_beta_reduce.cmx \
476+
core/lam_analysis.cmx core/lam.cmx core/js_stmt_make.cmx \
477+
core/js_output.cmx core/js_of_lam_record.cmx core/js_of_lam_array.cmx \
478+
core/js_exp_make.cmx common/js_config.cmx core/js_call_info.cmx \
479+
core/js_ast_util.cmx core/js_arr.cmx core/js_analyzer.cmx core/j.cmx \
480+
ext/ident_set.cmx ext/ident_map.cmx ext/ext_string.cmx ext/ext_list.cmx \
481+
ext/ext_ident.cmx core/lam_compile.cmi
480482
core/lam_pass_exits.cmx : core/lam_util.cmx core/lam_beta_reduce.cmx \
481483
core/lam_analysis.cmx core/lam.cmx ext/int_hashtbl.cmx ext/ident_map.cmx \
482484
core/lam_pass_exits.cmi
@@ -485,9 +487,9 @@ core/lam_pass_lets_dce.cmx : core/lam_util.cmx core/lam_beta_reduce.cmx \
485487
ext/ident_hashtbl.cmx ext/ext_list.cmx core/lam_pass_lets_dce.cmi
486488
core/lam_pass_remove_alias.cmx : core/lam_util.cmx core/lam_stats.cmx \
487489
core/lam_module_ident.cmx core/lam_inline_util.cmx \
488-
core/lam_compile_env.cmx core/lam_beta_reduce.cmx core/lam_analysis.cmx \
489-
core/lam.cmx ext/ident_set.cmx ext/ident_hashtbl.cmx ext/ext_list.cmx \
490-
core/lam_pass_remove_alias.cmi
490+
core/lam_compile_env.cmx core/lam_closure.cmx core/lam_beta_reduce.cmx \
491+
core/lam_analysis.cmx core/lam.cmx ext/ident_set.cmx \
492+
ext/ident_hashtbl.cmx ext/ext_list.cmx core/lam_pass_remove_alias.cmi
491493
core/lam_compile_group.cmx : ext/string_hash_set.cmx core/lam_util.cmx \
492494
core/lam_stats_export.cmx core/lam_stats.cmx \
493495
core/lam_pass_remove_alias.cmx core/lam_pass_lets_dce.cmx \

jscomp/bin/whole_compiler.d

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ bin/whole_compiler.ml : ext/int_vec_vec.ml
167167
bin/whole_compiler.ml : ext/int_vec_vec.mli
168168
bin/whole_compiler.ml : ext/ext_scc.ml
169169
bin/whole_compiler.ml : ext/ext_scc.mli
170+
bin/whole_compiler.ml : ext/ident_hash_set.ml
171+
bin/whole_compiler.ml : ext/ident_hash_set.mli
170172
bin/whole_compiler.ml : core/ocaml_stdlib_slots.ml
171173
bin/whole_compiler.ml : ext/ordered_hash_map_gen.ml
172174
bin/whole_compiler.ml : ext/ordered_hash_map_local_ident.ml
@@ -254,6 +256,8 @@ bin/whole_compiler.ml : core/js_of_lam_record.ml
254256
bin/whole_compiler.ml : core/js_of_lam_record.mli
255257
bin/whole_compiler.ml : core/lam_beta_reduce_util.ml
256258
bin/whole_compiler.ml : core/lam_beta_reduce_util.mli
259+
bin/whole_compiler.ml : core/lam_closure.ml
260+
bin/whole_compiler.ml : core/lam_closure.mli
257261
bin/whole_compiler.ml : core/js_of_lam_module.ml
258262
bin/whole_compiler.ml : core/js_of_lam_module.mli
259263
bin/whole_compiler.ml : core/lam_compile_global.ml
@@ -304,8 +308,6 @@ bin/whole_compiler.ml : core/lam_exit_code.ml
304308
bin/whole_compiler.ml : core/lam_exit_code.mli
305309
bin/whole_compiler.ml : core/lam_compile.ml
306310
bin/whole_compiler.ml : core/lam_compile.mli
307-
bin/whole_compiler.ml : ext/ident_hash_set.ml
308-
bin/whole_compiler.ml : ext/ident_hash_set.mli
309311
bin/whole_compiler.ml : core/lam_group.ml
310312
bin/whole_compiler.ml : core/lam_group.mli
311313
bin/whole_compiler.ml : core/lam_dce.ml

0 commit comments

Comments
 (0)