Commit graph

1385 commits

Author SHA1 Message Date
Justin Ethier
28c94c1e65 Bump to 0.11.5 2019-09-27 12:47:33 -04:00
Justin Ethier
e211e3f64d Issue #339 - Fix fast path in make-string
We need to ensure the code point buffer only contains a single byte in order to use the fast path for string creation. For example if there is one code point that is 2 bytes large we need to use the slow path.
2019-09-23 13:28:52 -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
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
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
02fa091297 Issue #336 - Validate num of args passed to if 2019-09-04 13:07:02 -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
769ec2ea76 Refactoring, set placeholders for future dev 2019-08-13 18:02:46 -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
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
Justin Ethier
ec25eddc28 Issue #331 - Prevent syntax error during eval
Prevent an unquoted symbol from throwing a syntax error when evaluating a define-record-type form. Note there are still other issues with creating a record type in the interpreter at this time.
2019-08-05 14:09:14 -04:00
Justin Ethier
1edb877c5f Speed up vector for five args or less 2019-08-02 12:13:30 -04:00
Justin Ethier
0c050a3065 Added platform to (features) 2019-07-31 13:06:31 -04:00
Justin Ethier
48376779e3 Version bump 2019-07-11 18:14:45 -04:00
Justin Ethier
465f38ad25 Relocated file 2019-06-19 18:29:21 -04:00
Justin Ethier
b3e9c31d41 Relocated library 2019-06-19 13:18:48 -04:00
Justin Ethier
1b0c5f3e78 Relocated (immutable?) procedure 2019-06-18 13:30:22 -04:00
Justin Ethier
b898f6b954 Bump to 0.11.2 2019-06-10 13:19:19 -04:00
Justin Ethier
8539dd3915 Bug fix 2019-05-22 13:23:45 -04:00
Justin Ethier
abe40532c3 Include missing arg 2019-05-21 17:46:33 -04:00
Justin Ethier
6920b8f568 Set immutable for evaluated quotes 2019-05-21 13:06:51 -04:00
Justin Ethier
e85a04fd81 Integrated immutable functions 2019-05-21 13:02:41 -04:00
Justin Ethier
c9ae6cdf97 Bug fixes 2019-05-16 13:35:51 -04:00
Justin Ethier
cb0d72a6df Emit immutable bytevectors and strings when quoted 2019-05-16 13:03:28 -04:00
Justin Ethier
8c7bd7f96b WIP, working through immutable objects 2019-05-15 22:57:40 -04:00
Justin Ethier
daa8f92f0c Refactoring, stage new arg to c-compile-const
New signature is: (c-compile-const exp use-alloca immutable)
This will allow the compilation of immutable objects.
2019-05-15 13:35:08 -04:00
Justin Ethier
ba569882ea Refactor code out to c-set-immutable-field 2019-05-15 13:28:17 -04:00
Justin Ethier
f2b9658b21 Set mutability for quoted pairs 2019-05-14 13:06:10 -04:00
Justin Ethier
f0b84ce122 Set immutable flag 2019-05-01 17:41:47 -04:00
Justin Ethier
62d2bea199 Remove redundant code 2019-04-18 17:46:38 -04:00
Justin Ethier
c80d53c6e8 Bump to 0.11.1 2019-04-18 13:00:49 -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
0f1469da61 Bump to 0.11 2019-03-28 12:22:13 -04:00
Justin Ethier
38847f11cf Add extra condition to (alloca?)
Make this match what is actually done in cgen for when a while statement is introduced, there was an older case not being handled.
2019-03-27 13:18:31 -04:00
Justin Ethier
27469be2ef Fix typo 2019-03-27 13:18:17 -04:00
Justin Ethier
e68fa56f94 Bugfix - account for the use-alloca flag 2019-03-22 12:26:10 -04:00
Justin Ethier
f13186ee17 Use static alloc for clo/vec, instead of alloca
This improves performance as the C compiler can better optimize the generated code.
2019-03-22 10:34:48 -04:00
Justin Ethier
12d6cbce5a Use explicit if's instead of memv for case
Theory is the generated code can make better use of the processor cached when using explicit if statements than aggregating over a list via memv, since pairs in the list can be located anywhere across memory.
2019-03-20 17:39:55 -04:00
Justin Ethier
5dd5a5eef2 Stub for new version 2019-03-17 18:48:27 -04:00
Justin Ethier
1f7212a964 Faster version of _list-index 2019-03-14 15:43:36 -04:00
Justin Ethier
3bf2a6125c Fast list/vector functions also allocate mutable objs 2019-02-28 13:47:32 -05:00