
Changes To Sketchy

2006-02-25
	- Core: Changed syntax of meta commands.
	- Core: File names are no longer converted to lower case in
	  meta commands.
	- Core: Removed :W(RAP-COLUMN) meta command.
	- Core: Added :R5RS-APPLY meta command. When this switch is
	  ON, APPLY cannot be applied to special form handlers, so
	  code like (APPLY OR ...). According to R5RS, it should not
	  anyway.
2006-02-24
	- Core: Removed fightEvil() function. Mission impossible.
	- Core: Made APPLY non-applicable to special form handlers.
	- Re-wrote MAP (used APPLY OR).
2006-02-11
	- Added DRAW-TREE function (displays a Scheme list in
	  box notation).
2006-02-04
	- Added FACTORS (integer factorization) function.
2006-02-03
	- Implemented a faster factorial algorithm (FACT function).
2006-02-01
	- Core: Added path name extension to :L and :C commands:
	  ~/name extends to $HOME/name and =name extends to
	  $SKETCHYSRC/name.
	- Made IOTA a two-argument function.
	- Fixed bad dependency in src/iota.l.
2006-01-21
	- Core: Made CALL-WITH-CURRENT-CONTINUATION an alias of CALL/CC.
	- Core: Removed a few unused variables.
2006-01-15
	- Core: Limited DEFINE to the top level.
	- Changed LETREC to LET where LET is sufficient in the Scheme
	  part of the interpreter.
	- Fixed PROLOG example.
2006-01-08
	- Core: Added LET (it basically was there already).
2006-01-02
	- Core: Added arrow comments and :A meta command. When :A is
	  on, '=>' is the same as ';'. This switch is off by default.
	- Fixed ASSOC and ASSQ (returned () if no match was found).
2005-12-27
	- Core: Made :L meta command load nested dependencies
	  from given directory, eg: :L FOO/BAR.L will search
	  files loaded from BAR.L in FOO.
	- Changed all library source files accordingly.
2005-12-25
	- Core: Rewrote RECURSIVE-BIND in terms of fixAllClosures()
	  (simplified RECURSIVE-BIND).
	- Core: Fix: LIST->STRING returned a bad string for ().
	- Moved all Sketchy Extensions to examples section.
2005-12-22
	- Core: Fixed a subtle yet nasty bug that caused bad
	  closures with improper argument lists.
	- Added N+, N-, N<, PRED, SUCC models to Sketchy Core
2005-12-18
	- Core: Made WRITE and DISPLAY return #<VOID>.
2005-12-15
	- Core: Fixed LETREC in values of LETREC.
	- Core: Fixed yet another CALL/CC bug:
	  LETREC + CALL/CC = MUTATION, but was not.
2005-12-14
	- Core: Made PROCEDURE? return #T for SPECIAL/CBV handlers.
2005-12-13
	- Core: Fixed a bug that caused input like '(A .) to crash the
	  interpreter.
2005-12-11
	- Core: Fixed a bug in the output routine of the reduction
	  counter (printStats()).
2005-12-12
	- Added default argument to ITERATE.
	- Simplified some variadic functions using ITERATE.
	- Moved REDUCE to Extension Library.
2005-12-08
	- Core: Made these functions primitives (performance hack):
	  STRING-APPEND, STRING-LENGTH, STRING-REF, SUBSTRING.
	- Core: Added info about used vector cells to :G output.
2005-12-06
	- Made GCD and LCM variadic.
2005-12-02
	- Core: Added byte order check to loadImage().
2005-12-01
	- Core: Fixed a bug in SYMBOL->STRING (trailing char).
2005-11-30
	- Core: Added fightEvil() function.
2005-11-27
	- Fixed STRING<? and STRING-CI<?.
2005-11-26
	- Made MAP accept lists of different lengths.
2005-11-24
	- Made APPEND accept an atom as its last argument.
2005-11-23
	- Core: Made collect() skip tagged nodes, so that literals
	  are no longer closed over.
2005-11-20
	- Core: Disallowed invalid escape sequences in strings.
	- Core: Removed leading quotes from interpreter output.
2005-11-19
	- Core: Fix: escaping backslashes in strings did not work.
2005-11-16
	- Core: Added #<SPECIAL/CBV *> type for special forms that
	  are call-by-value.
2005-11-14
	- Core: Fixed a bug that could cause L-stack underflows
	  when doing a CALL/CC.
2005-11-11
	- Core: Fixed a nasty bug that caused LETREC to mess up the
	  outer environment.
	- Core: Added N+, N-, and N< primitives.
	- Core: Removed D+, D-, D< primitives.
	- Removed the N+, N-, N< functions
	  (moved to primitive level).
2005-11-10
	- Core: Made BOTTOM report (bottom ...)
	  rather than (#<primitive bottom> ...)
	- Changed function definitions to R5RS style.
2005-11-06
	- Core: Added DELETE-FILE primitive.
2005-11-02
	- Core: Rewrote input/output routines to use stdio.
	- Core: Removed limit on load levels.
	- Core: Implemented WITH-INPUT-FROM-FILE.
	- Core: Implemented WITH-OUTPUT-TO-FILE.
	- Core: Implemented #<EOF> and EOF-OBJECT?.
	- Allowed zero args in +: (+) => 0
	- Allowed zero args in *: (*) => 1
2005-11-01
	- Core: Implemented a unified model for special form handlers;
	  special form handlers are dispatched in special().
	- Core: Changed the output form of '(a.b) to '(a . b)
2005-10-15
	- Core: Added (DEFINE (FOO BAR) BAZ) syntax.
2005-10-14
	- Core: Added BEGIN.
	- Core: Changed error message format.
2005-10-13
	- Core: Added READ, READ-CHAR, WRITE, DISPLAY.
2005-09-16
	- Core: Implemented vector pool compaction.
2005-09-15
	- Core: Made STRING->SYMBOL and SYMBOL->STRING operate on vectors.
	- Core: Fixed a bug that caused recursive bindings of DEFINE to
	  fail, if the recursive symbol already was defined in a
	  different package. See subst().
2005-09-14
	- Core: Implemented vector pool.
	- Core: Made 'string' a vector type.
2005-08-07
	- Core: Added optional SIGINT handler.
	- Core: Code cleanup.
	- Added READ-LINE function to sketchy-ext.
2005-08-05
	- Core: Forked ANSI C version.
2005-07-28
	- Fixed APPEND with zero arguments.
2005-07-13
	- Removed PRED and SUCC.
2005-07-10
	- Removed MEMBER? and MEMQ? because they are no
	  longer required.
2005-07-06
	- Wrapped up sketchy core and sketchy extensions
	  in packages.
2005-07-05
	- Added R5RS string and char functions.
2005-06-27
	- Removed LIST->NUMBER and NUMBER->LIST. These
	  are now primitives.
	- Removed SYMBOL? for the same reason.
2005-06-16
	- Improved N* and NDIVIDE functions (removed
	  redundant applications of LIST->NUMBER and
	  NUMBER->LIST).
2005-06-15
	- Made NORMALIZE operate on numbers rather than
	  lists of digits.
	- Added type checking to LIST->NUMBER.
2005-05-29
	- Replaced LETREC* with LETREC in all functions
	  and example programs.
2005-05-24
	- Rewrote arithmetic funcions.
	- Make EQUAL? compare new numbers correctly.
2005-05-23
	- Renamed SUBLIS to SUBLIST.
	- Replaced MAX-LIST with R5RS-compliant MAX.
	- Replaced MIN-LIST with R5RS-compliant MIN.
2005-05-22
	- Made > (greater) R5RS compliant (2+ args).
	- Made >= (greater/equal) R5RS compliant (2+ args).
	- Made < (less) R5RS compliant (2+ args).
	- Made <= (less/equal) R5RS compliant (2+ args).
	- Made MAP R5RS compliant (2+ args).
2005-05-21
	- Made - (minus) R5RS compliant (1+ args).
	- Added NEGATE (Sketchy Core).
	- Added ITERATE (Sketchy Core).
	- Moved function argument of REDUCE to first position.
	- Made APPEND R5RS compliant (1+ args).
	- Made = (equal) R5RS compliant (2+ args).
	- Made + (plus) R5RS compliant (1+ args).
2005-05-17
	- Fixed SYMBOL? (returned #T for '()).
2005-05-06
	- Forked initial version from ArrowLISP sources.

