[racket-dev] , en and enter! sometimes do nothing, and it's changing over releases?

From: Greg Hendershott (greghendershott at gmail.com)
Date: Sat Feb 9 13:39:17 EST 2013

I'm trying to look into it myself, even though it's over my head. On
the bright side it's a chance for me to learn more about how things
like modules and namespaces work, below the surface.

Also I'm starting to look at DrRacket source, because its F5/Run is
reliable. Is that because it's using `enter!` differently, or not
using it at all?  And how if at all does it differ in other respects
to what things like XREPL and Geiser do?

This whole subject area has been a bit confusing for me, so,
opportunity to learn more. Having said that, this is something that
probably ought to "just work", and it does seem like there is some bug
at the moment.

On Fri, Feb 8, 2013 at 3:29 PM, Ray Racine <ray.racine at gmail.com> wrote:
> I've been seeing the same behavior.  I think something got broke in
> racket/enter "enter!".   I don't think it is a Geiser, XRepl issue other
> then both I believe leverage the racket/enter module.  Bit of a pain in the
> arse bug, nice if someone could look in to it.
> Thanks,
> Ray
> On Thu, Feb 7, 2013 at 9:15 AM, Greg Hendershott <greghendershott at gmail.com>
> wrote:
>> Once upon a time, ~5.3, the XREPL ,en command would always reload a
>> file provided the timestamp changed.
>> As a result, I could do something _roughly_ like DrRacket F5 in Emacs:
>> Touch the file and ,en it.  The whole file would be evaluated, and I'd
>> have a REPL where I could explore/tweak.
>> But somewhere around ~5.3.1, ,en stopped doing this reliably.
>> Sometimes it would just do nothing, even if the file timestamp had
>> changed (and even if I made some change to the contents, just in case
>> it was doing a checksum or whatever).
>> I thought to try using enter!. And that worked consistently.
>> But somewhere around ~5.3.2, enter! has stopped behaving consistently.
>> Does anyone have any idea would could be going on??
>> More info/comments:
>> - I normally use XREPL. (require xrepl) is the _only_ thing in my
>> racketrc.
>> - The above issue happens with or without XREPL. (I tried again today
>> to confirm.)
>> - Although I love the idea of Geiser, I've had it also sometimes not
>> reevaluate (similar issue). Anyway sometimes I just want to strip
>> things down to be simpler; lately I'm in such a phase where I haven't
>> been using it. I might or could use it again someday.
>> - A (related?) issue is that sometimes the first invocation of enter!
>> gives an error like this:
>>   > (enter! "client.rkt")
>>   module->namespace: module not instantiated in the current namespace
>>     name:
>> #<resolved-module-path:"/Users/greg/src/scheme/collects/lob/example/client.rkt">
>>     context...:
>>      /Users/greg/src/plt/racket/collects/racket/enter.rkt:33:0: do-enter!
>>      /Users/greg/src/plt/racket/collects/racket/private/misc.rkt:87:7
>> But then a second invocation works fine. i.e. Need to do it twice in a
>> row.
>> _________________________
>>   Racket Developers list:
>>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.