[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: procedure-source inconsistency
From: |
Neil Jerram |
Subject: |
Re: procedure-source inconsistency |
Date: |
Mon, 13 Aug 2007 19:34:14 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) |
Eric Eisner <address@hidden> writes:
> Hello,
>
> The built-in 'procedure-source' changes its output in procedures calling
> 'let' after the procedure in is applied. For example "(define (f) (let ((x
> 3)) x)) (procedure-source f)" returns '(lambda () (let ((x 3)) x))
> But "(begin (f) (procedure-source f))" returns '(lambda () (let* ((x 3)) x))
> When we were using procedure-source to store a procedure to file, it was not
> correctly compared to a newly created identical procedure because a let had
> been transformed to a let*. In summary, the problem here is that
> procedure-source is not consistent for the same function when called at
> different times.
>
> I'm running guile 1.8.1 on Debian Etch, linux 2.6.18.
Does it help if you do
(read-enable 'copy)
before loading the code that you are concerned about?
Regards,
Neil