Re: Cyclic require

2010-01-27 Thread Michael Wood
2010/1/27 Seth : > Michael, > > Thank you for pointing this out to me. After some thinking, I decided > to lump all the defprotocols in one file; having all the APIs in one > place seemed handy. But using (load) made it possible to keep deftype > in its own file... though I did have to resort to (u

Re: Cyclic require

2010-01-26 Thread Seth
Michael, Thank you for pointing this out to me. After some thinking, I decided to lump all the defprotocols in one file; having all the APIs in one place seemed handy. But using (load) made it possible to keep deftype in its own file... though I did have to resort to (use) since (in-ns) doesn't su

Re: Cyclic require

2010-01-25 Thread Seth
No support for cyclical dependencies is biting me too. I'm trying to use one .clj file per protocol&type, which doesn't seem *too* smelly. It's a habit that goes way back... maybe time to revise my worldview :-) If a namespace is intended to be a stratum then I will refactor to fit that. Fewer, la

Re: Cyclic require

2010-01-24 Thread Laurent PETIT
2010/1/24 Gabi : > As a side note, I didn't see anywhere in clojure docs that cyclic > references are forbidden. Yeah, and that's why I didn't employ (or intend to ?) the word "forbidden", but rather the words "smells" and "software principles". Smells and principles and general guidelines. Somet

Re: Cyclic require

2010-01-24 Thread Gabi
As a side note, I didn't see anywhere in clojure docs that cyclic references are forbidden. And if it is forbidden, the Exception raised by the runtime should reflect this instead of the odd "No such var->.." exception On Jan 24, 10:44 pm, Laurent PETIT wrote: > Some software principle are certai

Re: Cyclic require

2010-01-24 Thread Laurent PETIT
Some software principle are certainly above the languages used to solve a problem, even probably above programming paradigms (OOP, purely functional, etc.). Java certainly has good parts, and having promoted the role and importance of interfaces must certainly be accounted to its credit. But conc

Re: Cyclic require

2010-01-24 Thread Heinz N. Gies
On Jan 24, 2010, at 17:12 , Stuart Halloway wrote: > If the collaboration is deeply entwined, the two modules should be one > module. If one module uses another, but with occasional callbacks in the > other direction, use an interface or a protocol to define the backchannel. That sounds horribl

Re: Cyclic require

2010-01-24 Thread Stuart Halloway
If the collaboration is deeply entwined, the two modules should be one module. If one module uses another, but with occasional callbacks in the other direction, use an interface or a protocol to define the backchannel. Think about it from the point of view of someone wanting to call your

Re: Cyclic require

2010-01-24 Thread Gabi
You know what? I am not sure that it smells so bad actually. What if I have 2 modules that collaborate with each other and use each other functions ? Why is this so bad? On Jan 24, 5:32 pm, Laurent PETIT wrote: > Short answer: you can't. And yes, it's a "smell" (a bad one) if you > want to achi

Re: Cyclic require

2010-01-24 Thread Laurent PETIT
Short answer: you can't. And yes, it's a "smell" (a bad one) if you want to achieve this. You have to somehow break the cycle : * maybe acknowledge that ns a & b are strongly coupled since there's the need for a cyclic dependency, and merge them. * sometimes one wants to have a & b to have th