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