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

From: Roman Klochkov (kalimehtar at mail.ru)
Date: Fri May 23 14:02:02 EDT 2014

 And now it is broken in 6.0.1

> (require disassemble)
. . ..\..\..\..\Program Files\Racket\collects\ffi\unsafe.rkt:198:2: ffi-obj: couldn't get "scheme_jit_find_code_end" from #f 

I installed it from pkgs.racket-lang.org 
Maybe should be something like #ifdef or depend on another version of Racket (now it depends upon Racket6.0.0.4)

Wed, 21 May 2014 19:50:05 -0400 от Sam Tobin-Hochstadt <samth at cs.indiana.edu>:
>On Wed, May 21, 2014 at 6:12 PM, Neil Toronto < neil.toronto at gmail.com > wrote:
>> On 05/21/2014 02:09 PM, Sam Tobin-Hochstadt wrote:
>>>
>>> Racketeers,
>>>
>>> Thanks to some improvements from Matthew, my `disassemble` package is
>>> now much easier to use.
>>>
>>> [samth at punge:~/sw/disassemble (master) plt] racket
>>> Welcome to Racket v6.0.1.10.
>>>>
>>>> (require disassemble)
>>>> (define (const x) 1)
>>>> (disassemble const)
>>>
>>> 00000000  8943FC            mov [ebx-0x4],eax
>>> 00000003  83C3FC            add ebx,byte -0x4
>>> 00000006  B803000000        mov eax,0x3
>>> 0000000B  83C41C            add esp,byte +0x1c
>>> 0000000E  5F                pop edi
>>> 0000000F  5E                pop esi
>>> 00000010  5B                pop ebx
>>> 00000011  5D                pop ebp
>>> 00000012  C3                ret
>>>>
>>>>
>>
>> That's crazy awesome. What were the improvements?
>
>First, Racket now tells you the end of the machine code for a jitted
>procedure with `scheme_jit_find_code_end` (so messing about with
>guessing the size is no longer needed) and it also can JIT on-demand
>(so you don't have to call a function before disassembling it) with
>`scheme_jit_now`.
>
>Sam
>_________________________
>  Racket Developers list:
>   http://lists.racket-lang.org/dev


-- 
Roman Klochkov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20140523/b03e2bd1/attachment.html>

Posted on the dev mailing list.