Commit graph

212 commits

Author SHA1 Message Date
Justin Ethier
dc42d5a1d4 Only inline specifically designated functions 2017-04-28 21:28:30 +00:00
Justin Ethier
8b6830ea49 WIP - explicit inlines 2017-04-30 19:04:53 -04:00
Justin Ethier
eb4fe26284 Relocated function 2017-04-28 17:54:04 +00:00
Justin Ethier
8d7bff212a WIP 2017-04-28 17:43:57 +00:00
Justin Ethier
4ae3269373 WIP 2017-04-27 19:06:08 -04:00
Justin Ethier
9b3a4769dc Avoid naming conflicts with user defined inlines
Do not allow an inline if it conflicts with a global in the current module. This at least attempts to avoid obvious name conflicts. TBD if it is good enough or if additional fixes are necessary.
2017-04-27 18:52:22 -04:00
Justin Ethier
c2929af714 Added exception handler 2017-04-26 18:08:07 -04:00
Justin Ethier
51a1a63700 Register built-in inlines 2017-04-26 17:35:58 -04:00
Justin Ethier
f88016eb3e WIP 2017-04-25 06:22:40 +00:00
Justin Ethier
3d2fdb36d9 WIP 2017-04-24 23:30:27 +00:00
Justin Ethier
998fb4efaa WIP 2017-04-24 23:27:25 +00:00
Justin Ethier
0dafd88ed3 Check for inlinable functions after prim conv
At this point there are more opportunities for inlining.
2017-04-24 18:57:52 -04:00
Justin Ethier
9b7a5e3cfe Explicitly check for a (define) form 2017-04-19 00:25:47 +00:00
Justin Ethier
9f26868ef0 Exclude lib init from inlinable top level funcs 2017-04-18 12:51:30 +00:00
Justin Ethier
d27b55d27b Allow scheme inlines through, though C comp fails 2017-04-18 09:54:13 +00:00
Justin Ethier
547d1e218d Re-enable inline searching code 2017-04-18 09:02:44 +00:00
Justin Ethier
124c137987 WIP 2017-04-18 07:47:32 +00:00
Justin Ethier
f1d5bb6f83 Find inlinable scheme functions 2017-04-18 05:55:00 +00:00
Justin Ethier
b607f9a420 WIP: (inlinable-top-level-function? expr) 2017-04-18 19:03:31 -04:00
Justin Ethier
c94dcf7be2 Fix compilation 2017-04-04 05:47:20 +00:00
Justin Ethier
298338586a WIP - register inlinable Scheme functions 2017-04-04 19:02:24 -04:00
Justin Ethier
a93c1e8cde Added so generation and dl lib 2017-03-23 04:47:47 -04:00
Justin Ethier
afcc5eaecd WIP 2017-03-23 00:21:16 -04:00
Justin Ethier
bf2643ce3d Added prim-convert 2017-03-21 11:15:53 +00:00
Justin Ethier
78c253e1c3 Issue #185 - Allow export of another lib's export 2017-03-20 17:01:25 +00:00
Justin Ethier
ff07229be1 Issue #185 - Identify pass thru exports
That is, exports that are not defined in a library, but are just "pass throughs" from other libraries imported by the library being compiled.
2017-03-20 14:02:15 +00:00
Justin Ethier
da0899b3e6 CC commands, not directories 2017-02-07 20:39:00 +00:00
Justin Ethier
ff94b013ab Issue #153 - Added -CP -CE -CL command options 2017-02-07 20:34:42 +00:00
Justin Ethier
91c8171c93 WIP - cond-expand library declarations 2017-02-04 17:54:55 -05:00
Justin Ethier
c8c8ad6e3f Refactoring and TODO 2017-02-03 23:46:06 +00:00
Justin Ethier
eef7892d14 Added (base-expander) 2017-02-04 00:10:20 -05:00
Justin Ethier
d57f55f406 Allow a program to use cond-expand for imports 2017-02-02 18:29:09 -05:00
Justin Ethier
3fe1dca790 Relocate imports for lib:get-all-import-deps
Read program imports earlier to also handle lib-deps
2017-02-02 17:28:26 -05:00
Justin Ethier
5303c0cf6c Added TODO 2017-02-03 04:32:18 -05:00
Justin Ethier
ca3074e6bc Issue #154 - Handle many top-level prog imports 2017-02-03 00:51:03 -05:00
Justin Ethier
ca048d5538 Add new command line options 2017-02-01 16:56:30 -05:00
Justin Ethier
cc0aefd3f2 Issue #165 - Handle includes as well 2017-02-02 02:03:28 -05:00
Justin Ethier
17d819a399 Issue #165 - -A and -I options 2017-02-02 00:10:54 -05:00
Justin Ethier
379cac7ac3 WIP: allowing append/prepend library paths 2017-01-31 18:50:40 -05:00
Justin Ethier
130274588c Append/prepend dirs for .o files 2017-01-31 18:16:56 -05:00
Justin Ethier
7b927d8b35 Added collect-opt-values 2017-01-31 17:03:28 -05:00
Justin Ethier
66993ebce5 Issue #43 - Add -O0 to disable optimizations
This is the first step to being able to specify optimization level from the command line. This will be more important as more optimizations are added and when (if) some of them are not always safe to apply.
2016-11-11 17:19:04 -05:00
Justin Ethier
001e1e4493 Append code in same order as the library's includes 2016-10-12 22:36:01 -04:00
Justin Ethier
7b441dcfcf Change rename env to a local instead of a global 2016-09-21 17:25:36 -04:00
Justin Ethier
796d5f9e0a Get macros to work by adding a rename env
Each macro will use its own use environment to rename macros, but a common environment will be used by all macro expansions (and after the last expansion) to map any renamed free variables back to the expected symbol.
2016-09-20 17:32:26 -04:00
Justin Ethier
d2019bb284 WIP 2016-09-16 19:19:25 -04:00
Justin Ethier
c1451e26ae Externalize gcc commands 2016-07-29 17:56:28 -04:00
Justin Ethier
089a64d290 Replace (macro?) with (Cyc-macro?) 2016-07-14 22:29:58 -04:00
Justin Ethier
a6c3e4818a Prevent segfault if invalid args are given. 2016-06-30 21:44:03 -04:00
Justin Ethier
308bba3c9b Removed dead code, consolidated comments 2016-05-19 23:33:39 -04:00