Mercury Bugs - mercury
View Issue Details
0000384mercuryBugpublic2015-03-31 11:222015-04-02 12:13
Reporterjuliensf 
Assigned Tozs 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
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

Notes
(0000821)
zs   
2015-03-31 14:08   
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   
2015-04-02 12:13   
Fix committed 2 april 2015.

Issue History
2015-03-31 11:22juliensfNew Issue
2015-03-31 14:08zsNote Added: 0000821
2015-03-31 14:08zsAssigned To => zs
2015-03-31 14:08zsStatusnew => assigned
2015-04-02 12:13zsNote Added: 0000822
2015-04-02 12:13zsStatusassigned => resolved
2015-04-02 12:13zsResolutionopen => fixed