[racket] XREPL ,en in 5.3 doesn't re-evaluate?

From: Greg Hendershott (greghendershott at gmail.com)
Date: Mon Aug 13 17:39:05 EDT 2012

Did the behavior of XREPL's ,en change in 5.3?

I'm seeing evaluate the module only on the first ,en. I want
subsequent invocations of ,en to re-evaluate the module, as was the
case before 5.3.

Longer version:

For a long time I've had emacs set up to map the F5 key to do
something roughly similar to what F5 does in DrRacket.

1. Save the buffer. Even if it doesn't need saving. Equivalent of `touch'.

2. Send the Racket process a ,cd to the buffer's path:

(comint-send-string (get-buffer-process "*scheme*")
                    (format ",cd %s\n"
                            (file-name-directory (buffer-file-name))))

3. Send the Racket process a ,en with the buffer's base name:

(comint-send-string (get-buffer-process "*scheme*")
                    (format ",en %s\n"
                            (file-name-nondirectory (buffer-file-name))))

In 5.2.1 and earlier this has worked swimmingly. For example doing an
,en on a hello.rkt like this...

#lang racket
(displayln "Hello")

...will print "Hello" every time.

But in 5.3, it only prints "Hello" the first time. Thereafter it seems
to act like, "Yeah I'm already in that module, dude."

How can I make it re-evaluate?

Posted on the users mailing list.