Blog

vibe.d 0.7.24 release

Header image
Mon, 10 Aug 2015 Adds DMD 2.068.0 compatibility and contains a number of additions and fixes in all parts of the library. Some notable changes are the addition of WebSocket support in the vibe.web.web module and the planned deprecation of opDispatch for Json and Bson, as well as the rename of all "SSL" symbols to "TLS". HTTP request handlers can, and should, now take the request/response parameters as "scope", which will later allow to improve performance without compromising safety.
Features and improvements
  • Fixed compilation on DMD 2.068 (most fixes by Mathias Lang)
  • Web interface generator (vibe.web.web)
  • Added support for WebSocket routes - issue #952
  • Doesn't intercept HTTPStatusExceptions thrown during parameter assembly anymore
  • Replaced the deprecated form interface example project with a vibe.web.web based "web_ajax" example
  • Added support for the @path attribute on registered classes
  • REST interface generator (vibe.web.rest)
  • Removed support for index() methods (use get() or @path("/")) (by Mathias Lang) - pull #1010
  • Deprecated the @rootPath attribute (use @path instead) (by Mathias Lang) - pull #999
  • Deprecated symbols that were scheduled for deprecation and removed deprecated symbols
  • Added version VibeNoDefaultArgs to disable the built-in command line options
  • Renamed "SSL" to "TLS" in most places
  • Scheduled Json.opDispatch and Bson.opDispatch for deprecation (use opIndex instead)
  • Added Bson.tryIndex (by Marc Schütz) - pull #1032
  • Added support for all standard HTTP methods (RFC) (by Szabo Bogdan) - pull #1068, pull #1082
  • Added overloads for scope based HTTP server callbacks
  • These will later be used for safe, allocation-less HTTP request processing
  • Always prefer this over the non-scope callbacks, as these will imply a performance impact in later versions
  • Added vibe.core.stream.nullSink as a convenient way to get a generic data sink stream
  • Added overloads of writeFormData and writeFormBody that accept ranges of key/value tuples (by Tobias Pankrath)
  • Added HTTPClientResponse.switchProtocol (by Luca Niccoli) - pull #945
  • listenHTTP now returns a HTTPListener instance that can be used to stop listening - issue #1074
  • Added an AppenderResetMode parameter to MemoryOutputStream.reset() (by Etienne Cimon)
  • Changed urlEncode to only allocate if necessary (by Marc Schütz) - pull #1076
  • Optimize multi-part form decoding for cases where "Content-Length" is given (by Etienne Cimon) - pull #1101
  • Added serialization support for std.typecons.BitFlags!T
  • Removed the HTTPRouter interface (now just a compatibility alias to URLRouter) (by Mathias Lang) - pull #1106
  • Added HTTPStatus.tooManyRequests (by Jack Applegame) - pull #1103
  • Added optional code and reason parameters to WebSocket.close() (by Steven Dwy) - pull #1107
  • Added an optional copy+delete fallback to moveFile() (by Etienne Cimon and Martin Nowak)
  • Let ConnectionProxyStream work without an underlying ConnectionStream (by Etienne Cimon)
  • Added a ConnectionProxyStream constructor taking separate input and output streams
  • Updated the OpenSSL Windows binaries to 1.0.1m
  • Added BigInt support to the JSON module (by Igor Stepanov) - pull #1118
  • The event loop of the win32 driver can now be stopped by sending a WM_QUIT message (by Денис Хлякин aka aka-demik) - pull #1120
  • Marked vibe.inet.path as pure and removed casts that became superfluous
  • Added an InputStream based overload of HTTPServerResponse.writeBody
  • Added all Redis modules to the vibe.vibe module
  • Added a version of FixedRingBuffer.opApply that supports an index (by Tomáš Chaloupka) - pull #1198
Bug fixes
  • Fixed listening on IPv6 interfaces for the win32 driver
  • Fixed URL.localURI updating the query string and anchor parts properly - issue #1044
  • Fixed Task.join() to work outside of a running event loop
  • Fixed the automatic redirection in vibe.web.web in case of mismatching trailing slash
  • Fixed MongoCollection.count() when used with MongoDB 3.x - issue #1058
  • Fixed detection of non-copyable, but movable types for runTask
  • Fixed processing of translation strings with escape sequences in vibe.web.web (by Andrey Zelenchuk) - pull #1067
  • Fixed unnecessarily closing HTTP client connections
  • Fixed using TCPConnection.close() with a concurrent read() operation (libevent driver)
  • Fixed parsing of HTTP digest authentication headers with different whitespace padding or differing case (by Денис Хлякин aka aka-demik) - pull 1083
  • Fixed parsing various HTTP request headers case insensitively
  • Fixed validation of untrusted certificates without TLSPeerValidationMode.checkTrust for OpenSSLStream
  • Fixed TLS certificate host/address validation in the SMTP client
  • Fixed @bodyParam parameters with default value in the REST interface generator (by Mathias Lang) - issue #1125, pull #1129
  • Fixed running the TLS context setup for STARTTLS SMTP connections (by Nathan Christenson) - pull #1132
  • Fixed JSON serialization of const(Json) (by Jack Applegame) - pull #1109
  • Fixed runtime error for Windows GUI apps that use the Visual Studio runtime
  • Various fixes in the libasync event driver (by Etienne Cimon)
  • Fixed the REST interface generator to treat get/post/... methods as @path("/") (by Mathias Lang) - pull #1135
  • Fixed URL's internal encoding of the path string (by Igor Stepanov) - pull #1148
  • Fixed decoding query parameters in the REST interface generator (by Igor Stepanov) - pull #1143
  • Fixed a possible range violation when writing long HTTP access log messages (by Márcio Martins) - pull #1156
  • Fixed support of typesafe variadic methods in the REST interface generator (by Mathias Lang) - issue #1144, pull #1159
  • Fixed getConfig, setConfig and configResetStat in RedisClient (by Henning Pohl) - pull #1158
  • Fixed possible CPU hog in timer code for periodic timer events that were triggered too fast
  • Fixed a possible memory leak and wrongly reported request times for HTTP connections that get terminated before finishing a response - issue #1157
  • Fixed vibe.web.web.redirect() to work properly for relative paths with query strings
  • Fixed invalid JSON syntax in dub.json - issue #1172
  • Fixed LibasyncFileStream when used with FileMode.createTrunc (by Etienne Cimon) - pull #1176
  • Fixed deserialize when operating on a struct/class that is annotated with @asArray (by Colden Cullen) - pull #1182
  • Fixed parsing quoted HTTP multi part form boundaries (by Mathias L. Baumann aka Marenz) - pull #1183
  • Fixed LibasyncFileStream.peek() to always return null (by Etienne Cimon) - pull #1179
  • Fixed ThreadedFile.seek for 32-bit Windows applications (libevent driver) - issue #1189
  • Fixed parsing of relative file:// URLs
  • Fixed a possible RangeError in the JSON parser (by Takaaki Seki) - pull #1199
  • Fixed a possible resource leak in HashMap (destructors not run)
  • Fixed pipeRealtime to always adhere to the maximum latency
  • Fixed deserialization of immutable fields (by Jack Applegame) - pull #1190
Download

http://code.dlang.org/packages/vibe-d/0.7.24

http://vibed.org/download?file=vibed-0.7.24.zip

https://github.com/rejectedsoftware/vibe.d/tree/e80dcf49badd453ebeb36f31b54206b9018a8da8

Posted at 19:24:07 +0200 by Sönke Ludwig 0 comments

vibe.d 0.7.23 release

Header image
Wed, 25 Mar 2015 Apart from fixing compilation on DMD 2.067 and revamping the vibe.core.sync module to support nothrow, notable changes are extended parameter support in vibe.web.rest, improved translation support in vibe.web.web and new support for policy based customization of (de-)serialization. The Diet template parser has also received a good chunk of fixes and improvements in this release.
Features and improvements
  • Compiles on DMD frontend 2.065 up to 2.067 (most fixes for 2.067 are by Mathias Lang) - [pull #972][pull 972], pull #992
  • Changed semantics of TaskMutex and TaskCondition - this can be a breaking change for certain applications
  • The classes are now nothrow to stay forward compatible with D's Mutex and Condition classes,
  • Interruption using Task.interrupt() now gets deferred to the next wait/yield operation
  • The old behavior can be achieved using the new InterruptipleTaskMutex and InterruptibleTaskCondition classes
  • Definition of either VibeCustomMain or VibeDefaultMain is now a hard requirement - this is the final deprecation phase for VibeCustomMain
  • Added an overload of lowerPrivileges that takes explicit user/group arguments (by Darius Clark) - pull #948
  • Added handleWebSocket as a procedural alternative to handleWebSockets (by Luca Niccoli) - pull #946
  • Added support for "msgctxt" in .po files for the vibe.web.web translation framework (by Nathan Coe) - pull #896
  • Added overloads of HTTPServerResponse.writeBody and writeRawBody with an additional status code parameter (by Martin Nowak) - pull #980
  • Added @queryParam and @bodyParam to the vibe.web.rest module (by Mathias Lang) - pull #969
  • Added support for serving an "index.html" file when requesting a directory (by Martin Nowak) - pull #902
  • Added policy based customization for vibe.data.serialization (by Luca Niccoli) - pull #937
  • Added SSLStream.peerCertificate and HTTPServerRequest.clientCertificate properties (by Rico Huijbers) - pull #965
  • Added RedisDatabase.zrangeByLex (by Etienne Cimon) - pull #993
  • Added support for HTTP digest authentication (by Kai Nacke aka redstar) - pull #1000
  • Diet template features
  • Added support for plain text lines starting with < (plain HTML lines) (by Kai Nacke aka redstar) - pull #1007
  • Added support for default and "prepend" modes for blocks (help from Kai Nacke aka redstar) - issue #905, pull #1002
  • Multiple "id" attributes are now explicitly disallowed (by Kai Nacke aka redstar) - pull #1008
Bug fixes
  • Fixed ping handling for WebSockets and added automatic keep-alive pinging (by Luca Niccoli) - pull #947
  • Fixed wrapped texts in .po files for the vibe.web.web translation framework (by Nathan Coe) - pull #896
  • Fixed a crash issue when storing a Timer in a class instance that does not get destroyed before application exit - issue #978
  • Fixed HTTPRouter.any to match all supported HTTP verbs (by Szabo Bogdan) - pull #984
  • Fixed setting TCPConnection.localAddr in the libasync driver (by Etienne Cimon) - issue #961, pull #962
  • Fixed some cases of missing destructor calls in vibe.utils.memory (partially by Etienne Cimon) - pull #987
  • Fixed some failed incoming SSL connection attempts by setting a default session context ID (by Rico Huijbers) - pull #970
  • Fixed RedisSessionStore.create() (by Yusuke Suzuki) - pull #996
  • Fixed HTML output of // style comments in Diet templates (by Kai Nacke) - pull #1004
  • Fixed the error message for mismatched @path placeholder parameters in vibe.web.rest (by Mathias Lang aka Geod24) - issue #949, pull #1001
  • Fixed parsing of hidden comments in Diet templates that have no leading space (by Kai Nacke) - pull #1012
  • Fixed serialization of const(Json) values
  • Fixed handling of struct parameter types in vibe.web.rest that implicitly convert to string, but not vice-versa
  • Fixed HTTP request parsing with uppercase letters in the "Transfer-Encoding" header (by Szabo Bogdan) - pull #1015
  • Fixed parsing of Diet attributes that are followed by whitespace - issue #1021
  • Fixed parsing of Diet string literal attributes that contain unbalanced parenthesis - issue #1033
Download

http://code.dlang.org/packages/vibe-d/0.7.23

http://vibed.org/download?file=vibed-0.7.23.zip

https://github.com/rejectedsoftware/vibe.d/tree/0118a2d8ac2dcbf8ae563e58940f3125051f4644

Posted at 21:38:51 +0200 by Sönke Ludwig 0 comments

vibe.d 0.7.22 release

Header image
Mon, 12 Jan 2015 A small release mostly fixing compilation issues on DMD 2.065, LDC 0.14.0 and GDC. It also contains the new optional libasync based event driver for initial testing.
Features and improvements
  • Added a new event driver based on the libasync native D event loop abstraction library (by Etienne Cimon) - pull #814
  • Added support for @headerParam in the REST interface generator (by Mathias Lang aka Geod24) - pull #908
  • Added font/woff as a recognized compressed MIME type to avoid redundant compression for HTTP transfers (by Márcio Martins) - pull #923
  • The BSON deserialization routines now transparently convert from long to int where required (by David Monagle) - pull #913
Bug fixes
  • Fixed an overload conflict for urlEncode introduced in 0.7.21
  • Fixed a compilation issue with Exception typed _error parameters in web interface methods (by Denis Hlyakin) - pull #900
  • Fixed conversion of Bson.Type.undefined to Json (by Márcio Martins) - pull #922
  • Fixed messages leaking past the end of a task to the next task handled by the same fiber (by Luca Niccoli) - pull #934
  • Fixed various compilation errors and ICEs for DMD 2.065, GDC and LDC 0.14.0 (by Martin Nowak) - pull #901, pull #907, pull #927
Posted at 10:40:42 +0200 by Sönke Ludwig 0 comments

vibe.d 0.7.21 release

Header image
Tue, 18 Nov 2014 Due to a number of highly busy months (more to come), this release got delayed far more than planned. However, development didn't stall and, finally, a huge list of over 150 changes found its way into the new version. Major changes are all over the place, including some notable changes in the SSL/TLS support and the web interface generator.
Features and improvements
  • SSL/TLS support
    • Added support for TLS server name indication (SNI) to the SSL support classes and the HTTP client and server implementation
    • Changed SSLPeerValidationMode into a set of bit flags (different modes can now be combined)
    • Made the SSL implementation pluggable (currently only OpenSSL is supported)
    • Moved all OpenSSL code into a separate module to avoid importing the OpenSSL headers in vibe.stream.ssl (by Martin Nowak) - pull #757
    • Added support for a VibeUseOldOpenSSL version to enable use with pre 1.0 versions of OpenSSL
    • Upgraded the included OpenSSL Windows binaries to 1.0.1j
  • Web interface generator
    • Added support for Json as a return type for web interface methods (by Stefan Koch) - pull #684
    • Added support for a @contentType attribute for web interface methods (by Stefan Koch) - pull #684
    • Added vibe.web.web.trWeb for runtime string translation support
    • Added support for nesting web interface classes using properties that return a class instance
    • Added support for @before/@after attributes for web interface methods
    • Added a PrivateAccessProxy mixin as a way to enable use of private and non-static methods for @before in web interfaces
    • Added support for validating parameter types to vibe.web.web (vibe.web.validation)
    • Added the possibility to customize the language selection in the translation context for web interface translations
    • Added optional support for matching request paths with mismatching trailing slash in web interfaces
    • SessionVar, if necessary, now starts a new session also for read accesses
  • HTTP sessions
    • Added a check to disallow storing types with aliasing in sessions
    • Session values are now always returned as const to avoid unintended mutation of the returned temporary
    • Added initial support for JSON and BSON based session stores
    • Added a Redis based HTTP session store (vibe.db.redis.sessionstore.RedisSessionStore)
    • Deprecated index operator based access of session values (recommended to use vibe.web.web.SessionVar instead)
  • Redis database driver
    • Added some missing Redis methods and rename RedisClient.flushAll to deleteAll
    • Added the vibe.db.redis.types module for type safe access of Redis keys
    • RedisReply is now a typed output range
    • Added a module for Redis with common high level idioms (vibe.db.redis.idioms)
    • Improved the Redis interface with better template constraints, support for interval specifications and support for Nullable!T to determine key existence
    • Made the member argument to the sorted set methods in RedisDatabase generic instead of string - issue #811
    • Added support for ubyte[] as a return type for various Redis methods (by sinkuu) - pull #761
  • MongoDB database driver
    • MongoConnection.defaultPort is now an ushort (by Martin Nowak) - pull #725
    • Added support for expiring indexes and dropping indexes/collections in the MongoDB client (by Márcio Martins) - pull #799
    • Added MongoClient.getDatabases (by Peter Eisenhower) - pull #822
    • Added an array based overload of MongoCollection.ensureIndex - issue #824
    • Added MongoCursor.skip as an alternative to setting the skip value using an argument to find (by Martin Nowak) - pull 888
  • HTTP client
    • Made the handling of redirect responses more specific in the HTTP client (reject unknown status codes)
    • Added support for using a proxy server in the HTTP client (by Etienne Cimon) - pull #731
    • Added HTTPClientSettings.defaultKeepAliveTimeout and handle the optional request count limit of keep-alive connections (by Etienne Cimon) - issue 744, pull #756
    • Added an assertion to the HTTP client when a relative path is used for the request URL instead of constructing an invalid request
    • Avoid using chunked encoding for HTTPClientRequest.writeJsonBody
  • HTTP server
    • Added support for IP based client certificate validation in the HTTP server (by Eric Cornelius) - pull #723
    • Avoid using chunked encoding for HTTPServerResponse.writeJsonBody - issue #619
    • Added HTTPServerResponse.waitForConnectionClose to support certain kinds of long-polling applications
  • Compiles on DMD 2.064 up to DMD 2.067.0-b1
  • All external dependencies are now version based (OpenSSL/libevent/libev)
  • Removed deprecated symbols of 0.7.20
  • Increased the default fiber stack size to 512 KiB (32-bit) and 16 MiB (64-bit) respectively - issue #861
  • Enabled the use of shared delegates for runWorkerTask and avoid creation of a heap delegate
  • Added support for more parameter types in runTask/runWorkerTask by avoiding Variant
  • Added an initial implementation of a Future!T (future/promise) in vibe.core.concurrency
  • Deprecated the output range interface of OutputStream, use vibe.stream.wrapper.StreamOutputRange instead
  • Prefer .toString() to cast(string) when converting values to string in Diet templates (changes how Json values are converted!) - issue #714
  • Added variants of the vibe.utils.validation functions that don't throw
  • Added UDPConnection.close()
  • Deprecated registerFormInterface and registerFormMethod
  • Added support for implicit parameter conversion of arguments passed to runTask/runWorkerTask (by Martin Nowak) - pull #719
  • Added vibe.stream.stdio for vibe.d compatible wrapping of stdin/stdout and std.stdio.File (by Eric Cornelius) - pull #729
  • Added vibe.stream.multicast.MultiCastStream for duplicating a stream to multiple output streams (by Eric Cornelius) - pull #732
  • Added support for an inotify based directory watcher in the libevent driver (by Martin Nowak) - pull #743
  • Added support for Nullable!T in vibe.data.serialization - issue #752
  • Added a constructor for BsonObjectID that takes a specific time stamp (by Martin Nowak) - pull #759
  • Added output range based overloads of std.stream.operations.readUntil and readLine
  • Added vibe.data.json.serializeToJsonString
  • Added vibe.inet.webform.formEncode for encoding a dictionary/AA as a web form (by Etienne Cimon) - pull #748
  • BsonObjectID.fromString now throws an Exception instead of an AssertError for invalid inputs
  • Avoid using initialized static array for storing task parameters (by Михаил Страшун aka Dicebot) - pull #778
  • Deprecated the simple password hash functions due to their weak security - issue #794
  • Added support for serializing tuple fields
  • Added convertJsonToASCII to force escaping of all Unicode characters - see issue #809
  • Added a parameter to set the information log format for setLogFormat (by Márcio Martins) - pull #808
  • Serializer implementations now get the number of dictionary elements passed up front (by Johannes Pfau) - pull #823
  • Changed readRequiredOption to not throw when the --help switch was passed (by Jack Applegame) - pull #803
  • Added RestInterfaceSettings as the new way to configure REST interfaces
  • Implemented optional stripping of trailing underscores for REST parameters (allows the use of keywords as parameter names)
  • Made the message parameter of enforceHTTP lazy (by Mathias Lang aka Geod24) - pull #839
  • Improve the format of JSON parse errors to enable IDE go-to-line support
  • Removed all console and file system output from unit tests (partially by Etienne Cimon, [pull #852][issue852])
  • Improved performance of libevent timers by avoiding redundant rescheduling of the master timer
Bug fixes
  • Fixed BSON custom serialization of const classes
  • Fixed serialization of DictionaryList - issue #621
  • Fixed a bogus deprecation message for Diet script/style blocks without child nodes
  • Fixed an infinite loop in HTTPRouter when no routes were registered - issue #691
  • Fixed iterating over const(DictionaryList) (by Mathias Lang aka Geod24) - pull #693
  • Fixed an assertion in the HTTP file server that was triggered when drive letters were contained in the request path - pull #694
  • Fixed recognizing application/javascript in script tags to trigger the block syntax deprecation message
  • Fixed support for boolean parameters in web interfaces
  • Fixed falling back to languages without country suffix in the web interface generator
  • Fixed alignment of the backing memory for a TaskLocal!T
  • Fixed the port reported by UDPConnection.bindAddress when 0 was specified as the bind port (libevent)
  • Fixed busy looping the event loop when there is unprocessed UDP data - issue #715
  • Fixed exitEventLoop() to work when there is a busy tasks that calls yield() - issue #720
  • Avoid querying the clock when processing timers and no timers are pending (performance bug)
  • Fixed ManualEvent.wait() to work outside of a task (fixes various secondary facilities that use ManualEvent implicitly) - issue #663
  • Fixed encoding of StreamOutputRange.put(dchar) (by sinkuu) - pull #733
  • Fixed treating undefined JSON values as null when converting to a string - issue #735
  • Fixed using an id parameter together with @path in REST interfaces - issue #738
  • Fixed handling of multi-line responses in the SMTP client (by Etienne Cimon) - pull #746
  • Fixed compile error for certain uses of Nullable!T in web interfaces
  • Enable use of non-virtual access of the event driver using VibeUseNativeDriverType
  • Fixed building the "libev" configuration (by Lionello Lunesu) - pull #755
  • Fixed TaskLocal!T top properly call destructors after a task has ended (by Etienne Cimon) - issue #753, pull #754
  • Fixed the name of RedisDatabase.zcard (was Zcard)
  • Fixed a possible race condition causing a hang in MessageQueue.receive/receiveTimeout(by Ilya Lyubimov) - pull #760
  • Fixed RangeCounter to behave properly when inserting single char values
  • Fixed RedisDatabase.getSet (by Stephan Dilly) - pull #769
  • Fixed out-of-range array access in the Diet template compiler when the last attribute of a tag is value-less (by Martin Nowak) - pull #771
  • Fixed output of line breaks in the Markdown compiler
  • Fixed handling of the key argument of getRange, lrem and zincrby in RedisDatabase (by sinkuu) - pull #772
  • Fixed handling of Nullable!T and isISOExtStringSerializable parameters in REST interfaces
  • Fixed escaping of Diet tag attributes with string interpolations (by sinkuu) - pull #779
  • Fixed handling a timeout smaller or equal to zero (infinity) for RedisSubscriber.blisten (by Etienne Cimon aka etcimon) - issue #776, pull #781
  • Fixed handling of Unicode escape sequences in the JSON parser (by Etienne Cimon aka etcimon) - pull #782
  • Fixed HTTPServerRequest.fullURL for requests without a Host header - issue #786
  • Fixed RedisClient initialization for servers that require authentication (by Pedro Yamada aka yamadapc) - pull #785
  • Fixed the JSON parser to not accept numbers containing ':'
  • Removed an invalid assertion in HTTPServerResponse.writeJsonBody - issue #788
  • Fixed handling of explicit "identity" content encoding in the HTTP client (by sinkuu) - pull #789
  • Fixed HTTPServerRequest.fullURL for HTTPS requests with a non-default port (by Arjuna aka arjunadeltoso) - pull #790
  • Fixed detection of string literals in Diet template attributes - issue #792
  • Fixed output of Diet attributes using ' as the string delimiter
  • Fixed detection of numeric types in BsonSerializer (do not treat Nullable!T as numeric)
  • Fixed the REST interface client to accept 201 responses (by Yuriy Glukhov) - pull #806
  • Fixed some potential lock related issues in the worker task handler loop
  • Fixed memory corruption when TCPListenOptions.disableAutoClose is used and the TCPConnection outlives the accepting task - issue #807
  • Fixed a range violation when parsing JSON strings that end with [ or { - issue #805
  • Fixed compilation of MongoCollection.aggregate and support passing an array instead of multiple parameters - issue #783
  • Fixed compilation and formatting issues in the HTTP logger (by Márcio Martins) - pull #808
  • Fixed assertion condition in DebugAllocator.realloc
  • Fixed shutdown when daemon threads are involved - issue #758
  • Fixed some serialization errors for structs with variadic constructors or properties or with nested type declarations/aliases (by Rene Zwanenburg) - pull #817, issue #818, pull #819
  • The HTTP server now terminates a connection if the response was not completely written to avoid protocol errors
  • Fixed an assertion triggered by a vibe.web.rest server trying to write an error message when a response had already been made - issue #821
  • Fixed using TaskLocal!T with types that have certain kinds of "copy constructors" - issue #825
  • Fixed -version=VibeNoSSL (by Dragos Carp) - pull #834
  • Use "bad request" replies instead of "internal server error" for various cases where a HTTP request is invalid (by Marc Schütz) - pull #827
  • Removed a leading newline in compiled Diet templates
  • Fixed serialization of nested arrays as JSON (by Rene Zwanenburg) - issue #840, pull #841
  • Fixed OpenSSL error messages in certain cases (by Andrea Agosti) - pull #796
  • Fixed parsing of MongoDB URLs containing / in the password field (by Martin Nowak) - pull #843
  • Fixed an assertion in TCPConnection.waitForData when called outside of a task (libevent) - issue #829
  • Fixed an InvalidMemoryOperationError in HTTPClientResponse.~this()
  • Fixed a memory corruption issue for HTTPS servers (by Etienne Cimon) - issue #846, pull #849
  • Fixed low-precision floating point number output in JsonStringSerializer
  • Fixed compilation in release mode (not recommended for safety reasons!) - issue #847
  • Fixed low-precision floating point number output in the Redis client - [issue #857][issue857]
  • Fixed handling of NaN in the JSON module (output as undefined) (by David Monagle)- pull #860
  • Fixed the Redis subscriber implementation (by Etienne Cimon) - issue #855, pull #815
  • Fixed compilation of the Isolated!T framework - issue #801
  • Fixed an InvalidMemoryOperationError in DebugAllocator (by Etienne Cimon) - pull #848
  • Fixed detection of numeric types in JsonSerializer (do not treat Nullable!T as numeric) (by Jack Applegame) - issue #686, pull #869
  • Fixed error handling in Win32TCPConnection.connect and improved error messages
  • Fixed ping handling of WebSocket ping messages (by Vytautas Mickus aka Eximius) - pull #883
  • Fixed always wrapping the e-mail address in angular brackets in the SMTP client (by ohenley) - pull #887
  • Fixed custom serialization of const instances (by Jack Applegame) - pull #879
  • Fixed the RedisDatabase.set*X to properly test the success condition (by Stephan Dilly aka Extrawurst) - pull #890
  • Fixed sleep(0.seconds) to be a no-op instead of throwing an assertion error
  • Fixed a potential resource leak in HashMap by using freeArray instead of directly deallocating the block of memory (by Etienne Cimon) - pull #893
Posted at 17:44:25 +0200 by Sönke Ludwig 3 comments

Pages: 1 2 3 4 5 6 7