HttpFileServerSettings.maxAge <= 0 will now cause the "Expires" header to be omitted.
Fixed searching for a GET route when no route for a HEAD request was found.
Allowing underscores in diet node ids and classes.
listenTcp() now returns a TcpListener object that can be used to stop listening again.
The win32 back end now also returns a TcpListener from listenTcp().
Split up vibe.stream.stream into vibe.core.stream and vibe.stream.operations to remove a bad dependency cycle that caused strange compilation errors on DMD 2.061 beta.
Added AllocAppender.reset() and MemoryOutputStream.reset().
Fixed a compilation error for comparing some bson value with Bson.init, which is no lvalue anymore.
Updated VisualD project.
Fixed some more lvalue problems (fixes unit test build).
Debug log message improvement for exceptions thrown from HTTP request handlers.
Compile fixes.
Updated change log.
Urls can now be constructed froma string using Url(str) in addition to the old Url.parse(str).
Added compatibility module.
The request host name is now logged instead of the host name of the chosen server settings.
Parameter types such as `T[2]*` can now be handled by the parameter name extraction code.
Diet templates now support arbitrary D expressions for attribute values in addition to string literals.
Refactored the Diet template compiler.

Building of the final D code is now abstracted in OutputContext so that changes can be made centrally and the rest of the code is more readable (e.g. no double escaped string literals).

Also string concatenations in the generated code are avoided now to safe on memory allocations. There are still some calls to _toString and htmlEscape that need to be eliminated so that there are no allocations left.
Improved line numbers for compiler error messages in embedded Diet template code.

Every generated D code line is now prefixed with a #line marker of the last template input line that was parsed.

Also disabled pragma(msg) of the generated code.