remove-unused
Stephen Weeks
MLton@sourcelight.com
Fri, 26 Oct 2001 10:54:08 -0700
I am confused by the code in remove-unused. I don't understand what
"doesTerminate" means. You sometimes seem to use it to mean "must
terminate" and other times to mean "may terminate". Which is it?
As evidence, I point to the fact that if a function contains a Return
statement, it is marked as "doesTerminate". This corresponds to "may
terminate".
But, in translating calls you eliminate a call if it does not side
effect, does not raise, and doesTerminate. To me, this requires
the "must terminate" interpretation, and therefore seems wrong.
Clarification?