[Top][All Lists]

[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* **<=**