[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Use of null (begin) blocks is deprecated in Guile stable V2.0, use u
From: |
David Kastrup |
Subject: |
Re: Use of null (begin) blocks is deprecated in Guile stable V2.0, use unspecified? and/or *unspecified* instead. |
Date: |
Tue, 22 Nov 2011 14:10:25 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.90 (gnu/linux) |
Ian Hulin <address@hidden> writes:
> This is forwarded from the Guile bug list. Bug-squad please create a
> LilyPond issue for this - we need to change our code:
>
> Files affected appear (according to git grep) to be:
> lily/mensural-ligature.cc
> lily/system.cc
> scm/c++.scm
> scm/define-event-classes.scm
> scm/music-functions.scm
I am responsible for most of those, and will fix them. No issue
required here.
For my defense, neither *unspecified* nor unspecified? are documented in
the Guile-1.8 manual though working at the prompt. So while the 1.8
branch is still maintained, you should report this as a documentation
bug. And after all, it _does_ affect upwards-compatibility.
And in fact, the only _documented_ way of generating this value from
Scheme is
-- 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.
So if they want people to have a reasonably working upgrade path from
1.8, they better make sure that 1.8 documents the things they want to
be seeing in code.
--
David Kastrup