This release is a bugfix release that allows adderall to work with recent versions of Hy. However, that bugfix comes with an API breakage, and as such, the version number had to be bumped.
The run and run* macros no longer accept an optional :lazy argument. This feature was removed because it broke compatibility with Hy >= 0.11’s keyword argument syntax. Use lazy-run or lazy-run* instead.
Having been used in production for about a year, it is time to admit defeat, and declare adderall stable.
Objects can now have their own unification strategy by implementing a “unify” function, that takes three arguments: u, v and s; and returns a tuple or nil. Whenever a logic variable is being unified with an object, instead of unifying with the object itself, adderall will call this method of it, and let the object handle the unification itself.
This allows one to extend adderall in ways not possible before.
The library was updated to work with hy >= 0.10.1, which changed a few details of the language it was relying on. With the change, the library should work with all versions of hy past 0.10.
It is now possible to place logic variables within sets, adderall learned how to traverse them. This means one can now do:
(run* [q] (memberᵒ 3 (set [1 2 q q]))) ;=> [3]
One can now pass :lazy as the first argument to the run and run* macros, and they will return a generator, and not force them into a list.
The library only used the interval function from toolz, which was an overkill. It now ships with an internal implementation of the function, and drops the toolz dependency.
Install every module, including extra ones.
Initial public release.