Justin Ethier
27bacda445
Use car instead of cell_get
...
car is much faster since there is no function overhead.
2017-05-09 15:33:56 +00:00
Justin Ethier
45c27f5a3a
Experimenting with wrap-mutable optimizations
2017-05-09 15:19:29 +00:00
Justin Ethier
e6eeeb958e
Merge branch 'inline7-dev'
2017-05-09 13:00:21 +00:00
Justin Ethier
bd3b662bb9
Added 0.5.1 features section
2017-05-09 12:58:01 +00:00
Justin Ethier
48ee3708d5
Inline more define-c functions
2017-05-09 12:44:42 +00:00
Justin Ethier
dfdd84d585
Issue #198 - Remove custom "member" function
2017-05-08 18:44:29 -04:00
Justin Ethier
0060ac4d6e
Update Writing-the-Cyclone-Scheme-Compiler-Revised-2017.md
2017-05-06 22:24:27 -04:00
Justin Ethier
c96fa9ba34
Update AUTHORS
...
Thanks for all your help with 0.5 (Arthur) and Windows/msys2 support (Kashyap)
2017-05-06 22:21:11 -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
b74213ec2d
Attempt 2 CPS optimization passes
2017-05-04 05:11:23 +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
7a90159109
WIP
2017-05-02 18:55:40 -04:00
Justin Ethier
2662a15622
Temporary test file
2017-05-02 18:55:01 -04:00
Justin Ethier
94fac5c512
Expand number of inlined prims
2017-04-29 07:01:29 +00:00
Justin Ethier
0d3ae68f87
Reorganize allocated_bytes to try to speed it up
2017-04-29 07:01:06 +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
10569ddcfd
Get root library name
2017-04-29 00:46:47 +00:00
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
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
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
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
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
e469f4d5a6
Added (imported?)
2017-04-26 17:22:33 -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
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
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
24f9651232
Cleanup networking examples
2017-04-24 18:05:06 -04:00
Justin Ethier
0656756ab4
Simplify logic
2017-04-24 17:58:05 +00:00