Skip to content

0.4.0-alpha

Compare
Choose a tag to compare
@sskorokhodov sskorokhodov released this 15 Apr 09:26
· 140 commits to master since this release

Main

  • Use parking instead of blocking internally. Breaking changes in API!
  • Support Clojure 1.9.

API

  • Add process/async and process/await! working as go and <! but
    propagating exceptions. The preferred way to block is calling process/await!!.
  • All parking API functions of gen-server and supervisor have pairs
    returning "async value".
  • gen-server callbacks can return timeout as the last element of a tuple.
  • Add callback name to exit reason caused by the bad return of gen-server's
    callback.
  • Remove possibility to set custom process' inbox.
  • Add process/proc-defn- (issue #18).
  • process/proc-defn accepts docstring and adds :doc and :arglists meta
    to defined fn (issue #23).
  • process/receive! accepts :infinity and 0 as the timeout value.
  • process/receive! requires one or more message patterns.
  • Move core tracing functions to process ns.

Docs

  • Docs for all gen-server API functions (callbacks are still not documented).
  • Docs for all supervisor API functions.
  • Describe supervisor behavior in ns docs.
  • Docs for process/receive! (issue #25).
  • Use markdown for generated docs.
  • Generated docs contain links to sources.
  • Fix typos.

Examples

  • Add explanatory printing to example 4 (issue #19).
  • Naive example of pmap using processes (issue #30).

Other

  • Trace handlers are called directly by the process event relates to.
  • No more high-level supervisor errors in tracing events.
  • Fix passing reg-name to gen-server/start-ns.
  • Remove org.clojure/math.combinatoric from main dependencies.