Oops, sorry again, this last problem was just a stupid mistake, pls ignore 
it (I guess I'm not just getting annoyed but also a bit too suspicious)

Op woensdag 27 februari 2013 23:53:46 UTC+1 schreef Joachim De Beule het 
volgende:
>
> (At the end of my previous update, I mean namespaces 1, 2 and 3 instead of 
> A, B and C. Sorry for that ...)
>
> Op woensdag 27 februari 2013 23:49:42 UTC+1 schreef Joachim De Beule het 
> volgende:
>>
>> Hi Jim,
>>
>> I'm sorry I can't really be more specific. I tried to duplicate the 
>> problems with a few simple steps, but they only seem to turn when things 
>> get complicates, e.g. involve different namespaces etc. I now even 
>> encountered a third problem which I think is related to the other two 
>> because it involves caching of protocol functions:
>>
>> - In namespace 1, I define and create a record, say R,  that implements a 
>> protocol P as defined in namespace 2. 
>> - In a third namespace I call a method called "classes" of protocol P on 
>> record R, i.e. I evaluate "(classes R)".
>>
>> Clojure then complains with "IllegalArgumentException No implementation 
>> of method: :classes of protocol: #'sentiment.protocols/ClassifierP found 
>> for class: sentiment.classification.client$fn__1479 
>>  clojure.core/-cache-protocol-fn (core_deftype.clj:527)". 
>>
>> - when I evaluate "(classes R)" in namespace 1 (of R), no exception is 
>> raised
>>
>> Both namespaces A and C use namespace B.
>>
>>
>>
>> Op woensdag 27 februari 2013 17:19:33 UTC+1 schreef Jim foo.bar het 
>> volgende:
>>
>>> I'm not sure I fully understand the problem but I'll do my best to 
>>> guess... 
>>>
>>> 1) are you sure you're using the protocol or are you actually trying to 
>>> define a method in the interface that the protocol generates? Try fully 
>>> qualifying the name of you protocol at the extension point... 
>>>
>>> 2)Do your protocols exist in a separate namespace? Are you reloading the 
>>> namespace after making changes? 
>>>
>>> Could you provide a minimal example of the problem? I've been using 
>>> protocols quite heavily lately and I do remember some of these issues 
>>> but I can't pinpoint your exact problem... 
>>>
>>> Jim 
>>>
>>> ps: are you by any chance trying to create 'mixins'? If yes remember 
>>> that for a protocol to be fully populated , it must be extended fully 
>>> per individual type (quote from the JOy of Clojure) 
>>>
>>>
>>> On 27/02/13 15:48, Joachim De Beule wrote: 
>>> > Hi all, 
>>> > 
>>> > I'm doing interactive development with emacs+clojure-mode+nrepl and 
>>> > I'm experiencing some seriously annoying problems with protocols and 
>>> > records implementing the protocols: 
>>> > 
>>> > 1) When I redefine a protocol by adding a method to it, and then 
>>> > re-implement a record according in accordance to the changed protocol, 
>>> > clojure complains that it cannot implement a method not in the 
>>> > protocol/interface. 
>>> > 
>>> > 2) when I change a protocol method in an existing record (e.g. by 
>>> > simply adding a println statement) the changes do not have any effect. 
>>> > 
>>> > These problems persist even when I do an nrepl-restart or close emacs 
>>> > and restart. Any ideas? 
>>> > 
>>> > Joachim 
>>> > -- 
>>> > -- 
>>> > 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/groups/opt_out. 
>>> > 
>>> > 
>>>
>>>

-- 
-- 
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/groups/opt_out.


Reply via email to