Porting iolib to Windows API

The clone of the official iolib git repository from http://gitorious.org/iolib/iolib with portability patches for Windows API.

This fork of iolib contains new systems:

A few other libraries are being ported to iolib:

Table of Contents

1 Status

The iolib test suite works on MS Windows now except:

  • Streams on regular files are broken.
  • event-base

hunchentoot and cl-postgres work.

So far it is being developed on sbcl (Anton Kovalenko's Windows branch with threads, somewhere around sbcl-1.0.47).

  • IPv6 not supported: doesn't seem to work under wine

resolv.conf is not present on Windows, you'll need to create your own and tell iolib about it.

2 Plan

  • Refactor conditions: separate posix and winapi conditions and wrap them in iolib conditions.
  • Somehow integrate iocp backend as event-base. Write an http proxy with this.

3 Download

The latest iolib Windows API port:

$ git clone http://src.knowledgetools.de/tomas/winapi/iolib.git
$ cd iolib

drakma port to iolib:

$ git clone http://src.knowledgetools.de/tomas/winapi/drakma.git
$ cd drakma
$ git checkout iolib

hunchentoot port to iolib:

$ git clone http://src.knowledgetools.de/tomas/winapi/hunchentoot.git
$ cd hunchentoot
$ git checkout iolib

4 Testing

First build and start echo-server:

$ cd iolib/tests
$ make
$ ./echo-server 5678

Then start sbcl and run:

(asdf:oos 'asdf:test-op :iolib)

5 News

5.1 iolib added 2011-06-23 Thu

Branches:

master
official branch
zstreams
reimplementation of streams, for (near?) future
zwinapi
iolib.winapi system and iolib patches for Windows, based on zstreams branch

5.2 many improvements; iolib.usocket, drakma and hunchentoot added 2011-07-08 Fri

  • the iolib test suite almost works with iocp backend (file io broken)
  • drakma seems to work
  • single-threaded hunchentoot partially works

5.3 iolib works with hunchentoot and cl-postgres on MS Windows 2011-08-02 Tue

  • merged windows specific code with the latest master into winapi branch

5.4 LATEST fsnotify (file system notifications) added, some fixes 2011-12-06 Tue

  • the only interesting branch is master now. The other branches have been abandoned.