Commit Graph

592 Commits

Author SHA1 Message Date
Nathan Braswell
fc67aa7ce8 Added support for parameters 2018-03-07 22:57:46 -05:00
Nathan Braswell
8da84b56c2 working bytecode with call and a real stack and psudo abi. Found a bug where -= doesn't behave correctly when the lhs is a function returning a reference because it's lowered to a = a - b where a is the same ast_node, I think 2018-03-07 01:58:19 -05:00
Nathan Braswell
5b46089694 Stop declaring variable before assignment - i don't think necessary for recursive closure, def not in current code, and messes up globals with values 2018-03-06 23:30:00 -05:00
Nathan Braswell
8a22263b1d make JNZ JZ (if was backwards, and this is more convient right now 2018-02-27 21:41:57 -05:00
Nathan Braswell
dad97a25a5 If statements work with the addition of jmp and jnz 2018-02-27 21:27:29 -05:00
Nathan Braswell
adcebb3284 Move towards more legit stack setup api and registers as registers 2018-02-27 23:53:08 +00:00
Nathan Braswell
00bb4e928c Can eval basic block with variables and return 2018-02-03 22:47:21 -05:00
Nathan Braswell
aad363f631 Bytecode work 2018-02-03 18:53:13 -05:00
Nathan Braswell
7850f11297 very basic groundwork for bytecode 2018-02-02 00:26:31 -05:00
Nathan Braswell
c0209118e5 Small cleanup 2018-01-02 23:22:46 -05:00
Nathan Braswell
241764f1f4 Clean up 2017-12-27 16:49:08 -05:00
Nathan Braswell
d414459313 Fixed it 2017-12-27 16:10:36 -05:00
Nathan Braswell
7ddbecaf1d debugging 2017-11-13 22:39:14 -05:00
Nathan Braswell
cb720e5cd6 working on moving rest of obj stuff into obj_lower 2017-11-03 00:39:58 -04:00
Nathan Braswell
5b8ef4ce2e some cleanup 2017-10-29 17:53:30 -04:00
Nathan Braswell
0132ade7ed 10% or so speed up 2017-10-28 15:28:34 -04:00
Nathan Braswell
48b21c54ae Missed a change last time - also made all_types in function_value_lower a hash_set for a ~20 sec speedup 2017-10-23 09:50:18 -04:00
Nathan Braswell
13f1e9df89 More clean up; need to add return type checking pass so that can clean up c_generator more. 2017-10-23 01:08:25 -04:00
Nathan Braswell
6964df5ac8 Remove code_triple entirely! 2017-10-23 00:06:25 -04:00
Nathan Braswell
e70d31a51c Add in address_of_ensure_variable_lower.krak that makes sure & can always take a reference, even of a constant, etc, and start the cleanup of c_generator that this allows 2017-10-22 21:41:58 -04:00
Nathan Braswell
73faf50053 tiny cleanup 2017-09-02 09:12:25 -04:00
Nathan Braswell
00f29fe6a5 small clean up 2017-08-27 14:15:09 -04:00
Nathan Braswell
e4326233dc a bit more cleanup 2017-08-23 10:12:00 -04:00
Nathan Braswell
36d7581cb0 further simplify the function call function 2017-08-22 20:52:27 -04:00
Nathan Braswell
4921371afe Cleaned up generate_function_call. It's quite understandable now! 2017-08-18 10:05:12 -04:00
Nathan Braswell
61feff50a8 Update captain.sh to be able to build the new function_value_lower version 2017-08-16 01:23:17 -04:00
Nathan Braswell
9621ce85a6 Always error, remove some chaff 2017-08-15 19:53:17 -04:00
Nathan Braswell
0cf9beb057 Function value lower can self-host! 2017-08-15 01:55:44 -04:00
Nathan Braswell
bdb9e313b5 push forward. Current problem is double closed things 2017-06-21 02:12:00 -04:00
Nathan Braswell
18c53eb9be MOve it forwards a bit 2017-06-13 01:29:56 -04:00
Nathan Braswell
6f659ece49 Fix closing over raw function pointers 2017-06-13 00:40:29 -04:00
Nathan Braswell
bd83156c12 work in progress 2017-06-12 23:52:12 -04:00
Nathan Braswell
8166db37ac Closures working! (in the basic case, anyway) 2017-06-06 01:33:18 -04:00
Nathan Braswell
7a2a76e6da wip 2017-05-16 11:12:05 -04:00
Nathan Braswell
bfe65fd854 Now support parameters for lambdas 2017-05-15 21:25:40 -04:00
Nathan Braswell
265a994858 Can call non-closure no parameter lambdas 2017-04-17 21:15:14 -04:00
Nathan Braswell
524247d0d1 Work on creating the call function 2017-04-13 01:05:36 -04:00
Nathan Braswell
a0c040da36 more lowering 2017-04-08 16:10:57 -04:00
Nathan Braswell
9662197c21 comment out the as value part 2017-03-16 19:05:45 -04:00
Nathan Braswell
8a676a1b5b More work. Doesn't compile at this point 2017-02-23 01:24:22 -05:00
Nathan Braswell
cb8124afc0 baby steps 2017-02-17 01:22:27 -05:00
Nathan Braswell
425d75675e babier steps 2017-02-08 00:01:29 +00:00
Nathan Braswell
3fc0ea9bec baby steps 2017-02-04 01:29:22 -05:00
Nathan Braswell
1b0dce9ed1 Work on function value lower 2017-02-02 00:46:36 -05:00
Nathan Braswell
754ff41226 C_generator can call raw function pointers now 2017-01-28 00:09:13 -05:00
Nathan Braswell
dad0f780bb Groundwork for closure lowering, run raw function pointer type 2017-01-26 23:58:48 -05:00
Nathan Braswell
caba8b310f Small speed improvement int trim by using stack (and DFS) instead of queue (and BFS) for remove and collapse, finally fix the unknown escape '\*' error 2017-01-25 01:47:05 -05:00
Nathan Braswell
987e6eb9a5 Cleaning up to bring into main. Speed problem seems to have dissapeard, but we have fixes and the ^ operator in here 2017-01-24 22:11:33 -05:00
Nathan Braswell
f0a657e80f Fix invalid malloc on slice 2017-01-23 23:00:26 -05:00
Nathan Braswell
3a7f73b711 sigh 2017-01-23 01:09:31 -05:00