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