Justin Ethier
b218aacf65
Clean up cruft
2020-12-22 17:03:37 -05:00
Justin Ethier
a5fb3b1b14
Allow (vector?) to recognize and disregard record types
2020-12-21 23:00:43 -05:00
Justin Ethier
cc3c8f5bac
WIP refactoring record marker
...
Idea here is to use a new record marker that is guaranteed to be unique and that will be faster to compare against in the C runtime.
2020-12-21 21:50:07 -05:00
Justin Ethier
2c5d9eeb8d
Added record-marker2
2020-12-20 22:46:27 -05:00
Sean Lynch
623f59a84d
Fix a crash in record predicates
...
Ensures that the argument to a record predicate has enough items to be a
record before checking for the record-marker and type name.
2020-12-19 12:19:25 -08:00
Justin Ethier
e257b009c4
Merge branch 'master' of github.com:justinethier/cyclone
2020-08-18 22:14:24 -04:00
Justin Ethier
746d308a75
Fix regression in is-a?
2020-08-18 22:14:09 -04:00
Justin Ethier
36b9489507
Cleanup error message on invalid type
2020-08-17 18:15:44 -04:00
Justin Ethier
ed167c71c1
Issue #402 - Type check record type getter/setter
2020-08-17 18:01:43 -04:00
Justin Ethier
b350a0cf33
Prevent overwritting evn's when importing from repl
2020-07-27 17:53:31 -04:00
Justin Ethier
7b079d36d3
Pretty-up the top-level error messages
...
Make the output more readable when we have location information for the error.
2020-07-23 12:38:01 -04:00
Justin Ethier
e6d654b4a4
Prevent line number info from being added twice
...
Since we now call error/loc in the macro expander, it is possible we are double-calling it if a macro is also calling it directly to report a syntax error. We need to detect that case and only add location information (line, column, filename) if it has not already been added to the error message.
2020-07-23 12:23:42 -04:00
Justin Ethier
1670670968
WIP, universal macro exception handler
2020-07-23 12:10:24 -04:00
Justin Ethier
c37e8dfad9
Allow passing more args to error/loc
2020-07-22 22:54:07 -04:00
Justin Ethier
6d30e7449b
Include source location in error messages
2020-07-21 23:05:32 -04:00
Justin Ethier
0d25e5e122
Clean up error messages, provide filename if able
2020-07-21 22:35:47 -04:00
Justin Ethier
de1a97fbe7
Cleanup
2020-07-21 21:45:26 -04:00
Justin Ethier
f5cf3b57ee
Issue #353 - Report location info with syntax errors
2020-07-20 18:49:48 -04:00
Justin Ethier
1ff14cf605
Issue #353 - Clean up error reporting
2020-07-20 18:35:57 -04:00
Justin Ethier
f3c9874e29
WIP
2020-07-20 14:52:46 -04:00
Justin Ethier
858cac4eee
Relocating source list to (scheme base)
2020-07-19 22:58:01 -04:00
Justin Ethier
346a6e4bd5
Issue #369 - Switch over to multi-arg string cmp
2020-06-04 22:48:17 -04:00
Justin Ethier
5bb83cbfc6
Added stub
2020-06-03 19:08:23 -04:00
Justin Ethier
6ace99f5bb
Issue #369 - Switch out inline string cmp ops
2020-06-03 18:52:59 -04:00
Justin Ethier
972b896e2b
Add placeholder
2020-05-25 18:57:55 -04:00
Justin Ethier
d7abe4f8f5
Issue #380 - Support optional args to write-string
2020-05-25 18:20:39 -04:00
Justin Ethier
ac330dfffc
Issue #378 - Return void instaed of null
2020-05-19 23:12:21 -04:00
Justin Ethier
cf6ccc25d9
Issue #377
2020-05-18 18:18:33 -04:00
Justin Ethier
380641ddda
Issue #367 - Allow list-copy to return non-lists
2020-05-13 15:33:39 -04:00
Justin Ethier
f91d5b1a30
Correctly differentiate binary/textual ports
2020-04-02 18:53:10 -04:00
Justin Ethier
b5a9bd24e1
Prevent read-bytevector from corrupting data
...
Previously it was possible for an extra by to be introduced between multiple reads
2020-03-06 12:33:05 -05:00
Justin Ethier
9a464e002e
Bugfix - Allow read-bytevector to return EOF
2020-03-05 23:00:20 -05:00
Justin Ethier
098b30133f
Added TODO
2020-01-02 13:41:19 -05:00
Justin Ethier
40894ecb3e
Added define-values
2020-01-02 13:41:04 -05:00
Justin Ethier
837954b310
Use read-bytevector!
from Chibi
2019-12-29 18:10:05 -05:00
Justin Ethier
48ce2709b9
Placeholders for bin/txt port prims
2019-12-29 17:58:30 -05:00
Justin Ethier
123c20d60d
WIP: (read-bytevector!)
2019-12-28 19:37:15 -05:00
Justin Ethier
e5dca1835f
Added read-bytevector
2019-12-28 18:55:19 -05:00
Justin Ethier
02fcad76f6
Added write-bytevector
2019-12-28 18:22:35 -05:00
Justin Ethier
734d40a44d
Faster constructor for record types
...
TODO: validate number of args passed to record type constructor
2019-11-06 13:30:36 -05:00
Justin Ethier
838240fceb
Avoid computing (length args) twice
2019-11-06 12:07:42 -05:00
Justin Ethier
c9921ce69a
Fix libtommath warnings
2019-10-23 13:24:13 -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
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
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
0c050a3065
Added platform to (features)
2019-07-31 13:06:31 -04:00
Justin Ethier
f0b84ce122
Set immutable flag
2019-05-01 17:41:47 -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
1f7212a964
Faster version of _list-index
2019-03-14 15:43:36 -04:00
Justin Ethier
d9f63a85b4
Revert previous change
2019-02-27 16:03:19 -05:00