making procedure? a builtin
updating interpreter to work better for bootstrapping
fixing printing of invalid UTF-8
fixing nconc on long argument lists
fixing !print_pretty on vectors
fixing function? and disassemble
implementing #vu8 read and print syntax for uint8 vectors
eliminating interpreter. the bytecode VM is now fully bootstrapped.
adding new "translucent" function type for byte-compiled lambdas
allowing (copy x) and other byte stream functions only on plain-old-data types
adding top-level-value and set-top-level-value!, using them instead of
cleaning up implementation of apply() entry point
a bug fix and a first pass at let-optimization
converting for to a special form
fixing glaring bug in last revision
bytecode vm is now working, off by default
implementing op_closure, fix to loadc/setc
moving (length) out of core
some cleanup, removing some unnecessary global bindings
replacing a recursive call with a goto; saves lots of stack space.
making some utf8 routines more robust against invalid data
adding the ability to heap-allocate extentions to the value stack,
fixing bug in hash table. growth schedule made it possible for
adding nestlist, to-proper, string.rep, pad-l, pad-r, trace, untrace,
fixing bug in macroexpand on lambdas
adding support for arbitrarily-long argument lists
avoiding sprintf for error messages where possible
char read/print improvement
removing some unnecessary stuff
initial implementation of let-syntax
making nconc, assq, and memq builtins
adding apply1, using it in trycatch (avoids consing)
fixing bug in datum comment #;
allowing logand, logior, logxor to accept any number of arguments
simplifying (string) to just princ-to-string
adding io.putc, io.tostring!, string.map, print-to-string
adding dump, memstream, io.read, and io.write
fixing bug reading negative constants with #b,o,d,x
changing load to expand each expression before evaluating
fixing ambiguity in reading hex numbers and floating point
adding copy and string.count
better solution for allowing an input stream to be relocated while
fixing some bugs in lerror and read
moving delete-duplicates and new f-body so they can be macroexpanded in advance
moving implementation of startup, repl, load, and top-level
adding io.print and io.princ
file stream creation and io.read
adding integer? and number->string
adding #b, #o, #d, #x numeric literals
switching to scheme #t, #f, and () values
simplified and improved some of the prettyprinting logic
adding CPRIM type, smaller representation for primitives
fixes and improvements to cps converter
improvements and bug fixes to CPS converter
adding branch probability annotations
generic aref/aset for all arrays
fixing several bugs in string.find
renaming 'char' type to 'byte' to avoid confusion
more efficient representation for small tables
making all builtins print readably; (builtin 'sym) function
adding support for finalization of values
fixing bug in for where lambda body was self-evaluating
changing representation of cvalue types so each type is
support reading hex float literals
refactored escape sequence handling a bit, added error for invalid hex
updating bitvector functions to use int64s in more places, since
fixing the result of casting floating point numbers to uint64
added globals *install-dir* and *print-width*, parameterized
I decided it was rather random that set was the only function
adding new UTF8 example text
fixed some small flaws in (compare)
removing some redundant/irrelevant files
removing a proprietary file that should not be here; I was using it as
changing license, since google code does not support the CPL
fixed array constructor so it doesn't require allocating a generic