nathanmarz
|
00ab106dd6
|
finish implementation of #117
|
2017-01-08 17:32:15 -05:00 |
|
nathanmarz
|
6b500a6aef
|
implement NONE removal for ALL and MAP-VALS on PersistentArrayMap
|
2017-01-08 14:01:58 -05:00 |
|
nathanmarz
|
9617aa1931
|
implement ALL NONE removal for some of default cases
|
2017-01-08 13:30:14 -05:00 |
|
nathanmarz
|
fca11410b4
|
implemented NONE removal for keypath, must, MAP-VALS (except PersistentArrayMap), ALL (except lists and PersistentArrayMap)
|
2017-01-08 12:52:54 -05:00 |
|
nathanmarz
|
6a509ca478
|
fix tests
|
2016-12-26 12:55:14 -05:00 |
|
nathanmarz
|
72e004df23
|
dynamic navs automatically compile sequence returns if completely static
|
2016-12-26 12:54:12 -05:00 |
|
nathanmarz
|
4ad0f79643
|
fix #160
|
2016-12-03 11:05:06 -05:00 |
|
Nathan Marz
|
23e58ae223
|
don't convert lists to vectors in LAST
|
2016-11-18 16:24:09 -05:00 |
|
Nathan Marz
|
9178f38465
|
fix race condition relating to retrieving path from cache and aot compilation
|
2016-11-09 06:20:10 -05:00 |
|
Nathan Marz
|
013c4d6d0a
|
cljs compatibility
|
2016-11-07 11:25:12 -05:00 |
|
Nathan Marz
|
508e1d08ed
|
added traversed
|
2016-11-07 07:47:36 -05:00 |
|
Nathan Marz
|
dfedd30b29
|
Implemented #146, dynamic navigator enhancements
|
2016-10-31 23:57:12 -04:00 |
|
Nathan Marz
|
ce38883e64
|
fix flattening/type-conversion of sequential params during inline caching
|
2016-10-29 16:02:56 -04:00 |
|
Nathan Marz
|
d9d6c8772e
|
fix #152
|
2016-10-14 09:52:12 -04:00 |
|
Nathan Marz
|
ea1f851d94
|
Fix #148
|
2016-10-02 07:48:53 -04:00 |
|
Nathan Marz
|
2a6ef8d0c0
|
fix doc on comp-paths
|
2016-09-30 06:57:12 -04:00 |
|
Nathan Marz
|
03493cf9ca
|
replace any-pred? with core function some-fn
|
2016-09-07 15:19:50 -04:00 |
|
Nathan Marz
|
6a5d0f7560
|
rename any? to avoid conflict with clojure 1.9
|
2016-09-07 07:54:10 -04:00 |
|
Nathan Marz
|
2673004b5b
|
suppress cache vars from docs
|
2016-09-06 19:37:35 -04:00 |
|
Nathan Marz
|
c39b41fea1
|
suppress docs for generated functions
|
2016-09-06 19:34:37 -04:00 |
|
Nathan Marz
|
3afbafd38b
|
greatly speed up compilation (for select*, transform*, etc)
|
2016-09-05 08:17:33 -04:00 |
|
Nathan Marz
|
2e85cedcc4
|
merge macros namespace into core com.rpl.specter namespace
|
2016-09-05 07:48:05 -04:00 |
|
Nathan Marz
|
c44a380092
|
fix so direct-nav metadata on vars gets translated appropriately when that var is called as a function
|
2016-09-03 22:07:45 -04:00 |
|
Nathan Marz
|
18791c6b82
|
inline caching working for cljs, all tests passing
|
2016-09-03 19:58:10 -04:00 |
|
Nathan Marz
|
d7d1d264ef
|
basic cljs inline caching working
|
2016-09-03 17:35:13 -04:00 |
|
Nathan Marz
|
8a71d5241d
|
refactor to unify cljs and clj inline caching code
|
2016-09-03 16:09:02 -04:00 |
|
Nathan Marz
|
5400e3fd65
|
cleaner inline caching implementation
|
2016-09-03 09:29:01 -04:00 |
|
Nathan Marz
|
16446373f1
|
make terminal-val return a direct-nav, add another benchmark case
|
2016-09-02 20:20:49 -04:00 |
|
Nathan Marz
|
194396f0f4
|
remove todo
|
2016-09-02 10:45:50 -04:00 |
|
Nathan Marz
|
bb77fb8f9d
|
moved mk-comp-navs macro into clj namespace
|
2016-09-02 09:17:32 -04:00 |
|
Nathan Marz
|
0046e23bfe
|
added with-inline-debug helper and updated comment on dynamicnavs
|
2016-09-02 09:02:09 -04:00 |
|
Nathan Marz
|
0c50e1859d
|
fix + test for when dynamic navs ignore dynamic params
|
2016-09-02 08:41:02 -04:00 |
|
Nathan Marz
|
984e3cdcd2
|
update changelog
|
2016-09-01 23:37:36 -04:00 |
|
Nathan Marz
|
1d52e970a0
|
another perf enhancement
|
2016-09-01 23:20:53 -04:00 |
|
Nathan Marz
|
dc6740d9dc
|
fix accidental reflection
|
2016-09-01 23:15:42 -04:00 |
|
Nathan Marz
|
939378fcd1
|
fix transformed, all tests passing
|
2016-09-01 22:16:39 -04:00 |
|
Nathan Marz
|
23299457db
|
fixes
|
2016-09-01 21:46:04 -04:00 |
|
Nathan Marz
|
e910f32931
|
fixes
|
2016-09-01 21:13:20 -04:00 |
|
Nathan Marz
|
e33ecb2c33
|
some fixes
|
2016-09-01 21:07:01 -04:00 |
|
Nathan Marz
|
c80bf573a5
|
updated tests, lots of errors
|
2016-09-01 20:32:38 -04:00 |
|
Nathan Marz
|
6549be1be5
|
protpaths and parameterized protpaths working
|
2016-09-01 17:35:19 -04:00 |
|
Nathan Marz
|
e057ee8d22
|
add note about original-obj
|
2016-09-01 17:04:58 -04:00 |
|
Nathan Marz
|
e571df5832
|
add code to avoid embedding functions with metadata on them (which kills perf)
|
2016-09-01 16:59:40 -04:00 |
|
Nathan Marz
|
f8d74d5884
|
add direct nav hints
|
2016-09-01 16:31:00 -04:00 |
|
Nathan Marz
|
479cb7d023
|
re-implemented declarepath and providepath, added local-declarepath for making recursive/mutually-recursive navigators locally
|
2016-09-01 13:56:51 -04:00 |
|
Nathan Marz
|
4c570e5de4
|
fixes + manual inlining for keypath, must, view
|
2016-09-01 11:24:15 -04:00 |
|
Nathan Marz
|
c80a2d3c50
|
fixes
|
2016-09-01 10:04:51 -04:00 |
|
Nathan Marz
|
eb5de0bdd5
|
lots of progress
|
2016-08-31 22:30:28 -04:00 |
|
Nathan Marz
|
f511cd4fca
|
initial rewriting
|
2016-08-29 22:01:17 -04:00 |
|
Nathan Marz
|
a35cacae67
|
have defnav generate every method as a helper function as well (with name <name>-<method-name>, takes params as initial arguments followed by regular method arguments (except for 'this')
|
2016-08-17 09:42:59 -04:00 |
|
Nathan Marz
|
21f117503e
|
allow non-dynamic vars to be treated as constants and add test for constant detection
|
2016-08-13 15:59:38 -04:00 |
|
Nathan Marz
|
1b5b19c7c8
|
fix accidental coercion to rich nav
|
2016-08-13 09:23:23 -04:00 |
|
Nathan Marz
|
ac3f604211
|
reformat code with parinfer
|
2016-08-11 10:13:27 -04:00 |
|
Nathan Marz
|
87137c633d
|
minor refactoring of macros
|
2016-08-10 15:45:13 -04:00 |
|
Nathan Marz
|
9db244ebe5
|
always preserve persistentarraymap for ALL and MAP-VALS, also improve performance of those cases by almost 2x
|
2016-08-09 12:27:46 -04:00 |
|
Nathan Marz
|
9a35c0666d
|
define pred using defnav so it uses lean navigation when possible
|
2016-08-08 10:16:32 -04:00 |
|
Nathan Marz
|
74f38d93a9
|
switch from cljx to cljc
|
2016-08-06 10:40:45 -04:00 |
|
Nathan Marz
|
c4f5a1b02b
|
if set is constant make a static navigator for it
|
2016-08-06 02:23:11 -04:00 |
|
Nathan Marz
|
b9cd024c38
|
parameterize navigators immediately if all params are constant (rather than factor)
|
2016-08-06 00:44:40 -04:00 |
|
Nathan Marz
|
56da47aca5
|
generate a real higher order function from defnav and defcollector that returns a lean compiled path when invoked but coerces to equivalent paramsneededpath when composed, change nav constructors to recognize this and use a lean proxy for this case
|
2016-08-05 17:59:12 -04:00 |
|
Nathan Marz
|
7bfad80e00
|
fix for cljs
|
2016-08-05 16:34:58 -04:00 |
|
Nathan Marz
|
073dca1e98
|
add missing file
|
2016-08-05 16:21:49 -04:00 |
|
Nathan Marz
|
cbd3db5a75
|
all tests passing
|
2016-08-05 16:18:10 -04:00 |
|
Nathan Marz
|
e7db1803b1
|
fixes
|
2016-08-05 15:48:55 -04:00 |
|
Nathan Marz
|
e7dc940cd0
|
completely re-implement nav, collector, fixed-pathed-nav, and pathed-collector in cleaner and more flexible way
|
2016-08-05 14:10:38 -04:00 |
|
Nathan Marz
|
33d19ebd1d
|
cljs tests passing
|
2016-08-04 22:40:53 -04:00 |
|
Nathan Marz
|
4005aca92e
|
get cljs compiling
|
2016-08-04 16:32:54 -04:00 |
|
Nathan Marz
|
4460ee313e
|
all tests passing
|
2016-08-04 16:20:23 -04:00 |
|
Nathan Marz
|
53682de1eb
|
more fixes
|
2016-08-04 16:03:59 -04:00 |
|
Nathan Marz
|
423da1e03f
|
more fixes
|
2016-08-04 15:03:00 -04:00 |
|
Nathan Marz
|
73312bffd7
|
fixes
|
2016-08-04 13:47:54 -04:00 |
|
Nathan Marz
|
3ba0926251
|
refactor codebase to use reified navigator objects instead of individual functions, force all navigators to be defined using defnav, add ImplicitNav protocol
|
2016-08-04 11:28:47 -04:00 |
|
Nathan Marz
|
9c9b19af26
|
fix error when using specter with aot
|
2016-06-27 17:32:02 -04:00 |
|
Nathan Marz
|
b7191b11c2
|
update docs and changelog
|
2016-06-23 12:40:39 -04:00 |
|
Nathan Marz
|
b060339573
|
major optimization to multi-path by removing sequence operations at runtime
|
2016-06-23 12:35:47 -04:00 |
|
Nathan Marz
|
18680437aa
|
optimize terminal-val with fast-constantly
|
2016-06-22 21:18:38 -04:00 |
|
Nathan Marz
|
898d7489a6
|
add terminal-val
|
2016-06-22 21:17:14 -04:00 |
|
Nathan Marz
|
2f5d601ccf
|
implemented multi-transform and terminal
|
2016-06-22 21:17:13 -04:00 |
|
Nathan Marz
|
d1e32be13b
|
fix exception when using val collection with setval
|
2016-06-22 21:14:35 -04:00 |
|
Nathan Marz
|
9ff9ef6650
|
Fix #128
|
2016-06-21 18:38:00 -04:00 |
|
Nathan Marz
|
e4ee703a09
|
update richnav comment
|
2016-06-16 09:44:30 -04:00 |
|
Nathan Marz
|
66f555ab73
|
fix multi-path + val collection and minor problem in if-path
|
2016-06-16 09:42:24 -04:00 |
|
Nathan Marz
|
36f0e63d56
|
added richnav and fixed if-path with value collection
|
2016-06-16 09:09:29 -04:00 |
|
Nathan Marz
|
c709b16eab
|
ALL and MAP-VALS perf improvement for small maps
|
2016-06-15 17:18:58 -04:00 |
|
Nathan Marz
|
ef8039cacc
|
error if pathed fn used where navigator expected
|
2016-06-15 11:41:12 -04:00 |
|
Nathan Marz
|
f5baf819c0
|
fix typo
|
2016-06-15 10:32:50 -04:00 |
|
Nathan Marz
|
85b91d19c4
|
rearrange code for bootstrap compatibility
|
2016-06-14 08:45:11 -04:00 |
|
Nathan Marz
|
ecda5e2cff
|
rearrange code to hide riddley usage from bootstrap
|
2016-06-13 19:49:35 -04:00 |
|
Nathan Marz
|
aedb7235f9
|
add note on implementation detail of using cljs.analyzer
|
2016-06-13 17:25:29 -04:00 |
|
Nathan Marz
|
8c128816f5
|
get macroexpansion for clojurescript working correctly so that collected? works inside inline paths
|
2016-06-13 17:23:23 -04:00 |
|
Nathan Marz
|
c82c3b71d8
|
add note about not being able to use collected? inline in a path when using cljs, disable that test for cljs
|
2016-06-13 15:26:08 -04:00 |
|
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 |
|