From: Martin C. <cra...@co...> - 2012-09-25 15:30:21
|
Nikodemus Siivola wrote on Tue, Sep 25, 2012 at 09:29:58AM +0300: > On Tuesday, September 25, 2012, Martin Cracauer wrote: > > > Not sure why I can't recurse in things used at compile time anymore > > but nothing that would have cost time to change. > > Can you give an example of this? I'm not sure what you mean.. A regular defun, then it goes through what we call declare-foldable-constant-operator which resolves to sb-c::defknown <funname> ... (sb-c::movable sb-c::foldable sb-c::flushable) If the original defun is having recursive calls, then compilation fails now, used to work in 1.0.57.10. Simply putting the recursive elements in a labels inside defun fixes it. ; caught WARNING: ; recursion in known function definition ; policy=((COMPILATION-SPEED . 1) (DEBUG . 2) (SB-EXT:INHIBIT-WARNINGS . 1) ; (SAFETY . 3) (SPACE . 1) (SPEED . 1)) ; arg types=(SIMPLE-STRING (MEMBER :INVOKE-ERROR-P) T) I might be able to post a complete example but it looked intentional, not like a bug. Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer <cra...@co...> http://www.cons.org/cracauer/ |