思いっ切りはみ出し

ある種 stress test? MIT/GNU SchemeScheme 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))))))))))))))))))))
   )
  )