Hi Sean,

Absolutely, the growing stack of context class loaders is a quirk of the
nREPL client.

* something fairly unexpected is that with a CIDER/nREPL setup, each
evaluation adds an extra classloader*

And later I write:

In the default REPL, one instance of DynamicClassLoader stays associated
with the REPL throughout the session. In a nREPL client, instances of
DynamicClassLoader keep piling up.

If you think there is a lack of clarity, I'll be happy to amend the text to
make it less likely for the reader to miss that. Thank you very much for
your input.

Daniel

On Mon, May 24, 2021 at 10:58 PM Sean Corfield <s...@corfield.org> wrote:

> When I tried some of your code in a default REPL (via the Clojure CLI), I
> don't see the same results. In particular:
>
> user=> (hash (.getContextClassLoader (Thread/currentThread)))
>
> 1865201235
>
> user=> (hash (.getContextClassLoader (Thread/currentThread)))
>
> 1865201235
>
> user=> (hash (.getContextClassLoader (Thread/currentThread)))
>
> 1865201235
>
> user=> (hash (.getContextClassLoader (Thread/currentThread)))
>
> 1865201235
>
> (although all the rest of it seems to apply)
>
> On Mon, May 24, 2021 at 2:10 AM Daniel Szmulewicz <
> daniel.szmulew...@gmail.com> wrote:
>
>> Every time you press ENTER at the REPL, a new class is created. In
>> addition, it comes with a new class loader instance exclusively dedicated
>> to loading it. That's Clojure behind the scenes doing its runtime magic. On
>> the other hand, in a nREPL client like Cider, not one but two class loader
>> instances are produced, and that is a quirk that carries over since its
>> earliest days. I bring you that story as an excuse for dwelling on the
>> subject of class loading. Arcane, maybe, but essential.
>>
>> Read on <https://danielsz.github.io/blog/2021-05-12T13_24.html>.
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/clojure/d7c270ef-d8e0-4935-ac2f-6fd56c9d4c3en%40googlegroups.com
>> <https://groups.google.com/d/msgid/clojure/d7c270ef-d8e0-4935-ac2f-6fd56c9d4c3en%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> --
> Sean A Corfield -- (904) 302-SEAN
> An Architect's View -- https://corfield.org/
> World Singles Networks, LLC. -- https://worldsinglesnetworks.com/
>
> "Perfection is the enemy of the good."
> -- Gustave Flaubert, French realist novelist (1821-1880)
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/uypJ_9opzN0/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojure/CAD4thx_ENAaAV2Oa5dLNQW51sg7W4VU6nWfM3r0Qgx9HYsqd-g%40mail.gmail.com
> <https://groups.google.com/d/msgid/clojure/CAD4thx_ENAaAV2Oa5dLNQW51sg7W4VU6nWfM3r0Qgx9HYsqd-g%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAABPU68OsZ8XdejzTzz%2BZ%3DvyP4P-ECPm3j1sbqZyMMkN5Giicw%40mail.gmail.com.

Reply via email to