Commit graph

143 commits

Author SHA1 Message Date
Justin Ethier
89c58f8b44 Omit C meaningless expressions
When compiling Cyc-seq expressions there are cases where the generated C code would have no effect. Just omit it in this case to prevent a warning from the C compiler.
2017-07-13 10:35:10 +00:00
Justin Ethier
8ba1954ac3 WIP 2017-07-07 18:44:13 -04:00
Justin Ethier
7bad122821 WIP 2017-07-07 17:47:24 +00:00
Justin Ethier
27970524c5 Generalization of globals_changed thread param 2017-06-09 17:17:01 +00:00
Justin Ethier
75b9e7bf8a Explicit inlines 2017-04-29 01:18:39 +00:00
Justin Ethier
6e1073387a Expose UDF inlines and original symbols 2017-04-24 23:03:09 +00:00
Justin Ethier
1c82f0e74a Add Scheme inlines to global inline list 2017-04-24 22:08:15 +00:00
Justin Ethier
62559ee2c0 No extra comma for inlined scheme functions 2017-04-19 00:54:01 +00:00
Justin Ethier
506a7e6136 Generate code using new return_copy macro 2017-04-18 20:36:05 +00:00
Justin Ethier
bd9119c274 WIP 2017-04-18 19:14:52 +00:00
Justin Ethier
021113ced4 Add cps param 2017-04-20 17:57:59 -04:00
Justin Ethier
f50aafffe4 WIP - starting to add cps parameter 2017-04-18 13:49:34 +00:00
Justin Ethier
2da2317a91 Rename param to "cps?" 2017-04-18 13:21:19 +00:00
Justin Ethier
b27dab456d WIP 2017-04-18 12:44:45 +00:00
Justin Ethier
68b8e1fc38 WIP 2017-04-18 10:53:30 +00:00
Justin Ethier
529585d92c Expose list of inlinable functions 2017-04-17 18:11:51 -04:00
Justin Ethier
08a960306c WIP 2017-04-17 17:46:39 +00:00
Justin Ethier
396888f1b8 Bug fixes for listing inlinables 2017-04-17 16:59:41 +00:00
Justin Ethier
3fbdbb2e72 WIP - output list of inlinable funcs 2017-04-17 14:22:27 +00:00
Justin Ethier
1a28889caf Emit inline functions as primitives 2017-04-04 08:14:39 +00:00
Justin Ethier
c7476fb1ed Emit code for define-c inlines 2017-04-03 21:58:45 +00:00
Justin Ethier
6d85b83240 WIP 2017-03-28 01:19:20 -04:00
Justin Ethier
24a2b63b7f Issue #185 - Ensure objects are moved during init
This prevents broken hearts by ensuring objects are in their final locations before assigning pointers to pointers.
2017-03-21 19:01:06 -04:00
Justin Ethier
c99e046517 Added TODO 2017-03-21 17:56:41 +00:00
Justin Ethier
78c253e1c3 Issue #185 - Allow export of another lib's export 2017-03-20 17:01:25 +00:00
Justin Ethier
470fb17465 Compile bignum consts 2017-02-17 18:28:32 +00:00
Justin Ethier
07500ce6d6 Properly store thread ID in thread objects
Also sketched out thread-join support but there are larger issues to consider to get that working.
2017-01-22 18:58:37 -05:00
Justin Ethier
b0ec9d9671 Handle conversion of other chars 2016-11-23 18:28:47 -05:00
Justin Ethier
b1ca2627d1 Issue #112 - Compilation of nan/inf 2016-10-24 17:15:32 -04:00
Justin Ethier
fa53f1225e Add fast numeric comparisons 2016-10-15 02:37:13 -04:00
Justin Ethier
5d089b83eb Bugfix, do not add & for "fast" functions 2016-10-14 23:10:16 -04:00
Justin Ethier
cf735c7917 Integrating fast sum 2016-10-14 22:41:08 -04:00
Justin Ethier
6d9ebb1a7c Use import DB to compile globals 2016-10-11 03:19:50 -04:00
Justin Ethier
cc16ca8de2 Store environment information 2016-09-28 23:23:24 -04:00
Justin Ethier
55f4a7403c Issue #3 - Fix C compiler warning for varargs 2016-08-12 18:07:05 -04:00
Justin Ethier
17ce827d8e Issue #3 - Allow compiling a pure varargs lambda 2016-08-13 01:42:58 -04:00
Justin Ethier
5dceed4e2d Issue #101 - Include an extra ; to prevent errors
Include an extra semicolon in the C entry point to prevent it from missing in cases where one is no normally inserted, such as for non-cps primitives or constants. This prevents C compilation errors in edge cases.
2016-08-11 23:50:43 -04:00
Justin Ethier
a8062e3f13 Issue #93 - Type-check call/cc argument 2016-08-05 23:31:15 -04:00
Justin Ethier
f46cc5b010 Explicitly declare C main as returning int 2016-07-20 22:35:01 -04:00
Justin Ethier
199b685de3 Use only one comparison in closcall macros
This improves performance a bit since these macros are called after almost every C function.
2016-07-04 22:42:35 -04:00
Justin Ethier
f4b8dbc8a1 Added a special case to set num_args to 0 for call/cc
This fixes validation later on for call/cc's internal lambda function. When we eval it we only want to validate 1 arg, not 2.
2016-06-11 01:27:50 -04:00
Justin Ethier
c3a7fcbe45 Deleted relocated code 2016-06-04 04:10:32 -04:00
Justin Ethier
d3fbcdc9c2 New library 2016-06-04 04:07:12 -04:00
Justin Ethier
24cf670237 Added Cyc-opaque? 2016-04-26 21:52:30 -04:00
Justin Ethier
360e9c1127 Added TODO 2016-04-27 04:07:04 -04:00
Justin Ethier
e892ed2270 Refactoring 2016-04-27 03:18:47 -04:00
Justin Ethier
008c857755 Refactoring 2016-04-26 23:33:36 -04:00
Justin Ethier
df20aaa6d3 Refactoring 2016-04-20 23:42:21 -04:00
Justin Ethier
ef1db96f2a Refactoring 2016-04-20 23:10:46 -04:00
Justin Ethier
ea225a3ab7 Refactoring 2016-04-21 00:36:51 -04:00