guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Null (begin) blocks - V2.0.3 reports error was OK in V2.0.2


From: Ian Hulin
Subject: Null (begin) blocks - V2.0.3 reports error was OK in V2.0.2
Date: Mon, 21 Nov 2011 17:25:57 +0000
User-agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1

Hi Andy, Ludo,

LilyPond code uses (begin) as a special list terminator for some data
structures, and tests this using a custom predicate void:
(define-public (void? x) (eq? x (begin)))
This works in V1.8, and apparently used to work in 2.0.2 (no errors),
but in 2.0.3
(begin) is OK at the repl, (with readline enabled and activated), but
in any sort of procedure using it causes a diagnostic, reporting
either at the repl or in .scm files,

xxx: source expression failed to match any pattern in form (begin).

The documentation says:

6.13.1 Evaluating a series of expressions
<snip>
— syntax: begin expr1 expr2 ...

    The expression(s) are evaluated in left-to-right order and the
value of the last expression is returned as the value of the
begin-expression. This expression type is used when the expressions
before the last one are evaluated for their side effects.

    Guile also allows the expression (begin), a begin with no
sub-expressions. Such an expression returns the `unspecified' value.

How do we mend our code, or has Guile V2.0.3 broken?

Cheers,

Ian Hulin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]