Skip to content

2.0.0

Latest
Compare
Choose a tag to compare
@aroemers aroemers released this 03 Mar 20:22

Added

  • The defstate macro now declares the resulting var as :dynamic. This enables the use of binding in tests.
  • The State object now implements IPersistentStack, thus now supports Clojure's peek. This can be used to inspect the value, without starting it.

Changed

  • The string representation of an unrealized State object now says :unrealized instead of :not-delivered.
  • The string representation of a realized State object now adheres to a *print-length* of 10.
  • ❗️BREAKING: The low-level state* function now takes a :name key, instead of :ns-str and :name-str. The new entry must be a symbol and is still optional.
  • ❗️BREAKING: The State object now implements IReference instead of IObj. This means that with-meta support has been replaced with alter-meta! and reset-meta!. This way updating meta data does not result in a new State object anymore.
  • ❗️BREAKING: The notifications to the watchpoint now receive one of :starting, :started, :stopping or :stopped as the third argument, and the State object as the fourth argument.

Fixed

  • The defstate macro could sometimes mistake a string or map value for a docstring or attribute map. For example, this would fail (defstate foo "bar" :stop (println this)). This is now fixed.