racket / macro-debugger

Other
8 stars 16 forks source link

Macro stepper fails on a file #24

Closed david-christiansen closed 4 years ago

david-christiansen commented 6 years ago

Summary

The macro stepper dumps the following message when I run it on a particular file:

derivation-parser: error on token #20: <local-value, #<syntax:/home/davidc/racket/collects/syntax/parse/private/lib.rkt:63:55 -string>>
  context...:
   /home/davidc/racket/share/pkgs/parser-tools-lib/parser-tools/yacc.rkt:347:16: parsing-loop
   .../more-scheme.rkt:261:28
   /home/davidc/racket/share/pkgs/macro-debugger/macro-debugger/view/term-record.rkt:123:4: recache-deriv! method in term-record%
   /home/davidc/racket/share/pkgs/macro-debugger/macro-debugger/view/term-record.rkt:63:16: get-deriv-hidden? method in term-record%
   /home/davidc/racket/share/pkgs/macro-debugger/macro-debugger/view/stepper.rkt:70:24
   /home/davidc/racket/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:454:6
   /home/davidc/racket/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:505:32
   /home/davidc/racket/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:653:3

To reproduce

  1. Install felt commit ae4b48976fd669f4ba6d53ba3a65dcbc0aa6dbfd from https://github.com/david-christiansen/felt
  2. Open the following file (called felt-test.rkt) in DrRacket:
    
    #lang felt @[#:program-lang typed/racket]

@require[scribble/examples racket/sandbox]

@title{Testing}

@require[(for-label racket/base)]

@program[(provide (all-defined-out))]

@defthing[foo any?]{The @racket[foo]} @program[(define foo 33)] @program[foo]

@program[ (: add (-> Number Number Number)) (define (add x y) (+ x y))]

@defform[(garbage expr)]{A terrible macro} @program[(define-syntax-rule (garbage e) `(GARBAGE ,e ,e)) (garbage (begin (displayln 'hi) (set! foo (+ foo foo)) foo))]

@define[ev (parameterize ([sandbox-output 'string] [sandbox-error-output 'string]) (make-evaluator 'racket '(require "felt-test.scrbl")

:allow-for-require '("felt-test.scrbl")))]

@examples[#:eval ev #:hidden 17] @examples[#:eval ev foo] @examples[#:eval ev foo]

3. Attempt to use the macro stepper. It fails with the posted error.

# Extra info
The debugging file dumped by the macro stepper:
[felt-test.debug.zip](https://github.com/racket/macro-debugger/files/1394551/felt-test.debug.zip)

$ racket --version Welcome to Racket v6.10.

rmculpepper commented 4 years ago

This works in the current pre-release.

david-christiansen commented 4 years ago

Thanks!