Just the opposite: it means that, at runtime, you can simply load in a file 
with your new defmethods and the multimethod gets updated to call through 
to them dynamically. That's what you see when you're working at the REPL: 
reloading a file (or typing in a new defmethod directly) is updating your 
multimethod to call the newer implementation.

On Wednesday, November 23, 2016 at 1:32:06 PM UTC-8, Erik Assum wrote:
>
> That would work. 
>
> But I would like to argue that the need to require all possible namespaces 
> which may implement a defmethod is a bit, should I say, closed?
>
> This would mean that you can't build a plugin system based on multi 
> methods, right?
>
> Erik. 
> -- 
> i farta
>
> Den 23. nov. 2016 kl. 22.16 skrev Jonathan Fischer <jona...@mohiji.org 
> <javascript:>>:
>
> Just move your defmulti form out of the namespace that's using it, core in 
> this case.  Like this:
>
>
> https://github.com/mohiji/multitest/commit/229b064cea42c37173496d96a117805494c8042a
>
> On Wednesday, November 23, 2016 at 11:53:55 AM UTC-8, Erik Assum wrote:
>>
>> So, I guess my question then would be, how do I make it load without 
>> creating a circular dependency?
>>
>> Erik. 
>> -- 
>> i farta
>>
>> Den 23. nov. 2016 kl. 20.50 skrev Jonathan Fischer <jona...@mohiji.org>:
>>
>> In your minimal case: nothing ever imports multitest.other, so the 
>> defmethod never gets loaded.
>>
>> On Wednesday, November 23, 2016 at 11:31:21 AM UTC-8, Erik Assum wrote:
>>>
>>> Hi, 
>>>
>>> I’ve got a defmulti defined in a namespace and it’s corresponding 
>>> defmethods defined in other namespaces. 
>>> This works fine when working in the repl, but when creating an uberjar, 
>>> the defmethods in the other namespaces 
>>> don’t seem to be found. 
>>>
>>> I’ve created a minimal case here: 
>>>
>>> https://github.com/slipset/multitest 
>>>
>>> There is probably something simple I’m missing, but I cannot seem to 
>>> find it. 
>>>
>>> What am I missing? 
>>>
>>> Erik.
>>
>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com <javascript:>
> Note that posts from new members are moderated - please be patient with 
> your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com <javascript:>
> 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+u...@googlegroups.com <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to