Nathan Braswell
|
15fe2aeba4
|
Moved copy_constructing into functions and destructing the results into obj_lower. Removed all defer_stack from c_generator. The last thing should be to move ref handling into obj_lower or maybe a pass after, then the rest of c_generator can be cleaned up and fixing interpreter (except for closures) should be easy.
|
2016-06-26 04:44:54 -07:00 |
|
Nathan Braswell
|
4cc0d26c4c
|
Now && and || short circuiting is done in obj_lower
|
2016-06-25 23:56:07 -07:00 |
|
Nathan Braswell
|
dd8fbc0489
|
moved munging while and for into obj_lower
|
2016-06-25 16:02:53 -07:00 |
|
Nathan Braswell
|
e3607beabe
|
Refactor parameter destruction into obj_lower
|
2016-06-24 01:42:48 -07:00 |
|
Nathan Braswell
|
29eff2a23e
|
Fix defer_lower to handle return statements, starting on obj_lower which has now taken over calling destruct for declared varaibles. Some of the code from the c_generator has been commented out or bypassed to use the new system - it should be removed when it's complete.
|
2016-06-22 01:41:57 -07:00 |
|
Nathan Braswell
|
26e7ee249a
|
Now using adt_lower, which also makes the backing deconstruct a reference, which makes sense
|
2016-06-20 01:52:28 -07:00 |
|
Nathan Braswell
|
4a33a94b15
|
Fixed, working unions. Had to move the is_union member to the end. I'm not sure if this is a C bug or an effect of me doing something weird somewhere
|
2016-06-16 23:06:38 -07:00 |
|
Nathan Braswell
|
3f89cb1e37
|
partial rollback, might still not work
|
2016-06-16 09:53:15 -07:00 |
|
Nathan Braswell
|
4de7dd1210
|
Added support for unions as a step towards lowering ADTs in the next pass to be written.
|
2016-06-15 22:26:03 -07:00 |
|
Nathan Braswell
|
d44293a48b
|
Defer is now lowered in its own pass as a first step towards refactoring other things into their own passes as well
|
2016-06-15 01:36:59 -07:00 |
|
Nathan Braswell
|
27fea0e90c
|
work on multithread, interpreter, and prototyped a #line-in-simple-passthrough ast changing pass turned on with -g
|
2016-06-14 02:14:25 -07:00 |
|
Nathan Braswell
|
2c8c3af48a
|
Some speed improvements
|
2016-06-11 00:45:18 -07:00 |
|
Nathan Braswell
|
12dfa837e3
|
Added in extern global variables and printing of *char and string to stderr with printlnerr, printerr. Note that this will still compile in a previous version, but instead of extern, stderr will be newly declared. This is ok, because this version of the compiler never uses it, so we'll only use it after this one is bootstrapped in.
|
2016-05-22 13:08:10 -07:00 |
|
Nathan Braswell
|
cfcaff7887
|
Add support for variadic extern functions, as it turns out that you can't just specialize them with declarations. I.e., int a_func(int, ...) is different from int a_func(int, int) even if you only ever call a_func(1,2), etc. This commit is in preperation for moving to correcty variadic extern functions for the c stdlib (like printf, snprintf)
|
2016-05-19 23:17:32 -07:00 |
|
Nathan Braswell
|
ce1afa45f4
|
Added a lot to the interpreter, but some odd problem where snprintf seems to print the wrong thing something like a 10th of the time. Debugged it for a while over two days, and I've narrowed it down to the actual snprintf call. It seems to happen under some different circumstances for compiled versions too, so I'm just going to keep it like this for now.
|
2016-05-18 23:11:00 -07:00 |
|
Nathan Braswell
|
4dcd4f9715
|
Added basic in single method access of member variables
|
2016-05-15 22:05:12 -07:00 |
|
Nathan Braswell
|
bdb98ed85c
|
Added pointers to interpreter
|
2016-05-13 18:34:06 -04:00 |
|
Nathan Braswell
|
947384cced
|
Started work on interpreter, commit to fix issues it will depend on
|
2016-05-12 02:03:20 -04:00 |
|
Nathan Braswell
|
02c77899b8
|
Add #link(lib) intrinsic, used in SquidPong
|
2016-04-30 16:52:56 -04:00 |
|
Nathan Braswell
|
7aa1d9983b
|
Some bugfixes/added errors, convert most to not use simple_passthrough
|
2016-04-30 15:38:28 -04:00 |
|
Nathan Braswell
|
d126cbf24b
|
Added short/long and unsigned types for all int based types
|
2016-04-29 16:19:23 -04:00 |
|
Nathan Braswell
|
ecbbcb4eda
|
C extern implemented
|
2016-04-29 01:14:26 -04:00 |
|
Nathan Braswell
|
2051f54b55
|
Added in sizeof intrinsic + piping for more in the future. Inbetween commit before removing sizeof function
|
2016-04-28 18:47:53 -04:00 |
|
Nathan Braswell
|
8d0996fb47
|
Added in bitwise operators
|
2016-04-19 18:39:01 -04:00 |
|
Nathan Braswell
|
04d2af4168
|
Bugfixes, remove the cast_ptr function
|
2016-04-19 06:04:22 -04:00 |
|
Nathan Braswell
|
cf46fb13af
|
Add casting as a language feature. Have not removed the function yet as we need an inbetween version for the bootstrap
|
2016-04-18 22:56:29 -04:00 |
|
Nathan Braswell
|
730e1a58ed
|
Fix so defer defer / defer {} works. Note - defer defer almost definitly doesn't work the way you think it will
|
2016-04-13 21:45:21 -04:00 |
|
Nathan Braswell
|
09158cd2b9
|
Fix vector out of bounds access for parser, ast_transformation, and c_generator, remove many printlns in prep for better error handling, add features to captian.sh to facillitate development
|
2016-03-30 16:13:10 -04:00 |
|
Nathan Braswell
|
40c3e428c1
|
move test_compiler up to main kraken.krak and fix linker string, make paths work correctly
|
2016-03-28 17:12:53 -04:00 |
|
Nathan Braswell
|
756f2e71de
|
SELF HOSTING
|
2016-03-26 05:29:20 -04:00 |
|
Nathan Braswell
|
1cc8fd294e
|
Cephelapod-compiled Kalypso will compile Kalypso, but the result segfaults
|
2016-03-26 04:39:26 -04:00 |
|
Nathan Braswell
|
7d749e7ca5
|
running test_compiler on it self will complete now, though the resulting C has many errors
|
2016-03-26 00:43:01 -04:00 |
|
Nathan Braswell
|
b650a9af03
|
some bugfixes, getting closer
|
2016-03-24 21:32:28 -04:00 |
|
Nathan Braswell
|
2344ba917b
|
Hopefully finished ADTs, still a bug preventing self-hosting
|
2016-03-20 05:14:26 -04:00 |
|
Nathan Braswell
|
884d71f007
|
mostly working ADT, I hope. Misses some destructs
|
2016-03-20 00:29:27 -04:00 |
|
Nathan Braswell
|
d864a58bb4
|
Saving a lot of work on ADTs. Finishing should mostly just be filling in the different operator functions in the c_generator
|
2016-03-19 21:45:07 -04:00 |
|
Nathan Braswell
|
6a1c210b8a
|
66 tests passing! Implemented the extra need_variable parameter to allow references of constants, etc. Need to check a few of the tests still failing.
|
2016-03-12 03:23:43 -05:00 |
|
Nathan Braswell
|
ac8493d7f3
|
62 tests passing - the two Kalypso misses that Cephalapod doesn't is string because of taking the address of a literal (which I want to fix in a broader way that will also make Kalypso pass the other tests that Cephelapod is failing because of reference of literal) and ADT, which is the last (or perhaps second to last) thing to implement.
|
2016-03-10 16:07:12 -05:00 |
|
Nathan Braswell
|
40d630f348
|
fixed regex, 61 tests passing
|
2016-03-10 14:08:56 -05:00 |
|
Nathan Braswell
|
7543b95529
|
60 tests passing
|
2016-03-10 04:49:38 -05:00 |
|
Nathan Braswell
|
f28d44df4b
|
add return temps in most all situations now, fix for and while
|
2016-03-09 15:21:50 -05:00 |
|
Nathan Braswell
|
a6529ab381
|
Small fixup, 56 tests passing
|
2016-03-08 22:52:51 -05:00 |
|
Nathan Braswell
|
2e6e87137d
|
Most of stdlib started working 55 tests pass
|
2016-03-08 16:04:59 -05:00 |
|
Nathan Braswell
|
9eb5db84ab
|
Fixed another, 50 tests passing
|
2016-03-07 20:17:23 -05:00 |
|
Nathan Braswell
|
d62da74aa7
|
Fixed function calls on lambda literals - 49 tests passing
|
2016-03-07 16:24:00 -05:00 |
|
Nathan Braswell
|
22feae1a58
|
operator overload for [], []=, =
|
2016-03-02 20:23:25 -05:00 |
|
Nathan Braswell
|
84cbcc3820
|
References working, pass test_references, 46 tests passing
|
2016-03-01 14:54:58 -05:00 |
|
Nathan Braswell
|
2fb8dab08d
|
Fix destructor stuff to fix destructor test and other bugs revealed
|
2016-02-29 19:18:22 -05:00 |
|
Nathan Braswell
|
10e21883c8
|
Add the fun_ prefix to functions to avoid name collisions in some cases (like with sizeof) and test_memTest passes as well. 43
|
2016-02-29 05:08:49 -05:00 |
|
Nathan Braswell
|
939cf83da1
|
Fixed some closure/function value issues, now 40 tests pass
|
2016-02-27 21:07:22 -05:00 |
|