Commit graph

168 commits

Author SHA1 Message Date
Nathan Marz
a983e6e028 all higher order selectors now converted to be parameterizable, helpers for making higher order selectors with fixed paths or variable paths complete 2015-09-10 20:47:46 -04:00
Nathan Marz
3187cdad34 have params-paramspath helper automatically compile the path, refactor filterer 2015-09-10 17:12:54 -04:00
Nathan Marz
efd4f2ee9a higher order parameterized builder working, implemented filterer 2015-09-10 17:09:16 -04:00
Nathan Marz
56ba5a5b8d removed unused KeyPath type 2015-09-10 14:08:57 -04:00
Nathan Marz
2dfc490438 remove debugging println 2015-09-10 13:57:27 -04:00
Nathan Marz
d8feed2ca1 paramspath working with composition, measured about 14% slower than compiled path without params and 15x faster than select with on the fly compilation 2015-09-10 13:56:33 -04:00
Nathan Marz
6e3f79dd53 restructured in terms of CompiledPath and implemented composition for ParamsNeededPath 2015-09-10 02:38:52 -04:00
Nathan Marz
d693ad29ae more name refactoring 2015-09-10 00:04:57 -04:00
Nathan Marz
d1a5b66c71 rename StructureValsPathComposer to PathComposer 2015-09-10 00:03:29 -04:00
Nathan Marz
f800a510dd remove unnecessary StructureValsPath protocol and move path composer protocol into impl 2015-09-09 15:20:58 -04:00
Nathan Marz
1d93961cd3 fix not-native tag for optimized cljs prot invocation 2015-07-03 17:40:13 -04:00
Nathan Marz
80e1e3dd30 optimized protocol invocations for cljs 2015-07-03 16:38:06 -04:00
Nathan Marz
a76f124579 get rid of field macro since .- syntax works in both clj and cljs 2015-07-03 15:46:35 -04:00
Nathan Marz
2383cc9aab replace obj-extends? with satisfies?, make default clojurescript impls for protocols by using default instead of object 2015-07-03 15:40:34 -04:00
Nathan Marz
6440e4e605 fix unsafe extensions of protocols to native javascript objects 2015-07-03 15:29:14 -04:00
Nathan Marz
051ba3f038 added not-selected? and transformed selectors 2015-07-02 17:23:18 -04:00
Nathan Marz
b626227a9e remove extra overhead in cljs protocol method invocations 2015-07-01 10:33:29 -04:00
Nathan Marz
859b31bce7 huge speedup to cljs version by optimizing field access 2015-07-01 10:30:51 -04:00
Nathan Marz
38fed4a7d0 fixed cljs obj-extends? to have special case for nil because it cannot be reflected on like normal objects 2015-06-30 19:46:55 -04:00
Nathan Marz
905e6b9b07 fix namespace problem with LAST/FIRST 2015-06-30 17:07:44 -04:00
Nathan Marz
8900eac847 merge in latest changes to master 2015-06-30 14:31:07 -04:00
Nathan Marz
1f2b4f03de fix bug in select-one! where nil result could not be returned 2015-06-29 23:43:15 -04:00
Nathan Marz
8053245c48 allow sets to be used directly as selector (acts as filter) 2015-06-29 18:30:30 -04:00
Nathan Marz
bcc15b1587 change FIRST/LAST to select nothing on empty sequences, closes #4 2015-06-29 18:17:52 -04:00
Nathan Marz
94a451511f merge in new features from master 2015-06-25 16:34:02 -04:00
Nathan Marz
6a2afccbfd add multi-path implementation 2015-06-25 16:30:27 -04:00
Nathan Marz
6b0a907fff fix mutable cell for clj 2015-06-24 18:27:26 -04:00
Nathan Marz
f3080d8e09 fix mutable cells (not sure what problem was 2015-06-24 18:15:07 -04:00
Nathan Marz
784378af34 allow coerce-path and comp-paths to work with more sequence types 2015-06-24 18:02:20 -04:00
Nathan Marz
9ac06c10d8 Clojurescript version working 2015-06-24 17:44:40 -04:00
Nathan Marz
dcc061413f got obj-extends? working in both clj and cljs 2015-06-24 16:21:42 -04:00
Pietro F. Menna
3b3bace828 Testing 2015-06-24 14:28:33 -04:00
Pietro F. Menna
67d95ee00a Fixed merged cnflicts 2015-06-24 11:49:27 -04:00
Pietro F. Menna
1c01a1e808 Renamed update to transform because of Clojure 1.7 2015-06-24 11:42:50 -04:00
Nathan Marz
6d028cbe24 change filterer so it accepts a path that acts like selected? 2015-06-22 14:37:39 -04:00
Nathan Marz
bb1a70c339 fix api doc for cond-path 2015-06-19 14:27:22 -04:00
Nathan Marz
e4a3275ff1 change cond-path/if-path to take a selector for the conditional (works like selected?) 2015-06-19 14:13:22 -04:00
Nathan Marz
da2019b07b added cond-path and if-path selectors 2015-06-18 00:56:03 -04:00
Nathan Marz
5a6d3fe630 fix composing together something defined with comp-paths with other selectors in a comp-unoptimal setting 2015-06-01 14:21:31 -04:00
Nathan Marz
50576e447b empty selectors and nil count as identity path now fixing #5, remove IDENTITY-PATH in favor of nil 2015-05-31 08:50:00 -04:00
Nathan Marz
6bae041970 added putval and IDENTITY-PATH selectors 2015-05-27 01:02:19 -04:00
Nathan Marz
6e440d235c notes 2015-05-11 15:08:51 -04:00
Nathan Marz
085dc1d333 optimize lookup of structurepath implementation for regular functions (about a 3x speedup in non-compiled execution when functions are involved 2015-05-11 15:00:21 -04:00
Nathan Marz
7f69a99861 speed up non-compiled execution path to where it was before 2015-05-11 14:21:02 -04:00
Nathan Marz
cd994b10ee improve execution of kws 2015-05-11 14:02:08 -04:00
Nathan Marz
e0bde53fef formatting 2015-05-11 13:31:12 -04:00
Nathan Marz
060e61218a optimize sequence of structurepaths to not add additional overhead by coercing to structurevalspath 2015-05-11 11:44:42 -04:00
Nathan Marz
0767afca61 prepare for optimized execution of pure structurepaths 2015-05-11 10:35:30 -04:00
Nathan Marz
def5656e40 re-add ability to compose via vectors with a more efficient implementation 2015-05-10 20:00:13 -04:00
Nathan Marz
c47650993d improve performance of non-compiled code path by 3x, remove ability for a vector to be considered a structurepath 2015-05-10 19:56:30 -04:00
Nathan Marz
4e268629c3 complete no protocol execution, speed is generally now just as good or far better than equivalent clojure code 2015-05-10 18:47:57 -04:00
Nathan Marz
b20d035950 add update-fast 2015-05-10 08:09:48 -04:00
Nathan Marz
47aee4d000 broken implementation of skipping protocols 2015-05-10 02:12:06 -04:00
Nathan Marz
5b62817bd5 add docstring to main api 2015-04-22 11:46:13 -04:00
Nathan Marz
ec097f8db2 make filterer eager on select 2015-04-22 11:45:35 -04:00
Nathan Marz
45260ff9c1 change val-select* to collect*, rename comp-structure-paths to comp-paths, clean up names of protocols, add selected? function, update README 2015-04-19 13:45:20 -04:00
Nathan Marz
ea05b98280 added benchmark helper to impl 2015-04-18 12:17:09 -04:00
Nathan Marz
ca1940a026 added view and viewfn 2015-04-18 12:16:51 -04:00
Nathan Marz
d212140c8b refactored interfaces to allow structurepaths to be specified without worrying about vals 2015-04-15 13:43:19 -04:00
Nathan Marz
ffd6464d54 added srange, srange-dyamic, START, and END dynamic paths to manipulate parts of a sequence by index 2015-04-14 23:49:32 -04:00
Nathan Marz
7613ffd74e add setval convenience function to api 2015-04-01 18:00:22 -04:00
Nathan Marz
a6b8546a17 eagerly evaluate ALL 2015-03-01 23:34:20 -05:00
Nathan Marz
857cd04711 fix ALL on all kinds of lists, lazy seqs, etc. 0.0.5 2015-03-01 23:26:56 -05:00
Nathan Marz
97086068d6 fix ALL on regular lists from reversing order 2015-03-01 20:33:42 -05:00
Sol Ackerman
ea0cb032b3 allow updating sets 2015-02-27 11:34:49 -06:00
Nathan Marz
59a1f742bf remove use of transients 2015-02-26 15:58:16 -05:00
Nathan Marz
3750dd73f5 rewrite filter+ancestry to be purely functional and stop using transients incorrectly 2015-02-26 15:48:10 -05:00
Nathan Marz
a1d1f236ab initial commit 2015-02-26 10:55:20 -05:00