On Fri, Oct 3, 2008 at 1:09 AM, Chun Tian (binghe) binghe.lisp@gmail.com wrote:
Hi, Erik
Thanks for your suggestion. It's my pleasure to work with you:)
So, I'll do the following things:
- Make a new branch named "experimental-udp", and only commit to this
branch. 2) Do one feature at a time (now is UDP support) 3) Defer other part to the future (I'll try to research them in LispWorks-UDP package first, and then try them portable)
That looks like a good plan.
There's still one thing I don't know how to decide, need your opinion:
On LispWorks, there's no official support on UDP, and my LispWorks-UDP package is quite successful to let people doing UDP job (there're some real customer whom use it in production environment). Obviously I should continue maintaining this package for those whom only writing applications on LispWorks.
For usocket UDP networking on LispWorks, there're two way to merge my work:
One way, let usocket depends on the exist "lispworks-udp" package (just like the way usocket-udp does).
For as long as this feature is experimental - and the fact that no other package provides lispworks-udp - I think it's fine to depend on lispworks-udp. However, if we decide we want to move code to usocket, there's a coding pattern I'm not very much at ease with in lispworks-udp (or, at least, there was such a pattern): you're invading into an implementation defined/ provided package to define functions of your own.
As I said, for the purpose of our experimental branch, that's no issue.
Another way, "copy" more than a half source code of "lispworks-udp" into "experimental-udp" to avoid this "unnecessary" external dependency, but this will bring some issues to me and USOCKET:
- "lispworks-udp" package has 730 lines' source code, and 500+ lines need
to be copyed. Quite big for "backend/lispworks.lisp"
- I have to maintain "two" UDP support code on LispWorks in the future. Any
bug will be fixed twice.
That depends :-) You can also change the dependencies: make lispworks-udp depend on usocket-udp by implementing it on top of usocket. That would mean that you've made lispworks-udp portable to other platforms :-) Seriously: we'll see. There's little use of duplicating lots of code in both packages. [OTOH, I'd rather not depend on too many non-standard packages...]
So, at this "experimental" stage, I think maybe I should keep the lispworks-udp stuff outside first. When UDP on all support CLs are working, you can help me to decide whether to keep this additional dependency or not.
That's going to be the plan, like you propose. Thanks again for your continued efforts!
Bye,
Erik.