--- Begin Message ---
Subject: |
Problems using optargs with function docstrings |
Date: |
Thu, 08 Dec 2011 11:01:30 +0000 |
User-agent: |
RoundCube Webmail/0.2.2 |
There seems to be a nasty interference between the (ice-9 optargs)
module, Guile's support for function docstrings, and a function's
top-level definition context.
For example, the following works:
(use-modules (ice-9 optargs))
(define* (foo #:optional (bar "baz"))
(define (frob p) (display p) (newline))
(frob bar))
(foo)
with output:
baz
But when you add a docstring, it doesn't.
(use-modules (ice-9 optargs))
(define* (foo #:optional (bar "baz"))
"Docs go here"
(define (frob p) (display p) (newline))
(frob bar))
(foo)
This generates an error:
ERROR: In procedure memoization:
ERROR: Bad define placement (define (frob p) (display p) (newline)).
I'm not sure if this is a bug, but it looks like one to me. ;-)
Peter
--
Peter Brett <address@hidden>
Remote Sensing Research Group
Surrey Space Centre
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#10250: Problems using optargs with function docstrings |
Date: |
Fri, 09 Dec 2011 19:12:43 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
On Fri 09 Dec 2011 00:37, Peter TB Brett <address@hidden> writes:
> On Thu, 08 Dec 2011 23:39:22 +0000, Ian Price <address@hidden>
> wrote:
>
>> Which version are you using? I'm on current stable-2.0(e7b2efd)
>
> This was with Guile 1.8.7 (guile-5:1.8.7-6.fc14).
Sounds like it's fixed in the 2.0.x series. We would accept a patch to
fix it for 1.8.x, but I'm not going to work on it myself.
Regards, and happy hacking,
Andy
--
http://wingolog.org/
--- End Message ---