Justin Ethier
f02b561fb6
Issue #292
2019-01-15 15:16:01 -05:00
Justin Ethier
95e0b4da75
Cleanup
2019-01-11 15:55:09 -05:00
Justin Ethier
02b884bf32
Issue #293 - Do not inline if any mutated prim args
...
As a first cut, do not inline a prim call if any of its arguments has been mutated by a (set!). This is too restrictive but a decent starting point.
2019-01-11 13:02:42 -05:00
Justin Ethier
8648e66ca6
Restrict contains-if check to "called-once" expansion
2019-01-10 13:36:05 -05:00
Justin Ethier
84d9d114dc
Fix for beta expand of functions called once
...
The problem is an if expression within one of these functions may cause the same continuation to be expanded twice, introducing duplicate lambda defintions and identifiers. For now we are not going to beta expand such functions during the contraction phase.
2019-01-10 12:52:03 -05:00
Justin Ethier
adb703c321
Catch edge case with lambda app, cleanup debug tracing
2019-01-07 13:13:20 -05:00
Justin Ethier
a8f2b11f78
WIP, testing with actual function from comp src
2019-01-06 22:59:31 -05:00
Justin Ethier
3ce15462dc
Cleanup and bug fixes
2019-01-04 16:07:17 -05:00
Justin Ethier
6be26698c1
Bug fixes, enable call graph analysis
2019-01-03 18:19:54 -05:00
Justin Ethier
0a47e9eaca
Fix import processing, remove trace logs
2019-01-03 16:32:53 -05:00
Justin Ethier
8cd73b1d19
Use lists of formals
2019-01-03 13:35:28 -05:00
Justin Ethier
c382b259c7
WIP
2019-01-02 19:02:52 -05:00
Justin Ethier
61508ef55a
Relocated file
2019-01-02 18:24:20 -05:00
Justin Ethier
8f4dca2090
Export function
2019-01-02 17:39:15 -05:00
Justin Ethier
0e06e00c08
Export additional functions
2019-01-02 18:05:35 -05:00
Justin Ethier
43bb787f7e
Added (cannot-inline) property
2018-12-22 00:01:37 -05:00
Justin Ethier
82e14fe9c4
Experimental changes:
...
1) Disable beta expansion (causes exponential growth problems on compiler benchmark, needs more fine-tuning)
2) Do not inline assoc/member functions since they loop (needs performance analysis)
2018-12-21 21:49:52 -05:00
Justin Ethier
c564400f5a
Classify apply functions as mutators
...
We don't know if the functions they call will mutate or not, so err on the side of caution. Not sure this is really necessary since they receive a cont and therefore cannot be inlined anyway.
2018-12-21 21:48:57 -05:00
Justin Ethier
a53af18f89
Issue #287 - Check for list before calling (length)
2018-12-20 13:25:52 -05:00
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