2342 lines
113 KiB
Text
2342 lines
113 KiB
Text
9.4 changes:
|
|
- updated version to 9.4
|
|
bintar README NOTICE makefiles/Mf-install.in scheme.1.in
|
|
c/Makefile.i3nt c/Makefile.a6nt c/Makefile.ti3nt c/Makefile.ta6nt
|
|
mats/bldnt.bat workarea c/scheme.rc s/7.ss s/cmacros.ss
|
|
release_notes/release_notes.stex csug/csug.stex
|
|
- added missing include
|
|
killme.c
|
|
- added new mat verifying that primitives raise exceptions for invalid
|
|
arguments based on primdata.ss signatures. fixed some of those
|
|
signatures, which weren't otherwise used except for arity checking.
|
|
fixed some issues turned up by the test with who reports errors
|
|
and how.
|
|
primdata.ss, 5_1.ss, 7.ss, compile.ss, cpnanopass.ss, fasl.ss,
|
|
interpret.ss, io.ss, record.ss, syntax.ss,
|
|
primvars.ms, 5_1.ms, 7.ms, 8.ms, record.ms, mats/Mf-base,
|
|
root-experr*, patch*
|
|
- string comparisons (string=?, string-ci<?, etc.) now get out fast
|
|
when handed eq arguments.
|
|
5_4.ss
|
|
- changed representation of most-negative iptr, I32, and I64 to make
|
|
Visual C compiler happy. updated windows make files, which had
|
|
fallen out of date. added missing hsrc= files sort.h and thread.h
|
|
so they show up in the Windows workarea c directory.
|
|
cmacros.ss,
|
|
fasl.c, number.c, c/Mf-base, c/Makefile.{t,}{i3,a6}nt
|
|
- The scheme.h definition of Sfixnum(x) now uses multiply rather than
|
|
left shift to avoid counting on the behavior of << on negative numbers,
|
|
which is undefined in C.
|
|
mkheader.ss
|
|
- Fixed a couple of casts, one harmless and the other causing
|
|
Sinteger64_value to return 0 for the most-negative I64 on 32-bit
|
|
builds.
|
|
number.c
|
|
- The configure-generated Makefile distclean target no longer removes
|
|
zlib and nanopass, since they are logically part of the git clone.
|
|
It does run make distclean in zlib.
|
|
makefiles/Makefile.in
|
|
- converted s_test_schlib shifts of -1 to equivalent shifts of 1 to
|
|
avoid undefined left-shift behavior on negative numbers.
|
|
prim5.c
|
|
- added if(---) {} wrapper around call to WRITE in display macro to
|
|
silence unused return-value warnings.
|
|
prim5.c
|
|
- liberalized get-mode check for ../mats. it's not our business whether
|
|
people make their directories group and/or other writable.
|
|
6.ms
|
|
- make test now prints the actual relative path to summary in the
|
|
"check summary" message, whether invoked from the top-level directory
|
|
or from the workarea.
|
|
Makefile.in, Makefile-workarea.in
|
|
- configure now just uses cat to copy Makefile-workarea.in to $w/workarea,
|
|
since the file is presently the same regardless of the configuration.
|
|
configure
|
|
- fixed time-utc->date test in mat time&date-printing to work regardless of
|
|
what locale (and time zone) the host machine has set.
|
|
date.ms
|
|
- fixed date->time-utc to honor the zone-offset field when converting a date
|
|
object to a time-utc object.
|
|
stats.c,
|
|
date.ms
|
|
- fixed incorrect handling of library-extension when searching wpo files
|
|
compile.ss,
|
|
7.ms
|
|
- modified floatify_normalize to properly round denormalized results.
|
|
obviated scale_float in the process.
|
|
number.c,
|
|
ieee.ms
|
|
- fixed 0eNNNN for large NNNN to produce 0.0 rather than infinity
|
|
strnum.ss,
|
|
5_3.ms
|
|
- the reader now raises an exception with condition type implementation
|
|
restriction (among the other usual lexical condition types), and
|
|
string->number now raises #f, for #e<m>@<a>, where <m> and <a> are
|
|
nonzero integers, since Chez Scheme can't represent polar numbers other
|
|
than 0@<n> and <n>@0 exactly. <m>@<a> still produces an inexact result,
|
|
i.e., we're still extending the set of inexact numeric constants beyond
|
|
what R6RS dictates. doing this required a rework of $str->num, which
|
|
turned into a fairly extensive rewrite that fixed up a few other minor
|
|
issues (like r6rs:string->number improperly allowing 1/2e10) and
|
|
eliminated the need for consumers to call $str->num twice in cases
|
|
where it can actually produce a number. added some related new tests,
|
|
including several found missing by profiling. added a couple of
|
|
checks to number->string the absence of which was causing argument
|
|
errors to be reported by other routines.
|
|
strnum.ss, exceptions.ss, read.ss
|
|
5_3.ms, 6.ms, root-experr*, patch*
|
|
- added pdhtml flag, which if set to t causes profile-dump-html to be
|
|
called at the end of a mat run.
|
|
mats/Mf-base
|
|
- compile-whole-program and compile-whole-library now copy the hash-bang
|
|
line from the wpo file (if it has one) to the object file.
|
|
compile.ss,
|
|
7.ms
|
|
- stex is now a submodule. csug/Makefile and release_notes/Makefile
|
|
set and use the required Scheme and STEXLIB variables accordingly.
|
|
they default the machine type to a6le, but this can be overridden
|
|
and is by the generated top-level Makefile. the generated top-level
|
|
Makefile now has a new docs target that runs make in both csug and
|
|
release_notes, and an updated distclean target that cleans the same.
|
|
the annoying csug Makefile .fig.pdf rule redefinition is now gone.
|
|
copyright.stex and csug.stex now list May 2016 as the revision month
|
|
and date; this will have to be updated for future releases.
|
|
configure, makefiles/Makefile.in,
|
|
csug/Makefile, copyright.stex, csug.stex,
|
|
release_notes/Makefile
|
|
- added custom install options. workarea creates an empty config.h,
|
|
and configure creates a config.h that sets the default scheme heap
|
|
path and scheme-script name based on the actual configuration.
|
|
configure, newrelease, workarea, checkin,
|
|
c/Mf-base, scheme.c, main.c,
|
|
Mf-install.in
|
|
- renamed the installed example directory from lib to examples.
|
|
Mf-install.in,
|
|
scheme.1.in
|
|
- added force option to gzip during man page install to prevent gzip from
|
|
asking for permission to overwrite existing man page files.
|
|
Mf-install.in
|
|
- removed ~/lib/csv%v/%m from the default scheme heap path on unix-like
|
|
systems. documented inclusion of %x\..\..\boot\%m in the Windows
|
|
default scheme heap path.
|
|
main.c,
|
|
use.stex
|
|
- added new configuration options: --installbin, --installlib,
|
|
--installschemename, --installpetitename, and --installscriptname.
|
|
configure
|
|
- updated the example library link to the nanopass framework.
|
|
CONTRIBUTING.md
|
|
- now cleaning up petite.1 and scheme.1 left behind by make install
|
|
Makefile-workarea.in, checkin
|
|
- now removing workarea after cleaning csug and release_notes so
|
|
Mf-stex (included from csug/Makefile and release_notes/Makefile)
|
|
doesn't complain trying to determine the machine type.
|
|
Makefile.in
|
|
- added installsh support for --ifdiff so the csug make file can use it
|
|
for the install target.
|
|
installsh,
|
|
csug/Makefile
|
|
- added instructions for building (cross-compiling) a boot file for
|
|
a supported machine type for which a boot file is not built by default.
|
|
BUILDING
|
|
- corrected CHEZSCHEMELIBS and CHEZSCHEMEEXTS index entries to be
|
|
CHEZSCHEMELIBDIRS and CHEZSCHEMELIBEXTS.
|
|
use.stex
|
|
- updated to curl stex version 1.2.1
|
|
configure
|
|
- updated the fix to S_mktime to work on windows. the struct tm
|
|
structure on windows does not have the tm_gmtoff field used in the
|
|
mac and linux version of the code.
|
|
stats.c
|
|
- updated the Windows makefiles for building and testing to remove links for
|
|
files that no longer exist, which was getting in the way of creating links
|
|
for files that do exist. Also updated the build batch file for Windows to
|
|
compile the nanopass framework separately before building the rest of the
|
|
scheme compiler and libraries.
|
|
s/Mf-{a6,i3,ta6,ti3}nt, s/bldnt.bat,
|
|
mats/Mf-{a6,i3,ta6,ti3}nt
|
|
- updated the read me to include a link to the Chez Scheme project page.
|
|
README.md
|
|
- fixed embarrassing typo in read me.
|
|
README.md
|
|
- profiler's html output refresh: mark the files as HTML5 rather
|
|
than HTML4; use target attributes rather than onclick events to
|
|
open links in specific windows; add a missing table row element;
|
|
replace the deprecated name attribute with an id attribute (and
|
|
replace the anchors with spans); and replace the deprecated valign
|
|
attribute with a style attribute.
|
|
pdhtml.ss
|
|
|
|
9.4.1 changes:
|
|
- updated version to 9.4.1
|
|
bintar BUILDING NOTICE makefiles/Mf-install.in scheme.1.in
|
|
c/Makefile.i3nt c/Makefile.a6nt c/Makefile.ti3nt c/Makefile.ta6nt
|
|
mats/bldnt.bat workarea c/scheme.rc s/7.ss s/cmacros.ss
|
|
release_notes/release_notes.stex csug/csug.stex
|
|
- updated newrelease to produce the correct log-entry format and
|
|
fixed the existing 9.4.1 log entry
|
|
newrelease, LOG
|
|
- replaced a couple of tabs
|
|
number.c
|
|
- updated the descriptions of statistics and related functions to
|
|
reflect the Version 9.3.1 change from sstats structures to sstats
|
|
records, with sstats times represented as time objects and sstats
|
|
bytes and counts represented as exact integers; also updated the
|
|
sstats-difference description to reflect that it no longer coerces
|
|
negative differences to zero. added a corresponding release note.
|
|
system.stex,
|
|
release_notes.stex
|
|
- added a cast to eliminate a warning
|
|
c/number.c
|
|
- fixed bug in Windows version of directory-separator-predicate when
|
|
path-* procedures are passed a path that is not a string.
|
|
s/6.ss
|
|
- fixed bug in cp0 on Windows with $foreign-wchar?.
|
|
s/cp0.ss
|
|
- Cygwin is now used on Windows, updated mats, eliminated unused killme
|
|
BUILDING c/*nt c/Mf-base c/scheme.exe.manifest configure
|
|
examples/Makefile mats/6.ms mats/Mf-* mats/foreign.ms mats/ftype.ms
|
|
mats/patch-* mats/windows.ms s/Mf-*nt s/Mf-base workarea
|
|
release_notes.stex
|
|
- fixed spelling of non-existent
|
|
s/syntax.ss
|
|
- now forcing zlib configuration before compiling files that depend on
|
|
the zlib header files, since zlib's configure script can modify the
|
|
header files. removed ZlibInclude variable, which no longer serves
|
|
a purpose.
|
|
c/Mf-*, c/Makefile.*nt
|
|
- removed unnecessary datestamp.c target
|
|
c/Mf.*nt
|
|
- fixed unnecessary blocking in expeditor on Windows.
|
|
c/expeditor.c
|
|
- eliminated a couple of thread-safety issues and limitations on the
|
|
sizes of pathnames produced by expansion of tilde (home-directory)
|
|
prefixes by replacing S_pathname, S_pathname_impl, and S_homedir
|
|
with S_malloc_pathname, which always mallocs space for the result.
|
|
one thread-safety issue involved the use of static strings for expanded
|
|
pathnames and affected various file-system operations. the other
|
|
affected the file open routines and involved use of the incoming
|
|
pathname while deactivated. the incoming pathname is sometimes if not
|
|
always a pointer into a Scheme bytevector, which can be overwritten if a
|
|
collection occurs while the thread is deactivated. the size limitation
|
|
corresponded to the use of the static strings, which were limited to
|
|
PATH_MAX bytes. (PATH_MAX typically isn't actually the maximum path
|
|
length in contemporary operating systems.) eliminated similar issues
|
|
for wide pathnames under Windows by adding S_malloc_wide_pathname.
|
|
consumers of the old routines have been modified to use the new
|
|
routines and to free the result strings. the various file operations
|
|
now consistently treat a pathname with an unresolvable home directory
|
|
as a pathname that happens to start with a tilde. eliminated unused
|
|
foreign-symbol binding of "(cs)pathname" to S_pathname.
|
|
io.c, externs.h, new_io.c, prim5.c, scheme.c, prim.c
|
|
- various places where a call to close or gzclose was retried when
|
|
the close operation was interrupted no longer do so, since this can
|
|
cause problems when another thread has reallocated the same file
|
|
descriptor.
|
|
new_io.c
|
|
- now using vcvarsall type x86_amd64 rather than amd64 when the
|
|
former appears to supported and the latter does not, as is the
|
|
case with VS Express 2015.
|
|
c/Mf-a6nt, c/Mf-ta6nt
|
|
- commented out one of the thread mats that consistently causes
|
|
indefinite delays under Windows and OpenBSD due to starvation.
|
|
thread.ms
|
|
- increased wait time for a couple of subprocess responses
|
|
6.ms
|
|
- added call to collector to close files opened during iconv mats
|
|
specifically for when mats are run under Windows with no iconv dll.
|
|
io.ms
|
|
- fixed typo: VC/bin/vcvars64.bat => VC/bin/amd64/vcvars64.bat
|
|
c/Mf-a6nt, c/Mf-ta6nt
|
|
- scheme_mutex_t now uses volatile keyword for owner and count fields
|
|
because these fields can be accessed from multiple threads
|
|
concurrently. Updated $yield and $thread-check in mats/thread.ms to
|
|
be more tolerant of timing variability.
|
|
c/types.h, mats/thread.ms, release_notes.stex
|
|
- fixed three instances of unchecked mallocs reported by laqrix in
|
|
github issue #77.
|
|
io.c, schlib.c, thread.c
|
|
- continue the profiler's html output refresh: refine the styling
|
|
(and palette) and update CSUG to match. update the CSUG screenshots
|
|
to reflect the refined look.
|
|
s/pdhtml.ss
|
|
csug/system.stex
|
|
csug/canned/profilehtml-orig.png
|
|
csug/canned/profilehtml.png
|
|
csug/canned/fatfibhtml-orig.png
|
|
csug/canned/fatfibhtml.png
|
|
- add unicode support to the expression editor. entry and display now work
|
|
except that combining characters are not treated correctly for
|
|
line-wrapping. this addresses github issue #32 and part of issue #81.
|
|
c/expeditor.c, s/expeditor.ss
|
|
- moved s_ee_write_char function within the WIN32 check to allow the unicode
|
|
change to compile on windows. unicode is not yet supported in the windows
|
|
version of the repl.
|
|
c/expeditor.c
|
|
- reworked the S_create_thread_object to print an error and exit when
|
|
allocating the thread context fails from Sactivate_thread. before
|
|
this change, the error was raised on the main thread, which resulted
|
|
in strange behavior at best. also added who argument to
|
|
S_create_thread_object to allow it to report either Sactivate_thread
|
|
or fork-thread led to the error.
|
|
externs.h, schsig.c, scheme.c, thread.c
|
|
- fixed a bug in cpvalid resulting in it leaving behind a cpvalid-defer
|
|
form for later passes to choke on. also fixed cp0 to print the correct
|
|
name for cpvalid when it does this.
|
|
cpvalid.ss, cp0.ss,
|
|
misc.ms
|
|
- updated the prototype for s_ee_write_char to match the definition
|
|
expeditor.c
|
|
- fixed a side-effect preservation bug with non-trivial test-context
|
|
not-like patterns.
|
|
cp0.ss,
|
|
cp0.ms, 4.ms
|
|
- instead of default-exception handler, new-cafe establishes a handler
|
|
that calls the current value of base-exception-handler so the handler
|
|
can be overridden, as we do in our own make files.
|
|
cafe.ss,
|
|
7.ms
|
|
- fixed a bug in case and exclusive-cond syntax-error calls causing an
|
|
exception in syntax-error instead of the intended error message.
|
|
syntax.ss
|
|
- added tests for the case and exclusive-cond syntax-error calls
|
|
4.ms, root-experr-compile-0-f-f-f
|
|
- added print-extended-identifiers parameter. when #t, symbols like
|
|
1+ and +++ print without escapes.
|
|
priminfo.ss, print.ss,
|
|
6.ms
|
|
- added descriptions of print-extended-identifiers to the user's guide
|
|
and release notes. updated the release notes to account for a couple
|
|
of other log entries.
|
|
release_notes.stex,
|
|
intro.stex, io.stex
|
|
- updated the sockets example to work with the current version of Chez.
|
|
Change the foreign procedure definitions to use the more portable int
|
|
rather than integer-32. Switch to a custom port
|
|
[make-custom-binary-input/output-port] rather than a generic port
|
|
[make-input/output-port], which resulted in deleting quite a bit of
|
|
code. Fix various compiler warnings in the C code, and along the way,
|
|
fix a signedness bug in c_write that could have resulted in not writing
|
|
the full buffer (but reporting that it did) in the case of errors from
|
|
write.
|
|
examples/csocket.c, examples/socket.ss
|
|
- use high-precision clock time on Windows 8 and up
|
|
c/stats.c
|
|
- fixed profiling code that keyed profiling locations off of only the
|
|
bfp to instead key off of both the bfp and efp.
|
|
pdhtml.ss
|
|
- added Windows installer using the WiX Toolset
|
|
BUILDING, install/* (new)
|
|
- fix typo in ordinal format for 12
|
|
format.ss,
|
|
format.ms
|
|
- renamed install directory to wininstall to avoid conflict with
|
|
top-level Makefile
|
|
BUILDING, install/* (removed), wininstall/* (new)
|
|
- updated zlib to version 1.2.11
|
|
configure
|
|
- added procedure-arity-mask to report the allowed argument counts of
|
|
a compiled function. On a procedure from interpret or from one of
|
|
the trace procedures or syntactic forms, procedure-arity-mask
|
|
may report counts that are not actually allowed by the source
|
|
procedure.
|
|
cmacros.ss, compile.ss, cpnanopass.ss, mkheader.ss, primdata.ss,
|
|
prims.ss, strip.ss,
|
|
fasl.c, gc.c, globals.h, prim.c, prim5.c, scheme.c, schsig.c,
|
|
misc.ms, root-experr*,
|
|
objects.stex
|
|
- for non-win32 systems, now setting al register to a count of the
|
|
floating-point register arguments as required for varargs functions
|
|
by the System V ABI.
|
|
x86_64.ss,
|
|
foreign.ms
|
|
- added a missing quote mark in new printf mat Windows case
|
|
foreign.ms
|
|
- added travis-ci automation script and a 'partialx' testing target to
|
|
allow us to perform more than a single run of testing without running
|
|
afoul of travis-ci's 50-minute build timeout. 'partialx' tests six
|
|
of the twelve configurations tested by 'allx'.
|
|
.travis.yml (new),
|
|
mats/Mf-base
|
|
- paired the 'partialx' down to just four test configurations, with one
|
|
interpreter run, to try to get the threaded builds into line with
|
|
travis-ci's timeout.
|
|
mats/Mf-base
|
|
- eliminated some direct assumptions that a vector's type/length field
|
|
is a fixnum and added meta-asserts to verify that it is in a couple of
|
|
others, to facilitate future changes to vector typing. vectors are
|
|
now treated essentially like fxvectors, strings, and bytevectors.
|
|
cmacros.ss, cpnanopass.ss, prims.ss, mkheader.ss,
|
|
alloc.c, gc.c, scheme.c
|
|
- fixed a few comments to refer to scheme.c rather than main.c
|
|
externs.h, globals.h, thread.c
|
|
- for 64-bit Windows systems, now copying foreign-procedure
|
|
double-precision floating-point register arguments to integer
|
|
registers as required for varargs functions. Windows does not
|
|
support single-precision floating-point arguments as varargs.
|
|
foreign.ms, np-languages.ss, x86_64.ss
|
|
- added an optional timeout argument to condition-wait
|
|
externs.h, stats.c, thread.c, thread.h, csug/threads.stex,
|
|
primvars.ms, thread.ms, release_notes.stex,
|
|
date.ss, primdata.ss, prims.ss
|
|
- added immutable strings, vectors, fxvector, bytevectors, and boxes
|
|
5_4.ss, 5_6.ss, bytevector.ss, cmacros.ss, cpnanopass.ss,
|
|
fasl.ss, library.ss, mkheader.ss, primdata.ss, prims.ss,
|
|
externs.h, types.h, alloc.c, fasl.c, gc.c, scheme.c,
|
|
5_5.ms, 5_6.ms, bytevector.ms, misc.ms, root-experr*
|
|
objects.stex
|
|
- various tweaks to the immutable object support; also taught cp0
|
|
to simplify ($fxu< (most-positive-fixnum) e) => (fx< e 0) so we
|
|
don't have any incentive in special casing length checks where
|
|
the maximum length happens to be (most-positive-fixnum).
|
|
5_4.ss, 5_6.ss, bytevector.ss, cmacros.ss, cp0.ss, cpnanopass.ss,
|
|
mkheader.ss, primdata.ss, prims.ss,
|
|
fasl.c, gc.c, types.h
|
|
root-experr*, patch*
|
|
- generated bytevector=? procedure now gets out quickly on eq
|
|
arguments. cp0 optimizes away a number of additional equality
|
|
operations at optimize-level 3 (including bytevector=?) when
|
|
applied to the same variable references, as it already did for
|
|
eq?, eqv?, and equal?, at all optimize levels.
|
|
cpnanopass.ss, cp0.ss, primdata.ss,
|
|
cp0.ms
|
|
- updated bullyx patches
|
|
patch*
|
|
- updated release notes and tweaked user's guide.
|
|
release-notes.stex, objects.stex
|
|
- fixed typo: fxvector-immutable-flag used in place of
|
|
bytevector-immutable-flag in computation of type-immutable-bytevector
|
|
cmacros.ss
|
|
- reallocated typed-object types, using previously unused tag #b010
|
|
for strings and giving bytevectors both #b001 and #b101 (the
|
|
latter for immutable bytevectors) so that the maximum bytevector
|
|
length on 32-bit machines is once again the most-positive fixnum.
|
|
treating bytevectors rather than strings or fxvectors (or even
|
|
vectors) special in this regard is appropriate since the maximum
|
|
number of bytes in a bytevector is maximum-length x 1 rather than
|
|
maximum-length x 4 for strings, fxvectors, and vectors on 32-bit
|
|
machines. with this change on 32-bit machines, a vector can
|
|
occupy up to 1/2 of virtual memory, strings and fxvectors 1/4,
|
|
and bytevectors 1/8.
|
|
cmacros.ss
|
|
- added record-type-equal-procedure, record-type-hash-procedure,
|
|
record-equal-procedure, and record-hash-procedure to enable
|
|
per-type customization of the behavior of equal? and equal-hash
|
|
for a record value
|
|
5_1.ss, newhash.ss, primdata.ss,
|
|
record.ms, root-experr*,
|
|
objects.stex
|
|
- adding dropped changes
|
|
record.ss,
|
|
root-experr*
|
|
- added entry for record-type-equal-procedure and friends
|
|
release_notes.stex
|
|
- changed copyright year to 2017
|
|
7.ss, scheme.1.in, comments of many files
|
|
- expanded the CSUG description of the handling of command-line
|
|
arguments not recognized as standard options and added a description
|
|
of the same to the COMMAND-LINE OPTIONS section of the man page.
|
|
did a bit of minor cleanup elsewhere in the man page.
|
|
use.stex, scheme.1.in
|
|
- destroy_thread now processes guardian entries
|
|
thread.c, 4.ms, release_notes.stex
|
|
- mutexes and conditions are now freed when no longer used via
|
|
$close-resurrected-mutexes&conditions, $keep-live primitive added
|
|
externs.h, prim5.c, thread.c, 4.ms, thread.ms, release_notes.stex,
|
|
7.ss, cpnanopass.ss, np-languages.ss, primdata.ss, prims.ss
|
|
- fix reduction for map and for-each with optimization level 3
|
|
to drop the expression, check that procedure has the correct
|
|
arity and is discardable or unsafe.
|
|
Also add a simplification for for-each with empty lists
|
|
with optimization level 2.
|
|
cp0.ss, 4.ms, primdata.ss
|
|
- fix invalid memory reference when enum-set-indexer procedure is not
|
|
passed a symbol
|
|
enum.ss, enum.ms, root-experr*, release_notes.stex
|
|
- fix overflow detection for fxsll, fxarithmetic-shift-left, and
|
|
fxarithmetic-shift
|
|
library.ss, fx.ms, release_notes.stex
|
|
- added ephemeron pairs and changed weak hashtables to use
|
|
ephemeron pairs for key--value mapping to avoid the key-in-value
|
|
problem
|
|
prims.ss, primdata.ss, newhash.ss, fasl.ss, mkheader.ss
|
|
cmacro.ss, prim5.c, fasl.c, gc.c, gcwrapper.c, types.h,
|
|
4.ms, hash.ms, objects.stex, smgmt.stex, csug.bib
|
|
- check_dirty_ephemeron now puts ephemerons whose keys haven't yet
|
|
been seen on the pending list rather than the trigger lists.
|
|
gc.c
|
|
- removed scan of space_ephemeron from check_heap because check_heap
|
|
as written can't handle the two link fields properly.
|
|
gcwrapper.c
|
|
- in the ephemerons mat that checks interaction between mutation and
|
|
collection, added generation arguments to the first two collect
|
|
calls so they always collect into the intended generation.
|
|
4.ms
|
|
- updated allx and bullyx patches
|
|
patch*
|
|
- fix strip-fasl-file for immutable strings and vectors,
|
|
fix an $oops call, and fix a vector-index increment in hashing
|
|
strip.ss, 7.ss, newhash.ss, misc.ms
|
|
- fix signature of fxbit-set?
|
|
primdata.ss
|
|
- more optimizations for map and for-each with explicit list
|
|
extend the reductions for map and for-each when the arguments are
|
|
explicit lists like (list 1 2 3 ...) or '(1 2 3 ...).
|
|
cp0.ss,
|
|
4.ms
|
|
- reverted to the preceding version of cp0 due to failure to preserve
|
|
the expected evaluation order in one of the mats; removed the
|
|
corresponding equivalent-expansion tests.
|
|
cp0.ss,
|
|
4.ms
|
|
- restored the map and for-each optimizations with a fix for the
|
|
evaluation-order bug.
|
|
cp0.ss,
|
|
4.ms
|
|
- added date-dst? to access the previously-hidden DST information in
|
|
date records, and added date-zone-name to provide a time zone name.
|
|
date.ss, primdata.ss,
|
|
stats.c,
|
|
date.ms, root-experr*, patch-compile*,
|
|
system.stex
|
|
- fixed a bug in flonum-extractor, which on 64-bit machines was using an
|
|
8-byte read instead of a 4-byte read to pick up the 4 highest-order
|
|
bytes of a little-endian flonum, potentially reading past the end of
|
|
mapped memory for flonums produced by taking the imaginary part of an
|
|
inexact complexnum (which, unlike other flonums, are not aligned on
|
|
16-byte boundaries). The 8-byte load would also have failed to produce
|
|
correct results on 64-bit big-endian machines (of which we presently
|
|
have none) because the offsets passed to flonum-extractor assume the
|
|
bits are in the lowest-order 4 bytes of the extracted field.
|
|
cp0.ss,
|
|
misc.ms,
|
|
release_notes.stex
|
|
- support Windows build on Bash/WSL
|
|
BUILDING, configure, workarea, c/vs.bat (new), mats/vs.bat (new),
|
|
c/Mf-*nt, mats/Mf-*, s/Mf-base
|
|
- fix c/version.h for FreeBSD (machine types i3fb, ti3fb, a6fb, ta6fb)
|
|
- fix reference to libc.so to be libc.so.7 for FreeBSD (machine types
|
|
i3fb, ti3fb, a6fb, ta6fb)
|
|
foreign.ms
|
|
- added CC option to configure for selecting the compiler
|
|
configure,
|
|
c/Mf-*
|
|
- Suppress warnings from implicit fall-through in case labels.
|
|
Mf-{a6,arm32,i3,ppc,ta6,ti3,tpp32}le
|
|
- added bytevector-compress and bytevector-uncompress
|
|
bytevector.ss, primdata.ss, new-io.c, prim5.c, externs.h,
|
|
objects.stex, release_notes.stex,
|
|
bytevector.ms, root-experr*
|
|
- fixed typo in S_abnormal_exit
|
|
schsig.c
|
|
- don't remove the pariah form in the cp0 pass
|
|
cp0.ss,
|
|
misc.ms
|
|
- revert use of ephemerons in weak hashtables, add ephemeron
|
|
hashtables
|
|
newhash.ss, hashtable-types.ss, library.ss, primdata.ss,
|
|
fasl.ss, fasl.c, gc.c, globals.h,
|
|
hash.ms, objects.stex, release_notes.stex
|
|
- fixed pariah mat
|
|
misc.ms
|
|
- minor wordsmithing and fix for an overfull hbox
|
|
objects.stex, system.stex
|
|
- fix (define-values () ....) to expand to a definition
|
|
syntax.ss, 3.ms
|
|
- added optional line and column components to a source object, a
|
|
locate-source-object-source function that uses the new components,
|
|
a current-locate-source-object-source parameter to control looking up
|
|
line and column information, a current-make-source-object parameter to
|
|
control location recording, an optional use-cache argument to
|
|
locate-source, and a 'source-object message for code and continuation
|
|
inspectors
|
|
read.ss, syntax.ss, 7.ss, compile.ss, cpnanopass.ss, exceptions.ss,
|
|
inspect.ss, primdata.ss, prims.ss, print.ss, cmacros.ss, types.ss,
|
|
mat.ss, 8.ms, root-experr*,
|
|
syntax.stex, debug.stex, system.stex, release_notes.stex
|
|
- fixed broken mats on Windows caused by Bash/WSL changes
|
|
7.ms, ftype.ms
|
|
- added "ez-grammar" example program
|
|
examples/ez-grammar.ss, examples/ez-grammar-test.ss,
|
|
examples/Makefile, examples.ms
|
|
- updated ez-grammar-test to write temp files to current directory and delete them when finished
|
|
examples/ez-grammar-test.ss
|
|
- added support for Microsoft Visual Studio 2017 on Windows
|
|
BUILDING, c/Mf-a6nt, c/Mf-ta6nt, c/vs.bat,
|
|
mats/Mf-a6nt, mats/Mf-ta6nt, mats/ftype.ms
|
|
- added support for building Windows installs with Bash/WSL
|
|
wininstall/Makefile, candle.bat, light.bat
|
|
- added support for building with Visual Studio 2017's BuildTools
|
|
c/vs.bat
|
|
- check for git before using to get submodules
|
|
configure
|
|
- fixed windows installer failure when vcredist is not preinstalled by
|
|
using the vcredist merge module, split the 32 and 64 bit MSIs and
|
|
added a wix bundle to combine the MSIs into a single exe installer,
|
|
added a batch script for locating Visual Studio's vcredist merge
|
|
modules, updated installer paths and names.
|
|
wininstall/*
|
|
- fixed np-normalize-context pass to process trivs list in mvset forms
|
|
in tail and predicate context and added regression tests. Thanks to
|
|
@marcomaggi for reporting the bug and @yjqww6 for providing a
|
|
simplified test and finding the initial solution.
|
|
cpnanopass.ss,
|
|
3.ms
|
|
- removed a useless check in foreign-alloc
|
|
record.ss
|
|
- fix cp0 reduction of fx[+-*]/carry and their signatures
|
|
cp0.ss
|
|
primdata.ss
|
|
fx.ms
|
|
- renamed s_gettime => S_gettime to remain consistent with the
|
|
convention that the only undocumented externs are prefixed with
|
|
S_.
|
|
externs.h, stats.c, thread.c
|
|
- added version number to scheme.1.in trailer; updated date.
|
|
scheme.1.in, newrelease
|
|
- removed version update of no-longer-existing bldnt.bat. "fixed"
|
|
sed patterns to replace \? with * for the benefit of the deficient
|
|
mac sed.
|
|
newrelease
|
|
|
|
9.5 changes:
|
|
- updated version to 9.5
|
|
bintar BUILDING NOTICE makefiles/Mf-install.in scheme.1.in
|
|
c/Makefile.i3nt c/Makefile.a6nt c/Makefile.ti3nt c/Makefile.ta6nt
|
|
workarea c/scheme.rc s/7.ss s/cmacros.ss
|
|
release_notes/release_notes.stex csug/csug.stex
|
|
- updated release notes and fixed user's guide overfull hbox.
|
|
release-notes.stex, syntax.stex
|
|
- updated install target to do something more sensible
|
|
release_notes/Makefile
|
|
|
|
9.5.1 changes:
|
|
- updated version to 9.5.1
|
|
bintar BUILDING NOTICE makefiles/Mf-install.in scheme.1.in
|
|
c/Makefile.i3nt c/Makefile.a6nt c/Makefile.ti3nt c/Makefile.ta6nt
|
|
workarea c/scheme.rc s/7.ss s/cmacros.ss
|
|
release_notes/release_notes.stex csug/csug.stex csug/use.stex
|
|
examples/ez-grammar-test.ss examples/socket.ss
|
|
wininstall/Makefile wininstall/*nt.wxs
|
|
- Added setting of CHEZSCHEMELIBDIRS to s and mats make files so that
|
|
an existing setting will not interfere with the build process, and
|
|
added a note to BUILDING that CHEZSCHEMELIBDIRS should be unset in
|
|
Version 9.5 and before.
|
|
s/Mf-base, mats/Mf-base, BUILDING
|
|
- the $case macro used by r6rs:case and case now unconditionally trims
|
|
redundant keys and expands into exclusive-cond rather than cond.
|
|
it catches references to => before expanding into exclusive-cond
|
|
to avoid supporting => as an undocumented and useless extension
|
|
of the case syntax. the r6rs:case and case macros now require
|
|
multiple clauses rather than leaving the enforcement to exclusive-cond,
|
|
and the exclusive-cond macro now requires multiple clauses rather
|
|
than leaving the enforcement to cond.
|
|
syntax.ss,
|
|
4.ms, root-experr*, patch*
|
|
- ifdef'd out include of xlocale.h for glibc, since the glibc
|
|
locale.h includes xlocale.h or, in glibc 2.26, its replacement.
|
|
expeditor.c
|
|
- Updated CSUG to replace \INSERTREVISIONMONTHSPACEYEAR with the current
|
|
month and year at the time of generation.
|
|
csug.stex, copyright.stex
|
|
- Updated configuration to set machine types in the CSUG and release notes
|
|
make files, and updated distclean target to remove these files.
|
|
configure, makefiles/Makefile-csug.in (renamed from csug/Makefile),
|
|
makefiles/Makefile-release_notes.in
|
|
(renamed from release_notes/Makefile),
|
|
makefiles/Makefile
|
|
- added pass-time tracking for pre-cpnanopass passes to compile.
|
|
compile.ss
|
|
- added inline handler for fxdiv-and-mod
|
|
cp0.ss, primdata.ss
|
|
- changed order in which return-point operations are done (adjust
|
|
sfp first, then store return values, then restore local saves) to
|
|
avoid storing return values to homes beyond the end of the stack
|
|
in cases where adjusting sfp might result in a call to dooverflood.
|
|
cpnanopass.ss, np-languages.ss
|
|
- removed unused {make-,}asm-return-registers bindings
|
|
cpnanopass.ss
|
|
- corrected the max-fv value field of the lambda produced by the
|
|
hand-coded bytevector=? handler.
|
|
cpnanopass.ss
|
|
- reduced live-pointer and inspector free-variable mask computation
|
|
overhead
|
|
cpnanopass.ss
|
|
- moved regvec cset copies to driver so they aren't copied each
|
|
time a uvar is assigned to a register. removed checks for
|
|
missing register csets, since registers always have csets.
|
|
cpnanopass.ss
|
|
- added closure-rep else clause in record-inspector-information!.
|
|
cpnanopass.ss
|
|
- augmented tree representation with a constant representation
|
|
for full trees to reduce the overhead of manipulating trees or
|
|
subtrees with all bits set.
|
|
cpnanopass.ss
|
|
- tree-for-each now takes start and end offsets; this cuts the
|
|
cost of traversing and applying the action when the range of
|
|
applicable offsets is other than 0..tree-size.
|
|
cpnanopass.ss
|
|
- introduced the notion of poison variables to reduce the cost of
|
|
register/frame allocation for procedures with large sets of local
|
|
variables. When the number of local variables exceeds a given
|
|
limit (currently hardwired to 1000), each variable with a large
|
|
live range is considered poison. A reasonable set of variables
|
|
with large live ranges (the set of poison variables) is computed
|
|
by successive approximation to avoid excessive overhead. Poison
|
|
variables directly conflict with all spillables, and all non-poison
|
|
spillables indirectly conflict with all poison spillables through
|
|
a shared poison-cset. Thus poison variables cannot live in the
|
|
same location as any other variable, i.e., they poison the location.
|
|
Conflicts between frame locations and poison variables are handled
|
|
normally, which allows poison variables to be assigned to
|
|
move-related frame homes. Poison variables are spilled prior to
|
|
register allocation, so conflicts between registers and poison
|
|
variables are not represented. move relations between poison
|
|
variables and frame variables are recorded as usual, but other
|
|
move relations involving poison variables are not recorded.
|
|
cpnanopass.ss, np-languages.ss
|
|
- changed the way a uvar's degree is decremented by remove-victim!.
|
|
instead of checking for a conflict between each pair of victim
|
|
and keeper and decrementing when the conflict is found, remove-victim!
|
|
now decrements the degree of each var in each victim's conflict
|
|
set. while this might decrement other victims' degrees unnecessarily,
|
|
it can be much less expensive when large numbers of variables are
|
|
involved, since the number of conflicts between two non-poison
|
|
variables should be small due to the selection process for
|
|
(non-)poison variables and the fact that the unspillables introduced
|
|
by instruction selection should also have few conflicts. That
|
|
is, it reduces the worst-case complexity of decrementing degrees
|
|
from O(n^2) to O(n).
|
|
cpnanopass.ss
|
|
- took advice in compute-degree! comment to increment the uvars in
|
|
each registers csets rather than looping over the registers for
|
|
each uvar asking whether the register conflicts with the uvar.
|
|
cpnanopass.ss
|
|
- assign-new-frame! now zeros out save-weight for local saves, since
|
|
once they are explicitly saved and restored, they are no longer
|
|
call-live and thus have no save cost.
|
|
cpnanopass.ss
|
|
- desensitized the let-values source-caching timing test slightly
|
|
8.ms
|
|
- updated allx, bullyx patches
|
|
patch*
|
|
- attempt to stabilize timing tests let-values source-caching
|
|
test and ephemeron gc test while resensitizing the former
|
|
8.ms, 4.ms
|
|
- various formatting and comment corrections
|
|
workarea,
|
|
s/Mf-base, bytevector.ss, cpnanopass.ss, date.ss,
|
|
5_6.ms, examples.ms
|
|
- updated newrelease to handle mats/Mf-*nt
|
|
newrelease mats/Mf-a6nt mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt
|
|
- fixed gather-filedata's sort of profile entries. for any two
|
|
entries x and y in the list produced by the sort call, if x's
|
|
bfp = y's bfp, x should come before y if x's efp < y's efp.
|
|
The idea is that enclosing entries should always come later
|
|
in the list. this affects only languages where two expressions
|
|
can start at the same character position.
|
|
pdhtml.ss
|
|
- expanded capability of ez-grammar with support for simple
|
|
parsing of binary operators w/precedence and associativity
|
|
and automatically generated markdown grammar descriptions.
|
|
ez-grammar-test.ss now also doubles as a test of pdhtml for
|
|
algebraic languages.
|
|
mats/examples.ms,
|
|
examples/ez-grammar.ss, examples/ez-grammar-test.ss,
|
|
examples/Makefile
|
|
- maybe-compile-{file,program,library} and automatic import
|
|
compilation now treat a malformed object file as if it were
|
|
not present and needs to be regenerated. A malformed object
|
|
file (particularly a truncated one) might occur if the compiling
|
|
processes is killed or aborts before it has a chance to delete
|
|
a partial object file.
|
|
syntax.ss,
|
|
7.ms
|
|
- fix signature of bytevector-[u/s]16-native-set!
|
|
primdata.ss
|
|
- fix enumerate signature
|
|
primdata.ss
|
|
- added support for Visual Studio 2017.15.5
|
|
wininstall/locate-vcredist.bat
|
|
- fixed substring-fill! and vector-fill! to return void, reflecting the
|
|
documented return value of unspecified value. Also changes substring-fill!
|
|
to use define-who instead of repeating 'substring-fill! in all the error
|
|
messages.
|
|
5_4.ss, 5_6.ss
|
|
- fix mat of substring-fill!
|
|
after the recent change, the result of substring-fill! is void
|
|
5_5.ms
|
|
- fix a few signatures
|
|
primdata.ss
|
|
- fix comment about Sscheme_program
|
|
main.c
|
|
- fix even? and odd? to error on exceptional flonums
|
|
5_3.ss, 5_3.ms, fl.ms, root-experr*, patch*
|
|
- fix bug in date->time-utc caused by incorrect use of difftime in Windows
|
|
stats.c, date.ms, release_notes.stex
|
|
- Check that first argument of map is a procedure in cp02 expansion
|
|
to raise the same error that the non expanded version
|
|
cp0.ss
|
|
- avoid building the result list in a map that is called for effect
|
|
cp0.ss
|
|
- added tests to ensure the optimize-level version 2 of map and for-each raise
|
|
a non-procedure exception when the first argument is not a procedure, even
|
|
when the rest of the program is compiled at optimize level 3.
|
|
4.ms, root-experr-compile-0-f-f-f, patch-compile-0-t-f-f,
|
|
patch-compile-0-f-t-f, patch-interpret-0-f-t-f, patch-interpret-0-f-f-f,
|
|
patch-interpret-3-f-t-f, patch-interpret-3-f-f-f
|
|
- fix bounds checking with an immediate index on immutable vectors,
|
|
fxvectors, strings, and bytevectors
|
|
cpnanopass.ss, 5_5.ms, 5_6.ms, bytevector.ms
|
|
- fix a few signatures
|
|
primdata.ss
|
|
- more staid and consistent Mf-cross main target
|
|
Mf-cross
|
|
- cpletrec now replaces the incoming prelexes with new ones so
|
|
that it doesn't have to alter the flags on the incoming ones, since
|
|
the same expander output is passed through the compiler twice while
|
|
compiling a file with macro definitions or libraries. we were
|
|
getting away without this just by luck.
|
|
cpletrec.ss
|
|
- pure? and ivory? now return #t for a primref only if the prim is
|
|
declared to be a proc, since some non-proc prims are mutable, e.g.,
|
|
$active-threads and $collect-request-pending.
|
|
cp0.ss
|
|
- $error-handling-mode? and $eol-style? are now properly declared to
|
|
be procs rather than system state variables.
|
|
primdata.ss
|
|
- the new pass $check-prelex-flags verifies that prelex referenced,
|
|
multiply-referenced, and assigned flags are set when they
|
|
should be. (it doesn't, however, complain if a flag is set
|
|
when it need not be.) when the new system parameter
|
|
$enable-check-prelex-flags is set, $check-prelex-flags is
|
|
called after each major pass that produces Lsrc forms to verify
|
|
that the flags are set correctly in the output of the pass.
|
|
this parameter is unset by default but set when running the
|
|
mats.
|
|
cprep.ss, back.ss, compile.ss, primdata.ss,
|
|
mats/Mf-base
|
|
- removed the unnecessary set of prelex referenced flag from the
|
|
build-ref routines when we've just established that it is set.
|
|
syntax.ss, compile.ss
|
|
- equivalent-expansion? now prints differences to the current output
|
|
port to aid in debugging.
|
|
mat.ss
|
|
- the nanopass that patches calls to library globals into calls to
|
|
their local counterparts during whole-program optimization now
|
|
creates new prelexes and sets the prelex referenced, multiply
|
|
referenced, and assigned flags on the new prelexes rather than
|
|
destructively setting flags on the incoming prelexes. The
|
|
only known problems this fixes are (1) the multiply referenced
|
|
flag was not previously being set for cross-library calls when
|
|
it should have been, resulting in overly aggressive inlining
|
|
of library exports during whole-program optimization, and (2)
|
|
the referenced flag could sometimes be set for library exports
|
|
that aren't actually used in the final program, which could
|
|
prevent some unreachable code from being eliminated.
|
|
compile.ss
|
|
- added support for specifying default record-equal and
|
|
record-hash procedures.
|
|
primdata.ss, cmacros.ss, cpnanopass.ss, prims.ss, newhash.ss,
|
|
gc.c,
|
|
record.ms
|
|
- added missing call to relocate for subset-mode tc field, which
|
|
wasn't burning us because the only valid non-false value, the
|
|
symbol system, is in the static generation after the initial heap
|
|
compaction.
|
|
gc.c
|
|
- added a lambda-commonization pass that runs after the other
|
|
source optimizations, particularly inlining, and a new parameter
|
|
that controls how hard it works. the value of commonization-level
|
|
ranges from 0 through 9, with 0 disabling commonization and 9
|
|
maximizing it. The default value is 0 (disabled). At present,
|
|
for non-zero level n, the commonizer attempts to commonize
|
|
lambda expressions consisting of 2^(10-n) or more nodes.
|
|
commonization of one or more lambda expressions requires that
|
|
they have identical structure down to the leaf nodes for quote
|
|
expressions, references to unassigned variables, and primitives.
|
|
So that various downstream optimizations aren't disabled, there
|
|
are some additional restrictions, the most important of which
|
|
being that call-position expressions must be identical. The
|
|
commonizer works by abstracting the code into a helper that
|
|
takes the values of the differing leaf nodes as arguments.
|
|
the name of the helper is formed by concatenating the names of
|
|
the original procedures, separated by '&', and this is the name
|
|
that will show up in a stack trace. The source location will
|
|
be that of one of the original procedures. Profiling inhibits
|
|
commonization, because commonization requires profile source
|
|
locations to be identical.
|
|
cpcommonize.ss (new), compile.ss, interpret.ss, cprep.ss,
|
|
primdata.ss, s/Mf-base,
|
|
mats/Mf-base
|
|
- cpletrec now always produces a letrec rather than a let for
|
|
single immutable lambda bindings, even when not recursive, for
|
|
consistent expand/optimize output whether the commonizer is
|
|
run or not.
|
|
cpletrec.ss,
|
|
record.ms
|
|
- trans-make-ftype-pointer no longer generates a call to
|
|
$verify-ftype-address if the address expression is a call to
|
|
ftype-pointer-address.
|
|
ftype.ss
|
|
- Remove special case for (#2%map p '()) in cp0
|
|
so the reduced version checks that p is a procedure.
|
|
Also make the same change for #2%for-each.
|
|
cp0.ss, 4.ms
|
|
- Mitigate a race condition in Windows when deleting files and directories.
|
|
windows.c
|
|
- add (& ftype) argument/result for foreign-procedure, which supports
|
|
struct arguments and results for foreign calls
|
|
syntax.ss, ftype.ss, cpnanopass.ss, x86.ss, x86_64.ss,
|
|
base-lang.ss, np-languages.ss, cprep.ss, primdata.ss,
|
|
schlib.c, prim.c, externs.h
|
|
mats/foreign4.c, mats/foreign.ms mats/Mf-*
|
|
foreign.stex, release_notes.stex
|
|
- reworked the S_call_help/S_return CCHAIN handling to fix a bug in which
|
|
the signal handler could trip over the NULL jumpbuf in a CCHAIN record.
|
|
schlib.c
|
|
- install equates.h, kernel.o, and main.o on unix-like systems
|
|
Mf-install.in
|
|
- standalone export form now handles (import import-spec ...)
|
|
8.ms, syntax.ss, release_notes.stex
|
|
- add collect-rendezvous
|
|
prim.c, 7.ss, primdata.ss, 7.ms, smgmt.stex, release_notes.stex
|
|
- added identifier? checks to detect attempts to use non-identifier
|
|
field names in define-record-type field specs.
|
|
syntax.ss,
|
|
record.ms, root-experr*
|
|
- fixed an issue with the library system where an exception that occurs
|
|
during visit or revisit left the library in an inconsistent state that
|
|
caused it to appear that it was still in the process of running. This
|
|
manifested in it raising a cyclic dependency exception, even though
|
|
there really is not a cyclic dependency. The various library
|
|
management functions involved will now reset the part of the library
|
|
when an exception occurs. This also means that if the library visit
|
|
or revisit failed for a transient reason (such as a missing or
|
|
incorrect library version that can be fixed by updating the
|
|
library-directories) it is now possible to recover from these errors.
|
|
expand-lang.ss, syntax.ss, interpret.ss, compile.ss, cprep.ss,
|
|
8.ms
|
|
- Added -Wno-implicit-fallthrough flag to macOS C makefiles.
|
|
c/Mf-a6osx, c/Mf-i3osx, c/Mf-ta6osx, c/Mf-ti3osx
|
|
- handle compiled library code in boot files once base boot is loaded
|
|
globals.h, scheme.c, 7.ss, 7.ms, primdata.ss
|
|
- add newline to (import-notify) message in compile-whole-library and
|
|
compile-whole-program
|
|
compile.ss
|
|
- add a __collect_safe convention for foreign procedures and callables
|
|
to automate thread [de]activation
|
|
syntax.ss, ftype.ss, x86.ss, x86_64.ss, ppc32.ss,
|
|
cmacros.ss, base-lang.ss, np-languages.ss, cprep.ss, cpcommonize.ss,
|
|
cp0.ss, cpcheck.ss, cpvalid.ss, interpret.ss, cpletrec.ss,
|
|
thread.c, prim.c, externs.h, foreign.stex, release_notes.stex,
|
|
mats/Mf-t*, foreign.ms, foreign4.c
|
|
- Don't install equates.h
|
|
Mf-install.in, wininstall/*nt.wxs
|
|
- Windows install now sets HeapSearchPath in the registry
|
|
wininstall/product.wxs
|
|
- Use Windows path separator character when finding boot files on Windows.
|
|
scheme.c
|
|
- Propagate enable-check-prelex-flags to separate-eval sub-process in tests.
|
|
mats.ss
|
|
- Reject attempts to visit libraries that compile-whole-program has rendered
|
|
invisible due to libs-visible? flag.
|
|
compile.ss, 7.ms, root-experr-compile-0-f-f-f, root-experr-compile-2-f-f-f,
|
|
patch-compile-0-f-t-f, patch-compile-0-t-f-f, patch-interpret-0-f-f-f,
|
|
patch-interpret-0-f-t-f, patch-interpret-3-f-f-f, patch-interpret-3-f-t-f
|
|
- Double FMTBUFSIZE to fix compilation with gcc-8
|
|
c/prim5.c
|
|
- Improved Unicode support for command-line arguments, environment
|
|
variables, the C interface and error messages, and the Windows
|
|
registry, DLL loading, and process creation
|
|
scheme.h, alloc.c, externs.h, fasl.c, foreign.c, io.c, main.c,
|
|
prim5.c, scheme.c, schlib.c, schsig.c, stats.c, system.h,
|
|
version.h, windows.c, foreign.stex, system.stex, mkheader.ss,
|
|
prims.ss
|
|
- Repair x86_64 `&` foreign-procedure result type handling for types of a
|
|
small size that is not a multiple of the word size
|
|
x86_64.ss, foreign.ms, foreign4.c
|
|
- Avoid an occasional invalid memory violation on Windows in S_call_help
|
|
schlib.c
|
|
- Updated csug socket code to match that in examples folder
|
|
csug/foreign.stex, examples/socket.ss
|
|
- add an option --disable-x11
|
|
c/version.h, configure
|
|
- allow s_ee_get_clipboard to use the pastebuffer on macOS even when X11 is not
|
|
available.
|
|
expeditor.c
|
|
- Adjust cp0 to not replace a procedure name from a let wrapper
|
|
cp0.ss, misc.ms
|
|
- allx now runs all up to three (rather than two) times to eliminate
|
|
bootstrap failures after small changes like the recent change to
|
|
procedure names, so we don't have to rebuild the boot files as often.
|
|
Mf-base
|
|
- Fix tests for cp0 procedure-name change
|
|
misc.ms, patch-compile-0-f-t-f, patch-interpret-0-f-t-f
|
|
- add load-compiled-from-port and Sregister_boot_file_fd for loading modes
|
|
based on open files instead of paths
|
|
7.ss, primdata.ss, mkheader.ss, scheme.c
|
|
7.ms, foreign.stex, system.stex
|
|
- auto-config improvement, detect if X11 exist on Mac OS X
|
|
configure
|
|
- added box-cas! and vector-cas!
|
|
prims.ss, cpnanopass.ss, np-languages.ss,
|
|
cmacros.ss, library.ss, primdata.ss
|
|
x86_64.ss x86.ss, ppc32.ss, arm32.ss,
|
|
5_6.ms, 5_8.ms, root-experr*,
|
|
objects.stex, release_notes.stex
|
|
- add generate-procedure-source-information
|
|
cmacros.ss, compile.ss, cpnanopass.ss, inspect.ss,
|
|
primdata.ss, prims.ss, misc.ms,
|
|
system.stex, release_notes.stex
|
|
- fix boot_call and the invoke code object to handle multiple values
|
|
scheme.c, cpnanopass.ss, 7.ms, release_notes.stex, system.stex
|
|
- the compiler now uses a temporary variable to hold the return
|
|
value of a nested call across the restore-local-saves form to
|
|
properly handle the case where the destination lvalue is an mref
|
|
whose base and/or index is a local save.
|
|
cpnanopass.ss,
|
|
misc.ms
|
|
- flush expand-output and expand/optimize-output ports
|
|
compile.ss
|
|
- clarify "unknown module" error message in determine-module-imports
|
|
syntax.ss
|
|
- restore the import code on reset to provide consistent error message
|
|
syntax.ss, 8.ms
|
|
- add uninstall target
|
|
Makefile.in, Makefile-workarea.in, Mf-install.in
|
|
- add PDB files for Windows
|
|
c/*nt, wininstall/*nt.wxs
|
|
- use uuid_generate on unix-like systems for S_unique_id
|
|
BUILDING, c/Mf-*le, stats.c, objects.stex, release_notes.stex
|
|
- when thread_get_room exhausts the local allocation area, it now
|
|
goes through a common path with S_get_more_room to allocate a new
|
|
local allocation area when appropriate. this can greatly reduce
|
|
the use of global allocation (and the number of tc mutex acquires
|
|
in threaded builds) when a lot of small objects are allocated by
|
|
C code with no intervening Scheme-side allocation or dirty writes.
|
|
alloc.c, types.h, externs.h
|
|
- made Windows filename handling in directory-list, file-access-time,
|
|
file-change-time, file-directory?, file-exists?, file-modification-time,
|
|
get-mode, and path-absolute more consistent with
|
|
https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file
|
|
6.ss, 6.ms, io.stex, release_notes.stex
|
|
- fix handling of calling code's address for locking around a callable,
|
|
where the cp register copy in the thread context could be changed
|
|
in the callable prep before S_call_help gets it
|
|
cpnanopass.ss, x86_64.ss, x86.ss, foreign2.c, foreign.ms
|
|
- added initialization of seginfo sorted and trigger_ephemerons fields.
|
|
segment.c
|
|
- redirecting output of first two checkboot runs to /dev/null so the
|
|
ignored exception, if any, does not show up in the make output.
|
|
s/Mf-base
|
|
- fixed 7.ms to specify the relative path of testfile.boot
|
|
7.ms
|
|
- profile counts are now maintained even for code that has been
|
|
reclaimed by the collector and must be released explicitly by the
|
|
programmer via (profile-release-counters).
|
|
pdhtml.ss, primdata.ss,
|
|
globals.h, externs.h, fasl.c, prim5.c, prim.c, alloc.c, scheme.c,
|
|
misc.ms,
|
|
release_notes.stex, system.stex
|
|
- clarified required use of scheme-start to start an application
|
|
packaged as a boot file and added a short "myecho" example.
|
|
use.stex
|
|
- fixed a bug in cp0 bug that could fold the apply of a primitive, where
|
|
the last argument is not a list, as if it were a call to the primitive
|
|
with those arguments
|
|
cp0.ss, cp0.ms
|
|
- fix allocation of string/bytevector for a foreign-callable argument
|
|
or foreign-call return
|
|
cpnanopass.ss, foreign.ms, foreign2.c
|
|
- foreign-callable code objects are now flagged as "templates", and
|
|
the collector now refuses to discard relocation information for
|
|
code objects marked as templates when copying them to the static
|
|
generation.
|
|
cmacros.ss, cpnanopass.ss,
|
|
gc.c,
|
|
7.ms
|
|
- add hashtable-cells and add a size argument to hashtable-keys,
|
|
hashtable-values, and hashtable-entries
|
|
newhash.ss, primdata.ss,
|
|
hash.ms, root-experr*, patch*,
|
|
objects.stex, release_notes.stex
|
|
- the body of load-library is now wrapped in a $pass-time with
|
|
to show the time spent loading libraries separately from the time
|
|
spent in expand.
|
|
syntax.ss
|
|
- interpret now plays the pass-time game
|
|
interpret.ss
|
|
- added compile-time-value? predicate and
|
|
compile-time-value-value accessor
|
|
syntax.ss, primdata.ss,
|
|
8.ms, primvars.ms, root-experr*
|
|
- $pass-stats now returns accurate stats for the currently timed
|
|
pass.
|
|
7.ss
|
|
- compile-whole-program and compile-whole-library now propagate
|
|
recompile info from the named wpo file to the object file
|
|
to support maybe-compile-program and maybe-compile-library in
|
|
the case where compile-whole-{program,library} overwrites the
|
|
original object file.
|
|
compile.ss,
|
|
7.ms, mat.ss, primvars.ms
|
|
- replaced the ancient and unusable bintar with one that creates
|
|
a useful tarball for binary installs
|
|
bintar
|
|
- generated Mf-install InstallBin (InstallLib, InstallMan) now
|
|
correctly indirects through InstallPrefix if the --installbin
|
|
(--installlib, --installman) configure flag is not present.
|
|
configure
|
|
- removed definition of generate-procedure-source-information
|
|
patch.ss
|
|
- guardian tconc cells are now allocated in generation 0 in the hope
|
|
that they can be released more quickly.
|
|
gc.c
|
|
- added ftype-guardian syntax: (ftype-guardian A) creates a new
|
|
guardian for ftype pointers of type A, the first base field (or
|
|
one of the first base fields in the case of unions) of which must
|
|
be a word-sized integer with native endianness representing a
|
|
reference count. ftype pointers are registered with and retrieved
|
|
from the guardian just like objects are registered with and
|
|
retrieved from any guardian. the difference is that the garbage
|
|
collector decrements the reference count before resurrecting an
|
|
ftype pointer and resurrects only those whose reference counts
|
|
become zero, i.e., are ready for deallocation.
|
|
ftype.ss, cp0.ss, cmacros.ss, cpnanopass.ss, prims.ss, primdata.ss,
|
|
gc.c,
|
|
4.ms, root-experr*
|
|
- fixed a bug in automatic recompilation handling of missing include
|
|
files specified with absolute pathnames or pathnames starting with
|
|
"./" or "..": was erroring out in file-modification-time with a
|
|
file-not-found or other exception rather than recompiling.
|
|
syntax.ss,
|
|
7.ms, root-experr*, patch*
|
|
- changed inline vector-for-each and string-for-each code to
|
|
put the last call to the procedure in tail position, as was
|
|
already done for the library definitions and for the inline
|
|
code for for-each.
|
|
cp0.ss,
|
|
5_4.ms, 5_6.ms
|
|
- the compiler now generates better inline code for the bytevector
|
|
procedure. instead of one byte memory write for each argument,
|
|
it writes up to 4 (32-bit machines) or 8 (64-bit machines) bytes
|
|
at a time, which almost always results in fewer instructions and
|
|
fewer writes.
|
|
cpnanopass.ss,
|
|
bytevector.ms
|
|
- packaged unchanging implicit reader arguments into a single record
|
|
to reduce the number of arguments.
|
|
read.ss
|
|
- recoded run-vector to handle zero-length vectors. it appears
|
|
we're not presently generating empty vectors (representing empty
|
|
groups), but the fasl format permits them.
|
|
7.ss
|
|
- reverted the earlier change to restore indirection through
|
|
InstallPrefix, since it didn't and can't play well with the
|
|
generated config.h. Instead removed InstallPrefix entirely so
|
|
it isn't an attractive hazard.
|
|
configure, makefiles/Mf-install.in
|
|
- fixed bug in inline-lists: wasn't setting multiply-referenced flag
|
|
on p to account for the procedure? check at optimize-level 2.
|
|
cpletrec.ss
|
|
- fixed bug in check-prelex-flags: was hardwiring $cpcheck-prelex-flags
|
|
"after" argument to 'uncprep rather than passing along its argument.
|
|
compile.ss
|
|
- commented out local definition of sorry! so that problems detected
|
|
by $cpcheck-prelex-flags actually result in a raised exception.
|
|
cprep.ss
|
|
- exposed the default-library-search-handler and a library-search-handler
|
|
parameter to permit more control over the search for libraries during
|
|
import, compile-whole-library, and compile-whole-program
|
|
syntax.ss, primdata.ss,
|
|
8.ms,
|
|
libraries.stex
|
|
- added fix for whole program/library compilation bug with help from
|
|
@owaddell who originally reported the problem in issue 386. this bug
|
|
arises from the way the parts of the combined library, and their
|
|
binary dependencies, are invoked when one of the constituent libraries
|
|
is invoked. consider, for example, a combined library that contains
|
|
(A) and (B), where (B) depends on a binary library (C). depending on
|
|
the sort order of (A) and (B), which may be unconstrained in the
|
|
partial ordering established by library dependencies, invoking (A) may
|
|
result in the invoke code for (B) being run first, without (B) ever
|
|
being explicitly invoked. this can result in bindings required from
|
|
(C) by the invoke code in (B) to be unbound. even in the case where
|
|
(A) comes before (B) in the topological sort, if they are combined
|
|
into the same cluster, (B)'s invoke code will be run as part of
|
|
invoking (A). the solution is two part: first we extend the invoke
|
|
requirements of the first library in the cluster to include the binary
|
|
libraries that precede it in the topological sort and add a dependency
|
|
on the first library in the cluster to all of the other libraries in
|
|
the cluster. this means no matter which library in the cluster is
|
|
invoked first, it will cause the first library to be invoked, in turn
|
|
ensuring the binary libraries that precede it are invoked. when there
|
|
are multiple clusters, a dependency is added from each cluster to the
|
|
first library in the cluster that precedes it. this ensures that
|
|
invoking a library in a later cluster first, will still cause all of
|
|
the dependencies of the previous clusters to be invoked. ultimately,
|
|
these extra dependencies enforce an ordering on the invocation of the
|
|
source and binary libraries that matches the topological sort, even if
|
|
the topological sort was under constrained. to maintain the property
|
|
that import requirements are a superset of the invoke and visit
|
|
requirements, we also extend the import requirements to include the
|
|
extended invoke requirements. the import requirements are also added
|
|
to the dependency graph to further constrain the topological sort and
|
|
ensure that we do not introduce artificial cycles in the import graph.
|
|
compile.ss,
|
|
7.ms,
|
|
root-experr*, patch*
|
|
- fixed failure to install examples for tarball installs
|
|
Mf-install.in
|
|
- improved packaging support:
|
|
replaced bintar script with bintar directory and make file;
|
|
tarballs are created via "make create-tarball" and are placed in
|
|
the workarea's bintar directory. added rpm directory and make
|
|
file for creating RPMs via "make create-rpm". added pkg directory
|
|
and make file for creating OSX packages via "make create-pkg".
|
|
bintar (removed), bintar/Makefile (new), rpm/Makefile (new),
|
|
pkg/Makefile (new), pkg/rmpkg (new), workarea, checkin, newrelease,
|
|
Makefile.in, Makefile-workarea.in.
|
|
- improved error message for compile-whole-program and
|
|
compile-whole-library when a top-level expression is discovered while
|
|
processing a wpo file.
|
|
compile.ss
|
|
- minor build and new-release updates
|
|
checkin, newrelease, Makefile.in, Makefile-workarea.in
|
|
- added library-search-handler, compile-whole-library, and improved
|
|
packaging to the release notes.
|
|
release_notes/release_notes.stex
|
|
|
|
9.5.2 changes:
|
|
- updated version to 9.5.2
|
|
bintar/Makefile rpm/Makefile pkg/Makefile BUILDING NOTICE
|
|
makefiles/Mf-install.in makefiles/Makefile-csug.in scheme.1.in
|
|
c/Makefile.a6nt c/Makefile.i3nt c/Makefile.ta6nt c/Makefile.ti3nt
|
|
mats/Mf-a6nt mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt workarea
|
|
c/scheme.rc s/7.ss s/cmacros.ss release_notes/release_notes.stex
|
|
csug/copyright.stex csug/csug.stex rpm/Makefile pkg/Makefile
|
|
wininstall/Makefile wininstall/a6nt.wxs wininstall/i3nt.wxs
|
|
wininstall/ta6nt.wxs wininstall/ti3nt.wxs
|
|
- fixed handling of bintar, rpm, pkg make files
|
|
newrelease
|
|
- fixed a bug in the fasl representation and reading of mutually
|
|
recursive ftypes where one of the members of the cycle is the
|
|
parent of another, which manifested in the fasl reader raising
|
|
bogus "incompatible record type" exceptions. (The bug could also
|
|
affect other record-type descriptors with cycles involving parent
|
|
rtds and "extra" fields.) object files created before this fix
|
|
are incompatible with builds with this fix, and objects files
|
|
created after this fix are incompatible builds without this fix.
|
|
fasl.ss, strip.ss,
|
|
fasl.c,
|
|
ftype.ms,
|
|
release_notes.stex
|
|
|
|
9.5.3 changes:
|
|
- updated version to 9.5.3
|
|
BUILDING NOTICE makefiles/Mf-install.in makefiles/Makefile-csug.in
|
|
scheme.1.in c/Makefile.a6nt c/Makefile.i3nt c/Makefile.ta6nt
|
|
c/Makefile.ti3nt mats/Mf-a6nt mats/Mf-i3nt mats/Mf-ta6nt
|
|
mats/Mf-ti3nt workarea c/scheme.rc s/7.ss s/cmacros.ss
|
|
release_notes/release_notes.stex csug/copyright.stex csug/csug.stex
|
|
bintar/Makefile rpm/Makefile pkg/Makefile wininstall/Makefile
|
|
wininstall/a6nt.wxs wininstall/i3nt.wxs wininstall/ta6nt.wxs
|
|
wininstall/ti3nt.wxs
|
|
- fixed welcome text and copyright year in macOS package
|
|
newrelease pkg/Makefile release_notes.stex
|
|
- update Windows spin-loop count for deleting files and directories
|
|
windows.c
|
|
- install a file containing revision information alongside boot files;
|
|
embed git revision in exported source archives
|
|
bintar/Makefile Mf-install.in wininstall/*nt.wxs
|
|
s/Mf-base s/.gitattributes s/update-revision
|
|
- ignore multiple-value return from interleaved init expressions in
|
|
top-level-program
|
|
syntax.ss, 8.ms
|
|
- add name fields for mutexes and condition variables, now `make-mutex` and
|
|
`make-condition` accept an optional argument `name`, which must be a
|
|
symbol or #f. The name, if not #f, is printed every time the object is
|
|
printed, which is useful for debugging
|
|
primdata.ss prims.ss print.ss
|
|
thread.ms threads.stex
|
|
- change the default compression mode to LZ4 and add a compress-format
|
|
parameter to select a compression format for output; input infers the
|
|
compression format
|
|
io.ss, bytevector.ss, back.ss, primdata.ss,
|
|
compress.c (new), new-io.c, fasl.c, scheme.c, compress.h (new),
|
|
externs.h, system.h, expeditor.c, configure, Mf-*, Makefile.*nt,
|
|
workarea, mat.ss, io.ms, io.stex, objects.stex, release_notes.stex,
|
|
root-experr*, patch*
|
|
- added compress-level parameter to select a compression level for
|
|
file writing and changed the default for lz4 compression to do a
|
|
better job compressing. finished splitting glz input routines
|
|
apart from glz output routines and did a bit of other restructuring.
|
|
removed gzxfile struct-as-bytevector wrapper and moved its fd
|
|
into glzFile. moved DEACTIVATE to before glzdopen_input calls
|
|
in S_new_open_input_fd and S_compress_input_fd, since glzdopen_input
|
|
reads from the file and could block. the compress format and now
|
|
level are now recorded directly the thread context. replaced
|
|
as-gz? flag bit in compressed bytevector header word with a small
|
|
number of bits recording the compression format at the bottom of
|
|
the header word. flushed a couple of bytevector compression mats
|
|
that depended on the old representation. (these last few changes
|
|
should make adding new compression formats easier.) added
|
|
s-directory build options to choose whether to compress and, if
|
|
so, the format and level.
|
|
compress-io.h, compress-io.c, new-io.c, equates.h, system.h,
|
|
scheme.c, gc.c,
|
|
io.ss, cmacros.ss, back.ss, bytevector.ss, primdata.ss, s/Mf-base,
|
|
io.ms, mat.ss, bytevector.ms, root-experr*,
|
|
release_notes.stex, io.stex, system.stex, objects.stex
|
|
- improved the effectiveness of LZ4 boot-file compression to within
|
|
15% of gzip by increasing the lz4 output-port in_buffer size to
|
|
1<<18. With the previous size (1<<14) LZ4-compressed boot files
|
|
were about 50% larger. set the lz4 input-port in_buffer and
|
|
out_buffer sizes to 1<<12 and 1<<14. there's no clear win at
|
|
present for larger input-port buffer sizes.
|
|
compress-io.c
|
|
- To reduce the memory hit for the increased output-port in_buffer
|
|
size and the corresponding increase in computed out_buffer size,
|
|
one output-side out_buffer is now allocated (lazily) per thread
|
|
and stored in the thread context. The other buffers are now
|
|
directly a part of the lz4File_out and lz4File_in structures
|
|
rather than allocated separately.
|
|
compress-io.c, scheme.c, gc.c,
|
|
cmacros.ss
|
|
- split out the buffer emit code from glzwrite_lz4 into a
|
|
separate glzemit_lz4 helper that is now also used by gzclose
|
|
so we can avoid dealing with a NULL buffer in glzwrite_lz4.
|
|
glzwrite_lz4 also uses it to writing large buffers directly and
|
|
avoid the memcpy.
|
|
compress-io.c
|
|
- replaced lz4File_out and lz4File_in mode enumeration with the
|
|
compress format and inputp boolean. using switch to check and
|
|
raising exceptions for unexpected values to further simplify
|
|
adding new compression formats in the future.
|
|
compress-io.c
|
|
- replaced the never-defined struct lz4File pointer in glzFile
|
|
union with the more specific struct lz4File_in_r and Lz4File_out_r
|
|
pointers.
|
|
compress-io.h, compress-io.c
|
|
- added free of lz4 structures to gzclose. also changed file-close
|
|
logic generally so that (1) port is marked closed before anything is
|
|
freed to avoid dangling pointers in the case of an interrupt or
|
|
error, and (2) structures are freed even in the case of a write
|
|
or close error, before the error is reported. also now mallocing
|
|
glz and lz4 structures after possibility of errors have passed where
|
|
possible and freeing them when not.
|
|
compress-io.c,
|
|
io.ss
|
|
- added return-value checks to malloc calls and to a couple of other
|
|
C-library calls.
|
|
compress-io.c
|
|
- corrected EINTR checks to look at errno rather than return codes.
|
|
compress-io.c
|
|
- added S_ prefixes to the glz* exports
|
|
externs.h, compress-io.c, new-io.c, scheme.c, fasl.c
|
|
- added entries for mutex-name and mutex-thread
|
|
threads.stex
|
|
- fix record-ref reduction in cp0
|
|
in expressions like
|
|
(record-ref ... (begin (newline) (record ...)))
|
|
the reduction was dropping the possible side effect expressions
|
|
in this case the (newline).
|
|
cp0.ss
|
|
- zero?, fxzero?, positive?, fxpositive?, etc., now go through
|
|
(a suitably modified) relop-length so that, for example,
|
|
(zero? (length x)) results in the same code as (null? x). added
|
|
correctness tests for these and all of the other predicates that
|
|
go through relop-length.
|
|
cpnanopass.ss, 5_2.ms
|
|
- assertion-violationf and friends now show the who, message, and
|
|
irritants in the original call when who or message is found not to
|
|
be of the right type.
|
|
exceptions.ss
|
|
- fix incorrect uses of fxzero? x86.ss backend, since a 32-bit
|
|
immediate is not necessarily a fixnum
|
|
x86.ss
|
|
- added MinGW/MSYS build support for Windows and configuration for
|
|
Travis-CI testing of all Windows builds
|
|
BUILDING, .travis*, wininstall/Makefile
|
|
- fix multiply of -2^30 with itself on 64-bit platforms
|
|
number.c, 5_3.ms, release_notes.stex
|
|
- fixed typo in description of case macro
|
|
csug/control.stex
|
|
- fix signatures of $annotation-options, $fasl-strip-options,
|
|
$file-options, and $library-requirements-options
|
|
primdata.ss
|
|
- small fix in relop-length to enable the optimization
|
|
cpnanopass.ss
|
|
- make test for relop-length more sensitive
|
|
5_2.ms
|
|
- added support for Microsoft Visual Studio 2019 on Windows
|
|
BUILDING, c/vs.bat, wininstall/locate-vcredist.bat
|
|
- fixed open-string-input-port on immutable strings
|
|
cpnanopass.ss, io.ms, release_notes.stex
|
|
- use setenv rather than putenv on non WIN32 environments
|
|
prim5.c, system.stex
|
|
- restore {Free,Open,Net}BSD build, support Windows cross-compile
|
|
via MinGW, add configuration options, and add helper makefile targets
|
|
expeditor.c, thread.c, stats.c, statics.c, scheme.c, main.c, types.h,
|
|
externs.h, globals.h, nocurses.h, version.h, system.h, segment.h,
|
|
a6ob.def, ta6ob.def, a6nb.def, ta6nb.def, i3nt.def, ti3nt.def,
|
|
c/Mf-*, build.bat, makefiles/Makefile.in, makefiles/Mf-install.in,
|
|
s/update-revision, BUILDING
|
|
- export `ee-backward-delete-sexp` binding in the expression-editor module.
|
|
expeditor.ss
|
|
- fix ee_read_char to handle ^@ properly
|
|
expeditor.c
|
|
- prevent access before start of array
|
|
scheme.c
|
|
- remove dead stores in files
|
|
compress-io.c, new-io.c
|
|
- fixed tab character in makefiles
|
|
c/Mf-*nt
|
|
- use case-insensitive search for ".exe" on Windows
|
|
c/scheme.c
|
|
- fix __collect_safe for x86_64 and floating-point arguments or results
|
|
x86_64.ss, foreign.ms, release_notes.stex
|
|
- annotations are now preserved in object files for debug
|
|
only, for profiling only, for both, or not at all, depending
|
|
on the settings of generate-inspector-information and
|
|
compile-profile. in particular, when inspector information
|
|
is not enabled but profiling is, source information does
|
|
not leak into error messages and inspector output, though it is
|
|
still available via the profile tools. The mechanics of this
|
|
involved repurposing the fasl a? parameter to hold an annotation
|
|
flags value when it is not #f and remaking annotations with
|
|
new flags if necessary before emitting them.
|
|
compile.ss, fasl.ss, misc.ms
|
|
- altered a number of mats to produce correct results even
|
|
when the 's' directory is profiled.
|
|
misc.ms, cp0.ms, record.ms
|
|
- profile-release-counters is now generation-friendly; that is,
|
|
it doesn't look for dropped code objects in generations that have
|
|
not been collected since the last call to profile-release-counters.
|
|
also, it no longer allocates memory when it releases counters.
|
|
pdhtml.ss,
|
|
gc.c, gcwrapper.c, globals.h, prim5.c
|
|
- removed unused entry points S_ifile, S_ofile, and S_iofile
|
|
alloc.c, externs.h
|
|
- mats that test loading profile info into the compiler's database
|
|
to guide optimization now weed out preexisting entries, in case
|
|
the 's' directory is profiled.
|
|
4.ms, mat.ss, misc.ms, primvars.ms
|
|
- counters for dropped code objects are now released at the start
|
|
of each mat group.
|
|
mat.ss
|
|
- replaced ehc (enable-heap-check) option with hci (heap-check-interval)
|
|
option that allows heap checks to be performed periodically rather
|
|
than on each collection. hci=0 is equivalent to ehc=f (disabling
|
|
heap checks) and hci=1 is equivalent to ehc=t (enabling heap
|
|
checks every collection), while hci=100 enables heap checks only
|
|
every 100th collection. allx and bullyx mats use this feature
|
|
to reduce heap-checking overhead to a more reasonable level. this
|
|
is particularly important when the 's' directory is profiled,
|
|
since the amount of static memory to be checked is greatly increased
|
|
due to the counters.
|
|
mats/Mf-base, mat.ss, primvars.ms
|
|
- added a mat that calls #%show-allocation, which was otherwise not
|
|
being tested.
|
|
misc.ms
|
|
- removed a broken primvars mat and updated two others. in each case,
|
|
the mat was looking for information about primitives in the wrong
|
|
(i.e., old) place and silently succeeding when it didn't find any
|
|
primitives to test. the revised mats (along with a few others) now
|
|
check to make sure at least one identifier has the information they
|
|
look for. the removed mat was checking for library information that
|
|
is now compiled in, so the mat is now unnecessary. the others were
|
|
(not) doing argument-error checks. fixing these turned up a handful of
|
|
problems that have also been fixed: a couple of unbound variables in the
|
|
mat driver, two broken primdata declarations, a tardy argument check
|
|
by profile-load-data, and a bug in char-ready?, which was requiring
|
|
an argument rather than defaulting it to the current input port.
|
|
primdata.ss, pdhtml.ss, io.ms,
|
|
primdvars.ms, 4.ms, 6.ms, misc.ms, patch*
|
|
- added initial support for recording coverage information. when the
|
|
new parameter generate-covin-files is set, the compiler generates
|
|
.covin files containing the universe of all source objects for which
|
|
profile forms are present in the expander output. when profiling
|
|
and generation of covin files are enabled in the 's' directory, the
|
|
mats optionally generate .covout files for each mat file giving
|
|
the subset of the universe covered by the mat file, along with an
|
|
all.covout in each mat output directory aggregating the coverage
|
|
for the directory and another all.covout in the top-level mat
|
|
directory aggregating the coverage for all directories.
|
|
back.ss, compile.ss, cprep.ss, primdata.ss, s/Mf-base,
|
|
mat.ss, mats/Mf-base, mats/primvars.ms
|
|
- support for generating covout files is now built in. with-coverage-output
|
|
gathers and dumps coverage information, and aggregate-coverage-output
|
|
combines (aggregates) covout files.
|
|
pdhtml.ss, primdata.ss, compile.ss,
|
|
mat.ss, mats/Mf-base, primvars.ms
|
|
- profile-clear now adjusts active coverage trackers to avoid losing
|
|
coverage information.
|
|
pdhtml.ss,
|
|
prim5.c
|
|
- nested with-coverage calls are now supported.
|
|
pdhtml.ss
|
|
- switched to a more compact representation for covin and covout files;
|
|
reduces disk space (compressed or not) by about a factor of four
|
|
and read time by about a factor of two with no increase in write time.
|
|
primdata.ss, pdhtml.ss, cprep.ss, compile.ss,
|
|
mat.ss, mats/Mf-base
|
|
- added support for determining coverage for an entire run, including
|
|
coverage for expressions hit during boot time. 'all' mats now produce
|
|
run.covout files in each output directory, and 'allx' mats produce
|
|
an aggregate run.covout file in the mat directory.
|
|
pdhtml.ss,
|
|
mat.ss, mats/Mf-base
|
|
- profile-release-counters now adjusts active coverage trackers to
|
|
account for the counters that have been released.
|
|
pdhtml.ss,
|
|
prim5.c
|
|
- replaced the artificial "examples" target with a real "build-examples"
|
|
target so make won't think it always has to mats that depend upon
|
|
the examples directory having been compiled. mats make clean now
|
|
runs make clean in the examples directory.
|
|
mats/Mf-base
|
|
- importing a library from an object file now just visits the object
|
|
file rather than doing a full load so that the run-time code for
|
|
the library is not retained. The run-time code is still read
|
|
because the current fasl format forces the entire file to be read,
|
|
but not retaining the code can lower heap size and garbage-collection
|
|
cost, particularly when many object-code libraries are imported.
|
|
The downside is that the file must be revisited if the run-time
|
|
code turns out to be required. This change exposed several
|
|
places where the code was failing to check if a revisit is needed.
|
|
syntax.ss,
|
|
7.ms, 8.ms, misc.ms, root-experr*
|
|
- fixed typos: was passing unquoted load rather than quoted load
|
|
to $load-library along one path (where it is loading source code
|
|
and therefore irrelevant), and was reporting src-path rather than
|
|
obj-path in a message about failing to define a library.
|
|
syntax.ss
|
|
- compile-file and friends now put all recompile information in
|
|
the first fasl object after the header so the library manager can
|
|
find it without loading the entire fasl file. The library manager
|
|
now does so. It also now checks to see if library object files
|
|
need to be recreated before loading them rather than loading them and
|
|
possibly recompiling them after discovering they are out of date, since
|
|
the latter requires loading the full object file even if it's out of
|
|
date, while the former takes advantage of the ability to extract just
|
|
recompile information. as well as reducing overhead, this eliminates
|
|
possibly undesirable side effects, such as creation and registration
|
|
of out-of-date nongenerative record-type descriptors. because the
|
|
library manager expects to find recompile information at the front of
|
|
an object file, it will not find all recompile information if object
|
|
files are "catted" together. also, compile-file has to hold in memory
|
|
the object code for all expressions in the file so that it can emit the
|
|
unified recompile information, rather than writing to the object file
|
|
incrementally, which can significantly increase the memory required
|
|
to compile a large file full of individual top-level forms. This does
|
|
not affect top-level programs, which were already handled as a whole,
|
|
or a typical library file that contains just a single library form.
|
|
compile.ss, syntax.ss
|
|
- the library manager now checks include files before library dependencies
|
|
when compile-imported-libraries is false (as it already did when
|
|
compile-imported-libraries is true) in case a source change affects
|
|
the set of imported libraries. (A library change can affect the set
|
|
of include files as well, but checking dependencies before include
|
|
files can cause unneeded libraries to be loaded.) The include-file
|
|
check is based on recompile-info rather than dependencies, but the
|
|
library checks are still based on dependencies.
|
|
syntax.ss
|
|
- fixed check for binding of scheme-version. (the check prevents
|
|
premature treatment of recompile-info records as Lexpand forms
|
|
to be passed to $interpret-backend.)
|
|
scheme.c
|
|
- strip-fasl-file now preserves recompile-info when compile-time info
|
|
is stripped.
|
|
strip.ss
|
|
- removed include-req* from library/ct-info and ctdesc records; it
|
|
is no longer needed now that all recompile information is maintained
|
|
separately.
|
|
expand-lang.ss, syntax.ss, compile.ss, cprep.ss, syntax.ss
|
|
- changed the fasl format and reworked a lot of code in the expander,
|
|
compiler, fasl writer, and fasl reader to allow the fasl reader
|
|
to skip past run-time information when it isn't needed and
|
|
compile-time information when it isn't needed. Skipping past
|
|
still involves reading and decoding when encrypted, but the fasl
|
|
reader no longer parses or allocates code and data in the portions
|
|
to be skipped. Side effects of associating record uids with rtds
|
|
are also avoided, as are the side effects of interning symbols
|
|
present only in the skipped data. Skipping past code objects
|
|
also reduces or eliminates the need to synchronize data and
|
|
instruction caches. Since the fasl reader no longer returns
|
|
compile-time (visit) or run-time (revisit) code and data when not
|
|
needed, the fasl reader no longer wraps these objects in a pair
|
|
with a 0 or 1 visit or revisit marker. To support this change,
|
|
the fasl writer generates separate top-level fasl entries (and
|
|
graphs) for separate forms in the same top-level source form
|
|
(e.g., begin or library). This reliably breaks eq-ness of shared
|
|
structure across these forms, which was previously broken only
|
|
when visit or revisit code was loaded at different times (this
|
|
is an incompatible change). Because of the change, fasl "groups"
|
|
are no longer needed, so they are no longer handled.
|
|
7.ss, cmacros.ss, compile.ss, expand-lang.ss, strip.ss,
|
|
externs.h, fasl.c, scheme.c,
|
|
hash.ms
|
|
- the change above is surfaced in an optional fasl-read "situation"
|
|
argument (visit, revisit, or load). The default is load. visit
|
|
causes it to skip past revisit code and data; revisit causes it
|
|
to skip past visit code and data; and load causes it not to skip
|
|
past either. visit-revisit data produced by (eval-when (visit
|
|
revisit) ---) is never skipped.
|
|
7.ss, primdata.ss,
|
|
io.stex
|
|
- to improve compile-time and run-time error checking, the
|
|
Lexpand recompile-info, library/rt-info, library-ct-info, and
|
|
program-info forms have been replaced with list-structured forms,
|
|
e.g., (recompile-info ,rcinfo).
|
|
expand-lang.ss, compile.ss, cprep.ss, interpret.ss, syntax.ss
|
|
- added visit-compiled-from-port and revisit-compiled-from-port
|
|
to complement the existing load-compiled-from-port.
|
|
7.ss, primdata.ss,
|
|
7.ms,
|
|
system.stex
|
|
- increased amount read when seeking an lz4-compressed input
|
|
file from 32 to 1024 bytes at a time
|
|
compress-io.c
|
|
- replaced the fasl a? parameter value #t with an "all" flag value
|
|
so it's value is consistently a mask.
|
|
cmacros.ss, fasl.ss, compile.ss
|
|
- split off profile mats into a separate file
|
|
misc.ms, profile.ms (new), root-experr*, mats/Mf-base
|
|
- added coverage percent computations to mat allx/bullyx output
|
|
mat.ss, mats/Mf-base, primvars.ms
|
|
- replaced coverage tables with more generic and generally useful
|
|
source tables, which map source objects to arbitrary values.
|
|
pdhtml.ss, compile.ss, cprep.ss, primdata.ss,
|
|
mat.ss, mats/Mf-base, primvars.ms, profile.ms,
|
|
syntax.stex
|
|
- reduced profile counting overhead by using calls to fold-left
|
|
instead of calls to apply and map and by using fixnum operations
|
|
for profile counts on 64-bit machines.
|
|
pdhtml.ss
|
|
- used a critical section to fix a race condition in the calculations
|
|
of profile counts that sometimes resulted in bogus (including
|
|
negative) counts, especially when the 's' directory is profiled.
|
|
pdhtml.ss
|
|
- added discard flag to declaration for hashtable-size
|
|
primdata.ss
|
|
- redesigned the printed representation of source tables and rewrote
|
|
get-source-table! to read and store incrementally to reduce memory
|
|
overhead.
|
|
compile.ss
|
|
- added generate-covin-files to the set of parameters preserved
|
|
by compile-file, etc.
|
|
compile.ss,
|
|
system.stex
|
|
- moved covop argument before the undocumented machine and hostop
|
|
arguments to compile-port and compile-to-port. removed the
|
|
undocumented ofn argument from compile-to-port; using
|
|
(port-name ip) instead.
|
|
compile.ss, primdata.ss,
|
|
7.ms,
|
|
system.stex
|
|
- compile-port now tries to come up with a file position to supply
|
|
to make-read, which it can do if the port's positions are character
|
|
positions (presently string ports) or if the port is positioned
|
|
at zero.
|
|
compile.ss
|
|
- audited the argument-type-error fuzz mat exceptions and fixed a
|
|
host of problems this turned up (entries follow). added #f as
|
|
an invalid argument for every type for which #f is indeed invalid
|
|
to catch places where the maybe- prefix was missing on the argument
|
|
type. the mat tries hard to determine if the condition raised
|
|
(if any) as the result of an invalid argument is appropriate and
|
|
redirects the remainder to the mat-output (.mo) file prefixed
|
|
with 'Expected error', causing them to show up in the expected
|
|
error output so developers will be encouraged to audit them in
|
|
the future.
|
|
primvars.ms, mat.ss
|
|
- added an initial symbol? test on machine type names so we produce
|
|
an invalid machine type error message rather than something
|
|
confusing like "machine type #f is not supported".
|
|
compile.ss
|
|
- fixed declarations for many primitives that were specified as
|
|
accepting arguments of more general types than they actually
|
|
accept, such as number -> real for various numeric operations,
|
|
symbol -> endianness for various bytevector operations,
|
|
time -> time-utc for time-utc->date, and list -> list-of-string-pairs
|
|
for default-library-search-handler. also replaced some of the
|
|
sub-xxxx types with specific types such as sub-symbol -> endianness
|
|
in utf16->string, but only where they were causing issues with
|
|
the primvars argument-type-error fuzz mat. (this should be done
|
|
more generally.)
|
|
primdata.ss
|
|
- fixed incorrect who arguments (was map instead of fold-right,
|
|
current-date instead of time-utc->date); switched to using
|
|
define-who/set-who! generally.
|
|
4.ss, date.ss
|
|
- append! now checks all arguments before any mutation
|
|
5_2.ss
|
|
- with-source-path now properly supplies itself as who for the
|
|
string? argument check; callers like load now do their own checks.
|
|
7.ss
|
|
- added missing integer? check to $fold-bytevector-native-ref whose
|
|
lack could have resulted in a compile-time error.
|
|
cp0.ss
|
|
- fixed typo in output-port-buffer-mode error message
|
|
io.ss
|
|
- fixed who argument (was fx< rather than fx<?)
|
|
library.ss
|
|
- fixed declaration of first source-file-descriptor argument (was
|
|
sfd, now string)
|
|
primdata.ss
|
|
- added missing article 'a' in a few error messages
|
|
prims.ss
|
|
- fixed the copy-environment argument-type error message for the list
|
|
of symbols argument.
|
|
syntax.ss
|
|
- the environment procedure now catches exceptions that occur and
|
|
reraises the exception with itself as who if the condition isn't
|
|
already a who condition.
|
|
syntax.ss
|
|
- updated experr and allx patch files for changes to argument-count
|
|
fuzz mat and fixes for problems turned up by them.
|
|
root-experr*, patch*
|
|
- fixed a couple of issues setting port sizes: string and bytevector
|
|
output port put handlers don't need room to store the character
|
|
or byte, so they now set the size to the buffer length rather
|
|
than one less. binary-file-port-clear-output now sets the index
|
|
rather than size to zero; setting the size to zero is inappropriate
|
|
for some types of ports and could result in loss of buffering and
|
|
even suppression of future output. removed a couple of redundant
|
|
sets of the size that occur immediately after setting the buffer.
|
|
io.ss
|
|
- it is now possible to return from a call to with-profile-tracker
|
|
multiple times and not double-count (or worse) any counts.
|
|
pdhtml.ss, profile.ms
|
|
- read-token now requires a file position when it is handed a
|
|
source-file descriptor (since the source-file descriptor isn't
|
|
otherwise useful), and the source-file descriptor argument can
|
|
no longer be #f. the input file position plays the same role as
|
|
the input file position in get-datum/annotations. these extra
|
|
read-token arguments are now documented.
|
|
read.ss,
|
|
6.ms,
|
|
io.stex
|
|
- the source-file descriptor argument to get-datum/annotations can
|
|
no longer be #f. it was already documented that way.
|
|
read.ss
|
|
- read-token and do-read now look for the character-positions port
|
|
flag before asking if the port has port-position, since the latter
|
|
is slightly more expensive.
|
|
read.ss
|
|
- rd-error now reports the current port position if it can be determined
|
|
when fp isn't already set, i.e., when reading from a port without
|
|
character positions (presently any non string port) and fp has not
|
|
been passed in explicitly (to read-token or get-datum/annotations).
|
|
the port position might not be a character position, but it should be
|
|
better than nothing.
|
|
read.ss
|
|
- added comment noting an invariant for s_profile_release_counters.
|
|
prim5.c
|
|
- restored accidentally dropped fasl-write formdef and dropped
|
|
duplicate fasl-read formdef
|
|
io.stex
|
|
- added a 'coverage' target that tests the coverage of the Scheme-code
|
|
portions of Chez Scheme by the mats.
|
|
Makefile.in, Makefile-workarea.in
|
|
- added .PHONY declarations for all of the targets in the top-level
|
|
and workarea make files, and renamed the create-bintar, create-rpm,
|
|
and create-pkg targets bintar, rpm, and pkg.
|
|
Makefile.in, Makefile-workarea.in
|
|
- added missing --retain-static-relocation command-line argument and
|
|
updated the date
|
|
scheme.1.in
|
|
- removed a few redundant conditional variable settings
|
|
configure
|
|
- fixed declaration of condition wait (timeout -> maybe-timeout)
|
|
primdata.ms
|
|
- added "invalid code page ~s" to set of messages considered valid
|
|
argument-type-check error messages, for Windows multibyte->string
|
|
and string->multibyte.
|
|
primvars.ms
|
|
- used with-object-file to restore accidentally dropped close-port in
|
|
compile-whole-program and compile-whole-library
|
|
compile.ss
|
|
- initialized variable to enable compilation with gcc 9.1.0 at -O3
|
|
c/scheme.c
|
|
- added missing Inner wrappers around the library/ct-info and
|
|
library-rt-info records in the code for compile-whole-xxx.
|
|
compile.ss,
|
|
7.ms
|
|
- local-eval-hook now calls eval rather than interpret when profiling
|
|
is enabled, so local transformer code can be profiled.
|
|
syntax.ss,
|
|
profile.ms
|
|
- fix compiler bug related to call-with-values and a first argument
|
|
whose body result is compiled to an allocation, inline form, or
|
|
foreign call
|
|
cpnanopass.ss, 3.ms
|
|
- improved error reporting for library compilation-instance errors:
|
|
now including the name of the object file from which the "wrong"
|
|
compilation instance was loaded, if it was loaded from (or compiled
|
|
to) an object file and the original importing library, if it was
|
|
previously loaded from an object file due to a library import.
|
|
syntax.ss, 7.ss, interpret.ss,
|
|
8.ms, root-experr*
|
|
- removed situation and for-input? arguments from $make-load-binary,
|
|
since the only consumer always passes 'load and #f.
|
|
7.ss,
|
|
scheme.c
|
|
- $separate-eval now prints the stderr and stdout of the subprocess
|
|
to help in diagnosing separate-eval and separate-compile issues.
|
|
mat.ss
|
|
- added unregister-guardian, which can be used to unregister
|
|
the unresurrected objects registered with any guardian. guardian?
|
|
can be used to distinguish guardian procedures from other objects.
|
|
cp0.ss, cmacros.ss, cpnanopass.ss, ftype.ss, primdata.ss,
|
|
prims.ss,
|
|
gcwrapper.c, prim.c, externs.h,
|
|
4.ms, primvars.ms
|
|
release_notes.stex
|
|
smgmt.stex, threads.stex
|
|
- added verify-loadability. given a situation (visit, revisit,
|
|
or load) and zero or more pathnames (each of which may be optionally
|
|
paired with a library search path), verity-loadability checks
|
|
whether the set of object files named by those pathnames and any
|
|
additional object files required by library requirements in the
|
|
given situation can be loaded together. it raises an exception
|
|
in each case where actually attempting to load the files would
|
|
raise an exception and additionally in cases where loading files
|
|
would result in the compilation or loading of source files in
|
|
place of the object files. if the check is successful,
|
|
verity-loadability returns an unspecified value. in either case,
|
|
although portions of the object files are read, none of the
|
|
information read from the object files is retained, and none of
|
|
the object code is read, so there are no side effects other than
|
|
the file operations and possibly the raising of an exception.
|
|
library and program info records are now moved to the top of each
|
|
object file produced by one of the file compilation routines,
|
|
just after recompile info, with a marker to allow verity-loadability
|
|
to stop reading once it reads all such records. this change is
|
|
not entirely backward compatible; the repositioning of the records
|
|
can be detected by a call to list-library made from a loaded file
|
|
before the definition of one or more libraries. it is fully
|
|
backward compatible for typical library files that contain a
|
|
single library definition and nothing else. adding this feature
|
|
required changes to the object-file format and corresponding
|
|
changes in the compiler and library manager. it also required
|
|
moving cross-library optimization information from library/ct-info
|
|
records (which verity-loadability must read) to the invoke-code
|
|
for each library (which verity-loadability does not read) to
|
|
avoid reading and permanently associating record-type descriptors
|
|
in the code with their uids.
|
|
compile.ss, syntax.ss, expand-lang.ss, primdata.ss, 7.ss,
|
|
7.ms, misc.ms, root-experr*, patch*,
|
|
system.stex, release_notes.stex
|
|
- fixed a bug that bit only with the compiler compiled at
|
|
optimize-level 2: add-library/rt-records was building a library/ct-info
|
|
wrapper rather than a library/rt-info wrapper.
|
|
compile.ss
|
|
- fixed a bug in visit-library that could result in an indefinite
|
|
recursion: it was not checking to make sure the call to $visit
|
|
actually added compile-time info to the libdesc record. it's not
|
|
clear, however, whether the libdesc record can be missing
|
|
compile-time information on entry to visit-library, so the code
|
|
that calls $visit (and now checks for compile-time information
|
|
having been added) might not be reachable. ditto for
|
|
revisit-library.
|
|
syntax.ss
|
|
syntax.ss, primdata.ss,
|
|
7.ms, root-experr*, patch*,
|
|
system.stex, release_notes.stex
|
|
- added some argument-error checks for library-directories and
|
|
library-extensions, and fixed up the error messages a bit.
|
|
syntax.ss,
|
|
7.ms, root-experr*
|
|
- compile-whole-program now inserts the program record into the
|
|
object file for the benefit of verify-loadability.
|
|
syntax.ss,
|
|
7.ms, root-experr*
|
|
- changed 'loading' import-notify messages to the more precise
|
|
'visiting' or 'revisiting' in a couple of places.
|
|
syntax.ss,
|
|
7.ms, 8.ms
|
|
- added concatenate-object-files
|
|
compile.ss, primdata.ss
|
|
7.ms, root-experr*
|
|
system.stex, use.stex, release_notes.stex
|
|
- added invoke-library
|
|
syntax.ss, primdata.ss,
|
|
8.ms, root-experr*,
|
|
libraries.stex, release_notes.stex
|
|
- updated the date
|
|
release_notes.stex
|
|
- libraries contained within a whole program or library are now
|
|
marked pending before their invoke code is run so that invoke
|
|
cycles are reported as such rather than as attempts to invoke
|
|
while still loading.
|
|
compile.ss, syntax.ss, primdata.ss,
|
|
7.ms, root-experr*
|
|
- the library manager now protects against unbound references
|
|
from separately compiled libraries or programs to identifiers
|
|
ostensibly but not actually exported by (invisible) libraries
|
|
that exist only locally within a whole program. this is done by
|
|
marking the invisibility of the library in the library-info and
|
|
propagating it to libdesc records; the latter is checked upon
|
|
library import, visit, and invoke as well as by verify-loadability.
|
|
the import and visit code of each invisible no longer complains
|
|
about invisibility since it shouldn't be reachable.
|
|
syntax.ss, compile.ss, expand-lang.ss,
|
|
7.ms, 8.ms, root-experr*, patch*
|
|
- documented that compile-whole-xxx's linearization of the
|
|
library initialization code based on static dependencies might
|
|
not work for dynamic dependencies.
|
|
system.stex
|
|
- optimized bignum right shifts so the code (1) doesn't look at
|
|
shifted-off bigits if the bignum is positive, since it doesn't
|
|
need to know in that case if any bits are set; (2) doesn't look
|
|
at shifted-off bigits if the bignum is negative if it determines
|
|
that at least one bit is set in the bits shifted off the low-order
|
|
partially retained bigit; (3) quits looking, if it must look, for
|
|
one bits as soon as it finds one; (4) looks from both ends under
|
|
the assumption that set bits, if any, are most likely to be found
|
|
toward the high or low end of the bignum rather than just in the
|
|
middle; and (5) doesn't copy the retained bigits and then shift;
|
|
rather shifts as it copies. This leads to dramatic improvements
|
|
when the shift count is large and often significant improvements
|
|
otherwise.
|
|
number.c,
|
|
5_3.ms,
|
|
release_notes.stex
|
|
- threaded tc argument through to all calls to S_bignum and
|
|
S_trunc_rem so they don't have to call get_thread_context()
|
|
when it might already have been called.
|
|
alloc.c, number.c, fasl.c, print.c, prim5.c, externs.h
|
|
- added an expand-primitive handler to partially inline integer?.
|
|
cpnanopass.ss
|
|
- added some special cases for basic arithmetic operations (+, -, *,
|
|
/, quotient, remainder, and the div/div0/mod/mod0 operations) to
|
|
avoid doing unnecessary work for large bignums when the result
|
|
will be zero (e.g,. multiplying by 0), the same as one of the
|
|
inputs (e.g., adding 0 or multiplying by 1), or the additive
|
|
inverse of one of the inputs (e.g., subtracting from 0, dividing
|
|
by -1). This can have a major beneficial affect when operating
|
|
on large bignums in the cases handled. also converted some uses
|
|
of / into integer/ where going through the former would just add
|
|
overhead without the possibility of optimization.
|
|
5_3.ss,
|
|
number.c, externs.h, prim5.c,
|
|
5_3.ms, root-experr, patch*,
|
|
release_notes.stex
|
|
- added a queue to hold pending signals for which handlers have
|
|
been registered via register-signal-handler so up to 63 (configurable
|
|
in the source code) unhandled signals are buffered before the
|
|
handler has to start dropping them.
|
|
cmacros.ss, library.ss, prims.ss, primdata.ss,
|
|
schsig.c, externs.h, prim5.c, thread.c, gc.c,
|
|
unix.ms,
|
|
system.stex, release_notes.stex
|
|
- bytevector-compress now selects the level of compression based
|
|
on the compress-level parameter. Prior to this it always used a
|
|
default setting for compression. the compress-level parameter
|
|
can now take on the new minimum in addition to low, medium, high,
|
|
and maximum. minimum is presently treated the same as low
|
|
except in the case of lz4 bytevector compression, where it
|
|
results in the use of LZ4_compress_default rather than the
|
|
slower but more effective LZ4_compress_HC.
|
|
cmacros,ss, back.ss,
|
|
compress_io.c, new_io.c, externs.h,
|
|
bytevector.ms, mats/Mf-base, root-experr*
|
|
io.stex, objects.stex, release_notes.stex
|
|
- fix fasl-read signature
|
|
primdata.ss
|
|
- console I/O on Windows now supports Unicode characters in the BMP
|
|
expeditor.c, new-io.c, release_notes.stex
|
|
- the collector now releases bignum temporaries in the collector
|
|
rather than relocating them so we don't keep around huge bignum
|
|
temporaries forever.
|
|
gc.c
|
|
- removed the presumably useless vector-handling code from load()
|
|
which used to be required to handle fasl groups.
|
|
scheme.c
|
|
- object files are no longer compressed as a whole, and the parameter
|
|
compile-compressed is no longer defined. instead, the individual
|
|
fasl objects within an object file are compressed whenever the
|
|
new parameter fasl-compressed is set to its default value, #t.
|
|
this allows the fasl reader to seek past portions of an object
|
|
file that are not of interest, i.e., visit-only code and data
|
|
when "revisiting" an object file and revisit-only code and data
|
|
when "visiting" an object file. the compressed portions are
|
|
compressed using the format and level specified by the compress-format
|
|
and compress-level parameters. the C-coded fasl reader and
|
|
boot-file loader no longer handle compressed files; these are
|
|
handled, less efficiently, by the Scheme entry point (fasl-read).
|
|
a warning exception is raised the first time a program attempts
|
|
to create or read a compressed fasl file.
|
|
7.ss, s/Mf-base, back.ss, bytevector.ss, cmacros.ss, compile.ss,
|
|
fasl-helpers.ss, fasl.ss, primdata.ss, strip.ss, syntax.ss,
|
|
externs.h, fasl.c, gc.c, scheme.c, thread.c,
|
|
mats/6.ms, mats/7.ms, mats/bytevector.ms, mats/misc.ms, patch*,
|
|
root-experr*,
|
|
intro.stex, use.stex, io.stex, system.stex,
|
|
release_notes.stex
|
|
- added begin wrappers around many of the Scheme source files that
|
|
contained multiple expressions to cut down the number of top-level
|
|
fasl objects and increase compressibility. also removed the
|
|
string filenames for debugging at the start of each file that had
|
|
one---these are best inserted universally by a modified compile-file
|
|
during a debugging session when desired. also removed unnecessary
|
|
top-level placeholder definitions for the assignments that follow.
|
|
4.ss, 5_1.ss, 5_2.ss, 5_3.ss, 5_7.ss, 6.ss, 7.ss, bytevector.ss,
|
|
cafe.ss, cback.ss, compile.ss, cp0.ss, cpcommonize.ss, cpletrec.ss,
|
|
cpnanopass.ss, cprep.ss, cpvalid.ss, date.ss, engine.ss, enum.ss,
|
|
env.ss, event.ss, exceptions.ss, expeditor.ss, fasl.ss, foreign.ss,
|
|
format.ss, front.ss, ftype.ss, inspect.ss, interpret.ss, io.ss,
|
|
library.ss, mathprims.ss, newhash.ss, pdhtml.ss, pretty.ss,
|
|
prims.ss, primvars.ss, print.ss, read.ss, record.ss, reloc.ss,
|
|
strnum.ss, syntax.ss, trace.ss
|
|
- updated bullyx patches
|
|
patch*
|
|
- fixed csug copyright year substitutions and changed revisiondate
|
|
to not be generated, making the csug build reproducible
|
|
newrelease csug/csug.stex
|
|
- fixed Windows build using MSYS2
|
|
c/Mf-a6nt, c/Mf-i3nt, c/Mf-ta6nt, c/Mf-ti3nt, mats/Mf-a6nt,
|
|
mats/Mf-i3nt, mats/Mf-ta6nt, mats/Mf-ti3nt
|
|
- fixed build on Linux with musl libc
|
|
expeditor.c
|
|
- extended primitive folding to primitives that return multiple
|
|
values.
|
|
cp0.ss, primdata.ss,
|
|
cp0.ms
|
|
- fix handling of calling code's address for locking around a callable
|
|
that has a u8*, u16*, or u32* argument, which could cause the
|
|
cp register copy in the thread context to be changed before
|
|
S_call_help gets it
|
|
cpnanopass.ss, schlib.c, foreign2.c, foreign.ms
|
|
- the collector now promotes objects one generation higher at a time
|
|
by default. previously, it promoted every live oldspace object to
|
|
the selected target generation, which could result in objects
|
|
prematurely skipping one or more generations and thus being
|
|
retained longer than their ages justify. the biggest cost in
|
|
terms of code complexity and performance is the recording of
|
|
pointers from older newspace objects to younger newspace objects
|
|
that could not previously occur.
|
|
gc.c, alloc.c, externs.h
|
|
- the collect procedure now takes an additional optional minimum
|
|
target generation argument to allow the new default behavior to
|
|
be overridden.
|
|
7.ss, primdata.ss,
|
|
gcwrapper.c,
|
|
7.ms, root-experr*
|
|
- added cn flag to control collect-notify
|
|
mats/Mf-base
|
|
- resweep_weak_pairs now sets sweep_loc to orig_next_loc rather than
|
|
first_loc since the latter could result in unnecessary sweeping of
|
|
existing target-generation weak pairs.
|
|
gc.c
|
|
- added set of S_child_processes[newg] to S_child_processes[oldg]
|
|
in S_do_gc code handling decreases in the maximum generation.
|
|
gcwrapper.c
|
|
- a specialized variant of the collector is used in the common case
|
|
where the max copied generation is 0, the min and max target
|
|
generations are 1, and there are no locked generation 0 objects
|
|
is now used. with the default collection parameters and no locking
|
|
of generation 0 objects, these collections account for 3/4 of all
|
|
collections.
|
|
gc.c, gc-011.c (new), gcwrapper.c, externs.h, c/Mf-base
|
|
- maybe-fire-collector no longer tries to be so precise and instead
|
|
just counts the number of generation-bytes allocated since the
|
|
last gc. surprisingly, rebuilding the s directory requires about
|
|
the same number of collections with this coarser (and less
|
|
expensive) measurement. this change also fixes a problem with
|
|
too-frequent collections when the maximum-generation is set to
|
|
zero. to make the determination even less expensive, a running
|
|
total of bytes in each generation is now maintained in a new
|
|
bytes_of_generation vector, and maybe-fire-collector is no longer
|
|
called when the collector is running.
|
|
alloc.c, gc.c, gcwrapper.c, globals.h
|
|
- copy now copies two pairs at once only if they are in the same
|
|
segment, which saves a few memory references and tests and turns
|
|
out not to reduce the number of opportunities significantly in
|
|
tested programs.
|
|
gc.c
|
|
- occupied_segments, first_loc, base_loc, next_loc, bytes_left,
|
|
bytes_of_space, sweep_loc, and orig_next_loc are now indexed
|
|
by [g][s] rather than [s][g] to improve locality in the default
|
|
(and common) case where there are only a handful of active
|
|
generations.
|
|
globals.h, types.h, segment.c, gc.c, gcwrapper.c, prim5.c
|
|
- documented change to collect procedure
|
|
smgmt.stex, release_notes.stex
|
|
- now maintaining 16-byte architectural stack alignment (if the
|
|
incoming stack is so aligned) on all x86 platforms except
|
|
i3nt/ti3nt. more recent versions of gcc sometimes generate sse
|
|
instructions that require 16-byte stack alignment.
|
|
x86.ss
|
|
- added missing #ifndef WIN32
|
|
gcwrapper.c
|
|
- added initialization of __to_g to make gcc 7.5.0 happy
|
|
gc.c
|
|
- updated Windows makefiles
|
|
c/Makefile.*nt
|
|
- use lowercase for Windows include files
|
|
segment.c, windows.c
|
|
- proper unicode handling when retrieving error messages from the OS
|
|
on Windows
|
|
windows.c
|
|
- repair collector handling of an ephemerons that refers to a
|
|
younger object during incremental promotion
|
|
gc.c, 4.ms
|
|
- added textual-output-port checks for record-writer write argument
|
|
print.ss,
|
|
record.ms, root-experr*
|
|
- now using 64-bit arithmetic for seconds in S_condition_wait to
|
|
prevent a potential 2038 bug, at least on platforms where time_t
|
|
is 64 bits. also now rounding rather than truncating nanoseconds
|
|
in the conversion to milliseconds on Windows.
|
|
thread.c
|
|
- fixed a bug in arm32 that caused an error when generating
|
|
instructions with immediate operands where the immediate was larger
|
|
than 8 bits.
|
|
arm32.ss
|
|
- fixed formatting in arm32.ss
|
|
arm32.ss
|
|
- disabled unsupported mats for arm32le
|
|
foreign.ms, misc.ms
|
|
- fixed callee-save floating point registers for arm32
|
|
arm32.ss, ftype.ss, np-languages.ss, primdata.ss
|
|
- added a mat for the add-with-immediate bug
|
|
misc.ms,
|
|
mats/arm-immediate-1.ss (new), mats/arm-immediate-2.ss (new)
|
|
- added a note about arm32 targets requiring a kernel module for the
|
|
time stamp counter
|
|
prims.ss
|
|
|
|
9.5.4 changes:
|
|
- updated version to 9.5.4
|
|
BUILDING NOTICE makefiles/Mf-install.in makefiles/Makefile-csug.in
|
|
scheme.1.in c/Makefile.a6nt c/Makefile.i3nt c/Makefile.ta6nt
|
|
c/Makefile.ti3nt mats/Mf-a6nt mats/Mf-i3nt mats/Mf-ta6nt
|
|
mats/Mf-ti3nt workarea c/scheme.rc s/7.ss s/cmacros.ss
|
|
release_notes/release_notes.stex csug/copyright.stex csug/csug.stex
|
|
bintar/Makefile rpm/Makefile pkg/Makefile wininstall/Makefile
|
|
wininstall/a6nt.wxs wininstall/i3nt.wxs wininstall/ta6nt.wxs
|
|
wininstall/ti3nt.wxs
|
|
|
|
9.5.5 changes:
|
|
- updated version to 9.5.5
|
|
BUILDING NOTICE makefiles/Mf-install.in scheme.1.in c/Makefile.a6nt
|
|
c/Makefile.i3nt c/Makefile.ta6nt c/Makefile.ti3nt mats/Mf-a6nt
|
|
mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt workarea c/scheme.rc
|
|
s/cmacros.ss release_notes/release_notes.stex csug/copyright.stex
|
|
csug/csug.stex bintar/Makefile rpm/Makefile pkg/Makefile
|
|
wininstall/Makefile wininstall/a6nt.wxs wininstall/i3nt.wxs
|
|
wininstall/ta6nt.wxs wininstall/ti3nt.wxs
|
|
- newrelease no longer logs as updated files with no actual changes
|
|
newrelease
|
|
- repaired continuation for exception handler of error for returning
|
|
the wrong number of values to a multiple-value context
|
|
cpnanopass.ss, np-languages.ss, 3.ms
|
|
- adjust arm32 backend to not choose shorter instructions for larger
|
|
return-address offsets, which breaks label address assignment
|
|
arm32.ss
|
|
- repair remainder and modulo on flonums by using fmod
|
|
prim5.c, 5_3.ss, 5_3.ms
|
|
- add special case in cpnanopass.ss for (eq? (ftype-pointer-address x) 0)
|
|
cpnanopass.ss
|
|
- fix missing include in externs.h for struct timespec
|
|
c/expeditor.c, c/externs.h, c/prim5.c, c/scheme.c, c/stats.c
|
|
- fix signature of generate-temporaries
|
|
primdata.ss primvars.ss
|
|
- sleep of negative durations now returns immediately
|
|
7.ss
|
|
- avoid hard-coded paths for utilities in build scripts
|
|
checkin csug/gifs/Makefile csug/math/Makefile examples/Makefile
|
|
makefiles/Makefile-csug.in makefiles/Makefile-release_notes.in
|
|
makefiles/Mf-install.in makefiles/installsh mats/6.ms mats/Mf-a6fb
|
|
mats/Mf-a6le mats/Mf-a6nb mats/Mf-a6ob mats/Mf-a6osx mats/Mf-arm32le
|
|
mats/Mf-i3fb mats/Mf-i3le mats/Mf-i3nb mats/Mf-i3ob mats/Mf-i3osx
|
|
mats/Mf-i3qnx mats/Mf-ppc32le mats/Mf-ta6fb mats/Mf-ta6le mats/Mf-ta6nb
|
|
mats/Mf-ta6ob mats/Mf-ta6osx mats/Mf-ti3fb mats/Mf-ti3le mats/Mf-ti3nb
|
|
mats/Mf-ti3ob mats/Mf-ti3osx mats/Mf-tppc32le mats/unix.ms newrelease
|
|
pkg/Makefile release_notes/gifs/Makefile release_notes/math/Makefile
|
|
s/Mf-base workarea
|
|
- fixed configure script for update of nanopass to v1.9.2
|
|
configure
|
|
- fixed help description for configure options --installschemename,
|
|
--installpetitename, and --installscriptname
|
|
configure
|
|
- maybe-compile-program now returns void
|
|
compile.ss 7.ms
|
|
- fixed right shift of a negative bignum by a multiple of 32
|
|
number.c 5_3.ms
|
|
- fixed the documentation of load-shared-object to mention an up-to-date
|
|
dll for Windows
|
|
foreign.stex
|
|
- New spellings #true and #false for #t and #f are recognized
|
|
read.ss 6.ms
|
|
- refactor mats to allow different configurations to run in parallel.
|
|
The {partial,all,bully}x targets in Mats/Mf-base now support running
|
|
in parallel if make chooses to do so (e.g., if instructed via -j).
|
|
Update travis-ci build scripts to use new partialx target and run
|
|
jobs in parallel (based on the number of cores available). Also
|
|
add the ability to "skip" (i.e., error before building) travis targets
|
|
by using a line (or lines) beginning with "travis:only:" and listing
|
|
the desired target machine type(s) in the commit message.
|
|
.travis.yml .travis/{build,test,maybe-skip-build}.sh
|
|
mats/{5_4,6,7,8,bytevector,examples,foreign}.ms
|
|
mats/{ftype,hash,io,misc,primvars,profile,record}.ms
|
|
mats/Mf-base mats/Mf-*nt mats/mat.ss mats/patch-interpret*
|
|
- fix x86_64 (& integer-8) and (& integer-16) foreign-call argument
|
|
passing
|
|
x86_64, s/Mf-[t]a6{le,osx}
|
|
- fixed misnamed pattern variables in bytevector-*-ref
|
|
bytevector.ss
|
|
- add workaround for Rosetta 2 bug in [t]a6osx builds. The overhead
|
|
during native (x86) execution is the addition of a single int compare
|
|
and branch in S_bytevector_read, plus a small amount of work at startup
|
|
to determine whether we are running under Rosetta translation.
|
|
new-io.c, scheme.c, version.h
|
|
- use a 7-byte NOP in the x86_64 fasl relocator instead of 7 1-byte NOPs
|
|
fasl.c
|
|
- Move unused terminals in L4.5 to later languages.
|
|
np-languages.ss
|
|
- vector literals can be made self-evaluating with the new parameter
|
|
self-evaluating-vectors
|
|
s/back.ss s/primdata.ss s/syntax.ss csug/objects.tex mats/misc.ms
|
|
- remove obsolete travis-ci.org configuration
|
|
README.md .travis.yml .travis/*
|
|
- add GitHub actions workflow for automated testing
|
|
.github/workflows/{build.sh,summary,test.sh,test.yml}
|
|
- corrected signature of compile-whole-program and compile-whole-library
|
|
s/primdata.ss
|
|
- clarify rd-bytevector error message for non-atomic token types, such
|
|
as vparen, where the token value is #f
|
|
mats/6.ms, mats/root-experr-compile-0-f-f-f,
|
|
mats/root-experr-compile-2-f-f-f, release_notes/release_notes.stex,
|
|
s/read.ss
|
|
- include an identifier name in the syntax error for missing ellipsis
|
|
mats/8.ms, mats/root-experr-compile-0-f-f-f,
|
|
mats/root-experr-compile-2-f-f-f, release_notes/release_notes.stex,
|
|
s/syntax.ss
|
|
|
|
9.5.6 changes:
|
|
- added back.patch to patchobj
|
|
s/Mf-base
|
|
- updated version to 9.5.6
|
|
makefiles/Mf-install.in scheme.1.in c/Makefile.a6nt c/Makefile.i3nt
|
|
c/Makefile.ta6nt c/Makefile.ti3nt mats/Mf-a6nt mats/Mf-i3nt
|
|
mats/Mf-ta6nt mats/Mf-ti3nt workarea c/scheme.rc s/7.ss
|
|
s/cmacros.ss release_notes/release_notes.stex csug/copyright.stex
|
|
csug/csug.stex rpm/Makefile pkg/Makefile wininstall/Makefile
|
|
wininstall/a6nt.wxs wininstall/i3nt.wxs wininstall/ta6nt.wxs
|
|
wininstall/ti3nt.wxs
|
|
|
|
9.5.7 changes:
|
|
- updated version to 9.5.7
|
|
BUILDING NOTICE makefiles/Mf-install.in scheme.1.in c/Makefile.a6nt
|
|
c/Makefile.i3nt c/Makefile.ta6nt c/Makefile.ti3nt mats/Mf-a6nt
|
|
mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt workarea c/scheme.rc
|
|
s/cmacros.ss release_notes/release_notes.stex csug/copyright.stex
|
|
csug/csug.stex bintar/Makefile rpm/Makefile pkg/Makefile
|
|
wininstall/Makefile wininstall/a6nt.wxs wininstall/i3nt.wxs
|
|
wininstall/ta6nt.wxs wininstall/ti3nt.wxs
|
|
- fix bug in printf with certain control strings and argument counts
|
|
s/format.ss mats/format.ms mats/root-experr-compile-{0,2}-fff
|
|
release_notes/release_notes.stex
|
|
- updated ftypes to allow native ftypes to be used even if another
|
|
non-ftype syntactic binding for the type exists. for instance, if a
|
|
syntactic binding for integer-32 is introduced which is not bound to
|
|
an ftd, using integer-32 in the context of an ftype will still work.
|
|
this change also allows an ftype binding to be created for a native
|
|
type by using (define-ftype <native-type> <native-type>), allowing
|
|
users to create standard ftype bindings for the native-types if that
|
|
is preferred.
|
|
s/ftype.ss, mats/ftype.ms
|
|
- fix occasional 0xC0000409 STATUS_STACK_BUFFER_OVERRUN crash on 64-bit
|
|
Windows from Microsoft's longjmp by implementing our own setjmp/longjmp
|
|
c/Makefile.{a6nt,ta6nt} c/Mf-{a6nt,ta6nt} c/a6nt-jump.asm c/externs.h
|
|
c/types.h c/version.h release_notes/release_notes.stex
|
|
- support Microsoft Visual Studio 2022 on Windows
|
|
BUILDING, c/vs.bat, wininstall/locate-vcredist.bat
|
|
- make threaded foreign mats more robust
|
|
mats/foreign.ms
|
|
- fix rational-valued? for numbers with an exceptional real part
|
|
s/5_3.ss mats/5_1.ms
|
|
- change behavior of mixed exact/inexact arithmetic comparisons in
|
|
the range where fixnums have greater precision than flonums. This
|
|
makes <=, =, and >= transitive as required by R6RS. (< and > were
|
|
already transitive, but the behavior is changed to match.)
|
|
s/5_3.ss mats/5_3.ms
|
|
- consolidate the $thread-check code in misc.ms and thread.ms, keeping
|
|
the thread.ms version of the code since it is more recent
|
|
mats/misc.ms mats/thread-check.ss mats/thread.ms
|
|
- Replace K&R style function declarations with ANSI style
|
|
c/alloc.c c/arm32le.c c/externs.h c/fasl.c c/flushcache.c c/foreign.c
|
|
c/gc.c c/gcwrapper.c c/i32le.c c/intern.c c/io.c c/itest.c c/new-io.c
|
|
c/number.c c/ppc32.c c/ppc32le.c c/prim.c c/prim5.c c/print.c c/scheme.c
|
|
c/schlib.c c/schsig.c c/segment.c c/statics.c c/stats.c c/symbol.c
|
|
c/thread.c c/windows.c mats/foreign1.c
|
|
- Eliminate PROTO macro from scheme.h
|
|
boot/*/scheme.h c/Makefile.* c/alloc.c c/externs.h c/fasl.c c/flushcache.c
|
|
c/foreign.c c/gc.c c/gcwrapper.c c/intern.c c/io.c c/new-io.c c/number.c
|
|
c/prim.c c/prim5.c c/print.c c/scheme.c c/schlib.c c/schsig.c c/segment.c
|
|
c/thread.c mats/foreign3.c s/mkheader.ss
|
|
- update lz4 to version 1.9.3
|
|
configure
|
|
- update zlib to version 1.2.12 (which fixes CVE-2018-25032)
|
|
configure c/Mf-*le
|
|
|
|
9.5.8 changes:
|
|
- updated version to 9.5.8
|
|
BUILDING NOTICE makefiles/Mf-install.in scheme.1.in c/Makefile.a6nt
|
|
c/Makefile.i3nt c/Makefile.ta6nt c/Makefile.ti3nt mats/Mf-a6nt
|
|
mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt workarea c/scheme.rc s/7.ss
|
|
s/cmacros.ss release_notes/release_notes.stex csug/copyright.stex
|
|
csug/csug.stex bintar/Makefile rpm/Makefile pkg/Makefile
|
|
wininstall/Makefile wininstall/a6nt.wxs wininstall/i3nt.wxs
|
|
wininstall/ta6nt.wxs wininstall/ti3nt.wxs newrelease
|
|
|
|
9.5.9 changes:
|
|
- updated version to 9.5.9
|
|
BUILDING NOTICE makefiles/Mf-install.in scheme.1.in c/Makefile.a6nt
|
|
c/Makefile.i3nt c/Makefile.ta6nt c/Makefile.ti3nt mats/Mf-a6nt
|
|
mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt workarea c/scheme.rc
|
|
s/cmacros.ss release_notes/release_notes.stex csug/copyright.stex
|
|
csug/csug.stex bintar/Makefile rpm/Makefile pkg/Makefile
|
|
wininstall/Makefile wininstall/a6nt.wxs wininstall/i3nt.wxs
|
|
wininstall/ta6nt.wxs wininstall/ti3nt.wxs
|
|
- fix arm32le compilation systems using musl libc
|
|
c/arm32le.c
|
|
- added install-docs target for make and corresponding configuration
|
|
options: --installdoc, --installcsug, and --installreleasenotes
|
|
configure makefiles/Makefile.in
|
|
- fixed a bug in `char-` that led to returning a large positive integer
|
|
result when the second argument had a value greater than the first.
|
|
It now returns a negative number in this situation.
|
|
cpnanopass.ss
|
|
5_4.ms root-experr-* patch-*
|
|
- fix ppc32 conditional-branch code generation when displacement is
|
|
exactly 32764
|
|
s/ppc32.ss
|
|
- fix callable floating-point argument allocation on x86
|
|
s/cpnanopass.ss
|
|
- corrected signature of multibyte->string and string->multibyte
|
|
s/primdata.ss
|
|
- fix typos found by Eric Lindblad
|
|
c/alloc.c c/compress-io.c c/gc.c c/gcwrapper.c c/new-io.c c/prim5.c
|
|
c/schsig.c csug/csug.stex csug/syntax.stex examples/template.ss
|
|
mats/4.ms mats/6.ms mats/7.ms mats/8.ms mats/bytevector.ms mats/foreign.ms
|
|
mats/io.ms mats/mat.ss mats/misc.ms mats/oop.ms mats/oop.ss mats/profile.ms
|
|
mats/record.ms mats/unix.ms s/5_3.ss s/7.ss s/arm32.ss s/base-lang.ss
|
|
s/cmacros.ss s/cp0.ss s/cpnanopass.ss s/date.ss s/format.ss s/io.ss
|
|
s/mkheader.ss s/np-languages.ss s/pdhtml.ss s/ppc32.ss s/print.ss
|
|
s/syntax.ss s/x86.ss s/x86_64.ss
|
|
- Unicode 14.0 support
|
|
unicode/* s/5_4.ss mats/5_4.ms mats/6.ms
|
|
- don't rely on signed integer overflow (UB) in symhash implementation
|
|
c/foreign.c
|
|
- Propagate immutable versions of "", #(), #vu8() and #vfx() in cp0.
|
|
s/cp0.ss s/cpnanopass.ss
|
|
- correct mislabeling of some functions as macros and vice versa in
|
|
docs + correct name of Slocked_objectp from Sunlocked_objectp
|
|
csug/foreign.stex
|