Commit graph

368 commits

Author SHA1 Message Date
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
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