Commit graph

697 commits

Author SHA1 Message Date
Justin Ethier
42507606a5 Added Cyc_string_byte_length() 2017-11-06 17:54:00 +00:00
Justin Ethier
348ed7205c Added a TODO for peek-char and UTF8 2017-11-06 17:46:56 +00:00
Justin Ethier
d43d019c20 Fix UTF8 support for pack_env_variables() 2017-11-06 17:06:12 +00:00
Justin Ethier
ec5ef86b6a Do not use make_string for UTF8 strings 2017-11-06 16:00:55 +00:00
Justin Ethier
9962bca854 Validate hex digits in string with the \x; syntax 2017-11-06 14:12:21 +00:00
Justin Ethier
d431b2af1c Updated Cyc_io_read_line to prevent truncation
Ensure last codepoint is fully-read before returning
2017-11-06 13:19:31 +00:00
Justin Ethier
6910e3e4cb Added TODO 2017-11-03 14:51:34 +00:00
Justin Ethier
67398186d0 Added comments 2017-11-03 14:41:58 +00:00
Justin Ethier
bbe8fbb970 Allow read_return_character to parse UTF8 chars 2017-11-02 18:00:10 -04:00
Justin Ethier
3aa2a159b7 Bugfix: Cyc_utf8_encode returns char count, not bytes 2017-11-02 17:41:26 -04:00
Justin Ethier
734a6e1911 Allow read-char to handle unicode characters 2017-10-31 20:54:21 +00:00
Justin Ethier
b1ea22c940 Fixed (string->utf8) 2017-10-31 18:41:52 -04:00
Justin Ethier
509fd43022 Fixed substring 2017-10-31 17:58:17 -04:00
Justin Ethier
a38295b22b WIP 2017-10-30 17:52:16 +00:00
Justin Ethier
118822f353 WIP 2017-10-30 16:57:39 +00:00
Justin Ethier
7f8cc02c50 WIP - obj_char2obj 2017-10-30 13:26:57 +00:00
Justin Ethier
3783da2674 WIP - obj_obj2char fixes 2017-10-30 13:17:37 +00:00
Justin Ethier
0bcce5038e WIP 2017-10-27 17:18:29 +00:00
Justin Ethier
8289eca02a Remove obsolete function 2017-10-27 13:02:51 +00:00
Justin Ethier
4a77296ddf Added UTF-8 support to list->string 2017-10-27 12:44:06 +00:00
Justin Ethier
aa0b0a7567 Added UTF8 encoder, final version of string->utf8 2017-10-25 18:35:11 -04:00
Justin Ethier
13e260300f Added utility function and stubs 2017-10-24 17:53:43 -04:00
Justin Ethier
13254d06f0 WIP - utf8 / string conversion functions 2017-10-24 13:23:48 +00:00
Justin Ethier
cb1bfef031 WIP - string-set! 2017-10-23 18:47:01 -04:00
Justin Ethier
3e64420101 Added UTF8 support to Cyc_substring 2017-10-23 17:43:37 -04:00
Justin Ethier
424592ad8b Added TODO 2017-10-23 17:10:43 +00:00
Justin Ethier
114e284566 string-length: return number of codepoints 2017-10-23 13:39:04 +00:00
Justin Ethier
96e5692cb9 bugfix 2017-10-23 13:38:02 +00:00
Justin Ethier
8b817966e8 WIP 2017-10-23 13:26:29 +00:00
Justin Ethier
14626f15c4 Unicode changes, take code points into account 2017-10-22 18:59:35 -04:00
Justin Ethier
ac8b280578 Refactoring, added make_utf8_string 2017-10-20 16:29:56 +00:00
Justin Ethier
71c7ed3e7f Cleanup and added UTF 8 definitions to header file 2017-10-20 12:54:13 +00:00
Justin Ethier
ae3aa1941d Initial UTF-8 helpers 2017-10-19 13:29:57 +00:00
Justin Ethier
4d03c00f1c Posted requirements for char-ready 2017-09-07 17:54:21 -04:00
Justin Ethier
c4a569d2cd WIP 2017-09-06 22:57:39 +00:00
Justin Ethier
cd7d3ca7a5 Issue #221 2017-09-03 17:37:38 -04:00
Justin Ethier
572a05307a Issue #216 2017-09-01 14:03:20 +00:00
Justin Ethier
b9f461dbc5 Issue #216 - Decrement len when no newline 2017-08-31 22:19:13 +00:00
Justin Ethier
eac30107d3 Issue #216 - read-line remove trailing newlines 2017-08-31 22:02:10 +00:00
Justin Ethier
4be7d73e12 Issue #214 - Prevent segfault with large vectors
Large vectors are allocated directly on the heap but may contain elements that are still on the stack. To ensure all of these elements are transported to the heap during the next minor GC, a special Opaque object is placed into the mutation table to ensure the whole vector is scanned for stack objects during the next minor GC.

Previously this was not done so objects from the "old" stack were still in memory and any changes to them were trashing random portions of the stack!
2017-08-24 21:48:59 +00:00
Justin Ethier
49df11049a Speed up Cyc_remainder
Do not type check at the start of the function since there is already type checking in the function body.
2017-08-23 17:51:41 -04:00
Justin Ethier
d03258c83a Make read a little faster by streamlining main path
Move 2 comparisons underneath the (vector?) case, so in the normal case they can be skipped.
2017-08-23 17:26:20 +00:00
Justin Ethier
a5dfcc2f85 Removed unnecessary type checks 2017-08-22 17:55:22 +00:00
Justin Ethier
3b75d3ea16 Added type checking to Cyc_io_read_line() 2017-08-21 12:31:06 +00:00
Justin Ethier
66cd34c84c Convert read/peek char to use fread code 2017-08-21 12:21:21 +00:00
Justin Ethier
d471813a37 Faster parsing of numbers 2017-08-21 10:39:03 +00:00
Justin Ethier
8b3bf050e8 Added new members for in-memory I/O 2017-08-19 18:04:39 -04:00
Justin Ethier
e01815ae21 Bug fixes 2017-08-18 17:52:06 -04:00
Justin Ethier
fb18bf46ce Do not display unnecessary colon in error msgs 2017-08-18 17:33:12 -04:00
Justin Ethier
4c5191f2b8 Added new read_len field for fread 2017-08-17 13:54:44 +00:00