Commit graph

431 commits

Author SHA1 Message Date
nathanmarz
0b88411f88 rename walker param to be consistent with doc 2017-06-02 13:46:47 -04:00
nathanmarz
b2589e00a6 fix handling of records with ALL in cljs 2017-06-02 10:17:35 -04:00
nathanmarz
d0ff9bbc35 reimplement codewalker so it works with NONE 2017-06-01 02:38:20 -04:00
nathanmarz
340d6d3065 reimplement walker in terms of recursive-path to support NONE removal 2017-06-01 01:38:12 -04:00
nathanmarz
e8f15c4137 extend ALL to records (for walker reimplementation) 2017-06-01 01:27:24 -04:00
nathanmarz
5d185ec9f4 for ALL on maps, interpret transformed key value pair of < size 2 as removal 2017-05-31 21:00:23 -04:00
nathanmarz
1411ac495e add comments about workaround for cljs bug 2017-05-29 21:52:40 -04:00
nathanmarz
a924c75ac6 workaround to cljs bug where private vars in cljs.core can cause warnings with same named var (in this case, NONE) 2017-05-29 21:46:59 -04:00
nathanmarz
0608ca6396 fix bug with nested dynamic params with dynamic function invocations 2017-05-08 18:48:46 -04:00
nathanmarz
426873da98 support transforms to NONE for set-elem and map-key 2017-05-07 20:30:50 -04:00
nathanmarz
2dd6432c69 add set-elem navigator and change semantics of map-key to only navigate if the key exists (for consistency with set-elem) 2017-05-07 19:36:50 -04:00
nathanmarz
2423127877 add map-key 2017-05-05 18:41:46 -04:00
nathanmarz
5dea8919be add helper pred navs for common comparisons 2017-04-24 20:35:41 -04:00
nathanmarz
e3abd1ef9a better doc for filterer 2017-04-15 15:45:22 -04:00
nathanmarz
be30e46960 allow subselect/filterer to remove subvals 2017-04-13 10:20:24 -04:00
nathanmarz
ee56ddc1ab force ALL on lists to realize lazy sequence, fix benchmark 2017-04-11 11:58:52 -04:00
nathanmarz
b18a249623 improve performance of ALL transform on lists, add benchmark 2017-04-11 11:44:39 -04:00
nathanmarz
c3164d722d add satisfies-protpath? 2017-04-03 13:46:08 -04:00
nathanmarz
06d3ba548e fix nested dynamic arg issue for cljs 2017-04-01 04:45:50 -04:00
nathanmarz
b6ef861338 Fix #199 2017-04-01 04:27:57 -04:00
nathanmarz
3916c0dcf4 mark pred as direct-nav 2017-03-29 16:38:13 -04:00
nathanmarz
fedef396eb change dynamic navs to return single navigator instead of sequence of one nav, helps inline compiler when a nav takes a parameterized navs as input 2017-03-22 13:30:35 -04:00
nathanmarz
70f41a635a make inline cache vars private 2017-03-15 11:52:35 -04:00
nathanmarz
e32ec1c687 remove dead code 2017-03-14 12:21:18 -04:00
nathanmarz
35c8a9380e Add with-fresh-collected docstring 2017-03-01 10:46:28 -05:00
nathanmarz
b13b8d3c35 add remove with NONE functionality to FIRST and LAST 2017-03-01 10:40:17 -05:00
nathanmarz
2504b7849a add specialized MAP-KEYS navigator 2017-02-28 15:55:25 -05:00
nathanmarz
e7b595c4ca fix issue with NONE-ELEM on nil value 2017-02-17 17:54:11 -05:00
nathanmarz
ef5ad1de6d fix transforms on subvectors to maintain the type as a vector type 2017-02-17 12:05:12 -05:00
nathanmarz
b79a71decd Add BEFORE-ELEM, AFTER-ELEM, and NONE-ELEM navigators 2017-02-15 20:34:44 -05:00
nathanmarz
7c798c1e3b extend srange, BEGINNING, END, FIRST, and LAST to strings 2017-02-15 18:30:44 -05:00
nathanmarz
ffcba01df7 fix NAMESPACE select 2017-02-15 10:12:08 -05:00
nathanmarz
d595b9f26b change nthpath to richnav for performance 2017-02-14 14:33:46 -05:00
nathanmarz
71ed0ffae9 Add docstrings for keypath, must, and nthpath 2017-02-14 10:46:02 -05:00
nathanmarz
16310d6008 fix docstring 2017-02-14 10:42:54 -05:00
nathanmarz
48efea55ab Added NAME and NAMESPACE navigators 2017-02-14 08:47:19 -05:00
nathanmarz
3dbc775334 fix if-path/selected?/not-selected? so that vals are passed along to condition paths 2017-02-14 08:25:54 -05:00
nathanmarz
646e03a227 Add nthpath navigator 2017-02-12 21:13:08 -05:00
nathanmarz
3f71163454 extend ALL to PersistentHashSet 2017-02-12 21:02:38 -05:00
nathanmarz
e2b6f63f99 fix traverse with early termination to unwrap reduced vals 2017-02-12 15:24:13 -05:00
nathanmarz
28ecb90489 add docstrings 2017-02-12 11:38:45 -05:00
nathanmarz
3693d307fc fix traverse-all to properly propagate reduced vals, add tests 2017-02-12 11:37:14 -05:00
nathanmarz
62c998a472 implement traverse-all 2017-02-12 09:38:56 -05:00
nathanmarz
80b3857b08 implement early termination using reduced, re-implement select-any/select-first in terms of it 2017-02-11 21:26:30 -05:00
nathanmarz
f521409482 add with-fresh-collected higher order navigator 2017-02-11 08:56:45 -05:00
nathanmarz
a1929d9eb7 add note on mutli-path about potential future enhancement 2017-02-10 17:29:49 -05:00
nathanmarz
39e8c758fc fix missing wrap-dynamic-nav in cljs 2017-01-10 09:30:34 -05:00
Max Penet
f8d3ad5167 kill jvm reflection 2017-01-10 11:40:53 +01:00
nathanmarz
9505ac6dd1 Implement #165 2017-01-08 19:15:14 -05:00
nathanmarz
ef9d82e61d fix tests 2017-01-08 17:41:56 -05:00
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