[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#748: Elisp: lexical-let and cyclic structures
From: |
Michael Heerdegen |
Subject: |
bug#748: Elisp: lexical-let and cyclic structures |
Date: |
Wed, 20 Aug 2008 15:57:16 +0200 |
When using the reader constructs `#N=' and `#N#' for cyclic
structures, lexical-let sometimes produces errors which don't occur
with let.
Example: Eval the following:
(defun f (start)
(lexical-let (start start) ;; return a closure
#1=(lambda (x) (if (= x start) x
(+ x (#1# (1- x)))))))
Then evaluating f ends with an error:
(f 3)
"Variable binding depth exceeds max-specpdl-size"
The problem also occurs without lambdas. Examples:
(let () '#1=(#1#)) ;; ==> (#0)
(lexical-let () '#1=(#1#)) ;; Error
(let ((x '#1=(#1#))) (lexical-let () x)) ;; ==> (#0)
`#1=(#1#) ;; Error
- bug#748: Elisp: lexical-let and cyclic structures,
Michael Heerdegen <=