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
Justin Ethier
f64d429ab8
WIP
2019-02-28 09:43:58 -05:00
Justin Ethier
d9f63a85b4
Revert previous change
2019-02-27 16:03:19 -05:00
Justin Ethier
1f8a824bda
More efficient record type construction
2019-02-27 15:44:50 -05:00
Justin Ethier
8772c5355b
Faster initialization of objects create via define-record-type
2019-02-27 14:31:14 -05:00
Justin Ethier
0f0beb024c
Do not use vector-set when creating record types
...
This improves performance as mutations force the GC to do more work.
2019-02-27 10:29:18 -05:00
Justin Ethier
6bfff4b6ed
Perform fixnum type check
2019-02-19 13:17:33 -05:00
Justin Ethier
db7fd2bf81
Tentative version bump
2019-02-19 13:14:05 -05:00
Justin Ethier
8efbf60528
Must explicitly call (complex?) now
2019-02-18 22:12:55 -05:00
Justin Ethier
b4c19b1c7d
Use 0.9.9 instead
2019-02-18 12:32:57 -05:00
Justin Ethier
b2997de54a
Prep 0.9.8.1 bugfix release
2019-02-18 12:13:03 -05:00
Justin Ethier
fa01202df8
Do not attempt to memoize functions that take 0 args
2019-02-15 12:36:54 -05:00
Justin Ethier
12b6131992
Cut-over to Cyc-memoize
2019-02-14 12:47:36 -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
3af8cef894
Rework to use add-globals and flag-set functions
2019-02-13 18:52:52 -05:00
Justin Ethier
a20f020f66
Emit lambda AST's
2019-02-13 15:00:38 -05:00
Justin Ethier
f6be983113
Replace unnecessary and-let*
2019-02-13 11:58:37 -05:00
Justin Ethier
2c418ec33d
Fix extraction of options
2019-02-13 10:41:02 -05:00
Justin Ethier
2a91c9431e
WIP
2019-02-12 18:55:10 -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