tinyscheme_genesi... 1 Change Log
tinyscheme_genesi... 2 ----------
tinyscheme_genesi... 3
tinyscheme_genesi... 4 Version 1.41
tinyscheme_genesi... 5 Bugs fixed:
tinyscheme_genesi... 6 #3020389 - Added makefile section for Mac OS X (SL)
tinyscheme_genesi... 7 #3286135 - Fixed num_mod routine which caused errors in use of modulo
tinyscheme_genesi... 8 #3290232 - Corrected version number shown on startup (GM)
tinyscheme_genesi... 9 #3394882 - Added missing #if in opdefines.h around get and put (DC)
tinyscheme_genesi... 10 #3395547 - Fix for the modulo procedure (DC)
tinyscheme_genesi... 11 #3400290 - Optimized append to make it an O(n) operation (DC)
tinyscheme_genesi... 12 #3493926 - Corrected flag used when building shared files on OSX (J)
tinyscheme_genesi... 13
tinyscheme_genesi... 14 R5RS related changes:
tinyscheme_genesi... 15 #2866196 - Parser does not handle delimiters correctly
tinyscheme_genesi... 16 #3395548 - Add a decimal point to inexact numbers in atom2str (DC)
tinyscheme_genesi... 17 #3399331 - Make min/max return inexact when any argument is inexact
tinyscheme_genesi... 18 #3399332 - Compatability fix for expt.
tinyscheme_genesi... 19 #3399335 - Optional radix for string->number and number->string (DC)
tinyscheme_genesi... 20 #3400202 - Append with one argument should not return a list (DC)
tinyscheme_genesi... 21 #3400284 - Compatability fix for integer?
tinyscheme_genesi... 22
tinyscheme_genesi... 23 Other changes:
tinyscheme_genesi... 24 - Added flags to makefile for MinGW/MSYS (TC)
tinyscheme_genesi... 25 - Moved variable declarations to avoid warnings with some compilers
tinyscheme_genesi... 26 - Don't print space after initial #( when printing vectors.
tinyscheme_genesi... 27 - Minor optimization for is_nonneg().
tinyscheme_genesi... 28 - No need to round integers in OP_ROUND (#3400284)
tinyscheme_genesi... 29 - Fixes to code that reports line number with error (RC)
tinyscheme_genesi... 30
tinyscheme_genesi... 31 Contributors:
tinyscheme_genesi... 32 Kevin Cozens, Gordon McNutt, Doug Currie, Sean Long, Tim Cas, Joey,
tinyscheme_genesi... 33 Richard Copley, and CMarinier.
tinyscheme_genesi... 34
tinyscheme_genesi... 35 Version 1.40
tinyscheme_genesi... 36 Bugs fixed:
tinyscheme_genesi... 37 #1964950 - Stop core dumps due to bad syntax in LET (and variants)
tinyscheme_genesi... 38 #2826594 - allow reverse to work on empty list (Tony Garnock-Jones)
tinyscheme_genesi... 39 Potential problem of arglist to foreign calls being wrongly GC'ed.
tinyscheme_genesi... 40 Fixed bug that read could loop forever (tehom).
tinyscheme_genesi... 41
tinyscheme_genesi... 42 API changes:
tinyscheme_genesi... 43 Exposed is_list and list_length.
tinyscheme_genesi... 44 Added scheme_register_foreign_func_list and declarations for it (tehom)
tinyscheme_genesi... 45 Defined *compile-hook* (tehom)
tinyscheme_genesi... 46
tinyscheme_genesi... 47 Other changes:
tinyscheme_genesi... 48 Updated is_list and list_length to handle circular lists.
tinyscheme_genesi... 49 Nested calling thru C has been made now safer (tehom)
tinyscheme_genesi... 50 Peter Michaux cleaned up port_rep_from_file
tinyscheme_genesi... 51 Added unwind-protect (tehom)
tinyscheme_genesi... 52 Some cleanups to in/outport and Eval_Cycle by Peter Michaux
tinyscheme_genesi... 53 Report error line number (Mostly by Sanel Zukan, back-compatibility by Tehom)
tinyscheme_genesi... 54
tinyscheme_genesi... 55 Contributors:
tinyscheme_genesi... 56 Kevin Cozens, Dimitrios Souflis, Tom Breton, Peter Michaux, Sanel Zukan,
tinyscheme_genesi... 57 and Tony Garnock-Jones.
tinyscheme_genesi... 58
tinyscheme_genesi... 59 Version 1.39
tinyscheme_genesi... 60 Bugs fixed:
tinyscheme_genesi... 61 Fix for the load bug
tinyscheme_genesi... 62 Fixed parsing of octal coded characters. Fixes bug #1818018.
tinyscheme_genesi... 63 Added tests for when mk_vector is out of memory. Can't rely on sc->sink.
tinyscheme_genesi... 64 Fix for bug #1794369
tinyscheme_genesi... 65 Finished feature-request 1599947: scheme_apply0 etc return values.
tinyscheme_genesi... 66 Partly provided feature-request 1599947: Expose list_length, eqv, etc
tinyscheme_genesi... 67 Provided feature-request 1599945, Scheme->C->Scheme calling.
tinyscheme_genesi... 68 Fix for bug 1593861 (behavior of is_integer)
tinyscheme_genesi... 69 Fix for bug 1589711
tinyscheme_genesi... 70 Error checking of binding spec syntax in LET and LETREC. The bad syntax
tinyscheme_genesi... 71 was causing a segmentation fault in Linux. Complete fixes for bug #1817986.
tinyscheme_genesi... 72 Error checking of binding spec syntax in LET*
tinyscheme_genesi... 73 Bad syntax was causing core dump in Linux.
tinyscheme_genesi... 74 Fix for nasty gc bug
tinyscheme_genesi... 75
tinyscheme_genesi... 76 R5RS changes:
tinyscheme_genesi... 77 R5RS requires numbers to be of equal value AND of the same type (ie. both
tinyscheme_genesi... 78 exact or inexact) in order to return #t from eqv?. R5RS compliance fix.
tinyscheme_genesi... 79 String output ports now conform to SRFI-6
tinyscheme_genesi... 80
tinyscheme_genesi... 81 Other changes:
tinyscheme_genesi... 82 Drew Yao fixed buffer overflow problems in mk_sharp_const.
tinyscheme_genesi... 83 put OP_T0LVL in charge of reacting to EOF
tinyscheme_genesi... 84 file_push checks array bounds (patch from Ray Lehtiniemi)
tinyscheme_genesi... 85 Changed to always use snprintf (Patch due to Ramiro bsd1628)
tinyscheme_genesi... 86 Updated usage information using text from the Manual.txt file.
tinyscheme_genesi... 87
tinyscheme_genesi... 88 Version 1.38
tinyscheme_genesi... 89 Interim release until the rewrite, mostly incorporating modifications
tinyscheme_genesi... 90 from Kevin Cozens. Small addition for Cygwin in the makefile, and
tinyscheme_genesi... 91 modifications by Andrew Guenther for Apple platforms.
tinyscheme_genesi... 92
tinyscheme_genesi... 93 Version 1.37
tinyscheme_genesi... 94 Joe Buehler submitted reserve_cells.
tinyscheme_genesi... 95
tinyscheme_genesi... 96 Version 1.36
tinyscheme_genesi... 97 Joe Buehler fixed a patch in the allocator.
tinyscheme_genesi... 98 Alexander Shendi moved the comment handling in the scanner, which
tinyscheme_genesi... 99 fixed an obscure bug for which Mike E had provided a patch as well.
tinyscheme_genesi... 100 Kevin Cozens has submitted some fixes and modifications which have
tinyscheme_genesi... 101 not been incorporated yet in their entirety.
tinyscheme_genesi... 102
tinyscheme_genesi... 103 Version 1.35
tinyscheme_genesi... 104 Todd Showalter discovered that the number of free cells reported
tinyscheme_genesi... 105 after GC was incorrect, which could also cause unnecessary allocations.
tinyscheme_genesi... 106
tinyscheme_genesi... 107 Version 1.34
tinyscheme_genesi... 108 Long missing version. Lots of bugfixes have accumulated in my email, so
tinyscheme_genesi... 109 I had to start using them. In this version, Keenan Pepper has submitted
tinyscheme_genesi... 110 a bugfix for the string comparison library procedure, Wouter Boeke
tinyscheme_genesi... 111 modified some code that was casting to the wrong type and crashed on
tinyscheme_genesi... 112 some machines, "SheppardCo" submitted a replacement "modulo" code and
tinyscheme_genesi... 113 Scott Fenton submitted lots of corrections that shut up some compiler
tinyscheme_genesi... 114 warnings. Brian Maher submitted instructions on how to build on OS-X.
tinyscheme_genesi... 115 I have to dig deeper into my mailbox and find earlier emails, too.
tinyscheme_genesi... 116
tinyscheme_genesi... 117 Version 1.33
tinyscheme_genesi... 118 Charles Hayden fixed a nasty GC bug of the new stack frame, while in
tinyscheme_genesi... 119 the process of porting TinyScheme to C++. He also submitted other
tinyscheme_genesi... 120 changes, and other people also had comments or requests, but the GC
tinyscheme_genesi... 121 bug was so important that this version is put through the door to
tinyscheme_genesi... 122 correct it.
tinyscheme_genesi... 123
tinyscheme_genesi... 124 Version 1.32
tinyscheme_genesi... 125 Stephen Gildea put some quality time on TinyScheme again, and made
tinyscheme_genesi... 126 a whole lot of changes to the interpreter that made it noticeably
tinyscheme_genesi... 127 faster.
tinyscheme_genesi... 128
tinyscheme_genesi... 129 Version 1.31
tinyscheme_genesi... 130 Patches to the hastily-done version 1.30. Stephen Gildea fixed
tinyscheme_genesi... 131 some things done wrongly, and Richard Russo fixed the makefile
tinyscheme_genesi... 132 for building on Windows. Property lists (heritage from MiniScheme)
tinyscheme_genesi... 133 are now optional and have dissappeared from the interface. They
tinyscheme_genesi... 134 should be considered as deprecated.
tinyscheme_genesi... 135
tinyscheme_genesi... 136 Version 1.30
tinyscheme_genesi... 137 After many months, I followed Preston Bannister's advice of
tinyscheme_genesi... 138 using macros and a single source text to keep the enums and the
tinyscheme_genesi... 139 dispatch table in sync, and I used his contributed "opdefines.h".
tinyscheme_genesi... 140 Timothy Downs contributed a helpful function, "scheme_call".
tinyscheme_genesi... 141 Stephen Gildea contributed new versions of the makefile and
tinyscheme_genesi... 142 practically all other sources. He created a built-in STRING-APPEND,
tinyscheme_genesi... 143 and fixed a lot of other bugs.
tinyscheme_genesi... 144 Ruhi Bloodworth reported fixes necessary for OS X and a small
tinyscheme_genesi... 145 bug in dynload.c.
tinyscheme_genesi... 146
tinyscheme_genesi... 147 Version 1.29
tinyscheme_genesi... 148 The previous version contained a lot of corrections, but there
tinyscheme_genesi... 149 were a lot more that still wait on a sheet of paper lost in a
tinyscheme_genesi... 150 carton someplace after my house move... Manuel Heras-Gilsanz
tinyscheme_genesi... 151 noticed this and resent his own contribution, which relies on
tinyscheme_genesi... 152 another bugfix that v.1.28 was missing: a problem with string
tinyscheme_genesi... 153 output, that this version fixes. I hope other people will take
tinyscheme_genesi... 154 the time to resend their contributions, if they didn't make it
tinyscheme_genesi... 155 to v.1.28.
tinyscheme_genesi... 156
tinyscheme_genesi... 157 Version 1.28
tinyscheme_genesi... 158 Many people have contacted me with bugfixes or remarks in
tinyscheme_genesi... 159 the three months I was inactive. A lot of them spotted that
tinyscheme_genesi... 160 scheme_deinit crashed while reporting gc results. They suggested
tinyscheme_genesi... 161 that sc->outport be set to NIL in scheme_deinit, which I did.
tinyscheme_genesi... 162 Dennis Taylor remarked that OP_VALUEPRINT reset sc->value instead
tinyscheme_genesi... 163 of preserving it. He submitted a modification which I adopted
tinyscheme_genesi... 164 partially. David Hovemeyer sent me many little changes, that you
tinyscheme_genesi... 165 will find in version 1.28, and Partice Stoessel modified the
tinyscheme_genesi... 166 float reader to conform to R5RS.
tinyscheme_genesi... 167
tinyscheme_genesi... 168 Version 1.27
tinyscheme_genesi... 169 Version 1.27 is the successor of 1.25. Bug fixes only, but I had to
tinyscheme_genesi... 170 release them so that everybody can profit. 'Backchar' tried to write
tinyscheme_genesi... 171 back to the string, which obviously didn't work for const strings.
tinyscheme_genesi... 172 'Substring' didn't check for crossed start and end indices. Defines
tinyscheme_genesi... 173 changed to restore the ability to compile under MSVC.
tinyscheme_genesi... 174
tinyscheme_genesi... 175 Version 1.26
tinyscheme_genesi... 176 Version 1.26 was never released. I changed a lot of things, in fact
tinyscheme_genesi... 177 too much, even the garbage collector, and hell broke loose. I'll
tinyscheme_genesi... 178 try a more gradual approach next time.
tinyscheme_genesi... 179
tinyscheme_genesi... 180 Version 1.25
tinyscheme_genesi... 181 Types have been homogenized to be able to accommodate a different
tinyscheme_genesi... 182 representation. Plus, promises are no longer closures. Unfortunately,
tinyscheme_genesi... 183 I discovered that continuations and force/delay do not pass the SCM
tinyscheme_genesi... 184 test (and never did)... However, on the bright side, what little
tinyscheme_genesi... 185 modifications I did had a large impact on the footprint:
tinyscheme_genesi... 186 USE_NO_FEATURES now produces an object file of 63960 bytes on Linux!
tinyscheme_genesi... 187
tinyscheme_genesi... 188 Version 1.24
tinyscheme_genesi... 189 SCM tests now pass again after change in atom2str.
tinyscheme_genesi... 190
tinyscheme_genesi... 191 Version 1.23
tinyscheme_genesi... 192 Finally I managed to mess it up with my version control. Version
tinyscheme_genesi... 193 1.22 actually lacked some of the things I have been fixing in the
tinyscheme_genesi... 194 meantime. This should be considered as a complete replacement for
tinyscheme_genesi... 195 1.22.
tinyscheme_genesi... 196
tinyscheme_genesi... 197 Version 1.22
tinyscheme_genesi... 198 The new ports had a bug in LOAD. MK_CLOSURE is introduced.
tinyscheme_genesi... 199 Shawn Wagner inquired about string->number and number->string.
tinyscheme_genesi... 200 I added string->atom and atom->string and defined the number
tinyscheme_genesi... 201 functions from them. Doing that, I fixed WRITE applied to symbols
tinyscheme_genesi... 202 (it didn't quote them). Unfortunately, minimum build is now
tinyscheme_genesi... 203 slightly larger than 64k... I postpone action because Jason's idea
tinyscheme_genesi... 204 might solve it elegantly.
tinyscheme_genesi... 205
tinyscheme_genesi... 206 Version 1.21
tinyscheme_genesi... 207 Jason Felice submitted a radically different datatype representation
tinyscheme_genesi... 208 which he had implemented. While discussing its pros and cons, it
tinyscheme_genesi... 209 became apparent that the current implementation of ports suffered
tinyscheme_genesi... 210 from a grave fault: ports were not garbage-collected. I changed the
tinyscheme_genesi... 211 ports to be heap-allocated, which enabled the use of string ports
tinyscheme_genesi... 212 for loading. Jason also fixed errors in the garbage collection of
tinyscheme_genesi... 213 vectors. USE_VERBATIM is gone. "ssp_compiler.c" has a better solution
tinyscheme_genesi... 214 on HTML generation. A bug involving backslash notation in strings
tinyscheme_genesi... 215 has been fixed. '-c' flag now executes next argument as a stream of
tinyscheme_genesi... 216 Scheme commands. Foreign functions are now also heap allocated,
tinyscheme_genesi... 217 and scheme_define is used to define everything.
tinyscheme_genesi... 218
tinyscheme_genesi... 219 Version 1.20
tinyscheme_genesi... 220 Tracing has been added. The toplevel loop has been slightly
tinyscheme_genesi... 221 rearranged. Backquote reading for vector templates has been
tinyscheme_genesi... 222 sanitized. Symbol interning is now correct. Arithmetic functions
tinyscheme_genesi... 223 have been corrected. APPLY, MAP, FOR-EACH, numeric comparison
tinyscheme_genesi... 224 functions fixed. String reader/writer understands \xAA notation.
tinyscheme_genesi... 225
tinyscheme_genesi... 226 Version 1.19
tinyscheme_genesi... 227 Carriage Return now delimits identifiers. DOS-formatted Scheme files
tinyscheme_genesi... 228 can be used by Unix. Random number generator added to library.
tinyscheme_genesi... 229 Fixed some glitches of the new type-checking scheme. Fixed erroneous
tinyscheme_genesi... 230 (append '() 'a) behavior. Will continue with r4rstest.scm to
tinyscheme_genesi... 231 fix errors.
tinyscheme_genesi... 232
tinyscheme_genesi... 233 Version 1.18
tinyscheme_genesi... 234 The FFI has been extended. USE_VERBOSE_GC has gone. Anyone wanting
tinyscheme_genesi... 235 the same functionality can put (gcverbose #t) in init.scm.
tinyscheme_genesi... 236 print-width was removed, along with three corresponding op-codes.
tinyscheme_genesi... 237 Extended character constants with ASCII names were added.
tinyscheme_genesi... 238 mk_counted_string paves the way for full support of binary strings.
tinyscheme_genesi... 239 As much as possible of the type-checking chores were delegated
tinyscheme_genesi... 240 to the inner loop, thus reducing the code size to less than 4200 loc!
tinyscheme_genesi... 241
tinyscheme_genesi... 242 Version 1.17
tinyscheme_genesi... 243 Dynamically-loaded extensions are more fully integrated.
tinyscheme_genesi... 244 TinyScheme is now distributed under the BSD open-source license.
tinyscheme_genesi... 245
tinyscheme_genesi... 246 Version 1.16
tinyscheme_genesi... 247 Dynamically-loaded extensions introduced (USE_DL).
tinyscheme_genesi... 248 Santeri Paavolainen found a race condition: When a cons is executed,
tinyscheme_genesi... 249 and each of the two arguments is a constructing function, GC could
tinyscheme_genesi... 250 happen before all arguments are evaluated and cons() is called, and
tinyscheme_genesi... 251 the evaluated arguments would all be reclaimed!
tinyscheme_genesi... 252 Fortunately, such a case was rare in the code, although it is
tinyscheme_genesi... 253 a pitfall in new code and code in foreign functions. Currently, only
tinyscheme_genesi... 254 one such case remains, when COLON_HOOK is defined.
tinyscheme_genesi... 255
tinyscheme_genesi... 256 Version 1.15
tinyscheme_genesi... 257 David Gould also contributed some changes that speed up operation.
tinyscheme_genesi... 258 Kirk Zurell fixed HASPROP.
tinyscheme_genesi... 259 The Garbage Collection didn't collect all the garbage...fixed.
tinyscheme_genesi... 260
tinyscheme_genesi... 261 Version 1.14
tinyscheme_genesi... 262 Unfortunately, after Andre fixed the GC it became obvious that the
tinyscheme_genesi... 263 algorithm was too slow... Fortunately, David Gould found a way to
tinyscheme_genesi... 264 speed it up.
tinyscheme_genesi... 265
tinyscheme_genesi... 266 Version 1.13
tinyscheme_genesi... 267 Silly bug involving division by zero resolved by Roland Kaufman.
tinyscheme_genesi... 268 Macintoch support from Shmulik Regev.
tinyscheme_genesi... 269 Float parser bug fixed by Alexander Shendi.
tinyscheme_genesi... 270 GC bug from Andru Luvisi.
tinyscheme_genesi... 271
tinyscheme_genesi... 272 Version 1.12
tinyscheme_genesi... 273 Cis* incorrectly called isalpha() instead of isascii()
tinyscheme_genesi... 274 Added USE_CHAR_CLASSIFIERS, USE_STRING_PORTS.
tinyscheme_genesi... 275
tinyscheme_genesi... 276 Version 1.11
tinyscheme_genesi... 277 BSDI defines isnumber... changed all similar functions to is_*
tinyscheme_genesi... 278 EXPT now has correct definition. Added FLOOR,CEILING,TRUNCATE
tinyscheme_genesi... 279 and ROUND, courtesy of Bengt Kleberg. Preprocessor symbols now
tinyscheme_genesi... 280 have values 1 or 0, and can be set as compiler defines (proposed
tinyscheme_genesi... 281 by Andy Ganor *months* ago). 'prompt' and 'InitFile' can now be
tinyscheme_genesi... 282 defined during compilation, too.
tinyscheme_genesi... 283
tinyscheme_genesi... 284 Version 1.10
tinyscheme_genesi... 285 Another bug when file ends with comment!
tinyscheme_genesi... 286 Added DEFINE-MACRO in init.scm, courtesy of Andy Gaynor.
tinyscheme_genesi... 287
tinyscheme_genesi... 288 Version 1.09
tinyscheme_genesi... 289 Removed bug when READ met EOF. lcm.
tinyscheme_genesi... 290
tinyscheme_genesi... 291 Version 1.08
tinyscheme_genesi... 292 quotient,remainder and modulo. gcd.
tinyscheme_genesi... 293
tinyscheme_genesi... 294 Version 1.07
tinyscheme_genesi... 295 '=>' in cond now exists
tinyscheme_genesi... 296 list? now checks for circularity
tinyscheme_genesi... 297 some reader bugs removed
tinyscheme_genesi... 298 Reader is more consistent wrt vectors
tinyscheme_genesi... 299 Quote and Quasiquote work with vectors
tinyscheme_genesi... 300
tinyscheme_genesi... 301 Version 1.06
tinyscheme_genesi... 302 #! is now skipped
tinyscheme_genesi... 303 generic-assoc bug removed
tinyscheme_genesi... 304 strings are now managed differently, hack.txt is removed
tinyscheme_genesi... 305 various delicate points fixed
tinyscheme_genesi... 306
tinyscheme_genesi... 307 Version 1.05
tinyscheme_genesi... 308 Support for scripts, *args*, "-1" option.
tinyscheme_genesi... 309 Various R5RS procedures.
tinyscheme_genesi... 310 *sharp-hook*
tinyscheme_genesi... 311 Handles unmatched parentheses.
tinyscheme_genesi... 312 New architecture for procedures.
tinyscheme_genesi... 313
tinyscheme_genesi... 314 Version 1.04
tinyscheme_genesi... 315 Added missing T_ATOM bits...
tinyscheme_genesi... 316 Added vectors
tinyscheme_genesi... 317 Free-list is sorted by address, since vectors need consecutive cells.
tinyscheme_genesi... 318 (quit <exitcode>) for use with scripts
tinyscheme_genesi... 319
tinyscheme_genesi... 320 Version 1.03 (26 Aug 1998):
tinyscheme_genesi... 321 Extended .h with useful functions for FFI
tinyscheme_genesi... 322 Library: with-input-* etc.
tinyscheme_genesi... 323 Finished R5RS I/O, added string ports.
tinyscheme_genesi... 324
tinyscheme_genesi... 325 Version 1.02 (25 Aug 1998):
tinyscheme_genesi... 326 First part of R5RS I/O.