On 30.07.2024 21:51, Tomas Volf wrote: > Hello, > > I think I found a bug in (srfi srfi-64) module shipped with GNU Guile. > > test-with-runner has following signature: > > (test-with-runner runner decl-or-expr ...) > > That, according to syntax-case rules (and how test-apply works with the same > definition) should mean that it accepts 0 or more decl-or-expr. However that > does not seem to be the case: > > (use-modules (srfi srfi-64)) > (let ((r (test-runner-null))) > (test-with-runner r)) > > Leading to: > > ;;; Syntax error: > ;;; unknown location: lambda: bad lambda in form (lambda ()) > ice-9/psyntax.scm:2824:12: In procedure syntax-violation: > Syntax error: > unknown location: lambda: bad lambda in form (lambda ()) > > Have a nice day > Tomas Volf > > Should be easy to fix by adding a preceding arm to the syntax-rules, explicitly handling the case of zero decl-or-expr elements as a no-op.
I've just done that in my implementation: https://codeberg.org/taylan/scheme-srfis/commit/5e34f47f383fd5a35c88a52bd1d32a65a49b7f0a - Taylan