[racket-dev] Odd bug with begin0 and call-with-values

From: J. Ian Johnson (ianj at ccs.neu.edu)
Date: Mon Nov 5 16:46:29 EST 2012

Code that used to work is now failing with a pull of the master today. I can't reproduce it in small amounts of code, which makes me think it's another weird JIT problem.

I have a harness of this kind:
(define (print-values . vs) (for ([v vs]) (display v) (newline)))
 (with-limits 3600 4096 (call-with-values (lambda () (begin0 (time (analysis program)) (dump-memory-stats))) print-values)

The dump is not reached. Instead, (analysis program) finishes with the expected number of values, and once those values pass out of the expression, I get an error of the following kind:
exn:fail:contract:arity

It expects 1 value instead of the arbitrary amount it should expect for the print-values.
I can supply a large amount of code that exercises this behavior, but if this is enough to go off, great.
Thanks,
-Ian

Posted on the dev mailing list.