Fixing this by bringing the loaded-libs set into the Rhino REPL environment type ended up being fairly straightforward, and is enough for me to call it a fix for CLJS-358.
However, resolving the same issues for browser REPL would be much more involved. The custom HTTP server for browser REPL precludes using e.g. sessions to track multiple browser REPL environments that would carry *all* of their respective state, eliminating any shared bits. I'll not be digging into resolving this at the moment, but it seems like the best path forward would be to eliminate cljs.repl.server (the custom HTTP server) and all the associated static resource-serving stuff in cljs.repl.browser, in favor of a standard Ring/Compojure app. That would make a fix for this shared state problem dead-simple (via sessions), and make it easy for users to host the browser REPL as part of their own Ring apps that they're running anyway. Hopefully there are a minimum of implementation details in that custom HTTP server relied upon by either the browser REPL environment or the browser-side bits in clojure.browser.repl.
I presume such changes wouldn't be suitable/welcome within the ClojureScript project itself (I'm happy to be contradicted by suitable authorities!), so I guess this would constitute a separate browser REPL implementation.
Cheers,
- Chas
> --
> You received this message because you are subscribed to the Google Groups "Clojure Dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
clojure-dev...@googlegroups.com.
> To post to this group, send email to
cloju...@googlegroups.com.
> Visit this group at
http://groups.google.com/group/clojure-dev?hl=en.
> For more options, visit
https://groups.google.com/groups/opt_out.
>
>