Commit Graph

1104 Commits

Author SHA1 Message Date
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
Nathan Braswell 8bc092cdeb GAH the matching.kp was using the old broken Y combinator, fixing it makes it work. We're, uh, 682x slower than Koka 2022-05-14 01:46:53 -04:00
Nathan Braswell 6683344357 Initial implementation of TCE - doesn't properly drop params/locals, and doesn't activate for the RB-Test for some reason, but does run for the long_fact 2022-05-12 00:34:19 -04:00
Nathan Braswell 50d68c3424 Groundwork for Tail Call Elimination. Prints out when it should happen, but doesn't actually do it 2022-05-11 00:59:41 -04:00
Nathan Braswell 20c46af986 Merge branch 'master' of github.com:Limvot/kraken 2022-05-09 23:42:45 -04:00
Nathan Braswell a966c0c0ba Using a nice Pure Nix Flake now, implement Koka-style rb-tree test (only running on 100 instead of 42,000,000 - .06s compiled, 40m54s interpreted!!!), also a small fact to test loops - spoiler alert we need tail-call-elimination 2022-05-09 23:42:39 -04:00
Nathan Braswell 5369e58eed Update matching.kp 2022-05-09 14:35:01 -04:00
Nathan Braswell 20d554dfe6 Fixed dropping 0-length arrays, RB-Tree seems to work well now! 2022-05-08 19:38:44 -04:00
Nathan Braswell 7e7a7c3b32 Merge branch 'master' of github.com:Limvot/kraken 2022-05-08 01:34:38 -04:00
Nathan Braswell 8dd28370c1 Ported RedBlack-Tree based on our new match. Seems to work, though compiled version crashes on memory-out-of-bounds while interpreted works - will have to debug later 2022-05-08 01:34:33 -04:00
Nathan Braswell 746933f21e Update README.md 2022-05-07 20:19:18 +00:00
Nathan Braswell ca68826fbc Clean up and rearrange 2022-05-07 16:09:16 -04:00
Nathan Braswell 08c01257f3 Add matching on quoted symbols 2022-05-07 15:07:03 -04:00
Nathan Braswell 6140a7a006 Comment out un-val error message generation, was taking an absurd amount of space in final binary 2022-05-07 14:52:32 -04:00
Nathan Braswell 9bb6104952 Much more real match with arrays and unquote, also added unquote to parser and made log return its last argument 2022-05-06 00:35:31 -04:00
Nathan Braswell c3b2a852b7 Fix debug not being called because of the function index renumbering, add calling debug for calling not a function in eval. For some reason this crashes redebug :/ 2022-05-03 23:25:56 -04:00
Nathan Braswell 172512f447 Fix array inequality case 2022-05-03 22:49:50 -04:00
Nathan Braswell 2a6ee6d8e4 Fix inlineing se not being set to nil (but default 0 by wasm) so it always equaled 0 2022-05-03 22:09:37 -04:00
Nathan Braswell d420b6491f Fix regression - was using the wrong error when blocking recursion and treating as real error instead of stop recursion fallback 2022-04-25 09:19:14 -04:00
Nathan Braswell 223147f699 Initial inlining working - fib_let went from .4 something to .138. Suspect the remaining slowdown over fib is extra refcounting calls, but unsure. Compile error on fib_manual, need to see whether it was this change or the earlier find fixes 2022-04-25 09:07:42 -04:00
Marcus "Mark" Godwin 40008ffa23 Add a palindrome test file. 2022-04-25 01:45:07 -04:00
Nathan Braswell 8b3cab7a2f Fix multiple cond/slice bugs revealed by LotusRonin's new find testcase 2022-04-24 20:39:51 -04:00
Nathan Braswell 8a876a7b29 Merge pull request #6 from Limvot/md5_hash_func
Add 32 bit int to hex string and leftrotate impls. Also some string functions
2022-04-23 13:42:22 -04:00
Nathan Braswell 6c51639c6e Thread through inline_symbols and inline_level to prep for inlining impl 2022-04-23 01:41:52 -04:00
Nathan Braswell 18250e716f Ah, the remaining calls were to =. Added 'inlining' the = and comp_helper loop into repeated calls to comp_helper_helper, eliminating the param array overhead. Now fib only allocates 10 times (instead of 4 million), and runs in .107s, finally beating Python handilly and becoming about 2x as slow as Chez. Feels like a decent spot for now, and that was most all of the low hanging fruit. The only thing left now is inlining of user functions to get fib_let performing as well - it looks glacial now at .4s because of the 2 remaining closure calls that the let expands to 2022-04-21 01:09:10 -04:00