Out of time, finally getting tired. Tomorrow, for sure :) One last bug to hunt down.
For now, HEAD's looking pretty good.
grab the export tarball, check out the git repo, etc. If you're bored.
The most interesting addition is the CMake build and the fact that DPM's now portable to at least four operating systems. I've read Jan's
recent posts on the subjecft of build systems, and I'll admit up front that I haven't touched DPM recently due to my reluctance to use autotools.
I've decided CMake isn't evil enough to warrant avoiding it. It's an extra dependency, so we'll see how it goes. There's even been recent discussion on using lua as CMake's build language :)
Also, I've finally done a few tests with mysql's sql-bench "run-all-tests" against DPM. So far, it's passed with no memory leaks or crashes! My one oustanding crash bug was a simple fix noted below.
Updates for R5 (slight recap from yesterday):
- Uses CMake as a build system. File tries really hard to satisfy dependency checks and to build it correctly.
- Ported to multiple operating systems (not win32, not really interested). OS X, OpenBSD, FreeBSD.
- Will now optionally build with -g, instead of always.
- With addition of CMake, 'make install' now exists and works. No more path hacking to get it loading the default libraries.
- Bugfixes: auth packets can now specify default databases, close open connections if the associated lua object is garbage collected.
- Specify under --verbose if closed connections are listeners
- Finally (argh!) able to set a listener to INADDR_ANY by specifying nil for an IP address: dpm.listener(nil, 3306) would emulate mysql's default network behavior.
- Some documentation updates.
Still not done for R5:
- Bug: Backend authentication does not always work, due to the random scramble generating invalid characters.
- Unix domain socket support (easy, but not five minutes of work).
- Allow lua connection objects to retrieve the connected IP address. (for authentication, etc).
- Potentially a fix for ensuring network flushes happen if packets have been written to the buffer, as presently it will only flush connections which directly receive packets, and proxied connections. Dumb.
- Potentially a few simple dpml additions to help ease new users in.
For R6:
TBD ;) Really needs a test suite.