diff: disable class method specialisation

David Glen JEFFERY dgj at cs.mu.OZ.AU
Wed Feb 4 13:02:39 AEDT 1998


Hi,

Can you please review this, Fergus?

(BTW, this bug was picked up by the nightly tests a few days ago, but I didn't
realise it until Zoltan tried to bootstrap. Is there any way we can be
automatically informed of failure of the nightly tests? I guess we should all
check the logs every day, but its very easy to forget).


Estimated hours taken: 1

Disable the specialisation of class methods, since it did not work in the
presence of implied instances. The problem is that where there is a constraint
on the instance decl, the methods for that instance need an extra typeclass
info, which did not get passed during specialisation.

compiler/polymorphism.m:
	Disable class method specialisation until a fix is found.

cvs diff: Diffing .
Index: polymorphism.m
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/polymorphism.m,v
retrieving revision 1.124
diff -u -r1.124 polymorphism.m
--- polymorphism.m	1998/01/29 08:39:30	1.124
+++ polymorphism.m	1998/02/04 01:40:53
@@ -1158,7 +1158,16 @@
 				module_info_pred_info(ModuleInfo, PredId0,
 						PredInfo),
 				pred_info_get_markers(PredInfo, Markers),
-				check_marker(Markers, class_method)
+				check_marker(Markers, class_method),
+
+				% enabling this optimisation causes a bug
+				% where implied instances are concerned. 
+				% When the class method call is inlined, the
+				% extra typeclass_infos from the instance
+				% declaration are not included. Until that
+				% bug is fixed, we will disable the
+				% optimisation.
+				semidet_fail
 			->
 				% Get the class methods, and figure out
 				% the method number of this class method.
cvs diff: Diffing notes


love and cuddles,
dgj
-- 
David Jeffery (dgj at cs.mu.oz.au) |  Marge: Did you just call everyone "chicken"?
MEngSc student,                 |  Homer: Noooo.  I swear on this Bible!
Department of Computer Science  |  Marge: That's not a Bible; that's a book of
University of Melbourne         |         carpet samples!
Australia                       |  Homer: Ooooh... Fuzzy.



More information about the developers mailing list