Sharjeel Khan
|
29a0266c67
|
Fixed deriv
|
2022-11-11 05:42:17 -05:00 |
|
Sharjeel Khan
|
d440260d1c
|
Fixed cfold
|
2022-11-11 04:01:08 -05:00 |
|
Sharjeel Khan
|
4eb42d48f9
|
New Newlisps cfold
|
2022-11-11 03:53:13 -05:00 |
|
Sharjeel Khan
|
85f46f0e8d
|
Test
|
2022-11-11 00:20:36 -05:00 |
|
Sharjeel Khan
|
2146ecd761
|
Commit current things
|
2022-11-11 00:20:05 -05:00 |
|
Sharjeel Khan
|
70f151222e
|
Picolisp two examples
|
2022-11-11 00:19:32 -05:00 |
|
Nathan Braswell
|
8638086480
|
Added ability to turn off 4 major optimizations, integrated into benchmarks now focused only on Kraken (and NewLisp)
|
2022-11-10 02:10:56 -05:00 |
|
Sharjeel Khan
|
a7248daca0
|
Added new benches and will add the rest of them
|
2022-11-08 22:49:43 -05:00 |
|
Nathan Braswell
|
7eb8465f64
|
First maybe working version of borrow?. Now need to figure out exactly how to integrate into compiler
|
2022-07-19 23:42:24 -04:00 |
|
Nathan Braswell
|
82f652b178
|
first paper data
|
2022-07-09 13:58:11 -04:00 |
|
Nathan Braswell
|
7145f8865e
|
benchmark improvements
|
2022-07-07 13:10:14 -04:00 |
|
Nathan Braswell
|
196b0865c4
|
Benchmark adjustments and plotting
|
2022-07-06 21:26:10 -04:00 |
|
Nathan Braswell
|
e95feb9309
|
tiny perceus fix, but mostly wrote match+rb-tree f-expr/macro for newLisp and benchmarked it. kraken 5-15x faster than newlisp-rbtree-macro, 137x faster than newlisp-rbtree-fexpr. I was suprised at first that the macro and fexpr versions were so close at 8.7x (while interpreted kraken rbtree is 50,000x slower), but after thinking about it it makes sense - the Kraken version has slowdown exponential in the multiple levels of f-exprs ('match' is an fexpr, but then so is 'let' and 'and' and 'lambda'), whereas the newLisp f-expr runtime expands to fast builtins ('let', 'and', etc). And all that exponential f-expr slowdown gets compiled away in Kraken!
|
2022-07-06 02:34:48 -04:00 |
|
Nathan Braswell
|
2cdfa4dbed
|
Mostly sketch out borrow?, just have to thread through perceus data and figure out if we want to output a combined version to the user with a common entry point. Fixed a pseudo-perceus cond ordering issue as well, and now makes pseudo-perceus store if a symbol access is an owning sink - but this has a bug somewhere in Pseudo-Perceus causing this to error for now
|
2022-07-05 02:51:48 -04:00 |
|
Nathan Braswell
|
131824b230
|
First impl of Pseudo-Perceus, added veval case to infer_types, modified how lookups work on s_env, now lookups into enclosing envs don't reify current environments by starting at the outer env after climbing out of the inlined functions + main function
|
2022-07-05 01:41:58 -04:00 |
|
Nathan Braswell
|
15bf38db2b
|
Implement the first scaffolding for pseudo_perceus, support operatives in lapply (but not yet applicates in compiled vapply). Means (foldl and true (array true true false)) actually works now, for the paper!
|
2022-07-04 00:47:17 -04:00 |
|
Nathan Braswell
|
a64c67571f
|
small refactor around parameter array creation, then used it to inline calls to 'array' (which are almost no-ops, just returning their parameter array)
|
2022-07-03 20:29:53 -04:00 |
|
Nathan Braswell
|
b1817dfdc3
|
Add newLisp, our second interpreted lisp implementation that supports f-exprs today, (not in NixOS, but pretty easy to build, so inlined deriviation right in flake.nix). Implemented simple fib/fib-let test.
|
2022-07-03 00:50:00 -04:00 |
|
Nathan Braswell
|
ace81e362e
|
Inline array? and len, add PicoLisp fib & fib-let benchmarks
|
2022-07-02 23:49:47 -04:00 |
|
Nathan Braswell
|
07a25c8c59
|
Infer types of full idx expressions now, fix bug with shadowed inlined parameters, inline calls to idx where the type of the indexed expression is fully inferred (array+len) and the idx is a constant. Strong speedups
|
2022-07-02 19:00:20 -04:00 |
|
Nathan Braswell
|
b70e317e75
|
Fixed it! Missed converting the inline call to the inline predicate to use id instead of env. Then exposed and fixed bugs with the inline part of infer types
|
2022-07-02 17:10:16 -04:00 |
|
Nathan Braswell
|
9edfddd09c
|
Partial commit for debugging - almost have (maybe do have?) the type inference working (everything but asserts) good enough for idx, but somewhere inlining got messed up and nothing's inlining.
|
2022-07-02 16:55:12 -04:00 |
|
Nathan Braswell
|
f6b4231fca
|
Bugfix, improve, and thread through infer_types. Need to improve so that it can properly work & re-up through unval-and-eval. Also, will need to track idxs into symbols, I think. Need to continue to investigate how match is translated and that we get all types from it
|
2022-07-02 01:23:14 -04:00 |
|
Nathan Braswell
|
88a87f0760
|
Implement a good bit of the type inference (predicate ops, 'and', and len type inference). Need to implement combine_type_map, and figure out the structural caching
|
2022-06-30 00:59:04 -04:00 |
|
Nathan Braswell
|
4663982f1b
|
Move kraken,scheme,python,cpp fib tests over to koka_bench, add WAVM as a tested compiler backend for the Kraken benchmarks
|
2022-06-28 00:38:37 -04:00 |
|
Nathan Braswell
|
999d21746e
|
inline dup and most of drop, relative added to benchmarks, added first basic run (without any of the complex stuff implemented) of local type inference and use it to do word value equality if possible
|
2022-06-27 01:48:07 -04:00 |
|
Nathan Braswell
|
71ad070922
|
inline get_ptr with slightly more efficiency
|
2022-06-24 00:39:10 -04:00 |
|
Nathan Braswell
|
ae320ba31b
|
Most things seem to be working now, with new benchmarks. Not sure if a small memory leak is now or was there before
|
2022-06-23 01:00:27 -04:00 |
|
Nathan Braswell
|
04f3b2dbd9
|
Fixed static type errors, test runs now. Rbtree test has a dynamic indirect call failure, so there are still more issues to find
|
2022-06-22 14:04:56 -04:00 |
|
Nathan Braswell
|
1c3ee27547
|
More fixes, runs test now, but generated wasm has type errors
|
2022-06-22 01:43:04 -04:00 |
|
Nathan Braswell
|
6605050590
|
More bugfixes and debugging
|
2022-06-22 01:26:21 -04:00 |
|
Nathan Braswell
|
bf8d25e551
|
Fix a bunch of syntax errors
|
2022-06-22 00:46:35 -04:00 |
|
Nathan Braswell
|
b665877add
|
Finish first pass through refactoring all tagging. Need to test and bugfix
|
2022-06-21 23:25:04 -04:00 |
|
Nathan Braswell
|
b7bfc314e6
|
Did most of re-tagging, pick back up porting at compile
|
2022-06-21 02:18:06 -04:00 |
|
Nathan Braswell
|
dda581f839
|
Initial interning of symbols
|
2022-06-20 17:20:50 -04:00 |
|
Nathan Braswell
|
e77358c8b4
|
Merge branch 'palindrome'
|
2022-05-19 01:01:06 -04:00 |
|
Nathan Braswell
|
c7f3ee0e18
|
Formatting fix, end to end test run
|
2022-05-19 00:56:18 -04:00 |
|
Nathan Braswell
|
3eea883ebd
|
Combine benchmark tables
|
2022-05-19 00:49:09 -04:00 |
|
Nathan Braswell
|
fefae631e2
|
Add java ocaml and swift tests
|
2022-05-19 00:43:27 -04:00 |
|
Nathan Braswell
|
62c0958006
|
Added haskell versions (parameterized by CLI argument)
|
2022-05-18 23:59:18 -04:00 |
|
Nathan Braswell
|
4481784666
|
Update README.md
|
2022-05-18 05:31:43 +00:00 |
|
Nathan Braswell
|
a0c4eb3eaf
|
sigh, accidentally committed .wasm
|
2022-05-18 01:29:23 -04:00 |
|
Nathan Braswell
|
81a54b5a06
|
Old .gitignore actually prevent the kraken versions of the benchmarks from being comitted, scarily enough - also some of the c fib tests
|
2022-05-18 01:28:49 -04:00 |
|
Nathan Braswell
|
34c6d01c31
|
Implement deriv benchmark
|
2022-05-18 01:26:08 -04:00 |
|
Nathan Braswell
|
7fef7eba85
|
Add cfold benchmark - can't go over 5 (though Koka uses 20) because wasm runs out of stack. Not entirely sure how to handle that - I imagine we're emitting far to much on the stack frame, but also I would hope wasmtime would optimize it, and I additionally can't find a way to raise wasmtime's limit from the cli... It is worth noting that Koka notes that cfold is a benchmark that can exhaust the stack
|
2022-05-17 23:34:46 -04:00 |
|
Nathan Braswell
|
e6a1ad5bf3
|
Add nqueens benchmark (new kraken impl, with koka and cpp moved over from koka_bench)
|
2022-05-16 23:00:56 -04:00 |
|
Nathan Braswell
|
5ee4020c2b
|
Update readme to state source of koka_bench and to call out the different license for that directory
|
2022-05-16 02:36:30 -04:00 |
|
Nathan Braswell
|
b1b060292e
|
Moved over first rbtree test from koka_bench and integrated Kraken via compiler wrapper script that calls the partial_evaluator / compiler and then emits a wrapper script that runs the resulting wasm via wasmtime.
|
2022-05-16 02:33:10 -04:00 |
|
Nathan Braswell
|
025ca41c59
|
Add support for command line arguments as a monad
|
2022-05-16 01:35:36 -04:00 |
|
Nathan Braswell
|
8c773fd0d8
|
Add deallocation in TCE for rare-er stuff - our test doesn't actually use it yet
|
2022-05-14 02:20:05 -04:00 |
|