(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