Skip to content

Swish v2.2.0

Compare
Choose a tag to compare
@burgerrg burgerrg released this 19 May 15:57
· 192 commits to dev since this release

2021-05-18 Version 2.2.0 (Stable)

New

  • Improved database log performance:
    • Added osi_bulk_execute and sqlite:bulk-execute to support faster bulk insert.
    • Changed db gen-server to flush the accumulated db:log entries via sqlite:bulk-execute for better performance.
    • Added sqlite:marshal-bindings and sqlite:unmarshal-bindings.
    • Added osi_get_bindings and sqlite:get-bindings.
    • Extended sqlite:execute to accept as bindings: a list, a vector, or a marshaled bindings record instance.
  • Provided more control over database tuning parameters:
    • Exposed create-prune-on-insert-trigger.
    • Added make-swish-event-logger to let applications tune prune triggers for the Swish event tables.
    • Added db:options argument to db:start&link and log-db:start&link, which allows tuning:
      • commit-limit
      • commit-delay
      • cache-timeout
    • Added db:expire-cache.
  • osi_interrupt_database and sqlite:interrupt now return a boolean indicating the database's busy state.
  • Added log-db:event-logger that supports the setup and log fields of <event-logger>, but also supports a tolerate-fault? predicate.
  • Added an optional endure? argument to event-mgr:set-log-handler to let applications respond flexibly to log-handler faults.
  • Added define-tuple support for (type is?) that expands into (lambda (x) (type is? x)) just as (type field) expands into (lambda (x) (type field x)).
  • Added ct:join and ct:string-append, which do their work at expand time if possible.
  • Added to the meta-data collected by automated tests:
    • data from get-uname
    • start and end timestamp for each test
    • user annotations logged via mat:add-annotation!
  • Added --toolprefix option to ./configure to simplify cross-compilation.

Bug Fixes

  • Fixed a websocket bug that reported unexpected end-of-file when a 64-bit payload length crosses an internal buffer boundary.
  • Improved database gen-server's fault tolerance by using monitor in place of link and by adapting supervisor protocol on shutdown.
  • Fixed a minor performance bug that made some hashtables in the http library resort to linear search.
  • Fixed an obscure bug in receive when Swish is compiled with cp0 disabled. Normal builds leave cp0 enabled, but make coverage disables cp0.

Updates

  • Updated to SQLite 3.34.1
  • Updated to libuv 1.41.0