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