Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#618 closed defect (fixed)

bound variables get stripped incorrectly

Reported by: felix winkelmann Owned by: felix winkelmann
Priority: major Milestone: 4.9.0
Component: expander Version: 4.7.x
Keywords: syntax strip-syntax Cc:
Estimated difficulty:

Description (last modified by felix winkelmann)

Matthew Flatt reports:

The following program prints a gensym in v4.7.0 and 4aaea216cc9887, but I think it should print the symbol 'x:

 (define-syntax c 
   (syntax-rules () 
     [(_) 
      (let ([x 10]) 
        (let-syntax ([z (syntax-rules ()
                          [(_) (quote x)])])
          (write (z))
          (newline)))]))

 (c)

I wrote the example because I'm suspicious of "compiler.scm" treating ##core#quote' and ##core#syntax the same. Maybe ##sys#strip-syntax in "expand.scm" is supposed to do different things in quote and syntax mode; the comment "if se is given, retain bound vars" in ##sys#strip-syntax` suggests that it had two modes at some point in the past.

Change History (5)

comment:1 Changed 13 years ago by felix winkelmann

Description: modified (diff)

comment:2 Changed 13 years ago by sjamaan

Owner: changed from sjamaan to felix winkelmann
Status: newassigned

Please try 41cff6f in the resurrected expander-simplifications branch.

comment:3 Changed 13 years ago by sjamaan

also 315fc36

comment:4 Changed 13 years ago by sjamaan

Resolution: fixed
Status: assignedclosed

Was merged, closing

comment:5 Changed 12 years ago by felix winkelmann

Milestone: 4.8.04.9.0

Milestone 4.8.0 deleted

Note: See TracTickets for help on using tickets.