On Nov 20, 2007 4:02 AM, Elf <address@hidden> wrote:
i think it can be solved fairly trivially: add a pass to go over the inlined
procedures, keeping a stack of inlined names. drop elements off the stack once
the top-level ex-continuation returns. check any new names against the stack.
if a name is encountered again, add a named let wrapper around the entire
procedure which binds the same arguments, and call that looper instead.
is there a reason this shouldnt work as expected?
That still won't terminate. What do you mean by "call the looper"? At
compile-time or at run-time? Can you give me an example? (Sorry,
I'm a bit thick in the moment).
cheers,
felix