Add LICENSE
Upstream changes:
* 2012-12-31 (version 1.9)
** Additions
- A new C FFI as added, thanks to Crestani, Harald Glab-Plhak. The
old one is still there but will eventually be phased out.
See Crestani's paper "Foreign-Function Interfaces for Garbage-Collected Programming Languages"
http://www-pu.informatik.uni-tuebingen.de/users/crestani/publications/2008-sws-ffi.pdf
- A new networking code layer was added with full support for IPv6,
UDP etc. (undocumented as of yet)
- Records now support single inheritance (accessible through the
r6rs-records packages)
- `letrec*' was added to the `scheme' structure
- A `r5rs' structure was added.
- A new condition system based on R6RS's system has replaced the old system.
- Some R6RS libraries were added (with help from Robert Ransom).
- A statistical profiler was added (Marcel Turino, Manuel Dietrich) -
check the documentation for details.
- TLC tables (`eq?' tables) were added by Marcus Crestani and David Frese.
- The module system warns on cycles and redefinitions
- When the VM is compiled with GNU C, it uses direct threading for
instruction dispatch, which speeds up the VM noticeable (done by
Timo Harter)
- The reader for a structure is configurable (again).
- SRFI 19 now works on Windows
- `list-spine{,-cycle-safe}[*%]' sequence macros were added to `reduce'
structure by Robert Ransom
- The Windows build can be done via a Boo script (contributed by
Robert Ransom)
- The unquote and unquote-splicing were generalized to several
operands, in line with R6RS.
- Commands ,show-known-packages, ,show-interface, and
,show-default-package were added to support SDT (Marcus Crestani,
Sebastian Rheinecker).
- `placeholder-value' now accepts a `deadlock?' argument that says
whether blocking on the placeholder contributes to deadlock.
- Most source files now carry author information.
- A document =doc/deriving.txt= was added that clarifies how works
derived from Scheme 48 should be labelled.
** Changes
- The BIBOP GC was heavily debugged and is now considered stable - it
is enabled by default.
- The system builds on Windows Visual Studio Express 2010 instead of
Visual Studio 2005.
- The BIBOP GC code was simplified significantly.
- The `syntax-rules' implementation was rewritten by Richard Kelsey
- Some structures were added to the POSIX subsystem
(`posix-errnos', `posix-syslog')
- Various procedures were added to the POSIX structures by Roderic
Morris to support scsh.
- The autoconf code was reorganized by Ivan Shmakov.
- The REPL now prints values without quotes and auto-capitalization of
record-type names.
- The Makefile now builds the documentation upon `make install'.
(This requires a working LaTeX installation and tex2page.) A target
`install-no-doc' is available that does not.
- The license information was clarified.
- The external-events API was changed to fix a design bug; it now
correctly accomodates "fire-once" applications such as
wait-`for-child-process' (with help from Robert Ransom, Roderic
Morris).
** Bug fixes
- Many.
The schema48 configure schema has a pthreads test that can't be overridden.
The problem is that it starts with -mt, and it thinks the test passes when
in reality gcc complains. This commit does a post-patch inline replacement
on the configure script to override the test, and to add -pthread to both
$CFLAGS and $LDFLAGS.
Lots of changes between this two releases :
- a new experimental gc
- framework for asynchronous event
- support for 64 bits machine
- the layout of the installed system now conforms to FHS
- and a lots of bugs fixes ...
Contributed by Aleksej Saushev via IRC.
Patch provided by Yorick Hardy in PR 36335.
And added test target (but fail if effective user == root direcoty owner).
Release notes for version 1.6
* Additions:
o An autogen.sh script for generating the various generated files from source was added.
o Infrastructure for creating, running and composing test suites was added. As a result, "make check" now runs more tests than before.
o It is now possible for adventurous users to run the linker in PLT Scheme.
* Changes:
o make image now assumes a Unicode-capable Scheme 48.
* Bug fixes:
o A bug where automatic port-flushing would churn trying to write to a blocking socket was fixed.
o An infinite loop upon (/ 0.0 0.0) was fixed. (reported by Taylor Campbell)
o A bug that made system unusable was fixed. (reported by Marco Benelli)
o A bug with package mutation, which made running the PreScheme compiler on the VM break was fixed.
o Bugs related to the conversion between OS strings and strings on command-line handling were fixed. (reported by Andreas Rottmann)
o Compilation using gcc now uses the -munaligned-doubles flag where available, which is needed on SPARCs to make floating-point arithmetic work.
o Compilation older versions Cygwin that don't have langinfo.h should be fixed.
o Some problems with installing and running on Windows Vista were fixed. (thanks to Axel T. Schreiner)
Release notes for version 1.5
* Additions:
o Comprehensive Unicode support was added. See the manual for details.
o An implementation of SRFI 19 was added. (thanks to Emilio Lopes)
o Syntax-rules now supports vector patterns and templates.
o The ,bound? command now produces more output. (thanks to Taylor Campbell)
* Changes:
o Many of the POSIX procedures that accepted or returned strings previously now accept or return OS strings. See the manual for details.
o The ,build command now accepts a procedure that will be called with a list of OS strings rather than regular strings.
o The ascii->char and char->ascii procedures from the ascii structure covers only ASCII (codes 0-127) now. (Previously, the range included 128-255 as well.)
* Bug fixes:
o A bug with package mutation was fixed. (reported by Taylor Campbell)
Release notes for version 1.4
* Additions:
o Regexp? is now exported from the rexexps structure.
o SRFIs 4, 39, 40, 43, 43, 60, 61, 63, 66, 67, 71, 78 (mostly thanks to David Van Horn)
o In the command processor, switches were generalized to settings, specifically to customize various printing parameters. See the manual for details.
o A generic byte-code parser was added to the system; the disassembler uses it.
o A reinitializers for register actions to be performed after resuming an image was added.
o A variable-arguments-lists structure implementing a macro for dealing with optional default parameters was added.
o A get-interrupt-handler procedure was added.
o An --enable-universal-binary option was added to configure to facilitate building universal binaries on Mac OS X. (thanks to Eric Knauel)
o The C code now has access to enum sets.
* Changes:
o File-options (in the POSIX libary) are now enum sets; this allows using enum-set operations on them.
o Various changes were made to the VM to enable native-code compilation.
o Socket addresses are always reusable.
o 1+ and 1- are no longer valid identifiers.
o The ordering of in/out thunks of dynamic-wind was changed to be consistent with itself and with the upcoming R6RS.
o The Windows build is now done using Visual Studio 2005.
* Bug fixes:
o Macro-defining macros now work in PreScheme.
o Opening a file for both read and write via the POSIX libraries wouldn't work correctly. (Reported by Andreas Rottmann.)
o PreScheme's copy-memory! now works for overlapping regions.
o Various C compilation problems were fixed.
o cmuscheme48.el should now work under GNU Emacs as well as XEmacs.
o Numerous problems with floating-point arithmetic were fixed.
o A race condition with queues was fixed. (thanks to David Frese)
o Part of script messages were printed on stdout rather than stderr; fixed. (thanks to Andreas Rottmann)
o A shadowing bug in the debugging package was fixed. (thanks to Taylor Campbell)
o A bug in the CML sync-group primitive was fixed. (thanks to Heath Putnam)
o Various errors in SRFI 13 were fixed.
o A bug in the auto-integrator was fixed. (thanks to Taylor Campbell)
o A bug in load-dynamic-externals was fixed. (thanks to Taylor Campbell)
o Several bugs in vector-merge were fixed. (reported by Matthias Radestock)
o The CML wrap was made correctly tail-recursive. (reported by Heath Putnam)
o A bug in the PreScheme C backend, that would sometimes incorrectly delete tail calls without a return value, was fixed. (reported by Eric Merritt)
o Several bugs in interface walking were fixed. (reported by Taylor Campbell)
o A bug in the PreScheme compiler affecting the removal of unused procedures was fixed. (thanks to Eric Knauel)
o Some precedence bugs in the C stubgs for the regexp code were fixed. (thanks to Matthew Dempsky)
o A bug in the regexps package for regexps without submatches was fixed.
o (set-current-proposal! (current-proposal)) no longer raises an exception. (thanks to Taylor Campbell)
o A bug in package caching was fixed. (thanks to Taylor Campbell)
o A bug in the generation of environment maps was fixed. (thanks to Taylor Campbell)
o The Windows installer package should now work even on systems that have delayed variable expansion on by default. (thanks to Emilio Lopes)
o Exception handlers that return from raise are now handled correctly. (reported by Norbert Freudemann)
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
05/01/05 (version 1.3)
Additions:
A collection of libraries implementing the Concurrent ML
model for concurrent programming has been added; it is
compatible to the CML libraries in Sunterlib. See the
documentation for details.
Support for SRFIs 34-36 ("Exception handling for programs",
"Conditions", "I/O conditions") has been added. This is in
the CONDITIONS, EXCEPTIONS, and I/O-CONDITIONS structures,
for which the SRFI-34, SRFI-35, and SRFI-36 structures are
essentially aliases. A bridging infrastructure between the
old condition system and the new one translates condition
objects back and forth, hopefully transparently for the
user.
A new infrastructure for dynamically loading external
libraries from shared objects has been added; check the
manual for details. The old infrastructure is still
presented, but is unsupported on Windows and will be
removed in a future release.
The S48_GC_UNPROTECT_GLOBAL macro has been added, which
allows to remove a root added by S48_GC_PROTECT_GLOBAL.
The Scheme 48 header files should now be compileable by a
C++ compiler.
An experimental Windows port has been added.
Changes:
The HTML manual is now generated with tex2page.
A number of changes to the VM to support the (future)
native-code compiler have been made.
The PreScheme type rule for IF is now more strict, thus
disallowing code that would lead to invalid C output.
(This fixes a bug reported by Markus Ziegler.)
Bug fixes:
The TRAVERSE structure for displaying heap statistics has
been re-enabled.
A number of misues of CALL-ERROR have been corrected
(reported by Taylor Campbell).
The VALUE-PIPES package works again
(fix by Taylor Campbell).
In PreScheme it is now possible to shift integers by
non-constant shift widths.
Logical right shifts in PreScheme work now
(reported by Taylor Campbell).
A bug in TERMINATE-THREAD! was fixed
(reported by Taylor Campbell).
A bug in the implementation of ,exit-when-done was fixed.
A bug in the regexp-matching code that prevented matching
the empty string correctly was fixed.
A bug in the implementation of STRING-CONTAINS from SRFI-13
was fixed.
A bug in the implementation of :WHILE in SRFI-42 was fixed
(submitted by Sebastian Egner).
Bugs in the implementations of ANGLE and MAGNITUDE were
fixed.
An obscure bug in the implementation of APPLY (which was
triggered by certain instances of (apply apply ...) )
was fixed.
For a degenerate case of ITERATE, the code was made to
conform the documentation
(reported by Taylor Campbell).
Various miscellaneous fixes.
Patch provided by Nils O. Selasdal in PR 32941.
While here, fixed pkglint warnings.
2/24/99 (version 0.53)
Additions:
DEFINE-FINITE-TYPE and DEFINE-ENUMERATED-TYPE (in structure
FINITE-TYPES; documented in doc/utilities.ps and
doc/html/utilities.html.
Added CHAR-SOURCE->INPUT-PORT, CHAR-SINK->OUTPUT-PORT,
MAKE-STRING-OUTPUT-PORT, STRING-OUTPUT-SOURCE-OUTPUT to
the extended-ports structure.
The structure BYTE-VECTORS is the same as CODE-VECTORS with `byte'
replacing `code' in all the names. The underlying datatype is the
same for both, and uses `byte' when printing.
There is a new and much improved interface to C code, thanks to
Mike Sperber. It is documented in in doc/external.ps and
doc/html/external.html.
Bug fixes:
Session-data and user-context records are no longer in the fluid env.
Lexical environments can now be nested up to 65k deep.
,expand no longer prints `definition in expression context' warnings.
Added ARRAY? and SEARCH-TREE? to the array and search tree structures.
Flat environments work again.
Templates of the form `var ... ...' now work in syntax rules.
Reinstated caching of SCHEMIFY results to greatly reduce the space
used by debugging info.
Added argument checking to STRING->NUMBER and NUMBER->STRING.
Fixed space blow-up in LOAD.
Unused ports are closed more reliably.
Changes:
The heap, gc, and image code is now in three separate modules.
The symbol table is now held in a VM register.
Inlined SHOWING-FOCUS-VALUES into the main command loop and moved
the sentinal call to reduce the noise at the base of ,preview output.
The tables returned by MAKE-TABLE now use EQV? for comparison (instead
of EQ?). This makes these tables about 50% slower when numbers are
used as keys, but significantly more accurate.
Floating-point numbers are no longer double boxed.
The channels structure has been split into channels and low-channels.
- New, optional Makefile variable HOMEPAGE, specifies a URL for
the home page of the software if it has one.
- The value of HOMEPAGE is used to add a link from the
README.html files.
- pkglint updated to know about it. The "correct" location for
HOMEPAGE in the Makefile is after MAINTAINER, in that same
section.