* Redid the layout of the NEWS file.
git-svn-id: svn://svn.zoy.org/elk/trunk@62 55e467fa-43c5-0310-a8a2-de718669efc6
This commit is contained in:
parent
6aee1646f0
commit
85776d6862
823
NEWS
823
NEWS
|
@ -1,512 +1,517 @@
|
||||||
$Id: foo$
|
$Id$
|
||||||
|
|
||||||
Changes from release 3.0 to release 4.0
|
Changes between 3.0 and 4.0:
|
||||||
|
----------------------------
|
||||||
|
|
||||||
Changes from release 2.2 to release 3.0
|
* Nothing yet.
|
||||||
|
|
||||||
General:
|
Changes between 2.2 and 3.0:
|
||||||
|
----------------------------
|
||||||
|
|
||||||
o A new C/C++ Programmer's Manual for Elk is now available
|
General:
|
||||||
(60+ pages with many examples). See doc/README (item `cprog')
|
|
||||||
and doc/cprog.
|
|
||||||
|
|
||||||
o The documentation has been prepared for translation to HTML
|
* A new C/C++ Programmer's Manual for Elk is now available
|
||||||
using the (Elk-based) `unroff' package.
|
(60+ pages with many examples). See doc/README (item `cprog')
|
||||||
|
and doc/cprog.
|
||||||
|
|
||||||
o Elk now uses a new Scheme object representation (a `struct' rather
|
* The documentation has been prepared for translation to HTML
|
||||||
than an `unsigned long') to make it work on 64-bit architectures
|
using the (Elk-based) `unroff' package.
|
||||||
and to allow for larger heaps, a wider range of fixnums, and more
|
|
||||||
first-class Scheme types.
|
|
||||||
o As a consequence, the `pointer_constant_high_bits' are gone, as
|
|
||||||
is util/pchb.c.
|
|
||||||
|
|
||||||
o Elk has been ported to and tested on these new platforms (config
|
* Elk now uses a new Scheme object representation (a `struct' rather
|
||||||
files are included in the distribution):
|
than an `unsigned long') to make it work on 64-bit architectures
|
||||||
|
and to allow for larger heaps, a wider range of fixnums, and more
|
||||||
|
first-class Scheme types.
|
||||||
|
|
||||||
DEC/Alpha, OSF/1
|
* As a consequence, the `pointer_constant_high_bits' are gone, as
|
||||||
HP 9000, HP-UX 10.0
|
is util/pchb.c.
|
||||||
i386/486, BSDI BSD/OS
|
|
||||||
i386/486, Linux
|
|
||||||
IBM PowerPC, AIX 4.1
|
|
||||||
|
|
||||||
o A number of config files for obsolete platforms have been removed
|
* Elk has been ported to and tested on these new platforms (config
|
||||||
from the distribution; config files for platforms where Elk 3.0
|
files are included in the distribution):
|
||||||
could not be tested are in config/untested. util/sgihack.c is gone.
|
|
||||||
|
|
||||||
o Extension initialization and finalization functions now begin
|
DEC/Alpha, OSF/1
|
||||||
with `elk_init_' rather than just `init_' to avoid name conflicts.
|
HP 9000, HP-UX 10.0
|
||||||
|
i386/486, BSDI BSD/OS
|
||||||
|
i386/486, Linux
|
||||||
|
IBM PowerPC, AIX 4.1
|
||||||
|
|
||||||
o The directory `contrib' has been removed from the distribution,
|
* A number of config files for obsolete platforms have been removed
|
||||||
as most of the contributions either were no longer maintained
|
from the distribution; config files for platforms where Elk 3.0
|
||||||
or have been made an official part of the distribution.
|
could not be tested are in config/untested. util/sgihack.c is gone.
|
||||||
contrib/eval-string is now available as lib/misc/elk-eval.c.
|
|
||||||
|
|
||||||
o Site/platform-specific information such as the various X11 `load
|
* Extension initialization and finalization functions now begin
|
||||||
libraries', machine name, operating system name, as well as the
|
with `elk_init_' rather than just `init_' to avoid name conflicts.
|
||||||
Elk version number are now available as Scheme variables in
|
|
||||||
scm/siteinfo.scm. The file is created automatically and can be
|
|
||||||
loaded via `(require 'siteinfo)'.
|
|
||||||
|
|
||||||
o Most of the improvements in scm/debug-new.scm have been merged
|
* The directory `contrib' has been removed from the distribution,
|
||||||
into the baseline debug.scm and the former has been removed.
|
as most of the contributions either were no longer maintained
|
||||||
The inspector now starts at the correct frame when called after
|
or have been made an official part of the distribution.
|
||||||
an error.
|
contrib/eval-string is now available as lib/misc/elk-eval.c.
|
||||||
|
|
||||||
o examples/CC/class.c is a simple Elk extension demonstrating
|
* Site/platform-specific information such as the various X11 `load
|
||||||
encapsulation of a C++ class in a Scheme type.
|
libraries', machine name, operating system name, as well as the
|
||||||
|
Elk version number are now available as Scheme variables in
|
||||||
|
scm/siteinfo.scm. The file is created automatically and can be
|
||||||
|
loaded via `(require 'siteinfo)'.
|
||||||
|
|
||||||
o The file README has been renamed ROADMAP; RELEASE is now README.
|
* Most of the improvements in scm/debug-new.scm have been merged
|
||||||
|
into the baseline debug.scm and the former has been removed.
|
||||||
|
The inspector now starts at the correct frame when called after
|
||||||
|
an error.
|
||||||
|
|
||||||
Interpreter kernel:
|
* examples/CC/class.c is a simple Elk extension demonstrating
|
||||||
|
encapsulation of a C++ class in a Scheme type.
|
||||||
|
|
||||||
o Many bugs have been fixed, and the code has been made `64-bit clean'.
|
* The file README has been renamed ROADMAP; RELEASE is now README.
|
||||||
|
|
||||||
o New functions for application writers to read/set the `error tag'
|
Interpreter kernel:
|
||||||
displayed in error messages and the application name (Get_Error_Tag,
|
|
||||||
Set_Error_Tag, Set_App_Name).
|
|
||||||
|
|
||||||
o When dynamically loading objects, the C++ static constructors are
|
* Many bugs have been fixed, and the code has been made `64-bit clean'.
|
||||||
now called _before_ all extension initializers. Ditto for C++
|
|
||||||
destructors and extension finalizers.
|
|
||||||
|
|
||||||
o New function for application/extension writers to load a file
|
* New functions for application writers to read/set the `error tag'
|
||||||
whose name is given as a C string (Load_File).
|
displayed in error messages and the application name (Get_Error_Tag,
|
||||||
o Load_Source_Port has been made `official' and may be used from
|
Set_Error_Tag, Set_App_Name).
|
||||||
outside the interpreter.
|
|
||||||
|
|
||||||
o New functions for application/extension writers to convert
|
* When dynamically loading objects, the C++ static constructors are
|
||||||
Scheme numbers to C unsigned int/long: Get_Unsigned,
|
now called _before_ all extension initializers. Ditto for C++
|
||||||
Get_Unsigned_Long, Get_Exact_Unsigned, Get_Exact_Unsigned_Long.
|
destructors and extension finalizers.
|
||||||
New function Get_Exact_Long.
|
|
||||||
|
|
||||||
o The `round' primitive now rounds to even for numbers halfway
|
* New function for application/extension writers to load a file
|
||||||
between two integers.
|
whose name is given as a C string (Load_File).
|
||||||
|
* Load_Source_Port has been made `official' and may be used from
|
||||||
|
outside the interpreter.
|
||||||
|
|
||||||
o The reader doesn't impose a limit on the length of strings and
|
* New functions for application/extension writers to convert
|
||||||
symbols any longer.
|
Scheme numbers to C unsigned int/long: Get_Unsigned,
|
||||||
|
Get_Unsigned_Long, Get_Exact_Unsigned, Get_Exact_Unsigned_Long.
|
||||||
|
New function Get_Exact_Long.
|
||||||
|
|
||||||
o The dynamic loading implementations now use the environment
|
* The `round' primitive now rounds to even for numbers halfway
|
||||||
variable TMPDIR if present.
|
between two integers.
|
||||||
|
|
||||||
o `dump' now works under SGI Irix 5.x.
|
* The reader doesn't impose a limit on the length of strings and
|
||||||
|
symbols any longer.
|
||||||
|
|
||||||
o New constants ELK_MINOR and ELK_MAJOR for application/extension
|
* The dynamic loading implementations now use the environment
|
||||||
writers.
|
variable TMPDIR if present.
|
||||||
|
|
||||||
o Symbols containing special characters now print correctly when
|
* `dump' now works under SGI Irix 5.x.
|
||||||
output with `write'.
|
|
||||||
|
|
||||||
o Various optimizations in the interpreter's inner loop to compensate
|
* New constants ELK_MINOR and ELK_MAJOR for application/extension
|
||||||
for the performance loss caused by the struct-based object
|
writers.
|
||||||
representation on some platforms.
|
|
||||||
|
|
||||||
Extensions:
|
* Symbols containing special characters now print correctly when
|
||||||
|
output with `write'.
|
||||||
|
|
||||||
o The X11 extensions now work with X11 Release 6, Sun OpenWindows 3.x,
|
* Various optimizations in the interpreter's inner loop to compensate
|
||||||
and Sun Motif.
|
for the performance loss caused by the struct-based object
|
||||||
|
representation on some platforms.
|
||||||
|
|
||||||
o Extension-specific include files (unix.h, xlib.h, xt.h) are now
|
Extensions:
|
||||||
installed in a subdirectory $install_dir/include/extensions
|
|
||||||
for use by applications.
|
|
||||||
|
|
||||||
o The object files for Athena or Motif widgets are now loaded
|
* The X11 extensions now work with X11 Release 6, Sun OpenWindows 3.x,
|
||||||
by means of `require'.
|
and Sun Motif.
|
||||||
|
|
||||||
o New POSIX-style regular expression extension (see doc/regexp and
|
* Extension-specific include files (unix.h, xlib.h, xt.h) are now
|
||||||
examples/regexp).
|
installed in a subdirectory $install_dir/include/extensions
|
||||||
|
for use by applications.
|
||||||
|
|
||||||
o The file hunk.c has been removed from lib/misc, as it no longer
|
* The object files for Athena or Motif widgets are now loaded
|
||||||
serves any purpose.
|
by means of `require'.
|
||||||
|
|
||||||
o Several bugs have been fixed in the UNIX and X11 extensions.
|
* New POSIX-style regular expression extension (see doc/regexp and
|
||||||
|
examples/regexp).
|
||||||
|
|
||||||
|
* The file hunk.c has been removed from lib/misc, as it no longer
|
||||||
|
serves any purpose.
|
||||||
|
|
||||||
|
* Several bugs have been fixed in the UNIX and X11 extensions.
|
||||||
|
|
||||||
Changes from release 2.1 to release 2.2
|
Changes between 2.1 and 2.2:
|
||||||
|
----------------------------
|
||||||
|
|
||||||
General:
|
General:
|
||||||
|
|
||||||
o Elk ported to new platforms: SGI Irix 5.1, HP-UX 9.0
|
* Elk ported to new platforms: SGI Irix 5.1, HP-UX 9.0
|
||||||
|
|
||||||
o All Scheme files now end with the suffix `.scm'
|
* All Scheme files now end with the suffix `.scm'
|
||||||
o Introduced new symbols in the config files to be used by the
|
* Introduced new symbols in the config files to be used by the
|
||||||
UNIX extension
|
UNIX extension
|
||||||
o Reorganized the include files. Split external declarations
|
* Reorganized the include files. Split external declarations
|
||||||
into `private' (intern.h) and `public' (extern.h) declarations
|
into `private' (intern.h) and `public' (extern.h) declarations
|
||||||
to be used by extensions
|
to be used by extensions
|
||||||
|
|
||||||
o It's no longer necessary to specify multiple destination
|
* It's no longer necessary to specify multiple destination
|
||||||
directories in the site file (only install_dir; subdirectories
|
directories in the site file (only install_dir; subdirectories
|
||||||
are created automatically)
|
are created automatically)
|
||||||
o `init_objects' is gone from the site file, see INSTALL for a
|
* `init_objects' is gone from the site file, see INSTALL for a
|
||||||
new, simpler way to link extensions or an application with Elk
|
new, simpler way to link extensions or an application with Elk
|
||||||
statically
|
statically
|
||||||
o New directory $install_dir/lib is created with files module.o,
|
* New directory $install_dir/lib is created with files module.o,
|
||||||
standalone.o and shell scripts linkscheme, makedl, and ldflags
|
standalone.o and shell scripts linkscheme, makedl, and ldflags
|
||||||
(see INSTALL)
|
(see INSTALL)
|
||||||
|
|
||||||
o Elk can now be used by applications that must have their own
|
* Elk can now be used by applications that must have their own
|
||||||
main() function. See INSTALL for details.
|
main() function. See INSTALL for details.
|
||||||
|
|
||||||
Interpreter kernel:
|
Interpreter kernel:
|
||||||
|
|
||||||
o New primitives to allow blocking of signals from within Scheme
|
* New primitives to allow blocking of signals from within Scheme
|
||||||
code: disable-interrupts, enable-interrupts
|
code: disable-interrupts, enable-interrupts
|
||||||
o Changed Disable_Interrupts and Enable_Interrupts macros to
|
* Changed Disable_Interrupts and Enable_Interrupts macros to
|
||||||
allow nesting and to handle signals used by extensions
|
allow nesting and to handle signals used by extensions
|
||||||
(specifically by the new UNIX extension)
|
(specifically by the new UNIX extension)
|
||||||
o Extended representation of continuations to carry current
|
* Extended representation of continuations to carry current
|
||||||
interrupt nesting level and restore it when being called
|
interrupt nesting level and restore it when being called
|
||||||
o (Re-)enable interrupts in toplevel on error
|
* (Re-)enable interrupts in toplevel on error
|
||||||
o Added default signal handlers for SIGPIPE and SIGHUP to clean
|
* Added default signal handlers for SIGPIPE and SIGHUP to clean
|
||||||
up temporary files
|
up temporary files
|
||||||
|
|
||||||
o New primitive: `features'
|
* New primitive: `features'
|
||||||
o `require' now appends .scm to feature name to obtain file name
|
* `require' now appends .scm to feature name to obtain file name
|
||||||
(if no file name has been specified and if the feature name
|
(if no file name has been specified and if the feature name
|
||||||
doesn't have a suffix yet)
|
doesn't have a suffix yet)
|
||||||
o Features elk:dump and elk:load-object are provided by the
|
* Features elk:dump and elk:load-object are provided by the
|
||||||
interpreter if dump and dynamic loading are supported
|
interpreter if dump and dynamic loading are supported
|
||||||
|
|
||||||
o Implemented Register_Onfork() and Call_Onfork() to provide
|
* Implemented Register_Onfork() and Call_Onfork() to provide
|
||||||
`fork handlers' (used, for instance, by the UNIX extension)
|
`fork handlers' (used, for instance, by the UNIX extension)
|
||||||
o Added fork handlers to the dynamic loading implementations to
|
* Added fork handlers to the dynamic loading implementations to
|
||||||
create links for the temporary files
|
create links for the temporary files
|
||||||
|
|
||||||
o Added a close function to I/O ports to allow for pipe-based ports
|
* Added a close function to I/O ports to allow for pipe-based ports
|
||||||
o New primitive: char-ready?
|
* New primitive: char-ready?
|
||||||
|
|
||||||
o Added a check to the code that restarts a dumped interpreter
|
* Added a check to the code that restarts a dumped interpreter
|
||||||
to detect that the start address of the stack has been moved
|
to detect that the start address of the stack has been moved
|
||||||
with respect to the original invocation (this happens between
|
with respect to the original invocation (this happens between
|
||||||
Sun-4c and Sun-4m architectures, for instance)
|
Sun-4c and Sun-4m architectures, for instance)
|
||||||
|
|
||||||
o Modified math.c to implement the distinction between exact and
|
* Modified math.c to implement the distinction between exact and
|
||||||
inexact numbers as required by the language definition
|
inexact numbers as required by the language definition
|
||||||
o New primitives: exact->inexact, inexact->exact
|
* New primitives: exact->inexact, inexact->exact
|
||||||
o The number prefixes #e and #i are now supported
|
* The number prefixes #e and #i are now supported
|
||||||
o Floating point numbers are no longer automatically reduced to
|
* Floating point numbers are no longer automatically reduced to
|
||||||
integers; new conversion function Make_Flonum(double) in
|
integers; new conversion function Make_Flonum(double) in
|
||||||
addition to Make_Reduced_Flonum(double)
|
addition to Make_Reduced_Flonum(double)
|
||||||
o Added new conversion functions to cleanly distinguish between
|
* Added new conversion functions to cleanly distinguish between
|
||||||
C ints and longs: Get_Long(Object), Make_Long(long),
|
C ints and longs: Get_Long(Object), Make_Long(long),
|
||||||
Make_Unsigned_Long(unsigned long), and functions to convert
|
Make_Unsigned_Long(unsigned long), and functions to convert
|
||||||
bignums from/to C longs
|
bignums from/to C longs
|
||||||
o New conversion functions for exact integers:
|
* New conversion functions for exact integers:
|
||||||
Get_Exact_Integer(Object) and Get_Exact_Long(Object)
|
Get_Exact_Integer(Object) and Get_Exact_Long(Object)
|
||||||
|
|
||||||
o Removed the unique `void' type; #v is now converted into the empty
|
* Removed the unique `void' type; #v is now converted into the empty
|
||||||
symbol by the reader; void? remains for compatibility
|
symbol by the reader; void? remains for compatibility
|
||||||
|
|
||||||
o Implemented reader table for #-syntax
|
* Implemented reader table for #-syntax
|
||||||
o New function Define_Reader() to allow extensions to register
|
* New function Define_Reader() to allow extensions to register
|
||||||
their own read syntaxes (used by the new bitstring extension)
|
their own read syntaxes (used by the new bitstring extension)
|
||||||
o Exported parts of the reader to simplify writing new reader
|
* Exported parts of the reader to simplify writing new reader
|
||||||
functions in extensions
|
functions in extensions
|
||||||
|
|
||||||
o New functions/macros to convert Scheme strings and/or symbols
|
* New functions/macros to convert Scheme strings and/or symbols
|
||||||
into C strings (to be used by extension writers): Get_String,
|
into C strings (to be used by extension writers): Get_String,
|
||||||
Get_Strsym, Get_String_Stack, Get_Strsym_Stack; see src/cstring.c
|
Get_Strsym, Get_String_Stack, Get_Strsym_Stack; see src/cstring.c
|
||||||
o Now obsolete: Declare_C_Strings, Dispose_C_Strings, Make_C_String
|
* Now obsolete: Declare_C_Strings, Dispose_C_Strings, Make_C_String
|
||||||
|
|
||||||
o Bug fixes:
|
* Bug fixes:
|
||||||
o fixed a few bugs in the implementation of continuations and
|
o fixed a few bugs in the implementation of continuations and
|
||||||
tail call optimization and in the generational, incremental
|
tail call optimization and in the generational, incremental
|
||||||
garbage collector
|
garbage collector
|
||||||
o there was a bug in the interaction between the garbage
|
o there was a bug in the interaction between the garbage
|
||||||
collector and `dump'
|
collector and `dump'
|
||||||
o identified additional critical sections to be protected
|
o identified additional critical sections to be protected
|
||||||
from delivery of signals
|
from delivery of signals
|
||||||
o initscheme.scm wasn't resolved against the load-path
|
o initscheme.scm wasn't resolved against the load-path
|
||||||
o quasiquotation now also works for vectors (kudos to
|
o quasiquotation now also works for vectors (kudos to
|
||||||
Tor Lillqvist for suggesting a simple fix)
|
Tor Lillqvist for suggesting a simple fix)
|
||||||
o a bug in src/load-ld.c could cause the first static variable
|
o a bug in src/load-ld.c could cause the first static variable
|
||||||
in a dynamically loaded .o file to not be zeroed
|
in a dynamically loaded .o file to not be zeroed
|
||||||
|
|
||||||
Extensions:
|
Extensions:
|
||||||
|
|
||||||
o New UNIX extension; see doc/unix for the reference manual and
|
* New UNIX extension; see doc/unix for the reference manual and
|
||||||
examples/unix for a few demonstration programs
|
examples/unix for a few demonstration programs
|
||||||
|
|
||||||
o New record extension; see doc/record for the reference manual.
|
* New record extension; see doc/record for the reference manual.
|
||||||
The `struct' extension is now obsolete
|
The `struct' extension is now obsolete
|
||||||
|
|
||||||
o New arbitrary-length bitstring extension; see doc/bitstring
|
* New arbitrary-length bitstring extension; see doc/bitstring
|
||||||
for the manual
|
for the manual
|
||||||
|
|
||||||
|
|
||||||
Changes from release 2.0 to release 2.1
|
Changes between 2.0 and 2.1:
|
||||||
|
----------------------------
|
||||||
|
|
||||||
General:
|
General:
|
||||||
|
|
||||||
o New configuration files for the 386/486-PC running 386BSD and
|
* New configuration files for the 386/486-PC running 386BSD and
|
||||||
DOS/DJGPP, for Suns running Solaris 2.1 (SunOS 5.1, and for
|
DOS/DJGPP, for Suns running Solaris 2.1 (SunOS 5.1, and for
|
||||||
the Convex C230 running ConvexOS.
|
the Convex C230 running ConvexOS.
|
||||||
o Reorganized the config files and the site file to allow for
|
* Reorganized the config files and the site file to allow for
|
||||||
configuration of the generational, incremental garbage collector
|
configuration of the generational, incremental garbage collector
|
||||||
o Introduced several new symbols in the config files to simplify
|
* Introduced several new symbols in the config files to simplify
|
||||||
installation on several systems
|
installation on several systems
|
||||||
o Added new targets to all Makefiles to allow `cross-localization'
|
* Added new targets to all Makefiles to allow `cross-localization'
|
||||||
of the source tree (see comments in DOS section in MACHINES)
|
of the source tree (see comments in DOS section in MACHINES)
|
||||||
|
|
||||||
Interpreter kernel:
|
Interpreter kernel:
|
||||||
|
|
||||||
o Added a generational, incremental garbage collector
|
* Added a generational, incremental garbage collector
|
||||||
o New primitives: garbage-collect-status, collect-incremental
|
* New primitives: garbage-collect-status, collect-incremental
|
||||||
o Reorganized the source files to accommodate the new garbage
|
* Reorganized the source files to accommodate the new garbage
|
||||||
collector and to separate garbage collector specific code
|
collector and to separate garbage collector specific code
|
||||||
from code common to both garbage collectors
|
from code common to both garbage collectors
|
||||||
|
|
||||||
o Empty list no longer counts as false; added primitive
|
* Empty list no longer counts as false; added primitive
|
||||||
`empty-list-is-false-for-backward-compatibility'
|
`empty-list-is-false-for-backward-compatibility'
|
||||||
|
|
||||||
o Changed delimiter character in load-path argument of -p option
|
* Changed delimiter character in load-path argument of -p option
|
||||||
from comma to colon
|
from comma to colon
|
||||||
o Initialize load-path from ELK_LOADPATH environment variable
|
* Initialize load-path from ELK_LOADPATH environment variable
|
||||||
(if present)
|
(if present)
|
||||||
|
|
||||||
o Added argument to -v option to control which messages to print
|
* Added argument to -v option to control which messages to print
|
||||||
(linker command, init/finit functions)
|
(linker command, init/finit functions)
|
||||||
o It's no longer considered an error if an object file contains
|
* It's no longer considered an error if an object file contains
|
||||||
no initializers
|
no initializers
|
||||||
|
|
||||||
o Completely rewritten implementations of `dump' for ELF (SysVR4,
|
* Completely rewritten implementations of `dump' for ELF (SysVR4,
|
||||||
Solaris 2.x), ECOFF (Ultrix, Irix), and HP9000 a.out formats;
|
Solaris 2.x), ECOFF (Ultrix, Irix), and HP9000 a.out formats;
|
||||||
the HP version now correctly handles shared libraries
|
the HP version now correctly handles shared libraries
|
||||||
o Added support for dynamic loading under SysVR4 and Solaris 2.x
|
* Added support for dynamic loading under SysVR4 and Solaris 2.x
|
||||||
(see comments in MACHINES)
|
(see comments in MACHINES)
|
||||||
o Added code to read symbol table of object files on the Convex
|
* Added code to read symbol table of object files on the Convex
|
||||||
|
|
||||||
o Bug fixes:
|
* Bug fixes:
|
||||||
o dynamic-wind was completely broken; fixed it
|
o dynamic-wind was completely broken; fixed it
|
||||||
o fixed a bug in the code that checks for the stack growing
|
o fixed a bug in the code that checks for the stack growing
|
||||||
direction (caused dumped images to crash on startup)
|
direction (caused dumped images to crash on startup)
|
||||||
o fixed a bug in the equal? predicate (could enter an
|
o fixed a bug in the equal? predicate (could enter an
|
||||||
infinite loop when applied to environments)
|
infinite loop when applied to environments)
|
||||||
o Fixed a number of portability problems, among them:
|
* Fixed a number of portability problems, among them:
|
||||||
o added O_BINARY flag to open() calls and "b" mode to fopen()
|
o added O_BINARY flag to open() calls and "b" mode to fopen()
|
||||||
calls where necessary
|
calls where necessary
|
||||||
o added support for the many different ways to purge a file
|
o added support for the many different ways to purge a file
|
||||||
pointer and tty file descriptor (src/read.c, src/print.c)
|
pointer and tty file descriptor (src/read.c, src/print.c)
|
||||||
|
|
||||||
o Integrated the functionality of the `libutil.a' library from
|
* Integrated the functionality of the `libutil.a' library from
|
||||||
older releases into the interpreter kernel (conversion of
|
older releases into the interpreter kernel (conversion of
|
||||||
symbols and lists of symbols to bit masks and vice versa;
|
symbols and lists of symbols to bit masks and vice versa;
|
||||||
routines to manage a pool of weak pointers to objects, used
|
routines to manage a pool of weak pointers to objects, used
|
||||||
mainly by the Elk X extensions
|
mainly by the Elk X extensions
|
||||||
|
|
||||||
Extensions:
|
Extensions:
|
||||||
|
|
||||||
o Removed libutil.a (lib/util/*); moved the code into the
|
* Removed libutil.a (lib/util/*); moved the code into the
|
||||||
interpreter kernel (src/terminate.c; src/symbol.c); removed
|
interpreter kernel (src/terminate.c; src/symbol.c); removed
|
||||||
libutil.a from the default load-libraries
|
libutil.a from the default load-libraries
|
||||||
o Renamed lib/misc/c++.[co] to lib/misc/newhandler.[co] (c++.c isn't
|
* Renamed lib/misc/c++.[co] to lib/misc/newhandler.[co] (c++.c isn't
|
||||||
a valid filename under DOS)
|
a valid filename under DOS)
|
||||||
o Added finit function to lib/misc/monitor.c to switch off
|
* Added finit function to lib/misc/monitor.c to switch off
|
||||||
monitoring and write mon.out on exit
|
monitoring and write mon.out on exit
|
||||||
|
|
||||||
Elk/X:
|
Elk/X:
|
||||||
|
|
||||||
o The X extensions are no longer pre-linked against the required
|
* The X extensions are no longer pre-linked against the required
|
||||||
X libraries (by means of ld -r); resolving against system libs
|
X libraries (by means of ld -r); resolving against system libs
|
||||||
now always takes place at load time
|
now always takes place at load time
|
||||||
o make-gcontext and copy-gcontext now can be called with a drawable
|
* make-gcontext and copy-gcontext now can be called with a drawable
|
||||||
(i.e. pixmap or window)
|
(i.e. pixmap or window)
|
||||||
o New primitives: alloc-color alloc-named-color
|
* New primitives: alloc-color alloc-named-color
|
||||||
o Removed window-unique-id primitive
|
* Removed window-unique-id primitive
|
||||||
o Fixed a few bugs in the Xt extension (editres now works with
|
* Fixed a few bugs in the Xt extension (editres now works with
|
||||||
Scheme programs); removed an artificial limitation
|
Scheme programs); removed an artificial limitation
|
||||||
o Defined a GC visit function for widgets that visits each widget's
|
* Defined a GC visit function for widgets that visits each widget's
|
||||||
parents and the children of composite widgets
|
parents and the children of composite widgets
|
||||||
o Added support for Motif gadgets
|
* Added support for Motif gadgets
|
||||||
|
|
||||||
|
Changes between 1.5 and 2.0:
|
||||||
|
----------------------------
|
||||||
|
|
||||||
Changes from release 1.5 to release 2.0
|
General:
|
||||||
|
|
||||||
General:
|
|
||||||
|
|
||||||
o The build and install process has been improved significantly (see
|
* The build and install process has been improved significantly (see
|
||||||
file INSTALL)
|
file INSTALL)
|
||||||
o Added a new directory "config" that holds the system-specific
|
* Added a new directory "config" that holds the system-specific
|
||||||
configuration files and the site-file
|
configuration files and the site-file
|
||||||
o Added a build shell script and a unified Makefile to all
|
* Added a build shell script and a unified Makefile to all
|
||||||
directories; "build" creates the ``real'' Makefiles containing
|
directories; "build" creates the ``real'' Makefiles containing
|
||||||
system- and site-specific details during the make process
|
system- and site-specific details during the make process
|
||||||
o Added install, lint, clean, and distclean targets to all
|
* Added install, lint, clean, and distclean targets to all
|
||||||
Makefiles
|
Makefiles
|
||||||
o Placed files that are needed during runtime (dynamically loadable
|
* Placed files that are needed during runtime (dynamically loadable
|
||||||
object files, Scheme files, the interpreter itself) into separate
|
object files, Scheme files, the interpreter itself) into separate
|
||||||
directories; added "make install" to put files there
|
directories; added "make install" to put files there
|
||||||
|
|
||||||
o Simplified porting Elk to new systems (assembly language support
|
* Simplified porting Elk to new systems (assembly language support
|
||||||
and a stack-extending version of "alloca" are no longer required)
|
and a stack-extending version of "alloca" are no longer required)
|
||||||
o Tested on several new systems (IBM RS/6000, HP9000/700, SGI,
|
* Tested on several new systems (IBM RS/6000, HP9000/700, SGI,
|
||||||
Sony; see the file MACHINES)
|
Sony; see the file MACHINES)
|
||||||
|
|
||||||
o Placed new files CONTRIBUTORS, MIGRATE, and TODO into the toplevel
|
* Placed new files CONTRIBUTORS, MIGRATE, and TODO into the toplevel
|
||||||
directory of the distribution
|
directory of the distribution
|
||||||
o Added a directory "util" that contains tools to simplify porting
|
* Added a directory "util" that contains tools to simplify porting
|
||||||
Elk to new environments and other utilities that are useful on
|
Elk to new environments and other utilities that are useful on
|
||||||
some systems
|
some systems
|
||||||
o Added a directory "scripts" that holds the shell scripts used
|
* Added a directory "scripts" that holds the shell scripts used
|
||||||
to link instances of the interpreter and extensions.
|
to link instances of the interpreter and extensions.
|
||||||
o Removed "stk" directory with test programs (no longer needed)
|
* Removed "stk" directory with test programs (no longer needed)
|
||||||
|
|
||||||
o Added ANSI C prototypes and C++ "extern C" to all include files
|
* Added ANSI C prototypes and C++ "extern C" to all include files
|
||||||
|
|
||||||
Interpreter kernel:
|
Interpreter kernel:
|
||||||
|
|
||||||
o Placed include files into a separate directory (include)
|
* Placed include files into a separate directory (include)
|
||||||
o Reorganized the source files (separate source files for different
|
* Reorganized the source files (separate source files for different
|
||||||
a.out formats and different dynamic loading mechanisms)
|
a.out formats and different dynamic loading mechanisms)
|
||||||
o Changed the way new Scheme objects are allocated to support the
|
* Changed the way new Scheme objects are allocated to support the
|
||||||
generational garbage collector (not yet present in Elk)
|
generational garbage collector (not yet present in Elk)
|
||||||
o Rewrote the code implementing continuations to support full
|
* Rewrote the code implementing continuations to support full
|
||||||
call/cc on all machines
|
call/cc on all machines
|
||||||
o Fixed tail recursion optimization
|
* Fixed tail recursion optimization
|
||||||
o Added support for POSIX signals (as alternative to BSD reliable
|
* Added support for POSIX signals (as alternative to BSD reliable
|
||||||
signals)
|
signals)
|
||||||
o Removed several artificial limitations (such as max. number of
|
* Removed several artificial limitations (such as max. number of
|
||||||
before-GC and after-GC functions and statically GC-linked objects)
|
before-GC and after-GC functions and statically GC-linked objects)
|
||||||
o Removed code that depended on max. number of open files per process
|
* Removed code that depended on max. number of open files per process
|
||||||
o Added bi-directional ports (input-output-ports); new primitive:
|
* Added bi-directional ports (input-output-ports); new primitive:
|
||||||
open-input-output-port
|
open-input-output-port
|
||||||
o New primitive: port-line-number
|
* New primitive: port-line-number
|
||||||
o Reader now prints line number on syntax error
|
* Reader now prints line number on syntax error
|
||||||
o Max. length of a pathname is now determined correctly (using the
|
* Max. length of a pathname is now determined correctly (using the
|
||||||
POSIX incantations if applicable)
|
POSIX incantations if applicable)
|
||||||
o Added code to support dynamic loading under HP-UX (src/load-shl.c)
|
* Added code to support dynamic loading under HP-UX (src/load-shl.c)
|
||||||
o Added code to call extension finalization functions and C++
|
* Added code to call extension finalization functions and C++
|
||||||
destructors on termination
|
destructors on termination
|
||||||
o Fixed and improved the code to call extension initialization
|
* Fixed and improved the code to call extension initialization
|
||||||
functions and C++ constructors on startup or when loading
|
functions and C++ constructors on startup or when loading
|
||||||
extensions
|
extensions
|
||||||
o Improved the mechanism to suppress initialization of statically
|
* Improved the mechanism to suppress initialization of statically
|
||||||
linked extensions on startup ("dont_init_if_name" in config/site)
|
linked extensions on startup ("dont_init_if_name" in config/site)
|
||||||
o Can use ANSI "atexit" as alternative to redefining "exit"
|
* Can use ANSI "atexit" as alternative to redefining "exit"
|
||||||
o Added option -p to specify load path
|
* Added option -p to specify load path
|
||||||
o Scheme file "initscheme" is now loaded before the toplevel is
|
* Scheme file "initscheme" is now loaded before the toplevel is
|
||||||
loaded
|
loaded
|
||||||
o Changed "rand" to use rand() if random() isn't there
|
* Changed "rand" to use rand() if random() isn't there
|
||||||
o re-entrant-continuations? primitive is no longer needed (returns
|
* re-entrant-continuations? primitive is no longer needed (returns
|
||||||
always #t now)
|
always #t now)
|
||||||
o Added a general mechanism to register termination functions for
|
* Added a general mechanism to register termination functions for
|
||||||
individual objects (e.g. to close files on GC); see src/terminate.c
|
individual objects (e.g. to close files on GC); see src/terminate.c
|
||||||
o linkscheme shell script improved; added code to support the
|
* linkscheme shell script improved; added code to support the
|
||||||
stupid AIX linker
|
stupid AIX linker
|
||||||
o Fixed numerous things that caused lint or "gcc -ansi" to complain
|
* Fixed numerous things that caused lint or "gcc -ansi" to complain
|
||||||
o Changed the dynamic loading, "dump", and a.out symbol table reading
|
* Changed the dynamic loading, "dump", and a.out symbol table reading
|
||||||
code in numerous places to make it work on new systems and to make
|
code in numerous places to make it work on new systems and to make
|
||||||
it more readable and maintainable
|
it more readable and maintainable
|
||||||
|
|
||||||
Extensions:
|
Extensions:
|
||||||
|
|
||||||
o Combined lib/util/symbol.o and lib/util/objects.o into new library
|
* Combined lib/util/symbol.o and lib/util/objects.o into new library
|
||||||
libutil.a; put this library into the default "load-libraries"
|
libutil.a; put this library into the default "load-libraries"
|
||||||
o Moved lib/util/string.c and lib/util/string.h into the interpreter
|
* Moved lib/util/string.c and lib/util/string.h into the interpreter
|
||||||
o Moved files from lib directory into new subdirectory "misc"
|
* Moved files from lib directory into new subdirectory "misc"
|
||||||
o Added POSIX sysconf stuff to unix.c to determine max. number of
|
* Added POSIX sysconf stuff to unix.c to determine max. number of
|
||||||
open files per process
|
open files per process
|
||||||
|
|
||||||
Elk/X:
|
Elk/X:
|
||||||
|
|
||||||
o Made the code mostly "lint clean" and "gcc -ansi clean"
|
* Made the code mostly "lint clean" and "gcc -ansi clean"
|
||||||
o Fixed bogus variable definitions in xlib.h and xt.h
|
* Fixed bogus variable definitions in xlib.h and xt.h
|
||||||
o Xlib: added support for client-message event
|
* Xlib: added support for client-message event
|
||||||
o Xt: added code to avoid a bug in Motif 1.1.4
|
* Xt: added code to avoid a bug in Motif 1.1.4
|
||||||
o Xt: added optional "mask" argument to context-add-input
|
* Xt: added optional "mask" argument to context-add-input
|
||||||
o Removed site-dependent information from scm/xwidgets (file is
|
* Removed site-dependent information from scm/xwidgets (file is
|
||||||
now created from scm/xwidgets.src during the build process)
|
now created from scm/xwidgets.src during the build process)
|
||||||
o Renamed widget .d files that were longer than 14 characters;
|
* Renamed widget .d files that were longer than 14 characters;
|
||||||
added ALIASES file for each widget set containing mappings from
|
added ALIASES file for each widget set containing mappings from
|
||||||
real widget names to short names
|
real widget names to short names
|
||||||
|
|
||||||
Documentation:
|
Documentation:
|
||||||
|
|
||||||
o Added sub-directory "paper" containing a draft version of a
|
* Added sub-directory "paper" containing a draft version of a
|
||||||
paper about Elk
|
paper about Elk
|
||||||
|
|
||||||
User-contributed extensions:
|
User-contributed extensions:
|
||||||
|
|
||||||
o A foreign function interface, an Elk Shell, and a vector extension
|
* A foreign function interface, an Elk Shell, and a vector extension
|
||||||
have been contributed by J. P. Lewis (contrib/zelk).
|
have been contributed by J. P. Lewis (contrib/zelk).
|
||||||
|
|
||||||
|
Changes between 1.4 and 1.5:
|
||||||
|
----------------------------
|
||||||
|
|
||||||
Changes from release 1.4 to release 1.5
|
General:
|
||||||
|
* Added a "contrib" directory for user-contributed extensions
|
||||||
|
that I have not fully tested and/or integrated into Elk
|
||||||
|
* Renamed ORIGIN to COPYRIGHT
|
||||||
|
|
||||||
General:
|
Interpreter kernel:
|
||||||
o Added a "contrib" directory for user-contributed extensions
|
* Added support for the Amiga, A/UX and System V Release 4
|
||||||
that I have not fully tested and/or integrated into Elk
|
(ELF a.out format)
|
||||||
o Renamed ORIGIN to COPYRIGHT
|
* Added special load-library for MIPS (-lc_G0)
|
||||||
|
* Extension-interface: replaced Val() by Var_Set()/Var_Get()
|
||||||
|
* Modified load, autoload, and require so that multiple .o-files
|
||||||
|
can be loaded simultaneously
|
||||||
|
* Added -1+ as a synonym for 1-
|
||||||
|
* Bug fixes:
|
||||||
|
o fixed a GC-related bug
|
||||||
|
o fixed a bug that occurred when allocating a very large heap
|
||||||
|
o fixed a bug in case-insensitive string comparison
|
||||||
|
o fixed a bug in macro "when"
|
||||||
|
o changed and clarified semantics of print-depth/print-length
|
||||||
|
* IEEE 1178/R^4RS compatibility:
|
||||||
|
o replaced close-port by close-input-port and close-output-port
|
||||||
|
o added primitives caaaar .. cddddr
|
||||||
|
o added peek-char primitive
|
||||||
|
o added -i option for case-insensitive operation
|
||||||
|
* Removed -bc option
|
||||||
|
* Removed CBREAK-hack in read-char
|
||||||
|
|
||||||
Interpreter kernel:
|
Elk/X:
|
||||||
o Added support for the Amiga, A/UX and System V Release 4
|
* Fixed several GC-related bugs (objects belonging to Xlib/Xt are
|
||||||
(ELF a.out format)
|
no longer terminated by garbage collector when unreferenced)
|
||||||
o Added special load-library for MIPS (-lc_G0)
|
* Fixed a bug in the interface to the Grip widget
|
||||||
o Extension-interface: replaced Val() by Var_Set()/Var_Get()
|
* Modified code to load widgets to make use of new capability to
|
||||||
o Modified load, autoload, and require so that multiple .o-files
|
load multiple .o-files
|
||||||
can be loaded simultaneously
|
|
||||||
o Added -1+ as a synonym for 1-
|
|
||||||
o Bug fixes:
|
|
||||||
o fixed a GC-related bug
|
|
||||||
o fixed a bug that occurred when allocating a very large heap
|
|
||||||
o fixed a bug in case-insensitive string comparison
|
|
||||||
o fixed a bug in macro "when"
|
|
||||||
o changed and clarified semantics of print-depth/print-length
|
|
||||||
o IEEE 1178/R^4RS compatibility:
|
|
||||||
o replaced close-port by close-input-port and close-output-port
|
|
||||||
o added primitives caaaar .. cddddr
|
|
||||||
o added peek-char primitive
|
|
||||||
o added -i option for case-insensitive operation
|
|
||||||
o Removed -bc option
|
|
||||||
o Removed CBREAK-hack in read-char
|
|
||||||
|
|
||||||
Elk/X:
|
Documentation:
|
||||||
o Fixed several GC-related bugs (objects belonging to Xlib/Xt are
|
* Interpreter kernel: documented new functions, clarified
|
||||||
no longer terminated by garbage collector when unreferenced)
|
some sections
|
||||||
o Fixed a bug in the interface to the Grip widget
|
* Xlib/Xt: documented X-related behavior of garbage collector,
|
||||||
o Modified code to load widgets to make use of new capability to
|
pointed out GC-related pitfalls
|
||||||
load multiple .o-files
|
|
||||||
|
|
||||||
Documentation:
|
Changes between 1.3 and 1.4:
|
||||||
o Interpreter kernel: documented new functions, clarified
|
----------------------------
|
||||||
some sections
|
|
||||||
o Xlib/Xt: documented X-related behavior of garbage collector,
|
|
||||||
pointed out GC-related pitfalls
|
|
||||||
|
|
||||||
|
Interpreter kernel:
|
||||||
|
* Support for the NeXT machines added
|
||||||
|
* New primitive list? provided
|
||||||
|
* Two bugs in the tail recursion code fixed
|
||||||
|
* -v option to trace /bin/ld-calls
|
||||||
|
* man-page written
|
||||||
|
|
||||||
Changes from release 1.3 to release 1.4
|
Elk/X:
|
||||||
|
* Tested under X11R5
|
||||||
|
* X11R3 and earlier versions are no longer supported
|
||||||
|
* The HP-widget code has been removed from the distribution
|
||||||
|
|
||||||
Interpreter kernel:
|
* New Xlib-primitives: install-colormap uninstall-colormap
|
||||||
o Support for the NeXT machines added
|
list-installed-colormaps xlib-release-5-or-later?
|
||||||
o New primitive list? provided
|
|
||||||
o Two bugs in the tail recursion code fixed
|
|
||||||
o -v option to trace /bin/ld-calls
|
|
||||||
o man-page written
|
|
||||||
|
|
||||||
Elk/X:
|
* Xt interface now supports actions and accelerator tables
|
||||||
o Tested under X11R5
|
* Bug in set-context-fallback-resources! fixed
|
||||||
o X11R3 and earlier versions are no longer supported
|
* New Xt-functions: widget-name widget-translate-coordinates
|
||||||
o The HP-widget code has been removed from the distribution
|
application-initialize context-add-action install-accelerators
|
||||||
|
install-all-accelerators xt-release-5-or-later?
|
||||||
|
|
||||||
o New Xlib-primitives: install-colormap uninstall-colormap
|
* Support for new widget classes: menubutton panner porthole repeater
|
||||||
list-installed-colormaps xlib-release-5-or-later?
|
simplemenu sme smebsb smeline stripchart tree
|
||||||
|
* vpaned renamed to paned
|
||||||
|
|
||||||
o Xt interface now supports actions and accelerator tables
|
* Example programs have been moved into a new examples directory
|
||||||
o Bug in set-context-fallback-resources! fixed
|
with sub-directories for Scheme, Xlib, Xaw, Motif
|
||||||
o New Xt-functions: widget-name widget-translate-coordinates
|
|
||||||
application-initialize context-add-action install-accelerators
|
|
||||||
install-all-accelerators xt-release-5-or-later?
|
|
||||||
|
|
||||||
o Support for new widget classes: menubutton panner porthole repeater
|
* New Xaw example programs that demonstrate the new widget classes,
|
||||||
simplemenu sme smebsb smeline stripchart tree
|
accelerators, actions, etc.
|
||||||
o vpaned renamed to paned
|
|
||||||
|
|
||||||
o Example programs have been moved into a new examples directory
|
Other extensions:
|
||||||
with sub-directories for Scheme, Xlib, Xaw, Motif
|
* Interface to the GNU gdbm-library
|
||||||
|
|
||||||
o New Xaw example programs that demonstrate the new widget classes,
|
|
||||||
accelerators, actions, etc.
|
|
||||||
|
|
||||||
Other extensions:
|
|
||||||
o Interface to the GNU gdbm-library
|
|
||||||
|
|
Loading…
Reference in New Issue