2 ms·
I didn't try macroexpanding it yet, but when I make the 9 a runtime-parameter, I eventually get a stack-overflow with SBCL not TCO-ing the "H" binding in labels
by aidenn0 5mo ago
I didn't try macroexpanding it yet, but when I make the 9 a runtime-parameter, I eventually get a stack-overflow with SBCL not TCO-ing the "H" binding in labels.
The comments make me think this is ported from scheme, which has precise TCO rules.
[edit] macroexpanded:
(LABELS ((H-37 (US-38)
(IF (NULL US-38)
NIL
(LET ((FILE (CAR US-38)) (US1-39 (CDR US-38)))
(LABELS ((H-43 (US-44)
(IF (NULL US-44)
(H-37 US1-39)
(LET ((RANK (CAR US-44)) (US1-45 (CDR US-44)))
(CONS (FORMAT NIL "~a~a" FILE RANK) (H-43 US1-45))))))
(H-43 RANKS))))))
(H-37 FILES))