766 lines
34 KiB
Plaintext
766 lines
34 KiB
Plaintext
Version 102, ??, 2000
|
|
Switched to configure-based makefiles (autoconf)
|
|
with-input-from-file and with-output-to-file close the port when
|
|
control leaves the dynamic extent of the call (normally, through an
|
|
exception, or through a general continuation jump).
|
|
Added detail field to exn:i/o:filesystem
|
|
Added immutable strings and pairs, string->immutable-string, and
|
|
pair->immutable-pair
|
|
Added read-decimal-as-inexact parameter
|
|
Fixed number reader to allow +inf.0, -inf.0, and +nan.0 in
|
|
complex constants
|
|
Fixed bugs in number reader for hexadecimal numbers containing `.'
|
|
and/or `s'/`l'-based exponents; note that `#e#x+e.s+e@-e.l-e'
|
|
is a legal number(!)
|
|
Fixed reading from special devices, such as /dev/null and /dev/zero,
|
|
in Solaris and HP/UX
|
|
Fixed blocking output (to stdout, stderr, or a process port) so that
|
|
only the writing thread is blocked
|
|
Changed read-string! to read-string-avail!, added
|
|
read-string-avail!/enable-break
|
|
Added write-string-avail and write-string-avail/enable-break
|
|
Added process/ports and process*/ports
|
|
Added file-stream-port?
|
|
Added 'update to the set of flags for open-output-file et al.
|
|
Changed default exit handler to return only results in 0 to 255
|
|
as results to the OS, and everything else means 1
|
|
Changed time-apply to return four values, and to take an argument
|
|
list to provide to the timed procedure
|
|
Change find-executable-path to accept #f as its second argument
|
|
Change normal-case-path to remove spaces at the end of a path
|
|
Changed angle on inexact zero (0 for 0.0, pi for -0.0)
|
|
Fixed arithmetic-shift for a -32 shift
|
|
Fixed angle on +nan.0
|
|
Fixed expt on 0 and a negative number
|
|
Added 'exec-file flag to find-system-path
|
|
Added provide-library
|
|
Added square and mergesort to MzLib's function.ss
|
|
Added tcp-addresses
|
|
Added -k command-line flag
|
|
Inside MzScheme: provided a way to fix the GC--thread problems
|
|
under Windows, via GC_use_registered_statics
|
|
Inside MzScheme: scheme_basic_env() initializes break-enabled
|
|
to #f instead of #t
|
|
Inside MzScheme: changed scheme_get_chars to consume an
|
|
offset into the string
|
|
Inside MzScheme: added embedding-settable function
|
|
scheme_console_output, used to report low-level errors
|
|
Inside MzScheme: restricted the format strings accepted by
|
|
scheme_signal_error, scheme_raise_exn, and scheme_warning
|
|
Inside MzScheme: added scheme_count_lines; scheme_tell_line
|
|
can return -1 if lines are not counted for a port
|
|
Inside MzScheme: added offset argument to scheme_write_string
|
|
|
|
Version 101, October 25, 1999
|
|
Added 'sys-dir to find-system-path
|
|
Added latin-1-integer->char and char->latin-1-integer
|
|
Added time-zone-offset field to the date structure
|
|
Added continuation field to exn:misc:user-break
|
|
Windows: all network sockets are closed on exit
|
|
Fixed (acos 0)
|
|
Fixed (expt x y) where x is negative and y is non-integral
|
|
Inside MzScheme: scheme_param_config's 2nd argument is
|
|
now a Scheme_Object*
|
|
|
|
Version 100, August 9, 1999
|
|
+ indicates a change since 100alpha4
|
|
* indicates a change since 100alpha3
|
|
Changed class syntax, splitting public clause use into:
|
|
public : defines ivars not in superclass
|
|
override : defines ivars already in superclass
|
|
Changed empty superclass from the empty list to object%;
|
|
every class initialization must call super-init
|
|
Added ivar-in-interface?
|
|
+ Added class-initialization-arity
|
|
* Added class->interface
|
|
* Added object-interface
|
|
+ Removed object-class
|
|
+ Removed ivar-in-class?; replace (ivar-in-class? x c)
|
|
with (ivar-in-interface? (class->interface x c))
|
|
Changed interface: raises an exception if a superinterface
|
|
declares a variable that is also declared in the interface
|
|
expression
|
|
Removed letrec*; letrec has the same semantics
|
|
* Fixed scope of function name in a named let
|
|
Internal definitions are allowed only at the beginning of lambda,
|
|
case-lambda, let, let-values, let*, let*-values,
|
|
letrec, letrec-values, fluid-let, let-macro, let-id-macro,
|
|
let-expansion-time, parameterize, and with-handlers
|
|
begin expressions are flattened in an internal-definition context
|
|
(begin) allowed in a top-level, unit, or internal-definition
|
|
context
|
|
Removed invoke-open-unit; see the new invoke.ss library, which
|
|
includes define-values/invoke-unit
|
|
Self-import is now allowed for unit linking
|
|
Removed constant-name and constant-name-all-globals
|
|
Removed secure-primitive-exception-types
|
|
Removed readable type symbols (e.g., #<procedure>)
|
|
Removed semaphore-callback (MrEd now has queue-callback)
|
|
Removed parameterizations (but not parameters!)
|
|
parameterize sets parameter values in parallel (like let)
|
|
instead of in series (like let*)
|
|
* Changed the initialization of the exception handler in a new
|
|
thread to use the value of the initial-exception-handler
|
|
parameter
|
|
Fixed unfairness in threads (perpetually creating threads
|
|
would starve certain threads, particularly the main thread)
|
|
Unreachable thread blocked on an unreachable semaphore is
|
|
garbage-collectable
|
|
Added current-memory-use
|
|
Fixed weak hash table bug (could drop keys too soon)
|
|
Added optional peek-proc argument to make-input-port
|
|
Changed TCP writes to block when the underlying implementation
|
|
blocks, and removed tcp-port-send-waiting?
|
|
Asynchronous breaks are now disabled during dynamic-wind
|
|
pre and post thunks
|
|
Removed user-break-poll-handler; spawn a thread that sleeps and
|
|
calls break-thread, instead
|
|
Removed dynamic-enable-break (no long needed since dynamic-wind
|
|
post thunks can't be broken), but moved it to MzLib's thread.ss
|
|
Removed execption-break-enabled (now always disabled)
|
|
Added call-in-nested-thread
|
|
Removed thread-weight
|
|
Renamed the call-with-escaping-continution procedure to
|
|
call-with-escape-continution (call/ec is unchanged)
|
|
Finished with-continuation-mark and current-continuation-marks
|
|
and documented them; the errortrace poor man's debugger relies
|
|
on continuation marks; see plt/collects/errortrace/doc.txt
|
|
Removed debug-info-handler and replaced the debug-info field
|
|
with a continuation-marks field
|
|
Added raise-mismatch-error
|
|
MacOS: getenv and putenv work within MzScheme; if a file named
|
|
"Environment" resides in MzScheme's folder, it provides the
|
|
initial environment; see the documentation for details
|
|
MacOS: fixed TCP problems
|
|
Fixed read-write invariance for inexact (floating-point) numbers
|
|
Changed handling of inexact can complex numbers towards compliance
|
|
with Brad Lucier's proposal:
|
|
(* 0 x) = 0 for all x
|
|
(log 1) = 0, etc.
|
|
-0.0 and 0.0 are properly distinguished; (- 0.0) = -0.0, and
|
|
(/ (expt 2 400) -inf.0) = -0.0; (eqv? 0.0 -0.0) = #f even
|
|
though (= 0.0 -0.0) = #t
|
|
Complex numbers can have an inexact real/imaginary part with
|
|
an exact zero imaginary/real part; thus, 4.0 is different
|
|
from 4.0+0.0i, and 0+4.0i is different from 0.0+4.0i; note
|
|
that (sqrt -4.0) is 0+2.0i
|
|
Complex numbers can have a +nan.0 real/imaginary part with
|
|
an imaginary/real part that is not +nan.0
|
|
All zero-length vectors are eq
|
|
Vectors are written (but not displayed) using the Chez-style
|
|
#n(...) shorthand by default; added print-vector-length
|
|
parameter
|
|
* The value of a built-in procedure is eq across namespaces
|
|
Replaced require-library-use-compiled with use-compiled-file-kinds
|
|
Changed interface for wills: no current executor, register-will
|
|
-> will-register, will-executor-try -> will-try-execute, added
|
|
will-execute
|
|
MzLib cleanup:
|
|
Removed `@' suffix for embedded units in mzlib:core@ and mzlib@
|
|
Removed all c.ss libraries, plus constan[t].ss
|
|
Removed catch-errors and let-enumerate from macro.ss
|
|
Removed make-class and make-class* from compat.ss
|
|
Removed zsin, zcos, ztan, zasin, zacos, zatan, zlog, zexp,
|
|
and zsqrt from zmath.ss (MzScheme's built-ins do complex)
|
|
Moved from functio.ss to thread.ss: dynamic-disable-break,
|
|
make-single-threader
|
|
Removed from functio.ss: dynamic-wind/protect-break
|
|
Added to thread.ss: dynamic-enable-break
|
|
Moved MzLib's compat.ss out of the core
|
|
Removes all but the first two arguments to pretty-print (the
|
|
rest have parameters, which are more convenient anyway)
|
|
Changed require to reference-file in refer.ss
|
|
file.ss library: added make-directory*
|
|
pretty-print: default display string handler is now the default
|
|
port display handler instead of the display procedure
|
|
Ported to BeOS
|
|
Ported to OSKit
|
|
Ported to LinuxThreads, sortof; semaphore-waiting threads cannot
|
|
be broken or killed
|
|
Inside MzScheme: new built-in type: scheme_complex_izi_type
|
|
Inside MzScheme: changed scheme_eval_string to raise an exception
|
|
if the expression returns multiple values, and added
|
|
scheme_eval_string_multi
|
|
|
|
Version 53, July 25, 1998
|
|
Changed file-modify-seconds to file-or-directory-modify-seconds
|
|
Changed rename-file to rename-file-or-directory
|
|
Changed file procedures to return void on success and raise
|
|
and exception on failure: delete-file, rename-file-or-directory,
|
|
file-size, copy-file, make-directory, delete-directory
|
|
Changed the procedures file-or-directory-modify-seconds and
|
|
file-or-directory-permissions to raise an exception if the
|
|
file/directory does not exist
|
|
Changed current-drive to raise exn:misc:unsupported on platforms
|
|
other than Windows
|
|
Added find-system-path
|
|
Fixed expand-defmacro for initialization argument expressions
|
|
in a class*/names form
|
|
Fixed call/ec bug related to dynamic-wind (see !!! in
|
|
tests/basic.ss)
|
|
Fixed dynamic-wind bug: multiple levels of pre-thunks for a
|
|
jump into a continuation were evaluated in reverse order
|
|
Fixed atan: second argument is allowed to be an exact non-integer
|
|
Fixed equal?: comparisons on equivalent vectors or structs
|
|
with cycles no longer crash (until MzScheme runs out of memory)
|
|
Added make-temporary-file to MzLib's file.ss
|
|
Changed random and random-seed to use a parameter-specified
|
|
random number generator; the generator is initially
|
|
seeded with a number based on (current-milliseconds)
|
|
Removed the obsolete MzLib trigger library
|
|
Added with-continuation-mark and current-continuation-marks,
|
|
but these have not yet been documented because their
|
|
semanticses are not yet finalized
|
|
|
|
Version 52, May 25, 1998
|
|
R5RS non-compliance reduced to macros
|
|
Added scheme-report-environment, null-environment, and
|
|
interaction-environment
|
|
Changed reference-library, etc. to require-library
|
|
and changed require-library, etc. to require-library/proc
|
|
Changed uq-ivar and uq-make-gerenric to ivar/proc and
|
|
make-generic/proc
|
|
current-directory is now a parameter
|
|
Added simplify-path
|
|
Changed execute and execute* to exit via the exit handler
|
|
Top-level definitions are no longer allowed in the branches
|
|
of an if expression; consider replacing an expression like
|
|
(if ... (define x ...)) with
|
|
(if ... (global-defined-value 'x ...))
|
|
expand-defmacro now signals the same set of syntax errors
|
|
as compile and eval
|
|
local-expand-defmacro no longer expands define expressions
|
|
in a non-top-level context; to implement a macro that
|
|
detects define forms, use local-expand-body-expression
|
|
Fixed bug in (let/ec a (let/ec b (let/cc k ...))); calling
|
|
b then k then a would fail, jumping to b instead of a
|
|
Fixed read-eval-print loop when jumping to the continuation
|
|
of a previous eval and raising an exception there before
|
|
the evaluation finishes
|
|
regexp-replace and regexp-replace*: \$ ("\\$" in Scheme)
|
|
is now replaced by the empty string; this allows forms
|
|
like "\\0\\$3", which inserts the 1st submatch and "3"
|
|
Fixed a potential bug with continuations (although I never
|
|
saw it happen); they need to be marked by the GC with
|
|
interior pointer marking
|
|
Changed read-line to break lines only on #\newline by default;
|
|
new optional argument roughly parameterizes over the
|
|
line-breaking character(s)
|
|
Add read-string and read-string! for reading a block
|
|
of characters from a port
|
|
Changed MzLib's read-string and read-string-all to
|
|
read-from-string and read-from-string-all
|
|
Changed MzLib's with-semaphore to return the value returned
|
|
by the thunk.
|
|
Added the command-line macro to MzLib's cmdline.ss
|
|
Linux and FreeBSD: turned on support for using more
|
|
than 256 file descriptors
|
|
Inside MzScheme: current-directory, now a parameter, no
|
|
longer sets the current directory as managed by the OS
|
|
Inside MzScheme: scheme_split_pathname changed
|
|
Inside MzScheme: scheme_setcwd and scheme_getcwd renamed to
|
|
scheme_os_setcwd and scheme_os_getcwd; these set and get the
|
|
OS-managed cwd, but they have no effect on the current
|
|
directory seen by Scheme code
|
|
|
|
Version 51, March 25, 1998
|
|
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)
|
|
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
|
|
Removed input-port-post-semaphore; this procedure can be
|
|
implemented using thread, peek-char, and semaphore-post
|
|
Fixed thread: thunk can return any number of values
|
|
Fixed custodian-shutdown-all: if it has to shutdown the
|
|
current thread, it does so immediately instead of
|
|
waiting for the next thread context switch
|
|
Fixed will executors: will can return multiple values
|
|
Added link-exists?
|
|
Added copy-file
|
|
Added path-list-string->path-list
|
|
Added collection-path
|
|
The delete-file and rename-file functions now reliably work
|
|
on links rather than the destination of the link (now fixed
|
|
for MacOS and documented this way)
|
|
Fixed rename-file: works for directories too, but the
|
|
destination file/directory cannot exist already.
|
|
Added a new mode flag for open-output-file et al.:
|
|
'truncate/replace tries 'truncate then 'replace
|
|
Changed initial setting of current-library-collection-paths
|
|
Unit definitions and embedded definitions are not allowed
|
|
to shadow syntax or macro names; this restriction resolves
|
|
all potential ambiguity resulting from shadowing syntax
|
|
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
|
|
Fixed format, fprintf, and printf: "~~" allowed at the end
|
|
of the format string
|
|
Fixed with-handlers: predicate procedures are evaluated
|
|
with the same exception handler as a handler procedure
|
|
Added send-event, currently only supported for MacOS
|
|
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
|
|
Fixed bug in ports returned by make-pipe that caused
|
|
spurious eofs
|
|
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 (scheme_reload)
|
|
Unix images: removed constraint against using stdio before
|
|
dumps, but images are disabled by default. Also added
|
|
read-image-from-file procedure
|
|
MzLib functio.ss: added remv*, remq*, remove*, filter,
|
|
assf, memf, empty, and empty?
|
|
MzLib file.ss: added remove-directory/files
|
|
MzLib constan.ss: added constant-signature-content macro
|
|
MzLib pconver.ss: added whole/fractional-exact-numbers and
|
|
empty-list-name
|
|
MzLib pretty.ss: added pretty-print-show-inexactness
|
|
MzLib compile.ss: changed the set of compilation flags
|
|
Removed begin-expansion-time
|
|
Moved begin-elaboration-time from MzLib into MzScheme
|
|
Added MzLib library traceld.ss
|
|
MacOS: MzScheme always prompts for extra arguments, even if
|
|
a file is dragged onto the application or a launcher program
|
|
starts it
|
|
MacOS: Fixed problems with inexact arithmetic: inexact->exact
|
|
for certain negative numbers and miscellaenous inf.0 and
|
|
nan.0 problems
|
|
Windows: CYGWIN32 gcc compiler now supported
|
|
Inside MzScheme: scheme_setjmp and scheme_longjmp now
|
|
work on values of type mz_jmp_buf instead of jmp_buf
|
|
Inside MzScheme: scheme_apply_multi and scheme_apply were
|
|
reversed! (The _ forms where ok.)
|
|
Upgraded to gc 4.13alpha1
|
|
|
|
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 4.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
|