Commit graph

1429 commits

Author SHA1 Message Date
Justin Ethier
58e2809330 Use hashsets 2018-12-19 14:24:20 -05:00
Justin Ethier
0e797cde1e Cleanup 2018-12-19 13:39:21 -05:00
Justin Ethier
61cb34fe52 Fix lib name 2018-12-19 13:32:31 -05:00
Justin Ethier
f9b503edd8 Initial file 2018-12-19 13:27:05 -05:00
Justin Ethier
9727e9f86c Use memq instead of member
We are looking up symbols so memq can be used instead, which is must faster at scale.
2018-12-18 22:01:27 -05:00
Justin Ethier
70b27ccd22 Speed up free-vars checking for primitives
We know prims are only symbols, so instead of checking for primitives in the top-level cond (which is expensive) we check for it as a sub-condition off of the (ref?) condition. This lets us avoid a call to memq unless we already are inspecting a symbol.
2018-12-18 22:00:19 -05:00
Justin Ethier
a46a9e92d3 Pre-sort the list of globals
This cuts down on the amount of work that must be done by the alpha conversion.
2018-12-18 16:33:24 -05:00
Justin Ethier
e864049136 Remove experimental code 2018-12-18 16:25:24 -05:00
Justin Ethier
49017f5731 Latest attempt to speed this up 2018-12-18 13:20:43 -05:00
Justin Ethier
41d35279d0 Added TODO, comments 2018-12-18 10:08:53 -05:00
Justin Ethier
cbb8357f66 WIP - fast insert 2018-12-17 18:32:25 -05:00
Justin Ethier
68e91f2408 WIP 2018-12-16 19:03:15 -05:00
Justin Ethier
506452654f Issue #286 2018-12-14 17:50:29 -05:00
Justin Ethier
991172ed88 Increment the year 2018-12-14 17:15:50 -05:00
Justin Ethier
d54a0130c0 Issue #284 - Fix how udf:prims are compiled 2018-12-14 14:04:19 -05:00
Justin Ethier
c6aa29d7ab Extend case for udf's 2018-12-14 13:28:37 -05:00
Justin Ethier
dbca1ee36e Get back up-and-running as a program 2018-12-13 18:22:46 -05:00
Justin Ethier
0862070e52 Reorganize, disable new code for now 2018-12-12 18:55:41 -05:00
Justin Ethier
27d4c3e95f Added TODO 2018-12-12 17:33:43 -05:00
Justin Ethier
2d9ba5a9e3 New version of (list?) 2018-12-12 13:43:47 -05:00
Justin Ethier
9eddbb812b Version bump 2018-12-12 13:30:40 -05:00
Justin Ethier
c625e8b0e6 Second try with fast list 2018-12-05 17:39:09 -05:00
Justin Ethier
de5d83f21a Added comment 2018-12-04 22:58:51 -05:00
Justin Ethier
1a586b188c Disable fast list functions
Having problems getting macros to work in a safe way with Cyc-seq. Since these functions were never a big win anyway, we are going to disable them for now.
2018-12-04 17:51:35 -05:00
Justin Ethier
c65977a6a2 Cut over list_2 to new macro 2018-12-04 14:51:03 -05:00
Justin Ethier
f7d76bd90a Do not use make_cell 2018-12-03 18:06:59 -05:00
Justin Ethier
01a73839ac Cut cons over to new expr-safe code
Want to ensure cons can be used safely as part of a Cyc-seq. This cannot happen if the cons used the previous make_pair macro as that can only be called at the top of a function as part of a declaration.
2018-12-03 13:17:17 -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
69a35f7d2e Revert I/O changes for now 2018-11-30 17:50:34 -05:00
Justin Ethier
f5b7c75184 Temporarily revert previous changes for cons 2018-11-30 17:26:45 -05:00
Justin Ethier
8ccd2b3525 WIP, seq safe allocation/assignment of pairs 2018-11-30 13:38:10 -05:00
Justin Ethier
e6e6527be7 WIP 2018-11-29 18:51:08 -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
32a2024094 Version bump 2018-11-28 18:59:37 -05:00
Justin Ethier
984ddc76dc check for list before calling (length) 2018-11-27 18:59:28 -05:00
Justin Ethier
27ca613d0a Remove dead code 2018-11-27 18:46:29 -05:00
Justin Ethier
bdcfea1989 Version bump 2018-11-26 10:48:22 -05:00
Justin Ethier
1145d1f8e2 Only generate a let if local var is used
If the variable is not used we will get a warning from the C compiler. So let's not generate a let unless the var is actually used.

We may want to revisit this later for a related optimization, maybe via Cyc-seq.
2018-11-23 21:46:51 -05:00
Justin Ethier
729c0d4025 Add check for CPS prims 2018-11-22 23:15:12 -05:00
Justin Ethier
931b449579 Extra cases for prim use-alloca and & operator 2018-11-22 17:40:46 -05:00
Justin Ethier
b0e6c42eb1 Added prim->c-func-uses-alloca? 2018-11-22 17:33:06 -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
16149d1492 Added failsafe 2018-11-20 13:23:10 -05:00