Justin Ethier
dfdd84d585
Issue #198 - Remove custom "member" function
2017-05-08 18:44:29 -04:00
Justin Ethier
1391186a6f
Inline (exact?) and (exact-integer?)
2017-05-04 08:40:59 +00:00
Justin Ethier
93f87ac4c3
Allow inlines if a var is passed to a continuation
2017-05-04 08:22:01 +00:00
Justin Ethier
72c1bb9bea
Keep track of which refs are continuations
2017-05-04 07:03:05 +00:00
Justin Ethier
3bd5d52671
Keep track of lambda's with continuations
2017-05-04 06:50:09 +00:00
Justin Ethier
c7aa3700ea
Also identify pure functions using assigned-var
...
This identifies cases where a pure function exits but is defined inline rather than at the top-level.
2017-05-04 05:11:46 +00:00
Justin Ethier
8be8014a1b
Allow inlining refs passed to pure lambdas
2017-05-03 22:18:13 +00:00
Justin Ethier
1a973cafd8
Added lambda side effect analysis
2017-05-03 21:54:51 +00:00
Justin Ethier
6881285e0c
Added analyze-find-lambdas
2017-05-03 20:30:19 +00:00
Justin Ethier
8ef7060463
Storage for lambda side effects
2017-05-03 19:52:06 +00:00
Justin Ethier
7389417e39
If prim mutates args, ignore ivar if not mutated
2017-04-29 11:13:50 +00:00
Justin Ethier
79cde357b1
Experimental change
2017-04-29 11:02:58 +00:00
Justin Ethier
94fac5c512
Expand number of inlined prims
2017-04-29 07:01:29 +00:00
Justin Ethier
70c5212fd2
Added inlines back
2017-04-29 01:27:03 +00:00
Justin Ethier
75b9e7bf8a
Explicit inlines
2017-04-29 01:18:39 +00:00
Justin Ethier
edccb56163
bugfixes
2017-04-30 19:03:44 -04:00
Justin Ethier
9a98356589
Added lib:inlines
2017-04-30 18:52:21 -04:00
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