Well first let me back up and provide a simple recipe for the first issue -- `,enter` not behaving like `enter!` with respect to reloading changed files. IIRC this started to happen circa 5.3.1.
First let's try `enter!`: $ /Applications/Racket_v5.3.1/bin/racket Welcome to Racket v5.3.1. -> ,cd /tmp ; now in /tmp -> ,sh echo '#lang racket' > x.rkt echo '"hi"' >> x.rkt exit (require racket/enter) -> (enter! "x.rkt") "hi" "x.rkt"> (enter! "x.rkt") ;does nothing. OK fine. "x.rkt"> ,sh echo '"there"' >> x.rkt exit (enter! "x.rkt") ;re-loads changed file. Yay! [re-loading /tmp/x.rkt] "hi" "there" "x.rkt"> (exit) Notice that after x.rkt is changed, `enter!` _does_ re-load and re-evaluate the file and display "hi\nthere". But next let's try using `,enter`: $ /Applications/Racket_v5.3.1/bin/racket Welcome to Racket v5.3.1. -> ,cd /tmp ; now in /tmp -> ,sh echo '#lang racket' > x.rkt echo '"hi"' >> x.rkt exit ,enter x.rkt "hi" "x.rkt"> ,enter x.rkt ;does nothing. OK fine. "x.rkt"> ,sh echo '"there"' >> x.rkt exit ,enter x.rkt ;still does nothing. Boo! "x.rkt"> (exit) Notice that after x.rkt is changed, `,enter` does _not_ re-load and re-evaluate th fiel and display "hi\nthere". Why not? Shouldn't it? That's one issue. At the time I noticed it was I in the middle of something, stuck with `enter!`, and didn't worry about it. Second issue is sometimes `enter!` doesn't reload, either. I've noticed this more recently. Although I have a reliable recipe (the #lang rackjure one above), I haven't yet boiled this down to the simplest-possible recipe. Unless it's already obvious to you what's going on with that, I'll keep working to come up with a simpler recipe. Thank you. On Mon, Feb 11, 2013 at 2:07 AM, Eli Barzilay <e...@barzilay.org> wrote: > 9 hours ago, Greg Hendershott wrote: >> I'm inclined to add a new command to XREPL that takes that approach, >> to experiment. I was spelunking in DrRacket source but I'm slow to >> isolate that from what else is going on. It sounds like you >> understand it; is there a code sample you could share? > > I'm not sure what exactly you're after, but you can get most of that > using a ,switch command to create a new namespace, then using it with > a "!" flag to reset it. > > -- > ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: > http://barzilay.org/ Maze is Life! _________________________ Racket Developers list: http://lists.racket-lang.org/dev