more on determinacy checking

Peter Schachte pets at students.cs.mu.oz.au
Fri Dec 5 16:44:14 AEDT 1997


Just after deleting all the messages on this subject, I realized there may
be another solution to this problem.

I think the problem arises because switch detection is used both for
determinacy checking/inference and for, well, switch detection.  But there's
nothing to say you can't use switch detection just for determinacy.

So here's a proposal.  Analyze the code as you do now.  If you get a
determinacy error, then switch into "try harder" mode and try again, this
time not stopping at any call of any kind (consider the whole body of the
pred). If you don't find a switch, fine, it's really a determinacy error. 
If you do, and it turns out the proc really is deterministic, then there's
no determinacy error. In this case, if --strict-sequential was not selected,
then go ahead and turn it into a switch.  If --strict-sequential was
selected, then you can't actually turn it into a switch, but that doesn't
change the fact that the proc really is deterministic. 

Would this work?


-Peter Schachte			| Patriotism is the last refuge of a
pets at cs.mu.OZ.AU		| scoundrel. -- Samuel Johnson, 7 Apr. 1775 
http://www.cs.mu.oz.au/~pets/	| 
PGP key available on request	| 




More information about the developers mailing list