Hi Hans
Now I'm going to support IPv6 in next major usocket release (0.7.0). Here's my ideas (of course, based on yours):
1. Add a new backend IOlib to support exist IPv4 functionality. To compile usocket with IOlib, user should push :usocket-iolib into their *feature* first.
2. Extend usocket code base to support IPv6 address and related host resolution and address conversations
3. Extend backends for IPv6 to support LispWorks, Allegro CL and IOlib first. (At this step your plan is done) All backends' native IPv6 implementation should have :IPv6 in their *features*
4. Write patches for SBCL and CCL to support IPv6 directly on their exist network interfaces. The purpose is to make unmodified SBCL/CCL working directly with my patches to get the ability to support IPv6 with their exist interfaces. Platforms with such modifications should have :usocket-ipv6 in their *features*.
5. Support more open source CL platforms (ABCL, CMUCL, ECL) by using above loadable patche approach.
6. Convert IPv6 patches to code patch on each free CL platforms themselves and send to maintainers of these CL platforms to get it merged.
7. For those platforms' new versions with IPv6 patches merged, USOCKET should turn to use their native implementation, but the support on exist old versions should remains in usocket code base for a quite long time.
If you have any concern and suggestions, feel free to make your comments.
Regards,
Chun Tian (binghe)
On 05/feb/2013, at 00:12, Hans Hübner <hans.huebner(a)gmail.com> wrote:
> Hi Binghe,
>
> I would like to make Drakma and Hunchentoot support IPv6, and in order to do that, I need usocket to support IPv6. As most open source implementations do not support IPv6 in their socket APIs yet, it would probably be best to add a new backend for IOLib (which is pretty much identical to Allegro CL). Supporting Lispworks and Allegro CL would be done through their native APIs.
>
> What do you think about that? Do you have any plans? If not, I would try myself on the IOlib side of things first.
>
> Thanks,
> Hans