You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
454 lines
20 KiB
Plaintext
454 lines
20 KiB
Plaintext
Version 51, ??, 1997
|
|
Changed load/use-compiled: searches for .zo files in
|
|
a "compiled/" subdirectory, and searches for .so/.dll
|
|
files in (build-path "compiled" (system-library-subpath))
|
|
Changed load and current-load/default-load-handler: `load'
|
|
now sets the current-load-relative-directory, so a load
|
|
handler does not need to set this parameter
|
|
Added current-load-extension (load-extension handler)
|
|
Added read-image-from-file procedure
|
|
Unix images: removed constraint against using stdio before
|
|
dumps
|
|
Unix: fixed file-or-directory-permissions for group-based
|
|
permissions when the group is not the current group (but
|
|
still includes the user)
|
|
Windows: fixed directory-exists? et. al for UNC paths
|
|
Added local-expand-body-expression
|
|
Added link-exists?
|
|
Added copy-file
|
|
Added path-list-string->path-list
|
|
Added collection-path
|
|
Changed initial setting of current-library-collection-paths
|
|
Changed display for symbols containg special characters:
|
|
the special characters are not escaped (or bar-quoted)
|
|
Changed write to use the value of (read-accept-bar-quote)
|
|
for printing symbols containing special charaters; if
|
|
bar qute reading is off, it is turned off for printing, too.
|
|
Fixed unit/sig: correctly handles syntax where defintions in
|
|
the unit shadow syntactic forms
|
|
Fixed round of exact rational n/d in the case when (odd? d)
|
|
and (= (remainder n d) (quotient d 2))
|
|
Extended exp, sin, cos, tan, log, asin, acons, atan to
|
|
complex numbers; changed sqrt to choose the root with a
|
|
positive real part
|
|
Removed rectangular <, >, <=, >= for complex numbers
|
|
Changed storage of loaded-library table from built into the
|
|
`require-library' procedure to built into the current
|
|
namespace
|
|
Added require-relative-library
|
|
Fixed error messages for +, -, etc. to show all arguments
|
|
Changed MzLib's pconver.ss libraries; the print-convert-hook@
|
|
unit was removed (along with the pchookr.ss library) and
|
|
replaced with parameters defined in pconverr.ss for similar
|
|
(more powerful) hooks.
|
|
Fixed interfaces for compiled-file (.zo) loading across
|
|
MzScheme startups
|
|
Unused interned symbols are now garbage-collected
|
|
Added support for single-precision floating points (turned
|
|
off in default compilation)
|
|
Changed read-eval-print-loop, removing its cooperation with
|
|
the default error escape handler; instead, it installs its
|
|
own error escape handler
|
|
Improved the support for dynamic extensions that gives an
|
|
error if an extension is already loaded, or calls a
|
|
reloading function provided by the extension
|
|
|
|
Version 50, August 26, 1997
|
|
Added compile-time inferrence of names for closures, classes,
|
|
and units to improve error messages
|
|
Added inferred-name
|
|
Added file-size
|
|
Added write-image-to-file for creating heap images of a
|
|
MzScheme program
|
|
Fixed reader to disallow . in vectors: #(1 . 2) or #(1 . (3))
|
|
Removed global-defined-signature
|
|
Fixed string->number: explicit radix in string can override
|
|
radix argument
|
|
Bug fixed in call/cc related to dynamic-wind (see !!! in
|
|
tests/basic.ss)
|
|
Fixed weak hash table's accumulation of hashing buckets
|
|
Added 'empty flag for make-namespace
|
|
Added two-argument form for global-defined-value
|
|
Added system-library-subpath
|
|
Changed standalone mzscheme to return -1 if a loaded file
|
|
or evaluated expression returns an error without the rep
|
|
Refined error messages
|
|
|
|
Version 49, May 31, 1997
|
|
Multiple superclass inheritance is no longer supported
|
|
Added (Java-ish) interfaces to object system
|
|
class* syntax changed to accomodate interfaces and removed
|
|
multiple superclasses
|
|
uq-ivar always takes two arguments; class is not a legal argument
|
|
uq-make-generic accepts a class or an interface
|
|
Object system exceptions changed
|
|
Added custodian system
|
|
Embedded define conventions changed: "regular" defines are only
|
|
allowed in begin expressions and the branches of an if;
|
|
embedded defines can appear in a begin0 expression, but not
|
|
in the first position; defines must all appear at the beginning
|
|
of the block
|
|
Contents of a begin expression as an immediate unit or unit/sig
|
|
expression are promoted to immediate expressions
|
|
case supports only R4RS syntax; a single non-list "datum" is
|
|
no longer allowed
|
|
Removed catch; use let/ec instead
|
|
Removed vector-append
|
|
Removed load-with-cd (use load/cd)
|
|
Added load/use-compiled
|
|
Added current-load-directory parameter (set by the default load
|
|
handler while loading a file) and load-relative (uses the
|
|
parameter for loading a relative filename)
|
|
unit/sig's include form is like load-relative instead of load/cd
|
|
require-library uses load or load/use-compiled instead of load/cd
|
|
Windows: expand-path does not put a drive on a driveless path
|
|
anymore; use path->complete-path instead
|
|
compile-file moved out of MzScheme into MzLib "compile.ss"; now
|
|
takes a single flag list argument instead of two final Booleans
|
|
current-base-parameterization parameter replaced with
|
|
parameterization-branch-handler parameter
|
|
Parameterizations support sharing (in addition to defaulting);
|
|
see docs for make-parameterization-with-sharing
|
|
Added print, port print handlers, and a global port print handler
|
|
Changed the default print handler to use print instead of write
|
|
Fixed bug in ports returned by make-pipe
|
|
Fixed bug in dynamic-wind; continuation jumps into the pre-thunk
|
|
had a non-intuitive semantics; the correct semantics is now
|
|
implemented and documented (also for jumps with the post-thunk)
|
|
Changed time-apply to always return a list as its first return
|
|
value; time form can return multiple values for its expressions
|
|
format, fprintf, and printf are case-insensitive for ~ directives;
|
|
added ~v, ~e, ~<whitespace>
|
|
Added semaphore-wait/enable-break
|
|
Added thread-running? and thread-wait
|
|
Fixed bug in threads and timed sleeping
|
|
Fixed bug in breaking a blocked thread
|
|
Fixed bug in continuations returning multiple values through a
|
|
dynamic-wind (multiple return values could be corrupted)
|
|
Fixed arity reporting for continuations
|
|
Fixed Windows system* and read from console stdin and process*
|
|
ports: MzScheme threads no longer blocked; ctl-c breaking works
|
|
in stand-alone console MzScheme
|
|
process and process* now return a list of 5 values (instead of 4)
|
|
map, for-each, andmap, and ormap raise exn:application:map-arity
|
|
when the procedure's arity does not match the number of supplied
|
|
lists; note that (map (lambda () 10) null) now signals an error
|
|
list-ref and list-tail accept arbitrarily large indices
|
|
Type for indices changed: must be an exact integer (matches R4RS better)
|
|
affects make-vector, vector-ref, vector-set!, make-string, string-ref,
|
|
string-set!, substring, and struct-ref
|
|
make-namespace's '[no-]set!-undefined and '[no-]auto-else flags
|
|
removed; replaced with two new parameters:
|
|
compile-allow-set!-undefined and compile-allow-cond-fallthrough
|
|
Fixed in units: (define x y) (define y 0) x => #<undefined> instead of
|
|
#<void>
|
|
exn:struct's super-type field renamed struct-type for consistency
|
|
exn:i/o:filesystem:filename split into exn:i/o:filesystem:path
|
|
and exn:i/o:filesystem:file; username exception moved under path
|
|
Unix: system no longer blocks other MzScheme threads
|
|
Unix: processes created by process and process* are not zombies forever,
|
|
anymore. (The SIGCHLD signal is handled appropriately.)
|
|
MacOS: dynamic extension suopport via CFM (PPC only in the distributed
|
|
applications from PLT)
|
|
Windows: removed attempted fix for thread-blocking problem
|
|
when reading stdin from console
|
|
Fixed auto-flush of stdout for read of stdin
|
|
Fixed <, >, <=, >= for certain exact rational number comparisons
|
|
Fixed inexact->exact for negative inexact numbers (fractional part
|
|
was added to the resulting number with the wrong sign)
|
|
Fixed rational? to answer #t for inexact numbers
|
|
Fixed odd?, even?, and trig functions for +inf.0 and -inf.0
|
|
Fixed handling of +nan.0 by many math routines; fixed +nan.0 for
|
|
everything under Windows
|
|
Added R4RS rationalize
|
|
compound-unit/sig export var clause syntax now matches documentation
|
|
Added require-library-use-zo
|
|
Moved cons? and last-pair into functio.ss instead of compat.ss
|
|
Library system generalized to supoprt multiple collections;
|
|
current-library-path replaced with current-library-collection-path
|
|
require-library now returns the result of the loaded library
|
|
Removed load-recent from MzLib's file.ss; use load/use-compiled
|
|
instead
|
|
Added reference-library, "refer.ss" [core], "XXXr.ss" MzLib libraries
|
|
Added build-string, build-vector, build-list, loop-until to MzLib's
|
|
functio.ss
|
|
Added thread.ss MzLib library [core]
|
|
Added inflate.ss MzLib library
|
|
Moved synrule.ss out of core
|
|
Fixed MzLib's stringu.ss to not use macro.ss
|
|
Updated MzLib's spidey.ss, added it to core
|
|
Removed define-some, define-virtual-struct, define-struct-tree from
|
|
MzLib's macro.ss
|
|
begin-expansion-time returns the value of the last expression
|
|
set-thread-weight! replaced with 2-argument thread-weight
|
|
Inside MzScheme: changed class/object toolbox, added custodian
|
|
toolbox
|
|
Upgraded to gc 11
|
|
|
|
Version 48: Skipped to avoid confusion with Scheme48
|
|
|
|
Version 47, January 11, 1997
|
|
WARNING: multiple inhertance is going away in the next version or so
|
|
Added will executors
|
|
pretty-print-print-hook and pretty-print-size-hook now take
|
|
three arguments: value display? port
|
|
file-position can return the current position for any port
|
|
Fixed errors reading floating-point constants due to system
|
|
library bugs:
|
|
Linux: strtod("0e...", ...) quits looking after "0"
|
|
SunOS/Solaris: strtod(".3e2666666666") returned 0.0
|
|
HP/UX: strtod(".3e2666666666") fails
|
|
Windows: fixed thread-blocking problem for reading stdin from console
|
|
Insize MzScheme: when working with "fd_set" values, use
|
|
MZ_FD_ZERO, MZ_FD_SET, MZ_FD_CLR, MZ_FD_ISSET; use
|
|
scheme_get_fdset() to get the second or third fd_set in an array;
|
|
routines for thread-blocking are now documented in "Inside MzScheme"
|
|
|
|
Version 46, December 5, 1996
|
|
unit/sig macros moved out of MzLib and into core MzScheme;
|
|
(require-library "unitsig.ss") is obsolete, but still supported
|
|
as a no-op
|
|
Unit signature matching is now position-independent, and the error
|
|
messages are better
|
|
Removed obsolete install-unit-with-signature
|
|
(begin) or (begin0) is now a syntax error
|
|
Changed class* syntax so that an explicit name for `this' is provided
|
|
MzLib's class-asi* changed to class*-asi, while adding new `this' id
|
|
Prettier(?) printing for prims like >: #<|primitive:>|>
|
|
invoke-open-unit w/o path/prefix is now the same as #f instead of ();
|
|
the path form will probably be phased out in a future release
|
|
quasiquote syntax changed slightly
|
|
stdout/stderr are not auto-flushed for read-char or peek-char on stdin
|
|
(still flushed by read and read-line)
|
|
Added port-display-handler and port-write-handler
|
|
|
|
Version 45, November 12, 1996
|
|
Multiple return values are agressively supported
|
|
IMPORTANT: let-values is now analogous to let; the old
|
|
let-values is now let*-values
|
|
let-values, letrec-values, define-values, and begin0 are primitive
|
|
define-struct and let-struct expand to new struct form
|
|
Added thread-savy parameterization system; namespace system changed
|
|
pipe changed to make-pipe, returns 2 values
|
|
Case-sensitivity for the reader is a settable parameter
|
|
Reading [] and {} as parens is a settable parameter
|
|
class* syntax extended to allow local renaming of public ivars
|
|
delay/force support multiple values
|
|
else and => in cond and else are now "scoped"
|
|
normalize-path from MzLib signals an error for bad paths
|
|
Windows: build-path can join a drive to a (driveless) absolute path
|
|
and //machine/disk drive names are supported; also fixed
|
|
file-system-root-list
|
|
Added complete-path? and current-drive (for Windows)
|
|
Fixed (begin (values ...) ...) and (begin0 (values ...) ...)
|
|
Fixed comparisons between inexact and exact when the
|
|
exact to inexact conversion results in overflow or underflow,
|
|
and fixed (exact->inexact (/ X Y)) and (/ +inf.0 X), etc. when
|
|
X & Y are larger than the largest floating-point, fixed modulo,
|
|
remainder, quotient for infinities
|
|
Fixed TCP problems (Unix, Windows) and implemented for MacOS
|
|
Fixed dynamic-loading to always search from current directory
|
|
Fixed real process idling for a timed sleep
|
|
Fixed file read/write exceptions (write exceptions now raised)
|
|
Fixed quasiquote bug with ,@ and unquoting depth
|
|
Fixed filesystem-root-list for Windows
|
|
Fixed dynamic-wind when a continuation is invoked from the post-thunk
|
|
Fixed continuations for re-entry of a continuation that is mulitply-invoked
|
|
Fixed string->number with leading spaces; e.g., (string->number " 1")
|
|
invoke-unit import variable restriction removed (locals are allowed)
|
|
(case-lambda) is now legal
|
|
\ escapes & and \ in regexp-replace replacement string
|
|
Added regexp-replace*
|
|
Added port-read-handler
|
|
Inside MzScheme: Changed use of scheme_sleep
|
|
Inside MzScheme: Changed primitive unit init func arguments
|
|
Inside MzScheme: Changed primitive accessing of unit boxes and environment boxes
|
|
Inside MzScheme: Revoked syntax extensibility
|
|
Reimplemented the core interpreter (chained closures -> flattened)
|
|
|
|
Version 44, September 9, 1996
|
|
load, load/cd return value of last loaded expression
|
|
scheme_load returns Scheme_Object* or NULL
|
|
Built-in TCP support (Not MacOS, yet)
|
|
unit clauses macro-expanded before checking `define' keywords
|
|
Better dynamic extension handling and compilation support
|
|
Fixed read blocking threads in FreeBSD
|
|
Extensions' scheme_initialize must return Scheme_Object*
|
|
scheme_sleep has internal default for basic sleeping, installed by
|
|
scheme_basic_env if scheme_sleep is still NULL
|
|
Unix/Winsock: fds arg for needs_wakeup and scheme_sleep expanded
|
|
for writes and exceptions
|
|
Fixed quotient for inexact numbers
|
|
Fixed bug comparing a bignum rational with a fixnum rational
|
|
Fixed startup crash when PATH env variable is slightly bad
|
|
Sped up thread switching for Mac
|
|
Sped up thread switching for most Unix for a small number of threads
|
|
Upgraded to gc 11alpha3
|
|
|
|
Version 43 re-released August 12, 1996 with libguile
|
|
|
|
Version 43, August 9, 1996
|
|
"functor" -> "unit"
|
|
signed units added to and used by mzlib (sigfunctors gone)
|
|
Made .zo files smaller and faster to load
|
|
Use 64-bit fixnums for Alpha
|
|
system, system*, process*, and execute* supported for Windows
|
|
Fixed memory bug in printing hexadecimal
|
|
Fix bug in modulo
|
|
Better floating-point control for infinity, nan results
|
|
on many platforms
|
|
|
|
Version 42: June 8, 1996
|
|
Functor system added
|
|
Fixed (cond (1)), etc.
|
|
Fixed type-checking for numerical comparisons; e.g., (< 2 1 'a)
|
|
Fixed dynamic-wind and call/ec for values
|
|
Fixed read for strings containing #\nul
|
|
Non-matching cond/case raises an error
|
|
Made string=?, char=?, etc. multi-arity like numerical =, etc.
|
|
Changed definition of time-apply (returns values, now)
|
|
MzScheme threads can almost be real OS threads under Solaris, but more work
|
|
is needed to guarantee safety for the symbol table and globals. More thread
|
|
systems to follow.
|
|
spawn-eval replaced by make-eval
|
|
thread-input-port, thread-output-port, and thread-error-port removed
|
|
binary-and, etc. replaced with 2's complement bitwise-and, etc.
|
|
Fixed writing compiled quoted graph expressions
|
|
Fixed return value of system
|
|
test.scm expanded and broken into multiple files: (load/cd "tests/all.ss")
|
|
|
|
Version 0.41: April 15, 1996
|
|
Revised class syntax; see the manual
|
|
Exception system added; primitive errors raise exceptions
|
|
defmacro replaced by define-macro
|
|
Added define-id-macro
|
|
Fixed let-macro shadowing local vars
|
|
Improved error messages; error-print-width
|
|
Fixed stack checking for Win32
|
|
'. no longer allowed
|
|
unquote and unquote-splicing now defined at top level
|
|
equal? supports boxes
|
|
|
|
Version 0.40: March 24, 1996
|
|
structure:X => struct:x
|
|
mzlib path uses MZLIB or PLTHOME environment variables
|
|
|
|
Version 0.39: March 6, 1996
|
|
Fixed expand-defmacro for (lambda () (and)) et al.
|
|
Fixed sqrt on complex numbers; coefficients were reversed
|
|
Cleaned up read and display/write to handle C stack overflow
|
|
Arity checking bug fixed for arity 0
|
|
Pretty-print is parameterized by depth
|
|
|
|
Version 0.38: February 22, 1996
|
|
Fixed bug in compiling frame-sharing; e.g.,
|
|
(let ([d 0]) ((car (cons (let ([a 4]) (lambda () a))
|
|
(let ([b 7]) b)))))
|
|
returned 7 instead of 4
|
|
Fixed bug in closing port by call-with-input-file
|
|
Fixed magnitude on negative reals
|
|
Fixed angle on negative reals
|
|
Fixed cos, sin, etc. on rationals
|
|
Fixed min and max on rationals with non-rationals
|
|
Fixed (random 0)
|
|
Fixed equal? on really long lists
|
|
Fixed list procedures with arbitrary duration: checking for break
|
|
Fixed char-X? and characters past ASCII 127
|
|
Fixed hash table bug that causes infinite internal loop
|
|
Fixed bug in reading #| |# comments at the end of a list
|
|
Filesystem utilities added
|
|
"processes" are now called "threads"; procedure names changed accordingly
|
|
eval can return multiple values; r-e-p-l handles correctly
|
|
Some changes to compilation interface:
|
|
must set new flag is_proc_closure in compile_info rec
|
|
scheme_static_distance changed; use flags
|
|
scheme_sleep() must now take a float
|
|
current-prompt-read added
|
|
Console version reads ~/.mzschemerc init file (or mzscheme.rc)
|
|
NO_STAT compilation flag -> NO_STAT_PROC
|
|
|
|
Version 0.37: unreleased
|
|
|
|
Version 0.36: January 18, 1996
|
|
Fixed bug in bignum multiplication
|
|
|
|
Version 0.35: January 17, 1996
|
|
current-print added
|
|
x@y notation supported
|
|
~ expanded in pathnames (Unix)
|
|
Fixed bug parsing #T, etc.
|
|
Fixed bug parsing hex numbers and others
|
|
Fixed fp-initialization bug for Win32
|
|
Better printing for special symbols
|
|
|
|
Version 0.34: December 30, 1995
|
|
Various bignum operations sped up
|
|
Chez-style symbol parsing supported (escaping \ and quoting |)
|
|
|
|
Version 0.33: December 21, 1995
|
|
rationals and complex numbers supported
|
|
make-class and make-class* syntax changed (one set of parens
|
|
added). The old syntax is still supported for now, but you
|
|
should convert. The old syntax will eventualy go away (and
|
|
Zodiac will never be compatible with it).
|
|
class variables and cvar no longer allowed
|
|
ivar always takes an object; if class included, must be first
|
|
threads/processes changed w.r.t. environment used during execution
|
|
error handler split into erro displayer and error escaper
|
|
stack limitation of expander/compiler removed
|
|
expand => expand-defmacro
|
|
expand-once => expand-defmacro-once
|
|
user-break-poll => user-break-poll-handler
|
|
enable-break => break-enabled
|
|
#% now legal for starting non-keyword symbols
|
|
full floating-point input format supported
|
|
|
|
Version 0.32: December 4, 1995
|
|
Added weak boxes
|
|
+inf.0, -inf.0, -nan.0, +nan.0 constants added
|
|
Better checking when using floats as indices (vector-ref, etc.)
|
|
Better (correct!) hashing procedure
|
|
Fixed threads in Win32s/WinNT by creating a new stack
|
|
Fixed bug in spawning new (MzScheme) processes
|
|
Fixed incorrect process progress (~deadlock) analysis
|
|
Fixed bug in resizing hash table
|
|
Fixed bug in read (reading "+", "-", or "." at EOF)
|
|
Fixed bug in read-number (fractions and forcing; e.g. "../")
|
|
Fixed bug in open-output-string (> 100 chars gave empty result)
|
|
Fixed regexp-replace (memory bug)
|
|
|
|
Version 0.31: November 14, 1995
|
|
Bignum bigs: subtracting from 0, comparing negative
|
|
(current-eval) initially returned the wrong procedure
|
|
tan procedure added
|
|
putenv
|
|
S-expression graph reading and printing
|
|
|
|
Version 0.30: October 25, 1995
|
|
Added call-with-values and regexp
|
|
Unix stack-checking setup code fixed
|
|
|
|
Version 0.29: October 18, 1995
|
|
Added `arity' procedure
|
|
Bug fix related to forms such as (let ([x (let ...)]) ...)
|
|
|
|
Verion 0.28: October 3, 1995
|
|
Fixed general stack overflow-checking for Unix
|
|
|
|
Verion 0.27: September 26, 1995
|
|
Moved compilation flags from the Makefile into "sconfig.h"
|
|
More general stack overflow-checking (when needed)
|
|
Computations can overflow the stack and continue
|
|
Changed command line flags; added -r (or --script) flag
|
|
Added multiple inheritance and `rename', `share', and `local' declarations
|
|
Merged Patrick Barta's Windows DLL implementation for `load-extention'
|
|
Re-implemented `quasiquote', `and', and `or' as a macros
|
|
Re-implemented let-forms to make small `let's efficient
|
|
`let*' expands to `let'
|
|
Made core syntactic form names keywords
|
|
Added #% keywords
|
|
Added `hash-table-map' and `hash-table-for-each'
|
|
Fixed bignum bugs: `eqv?'/`equal?' and `modulo'
|
|
Fixed inexact bugs: `floor', `ceiling', and `round'
|
|
Created this "HISTORY" file
|