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

From: Michael Wilber (mwilber at uccs.edu)
Date: Sat Feb 9 14:30:29 EST 2013

Is this related to the enter bug?

$ racket
Welcome to Racket v5.3.2.3.
> (enter! slideshow/pict)
define-values: assignment disallowed;
 cannot re-define a constant
  constant: invoke-unit/core
  in module: "/home/michael/local/racket/collects/racket/unit.rkt"
  context...:
   /home/michael/local/racket/collects/racket/unit.rkt: [running body]
   standard-module-name-resolver
   /home/michael/local/racket/collects/mzlib/unit.rkt: [traversing imports]
   /home/michael/local/racket/collects/texpict/mrpict.rkt: [traversing imports]
   /home/michael/local/racket/collects/slideshow/pict.rkt: [traversing imports]
   /home/michael/local/racket/collects/racket/enter.rkt:51:0: enter-require
   /home/michael/local/racket/collects/racket/enter.rkt:33:0: do-enter!

It, and similar issues, bit geiser too. For a time, Geiser would give
similar problems even when simply evaluating (require slideshow/pict):
http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&database=default&pr=13096

I'm not sure how, but Geiser recently implemented some workaround in one
of their recently released versions:

M-x run-racket

Welcome to Racket v5.3.2.3.
racket@> ,enter slideshow/pict
racket at slideshow/pict> (circle 10)
(a circle appears in the REPL)


Ray Racine <ray.racine at gmail.com> writes:
> 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
>>
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.