Commit graph

413 commits

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