[racket-dev] Another JIT question

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sat May 11 11:29:49 EDT 2013

The last example seems to be the only one that uses `write', while the
others implicitly use `print'.

Does

 (write #\c)

crash? How about

 (print #\c)

?

At Fri, 10 May 2013 21:19:25 -0400, Jon Zeppieri wrote:
> My experiment with immediately represented characters has gotten to a
> state where a non-JIT build passes all tests, but a JIT build fails
> (as in, segfaults) on the following program:
> 
> #\c
> 
> It also fails on:
> 
> (integer->char 99)
> 
> and:
> 
> (define (foo x) (integer->char x))
> (foo 99)
> 
> but not on:
> 
> (define (foo x) (write (integer->char x)))
> (foo 99)
> 
> So there seems to be a problem returning a character from a jitted
> function back to the repl. I haven't been able to figure out where
> this occurs, though. gdb's stack traces don't seem very useful for
> jitted code, and I can't use Sam's disassembler, because the process
> dies.
> 
> Any idea where to look or what debugging tools might be useful?
> 
> -Jon
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.