A number of small libraries pushed to awwx.ws

None of these seemed big enough to merit a separate post on arclanguage.org, so here's a summary instead.

table reader / writer

table-rw is a new implementation of my {...} syntax for reading and writing table objects, with most of the implementation pulled out of ac.scm.

Unlike reading hashes in MzScheme, tables read by the reader are mutable.  I use this to (recursively) save and load table objects to files without having to convert them with listtab and tablist.  The syntax doesn't support constructing table objects from expressions; only literal tables can be typed in.  However, I don't miss this because I find Arc's existing ways of making table in code like obj work well for me.

I don't like the {...} syntax very much because I find {...} hard to distinguish from (...), and I think curly brackets are too valuable a short syntax to waste on something that I never type in.  I tried playing around with some alternatives like #table((...)) but they seemed even uglier to me.

srv extensions

srv-misc is an ugly patch with a number of changes mixed together: respond is called with the req object already built instead of building the req object inside of respond; this makes it easy to extend respond with new kinds of ops.  The request op and the request headers are now included in the request object, and unknown op's now return a 404 Not Found response.  The request op is needed in the request object to be able to extend respond, and having the headers available gives easy access to the host and referrer headers.

srv-static-dirs allows multiple static subdirs for serving up static files from different places on the filesystem.

srv-static-subdir-filetypes is another ugly patch that does two things at once (though they are useful things): it allows the list of static filetypes to be expanded by other code and it allows a URL like http://localhost/path/to/static/file/foo.html to be found in staticdir/path/to/static/file/foo.html.

And more-static-filetypes uses the previous patch to add the static filetypes that I use at awwx.ws.

dynamic variables and and implicit req

New implementation of dynamic variables which needs fewer changes in ac.scm.  I'm starting to play around with making req implicit, so that it doesn't need to be passed all the time, and (arg "foo") can be used instead of (arg req "foo").

baseop

Also beginning to work a bit on a defop-base which runs the op without outputting any headers at all.  This allows an op to decide at runtime whether to display an HTML page or to issue a redirect instead; or to issue a redirect while setting a cookie at the same time, and so on.

session

And some work on session handling; the session variable is dynamic so it doesn't have to be passed around either; and the with-session macro automatically saves the session data at the end of the op.