Commit graph

267 commits

Author SHA1 Message Date
Justin Ethier
bf985615bc Compile record marker objs 2020-12-20 22:51:49 -05:00
Justin Ethier
6e607f4788 Issue #377 - Compile void type 2020-05-19 22:50:22 -04:00
Justin Ethier
8fef2ec1ab Fixup c-value to work with new macro 2020-05-04 22:59:51 -04:00
Justin Ethier
cdeeef8b27 WIP 2020-05-04 22:45:44 -04:00
Justin Ethier
d8ed752c9d Remove boolean_f 2020-04-28 19:06:53 -04:00
Justin Ethier
4006ca560d Proof-of-concept for Cyc-foreign-value 2020-04-14 18:57:36 -04:00
Justin Ethier
d345d71da9 Prototype code for Cyc-foreign-code 2020-04-13 18:51:16 -04:00
Justin Ethier
1daa593a03 Emit label for globals 2020-01-27 21:18:49 -05:00
Justin Ethier
95fcc2e787 Remove add_global2 2020-01-27 15:58:25 -05:00
Justin Ethier
7a48e046ad Emit add_global2 calls 2020-01-27 15:33:05 -05:00
Justin Ethier
b838bf72a5 Added TODO 2020-01-24 17:45:19 -05:00
Justin Ethier
3d60211e67 Do not reassign the same var to itself 2019-12-23 16:26:07 -05:00
Justin Ethier
537e8bc975 Experimenting with unsafe prims 2019-11-26 15:37:52 -05:00
Justin Ethier
acb50614ee Issue #305 2019-11-25 14:20:26 -05:00
Justin Ethier
5354fcb0bb Check bignum return value 2019-10-28 15:49:20 -04:00
Justin Ethier
e98e35ee5b Added -no-call-history flag
Allow for faster executables at the expense of call history.
2019-10-14 13:01:16 -04:00
Justin Ethier
e099fe7860 Refactoring
Use a macro name that makes more sense, as we are trying to determine if obj is a closure.
2019-08-22 21:28:57 -04:00
Justin Ethier
c9ae6cdf97 Bug fixes 2019-05-16 13:35:51 -04:00
Justin Ethier
cb0d72a6df Emit immutable bytevectors and strings when quoted 2019-05-16 13:03:28 -04:00
Justin Ethier
8c7bd7f96b WIP, working through immutable objects 2019-05-15 22:57:40 -04:00
Justin Ethier
daa8f92f0c Refactoring, stage new arg to c-compile-const
New signature is: (c-compile-const exp use-alloca immutable)
This will allow the compilation of immutable objects.
2019-05-15 13:35:08 -04:00
Justin Ethier
ba569882ea Refactor code out to c-set-immutable-field 2019-05-15 13:28:17 -04:00
Justin Ethier
f2b9658b21 Set mutability for quoted pairs 2019-05-14 13:06:10 -04:00
Justin Ethier
38847f11cf Add extra condition to (alloca?)
Make this match what is actually done in cgen for when a while statement is introduced, there was an older case not being handled.
2019-03-27 13:18:31 -04:00
Justin Ethier
e68fa56f94 Bugfix - account for the use-alloca flag 2019-03-22 12:26:10 -04:00
Justin Ethier
f13186ee17 Use static alloc for clo/vec, instead of alloca
This improves performance as the C compiler can better optimize the generated code.
2019-03-22 10:34:48 -04:00
arthurmaciel
a8cf5d9312 Previous try to correct semi-colon bug failed due to adding semi-colon to the end of a whole block and not each statement 2019-01-27 21:03:22 -02:00
Justin Ethier
402ae5dea0 Fix comment 2019-01-25 19:05:10 -05:00
arthurmaciel
40fbb91bc3 Converted improper semi-colons into double ones 2019-01-25 19:10:10 -02:00
arthurmaciel
c04c930c3e Moved trailing parens into correct position -
only preserved those preceded by commented code
2019-01-25 17:43:09 -02:00
arthurmaciel
6dfb306cf1 Updated scheme/cyclone/cgen.sld to insert correct 2019-01-25 15:30:12 -02:00
Justin Ethier
c6aa29d7ab Extend case for udf's 2018-12-14 13:28:37 -05:00
Justin Ethier
de5d83f21a Added comment 2018-12-04 22:58:51 -05:00
Justin Ethier
f9d03342f2 Issue #282 - assign to temporary variables
Do this to prevent issues when one variable's value depends upon another's.
2018-12-02 22:21:27 -05:00
Justin Ethier
8ccd2b3525 WIP, seq safe allocation/assignment of pairs 2018-11-30 13:38:10 -05:00
Justin Ethier
a918f2cb2d issue #282 - Put numeric operations in body
This avoids ordering issues. But I think we still have trouble with other primtives. Is there ever a legitimate need to declare a c var for a prim??? I am not seeing it, especially with our changes now for Cyc-seq.
2018-11-29 13:36:07 -05:00
Justin Ethier
931b449579 Extra cases for prim use-alloca and & operator 2018-11-22 17:40:46 -05:00
Justin Ethier
1f1b032641 Support alloca for all literals 2018-11-21 19:19:00 -05:00
Justin Ethier
e63349b830 Remove debug code 2018-11-21 19:13:32 -05:00
Justin Ethier
7a1b28db37 WIP 2018-11-21 19:08:45 -05:00
Justin Ethier
03b2dd7181 WIP 2018-11-21 18:53:50 -05:00
Justin Ethier
ab4f9ee7a4 WIP - alloca support for literals 2018-11-21 13:05:29 -05:00
Justin Ethier
16e1600662 Propagate use-alloca parameter for constants 2018-11-20 18:54:47 -05:00
Justin Ethier
bab9acd49e Added c-compile-string 2018-11-20 18:07:29 -05:00
Justin Ethier
90c0d79887 Added TODO 2018-11-20 17:21:05 -05:00
Justin Ethier
4b0466f37b Use alloca for any allocations with let/local-vars
This prevents situations where local variables are allocated within local scope blocks and then are assigned to pointers. This is necessary as those locals are not guaranteed to remain on the stack once the block ends, so the pointer can easily point to random memory, leading to GC corruption and/or undefined behavior.
2018-11-19 17:09:17 -05:00
Justin Ethier
8fa6513571 Fix parens 2018-11-14 19:01:34 -05:00
Justin Ethier
67071a1761 WIP 2018-11-13 18:02:12 -05:00
Justin Ethier
bad0d19424 WIP 2018-11-13 17:17:30 -05:00
Justin Ethier
8c033a7909 Added TODO 2018-11-13 13:37:03 -05:00