2024-11-21 23:49 AEDT

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000384mercuryBugpublic2015-04-02 12:13
Reporterjuliensf 
Assigned Tozs 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000384: Stage 1 compiler directory fails in hlc.gc grade with syntax errors in optimisation interfaces
DescriptionBuild the current git HEAD with rotd-2015-03-30 in hlc.gc with -O5 --intermodule-optimization
fails in the compiler directory due to:

gmake[1]: Entering directory '/Users/jfischer/Mercury-Workspaces/mercury.local-4/compiler'
/Users/jfischer/Mercury-Install/mercury-rotd-2015-03-30/bin//mmc --compile-to-c --grade hlc.gc -O5 --intermodule-optimization --flags COMP_FLAGS --no-common-struct analysis > analysis.err 2>&1
/var/folders/pd/5lypc6_j3vnf65q9x5y9s3p40000gn/T//mmake.MygSwR:1973876: recipe for target 'analysis.c_date' failed
gmake[1]: *** [analysis.c_date] Error 1
gmake[1]: Leaving directory '/Users/jfischer/Mercury-Workspaces/mercury.local-4/compiler'

The contents of analysis.err are:

hlds.passes_aux.opt:003: Error: syntax error in inst body at bound/1.
hlds.passes_aux.opt:004: Error: syntax error in inst body at bound/1.

Looking at hlds.passes_aux.opt, the insts in question are:

:- inst (hlds.passes_aux.par_proc_task) == bound((hlds.passes_aux).update_proc($typed_inst(pred(hlds.hlds_module.module_info, hlds.hlds_pred.proc_info, hlds.hlds_pred.proc_info), ((hlds.passes_aux).proc_task))) ; (hlds.passes_aux).update_proc_ids($typed_inst(pred(hlds.hlds_module.module_info, hlds.hlds_pred.pred_proc_id, hlds.hlds_pred.proc_info, hlds.hlds_pred.proc_info), ((hlds.passes_aux).proc_ids_task))) ; (hlds.passes_aux).update_proc_ids_pred($typed_inst(pred(hlds.hlds_module.module_info, hlds.hlds_pred.pred_proc_id, hlds.hlds_pred.pred_info, hlds.hlds_pred.proc_info, hlds.hlds_pred.proc_info), ((hlds.passes_aux).proc_ids_pred_task)))).
:- inst (hlds.passes_aux.seq_proc_task) == bound((hlds.passes_aux).update_module($typed_inst(pred(hlds.hlds_pred.pred_proc_id, hlds.hlds_pred.proc_info, hlds.hlds_pred.proc_info, hlds.hlds_module.module_info, hlds.hlds_module.module_info), ((hlds.passes_aux).module_task))) ; (hlds.passes_aux).update_module_cookie($typed_inst(pred(hlds.hlds_pred.pred_proc_id, hlds.hlds_pred.proc_info, hlds.hlds_pred.proc_info, hlds.hlds_module.module_info, hlds.hlds_module.module_info, univ.univ, univ.univ), ((hlds.passes_aux).module_cookie_task)), ground) ; (hlds.passes_aux).update_module_pred($typed_inst(pred(hlds.hlds_pred.pred_proc_id, hlds.hlds_pred.pred_info, hlds.hlds_pred.proc_info, hlds.hlds_pred.proc_info, hlds.hlds_module.module_info, hlds.hlds_module.module_info), ((hlds.passes_aux).module_pred_task))) ; (hlds.passes_aux).update_module_pred_cookie($typed_inst(pred(hlds.hlds_pred.pred_proc_id, hlds.hlds_pred.pred_info, hlds.hlds_pred.proc_info, hlds.hlds_pred.proc_info, hlds.hlds_module.module_info, hlds.hlds_module.module_info, univ.univ, univ.univ), ((hlds.passes_aux).module_pred_cookie_task)), ground)).

I would guess the issue here is the appearance of $typed_inst in the inst which isn't valid Mercury syntax.


TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0000821

zs (developer)

I am pretty sure the change that lead to this is the change I committed on march 5, which pre-propagated types into the insts of the inst table. However, the right fix is not to undo that, but to fix the code that outputs insts so that it doesn't output typed insts into interface files. (We do still want to output them for debugging.)

I will fix this later today.

~0000822

zs (developer)

Fix committed 2 april 2015.
+Notes

-Issue History
Date Modified Username Field Change
2015-03-31 11:22 juliensf New Issue
2015-03-31 14:08 zs Note Added: 0000821
2015-03-31 14:08 zs Assigned To => zs
2015-03-31 14:08 zs Status new => assigned
2015-04-02 12:13 zs Note Added: 0000822
2015-04-02 12:13 zs Status assigned => resolved
2015-04-02 12:13 zs Resolution open => fixed
+Issue History