[racket-dev] syntax-case and stack trace

From: Casey Klein (clklein at eecs.northwestern.edu)
Date: Fri Jul 15 22:53:59 EDT 2011


FWIW, the big taints commit also changed the value of this expression:

(let ([s #'x])
  (equal? s
          (with-handlers ([exn:fail:syntax? (compose first
            (raise-syntax-error #f "message" s))))

On Fri, Jul 15, 2011 at 5:40 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> This is a bug in errortrace that was introduced with the switch to
> taints. I'm fixing it.
> At Fri, 15 Jul 2011 16:27:57 -0500, Casey Klein wrote:
>> Running the following program in DrRacket 5.1.1 highlights the `error'
>> expression if debugging is enabled:
>> #lang racket
>> (syntax-case 'a ()
>>   (_ (error 'boom)))
>> Running the same program in 4d7584d/g doesn't highlight anything.
>> Without the `syntax-case' around it, both versions highlight the
>> `error' expression.
>> Is this a bug? If not, is there a reliable way to associate a source
>> location with a runtime error?

Posted on the dev mailing list.