Menu

#39 non-top-level (declare special)

closed-fixed
clisp (524)
5
2005-01-30
2001-05-17
No

A long-standing bug (more than 2 years!)
(let ((x 0))
(declare (special x))
(let ((x 1))
(let ((y x))
(declare (special x))
y)))
should return 1 while it returns 0 in CLISP.
Bruno said:
It's a "simple" implementation bug.
But fixing it requires changing
- LAMBDA in eval.d/control.d,
- LET and LET* in control.d, the walker in init.lisp,
- LAMBDA, LET, LET* in compiler.lisp.
This can't be done in two days,
it takes more time to get right.

Discussion

  • Sam Steingold

    Sam Steingold - 2004-08-09

    Logged In: YES
    user_id=5735

    on a sound consideration of 3+ years,
    I decided to punt on this.

     
  • Sam Steingold

    Sam Steingold - 2004-08-09
    • assigned_to: sds --> haible
     
  • Sam Steingold

    Sam Steingold - 2005-01-30
    • status: open --> closed-fixed
     
  • Sam Steingold

    Sam Steingold - 2005-01-30

    Logged In: YES
    user_id=5735

    fixed:
    sds: interpreted
    bruno: compiled

     

Log in to post a comment.