Some modifications needed to earlier steps
so they compile with the new core functions.
Need to disable double free error checks
in types, because step2 fails otherwise.
* Memory management, Cons, Arrays and String types in types.asm
* Functions containing syscall in system.asm
* Added more useful error message in reader, on unexpected end of input
* Prints strings, escaping " and \n
* Handles negative integers, reading and printing.
Difference between "- 10" (symbol, number) and "-10" (number)
All essential and deferrable tests pass
Test suite passes required and deferrable tests except:
1. () is apparently different from nil, so empty list needs to be
handled differently
2. String printing currently just prints the string without
quotes or escapes.
Progress on printer, not yet working.
string_append_string now appends one string to the end
of another, handling long strings with multiple Array blocks.
Some progress: Integers read, passed as Cons object
through to pr_str, then as Array (string) to print_string.
Memory management (reference counting works so far...)
Not complete yet, but should recognise special characters
and strings (mostly). String code not complete yet, since
it won't handle long strings correctly (no chaining of Arrays).
Changed how types of containers and content are marked,
and how these map onto MAL types.
Simplified object release code, since data type
is always now stored with the data.
Simple fixed-size memory manager, which uses reference counting
and a list of free blocks. Not properly tested yet, particularly
the Cons version (linked list) which is more complicated than
the Array type.