Use ; as a path separator character under NT, rather than the Unix-ish colon (:).
Now if you have a name clash when trying to import something into a module, it'll tell you what module this name clash is taking place in.
On Win32, force stdin, stdout, and stderr into binary mode, so that the streams library will work correctly on those files.
The Standard-io module of the Streams library has been moved into its own library, called Standard-io. See standard-io.
The Streams library now contains the piped-exec module, which exports the piped-exec function. Similar functionality used to be provided by the fd-exec function; see stream extensions.
See also bbso-stream.dylan for an efficient string output stream class.
The Stream-extensions library has been effectively gutted and started over. Most of the functions that used to be part of Stream-extensions are now part of the Streams library; the Stream-extensions library now contains the Indenting-streams and Concatenated-streams modules.
The Regular-expressions module of the String-extensions library has been spun off into its own library. There are also some improvements in functionality. See regular-expressions.
Added the time library. See time.txt time.htm. Note however that this library doesn't compile on all platforms under d2c.
The Table-Extensions library has been added. Most of the functionality used to be in the Extensions module of the Dylan library; however, see table-extensions.
The assert() function has been added to the Extensions module of the Dylan library.
The conditional compilation features compiled-for-x86-win32 and compiled-for-hppa-hpux are now defined, if appropriate. See conditional compilation.
The conditional compilation feature newlines-are-CRLF has been added. Consequently, the constant $newlines-are-CRLF, exported from the Extensions module of the Dylan library, no longer exists.
Added print-object methods for <sequence>, <array>, <table>, and <range>. see print.
Added the format-out library. This provides a shorthand for formatting to standard output.
Added a whole bunch of new tests to the tests directory.
The Inspector no longer tells you about slot getters and setters or type constaints on a slot when you inspect an instance of an object. If you want to see those things, inspect that object's class.
Piped-exec (formerly fd-exec) now works on Windows/NT.
WinMindy now uses a special linker (dbclink) to link .dbc files. Previously, the Unixish "cat" command was used, which sometimes corrupted the .dbc files. See mindy.txt for details.
fd-exec and piped-exec now collect finished child processes. Previously, on Unix if you fd-exec'ed enough processes, you could overflow the process table, even if those processes had terminated.
In interp/module.c, an unreferenced function referenced a non-existent function. This has been fixed.
Fixed a bug where if a size: keyword was given to make(<deque>), the deque would think it was twice as big as it really was.
Fixed ``for (x from 0 below 10) x := x + 1 end'' to work correctly
Slot init-args are now processed first to last (ie, the second occurence of a init-keyword is ignored when initializing instances).
Fixed obscure bug in the SAM cache code which caused incorrect handling of non-leaf concrete classes.
When using the Transcendental module, not all documented methods for \^ were present. This has been fixed.
Fixed a bug in the Inspector where strings beginning with # (like "#f") would not display correctly.
The random-float function in the Random library would sometimes produce numbers outside the range asked for. This has been fixed.
Fixed print-object when printing single digit negative integers.
<table> and <self-organizing-list> are once again subclasses of <stretchy-collection>. See collext.txt for details on <self-organizing-list>.
Added the TK library, which is a Dylan binding for TK 4.0 (of TCL/TK fame). See dylan-tk.txt for details. Also added a graphical version of html2txt and a game of Minesweeper.
Added the inspect and xinspect commands to the debugger, which allow interactive examining of Dylan objects. See debug.txt and inspector.txt for details.
Mindy now supports conditional compilation; see mindy.txt for details.
Added a new defining form, "define function". See mindy.txt for details.
For loops now support the "using" option for using iteration protocols other than the forward-iteration-protocol. See mindy.txt for details.
Added $not-supplied to the Extensions module. See mindy.txt for details.
Added the Matrix library, which contains standard matrix manipulations like matrix multiply and gaussian elimination. See matrix.txt for details.
Mindycomp now gives warning messages when "while" or "until" are used inside a for loop (you should use "while:" or "until:"), or when the "foo: (default)" keyword default syntax is used. Mindycomp also gives warning messages when the exception name in an exception clause is not surrounded by parentheses.
Mindycomp now gives warning messages when function return values have names but not types.
Mindy now gives warnings when next-method() is called without #next being declared in the parameter list, because that's required in Mindy. See mindy.txt for details on this deficiency.
Mindy now gives warnings when a method's return types do not match the generic's return types because return types were not specified for the method. This used to be an error.
The function collect-garbage has been added to the System module of the Dylan library. This function can also do a purifying garbage collection; see mindy.txt for details.
Mindy now supports a different integer model. In brief, the following renaming has been done: <integer> => <general-integer> <fixed-integer> => <integer> $minimum-fixed-integer => $minimum-integer $maximum-fixed-integer => $maximum-integer See mindy.txt for details.
*format-function* and *force-output-function* have been replaced by condition-format. See mindy.txt for details.
The functions load-file and load-library have been added to the Extensions module. See mindy.txt for details.
The function abstract?, which tells you if a class is an abstract class, has been added to the Introspections module of the Dylan library.
The function instantiable?, which tells you if a class is either concrete or has an applicable method on make which is not the default make method, has been added to the Introspections module of the Dylan library.
Added <byte> to the Extensions module. See mindy.txt for details.
Added <buffer-index> and $maximum-buffer-size to System module. See mindy.txt for details.
Object printing in the Print library is now generally more terse, but still within the spec laid out in print.txt.
Limited-integer-class is now limited-integer-base-class, limited-integer-min is now limited-integer-minimum, and limited-integer-max is now limited-integer-maximum. See mindy.txt for details.
Mindy will now return an exit status of 1 if the debugger "quit" command was used to exit the interpretter.
The function type-or in the Extensions module of the Dylan library has been removed. Use type-union instead.
Since the Dylan language no longer has ratios, all ratio stuff (<ratio>, ratio, numerator, denominator) has been moved to the Extensions library. See mindy.txt for details.
The class <dictionary> in the Extensions module of the Dylan library has been removed. Use <mutable-explicit-key-collection> instead.
In the Regular-expressions module of the String-Extensions library, the join() function now only works on byte strings.
<object-table>s now work when given <extended-integer>s or <ratio>s for keys.
Find-method() now accepts any type of <sequence> as an argument, not just <list>.
Sort() now handles pathological cases better.
Fixed a bug in ash where it would try to allocate extended integers of a negative length.
Mindy now drops to the debugger when asked to allocate an excessively large object, rather than dumping core.
"Subclass" slots are now "each-subclass" slots.
In the Regular-expressions module of the String-Extensions library, the split() function will now remove empty items correctly in all cases.
Regular expressions functions will now signal an <illegal-regexp> error when given a regular expression that is parsable but would be uninterpretable. See String-extensions.txt for details.
Fixed a bug in the Regular-expressions module of the String-Extensions library where escaped characters would be unescaped once too many times.
Fill! now returns a value of the correct type.
Under Win32, the first line of console input would sometimes be dropped. This has been fixed.
The Mindy documentation now documents <string-table>.
Replaced the old Random library with a brand new library of the same name. See random.txt for details.
Added the Transcendental module to the Dylan library. See mindy.txt for details.
Added the Sequence-diff module to the Collection-Extensions library. Added a Unix style "diff" program the demo directory. See collection-extensions.txt and demos.html for details.
Added the "next" debugger command which is like "step" but skips over function calls.
Extended the "continue" debugger command to be able to continue from more contexts.
Added an option to specify how often to run the garbage collector. If the environment variable BYTES_CONSED_BETWEEN_GCS is set, that value will be used; otherwise a default value of 2 megs will be used. See mindy.txt for details.
Added the ~== operator described in the DRM. See mindy.txt for details.
Made ~ a true function, rather than mere syntax.
Fixed a bug in the Streams library where read-as would sometimes return #f even though to-eof? was supplied as #t.
In the Streams library, <random-access-stream> is now exported. See streams.txt for details.
In the fd module of the Dylan library, if an exec fails while doing an fd-exec(), the child process will now exit gracefully. An error is not signalled.
Garbage collection reporting is now optional, with the default value being no reporting. See mindy.txt for details.
Added while: and until: syntax to for statement. The old syntax is still supported. Words like class, keyed-by, and module are now unresevered words.
Added <string-table> to the Extensions module. See mindy.txt for details.
A new test, threaded-io-test, has been added to the tests directory. This program tries to read from three different streams simultaneously. However, the program is interactive, and for that reason is not run by the makefile.
The constants in the File-Descriptors module of the Dylan library have been made POSIX conformant. The seek constants L_SET, L_INCR, L_XTND have been replaced with the POSIX equivalents SEEK_SET, SEEK_CUR, SEEK_END. ONDELAY has been changed to ONONBLOCK. The non-POSIX constants FCREAT, FTRUNC, and FEXCL have been removed, since they already had POSIX equivalents. ONDELAY, FNDELAY ELOOP, EDQUOT, EOPNOTSUPP, and ETXTBSY have been removed, since they are unused and cause portability problems. See mindy.txt for more details.
In the Streams library, modified read-line and write-line to make use of the constant $newlines-are-CRLF, which is exported from the System module of the Dylan library. Whenever $newlines-are-CRLF is not #f, read-line drops any \r characters that appear before a linefeed character. Neither the \r nor the linefeed appear in the resulting string that represents the line. Whenever $newlines-are-CRLF, write-line writes a \r before writing the linefeed.
make(<table>, size: 0) now works.
NaN's now compare correctly.
remove-key! now works on <self-organizing-list>s.
Corrected the precedence of ^. Brought the associativity of ^ into line with other languages; used to be left associative (as specified in the DIRM), now is right associative.
Apply now makes sure the object being applied is really a function.
as(<float>, extended-integer) now works correctly when the extended integer is negative.
logbit? on extended integers now returns #f when given a negative index.
ceiling and round now work for extended integers.
every? for vectors now works.
Random-uniform from the Random library now works in the presence of extended integers.
Weak pointers now will not crash the garbage collector, even in obscure cases.
applicable-method?, when called with the same arguments twice in a row, would always return #t. That has been fixed.
shrink! now works correctly.
Fixed a bug in buffer-subsequences from the Streams library. This function had worked only when the result type requested was a <byte-string>. If you requested a result type of <buffer> or <byte-string>, you got a run-time type error.
Fixed a bug in the Streams library that was triggered when reading to the end of a <random-access-stream> in one high-level call with the to-eof: keyword argument.
Mindy installation now only requires an ANSI C compiler, any ``make'' utiltiy, and ``/bin/sh''. Previous versions of Mindy required GNU CC (gcc), GNU flex, GNU bison, and GNU make (gmake).
Mindy now uses a ``configure'' script to handle configuration. See ``INSTALL'' for more details.
Mindy now comes with several files that have been compiled for you (they compile into portable C). There is no need to re-compile these files, but if you should desire to do so you will need GNU flex, GNU bison, and Perl.
Mindy now contains a new subdirectory ``compat'', which in combination with the configure script is used to smooth out the differences between the different kinds of Unix machines.
There is now a Mindy test suite in the ``tests'' subdirectory. The tests cover the Dylan module of the Dylan library and the Regular-Expressions module of the String-Extensions library.
``mc'' has been renamed ``mindycomp''.
main() now has a required parameter argv0 which contains the name of the file that was executed (similar to C's argv[0]). See mindy.txt for details.
Added the Print library, which contains extendable code for printing arbitrary objects. If an object has a Dylan literal syntax, then it is printed with that syntax. All other objects are printed in an implementation-dependent manner. See $INSTALL/doc/print.{ps,txt} for more information.
Added the Format library, which contains extendable code for concisely expressing formatted output. The format control strings supported by this library are upwardly compatibile with the error function's format strings. See $INSTALL/doc/format.{ps,txt} for more information.
Moved all the Extensions module I/O routines to the Cheap-IO module of the Dylan library. Added fflush to the Cheap-IO module. See $INSTALL/doc/mindy.{ps,txt} for more information.
The Streams library now exports stream locking functions. The generic functions used to extend the streams protocol to new streams have changed slightly. The Streams interface now returns no values for functions that are called purely for side-effects; these functions used to return a meaningless #f value. See $INSTALL/doc/streams.{ps,txt} for more information.
Added the String-Extensions library, which contains code to deal with regular expressions, substring searches, and other string and character related issues. Moved the string searching functions from Collection-Extensions to the Substring-Search module of String-Extensions. Renamed the String-Search module of the Collection-Extensions library to Vector-Search. See collection-extensions.txt and string-extensions.txt for details.
<so-list> and the Solist module of Collection-extensions have been renamed <self-organizing-list> and Self-organizing-list, respectively.
There is a new abstract collection class called <dictionary>. <table> from the Dylan module and <self-organizing-list> from the Self-Organizing-List module of Collection-extensions are now subclasses of <dictionary>. Remove-key! is now a generic function on <dictionary>s. <Dictionary> is exported from the Extensions module; see mindy.txt for details.
Mindy now gives warnings about undefined variables.
Mindy now has infinite precision integer arithmetic. Added <fixed-integer>, <extended-integer>, $minimum-fixed-integer, and $maximum-fixed-integer to the Extensions module.
Mindy now has Unicode support. <byte-character> is now exported from the Extensions module, and is a subclass of <character> (<character> is really a unicode character).
When searching for a library, Foo, Mindy first looks for foo-lib.dbc in $MINDYPATH, and failing to find that file, searches for foo.dbc.
Added key-exits?(collection, key) to the Extensions module. See mindy.txt for details.
Created the Introspective module in the Dylan library. See mindy.txt for deatils.
An error is now signalled if the parent of a subclass has not yet been initialized when the subclass is defined.
Logbit now takes its arguments in the correct order.
Logand, logxor, and logior are now binary operators.
size: on a <table> now does the right thing.
Fixed a pair of bugs in the garbage collection.
Inherited and keyword class slot options are now supported.
Added support for \a, \e, and \0 in string and character literals.
Added some additional error checking.
Added a "describe" debugger command. See debug.txt for details.
The debugger "module" command now annotates the listing of modules with "i"s and "x"s to indicate modules that are imported, exported, or both.
"Large functions" no longer trigger an internal error in the compiler.
Literal list syntax inside 'if' bodies no longer cause the compiler to die.
Fixed an off-by-one error that made it impossible to debug source files longer than 1000 lines.
Fixed 'define class' to generate correct implicit generic function signatures for the slot getters and setters. Mindy used to define the generic function as returning one value, but now Mindy defines it to return "#rest results :: <object>". This new behavior corresponds to a proposal for how implicit generic function signatures should be generated in Dylan. The basic idea is that implicit generic function signatures should be as general as possible to allow methods added later by users the greatest chance of matching the generic function's signature.
Slot-initialized? works now.
Fixed a typo bug that caused a setter to be called instead of a getter for some slots of classes that had multiple direct superclasses.
Mindy no longer gets a segmentation violation when it is invoked with a -f switch that is not followed by a filename.
Error's format control strings were previously case-sensitive with respect to format directives. Now the directives are case-insensitive.
The Dylan module of the Dylan library now exports the identifiers row-major-index, rank, and dimension.
The arguments for adjust-stream-position on <fd-file-stream>s were backwards, and now they agree with the stream specification.
The arguments for write and write-line were backwards in the documentation, and now the documentation agrees with the code.