342 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			342 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Change Log
 | |
| ----------
 | |
| 
 | |
| Version 1.42
 | |
|     Other changes:
 | |
|         - Fixed segfault crash caused by invalid syntax to cond  (PG)
 | |
|         - Fixed a bug in the close-port routine in init.scm
 | |
|         - Fixed possible crash loading file due to uninitialized variable  (MP)
 | |
|         - Don't use snprintf() in atom2str to return some fixed strings  (KC/MP)
 | |
|         - Added "tinyscheme" to the features list  (JaW)
 | |
|         - Added Sconstruct to allow building using scons  (AG)
 | |
|         - Fixed function prototype for scheme_init_new  (JuW)
 | |
|         - Make various limits configurable  (JuW)
 | |
| 
 | |
|     Contributors:
 | |
|         Kevin Cozens, Mauro Persano, Pedro Gimeno, James Woodcock, Atanu Ghosh,
 | |
|         and Justus Winter.
 | |
| 
 | |
| Version 1.41
 | |
|     Bugs fixed:
 | |
|         #3020389 - Added makefile section for Mac OS X  (SL)
 | |
|         #3286135 - Fixed num_mod routine which caused errors in use of modulo
 | |
|         #3290232 - Corrected version number shown on startup  (GM)
 | |
|         #3394882 - Added missing #if in opdefines.h around get and put  (DC)
 | |
|         #3395547 - Fix for the modulo procedure  (DC)
 | |
|         #3400290 - Optimized append to make it an O(n) operation  (DC)
 | |
|         #3493926 - Corrected flag used when building shared files on OSX  (J)
 | |
| 
 | |
|     R5RS related changes:
 | |
|         #2866196 - Parser does not handle delimiters correctly
 | |
|         #3395548 - Add a decimal point to inexact numbers in atom2str  (DC)
 | |
|         #3399331 - Make min/max return inexact when any argument is inexact
 | |
|         #3399332 - Compatibility fix for expt.
 | |
|         #3399335 - Optional radix for string->number and number->string  (DC)
 | |
|         #3400202 - Append with one argument should not return a list  (DC)
 | |
|         #3400284 - Compatibility fix for integer?
 | |
| 
 | |
|     Other changes:
 | |
|         - Added flags to makefile for MinGW/MSYS (TC)
 | |
|         - Moved variable declarations to avoid warnings with some compilers
 | |
|         - Don't print space after initial #( when printing vectors.
 | |
|         - Minor optimization for is_nonneg().
 | |
|         - No need to round integers in OP_ROUND (#3400284)
 | |
|         - Fixes to code that reports line number with error  (RC)
 | |
| 
 | |
|     Contributors:
 | |
|         Kevin Cozens, Gordon McNutt, Doug Currie, Sean Long, Tim Cas, Joey,
 | |
|         Richard Copley, and CMarinier.
 | |
| 
 | |
| Version 1.40
 | |
|     Bugs fixed:
 | |
|         #1964950 - Stop core dumps due to bad syntax in LET (and variants)
 | |
|         #2826594 - allow reverse to work on empty list (Tony Garnock-Jones)
 | |
|         Potential problem of arglist to foreign calls being wrongly GC'ed.
 | |
|         Fixed bug that read could loop forever (tehom).
 | |
| 
 | |
|     API changes:
 | |
|         Exposed is_list and list_length.
 | |
|         Added scheme_register_foreign_func_list and declarations for it (tehom)
 | |
|         Defined *compile-hook* (tehom)
 | |
| 
 | |
|     Other changes:
 | |
|         Updated is_list and list_length to handle circular lists.
 | |
|         Nested calling thru C has been made now safer (tehom)
 | |
|         Peter Michaux cleaned up port_rep_from_file
 | |
|         Added unwind-protect (tehom)
 | |
|         Some cleanups to in/outport and Eval_Cycle by Peter Michaux
 | |
|         Report error line number (Mostly by Sanel Zukan, back-compatibility by Tehom)
 | |
| 
 | |
|     Contributors:
 | |
|         Kevin Cozens, Dimitrios Souflis, Tom Breton, Peter Michaux, Sanel Zukan,
 | |
|         and Tony Garnock-Jones.
 | |
| 
 | |
| Version 1.39
 | |
|     Bugs fixed:
 | |
|         Fix for the load bug
 | |
|         Fixed parsing of octal coded characters. Fixes bug #1818018.
 | |
|         Added tests for when mk_vector is out of memory. Can't rely on sc->sink.
 | |
|         Fix for bug #1794369
 | |
|         Finished feature-request 1599947: scheme_apply0 etc return values.
 | |
|         Partly provided feature-request 1599947: Expose list_length, eqv, etc
 | |
|         Provided feature-request 1599945, Scheme->C->Scheme calling.
 | |
|         Fix for bug 1593861 (behavior of is_integer)
 | |
|         Fix for bug 1589711
 | |
|         Error checking of binding spec syntax in LET and LETREC. The bad syntax
 | |
|         was causing a segmentation fault in Linux. Complete fixes for bug #1817986.
 | |
|         Error checking of binding spec syntax in LET*
 | |
|         Bad syntax was causing core dump in Linux.
 | |
|         Fix for nasty gc bug
 | |
| 
 | |
|     R5RS changes:
 | |
|         R5RS requires numbers to be of equal value AND of the same type (ie. both
 | |
|         exact or inexact) in order to return #t from eqv?. R5RS compliance fix.
 | |
|         String output ports now conform to SRFI-6
 | |
| 
 | |
|     Other changes:
 | |
|         Drew Yao fixed buffer overflow problems in mk_sharp_const.
 | |
|         put OP_T0LVL in charge of reacting to EOF
 | |
|         file_push checks array bounds (patch from Ray Lehtiniemi)
 | |
|         Changed to always use snprintf (Patch due to Ramiro bsd1628)
 | |
|         Updated usage information using text from the Manual.txt file.
 | |
| 
 | |
| Version 1.38
 | |
|     Interim release until the rewrite, mostly incorporating modifications
 | |
|     from Kevin Cozens. Small addition for Cygwin in the makefile, and
 | |
|     modifications by Andrew Guenther for Apple platforms.
 | |
| 
 | |
| Version 1.37
 | |
|     Joe Buehler submitted reserve_cells.
 | |
| 
 | |
| Version 1.36
 | |
|     Joe Buehler fixed a patch in the allocator.
 | |
|     Alexander Shendi moved the comment handling in the scanner, which
 | |
|     fixed an obscure bug for which Mike E had provided a patch as well.
 | |
|     Kevin Cozens has submitted some fixes and modifications which have
 | |
|     not been incorporated yet in their entirety.
 | |
| 
 | |
| Version 1.35
 | |
|     Todd Showalter discovered that the number of free cells reported
 | |
|     after GC was incorrect, which could also cause unnecessary allocations.
 | |
| 
 | |
| Version 1.34
 | |
|     Long missing version. Lots of bugfixes have accumulated in my email, so
 | |
|     I had to start using them. In this version, Keenan Pepper has submitted
 | |
|     a bugfix for the string comparison library procedure, Wouter Boeke
 | |
|     modified some code that was casting to the wrong type and crashed on
 | |
|     some machines, "SheppardCo" submitted a replacement "modulo" code and
 | |
|     Scott Fenton submitted lots of corrections that shut up some compiler
 | |
|     warnings. Brian Maher submitted instructions on how to build on OS-X.
 | |
|     I have to dig deeper into my mailbox and find earlier emails, too.
 | |
| 
 | |
| Version 1.33
 | |
|     Charles Hayden fixed a nasty GC bug of the new stack frame, while in
 | |
|     the process of porting TinyScheme to C++. He also submitted other
 | |
|     changes, and other people also had comments or requests, but the GC
 | |
|     bug was so important that this version is put through the door to
 | |
|     correct it.
 | |
| 
 | |
| Version 1.32
 | |
|     Stephen Gildea put some quality time on TinyScheme again, and made
 | |
|     a whole lot of changes to the interpreter that made it noticeably
 | |
|     faster.
 | |
| 
 | |
| Version 1.31
 | |
|     Patches to the hastily-done version 1.30. Stephen Gildea fixed
 | |
|     some things done wrongly, and Richard Russo fixed the makefile
 | |
|     for building on Windows. Property lists (heritage from MiniScheme)
 | |
|     are now optional and have disappeared from the interface. They
 | |
|     should be considered as deprecated.
 | |
| 
 | |
| Version 1.30
 | |
|     After many months, I followed Preston Bannister's advice of
 | |
|     using macros and a single source text to keep the enums and the
 | |
|     dispatch table in sync, and I used his contributed "opdefines.h".
 | |
|     Timothy Downs contributed a helpful function, "scheme_call".
 | |
|     Stephen Gildea contributed new versions of the makefile and
 | |
|     practically all other sources. He created a built-in STRING-APPEND,
 | |
|     and fixed a lot of other bugs.
 | |
|     Ruhi Bloodworth reported fixes necessary for OS X and a small
 | |
|     bug in dynload.c.
 | |
| 
 | |
| Version 1.29
 | |
|     The previous version contained a lot of corrections, but there
 | |
|     were a lot more that still wait on a sheet of paper lost in a
 | |
|     carton someplace after my house move... Manuel Heras-Gilsanz
 | |
|     noticed this and resent his own contribution, which relies on
 | |
|     another bugfix that v.1.28 was missing: a problem with string
 | |
|     output, that this version fixes. I hope other people will take
 | |
|     the time to resend their contributions, if they didn't make it
 | |
|     to v.1.28.
 | |
| 
 | |
| Version 1.28
 | |
|     Many people have contacted me with bugfixes or remarks in
 | |
|     the three months I was inactive. A lot of them spotted that
 | |
|     scheme_deinit crashed while reporting gc results. They suggested
 | |
|     that sc->outport be set to NIL in scheme_deinit, which I did.
 | |
|     Dennis Taylor remarked that OP_VALUEPRINT reset sc->value instead
 | |
|     of preserving it. He submitted a modification which I adopted
 | |
|     partially. David Hovemeyer sent me many little changes, that you
 | |
|     will find in version 1.28, and Patrice Stoessel modified the
 | |
|     float reader to conform to R5RS.
 | |
| 
 | |
| Version 1.27
 | |
|     Version 1.27 is the successor of 1.25. Bug fixes only, but I had to
 | |
|     release them so that everybody can profit. 'Backchar' tried to write
 | |
|     back to the string, which obviously didn't work for const strings.
 | |
|     'Substring' didn't check for crossed start and end indices. Defines
 | |
|     changed to restore the ability to compile under MSVC.
 | |
| 
 | |
| Version 1.26
 | |
|     Version 1.26 was never released. I changed a lot of things, in fact
 | |
|     too much, even the garbage collector, and hell broke loose. I'll
 | |
|     try a more gradual approach next time.
 | |
| 
 | |
| Version 1.25
 | |
|     Types have been homogenized to be able to accommodate a different
 | |
|     representation. Plus, promises are no longer closures. Unfortunately,
 | |
|     I discovered that continuations and force/delay do not pass the SCM
 | |
|     test (and never did)... However, on the bright side, what little
 | |
|     modifications I did had a large impact on the footprint:
 | |
|     USE_NO_FEATURES now produces an object file of 63960 bytes on Linux!
 | |
| 
 | |
| Version 1.24
 | |
|     SCM tests now pass again after change in atom2str.
 | |
| 
 | |
| Version 1.23
 | |
|     Finally I managed to mess it up with my version control. Version
 | |
|     1.22 actually lacked some of the things I have been fixing in the
 | |
|     meantime. This should be considered as a complete replacement for
 | |
|     1.22.
 | |
| 
 | |
| Version 1.22
 | |
|     The new ports had a bug in LOAD. MK_CLOSURE is introduced.
 | |
|     Shawn Wagner inquired about string->number and number->string.
 | |
|     I added string->atom and atom->string and defined the number
 | |
|     functions from them. Doing that, I fixed WRITE applied to symbols
 | |
|     (it didn't quote them). Unfortunately, minimum build is now
 | |
|     slightly larger than 64k... I postpone action because Jason's idea
 | |
|     might solve it elegantly.
 | |
| 
 | |
| Version 1.21
 | |
|     Jason Felice submitted a radically different datatype representation
 | |
|     which he had implemented. While discussing its pros and cons, it
 | |
|     became apparent that the current implementation of ports suffered
 | |
|     from a grave fault: ports were not garbage-collected. I changed the
 | |
|     ports to be heap-allocated, which enabled the use of string ports
 | |
|     for loading. Jason also fixed errors in the garbage collection of
 | |
|     vectors. USE_VERBATIM is gone. "ssp_compiler.c" has a better solution
 | |
|     on HTML generation. A bug involving backslash notation in strings
 | |
|     has been fixed. '-c' flag now executes next argument as a stream of
 | |
|     Scheme commands. Foreign functions are now also heap allocated,
 | |
|     and scheme_define is used to define everything.
 | |
| 
 | |
| Version 1.20
 | |
|     Tracing has been added. The toplevel loop has been slightly
 | |
|     rearranged. Backquote reading for vector templates has been
 | |
|     sanitized. Symbol interning is now correct. Arithmetic functions
 | |
|     have been corrected. APPLY, MAP, FOR-EACH, numeric comparison
 | |
|     functions fixed. String reader/writer understands \xAA notation.
 | |
| 
 | |
| Version 1.19
 | |
|     Carriage Return now delimits identifiers. DOS-formatted Scheme files
 | |
|     can be used by Unix. Random number generator added to library.
 | |
|     Fixed some glitches of the new type-checking scheme. Fixed erroneous
 | |
|     (append '() 'a) behavior. Will continue with r4rstest.scm to
 | |
|     fix errors.
 | |
| 
 | |
| Version 1.18
 | |
|     The FFI has been extended. USE_VERBOSE_GC has gone. Anyone wanting
 | |
|     the same functionality can put (gcverbose #t) in init.scm.
 | |
|     print-width was removed, along with three corresponding op-codes.
 | |
|     Extended character constants with ASCII names were added.
 | |
|     mk_counted_string paves the way for full support of binary strings.
 | |
|     As much as possible of the type-checking chores were delegated
 | |
|     to the inner loop, thus reducing the code size to less than 4200 loc!
 | |
| 
 | |
| Version 1.17
 | |
|     Dynamically-loaded extensions are more fully integrated.
 | |
|     TinyScheme is now distributed under the BSD open-source license.
 | |
| 
 | |
| Version 1.16
 | |
|     Dynamically-loaded extensions introduced (USE_DL).
 | |
|     Santeri Paavolainen found a race condition: When a cons is executed,
 | |
|     and each of the two arguments is a constructing function,  GC could
 | |
|     happen before all arguments are evaluated and cons() is called, and
 | |
|     the evaluated arguments would all be reclaimed!
 | |
|     Fortunately, such a case was rare in the code, although it is
 | |
|     a pitfall in new code and code in foreign functions. Currently, only
 | |
|     one such case remains, when COLON_HOOK is defined.
 | |
| 
 | |
| Version 1.15
 | |
|     David Gould also contributed some changes that speed up operation.
 | |
|     Kirk Zurell fixed HASPROP.
 | |
|     The Garbage Collection didn't collect all the garbage...fixed.
 | |
| 
 | |
| Version 1.14
 | |
|     Unfortunately, after Andre fixed the GC it became obvious that the
 | |
|     algorithm was too slow... Fortunately, David Gould found a way to
 | |
|     speed it up.
 | |
| 
 | |
| Version 1.13
 | |
|     Silly bug involving division by zero resolved by Roland Kaufman.
 | |
|     Macintoch support from Shmulik Regev.
 | |
|     Float parser bug fixed by Alexander Shendi.
 | |
|     GC bug from Andru Luvisi.
 | |
| 
 | |
| Version 1.12
 | |
|     Cis* incorrectly called isalpha() instead of isascii()
 | |
|     Added USE_CHAR_CLASSIFIERS, USE_STRING_PORTS.
 | |
| 
 | |
| Version 1.11
 | |
|     BSDI defines isnumber... changed all similar functions to is_*
 | |
|     EXPT now has correct definition. Added FLOOR,CEILING,TRUNCATE
 | |
|     and ROUND, courtesy of Bengt Kleberg. Preprocessor symbols now
 | |
|     have values 1 or 0, and can be set as compiler defines (proposed
 | |
|     by Andy Ganor *months* ago). 'prompt' and 'InitFile' can now be
 | |
|     defined during compilation, too.
 | |
| 
 | |
| Version 1.10
 | |
|     Another bug when file ends with comment!
 | |
|     Added DEFINE-MACRO in init.scm, courtesy of Andy Gaynor.
 | |
| 
 | |
| Version 1.09
 | |
|     Removed bug when READ met EOF. lcm.
 | |
| 
 | |
| Version 1.08
 | |
|     quotient,remainder and modulo. gcd.
 | |
| 
 | |
| Version 1.07
 | |
|     '=>' in cond now exists
 | |
|     list? now checks for circularity
 | |
|     some reader bugs removed
 | |
|     Reader is more consistent wrt vectors
 | |
|     Quote and Quasiquote work with vectors
 | |
| 
 | |
| Version 1.06
 | |
|     #! is now skipped
 | |
|     generic-assoc bug removed
 | |
|     strings are now managed differently, hack.txt is removed
 | |
|     various delicate points fixed
 | |
| 
 | |
| Version 1.05
 | |
|     Support for scripts, *args*, "-1" option.
 | |
|     Various R5RS procedures.
 | |
|     *sharp-hook*
 | |
|     Handles unmatched parentheses.
 | |
|     New architecture for procedures.
 | |
| 
 | |
| Version 1.04
 | |
|     Added missing T_ATOM bits...
 | |
|     Added vectors
 | |
|     Free-list is sorted by address, since vectors need consecutive cells.
 | |
|     (quit <exitcode>) for use with scripts
 | |
| 
 | |
| Version 1.03 (26 Aug 1998):
 | |
|     Extended .h with useful functions for FFI
 | |
|     Library: with-input-* etc.
 | |
|     Finished R5RS I/O, added string ports.
 | |
| 
 | |
| Version 1.02 (25 Aug 1998):
 | |
|     First part of R5RS I/O.
 |