思いっ切りはみ出し
ある種 stress test? MIT/GNU Scheme と Scheme 48 では error になる。Gauche, Guile, STKlos では通る。SigScheme は現在 symbol lookup が不適切なので assertion failure が出る。Debug dump を見る限り expansion は問題なく行われている様子。
(let-syntax ((macro (syntax-rules () ; Make the nests deeper if you've increased ; DEFAULT_INDEX_BUF_SIZE in macro.c. ((_ (((((((((((((((((((a b ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...)...) ; 20 deep '(((((((((((((((((((((b b) ... a) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...)) ((_ #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(a b ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...)) '#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#((b b) ... a) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...) ...)) ((_ . _) 'mismatch) ))) (list (macro ()) (macro (((((((((((((((((((0 (1 2) () #(3) 4 5)))))))))))))))))))) (macro #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(0 (1 2) #(3) 4 5))))))))))))))))))))) (macro ((((((((((((((((((0 (1 2) () #(3) 4 5))))))))))))))))))) (macro #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(0 (1 2) #(3) 4 5)))))))))))))))))))) (macro (((((((((((((((((((0 (1 2) () #(3) 4 5) 6))))))))))))))))))) (macro #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(0 (1 2) #(3) 4 5) 6)))))))))))))))))))) ) )