[m-dev.] bootstrap failed

Simon TAYLOR stayl at students.cs.mu.oz.au
Tue Feb 18 15:07:36 AEDT 1997


Hi Fergus,

> The nightly bootstrap check failed.  Lots of problems compiling the
> stage 2 library.  It looks like the problems are probably caused by
> your changes to quantification.


Estimated hours taken: 0.2

compiler/make_hlds.m
	Fix a stupid mistake that broke the compiler.

compiler/mode_util.m
	Stop $typed_ground and $typed_inst appearing in error messages.


Index: make_hlds.m
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/make_hlds.m,v
retrieving revision 1.219
diff -u -r1.219 make_hlds.m
--- make_hlds.m	1997/02/17 01:26:41	1.219
+++ make_hlds.m	1997/02/17 22:26:26
@@ -921,13 +921,13 @@
 	;
 		{ ConsDefns2 = [ConsDefn | ConsDefns1] }	
 	),
-	{ map__set(Ctors0, ConsId, [ConsDefn | ConsDefns1], Ctors1) },
+	{ map__set(Ctors0, ConsId, ConsDefns2, Ctors1) },
 	{ ConsId = cons(qualified(_, ConsName), Arity) ->
 		% Add an unqualified version of the cons_id to the cons_table.
 		UnqualifiedConsId = cons(unqualified(ConsName), Arity),
-		( map__search(Ctors1, UnqualifiedConsId, ConsDefns2) ->
+		( map__search(Ctors1, UnqualifiedConsId, ConsDefns3) ->
 			map__set(Ctors1, UnqualifiedConsId,
-				[ConsDefn | ConsDefns2], Ctors2)
+				[ConsDefn | ConsDefns3], Ctors2)
 		;
 			map__set(Ctors1, UnqualifiedConsId, 
 				[ConsDefn], Ctors2)
Index: mode_util.m
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/mode_util.m,v
retrieving revision 1.80
diff -u -r1.80 mode_util.m
--- mode_util.m	1997/02/17 01:26:48	1.80
+++ mode_util.m	1997/02/18 04:03:30
@@ -1784,8 +1784,9 @@
 strip_builtin_qualifiers_from_inst(bound(Uniq, BoundInsts0),
 					bound(Uniq, BoundInsts)) :-
 	strip_builtin_qualifiers_from_bound_inst_list(BoundInsts0, BoundInsts).
-strip_builtin_qualifiers_from_inst(defined_inst(Name0), defined_inst(Name)) :-
-	strip_builtin_qualifiers_from_inst_name(Name0, Name).
+strip_builtin_qualifiers_from_inst(defined_inst(Name0), Inst) :-
+	strip_builtin_qualifiers_from_inst_name(Name0,
+		defined_inst(Name0), Inst).
 strip_builtin_qualifiers_from_inst(abstract_inst(Name0, Args0),
 				abstract_inst(Name, Args)) :-
 	strip_builtin_qualifier_from_sym_name(Name0, Name),
@@ -1804,16 +1805,23 @@
 	BoundInst = functor(ConsId, Insts),
 	list__map(strip_builtin_qualifiers_from_inst, Insts0, Insts).
 
-:- pred strip_builtin_qualifiers_from_inst_name(inst_name::in, inst_name::out)
-	is det.
-strip_builtin_qualifiers_from_inst_name(InstName0, InstName) :-
+:- pred strip_builtin_qualifiers_from_inst_name(inst_name::in, (inst)::in,
+		(inst)::out) is det.
+
+strip_builtin_qualifiers_from_inst_name(InstName0, Inst0, Inst) :-
 	( InstName0 = user_inst(SymName0, Insts0) ->
 		strip_builtin_qualifier_from_sym_name(SymName0, SymName),
 		strip_builtin_qualifiers_from_inst_list(Insts0, Insts),
-		InstName = user_inst(SymName, Insts)
+		Inst = defined_inst(user_inst(SymName, Insts))
+	; InstName0 = typed_inst(_, InstName1) ->
+		% Don't output the $typed_inst in error messages.
+		strip_builtin_qualifiers_from_inst_name(InstName1, Inst0, Inst)
+	; InstName0 = typed_ground(Uniq, _Type) ->
+		% Don't output the $typed_ground in error messages.
+		Inst = ground(Uniq, no)
 	;
 		% for the compiler-generated insts, don't bother.
-		InstName = InstName0
+		Inst = Inst0
 	).
 
 :- pred strip_builtin_qualifiers_from_pred_inst(maybe(pred_inst_info)::in,



More information about the developers mailing list