val _ = () and exception optimization in MLton
Henry Cejtin
henry@sourcelight.com
Fri, 11 Aug 2000 18:10:15 -0500
I'm confused. Wasn't this the whole point of the compile-time part of the
handler-stack? (`This' being to not bother manipulating the handler stack in
memory unless you called something.)
I still don't see why the current code doesn't cause more push-pops of the
handler stack. If I have a loop which is called inside a handle, and the
loop is inlined, but in the loop it calls a procedure which is NOT inlined,
then won't the new code push on the handler stack just before the call and
pop after? I.e., take the example I sent you, and assume that outer IS
inlined by inner is NOT inlined. Then the old code would do 1 handler
push/pop while the new code will do 1000 push/pops, right? I'm not arguing
that the handler stack gets deeper, just that it fribulates more.
Am I still missing something?