mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-20 03:43:51 +00:00
Estimated hours taken: 0.5 Fix bugs that were stopping *.res and *.out files being cleaned up properly. tests/Mmake.common: tests/general/accumulator/Mmakefile: tests/invalid/Mmakefile: tests/misc_tests/Mmakefile: tests/tabling/Mmakefile: tests/term/Mmakefile: tests/valid/Mmakefile: tests/warnings/Mmakefile: Make cleaning tasks depend on (real)clean_local rather than (real)clean. This is because tests/startup and tests/shutdown use the *_local targets. tests/general/Mmakefile: Fix bugs in the recursive mmake calls.
206 lines
4.8 KiB
Plaintext
206 lines
4.8 KiB
Plaintext
#-----------------------------------------------------------------------------#
|
|
|
|
main_target: all
|
|
|
|
include ../Mmake.common
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# please keep these lists sorted
|
|
AGC_SOURCES= \
|
|
agc_graph.m \
|
|
agc_ho_pred.m \
|
|
agc_ite.m \
|
|
agc_unbound_typevars.m \
|
|
agc_unbound_typevars2.m \
|
|
agc_unused_in.m
|
|
|
|
TRAIL_SOURCES= \
|
|
complex_failure.m \
|
|
semi_fail_in_non_ite.m
|
|
|
|
TYPECLASS_SOURCES= \
|
|
func_method.m \
|
|
instance_superclass.m \
|
|
instance_unconstrained_tvar.m
|
|
|
|
OTHER_SOURCES= \
|
|
compl_unify_bug.m \
|
|
complicated_unify.m \
|
|
constructor_arg_names.m \
|
|
dcg_test.m \
|
|
deforest_loop.m \
|
|
deforest_rerun_det.m \
|
|
det_condition.m \
|
|
det_inference.m \
|
|
det_switch.m \
|
|
double_vn.m \
|
|
easy_nondet_test.m \
|
|
easy_nondet_test_2.m \
|
|
empty_bound_inst_list.m \
|
|
empty_switch.m \
|
|
error.m \
|
|
explicit_quant.m \
|
|
fail_ite.m \
|
|
followcode_det_problem.m \
|
|
func_int_bug_main.m \
|
|
headvar_not_found.m \
|
|
higher_order.m \
|
|
higher_order2.m \
|
|
higher_order3.m \
|
|
higher_order_implied_mode.m \
|
|
ho_func_call.m \
|
|
ho_inst.m \
|
|
implied_mode.m \
|
|
indexing.m \
|
|
inhibit_warn_test.m \
|
|
inlining_bug.m \
|
|
int64.m \
|
|
intermod_lambda.m \
|
|
intermod_quote.m \
|
|
intermod_test.m \
|
|
lambda_inference.m\
|
|
lambda_instmap_bug.m \
|
|
lambda_output.m \
|
|
lambda_quant.m \
|
|
lambda_quant_bug.m \
|
|
lambda_recompute.m \
|
|
lambda_struct_bug.m \
|
|
lambda_switch.m \
|
|
lambda_type.m \
|
|
lazy_list.m \
|
|
liveness_nonlocals.m \
|
|
livevals_seq.m \
|
|
loop.m \
|
|
loop_in_disj.m \
|
|
middle_rec_labels.m \
|
|
modes_bug.m \
|
|
module_a.m \
|
|
module_b.m \
|
|
module_c.m \
|
|
module_d.m \
|
|
module_e.m \
|
|
mostly_uniq_mode_inf.m \
|
|
multidet_prune1.m \
|
|
multidet_test.m \
|
|
nasty_func_test.m \
|
|
nested_mod_type_bug.m \
|
|
nondet_live.m \
|
|
parsing_bug_main.m \
|
|
pred_with_no_modes.m \
|
|
qualified_cons_id.m \
|
|
same_length_2.m \
|
|
semidet_disj.m \
|
|
shape_type.m \
|
|
simplify_bug.m \
|
|
soln_context.m \
|
|
some_switch.m \
|
|
stack_alloc.m \
|
|
subtype_switch.m \
|
|
switch_detection_bug.m \
|
|
switch_detection_bug2.m \
|
|
switches.m \
|
|
tricky_ite.m \
|
|
two_pragma_c_codes.m \
|
|
two_way_unif.m \
|
|
type_inf_ambig_test.m \
|
|
unbound_tvar_in_lambda.m \
|
|
undead_proc.m \
|
|
uniq_unify.m \
|
|
uniq_mode_inf_bug.m \
|
|
unreachable_code.m \
|
|
unused_args_test2.m \
|
|
vn_float.m
|
|
|
|
# Code generation is not yet implemented for Aditi updates,
|
|
# so don't attempt to compile to C.
|
|
# aditi_update.m
|
|
|
|
# The mode system can't handle the following test cases yet:
|
|
# assoc_list.m
|
|
# determinism.m
|
|
# mode_merge_insts.m
|
|
|
|
|
|
# Base grades `jump' and `fast'
|
|
# cannot be used with accurate GC or type classes
|
|
|
|
ifneq "$(findstring asm_,$(GRADE))" ""
|
|
SOURCES0=$(AGC_SOURCES) $(TYPECLASS_SOURCES) $(OTHER_SOURCES)
|
|
else
|
|
ifneq "$(findstring jump,$(GRADE))" ""
|
|
SOURCES0=$(OTHER_SOURCES)
|
|
else
|
|
ifneq "$(findstring fast,$(GRADE))" ""
|
|
SOURCES0=$(OTHER_SOURCES)
|
|
else
|
|
SOURCES0=$(AGC_SOURCES) $(TYPECLASS_SOURCES) $(OTHER_SOURCES)
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifneq "$(findstring .mm,$(GRADE))" ""
|
|
SOURCES=$(SOURCES0)
|
|
else
|
|
SOURCES=$(SOURCES0) $(TRAIL_SOURCES)
|
|
endif
|
|
|
|
DEPS = $(SOURCES:%.m=%.depend) aditi_update.depend
|
|
OBJS = $(SOURCES:%.m=$(os_subdir)%.o)
|
|
PROGS = $(SOURCES:%.m=%)
|
|
|
|
all: objs
|
|
|
|
# some regression tests only failed with particular options enabled
|
|
# (please keep these lists sorted)
|
|
|
|
GRADEFLAGS-agc_graph = --gc accurate
|
|
GRADEFLAGS-agc_ho_pred = --gc accurate
|
|
GRADEFLAGS-agc_ite = --gc accurate
|
|
GRADEFLAGS-agc_unbound_typevars = --gc accurate
|
|
GRADEFLAGS-agc_unbound_typevars2 = --gc accurate
|
|
GRADEFLAGS-agc_unused_in = --gc accurate
|
|
GRADEFLAGS-complex_failure = --use-trail
|
|
GRADEFLAGS-semi_fail_in_non_ite = --use-trail
|
|
|
|
MCFLAGS-aditi_update = --aditi
|
|
MCFLAGS-compl_unify_bug = -O3
|
|
MCFLAGS-deforest_loop = -O3 --intermodule-optimization
|
|
MCFLAGS-deforest_rerun_det = -O3 --check-termination
|
|
MCFLAGS-double_vn = -O4
|
|
MCFLAGS-explicit_quant = --halt-at-warn
|
|
MCFLAGS-higher_order_implied_mode = -O-1
|
|
MCFLAGS-inhibit_warn_test = --inhibit-warnings --halt-at-warn
|
|
MCFLAGS-intermod_lambda = --intermodule-optimization
|
|
MCFLAGS-intermod_lambda2 = --intermodule-optimization
|
|
MCFLAGS-intermod_quote = --intermodule-optimization
|
|
MCFLAGS-intermod_quote2 = --intermodule-optimization
|
|
MCFLAGS-intermod_test = --intermodule-optimization
|
|
MCFLAGS-intermod_test2 = --intermodule-optimization
|
|
MCFLAGS-livevals_seq = -O5 --opt-space
|
|
MCFLAGS-middle_rec_labels = --middle-rec --no-follow-vars
|
|
MCFLAGS-mostly_uniq_mode_inf = --infer-all
|
|
MCFLAGS-pred_with_no_modes = --infer-all
|
|
MCFLAGS-simplify_bug = -O-1
|
|
MCFLAGS-two_way_unif = -O-1
|
|
MCFLAGS-type_inf_ambig_test = --infer-all
|
|
MCFLAGS-uniq_mode_inf_bug = --infer-all
|
|
MCFLAGS-vn_float = -O5
|
|
|
|
check: objs aditi_update.err
|
|
|
|
objs: $(OBJS)
|
|
|
|
depend: $(DEPS)
|
|
|
|
printtests:
|
|
@echo $(PROGS)
|
|
|
|
printobjs:
|
|
@echo $(OBJS)
|
|
|
|
clean_local:
|
|
rm -f *.err *.h
|
|
|
|
#-----------------------------------------------------------------------------#
|