- Remove unused dependency tailrecursion/cljs-priority-map (thanks @alandipert)
- Move from boot to tools-deps
- Setup ci using github actions
- Add clj-kondo config
- Improve performance of
javelin.core/cell?
(thanks @borkdude)
-
Add formula-of, formulet macros
-
Formula cells that cannot change will be tagged as constant
-
Better support for lenses:
- Added arity to formula function to accept lens update function.
- Added arity to set-formula! function to accept lens update function.
- Added arity to set-cell!= macro to accept lens update function.
-
Various performance improvements:
- Cell type fields are now native JS arrays, not CLJS collections.
- Replace CLJS priority map used in propagation with a sorted JS array.
- Eliminate seqs wherever possible by looping instead.
- Remove redundant operations during cell creation.
- Add simpler, more efficient impl. for simple cell-doseq use case.
-
Misc:
- Add docstrings for everything.
- Use clojure.core/destructure instead of cljs.core/destructure when
compiling in an older version of CLJS that does not have it.
- cell-let binds map destructuring
- Add formula to API overview in README
- Correct handling of catch, finally
- Add missing special forms, fix tests
- Update README with namepace changes
- Change deploy group from javelin to hoplon
- introduce formula function earlier on README
- Rename namespaces (BREAKING)
- Add meta to cells
- Move from lein to boot
- Improve javelin-clj, add tests
- Remove debug print, fix clojars deploy
- Accept "for" style bindings in cell-doseq
- Fix issue with ::none appearing in formulas in dosync
- Improve lenses examples and tests
- Update clojurescript version
Fri Aug 8 13:15:23 EDT 2014
- Add optional additional argument to
cell=
and defc=
macros. When called
with this additional argument they return lens cells.
Thu Aug 7 18:45:31 EDT 2014
- Add
formula?
, lens?
, and lens
. - Fix issues with watches not being notified when formulas are mutated.
- Fix issues with watch notifications and transactions.
- Better performance.
Wed Aug 6 11:13:56 EDT 2014
Tue Jul 1 00:27:56 EDT 2014
lift
deprecated and renamed to formula
- Bugfix: Fix issue with cell-let macro
- Bugfix: Fix cell-doseq, making it reactive.
- cljs 0.0-2173 compat: IReset/ISwap support in Cell
- add cell-doseq test; dox
- Remove watches on destroy; add cell-let; cleanup
- Seqify collection cell arg to cell-map; remove mirroring macros
Sun Nov 24 12:34:02 EST 2013
- add clojure implementation
Wed Oct 30 16:09:26 EDT 2013
- add
cell-map
function and cell-doseq
macro
Mon Oct 21 23:33:21 EDT 2013
- add
make-require
and make-require-macros
Mon Oct 21 16:41:17 EDT 2013
Sun Oct 20 16:25:35 EDT 2013
- rollback unquote fix in 2.0.3
Sun Oct 20 14:22:48 EDT 2013
Sat Oct 19 18:24:43 EDT 2013
- Bugfix: issue with syntax-unquoted references to cells in formulas
Thu Oct 17 15:12:29 EDT 2013
- Update dependencies to versions compatible with new CLJS version.
Thu Oct 17 02:31:41 EDT 2013
- Bugfix: issue with arg destructuring in anon fns in formulas
Wed Oct 16 12:23:32 EDT 2013
Wed Oct 16 11:12:01 EDT 2013
- Use hoisting instead of lifting when constructing formulas.
- Unsupported special forms are now down to just
ns
, def
, deftype*
,
and defrecord*
. - It is no longer an error to destroy a cell that other cells reference
in their formulas.
Mon Oct 14 14:08:09 EDT 2013
- Add
defc
and defc=
macros.
Sun Oct 13 18:24:15 EDT 2013
- Remove
mx
macro. - Add
macroexpand-all
macro. - Unsupported special forms in formulas now cause compile-time exception.
- Fix issue where local bindings were interpreted as special forms with the
same name.
- The
cell?
function returns the cell or nil instead of boolean. - Add
input?
macro. - Watches can be added to input and formula cells. IWatchable is now fully
supported again by all Cells.
- Move
tailrecursion.javelin.macros
namespace to tailrecursion.javelin
. - Remove
cell?
, input?
, cell
, set-cell!
, and destroy-cell!
macros—use the functions with corresponding names instead.
Tue Oct 8 19:28:37 EDT 2013
- Add
cell?
, set-cell!
, set-cell!=
, and destroy-cell!
macros.
Sun Oct 6 16:32:01 EDT 2013
- Throw exception when
swap!
or reset!
is applied to a formula cell. - Watches can no longer be added to formula cells. Use cells instead.
- Remove macros
cfn
and defcfn
from public API. - Remove convenience functions
route*
, timer*
, log
, timeout
, and
interval
from public API. - Remove
self?
from public API and self-referential code. - The
cell
macro creates only input cells; cell=
creates only formula
cells. - Changes in the way macro builds formulas:
- Quoted expressions are not walked but remain quoted.
- The
unquote
form is repurposed: argument is evaluated in place and not
walked. - The
unquote-splicing
form is interpreted as the composition of unquote
and deref
.
Mon Sep 30 15:22:11 EDT 2013
- Remove
done
property from Cell
type. - Remove
done!
from public API.