Commit graph

958 commits

Author SHA1 Message Date
Justin Ethier
a2c0d8c511 Debug traces 2017-04-29 19:02:23 -04:00
Justin Ethier
f80da86712 Do not inline functions with free vars 2017-04-28 18:27:51 -04:00
Justin Ethier
fef4663f78 Remove old function 2017-04-28 18:10:32 -04:00
Justin Ethier
eb4fe26284 Relocated function 2017-04-28 17:54:04 +00:00
Justin Ethier
19e0346968 Temporary workaround for name conflict
A longer-term solution will need to address cases where a function is defined with the same name as an inlinable function from another library. These are effectively promoted to primitives, which are not renamed by alpha conversion.

A possible workaround might be to allow a global in the module being compiled to "override" a primitive of the same name. TBD
2017-04-27 18:11:57 -04:00
Justin Ethier
e469f4d5a6 Added (imported?) 2017-04-26 17:22:33 -04: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
8b88b8d36d Do not inline prims that create mutable objs 2017-04-24 14:55:57 +00:00
Justin Ethier
045a86dc44 Do not inline functions w/mutating primitives 2017-04-24 13:16:23 +00:00
Justin Ethier
62559ee2c0 No extra comma for inlined scheme functions 2017-04-19 00:54:01 +00:00
Justin Ethier
0262beb351 Do not try to inline large lambda bodies
If a lambda body contains more than one expression it must be compiled using CPS, so the inline code must reject it as a possible candidate.
2017-04-19 00:12:49 +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
33ba61578b Remove unsafe code 2017-04-18 08:31:25 +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
fae5813018 WIP: (inlinable-top-level-function? expr) 2017-04-17 21:34:21 +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
719cbaec2f Inline log and sin 2017-04-17 16:59:53 +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
8cb74fb075 Inline version of truncate 2017-04-17 10:27:23 +00:00
Justin Ethier
7cc3532385 Version bump 2017-04-15 19:18:47 -04:00
Justin Ethier
498fa6f54e Issue #194 - Disable inline define-c's for now 2017-04-12 18:01:33 -04:00
Justin Ethier
861330bc82 WIP 2017-04-05 19:00:42 -04:00
Justin Ethier
4b8d143627 Cleanup 2017-04-05 18:08:08 -04:00
Justin Ethier
e5d63a61d5 WIP 2017-04-04 09:11:07 +00:00
Justin Ethier
a4319fd48d prim-convert - do not stop on first ref 2017-04-04 08:54:06 +00:00
Justin Ethier
1a28889caf Emit inline functions as primitives 2017-04-04 08:14:39 +00:00
Justin Ethier
10fb038c37 Added (prim:udf?) 2017-04-04 07:54:39 +00:00
Justin Ethier
742c55bf45 Take udf-prims into account 2017-04-04 07:45:24 +00:00
Justin Ethier
0b76fbc8b2 Use new function from prim library 2017-04-04 05:41:45 +00:00
Justin Ethier
99bb171bb1 Added prim:func->prim 2017-04-04 05:30:51 +00:00
Justin Ethier
acef00a5b6 WIP 2017-04-04 19:00:50 -04:00
Justin Ethier
0e092da703 WIP 2017-04-04 18:47:05 -04:00
Justin Ethier
c7476fb1ed Emit code for define-c inlines 2017-04-03 21:58:45 +00:00
Justin Ethier
470ea62e9d Handle define-c inline globals 2017-04-03 20:55:45 +00:00
Justin Ethier
2af740f763 Added define-c inline helpers 2017-04-03 20:55:25 +00:00
Justin Ethier
074dee7886 Exploring how define-c could inline functions 2017-04-03 13:37:27 +00:00
Justin Ethier
acbb33cf5b Always output relative path to libs 2017-03-29 01:21:05 +00:00
Justin Ethier
4c08f7099d Added TODO 2017-03-28 21:44:59 +00:00
Justin Ethier
205905a629 Cleanup 2017-03-28 11:12:01 +00:00
Justin Ethier
4dd72a876c Load unloaded or explicitly imported libs 2017-03-28 10:14:02 +00:00