[Openmcl-devel] Compiler infinite loop
    Tim Bradshaw 
    tfb at tfeb.org
       
    Mon Sep 20 03:16:12 PDT 2010
    
    
  
On 20 Sep 2010, at 10:04, Pascal J. Bourguignon wrote:
> Symbol macrolets don't take a parameter.  Their expansions are constant.
No, they're not.  They may depend on things which are not parameters to the macro, such as variables defined at expansion-time or other things.  So in order to detect such a loop you'd both need to do an occurs check (which would tell you if you'd seem this symbol before while expanding) *and* be able to know that the expansion of the macro was in fact constant.  That's obviously not soluble in general though it probably is in almost all interesting cases as I imagine that the non-constant ones are rare to the point of non-existance.
Still, this seems like a heroic thing for a system to do, still less be required to do.
It's easy to concoct other examples of where macros can cause compilers to loop, of course.
    
    
More information about the Openmcl-devel
mailing list