vibe.d 0.7.15 release
vibe.d 0.7.15 release
Sat, 27 Apr 2013This release cleans up the API in several places (sheduling some symbols for deprecation) and largely improves the multi-threading primitives. It also features initial support for Win64 and a revamped logging system, as well as authentication support for the MongoDB client and a lot of smaller enhancements.
Features and improvements
- Improved the logging system with pluggable loggers, more specified verbose log levels, an HTML logger, and proper use of stdout/stderr
- Added basic compile support for 64-bit Windows (using the "win32" driver)
- Add a scoped alternative version of
vibe.core.concurrency.lock
(used for safe access toshared
objects with unshared methods) - Add support to repeat the idle event until a new message arrives
- Task is now weakly isolated and can thus be passed to other threads using
runWorkerTask
- Implemented digest authentication in the MongoDB client (by Christian Schneider aka HowToMeetLadies) - pull #218
- The number of worker threads is now
core.cpuid.threadsPerCPU
TaskMutex
is now fully thread safe and has much lower overhead when no contention happensTaskCondition
now also works with a plainMutex
in addition to aTaskMutex
- Removed the deprecated
Mutex
alias - Renamed
Signal
toManualEvent
to avoid confusion with other kinds of "signals" MemoryStream
now supports dynamically growing to the buffer limitHttpServer
will now drop incoming connections that don't send data within 10 seconds after the connection has been established- Added a new
createTimer
overload that doesn't automatically arm the timer after creation exitEventLoop
now by default also shuts down the worker threads (ifenableWorkerThreads
was called)- Added new command line options "--vv", "--vvv" and "--vvvv" to specify more verbose logging
- Added connection pooling to the Redis client (by Junho Nurminen aka jupenur) - pull #199
- Various documentation improvements and better adherence to the style guide
- Compiles with DMD 2.063 (mostly by Vladimir Panteleev aka CyberShadow) - pull #207
- All examples now use exact imports rather than using
import vibe.vibe;
orimport vibe.d;
- Moved basic WWW form parsing from
vibe.http.form
tovibe.inet.webform
to reduce intermodule dependencies and improve compile time - MongoDB URL parsing code uses
vibe.inet.webform
to parse query string arguments now instead ofstd.regex
- improves compile time - Much more complete REST interface generator example (by Михаил Страшун aka Dicebot) - pull #210
- Updated OpenSSL DLLs to 1.0.1e (important security fixes)
- Renamed
EventedObject.isOwner
toamOwner
- Improved intermodule dependencies, configuration option/file handling and added
pragma(lib)
(using "--version=VibePragmaLib") for more comfortable building without dub/vibe (by Vladimir Panteleev aka CyberShadow) - pull #211 - Implemented an automatic command line help screen (inferred from calls to
vibe.core.args.getOption
) - Added meaningful error messages when the connection to a MongoDB or Redis server fails
- Deprecated
vibe.http.server.startListening
, which is not necessary anymore
Bug fixes
- Fixed
vibe.core.concurrency.receiveTimeout
to actually work at all - Fixed
Win32Timer.stop
to reset thepending
state and allow repeated calls - Fixed
HttpClient
to avoid running into keep-alive timeouts (will close the connection 2 seconds before the timeout now) - Fixed
HttpClient
to properly handle responses without a "Keep-Alive" header - Fixed
isWeaklyIsolated
for structs containing functions - Fixed all invalid uses of
countUntil
wherestd.string.indexOf
should have been used instead - issue #205 - Fixed spelling of the "--distport" command line switch and some documentation - pull #203, pull #204
- Fixed spurious error messages when accepting connections in the libevent driver (by Vladimir Panteleev aka CyberShadow) - pull #207
- Fixed adjusting of method names in the REST interface generator for sub interfaces (by Михаил Страшун aka Dicebot) - pull #210
- Fixed falling back to IPv4 if listening on IPv6 fails when calling
listenTCP
without a bind address - Fixed
Libevent2MenualEvent.~this
to not access GC memory which may already be finalized - Fixed
Win32TCPConnection.peerAddress
andWin32UDPConnection.bindAddress
- Partially fixed automatic event loop exit in the Win32 driver (use -version=VibePartialAutoExit for now) - pull #213
- Fixed
renderCompat
to work withconst
parameters - Fixed an error in the Deimos bindings (by Henry Robbins Gouk) - pull #220
- Fixed a compilation error in the REST interface client (multiple definitions of "url__")
Comments for the post are currently disabled.
0 comments