Saturday, February 04, 2006

sb-win32-sockets

I've been working very slowly on getting sb-bsd-sockets working on the sbcl/win32 port. It actually isn't too bad. The biggest hurdle is my own lack of understanding with how sb-alien works. sb-alien is the foreign function interface for sbcl that allows talking with external C libraries. In this case, I am making calls to ws2_32.dll - the winsock2 implementation on Windows XP and the like. I've been slowly building up the definitions for the alien interface for all of the underlying functions like socket, bind, accept, recv and the like. I was able to send my first message from an OS X box to the win32 sbcl instance last night. To give you an idea how rough it is right now, I was looking at what I received one character at a time with (deref (deref buf 0) 0).

Wednesday, February 01, 2006

getting ready for 2.1

Looks like we finally worked through the final downloader issues, and the new agent has been running pretty smoothly on the cluster for over two weeks. Tomorrow we should run final regression tests on the new build, and release 2.1. We are not making any radical changes, and many of the usability issues that we would like to clean up will need a much larger rewrite. That will have to wait. For now, it polishes the rough edges, and makes the out-of-box experience a little nicer.

Check Paragent's web site in a couple days, and grab a copy.

Monday, January 30, 2006

New Downloader Almost Complete

I have been working on a little downloader application for our software. You download this 200K app, and it walks you through checking for .net, downloading and installing that if necessary, then downloading and installing the other parts of the application. In our case, this is the Paragent Framework (our agent) and Paragent Manage, the GUI console. This was all raw win32 GDI type stuff. I'm pretty happy with how it turned out. I need to go back and review all of the corner cases to make sure we are doing the right thing for the user.

What is means is little to no lisp work this weekend. I was able to start making foreign function calls to the ws2_32 library today (winsock2). I got as far as initializing with WSAStartup, and creating a socket. I knew I was really talking to the library because I was getting real winsock error codes back. When you see 10092, you know you can only be talking to Windows...

I should be able to take a stab at sb-grovel now that I have at least a rough understanding of sb-alien. I need sb-grovel because there are still some things I don't understand about creating unions with the sb-alien commands. You can't get very far (read: bind) before you need to use in_addr, which is a union. I think I missed the class on why anyone ever bothers with unions. In any case, crafting the right combination of struct and unions specifiers was beyond my keen. sb-grovel is SUPPOSED to do all that for me.