[racket-dev] Easy disassembly of JIT-compiled procedures

From: Greg Hendershott (greghendershott at gmail.com)
Date: Tue May 27 10:13:41 EDT 2014

> Unfortunately, I think that making disassembly for contracted
> functions work would be both tricky, and not as helpful as you'd want,
> since showing the behavior of the contract at the JIT level is not
> trivial.  So for the moment, I think this is just not going to work.

That makes sense. But what I tried above was a work-around; what I
actually wanted would be more like:

#lang typed/racket/base  ;; <- TR
(require disassemble/typed) ;; <-- hypothetical TR version of `disassembly`
(: f (Number -> Number))
(define (f x)
  (+ x 10))
(disassemble f)

IOW to see the disassembly of the "raw" un-contracted `f` that would
be called directly from other Typed Racket code (IIUC).

p.s. Having said all that, I don't personally have an immediate _need_
to use this. I just thought, oh, it would be interesting to diff the
disassembly of the untyped and Typed variants of some functions.

Posted on the dev mailing list.