Nathan Marz
|
a687f4a0bc
|
test for traverse + make it work in cljs
|
2016-06-13 14:51:20 -04:00 |
|
Nathan Marz
|
66d1ce65f3
|
Merge branch 'master' into traverse
|
2016-06-13 13:51:03 -04:00 |
|
Nathan Marz
|
f26aa001eb
|
make MAP-VALS work on nil
|
2016-06-11 09:51:28 -04:00 |
|
Nathan Marz
|
3dc7ad25ff
|
added collected? and DISPENSE navigators
|
2016-06-10 07:57:18 -04:00 |
|
Nathan Marz
|
e20278cf97
|
fix typo in docstring
|
2016-06-09 23:19:34 -04:00 |
|
Nathan Marz
|
911dab5e52
|
add non-init reduce case to traverse
|
2016-06-09 23:19:12 -04:00 |
|
Nathan Marz
|
f605167a53
|
implement traverse
|
2016-06-09 23:19:11 -04:00 |
|
Nathan Marz
|
3af11575d7
|
fix typos in docstrings
|
2016-06-09 23:19:03 -04:00 |
|
Nathan Marz
|
0c4c4369a2
|
eliminate compiler performance warning regarding case
|
2016-06-09 17:32:40 -04:00 |
|
Nathan Marz
|
b22ff2bb2a
|
add in transients namespace
|
2016-06-09 08:46:29 -04:00 |
|
Nathan Marz
|
4565a7e7d6
|
fail cljs build on any warnings, eliminate warning about com.rpl.specter.transient namespace by renaming to transients
|
2016-06-09 08:06:17 -04:00 |
|
Nathan Marz
|
98343784bf
|
fix end, last, beginning, and first to work on nil
|
2016-06-08 14:42:24 -04:00 |
|
Nathan Marz
|
9045e13386
|
merge
|
2016-06-08 13:58:15 -04:00 |
|
Alex Engelberg
|
fbb7a17197
|
Add META navigator, test case, and benchmarks
|
2016-06-08 08:18:10 -07:00 |
|
Nathan Marz
|
49957f2536
|
Merge pull request #107 from aengelberg/transient-navigators
Transient navigators
|
2016-06-08 05:48:51 -04:00 |
|
Alex Engelberg
|
2147584dca
|
Change reduce to reduce-kv
|
2016-06-07 23:16:54 -07:00 |
|
Nathan Marz
|
0f475ddba3
|
merge in optimizations to END
|
2016-06-07 16:11:21 -04:00 |
|
Nathan Marz
|
5161f6dfbf
|
optimize END for vectors
|
2016-06-07 16:07:01 -04:00 |
|
Nathan Marz
|
ec05c14225
|
document exact semantics of select*/transform* needed for Navigator
|
2016-06-07 14:34:32 -04:00 |
|
Nathan Marz
|
e698f5f06b
|
bump version, optimized multi-path select, lots of select-any tests
|
2016-06-07 12:35:59 -04:00 |
|
Nathan Marz
|
205b6a1319
|
fix MAP-VALS
|
2016-06-07 10:51:08 -04:00 |
|
Nathan Marz
|
6580f4df4b
|
added selected-any? helper operation
|
2016-06-07 10:47:18 -04:00 |
|
Nathan Marz
|
81ec559e69
|
docstring for MAP-VALS
|
2016-06-07 10:31:07 -04:00 |
|
Nathan Marz
|
e76363c532
|
more docstrings and benchmarks
|
2016-06-07 10:18:20 -04:00 |
|
Nathan Marz
|
88a79e3d77
|
add docstrings for new API elements
|
2016-06-07 09:40:14 -04:00 |
|
Nathan Marz
|
a4c941b744
|
cljs compatible
|
2016-06-07 00:49:52 -04:00 |
|
Nathan Marz
|
68ac32ef56
|
optimize if-path and selected? for non basic fn case
|
2016-06-06 21:30:14 -04:00 |
|
Nathan Marz
|
f3bf935509
|
new semantics for select* for increased performance, new select-any operation with maximal query performance, needs more tests
|
2016-06-06 20:29:45 -04:00 |
|
Nathan Marz
|
ae98aa48ba
|
add specialized MAP-VALS navigator to circumvent the unavoidable overhead of [ALL LAST]
|
2016-06-06 16:03:08 -04:00 |
|
Nathan Marz
|
571ba316da
|
Fix #109
|
2016-06-06 07:48:30 -04:00 |
|
Nathan Marz
|
c81ba0196f
|
eliminate warning about intern for bootstrap cljs
|
2016-06-06 07:38:21 -04:00 |
|
Alex Engelberg
|
399e5661f1
|
The (identical?) trick doesn't work in cljs, but select-keys does
|
2016-06-05 22:11:34 -07:00 |
|
Alex Engelberg
|
25ba21d9ee
|
Remove no-longer-used transient-all-select|transform
|
2016-06-05 21:47:44 -07:00 |
|
Alex Engelberg
|
cb0dc261cf
|
Add tests for transients, fix transient navigators based on test failures
|
2016-06-05 21:38:14 -07:00 |
|
Alex Engelberg
|
067ce9edee
|
Remove ALL! and filterer!
|
2016-06-05 11:11:14 -07:00 |
|
Alex Engelberg
|
b3e581f737
|
WIP, transient navigators
|
2016-06-05 10:08:30 -07:00 |
|
Nathan Marz
|
ff903cd236
|
optimize selected? and not-selected?
|
2016-06-04 22:57:56 -04:00 |
|
Nathan Marz
|
f82ab31b36
|
expand optimized if-path to encompass any sequence of static functions
|
2016-06-04 21:22:57 -04:00 |
|
Nathan Marz
|
2d3902f478
|
huge speedup to if-path when condition is a single statically known function, big optimization for all transforms that don't use value collection by using identical? instead of empty?
|
2016-06-04 20:49:57 -04:00 |
|
Nathan Marz
|
94d5d2021a
|
add nil case for all-transform
|
2016-06-04 17:22:27 -04:00 |
|
Nathan Marz
|
a4857a9d57
|
Fix #96
|
2016-06-04 17:19:39 -04:00 |
|
Nathan Marz
|
86f05b3cbe
|
major performnace enhancements for ALL on vectors (2x) and maps (10% for arraymas, 25% for hashmaps)
|
2016-06-04 17:12:40 -04:00 |
|
Nathan Marz
|
0bc26c950e
|
implement cond-path in terms of if-path to avoid all runtime sequence operations
|
2016-06-04 16:40:34 -04:00 |
|
Nathan Marz
|
ff2853381c
|
huge speedup to if-path by having specialized implementation separate from cond-path
|
2016-06-04 15:01:28 -04:00 |
|
Nathan Marz
|
59423c358e
|
huge speedup for cond-path
|
2016-06-04 14:51:26 -04:00 |
|
Nathan Marz
|
b6e1f5f20f
|
defprotocolpath docstring
|
2016-06-04 14:30:38 -04:00 |
|
Nathan Marz
|
57a2e967d4
|
defpathedfn docstring
|
2016-06-04 14:23:09 -04:00 |
|
Nathan Marz
|
58865ee10d
|
fill in missing docstrings
|
2016-06-04 09:40:41 -04:00 |
|
Nathan Marz
|
d9443232d8
|
add docstrings to the core select/transform/etc. macros
|
2016-06-04 09:29:45 -04:00 |
|
Nathan Marz
|
e1138747d9
|
fix #103
|
2016-06-03 16:25:27 -04:00 |
|
Nathan Marz
|
d85f21722b
|
set up to generate html api docs
|
2016-06-02 11:59:19 -04:00 |
|
Nathan Marz
|
52740d56ac
|
add :notpath metadata for pathedfn args that should not be interpreted as paths during inline factoring/caching, fixed transformed to operate appropriately in inline factoring when transform-fn is anonymous or local, drop support for cljs below v1.7.10
|
2016-06-02 02:42:18 -04:00 |
|
Nathan Marz
|
8a0ba0b3b0
|
eliminate last cljs compiler warning
|
2016-06-02 01:15:35 -04:00 |
|
Nathan Marz
|
c1d9dff75e
|
eliminate most of cljs warnings except for one
|
2016-06-01 20:54:04 -04:00 |
|
Nathan Marz
|
187299b3d9
|
make non 1 or 2 count case update-last faster for vectors, change updateextremes to be specific to persistentvector
|
2016-06-01 12:54:59 -04:00 |
|
Nathan Marz
|
2fe16769ff
|
use nth instead of get for retrieving first element of vector
|
2016-06-01 12:42:41 -04:00 |
|
Nathan Marz
|
39a3755b49
|
implement optimized extremes protocols and fastempty for IPersistentVector rather than PersistentVector
|
2016-06-01 12:33:10 -04:00 |
|
Nathan Marz
|
edfcc92a85
|
big optimization for LAST for small vectors (e.g. those used for mapentries)
|
2016-06-01 12:27:02 -04:00 |
|
Nathan Marz
|
1c21be2262
|
minor performance optimizations to FIRST/LAST
|
2016-06-01 12:02:41 -04:00 |
|
Nathan Marz
|
6b7d18d874
|
use reduce-kv to optimize ALL transform on maps, significant performance boost
|
2016-06-01 11:08:49 -04:00 |
|
Nathan Marz
|
fbca7ab99c
|
stop using ConcurrentHashMap for inline cache, instead intern a new var at macro-time. 17% performance improvement for [:a :b :c] benchmark
|
2016-05-31 23:04:24 -04:00 |
|
Nathan Marz
|
cb3b33f63b
|
another bootstrap compatibility change (from @mfikes)
|
2016-05-29 10:15:03 -04:00 |
|
Nathan Marz
|
d162c2b49f
|
advise cljs compiler not to warn about undeclared var instead of the hack that was being used before
|
2016-05-29 09:06:51 -04:00 |
|
Nathan Marz
|
637f7fc819
|
code cleanup
|
2016-05-29 00:34:51 -04:00 |
|
Nathan Marz
|
f49f371eea
|
eliminate undeclared var warning from cljs inline caching code
|
2016-05-28 21:06:43 -04:00 |
|
Nathan Marz
|
2c52355f8d
|
remove todo
|
2016-05-28 20:01:35 -04:00 |
|
Nathan Marz
|
e5db7252c3
|
use local def for cljs inline cache. faster and enables bootstrap compatibility
|
2016-05-28 20:01:10 -04:00 |
|
Nathan Marz
|
bb5fcbe7b3
|
bootstrap compatibility changes
|
2016-05-28 19:00:58 -04:00 |
|
Nathan Marz
|
e2e8fa091e
|
Added continuous-subseqs navigator
|
2016-05-28 13:57:30 -04:00 |
|
Nathan Marz
|
22f0b7e5e1
|
minor inline caching failure string improvements
|
2016-05-25 00:13:46 -04:00 |
|
Nathan Marz
|
b927d8e241
|
major optimization for use case of passing an already compiled path to inline caching specter operations
|
2016-05-24 17:39:08 -04:00 |
|
Nathan Marz
|
73e460df80
|
optimization for using comp-paths on already compiled path
|
2016-05-24 17:29:34 -04:00 |
|
Nathan Marz
|
b8bcfd6054
|
change how macroexpansion is done during inline caching so that nested &env are correctly computed. Allows for inline caching to occur nested inside an inline caching expression
|
2016-05-24 17:01:17 -04:00 |
|
Nathan Marz
|
d7db4190dd
|
fix nav constructors for cljs
|
2016-05-24 16:06:32 -04:00 |
|
Nathan Marz
|
e70cfb3623
|
added nav constructors + tests, fixed bug with clj platform eval'd params fn to bind to the namesapace where the path was defined
|
2016-05-24 16:00:22 -04:00 |
|
Nathan Marz
|
cd7b759c3a
|
added nav constructors with integration into automatic inline factoring + caching
|
2016-05-24 13:49:41 -04:00 |
|
Nathan Marz
|
b2cb9f1940
|
add doc for must-cache-paths
|
2016-05-24 08:42:23 -04:00 |
|
Nathan Marz
|
4f3990c239
|
added tests and cljs-specific fixes
|
2016-05-23 14:58:22 -04:00 |
|
Nathan Marz
|
218cbcb933
|
use mutable cell for must-cache-paths state for cljs compatibility
|
2016-05-23 10:36:52 -04:00 |
|
Nathan Marz
|
1e0a43c903
|
all tests passing for both clj and cljs
|
2016-05-23 10:21:43 -04:00 |
|
Nathan Marz
|
b156727f3c
|
fix inline handle params for cljs, most tests passing
|
2016-05-23 10:01:44 -04:00 |
|
Nathan Marz
|
ac8119dbbe
|
inline caching for cljs working in repl tests, tests not working for cljs yet
|
2016-05-23 09:23:14 -04:00 |
|
Nathan Marz
|
d30af6e972
|
cljs inline caching impl almost working
|
2016-05-23 08:18:49 -04:00 |
|
Nathan Marz
|
2071059695
|
revert back to using concurrenthashmap - the performance benefit is not worth the potential startup time problems with >5000 callsites
|
2016-05-22 09:52:37 -04:00 |
|
Nathan Marz
|
50b02c17f0
|
add case to automatically factor string for cached path if it is extended as a navigator
|
2016-05-22 09:25:33 -04:00 |
|
Nathan Marz
|
fcb5e013d4
|
fixed inline precompilation of inline sets in paths, fix bug leading to wrong params order during inline precompilation, change select/transform operations to be macros and move code around accordingly, rename previous versions of select/transform functions with * added
|
2016-05-22 08:57:53 -04:00 |
|
Nathan Marz
|
cdcdbbbaa4
|
clean up terminology – defpath -> defnav, path -> nav, fixed-pathed-path -> fixed-pathed-nav, variable-pathed-path -> variable-pathed-nav, StructurePath -> Navigator (breaking changes)
|
2016-05-21 15:54:07 -04:00 |
|
Nathan Marz
|
c567045fb5
|
better conditional checking of cached value
|
2016-05-21 10:08:50 -04:00 |
|
Nathan Marz
|
c2fa922717
|
automatically factor anonymous functions with pred, 20% more effient cache strategy, more efficient hot path, added ability with must-cache-paths to error when a path can't be cached and get detailed information why
|
2016-05-21 09:44:20 -04:00 |
|
Nathan Marz
|
d3a462aa06
|
initial impl working for basic use cases
|
2016-05-20 16:57:53 -04:00 |
|
Nathan Marz
|
1d77d295fa
|
minor refactoring of ATOM and update changelog
|
2016-05-08 15:55:45 -04:00 |
|
Rakesh
|
c280b40b12
|
renamed atompath to ATOM
|
2016-05-08 23:39:14 +05:30 |
|
Rakesh
|
7b33c93132
|
Added path to navigate to atom value
|
2016-05-07 22:40:21 +05:30 |
|
Nathan Marz
|
03f6a12baa
|
fix must select
|
2016-05-05 14:59:25 -04:00 |
|
Nathan Marz
|
3602a08e5d
|
docstring for view
|
2016-05-05 14:29:20 -04:00 |
|
Nathan Marz
|
b4b2200377
|
added must navigator
|
2016-05-05 14:24:57 -04:00 |
|
Nathan Marz
|
f5c5284ae1
|
add docstrings to zippers
|
2016-04-25 17:47:10 -04:00 |
|
Nathan Marz
|
48ad46d5e5
|
add zipper/PREV
|
2016-04-24 16:54:07 -04:00 |
|
Nathan Marz
|
9a3a19bb9b
|
add NODE-SEQ, find-first, and NEXT-WALK
|
2016-04-24 16:49:45 -04:00 |
|
Nathan Marz
|
96d5e94a5b
|
fix zipper navigation to stop navigating when right/left/up/down/next navigate nowhere
|
2016-04-24 13:03:29 -04:00 |
|