I think the best fix would be to make TALInterpreter (from zope.tal) perform a recursion check in do_useMacro: if the same macro already appears in the macro stack, *and* self.tal is False, then the recursive macro expansion should silently stop.
In the shorter term I'm considering a workaround that disables macro expansion checks just for PageTemplateTracebackSupplement.
I think the best fix would be to make TALInterpreter (from zope.tal) perform a recursion check in do_useMacro: if the same macro already appears in the macro stack, *and* self.tal is False, then the recursive macro expansion should silently stop.
In the shorter term I'm considering a workaround that disables macro expansion checks just for PageTemplateTra cebackSupplemen t.