[racket-dev] [racket] Profiling mostly macro-generated definitions?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri Aug 31 09:35:12 EDT 2012

Sorry that I've been slow to catch on in this thread...

Yes, stack traces in JIT mode don't really work in Win64, and that's
why `profile' gives no information. I'll try to improve Win64 context
support sometime soon.

At Fri, 31 Aug 2012 07:05:14 -0500, Robby Findler wrote:
> >> I believe I'm using the 32 bit build in all those cases, tho. Are you
> >> using the 64 bit one?
> >
> > Yes.
> 
> 
> Thanks. I see this too. Here's a shorter program illustrating the difference.
> 
> #lang racket
> (require profile)
> 
> (define (f x)
>   (if (zero? x)
>       (continuation-mark-set->context
>        (current-continuation-marks))
>       (values (f (- x 1)))))
> 
> (unless (zero? (random 1))
>   (set! f void))
> 
> (f 10)
> 
> 
> Running this with a 64bit racket under windows returns the empty list,
> but with a 32bit racket under windows returns a list of a bunch of
> stuff:
> 
> C:\Users\robby\git\plt>Racket.exe C:\Users\robby\tmp.rkt
> (list (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33 133))
> (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 3
> 3 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33 133))
> (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0
>  33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33 133))
> (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4
>  0 33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33
> 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt>
>  4 0 33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33
> 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rk
> t> 4 0 33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33
> 133)) (cons '|[running body]| (srcloc #<path:C:\U
> sers\robby\tmp.rkt> #f #f #f #f)))
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.