[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
procedure-source inconsistency
From: |
Eric Eisner |
Subject: |
procedure-source inconsistency |
Date: |
Fri, 10 Aug 2007 17:01:09 -0400 |
User-agent: |
Thunderbird 2.0.0.6 (X11/20070728) |
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.
-Eric
- procedure-source inconsistency,
Eric Eisner <=