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. |