Justin Ethier
983974fdd1
Use lambda ID's to confirm if var truly is a loop
2019-09-24 18:18:07 -04:00
Justin Ethier
619f60a36b
Incorporate closure renaming fixes from validation
2019-09-20 13:05:41 -04:00
Justin Ethier
6ea8369193
Only store mark if we actually transformed code
2019-09-19 22:02:20 -04:00
Justin Ethier
ff65b5d2ed
Added safety checks
2019-09-19 13:16:04 -04:00
Justin Ethier
7ed21d9c7a
WIP - testing integration of the validation
...
Does not quite work yet but this is a start with the code from validation.scm
2019-09-19 12:59:50 -04:00
Justin Ethier
2816a4771e
Export new funcs
2019-09-16 22:52:56 -04:00
Justin Ethier
e45837a19f
Rewrite mutated vars to prevent mutations for loops
2019-09-16 22:25:12 -04:00
Justin Ethier
82dd4cb5c3
Relocate wrap-mutables
2019-09-16 21:33:17 -04:00
Justin Ethier
769ec2ea76
Refactoring, set placeholders for future dev
2019-08-13 18:02:46 -04:00
Justin Ethier
1edb877c5f
Speed up vector
for five args or less
2019-08-02 12:13:30 -04:00
Justin Ethier
3c37c164fe
Be more careful about identifying macros
...
The validation for number of function arguments was modified previously to filter-out macros, but the logic was not good enough. For some reason (need to track it down) non-macros are showing up in the macro environment. So additional logic is needed to confirm whether a given symbol is in fact a macro.
2019-04-18 12:57:26 -04:00
Justin Ethier
4f1abc2757
Cleanup, omit macros from arg checking
2019-04-11 18:40:19 -04:00
Justin Ethier
4300a759e3
Emit sexp along with arg error
2019-04-11 13:53:26 -04:00
Justin Ethier
e828f5839d
Issue #240 - Validate number of local fnc args
2019-04-11 13:21:55 -04:00
Justin Ethier
74c545416c
Added validate:num-function-args
2019-04-10 22:56:01 -04:00
Justin Ethier
3bf2a6125c
Fast list/vector functions also allocate mutable objs
2019-02-28 13:47:32 -05:00
Justin Ethier
8efbf60528
Must explicitly call (complex?) now
2019-02-18 22:12:55 -05:00
Justin Ethier
53471fc4c1
Rework setting of globals and checking flags, for cps opt
2019-02-13 18:53:43 -05:00
Justin Ethier
2c418ec33d
Fix extraction of options
2019-02-13 10:41:02 -05:00
Justin Ethier
dab0d9a570
Extract data from pair
2019-02-12 14:03:54 -05:00
Justin Ethier
3bbd89ce2c
WIP
2019-02-12 14:01:13 -05:00
Justin Ethier
e060247d8a
Cleanup interface to opt:memoize-pure-fncs
2019-02-10 18:58:18 -05:00
Justin Ethier
a988582228
WIP
2019-02-10 18:48:53 -05:00
Justin Ethier
1caa277f8a
Added TODO
2019-02-08 13:24:23 -05:00
Justin Ethier
459e9a97b0
Hack to re-enable beta expand
2019-01-17 22:36:57 -05:00
Justin Ethier
b0000c42e7
Test re-enabling beta expansion
2019-01-17 16:58:45 -05:00
Justin Ethier
4b72131ac6
Enabled faster mutated-by-set
2019-01-17 16:26:32 -05:00
Justin Ethier
bee311de80
WIP
2019-01-17 15:27:47 -05:00
Justin Ethier
8cb0dd1b20
Issue #293 - Added adbf:vars-mutated-by-set
2019-01-17 13:24:16 -05:00
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
6be26698c1
Bug fixes, enable call graph analysis
2019-01-03 18:19:54 -05:00
Justin Ethier
c382b259c7
WIP
2019-01-02 19:02:52 -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
e864049136
Remove experimental code
2018-12-18 16:25:24 -05:00
Justin Ethier
68e91f2408
WIP
2018-12-16 19:03:15 -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
984ddc76dc
check for list before calling (length)
2018-11-27 18:59:28 -05:00
Justin Ethier
27ca613d0a
Remove dead code
2018-11-27 18:46:29 -05:00
Justin Ethier
ef647082e6
WIP
2018-11-13 19:05:28 -05:00
Justin Ethier
d40dc538d9
Closure convert (let) local values
2018-11-13 18:01:54 -05:00
Justin Ethier
04a3bb6c60
Fix splicing of let body
2018-11-13 17:17:16 -05:00
Justin Ethier
89e633db26
Added clarifying comments
2018-11-13 12:57:55 -05:00