Commit graph

4850 commits

Author SHA1 Message Date
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
e34aa09270 WIP
Trying to avoid cases where the "loop" var is not actually used by the closure.
2019-09-20 13:38:04 -04:00
Justin Ethier
619f60a36b Incorporate closure renaming fixes from validation 2019-09-20 13:05:41 -04:00
Justin Ethier
18a8c4f28e Fixup closure symbols 2019-09-20 12:56:52 -04:00
Justin Ethier
fa9fc03043 Only set var when (cell) is called 2019-09-19 22:02:42 -04:00
Justin Ethier
6ea8369193 Only store mark if we actually transformed code 2019-09-19 22:02:20 -04:00
Justin Ethier
fd72c918b6 Address TODO 2019-09-19 16:22:25 -04:00
Justin Ethier
78a786a7a5 Added a big TODO 2019-09-19 13:34:38 -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
23fab99873 Transform code to relocate loop's closure declaration 2019-09-18 22:49:49 -04:00
Justin Ethier
066bd9c933 Setup stub 2019-09-18 20:58:37 -04:00
Justin Ethier
6eb4db0596 Initial file 2019-09-18 20:51:34 -04:00
Justin Ethier
ed74af7e82 Initial file 2019-09-18 13:29:24 -04:00
Justin Ethier
5c728224d1 Stage change to self-ref closure 2019-09-18 12:23:42 -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
b6732b988a Setup for tracking loop vars 2019-09-16 21:25:21 -04:00
Justin Ethier
e6c23e25c1 Issue #337
Added `open-binary-input-file` and `open-binary-output-file` from R7RS.
2019-09-15 10:40:06 -04:00
Justin Ethier
60e9007d57 Speed up (complex?) 2019-09-13 12:31:18 -04:00
Justin Ethier
829f7d86b0 Issue #336 - Compiler validation for "if" 2019-09-10 18:52:44 -04:00
Justin Ethier
95922d257e Only print when debugging as a program 2019-09-10 17:47:26 -04:00
Justin Ethier
526032e52f Include new file 2019-09-10 17:47:03 -04:00
Justin Ethier
c39465e6cf Sync new file 2019-09-10 17:36:06 -04:00
Justin Ethier
30fd74792f Rename function 2019-09-10 17:35:49 -04:00
Justin Ethier
947e15662a Relocate file 2019-09-10 17:14:52 -04:00
Justin Ethier
1c4b7cc264 Polishing up 2019-09-10 17:14:16 -04:00
Justin Ethier
dba849ae62 Build-out validation 2019-09-10 17:11:38 -04:00
Justin Ethier
da4ffd84a3 Keep track of lexical variables, be more careful about (if) 2019-09-09 18:26:32 -04:00
Justin Ethier
2ad35be419 Scaffold validation calls 2019-09-05 13:24:13 -04:00
Justin Ethier
5f5363a8e2 WIP 2019-09-04 18:45:54 -04:00
Justin Ethier
b0acafbee8 Initial test file 2019-09-04 13:24:06 -04:00
Justin Ethier
02fa091297 Issue #336 - Validate num of args passed to if 2019-09-04 13:07:02 -04:00
Justin Ethier
b482a40f04
Update CHANGELOG.md 2019-08-23 16:57:38 -04:00
Justin Ethier
fccc9630cf Remove old macro 2019-08-23 10:21:58 -04:00
Justin Ethier
66ff7f6380 Bump version 2019-08-22 21:30:56 -04:00
Justin Ethier
e099fe7860 Refactoring
Use a macro name that makes more sense, as we are trying to determine if obj is a closure.
2019-08-22 21:28:57 -04:00
Justin Ethier
aed49c49e4 Issue #297 2019-08-22 14:24:07 -04:00
Justin Ethier
9ee7c49334 Issue #297 - Complete validation for closures
Renumbered the type tags such that we can quickly check if an object is a closure or not. This will prevent crashes where an object of the wrong type (such as NULL or boolean) is passed in place of a closure. Previously we did not distinguish these objects, leading to segfaults and undefined behavior.
2019-08-22 13:41:20 -04:00
Justin Ethier
99c5bee97a Issue #297 - Friendlier error behavior for apply
When apply attempts to execute an object of the wrong type, we now raise a useful error instead of aborting the whole program (!)
2019-08-22 13:25:34 -04:00
Justin Ethier
19ac6d32aa Merge remote-tracking branch 'origin/master' 2019-08-13 18:03:24 -04:00
Justin Ethier
769ec2ea76 Refactoring, set placeholders for future dev 2019-08-13 18:02:46 -04:00
Justin Ethier
7d3d65ad81
Update CHANGELOG.md
Prep for 0.11.3 release
2019-08-12 10:10:39 -04:00
Justin Ethier
540c5463f6 map/for-each optimization 2019-08-09 16:09:59 -04:00
Justin Ethier
f3c83e42a4 Optimized versions of (map) and (for-each)
These versions are optimized for when the function is being called with two list arguments.
2019-08-09 16:00:46 -04:00
Justin Ethier
f211d350e0 Issue #331 - Ensure map evaluates in order
Reverse so everything is evaluated in order, then reverse again so final results are in order.
2019-08-07 13:29:43 -04:00
Justin Ethier
7420b34f84 Issue #331 - Document eval fixes for begin/records 2019-08-06 22:19:34 -04:00
Justin Ethier
80b861664a Issue #331 - Ensure definitions from begin's are spliced in 2019-08-06 22:06:43 -04:00
Justin Ethier
2d398573a5 WIP 2019-08-05 18:39:44 -04:00