diff --git a/BUILDING b/BUILDING index 49d7bacec6..24533337c7 100644 --- a/BUILDING +++ b/BUILDING @@ -1,5 +1,5 @@ -Building Chez Scheme Version 9.5.1 -Copyright 1984-2017 Cisco Systems, Inc. +Building Chez Scheme Version 9.5.3 +Copyright 1984-2019 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/LOG b/LOG index 321384b0f7..1c9560bf04 100644 --- a/LOG +++ b/LOG @@ -1249,10 +1249,67 @@ 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 + workarea, mat.ss, io.ms, io.stex, objects.stex, release_notes.stex, + root-experr*, patch* diff --git a/NOTICE b/NOTICE index fb3bf4d92d..a2067d8388 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ -Chez Scheme Version 9.5.1 -Copyright 1984-2017 Cisco Systems, Inc. +Chez Scheme Version 9.5.3 +Copyright 1984-2019 Cisco Systems, Inc. This product includes code developed by Cisco Systems, Inc. diff --git a/bintar/Makefile b/bintar/Makefile index 61b323ccb0..046ab70c10 100644 --- a/bintar/Makefile +++ b/bintar/Makefile @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -version = 9.5.1 +version = 9.5.3 m := $(shell find ../bin/* -type d | xargs basename) R = csv$(version) @@ -58,10 +58,10 @@ $(R)/examples: $(R) $(R)/boot: $(R) mkdir -p $(R)/boot/$(m) - ( cd $(R)/boot/$(m) ; ln -s ../../../../boot/$(m)/{scheme.h,petite.boot,scheme.boot} . ) + ( cd $(R)/boot/$(m) ; ln -s ../../../../boot/$(m)/{scheme.h,petite.boot,scheme.boot,revision} . ) case $(m) in \ *nt) \ - ( cd $R/boot/$(m) ; ln -s ../../../../boot/$(m)/{csv951md.lib,csv951mt.lib,mainmd.obj,mainmt.obj,scheme.res} . ) \ + ( cd $R/boot/$(m) ; ln -s ../../../../boot/$(m)/{csv953md.lib,csv953mt.lib,mainmd.obj,mainmt.obj,scheme.res} . ) \ ;; \ *) \ ( cd $R/boot/$(m) ; ln -s ../../../../boot/$(m)/{main.o,kernel.o} . ) \ @@ -72,7 +72,7 @@ $(R)/bin: $(R) mkdir -p $(R)/bin/$(m) case $(m) in \ *nt) \ - ( cd $R/bin/$(m) ; ln -s ../../../../bin/$(m)/{scheme.exe,csv951.dll,csv951.lib,vcruntime140.lib} . ) \ + ( cd $R/bin/$(m) ; ln -s ../../../../bin/$(m)/{scheme.exe,csv953.dll,csv953.lib,vcruntime140.lib} . ) \ ;; \ *) \ ( cd $R/bin/$(m) ; ln -s ../../../../bin/$(m)/scheme . ) \ diff --git a/c/Makefile.a6nt b/c/Makefile.a6nt index 48d8f5205b..45a4263056 100644 --- a/c/Makefile.a6nt +++ b/c/Makefile.a6nt @@ -17,11 +17,11 @@ m = a6nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv953.dll +KernelLib = ..\bin\$m\csv953.lib +MTKernelLib = ..\boot\$m\csv953mt.lib +MDKernelLib = ..\boot\$m\csv953md.lib +KernelExp = ..\bin\$m\csv953.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj @@ -73,12 +73,12 @@ $(KernelLib) $(MTKernelLib) $(MDKernelLib): ../lz4/lib/lz4.h ../lz4/lib/lz4frame $(MTKernelLib): $(csrc) $(MTZlibLib) $(MTLZ4Lib) -del /f $(MTKernelLib) cl /DSCHEME_STATIC /c $(MTCFLAGS) $(csrc) - link /lib /nologo -out:$(MTKernelLib) $(cobj) $(MTZlibLib) + link /lib /nologo -out:$(MTKernelLib) $(cobj) $(MTZlibLib) $(MTLZ4Lib) $(MDKernelLib): $(csrc) $(MDZlibLib) $(MDLZ4Lib) -del /f $(MDKernelLib) cl /DSCHEME_STATIC /c $(MDCFLAGS) $(csrc) - link /lib /nologo -out:$(MDKernelLib) $(cobj) $(MDZlibLib) + link /lib /nologo -out:$(MDKernelLib) $(cobj) $(MDZlibLib) $(MDLZ4Lib) # nmake builds Dll twice if we list it with $(KernelLib) below $(KernelDll): $(KernelLib) diff --git a/c/Makefile.i3nt b/c/Makefile.i3nt index 4352dc4ad6..7292d38cf5 100644 --- a/c/Makefile.i3nt +++ b/c/Makefile.i3nt @@ -17,11 +17,11 @@ m = i3nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv953.dll +KernelLib = ..\bin\$m\csv953.lib +MTKernelLib = ..\boot\$m\csv953mt.lib +MDKernelLib = ..\boot\$m\csv953md.lib +KernelExp = ..\bin\$m\csv953.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj @@ -72,12 +72,12 @@ $(KernelLib) $(MTKernelLib) $(MDKernelLib): ../lz4/lib/lz4.h ../lz4/lib/lz4frame $(MTKernelLib): $(csrc) $(MTZlibLib) $(MTLZ4Lib) -del /f $(MTKernelLib) cl /DSCHEME_STATIC /c $(MTCFLAGS) $(csrc) - link /lib /nologo -out:$(MTKernelLib) $(cobj) $(MTZlibLib) + link /lib /nologo -out:$(MTKernelLib) $(cobj) $(MTZlibLib) $(MTLZ4Lib) $(MDKernelLib): $(csrc) $(MDZlibLib) $(MDLZ4Lib) -del /f $(MDKernelLib) cl /DSCHEME_STATIC /c $(MDCFLAGS) $(csrc) - link /lib /nologo -out:$(MDKernelLib) $(cobj) $(MDZlibLib) + link /lib /nologo -out:$(MDKernelLib) $(cobj) $(MDZlibLib) $(MDLZ4Lib) # nmake builds Dll twice if we list it with $(KernelLib) below $(KernelDll): $(KernelLib) diff --git a/c/Makefile.ta6nt b/c/Makefile.ta6nt index 82844e9c9b..3f2b05f529 100644 --- a/c/Makefile.ta6nt +++ b/c/Makefile.ta6nt @@ -17,11 +17,11 @@ m = ta6nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv953.dll +KernelLib = ..\bin\$m\csv953.lib +MTKernelLib = ..\boot\$m\csv953mt.lib +MDKernelLib = ..\boot\$m\csv953md.lib +KernelExp = ..\bin\$m\csv953.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj diff --git a/c/Makefile.ti3nt b/c/Makefile.ti3nt index 2eba6e81bf..045aa5f2c7 100644 --- a/c/Makefile.ti3nt +++ b/c/Makefile.ti3nt @@ -17,11 +17,11 @@ m = ti3nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv953.dll +KernelLib = ..\bin\$m\csv953.lib +MTKernelLib = ..\boot\$m\csv953mt.lib +MDKernelLib = ..\boot\$m\csv953md.lib +KernelExp = ..\bin\$m\csv953.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj diff --git a/c/compress-io.c b/c/compress-io.c index 1644ba0f36..edf9cb2fb3 100644 --- a/c/compress-io.c +++ b/c/compress-io.c @@ -1,4 +1,4 @@ -/* system.h +/* compress-io.c * Copyright 1984-2017 Cisco Systems, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -23,6 +23,7 @@ #include #ifdef WIN32 +#include # define WIN32_IZE(id) _ ## id # define GLZ_O_BINARY O_BINARY #else @@ -269,7 +270,7 @@ int glzread(glzFile file, void *buffer, unsigned int count) { if (in_avail > 0) { size_t amt, out_len = USE_LZ4_BUFFER_SIZE, in_len = in_avail; - /* For a larger enough result buffer, try to decompress directly + /* For a large enough result buffer, try to decompress directly to that buffer: */ if (count >= (out_len >> 1)) { size_t direct_out_len = count; @@ -284,15 +285,15 @@ int glzread(glzFile file, void *buffer, unsigned int count) { lz4->frame_ended = (amt == 0); if (LZ4F_isError(amt)) { - lz4->err = amt; + lz4->err = (int)amt; return -1; } - lz4->in_pos += in_len; + lz4->in_pos += (int)in_len; if (direct_out_len) { lz4->stream_pos += direct_out_len; - return direct_out_len; + return (int)direct_out_len; } in_len = in_avail - in_len; @@ -309,12 +310,12 @@ int glzread(glzFile file, void *buffer, unsigned int count) { lz4->frame_ended = (amt == 0); if (LZ4F_isError(amt)) { - lz4->err = amt; + lz4->err = (int)amt; return -1; } - lz4->in_pos += in_len; - lz4->out_len = out_len; + lz4->in_pos += (int)in_len; + lz4->out_len = (int)out_len; lz4->out_pos = 0; } } else { @@ -324,7 +325,7 @@ int glzread(glzFile file, void *buffer, unsigned int count) { } if (lz4->out_pos < lz4->out_len) { - unsigned amt = lz4->out_len - lz4->out_pos; + unsigned int amt = lz4->out_len - lz4->out_pos; if (amt > count) amt = count; memcpy(buffer, (char *)lz4->out_buffer + lz4->out_pos, amt); lz4->out_pos += amt; @@ -350,12 +351,12 @@ int glzwrite(glzFile file, void *buffer, unsigned int count) { lz4->in_buffer, lz4->in_pos, NULL); if (LZ4F_isError(out_len)) { - lz4->err = out_len; + lz4->err = (int)out_len; return -1; } lz4->in_pos = 0; - lz4->out_len = out_len; + lz4->out_len = (int)out_len; lz4->out_pos = 0; } @@ -394,20 +395,20 @@ long glzseek(glzFile file, long offset, int whence) { else if (file->mode == is_lz4_write) { lz4File_out *lz4 = (lz4File_out *)file->lz4; if (whence == SEEK_CUR) - offset += lz4->stream_pos; + offset += (long)lz4->stream_pos; if (offset >= 0) { while ((size_t)offset > lz4->stream_pos) { size_t amt = (size_t)offset - lz4->stream_pos; if (amt > 8) amt = 8; - if (glzwrite(file, "\0\0\0\0\0\0\0\0", amt) < 0) + if (glzwrite(file, "\0\0\0\0\0\0\0\0", (unsigned int)amt) < 0) return -1; } } - return lz4->stream_pos; + return (long)lz4->stream_pos; } else if (file->mode == is_lz4_read) { lz4File_in *lz4 = (lz4File_in *)file->lz4; if (whence == SEEK_CUR) - offset += lz4->stream_pos; + offset += (long)lz4->stream_pos; if (offset < 0) offset = 0; if ((size_t)offset < lz4->stream_pos) { @@ -428,10 +429,10 @@ long glzseek(glzFile file, long offset, int whence) { char buffer[32]; size_t amt = (size_t)offset - lz4->stream_pos; if (amt > sizeof(buffer)) amt = sizeof(buffer); - if (glzread(file, buffer, amt) < 0) + if (glzread(file, buffer, (unsigned int)amt) < 0) return -1; } - return lz4->stream_pos; + return (long)lz4->stream_pos; } else return 0; } diff --git a/c/compress-io.h b/c/compress-io.h index 1abb72e13f..d0cb121a6f 100644 --- a/c/compress-io.h +++ b/c/compress-io.h @@ -1,3 +1,19 @@ +/* compress-io.h + * Copyright 1984-2017 Cisco Systems, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "zlib.h" struct lz4File; diff --git a/c/fasl.c b/c/fasl.c index 839a38f064..ffa7f31ea1 100644 --- a/c/fasl.c +++ b/c/fasl.c @@ -71,7 +71,7 @@ * * -> {base-rtd} * - * -> {rtd} + * -> {rtd} * * -> {record} * @@ -714,10 +714,28 @@ static void faslin(ptr tc, ptr *x, ptr t, ptr *pstrbuf, faslFile f) { *x = rtd; return; } case fasl_type_rtd: { - fasl_record(tc, x, t, pstrbuf, f); - if (S_fasl_intern_rtd(x) < 0) { - S_error2("", "incompatible record type ~s in ~a", RECORDDESCNAME(*x), f->uf->path); + ptr rtd, rtd_uid, plist, ls; + + faslin(tc, &rtd_uid, t, pstrbuf, f); + + /* look for rtd on uid's property list */ + plist = SYMSPLIST(rtd_uid); + for (ls = plist; ls != Snil; ls = Scdr(Scdr(ls))) { + if (Scar(ls) == S_G.rtd_key) { + ptr tmp; + *x = rtd = Scar(Scdr(ls)); + fasl_record(tc, &tmp, t, pstrbuf, f); + if (!rtd_equiv(tmp, rtd)) + S_error2("", "incompatible record type ~s in ~a", RECORDDESCNAME(tmp), f->uf->path); + return; + } } + + fasl_record(tc, x, t, pstrbuf, f); + rtd = *x; + + /* register rtd on uid's property list */ + SETSYMSPLIST(rtd_uid, Scons(S_G.rtd_key, Scons(rtd, plist))); return; } case fasl_type_record: { diff --git a/c/intern.c b/c/intern.c index f1df636bc0..f094f55f97 100644 --- a/c/intern.c +++ b/c/intern.c @@ -188,19 +188,18 @@ void S_resize_oblist(void) { S_G.oblist = new_oblist; } -/* hash function: multiplier weights each character, h = n factors in the length */ -#define multiplier 3 +#define MIX_HASH(hc) (hc += (hc << 10), hc ^= (hc >> 6)) static iptr hash(const unsigned char *s, iptr n) { - iptr h = n + 401887359; - while (n--) h = h * multiplier + *s++; - return h & most_positive_fixnum; + uptr h = (uptr)n + 401887359; + while (n--) { h += *s++; MIX_HASH(h); } + return (iptr)h & most_positive_fixnum; } static iptr hash_sc(const string_char *s, iptr n) { - iptr h = n + 401887359; - while (n--) h = h * multiplier + Schar_value(*s++); - return h & most_positive_fixnum; + uptr h = (uptr)n + 401887359; + while (n--) { h += Schar_value(*s++); MIX_HASH(h); } + return (iptr)h & most_positive_fixnum; } static iptr hash_uname(const string_char *s, iptr n) { diff --git a/c/scheme.rc b/c/scheme.rc index 5f9a1d7660..9f63ef0133 100644 --- a/c/scheme.rc +++ b/c/scheme.rc @@ -1,8 +1,8 @@ #include "winver.h" VS_VERSION_INFO VERSIONINFO - FILEVERSION 9,5,1,0 - PRODUCTVERSION 9,5,1,0 + FILEVERSION 9,5,3,0 + PRODUCTVERSION 9,5,3,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0x0L FILEOS VOS__WINDOWS32 @@ -12,13 +12,13 @@ VS_VERSION_INFO VERSIONINFO BLOCK "StringFileInfo" { BLOCK "04090000" { VALUE "CompanyName", "Cisco Systems, Inc." - VALUE "FileDescription", "Chez Scheme Version 9.5.1" - VALUE "FileVersion", "9.5.1" + VALUE "FileDescription", "Chez Scheme Version 9.5.3" + VALUE "FileVersion", "9.5.3" VALUE "InternalName", "scheme.exe" - VALUE "LegalCopyright", "Copyright 1984-2017 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0." + VALUE "LegalCopyright", "Copyright 1984-2019 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0." VALUE "OriginalFilename", "scheme.exe" VALUE "ProductName", "Chez Scheme" - VALUE "ProductVersion", "9.5.1" + VALUE "ProductVersion", "9.5.3" } } BLOCK "VarFileInfo" { diff --git a/c/windows.c b/c/windows.c index 53c4b2c9d8..1dac846529 100644 --- a/c/windows.c +++ b/c/windows.c @@ -386,7 +386,7 @@ int S_windows_rmdir(const char *pathname) { if (!(rc = _wrmdir(wpathname))) { // Spin loop until Windows deletes the directory. int n; - for (n = 100; n > 0; n--) { + for (n = 1000; n > 0; n--) { if (_wrmdir(wpathname) && (errno == ENOENT)) break; } return 0; @@ -420,7 +420,7 @@ int S_windows_unlink(const char *pathname) { if (!(rc = _wunlink(wpathname))) { // Spin loop until Windows deletes the file. int n; - for (n = 100; n > 0; n--) { + for (n = 1000; n > 0; n--) { if (_wunlink(wpathname) && (errno == ENOENT)) break; } return 0; diff --git a/csug/copyright.stex b/csug/copyright.stex index de160eb21c..c75637f587 100644 --- a/csug/copyright.stex +++ b/csug/copyright.stex @@ -16,13 +16,13 @@ \centerline{}\vfill -\textbf{\copyright~2005--2018 Cisco Systems, Inc.} +\textbf{\copyright~2019 Cisco Systems, Inc.} Licensed under the Apache License Version 2.0\\ http://www.apache.org/licenses/LICENSE-2.0 % NB: also update corresponding notice in csug.stex -Revised \revisiondate~for Chez Scheme Version 9.5.1. +Revised \revisiondate~for Chez Scheme Version 9.5.3. \medskip\noindent Cisco and the Cisco logo are trademarks or registered trademarks diff --git a/csug/csug.stex b/csug/csug.stex index 39800fc021..0fec9041da 100644 --- a/csug/csug.stex +++ b/csug/csug.stex @@ -60,10 +60,10 @@ \def\copyrightnotice{\raw{

Chez Scheme Version 9 User's Guide
-Copyright © 2018 Cisco Systems, Inc.
+Copyright © 2019 Cisco Systems, Inc.
Licensed under the Apache License Version 2.0 (full copyright notice.).
-Revised} \revisiondate\raw{ for Chez Scheme Version 9.5.1
+Revised} \revisiondate\raw{ for Chez Scheme Version 9.5.3
about this book }} diff --git a/csug/threads.stex b/csug/threads.stex index 7f1aa91cef..38a97f6962 100644 --- a/csug/threads.stex +++ b/csug/threads.stex @@ -131,10 +131,16 @@ in all threads. %---------------------------------------------------------------------------- \noskipentryheader \formdef{make-mutex}{\categoryprocedure}{(make-mutex)} +\formdef{make-mutex}{\categoryprocedure}{(make-mutex \var{name})} \returns a new mutex object \listlibraries \endnoskipentryheader +\noindent +\var{name}, if supplied, must be a symbol which identifies the mutex, or +\scheme{#f} for no name. The name is printed every time the mutex is +printed, which is useful for debugging. + %---------------------------------------------------------------------------- \entryheader \formdef{mutex?}{\categoryprocedure}{(mutex? \var{obj})} @@ -215,10 +221,16 @@ Using \scheme{with-mutex} is generally more convenient and safer than using %---------------------------------------------------------------------------- \noskipentryheader \formdef{make-condition}{\categoryprocedure}{(make-condition)} +\formdef{make-condition}{\categoryprocedure}{(make-condition \var{name})} \returns a new condition object \listlibraries \endnoskipentryheader +\noindent +\var{name}, if supplied, must be a symbol which identifies the condition +object, or \scheme{#f} for no name. The name is printed every time the +condition is printed, which is useful for debugging. + %---------------------------------------------------------------------------- \entryheader \formdef{thread-condition?}{\categoryprocedure}{(thread-condition? \var{obj})} diff --git a/makefiles/Mf-install.in b/makefiles/Mf-install.in index b40b524bd4..a175284da3 100644 --- a/makefiles/Mf-install.in +++ b/makefiles/Mf-install.in @@ -55,10 +55,11 @@ InstallScriptName=scheme-script # no changes should be needed below this point # ############################################################################### -Version=csv9.5.1 +Version=csv9.5.3 Include=boot/$m PetiteBoot=boot/$m/petite.boot SchemeBoot=boot/$m/scheme.boot +Revision=boot/$m/revision Scheme=bin/$m/scheme Petite=bin/$m/petite InstallLibExamples=${InstallLib}/${Version}/examples @@ -118,6 +119,7 @@ libbininstall: ${LibBin} $I -m 444 ${Include}/kernel.o ${LibBin} $I -m 444 ${Include}/main.o ${LibBin} $I -m 444 ${Include}/scheme.h ${LibBin} + $I -m 444 ${Revision} ${LibBin}/revision maninstall: scheme.1 petite.1 ${Man} $I -m 444 scheme.1 ${Man}/${InstallSchemeName}.1 diff --git a/mats/8.ms b/mats/8.ms index 9df4853d42..08efa6a475 100644 --- a/mats/8.ms +++ b/mats/8.ms @@ -10715,6 +10715,18 @@ (remprop 'tlp-spam 'spam) (remprop 'tlp-spam 'tlp) #t)) + ; make sure we ignore return value(s) of interleaved init expressions + (equal? + (with-output-to-string + (lambda () + ; prevent cp0 from fixing the problem + (parameterize ([run-cp0 (lambda (f x) x)]) + (eval '(top-level-program (import (scheme)) + (define (f) (printf "hello\n") (values 1 2 3)) + (f) + (define x 'world) + (pretty-print x)))))) + "hello\nworld\n") ) (mat library-meta diff --git a/mats/Mf-a6nt b/mats/Mf-a6nt index 51957fad69..74ca208c14 100644 --- a/mats/Mf-a6nt +++ b/mats/Mf-a6nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv953.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /MD /nologo $<" diff --git a/mats/Mf-i3nt b/mats/Mf-i3nt index 52e9d3e093..3c8da577f1 100644 --- a/mats/Mf-i3nt +++ b/mats/Mf-i3nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv953.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat x86 && cl /DWIN32 /MD /nologo $<" diff --git a/mats/Mf-ta6nt b/mats/Mf-ta6nt index 177a78aed0..23f65694b0 100644 --- a/mats/Mf-ta6nt +++ b/mats/Mf-ta6nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv953.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /MD /nologo $<" diff --git a/mats/Mf-ti3nt b/mats/Mf-ti3nt index ab61f72a34..3c7e300574 100644 --- a/mats/Mf-ti3nt +++ b/mats/Mf-ti3nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv953.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat x86 && cl /DWIN32 /MD /nologo $<" diff --git a/mats/bytevector.ms b/mats/bytevector.ms index 262a721eb2..0ef426f5d0 100644 --- a/mats/bytevector.ms +++ b/mats/bytevector.ms @@ -11277,6 +11277,7 @@ (mat bytevector-compress + (parameters [compress-format 'gzip] [compress-format 'lz4]) (error? (bytevector-compress 7)) (error? (bytevector-compress "hello")) (error? (bytevector-uncompress 7)) diff --git a/mats/ftype.ms b/mats/ftype.ms index e5c6a9d3d6..7fc237f1f9 100644 --- a/mats/ftype.ms +++ b/mats/ftype.ms @@ -2876,6 +2876,42 @@ (ftype-set! fcf-B (next) x (make-ftype-pointer fcf-B 0)) (ftype-pointer? (ftype-ref fcf-B (next) x))) (lambda () (foreign-free addr)))) + ; regression test: verify that we can fasl in a cyclic ftd that's already registered on its uid + (begin + (mkfile "testfile-ftype3.ss" + '(define-ftype + [ftype3-A (* ftype3-B)] + [ftype3-B (struct [h ftype3-A])])) + (compile-file "testfile-ftype3") + #t) + (begin ; once should prove it + (load "testfile-ftype3.so") + (ftype-pointer? ftype3-A (make-ftype-pointer ftype3-B 0))) + (begin ; twice for that warm fuzzy feeling + (load "testfile-ftype3.so") + (ftype-pointer? ftype3-A (make-ftype-pointer ftype3-B 0))) + (begin + (mkfile "testfile-ftype4.ss" + '(define-ftype + [ftype4-A (struct [q (* ftype4-B)])] + [ftype4-B (struct [h (* ftype4-A)])])) + (compile-file "testfile-ftype4") + #t) + (begin ; once should prove it + (load "testfile-ftype4.so") + (ftype-pointer? ftype4-A (make-ftype-pointer ftype4-A 0))) + (begin ; twice for that warm fuzzy feeling + (load "testfile-ftype4.so") + (ftype-pointer? ftype4-B (make-ftype-pointer ftype4-B 0))) + (begin + (mkfile "testfile-ftype5.ss" + '(define-ftype + [ftype5-A (struct [q (* ftype4-A)])])) + (compile-file "testfile-ftype5") + #t) + (begin + (load "testfile-ftype5.so") + (ftype-pointer? ftype5-A (make-ftype-pointer ftype5-A 0))) ) (mat ftype-bits diff --git a/mats/patch-compile-0-f-t-f b/mats/patch-compile-0-f-t-f index c56bc76226..a548d2d2ec 100644 --- a/mats/patch-compile-0-f-t-f +++ b/mats/patch-compile-0-f-t-f @@ -1,5 +1,5 @@ -*** errors-compile-0-f-f-f 2019-03-15 12:05:55.397368315 -0400 ---- errors-compile-0-f-t-f 2019-03-15 11:24:12.070638664 -0400 +*** errors-compile-0-f-f-f 2019-03-20 19:56:48.000000000 -0600 +--- errors-compile-0-f-t-f 2019-03-20 19:09:54.000000000 -0600 *************** *** 125,131 **** 3.mo:Expected error in mat dipa-letrec: "attempt to reference undefined variable a". @@ -58,7 +58,7 @@ 3.mo:Expected error in mat mrvs: "attempt to apply non-procedure 17". 3.mo:Expected error in mat mrvs: "returned two values to single value return context". *************** -*** 3702,3708 **** +*** 3712,3718 **** misc.mo:Expected error in mat cpletrec: "foreign-procedure: no entry for "foo"". misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable q". misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable bar". @@ -66,7 +66,7 @@ misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable b". misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable b". misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable a". ---- 3702,3708 ---- +--- 3712,3718 ---- misc.mo:Expected error in mat cpletrec: "foreign-procedure: no entry for "foo"". misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable q". misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable bar". @@ -75,7 +75,7 @@ misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable b". misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable a". *************** -*** 7170,7177 **** +*** 7182,7189 **** 7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu". 7.mo:Expected error in mat error: "a: hit me!". 7.mo:Expected error in mat error: "f: n is 0". @@ -84,7 +84,7 @@ record.mo:Expected error in mat record2: "invalid value 3 for foreign type double-float". record.mo:Expected error in mat record2: "3 is not of type #". record.mo:Expected error in mat record2: "make-record-type: invalid field list ((immutable double-float a) . b)". ---- 7170,7177 ---- +--- 7182,7189 ---- 7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu". 7.mo:Expected error in mat error: "a: hit me!". 7.mo:Expected error in mat error: "f: n is 0". @@ -94,7 +94,7 @@ record.mo:Expected error in mat record2: "3 is not of type #". record.mo:Expected error in mat record2: "make-record-type: invalid field list ((immutable double-float a) . b)". *************** -*** 7179,7193 **** +*** 7191,7205 **** record.mo:Expected error in mat type-descriptor: "invalid syntax (type-descriptor 3)". record.mo:Expected error in mat type-descriptor: "type-descriptor: unrecognized record car". record.mo:Expected error in mat record3: "variable set-fudge-a! is not bound". @@ -110,7 +110,7 @@ record.mo:Expected error in mat record9: "record-reader: invalid input #f". record.mo:Expected error in mat record9: "record-reader: invalid second argument fudge". record.mo:Expected error in mat record9: "record-reader: invalid second argument fudge". ---- 7179,7193 ---- +--- 7191,7205 ---- record.mo:Expected error in mat type-descriptor: "invalid syntax (type-descriptor 3)". record.mo:Expected error in mat type-descriptor: "type-descriptor: unrecognized record car". record.mo:Expected error in mat record3: "variable set-fudge-a! is not bound". @@ -127,7 +127,7 @@ record.mo:Expected error in mat record9: "record-reader: invalid second argument fudge". record.mo:Expected error in mat record9: "record-reader: invalid second argument fudge". *************** -*** 7200,7225 **** +*** 7212,7237 **** record.mo:Expected error in mat record10: "read: unresolvable cycle constructing record of type # at char 3 of #". record.mo:Expected error in mat record16: "read: unresolvable cycle constructing record of type # at char 3 of #". record.mo:Expected error in mat record16: "read: unresolvable cycle constructing record of type # at char 3 of #". @@ -154,7 +154,7 @@ record.mo:Expected error in mat foreign-data: "foreign-alloc: 0 is not a positive fixnum". record.mo:Expected error in mat foreign-data: "foreign-alloc: is not a positive fixnum". record.mo:Expected error in mat foreign-data: "foreign-alloc: -5 is not a positive fixnum". ---- 7200,7225 ---- +--- 7212,7237 ---- record.mo:Expected error in mat record10: "read: unresolvable cycle constructing record of type # at char 3 of #". record.mo:Expected error in mat record16: "read: unresolvable cycle constructing record of type # at char 3 of #". record.mo:Expected error in mat record16: "read: unresolvable cycle constructing record of type # at char 3 of #". @@ -182,7 +182,7 @@ record.mo:Expected error in mat foreign-data: "foreign-alloc: is not a positive fixnum". record.mo:Expected error in mat foreign-data: "foreign-alloc: -5 is not a positive fixnum". *************** -*** 7350,7388 **** +*** 7362,7400 **** record.mo:Expected error in mat record22: "invalid field specifier (immutable creepy q)". record.mo:Expected error in mat record22: "invalid field specifier (immutable creepy q)". record.mo:Expected error in mat record23: "make-record-type: cannot extend sealed record type #". @@ -222,7 +222,7 @@ record.mo:Expected error in mat record?: "record?: 4 is not a record type descriptor". record.mo:Expected error in mat record?: "record?: a is not a record type descriptor". record.mo:Expected error in mat record?: "record?: #(1) is not a record type descriptor". ---- 7350,7388 ---- +--- 7362,7400 ---- record.mo:Expected error in mat record22: "invalid field specifier (immutable creepy q)". record.mo:Expected error in mat record22: "invalid field specifier (immutable creepy q)". record.mo:Expected error in mat record23: "make-record-type: cannot extend sealed record type #". @@ -263,7 +263,7 @@ record.mo:Expected error in mat record?: "record?: a is not a record type descriptor". record.mo:Expected error in mat record?: "record?: #(1) is not a record type descriptor". *************** -*** 7397,7453 **** +*** 7409,7465 **** record.mo:Expected error in mat r6rs-records-procedural: "make-record-constructor-descriptor: invalid protocol flimflam". record.mo:Expected error in mat r6rs-records-procedural: "attempt to apply non-procedure not-a-procedure". record.mo:Expected error in mat r6rs-records-procedural: "attempt to apply non-procedure spam". @@ -321,7 +321,7 @@ record.mo:Expected error in mat r6rs-records-syntactic: "define-record-type: incompatible record type cpoint - different parent". record.mo:Expected error in mat r6rs-records-syntactic: "define-record-type: incompatible record type cpoint - different parent". record.mo:Expected error in mat r6rs-records-syntactic: "cannot extend define-record-type parent fratrat". ---- 7397,7453 ---- +--- 7409,7465 ---- record.mo:Expected error in mat r6rs-records-procedural: "make-record-constructor-descriptor: invalid protocol flimflam". record.mo:Expected error in mat r6rs-records-procedural: "attempt to apply non-procedure not-a-procedure". record.mo:Expected error in mat r6rs-records-procedural: "attempt to apply non-procedure spam". diff --git a/mats/patch-compile-0-t-f-f b/mats/patch-compile-0-t-f-f index 1b7fdfb48f..4f63ec4085 100644 --- a/mats/patch-compile-0-t-f-f +++ b/mats/patch-compile-0-t-f-f @@ -1,5 +1,5 @@ -*** errors-compile-0-f-f-f 2019-03-15 12:05:55.397368315 -0400 ---- errors-compile-0-t-f-f 2019-03-15 11:33:18.696675715 -0400 +*** errors-compile-0-f-f-f 2019-03-20 19:56:48.000000000 -0600 +--- errors-compile-0-t-f-f 2019-03-20 19:18:54.000000000 -0600 *************** *** 93,99 **** 3.mo:Expected error in mat case-lambda: "incorrect number of arguments to #". @@ -3719,7 +3719,7 @@ bytevector.mo:Expected error in mat bytevector=?: "bytevector=?: "a" is not a bytevector". bytevector.mo:Expected error in mat tspl/csug-examples: "invalid endianness "spam"". *************** -*** 3632,3643 **** +*** 3642,3653 **** bytevector.mo:Expected error in mat bytevector-compress: "bytevector-uncompress: bytevector #vu8(255 255 255 255 255 255 ...) claims invalid uncompressed size ". misc.mo:Expected error in mat compiler1: "variable i-am-not-bound is not bound". misc.mo:Expected error in mat compiler1: "attempt to apply non-procedure oops". @@ -3732,7 +3732,7 @@ misc.mo:Expected error in mat compiler3: "incorrect argument count in call (consumer 1 2) at line 3, char 19 of testfile.ss". misc.mo:Expected error in mat compiler3: "incorrect argument count in call (consumer 1 2)". misc.mo:Expected error in mat compiler3: "variable goto is not bound". ---- 3632,3643 ---- +--- 3642,3653 ---- bytevector.mo:Expected error in mat bytevector-compress: "bytevector-uncompress: bytevector #vu8(255 255 255 255 255 255 ...) claims invalid uncompressed size ". misc.mo:Expected error in mat compiler1: "variable i-am-not-bound is not bound". misc.mo:Expected error in mat compiler1: "attempt to apply non-procedure oops". @@ -3746,7 +3746,7 @@ misc.mo:Expected error in mat compiler3: "incorrect argument count in call (consumer 1 2)". misc.mo:Expected error in mat compiler3: "variable goto is not bound". *************** -*** 3709,3729 **** +*** 3719,3739 **** misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable b". misc.mo:Expected error in mat cpletrec: "attempt to assign undefined variable b". misc.mo:Expected error in mat compile-profile: "compile-profile: invalid mode src [must be #f, #t, source, or block]". @@ -3768,7 +3768,7 @@ misc.mo:Expected error in mat compile-profile: "profile-dump-data: #t is not a string". misc.mo:Expected error in mat compile-profile: "profile-dump-data: invalid dump 17". misc.mo:Expected error in mat compile-profile: "profile-dump-data: invalid dump (17)". ---- 3709,3729 ---- +--- 3719,3739 ---- misc.mo:Expected error in mat cpletrec: "attempt to reference undefined variable b". misc.mo:Expected error in mat cpletrec: "attempt to assign undefined variable b". misc.mo:Expected error in mat compile-profile: "compile-profile: invalid mode src [must be #f, #t, source, or block]". @@ -3791,7 +3791,7 @@ misc.mo:Expected error in mat compile-profile: "profile-dump-data: invalid dump 17". misc.mo:Expected error in mat compile-profile: "profile-dump-data: invalid dump (17)". *************** -*** 3756,3762 **** +*** 3766,3772 **** misc.mo:Expected error in mat $fasl-file-equal?: "$fasl-file-equal?: failed for probably-does-not-exist: no such file or directory". misc.mo:Expected error in mat $fasl-file-equal?: "$fasl-file-equal?: failed for probably-does-not-exist: no such file or directory". misc.mo:Expected error in mat $fasl-file-equal?: "$fasl-file-equal?: record comparison failed while comparing testfile-fatfib1.so and testfile-fatfib3.so within fasl entry 2". @@ -3799,7 +3799,7 @@ misc.mo:Expected error in mat cost-center: "with-cost-center: foo is not a cost center". misc.mo:Expected error in mat cost-center: "with-cost-center: bar is not a procedure". misc.mo:Expected error in mat cost-center: "cost-center-instruction-count: 5 is not a cost center". ---- 3756,3762 ---- +--- 3766,3772 ---- misc.mo:Expected error in mat $fasl-file-equal?: "$fasl-file-equal?: failed for probably-does-not-exist: no such file or directory". misc.mo:Expected error in mat $fasl-file-equal?: "$fasl-file-equal?: failed for probably-does-not-exist: no such file or directory". misc.mo:Expected error in mat $fasl-file-equal?: "$fasl-file-equal?: record comparison failed while comparing testfile-fatfib1.so and testfile-fatfib3.so within fasl entry 2". @@ -3808,7 +3808,7 @@ misc.mo:Expected error in mat cost-center: "with-cost-center: bar is not a procedure". misc.mo:Expected error in mat cost-center: "cost-center-instruction-count: 5 is not a cost center". *************** -*** 3810,3817 **** +*** 3820,3827 **** misc.mo:Expected error in mat apropos: "apropos: 3 is not a symbol or string". misc.mo:Expected error in mat apropos: "apropos: (hit me) is not a symbol or string". misc.mo:Expected error in mat apropos: "apropos-list: b is not an environment". @@ -3817,7 +3817,7 @@ misc.mo:Expected error in mat apropos: "variable $apropos-unbound1 is not bound". misc.mo:Expected error in mat apropos: "variable $apropos-unbound2 is not bound". misc.mo:Expected error in mat simplify-if: "textual-port?: a is not a port". ---- 3810,3817 ---- +--- 3820,3827 ---- misc.mo:Expected error in mat apropos: "apropos: 3 is not a symbol or string". misc.mo:Expected error in mat apropos: "apropos: (hit me) is not a symbol or string". misc.mo:Expected error in mat apropos: "apropos-list: b is not an environment". @@ -3827,7 +3827,7 @@ misc.mo:Expected error in mat apropos: "variable $apropos-unbound2 is not bound". misc.mo:Expected error in mat simplify-if: "textual-port?: a is not a port". *************** -*** 3839,3847 **** +*** 3849,3857 **** cp0.mo:Expected error in mat cp0-regression: "condition: #f is not a condition". cp0.mo:Expected error in mat cp0-regression: "apply: 0 is not a proper list". cp0.mo:Expected error in mat cp0-regression: "apply: 2 is not a proper list". @@ -3837,7 +3837,7 @@ cp0.mo:Expected error in mat expand-output: "expand-output: #t is not a textual output port or #f". cp0.mo:Expected error in mat expand-output: "expand-output: # is not a textual output port or #f". cp0.mo:Expected error in mat expand/optimize-output: "expand/optimize-output: #t is not a textual output port or #f". ---- 3839,3847 ---- +--- 3849,3857 ---- cp0.mo:Expected error in mat cp0-regression: "condition: #f is not a condition". cp0.mo:Expected error in mat cp0-regression: "apply: 0 is not a proper list". cp0.mo:Expected error in mat cp0-regression: "apply: 2 is not a proper list". @@ -3848,7 +3848,7 @@ cp0.mo:Expected error in mat expand-output: "expand-output: # is not a textual output port or #f". cp0.mo:Expected error in mat expand/optimize-output: "expand/optimize-output: #t is not a textual output port or #f". *************** -*** 3905,3913 **** +*** 3915,3923 **** 5_6.mo:Expected error in mat list->fxvector: "list->fxvector: (1 2 . 3) is not a proper list". 5_6.mo:Expected error in mat list->fxvector: "list->fxvector: (1 2 3 2 3 2 ...) is circular". 5_6.mo:Expected error in mat fxvector->list: "fxvector->list: (a b c) is not an fxvector". @@ -3858,7 +3858,7 @@ 5_6.mo:Expected error in mat vector-map: "vector-map: #() is not a procedure". 5_6.mo:Expected error in mat vector-map: "vector-map: #() is not a procedure". 5_6.mo:Expected error in mat vector-map: "vector-map: #() is not a procedure". ---- 3905,3913 ---- +--- 3915,3923 ---- 5_6.mo:Expected error in mat list->fxvector: "list->fxvector: (1 2 . 3) is not a proper list". 5_6.mo:Expected error in mat list->fxvector: "list->fxvector: (1 2 3 2 3 2 ...) is circular". 5_6.mo:Expected error in mat fxvector->list: "fxvector->list: (a b c) is not an fxvector". @@ -3869,7 +3869,7 @@ 5_6.mo:Expected error in mat vector-map: "vector-map: #() is not a procedure". 5_6.mo:Expected error in mat vector-map: "vector-map: #() is not a procedure". *************** -*** 3922,3930 **** +*** 3932,3940 **** 5_6.mo:Expected error in mat vector-map: "vector-map: lengths of input vectors #() and #(x) differ". 5_6.mo:Expected error in mat vector-map: "vector-map: lengths of input vectors #(y) and #() differ". 5_6.mo:Expected error in mat vector-map: "vector-map: lengths of input vectors #(y) and #() differ". @@ -3879,7 +3879,7 @@ 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: #() is not a procedure". 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: #() is not a procedure". 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: #() is not a procedure". ---- 3922,3930 ---- +--- 3932,3940 ---- 5_6.mo:Expected error in mat vector-map: "vector-map: lengths of input vectors #() and #(x) differ". 5_6.mo:Expected error in mat vector-map: "vector-map: lengths of input vectors #(y) and #() differ". 5_6.mo:Expected error in mat vector-map: "vector-map: lengths of input vectors #(y) and #() differ". @@ -3890,7 +3890,7 @@ 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: #() is not a procedure". 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: #() is not a procedure". *************** -*** 3939,3956 **** +*** 3949,3966 **** 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: lengths of input vectors #() and #(x) differ". 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: lengths of input vectors #(y) and #() differ". 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: lengths of input vectors #(y) and #() differ". @@ -3909,7 +3909,7 @@ 5_6.mo:Expected error in mat vector-sort!: "vector-sort!: 3 is not a mutable vector". 5_6.mo:Expected error in mat vector-sort!: "vector-sort!: (1 2 3) is not a mutable vector". 5_6.mo:Expected error in mat vector-sort!: "vector-sort!: #(a b c) is not a procedure". ---- 3939,3956 ---- +--- 3949,3966 ---- 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: lengths of input vectors #() and #(x) differ". 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: lengths of input vectors #(y) and #() differ". 5_6.mo:Expected error in mat vector-for-each: "vector-for-each: lengths of input vectors #(y) and #() differ". @@ -3929,7 +3929,7 @@ 5_6.mo:Expected error in mat vector-sort!: "vector-sort!: (1 2 3) is not a mutable vector". 5_6.mo:Expected error in mat vector-sort!: "vector-sort!: #(a b c) is not a procedure". *************** -*** 3961,3969 **** +*** 3971,3979 **** 5_6.mo:Expected error in mat vector->immutable-vector: "vector-sort!: #(1 2 3) is not a mutable vector". 5_6.mo:Expected error in mat fxvector->immutable-fxvector: "fxvector-set!: #vfx(1 2 3) is not a mutable fxvector". 5_6.mo:Expected error in mat fxvector->immutable-fxvector: "fxvector-fill!: #vfx(1 2 3) is not a mutable fxvector". @@ -3939,7 +3939,7 @@ 5_6.mo:Expected error in mat vector-cas!: "vector-cas!: 1 is not a mutable vector". 5_6.mo:Expected error in mat vector-cas!: "vector-cas!: #(4 5 3) is not a mutable vector". 5_6.mo:Expected error in mat vector-cas!: "vector-cas!: #(4 5 3) is not a valid index for #(4 5 3)". ---- 3961,3969 ---- +--- 3971,3979 ---- 5_6.mo:Expected error in mat vector->immutable-vector: "vector-sort!: #(1 2 3) is not a mutable vector". 5_6.mo:Expected error in mat fxvector->immutable-fxvector: "fxvector-set!: #vfx(1 2 3) is not a mutable fxvector". 5_6.mo:Expected error in mat fxvector->immutable-fxvector: "fxvector-fill!: #vfx(1 2 3) is not a mutable fxvector". @@ -3950,7 +3950,7 @@ 5_6.mo:Expected error in mat vector-cas!: "vector-cas!: #(4 5 3) is not a mutable vector". 5_6.mo:Expected error in mat vector-cas!: "vector-cas!: #(4 5 3) is not a valid index for #(4 5 3)". *************** -*** 3992,3999 **** +*** 4002,4009 **** 5_7.mo:Expected error in mat putprop-getprop: "getprop: 3 is not a symbol". 5_7.mo:Expected error in mat putprop-getprop: "putprop: "hi" is not a symbol". 5_7.mo:Expected error in mat putprop-getprop: "property-list: (a b c) is not a symbol". @@ -3959,7 +3959,7 @@ 5_8.mo:Expected error in mat box-cas!: "box-cas!: 1 is not a mutable box". 5_8.mo:Expected error in mat box-cas!: "box-cas!: #&1 is not a mutable box". 6.mo:Expected error in mat port-operations: "open-input-file: failed for nonexistent file: no such file or directory". ---- 3992,3999 ---- +--- 4002,4009 ---- 5_7.mo:Expected error in mat putprop-getprop: "getprop: 3 is not a symbol". 5_7.mo:Expected error in mat putprop-getprop: "putprop: "hi" is not a symbol". 5_7.mo:Expected error in mat putprop-getprop: "property-list: (a b c) is not a symbol". @@ -3969,7 +3969,7 @@ 5_8.mo:Expected error in mat box-cas!: "box-cas!: #&1 is not a mutable box". 6.mo:Expected error in mat port-operations: "open-input-file: failed for nonexistent file: no such file or directory". *************** -*** 4031,4052 **** +*** 4041,4062 **** 6.mo:Expected error in mat port-operations: "clear-output-port: not permitted on closed port #". 6.mo:Expected error in mat port-operations: "current-output-port: a is not a textual output port". 6.mo:Expected error in mat port-operations: "current-input-port: a is not a textual input port". @@ -3992,7 +3992,7 @@ 6.mo:Expected error in mat port-operations1: "open-input-output-file: furball is not a string". 6.mo:Expected error in mat port-operations1: "open-input-output-file: failed for /probably/not/a/good/path: no such file or directory". 6.mo:Expected error in mat port-operations1: "open-input-output-file: invalid option compressed". ---- 4031,4052 ---- +--- 4041,4062 ---- 6.mo:Expected error in mat port-operations: "clear-output-port: not permitted on closed port #". 6.mo:Expected error in mat port-operations: "current-output-port: a is not a textual output port". 6.mo:Expected error in mat port-operations: "current-input-port: a is not a textual input port". @@ -4016,7 +4016,7 @@ 6.mo:Expected error in mat port-operations1: "open-input-output-file: failed for /probably/not/a/good/path: no such file or directory". 6.mo:Expected error in mat port-operations1: "open-input-output-file: invalid option compressed". *************** -*** 4055,4061 **** +*** 4065,4071 **** 6.mo:Expected error in mat port-operations1: "truncate-file: all-the-way is not a valid length". 6.mo:Expected error in mat port-operations1: "truncate-file: # is not an output port". 6.mo:Expected error in mat port-operations1: "truncate-file: animal-crackers is not an output port". @@ -4024,7 +4024,7 @@ 6.mo:Expected error in mat port-operations1: "truncate-file: not permitted on closed port #". 6.mo:Expected error in mat port-operations1: "get-output-string: # is not a string output port". 6.mo:Expected error in mat port-operations1: "get-output-string: # is not a string output port". ---- 4055,4061 ---- +--- 4065,4071 ---- 6.mo:Expected error in mat port-operations1: "truncate-file: all-the-way is not a valid length". 6.mo:Expected error in mat port-operations1: "truncate-file: # is not an output port". 6.mo:Expected error in mat port-operations1: "truncate-file: animal-crackers is not an output port". @@ -4033,7 +4033,7 @@ 6.mo:Expected error in mat port-operations1: "get-output-string: # is not a string output port". 6.mo:Expected error in mat port-operations1: "get-output-string: # is not a string output port". *************** -*** 4072,4079 **** +*** 4082,4089 **** 6.mo:Expected error in mat string-port-file-position: "file-position: -1 is not a valid position". 6.mo:Expected error in mat fresh-line: "fresh-line: 3 is not a textual output port". 6.mo:Expected error in mat fresh-line: "fresh-line: # is not a textual output port". @@ -4042,7 +4042,7 @@ 6.mo:Expected error in mat pretty-print: "pretty-format: 3 is not a symbol". 6.mo:Expected error in mat pretty-print: "pretty-format: invalid format (bad 0 ... ... 0 format)". 6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too few arguments for control string "~a~~~s" in call to format". ---- 4072,4079 ---- +--- 4082,4089 ---- 6.mo:Expected error in mat string-port-file-position: "file-position: -1 is not a valid position". 6.mo:Expected error in mat fresh-line: "fresh-line: 3 is not a textual output port". 6.mo:Expected error in mat fresh-line: "fresh-line: # is not a textual output port". @@ -4052,7 +4052,7 @@ 6.mo:Expected error in mat pretty-print: "pretty-format: invalid format (bad 0 ... ... 0 format)". 6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too few arguments for control string "~a~~~s" in call to format". *************** -*** 6557,6588 **** +*** 6567,6598 **** io.mo:Expected error in mat port-operations: "put-u8: not permitted on closed port #". io.mo:Expected error in mat port-operations: "put-bytevector: not permitted on closed port #". io.mo:Expected error in mat port-operations: "flush-output-port: not permitted on closed port #". @@ -4085,7 +4085,7 @@ io.mo:Expected error in mat port-operations1: "open-file-input/output-port: failed for /probably/not/a/good/path: no such file or directory". io.mo:Expected error in mat port-operations1: "invalid file option uncompressed". io.mo:Expected error in mat port-operations1: "invalid file option truncate". ---- 6557,6588 ---- +--- 6567,6598 ---- io.mo:Expected error in mat port-operations: "put-u8: not permitted on closed port #". io.mo:Expected error in mat port-operations: "put-bytevector: not permitted on closed port #". io.mo:Expected error in mat port-operations: "flush-output-port: not permitted on closed port #". @@ -4119,7 +4119,7 @@ io.mo:Expected error in mat port-operations1: "invalid file option uncompressed". io.mo:Expected error in mat port-operations1: "invalid file option truncate". *************** -*** 6593,6599 **** +*** 6603,6609 **** io.mo:Expected error in mat port-operations1: "set-port-length!: all-the-way is not a valid length". io.mo:Expected error in mat port-operations1: "truncate-port: # is not an output port". io.mo:Expected error in mat port-operations1: "truncate-port: animal-crackers is not an output port". @@ -4127,7 +4127,7 @@ io.mo:Expected error in mat port-operations1: "truncate-port: not permitted on closed port #". io.mo:Expected error in mat port-operations3: "file-port?: "not a port" is not a port". io.mo:Expected error in mat port-operations3: "port-file-descriptor: oops is not a port". ---- 6593,6599 ---- +--- 6603,6609 ---- io.mo:Expected error in mat port-operations1: "set-port-length!: all-the-way is not a valid length". io.mo:Expected error in mat port-operations1: "truncate-port: # is not an output port". io.mo:Expected error in mat port-operations1: "truncate-port: animal-crackers is not an output port". @@ -4136,7 +4136,7 @@ io.mo:Expected error in mat port-operations3: "file-port?: "not a port" is not a port". io.mo:Expected error in mat port-operations3: "port-file-descriptor: oops is not a port". *************** -*** 6776,6788 **** +*** 6786,6798 **** io.mo:Expected error in mat low-level-port-operations: "set-binary-port-output-size!: #vu8(1 2 3) is not a valid size for #". io.mo:Expected error in mat low-level-port-operations: "set-binary-port-output-size!: -1 is not a valid size for #". io.mo:Expected error in mat low-level-port-operations: "set-binary-port-output-size!: 6 is not a valid size for #". @@ -4150,7 +4150,7 @@ io.mo:Expected error in mat custom-port-buffer-size: "custom-port-buffer-size: shoe is not a positive fixnum". io.mo:Expected error in mat custom-port-buffer-size: "custom-port-buffer-size: 0 is not a positive fixnum". io.mo:Expected error in mat custom-port-buffer-size: "custom-port-buffer-size: -15 is not a positive fixnum". ---- 6776,6788 ---- +--- 6786,6798 ---- io.mo:Expected error in mat low-level-port-operations: "set-binary-port-output-size!: #vu8(1 2 3) is not a valid size for #". io.mo:Expected error in mat low-level-port-operations: "set-binary-port-output-size!: -1 is not a valid size for #". io.mo:Expected error in mat low-level-port-operations: "set-binary-port-output-size!: 6 is not a valid size for #". @@ -4165,8 +4165,8 @@ io.mo:Expected error in mat custom-port-buffer-size: "custom-port-buffer-size: 0 is not a positive fixnum". io.mo:Expected error in mat custom-port-buffer-size: "custom-port-buffer-size: -15 is not a positive fixnum". *************** -*** 6790,6805 **** - io.mo:Expected error in mat custom-port-buffer-size: "custom-port-buffer-size: 1024.0 is not a positive fixnum". +*** 6802,6817 **** + io.mo:Expected error in mat compression: "port-file-compressed!: cannot compress input/output port #". io.mo:Expected error in mat compression: "port-file-compressed!: # is not a file port". io.mo:Expected error in mat compression: "port-file-compressed!: cannot compress input/output port #". ! io.mo:Expected error in mat bytevector-input-port: "incorrect argument count in call (open-bytevector-input-port)". @@ -4182,8 +4182,8 @@ io.mo:Expected error in mat custom-binary-ports: "unget-u8: cannot unget 255 on #". io.mo:Expected error in mat custom-binary-ports: "put-u8: # is not a binary output port". io.mo:Expected error in mat custom-binary-ports: "port-length: # does not support operation". ---- 6790,6805 ---- - io.mo:Expected error in mat custom-port-buffer-size: "custom-port-buffer-size: 1024.0 is not a positive fixnum". +--- 6802,6817 ---- + io.mo:Expected error in mat compression: "port-file-compressed!: cannot compress input/output port #". io.mo:Expected error in mat compression: "port-file-compressed!: # is not a file port". io.mo:Expected error in mat compression: "port-file-compressed!: cannot compress input/output port #". ! io.mo:Expected error in mat bytevector-input-port: "incorrect number of arguments to #". @@ -4200,7 +4200,7 @@ io.mo:Expected error in mat custom-binary-ports: "put-u8: # is not a binary output port". io.mo:Expected error in mat custom-binary-ports: "port-length: # does not support operation". *************** -*** 6871,6886 **** +*** 6883,6898 **** io.mo:Expected error in mat current-ports: "console-output-port: # is not a textual output port". io.mo:Expected error in mat current-ports: "console-error-port: # is not a textual output port". io.mo:Expected error in mat current-transcoder: "current-transcoder: # is not a transcoder". @@ -4217,7 +4217,7 @@ io.mo:Expected error in mat utf-16-codec: "utf-16-codec: invalid endianness #f". io.mo:Expected error in mat to-fold-or-not-to-fold: "get-datum: invalid character name #\newLine at char 0 of #". io.mo:Expected error in mat to-fold-or-not-to-fold: "get-datum: invalid character name #\newLine at char 15 of #". ---- 6871,6886 ---- +--- 6883,6898 ---- io.mo:Expected error in mat current-ports: "console-output-port: # is not a textual output port". io.mo:Expected error in mat current-ports: "console-error-port: # is not a textual output port". io.mo:Expected error in mat current-transcoder: "current-transcoder: # is not a transcoder". @@ -4235,7 +4235,7 @@ io.mo:Expected error in mat to-fold-or-not-to-fold: "get-datum: invalid character name #\newLine at char 0 of #". io.mo:Expected error in mat to-fold-or-not-to-fold: "get-datum: invalid character name #\newLine at char 15 of #". *************** -*** 7052,7058 **** +*** 7064,7070 **** 7.mo:Expected error in mat eval-when: "invalid syntax visit-x". 7.mo:Expected error in mat eval-when: "invalid syntax revisit-x". 7.mo:Expected error in mat compile-whole-program: "compile-whole-program: failed for nosuchfile.wpo: no such file or directory". @@ -4243,7 +4243,7 @@ 7.mo:Expected error in mat compile-whole-program: "separate-eval: Exception in visit: library (testfile-wpo-lib) is not visible 7.mo:Expected error in mat compile-whole-program: "separate-eval: Exception: library (testfile-wpo-a4) not found 7.mo:Expected error in mat compile-whole-program: "separate-eval: Exception: library (testfile-wpo-c4) not found ---- 7052,7058 ---- +--- 7064,7070 ---- 7.mo:Expected error in mat eval-when: "invalid syntax visit-x". 7.mo:Expected error in mat eval-when: "invalid syntax revisit-x". 7.mo:Expected error in mat compile-whole-program: "compile-whole-program: failed for nosuchfile.wpo: no such file or directory". @@ -4252,7 +4252,7 @@ 7.mo:Expected error in mat compile-whole-program: "separate-eval: Exception: library (testfile-wpo-a4) not found 7.mo:Expected error in mat compile-whole-program: "separate-eval: Exception: library (testfile-wpo-c4) not found *************** -*** 7068,7094 **** +*** 7080,7106 **** 7.mo:Expected error in mat compile-whole-library: "separate-compile: Exception in compile-whole-library: encountered visit-only run-time library (testfile-cwl-a9) while processing file "testfile-cwl-a9.wpo" 7.mo:Expected error in mat compile-whole-library: "separate-eval: Exception in compile-whole-program: encountered library (testfile-deja-vu-one) in testfile-deja-vu-dup.wpo, but had already encountered it in testfile-deja-vu-two.wpo 7.mo:Expected error in mat top-level-value-functions: "top-level-bound?: "hello" is not a symbol". @@ -4280,7 +4280,7 @@ 7.mo:Expected error in mat top-level-value-functions: "define-top-level-value: hello is not an environment". 7.mo:Expected error in mat top-level-value-functions: "define-top-level-value: # is not a symbol". 7.mo:Expected error in mat top-level-value-functions: "variable i-am-not-bound-i-hope is not bound". ---- 7068,7094 ---- +--- 7080,7106 ---- 7.mo:Expected error in mat compile-whole-library: "separate-compile: Exception in compile-whole-library: encountered visit-only run-time library (testfile-cwl-a9) while processing file "testfile-cwl-a9.wpo" 7.mo:Expected error in mat compile-whole-library: "separate-eval: Exception in compile-whole-program: encountered library (testfile-deja-vu-one) in testfile-deja-vu-dup.wpo, but had already encountered it in testfile-deja-vu-two.wpo 7.mo:Expected error in mat top-level-value-functions: "top-level-bound?: "hello" is not a symbol". @@ -4309,7 +4309,7 @@ 7.mo:Expected error in mat top-level-value-functions: "define-top-level-value: # is not a symbol". 7.mo:Expected error in mat top-level-value-functions: "variable i-am-not-bound-i-hope is not bound". *************** -*** 7493,7603 **** +*** 7505,7615 **** hash.mo:Expected error in mat old-hash-table: "hash-table-for-each: ((a . b)) is not an eq hashtable". hash.mo:Expected error in mat old-hash-table: "incorrect number of arguments to #". hash.mo:Expected error in mat old-hash-table: "incorrect number of arguments to #". @@ -4421,7 +4421,7 @@ hash.mo:Expected error in mat hashtable-arguments: "hashtable-ephemeron?: (hash . table) is not a hashtable". hash.mo:Expected error in mat hash-return-value: "hashtable-ref: invalid hash-function # return value "oops" for any". hash.mo:Expected error in mat hash-return-value: "hashtable-ref: invalid hash-function # return value 3.5 for any". ---- 7493,7603 ---- +--- 7505,7615 ---- hash.mo:Expected error in mat old-hash-table: "hash-table-for-each: ((a . b)) is not an eq hashtable". hash.mo:Expected error in mat old-hash-table: "incorrect number of arguments to #". hash.mo:Expected error in mat old-hash-table: "incorrect number of arguments to #". @@ -4534,7 +4534,7 @@ hash.mo:Expected error in mat hash-return-value: "hashtable-ref: invalid hash-function # return value "oops" for any". hash.mo:Expected error in mat hash-return-value: "hashtable-ref: invalid hash-function # return value 3.5 for any". *************** -*** 7617,7723 **** +*** 7629,7735 **** hash.mo:Expected error in mat hash-return-value: "hashtable-delete!: invalid hash-function # return value "oops" for any". hash.mo:Expected error in mat hash-return-value: "hashtable-delete!: invalid hash-function # return value 3.5 for any". hash.mo:Expected error in mat hash-return-value: "hashtable-delete!: invalid hash-function # return value 1+2i for any". @@ -4642,7 +4642,7 @@ hash.mo:Expected error in mat eqv-hashtable-arguments: "make-ephemeron-eqv-hashtable: invalid size argument -1". hash.mo:Expected error in mat eqv-hashtable-arguments: "make-ephemeron-eqv-hashtable: invalid size argument #t". hash.mo:Expected error in mat eqv-hashtable-arguments: "make-ephemeron-eqv-hashtable: invalid size argument #f". ---- 7617,7723 ---- +--- 7629,7735 ---- hash.mo:Expected error in mat hash-return-value: "hashtable-delete!: invalid hash-function # return value "oops" for any". hash.mo:Expected error in mat hash-return-value: "hashtable-delete!: invalid hash-function # return value 3.5 for any". hash.mo:Expected error in mat hash-return-value: "hashtable-delete!: invalid hash-function # return value 1+2i for any". @@ -4751,7 +4751,7 @@ hash.mo:Expected error in mat eqv-hashtable-arguments: "make-ephemeron-eqv-hashtable: invalid size argument #t". hash.mo:Expected error in mat eqv-hashtable-arguments: "make-ephemeron-eqv-hashtable: invalid size argument #f". *************** -*** 7725,7740 **** +*** 7737,7752 **** hash.mo:Expected error in mat generic-hashtable: "hashtable-delete!: # is not mutable". hash.mo:Expected error in mat generic-hashtable: "hashtable-update!: # is not mutable". hash.mo:Expected error in mat generic-hashtable: "hashtable-update!: # is not mutable". @@ -4768,7 +4768,7 @@ hash.mo:Expected error in mat hash-functions: "string-ci-hash: hello is not a string". hash.mo:Expected error in mat fasl-other-hashtable: "fasl-write: invalid fasl object #". hash.mo:Expected error in mat fasl-other-hashtable: "fasl-write: invalid fasl object #". ---- 7725,7740 ---- +--- 7737,7752 ---- hash.mo:Expected error in mat generic-hashtable: "hashtable-delete!: # is not mutable". hash.mo:Expected error in mat generic-hashtable: "hashtable-update!: # is not mutable". hash.mo:Expected error in mat generic-hashtable: "hashtable-update!: # is not mutable". @@ -4786,7 +4786,7 @@ hash.mo:Expected error in mat fasl-other-hashtable: "fasl-write: invalid fasl object #". hash.mo:Expected error in mat fasl-other-hashtable: "fasl-write: invalid fasl object #". *************** -*** 7850,7857 **** +*** 7862,7869 **** 8.mo:Expected error in mat with-syntax: "invalid syntax a". 8.mo:Expected error in mat with-syntax: "duplicate pattern variable x in (x x)". 8.mo:Expected error in mat with-syntax: "duplicate pattern variable x in (x x)". @@ -4795,7 +4795,7 @@ 8.mo:Expected error in mat generate-temporaries: "generate-temporaries: improper list structure (a b . c)". 8.mo:Expected error in mat generate-temporaries: "generate-temporaries: cyclic list structure (a b c b c b ...)". 8.mo:Expected error in mat syntax->list: "syntax->list: invalid argument #". ---- 7850,7857 ---- +--- 7862,7869 ---- 8.mo:Expected error in mat with-syntax: "invalid syntax a". 8.mo:Expected error in mat with-syntax: "duplicate pattern variable x in (x x)". 8.mo:Expected error in mat with-syntax: "duplicate pattern variable x in (x x)". @@ -4805,7 +4805,7 @@ 8.mo:Expected error in mat generate-temporaries: "generate-temporaries: cyclic list structure (a b c b c b ...)". 8.mo:Expected error in mat syntax->list: "syntax->list: invalid argument #". *************** -*** 8447,8462 **** +*** 8459,8474 **** 8.mo:Expected error in mat rnrs-eval: "attempt to assign unbound identifier foo". 8.mo:Expected error in mat rnrs-eval: "invalid definition in immutable environment (define cons (quote #))". 8.mo:Expected error in mat top-level-syntax-functions: "top-level-syntax: "hello" is not a symbol". @@ -4822,7 +4822,7 @@ 8.mo:Expected error in mat top-level-syntax-functions: "define-top-level-syntax: hello is not an environment". 8.mo:Expected error in mat top-level-syntax-functions: "define-top-level-syntax: # is not a symbol". 8.mo:Expected error in mat top-level-syntax-functions: "define-top-level-syntax: cannot modify immutable environment #". ---- 8447,8462 ---- +--- 8459,8474 ---- 8.mo:Expected error in mat rnrs-eval: "attempt to assign unbound identifier foo". 8.mo:Expected error in mat rnrs-eval: "invalid definition in immutable environment (define cons (quote #))". 8.mo:Expected error in mat top-level-syntax-functions: "top-level-syntax: "hello" is not a symbol". @@ -4840,7 +4840,7 @@ 8.mo:Expected error in mat top-level-syntax-functions: "define-top-level-syntax: # is not a symbol". 8.mo:Expected error in mat top-level-syntax-functions: "define-top-level-syntax: cannot modify immutable environment #". *************** -*** 8555,8577 **** +*** 8567,8589 **** fx.mo:Expected error in mat fx=?: "fx=?: (a) is not a fixnum". fx.mo:Expected error in mat fx=?: "fx=?: is not a fixnum". fx.mo:Expected error in mat fx=?: "fx=?: <-int> is not a fixnum". @@ -4864,7 +4864,7 @@ fx.mo:Expected error in mat $fxu<: "incorrect number of arguments to #". fx.mo:Expected error in mat $fxu<: "incorrect number of arguments to #". fx.mo:Expected error in mat $fxu<: "$fxu<: <-int> is not a fixnum". ---- 8555,8577 ---- +--- 8567,8589 ---- fx.mo:Expected error in mat fx=?: "fx=?: (a) is not a fixnum". fx.mo:Expected error in mat fx=?: "fx=?: is not a fixnum". fx.mo:Expected error in mat fx=?: "fx=?: <-int> is not a fixnum". @@ -4889,7 +4889,7 @@ fx.mo:Expected error in mat $fxu<: "incorrect number of arguments to #". fx.mo:Expected error in mat $fxu<: "$fxu<: <-int> is not a fixnum". *************** -*** 8603,8615 **** +*** 8615,8627 **** fx.mo:Expected error in mat r6rs:fx-: "fx-: #f is not a fixnum". fx.mo:Expected error in mat r6rs:fx-: "fx-: #f is not a fixnum". fx.mo:Expected error in mat fx*: "fx*: (a . b) is not a fixnum". @@ -4903,7 +4903,7 @@ fx.mo:Expected error in mat r6rs:fx*: "fx*: is not a fixnum". fx.mo:Expected error in mat r6rs:fx*: "fx*: <-int> is not a fixnum". fx.mo:Expected error in mat r6rs:fx*: "fx*: #f is not a fixnum". ---- 8603,8615 ---- +--- 8615,8627 ---- fx.mo:Expected error in mat r6rs:fx-: "fx-: #f is not a fixnum". fx.mo:Expected error in mat r6rs:fx-: "fx-: #f is not a fixnum". fx.mo:Expected error in mat fx*: "fx*: (a . b) is not a fixnum". @@ -4918,7 +4918,7 @@ fx.mo:Expected error in mat r6rs:fx*: "fx*: <-int> is not a fixnum". fx.mo:Expected error in mat r6rs:fx*: "fx*: #f is not a fixnum". *************** -*** 8659,8671 **** +*** 8671,8683 **** fx.mo:Expected error in mat fx1+: "fx1+: <-int> is not a fixnum". fx.mo:Expected error in mat fx1+: "fx1+: is not a fixnum". fx.mo:Expected error in mat fx1+: "fx1+: a is not a fixnum". @@ -4932,7 +4932,7 @@ fx.mo:Expected error in mat fxmax: "fxmax: a is not a fixnum". fx.mo:Expected error in mat fxmax: "fxmax: is not a fixnum". fx.mo:Expected error in mat fxmax: "fxmax: <-int> is not a fixnum". ---- 8659,8671 ---- +--- 8671,8683 ---- fx.mo:Expected error in mat fx1+: "fx1+: <-int> is not a fixnum". fx.mo:Expected error in mat fx1+: "fx1+: is not a fixnum". fx.mo:Expected error in mat fx1+: "fx1+: a is not a fixnum". @@ -4947,7 +4947,7 @@ fx.mo:Expected error in mat fxmax: "fxmax: is not a fixnum". fx.mo:Expected error in mat fxmax: "fxmax: <-int> is not a fixnum". *************** -*** 8763,8772 **** +*** 8775,8784 **** fx.mo:Expected error in mat fxarithmetic-shift: "fxarithmetic-shift: fixnum overflow with arguments and 10". fx.mo:Expected error in mat fxarithmetic-shift: "fxarithmetic-shift: fixnum overflow with arguments -4097 and ". fx.mo:Expected error in mat fxarithmetic-shift: "fxarithmetic-shift: fixnum overflow with arguments <-int> and 1". @@ -4958,7 +4958,7 @@ fx.mo:Expected error in mat fxbit-field: "fxbit-field: 35.0 is not a fixnum". fx.mo:Expected error in mat fxbit-field: "fxbit-field: 5.0 is not a valid start index". fx.mo:Expected error in mat fxbit-field: "fxbit-field: 8.0 is not a valid end index". ---- 8763,8772 ---- +--- 8775,8784 ---- fx.mo:Expected error in mat fxarithmetic-shift: "fxarithmetic-shift: fixnum overflow with arguments and 10". fx.mo:Expected error in mat fxarithmetic-shift: "fxarithmetic-shift: fixnum overflow with arguments -4097 and ". fx.mo:Expected error in mat fxarithmetic-shift: "fxarithmetic-shift: fixnum overflow with arguments <-int> and 1". @@ -4970,7 +4970,7 @@ fx.mo:Expected error in mat fxbit-field: "fxbit-field: 5.0 is not a valid start index". fx.mo:Expected error in mat fxbit-field: "fxbit-field: 8.0 is not a valid end index". *************** -*** 8780,8813 **** +*** 8792,8825 **** fx.mo:Expected error in mat fxbit-field: "fxbit-field: is not a valid end index". fx.mo:Expected error in mat fxbit-field: "fxbit-field: is not a valid start index". fx.mo:Expected error in mat fxbit-field: "fxbit-field: is not a valid end index". @@ -5005,7 +5005,7 @@ fx.mo:Expected error in mat fxif: "fxif: a is not a fixnum". fx.mo:Expected error in mat fxif: "fxif: 3.4 is not a fixnum". fx.mo:Expected error in mat fxif: "fxif: (a) is not a fixnum". ---- 8780,8813 ---- +--- 8792,8825 ---- fx.mo:Expected error in mat fxbit-field: "fxbit-field: is not a valid end index". fx.mo:Expected error in mat fxbit-field: "fxbit-field: is not a valid start index". fx.mo:Expected error in mat fxbit-field: "fxbit-field: is not a valid end index". @@ -5041,7 +5041,7 @@ fx.mo:Expected error in mat fxif: "fxif: 3.4 is not a fixnum". fx.mo:Expected error in mat fxif: "fxif: (a) is not a fixnum". *************** -*** 8817,8860 **** +*** 8829,8872 **** fx.mo:Expected error in mat fxif: "fxif: <-int> is not a fixnum". fx.mo:Expected error in mat fxif: "fxif: <-int> is not a fixnum". fx.mo:Expected error in mat fxif: "fxif: <-int> is not a fixnum". @@ -5086,7 +5086,7 @@ fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: 3.4 is not a fixnum". fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: "3" is not a fixnum". fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: is not a fixnum". ---- 8817,8860 ---- +--- 8829,8872 ---- fx.mo:Expected error in mat fxif: "fxif: <-int> is not a fixnum". fx.mo:Expected error in mat fxif: "fxif: <-int> is not a fixnum". fx.mo:Expected error in mat fxif: "fxif: <-int> is not a fixnum". @@ -5132,7 +5132,7 @@ fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: "3" is not a fixnum". fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: is not a fixnum". *************** -*** 8863,8873 **** +*** 8875,8885 **** fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: invalid bit index -1". fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: invalid bit index ". fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: invalid bit index ". @@ -5144,7 +5144,7 @@ fx.mo:Expected error in mat fxcopy-bit-field: "fxcopy-bit-field: "3" is not a fixnum". fx.mo:Expected error in mat fxcopy-bit-field: "fxcopy-bit-field: 3.4 is not a valid start index". fx.mo:Expected error in mat fxcopy-bit-field: "fxcopy-bit-field: 3/4 is not a valid end index". ---- 8863,8873 ---- +--- 8875,8885 ---- fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: invalid bit index -1". fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: invalid bit index ". fx.mo:Expected error in mat fxcopy-bit: "fxcopy-bit: invalid bit index ". @@ -5157,7 +5157,7 @@ fx.mo:Expected error in mat fxcopy-bit-field: "fxcopy-bit-field: 3.4 is not a valid start index". fx.mo:Expected error in mat fxcopy-bit-field: "fxcopy-bit-field: 3/4 is not a valid end index". *************** -*** 8927,8936 **** +*** 8939,8948 **** fx.mo:Expected error in mat fxdiv0-and-mod0: "fxmod0: (a) is not a fixnum". fx.mo:Expected error in mat fxdiv0-and-mod0: "fxmod0: undefined for 0". fx.mo:Expected error in mat fxdiv0-and-mod0: "fxmod0: undefined for 0". @@ -5168,7 +5168,7 @@ fx.mo:Expected error in mat fx+/carry: "fx+/carry: 1.0 is not a fixnum". fx.mo:Expected error in mat fx+/carry: "fx+/carry: 2.0 is not a fixnum". fx.mo:Expected error in mat fx+/carry: "fx+/carry: 3.0 is not a fixnum". ---- 8927,8936 ---- +--- 8939,8948 ---- fx.mo:Expected error in mat fxdiv0-and-mod0: "fxmod0: (a) is not a fixnum". fx.mo:Expected error in mat fxdiv0-and-mod0: "fxmod0: undefined for 0". fx.mo:Expected error in mat fxdiv0-and-mod0: "fxmod0: undefined for 0". @@ -5180,7 +5180,7 @@ fx.mo:Expected error in mat fx+/carry: "fx+/carry: 2.0 is not a fixnum". fx.mo:Expected error in mat fx+/carry: "fx+/carry: 3.0 is not a fixnum". *************** -*** 8946,8955 **** +*** 8958,8967 **** fx.mo:Expected error in mat fx+/carry: "fx+/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx+/carry: "fx+/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx+/carry: "fx+/carry: <-int> is not a fixnum". @@ -5191,7 +5191,7 @@ fx.mo:Expected error in mat fx-/carry: "fx-/carry: 1.0 is not a fixnum". fx.mo:Expected error in mat fx-/carry: "fx-/carry: 2.0 is not a fixnum". fx.mo:Expected error in mat fx-/carry: "fx-/carry: 3.0 is not a fixnum". ---- 8946,8955 ---- +--- 8958,8967 ---- fx.mo:Expected error in mat fx+/carry: "fx+/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx+/carry: "fx+/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx+/carry: "fx+/carry: <-int> is not a fixnum". @@ -5203,7 +5203,7 @@ fx.mo:Expected error in mat fx-/carry: "fx-/carry: 2.0 is not a fixnum". fx.mo:Expected error in mat fx-/carry: "fx-/carry: 3.0 is not a fixnum". *************** -*** 8965,8974 **** +*** 8977,8986 **** fx.mo:Expected error in mat fx-/carry: "fx-/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx-/carry: "fx-/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx-/carry: "fx-/carry: <-int> is not a fixnum". @@ -5214,7 +5214,7 @@ fx.mo:Expected error in mat fx*/carry: "fx*/carry: 1.0 is not a fixnum". fx.mo:Expected error in mat fx*/carry: "fx*/carry: 2.0 is not a fixnum". fx.mo:Expected error in mat fx*/carry: "fx*/carry: 3.0 is not a fixnum". ---- 8965,8974 ---- +--- 8977,8986 ---- fx.mo:Expected error in mat fx-/carry: "fx-/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx-/carry: "fx-/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx-/carry: "fx-/carry: <-int> is not a fixnum". @@ -5226,7 +5226,7 @@ fx.mo:Expected error in mat fx*/carry: "fx*/carry: 2.0 is not a fixnum". fx.mo:Expected error in mat fx*/carry: "fx*/carry: 3.0 is not a fixnum". *************** -*** 8984,8994 **** +*** 8996,9006 **** fx.mo:Expected error in mat fx*/carry: "fx*/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx*/carry: "fx*/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx*/carry: "fx*/carry: <-int> is not a fixnum". @@ -5238,7 +5238,7 @@ fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: a is not a fixnum". fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid start index 0.0". fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid end index 2.0". ---- 8984,8994 ---- +--- 8996,9006 ---- fx.mo:Expected error in mat fx*/carry: "fx*/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx*/carry: "fx*/carry: <-int> is not a fixnum". fx.mo:Expected error in mat fx*/carry: "fx*/carry: <-int> is not a fixnum". @@ -5251,7 +5251,7 @@ fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid start index 0.0". fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid end index 2.0". *************** -*** 9011,9020 **** +*** 9023,9032 **** fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid end index ". fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid end index ". fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: count 1 is greater than difference between end index 5 and start index 5". @@ -5262,7 +5262,7 @@ fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: a is not a fixnum". fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid start index 0.0". fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid end index 2.0". ---- 9011,9020 ---- +--- 9023,9032 ---- fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid end index ". fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: invalid end index ". fx.mo:Expected error in mat fxrotate-bit-field: "fxrotate-bit-field: count 1 is greater than difference between end index 5 and start index 5". @@ -5274,7 +5274,7 @@ fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid start index 0.0". fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid end index 2.0". *************** -*** 9030,9047 **** +*** 9042,9059 **** fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid end index ". fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid end index <-int>". fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: start index 7 is greater than end index 5". @@ -5293,7 +5293,7 @@ fl.mo:Expected error in mat fl=: "fl=: (a) is not a flonum". fl.mo:Expected error in mat fl=: "fl=: a is not a flonum". fl.mo:Expected error in mat fl=: "fl=: a is not a flonum". ---- 9030,9047 ---- +--- 9042,9059 ---- fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid end index ". fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: invalid end index <-int>". fx.mo:Expected error in mat fxreverse-bit-field: "fxreverse-bit-field: start index 7 is greater than end index 5". @@ -5313,7 +5313,7 @@ fl.mo:Expected error in mat fl=: "fl=: a is not a flonum". fl.mo:Expected error in mat fl=: "fl=: a is not a flonum". *************** -*** 9049,9055 **** +*** 9061,9067 **** fl.mo:Expected error in mat fl=: "fl=: 3 is not a flonum". fl.mo:Expected error in mat fl=: "fl=: 7/2 is not a flonum". fl.mo:Expected error in mat fl=: "fl=: 7/2 is not a flonum". @@ -5321,7 +5321,7 @@ fl.mo:Expected error in mat fl<: "fl<: (a) is not a flonum". fl.mo:Expected error in mat fl<: "fl<: a is not a flonum". fl.mo:Expected error in mat fl<: "fl<: a is not a flonum". ---- 9049,9055 ---- +--- 9061,9067 ---- fl.mo:Expected error in mat fl=: "fl=: 3 is not a flonum". fl.mo:Expected error in mat fl=: "fl=: 7/2 is not a flonum". fl.mo:Expected error in mat fl=: "fl=: 7/2 is not a flonum". @@ -5330,7 +5330,7 @@ fl.mo:Expected error in mat fl<: "fl<: a is not a flonum". fl.mo:Expected error in mat fl<: "fl<: a is not a flonum". *************** -*** 9057,9063 **** +*** 9069,9075 **** fl.mo:Expected error in mat fl<: "fl<: 3 is not a flonum". fl.mo:Expected error in mat fl<: "fl<: 7/2 is not a flonum". fl.mo:Expected error in mat fl<: "fl<: 7/2 is not a flonum". @@ -5338,7 +5338,7 @@ fl.mo:Expected error in mat fl>: "fl>: (a) is not a flonum". fl.mo:Expected error in mat fl>: "fl>: a is not a flonum". fl.mo:Expected error in mat fl>: "fl>: a is not a flonum". ---- 9057,9063 ---- +--- 9069,9075 ---- fl.mo:Expected error in mat fl<: "fl<: 3 is not a flonum". fl.mo:Expected error in mat fl<: "fl<: 7/2 is not a flonum". fl.mo:Expected error in mat fl<: "fl<: 7/2 is not a flonum". @@ -5347,7 +5347,7 @@ fl.mo:Expected error in mat fl>: "fl>: a is not a flonum". fl.mo:Expected error in mat fl>: "fl>: a is not a flonum". *************** -*** 9065,9071 **** +*** 9077,9083 **** fl.mo:Expected error in mat fl>: "fl>: 3 is not a flonum". fl.mo:Expected error in mat fl>: "fl>: 7/2 is not a flonum". fl.mo:Expected error in mat fl>: "fl>: 7/2 is not a flonum". @@ -5355,7 +5355,7 @@ fl.mo:Expected error in mat fl<=: "fl<=: (a) is not a flonum". fl.mo:Expected error in mat fl<=: "fl<=: a is not a flonum". fl.mo:Expected error in mat fl<=: "fl<=: a is not a flonum". ---- 9065,9071 ---- +--- 9077,9083 ---- fl.mo:Expected error in mat fl>: "fl>: 3 is not a flonum". fl.mo:Expected error in mat fl>: "fl>: 7/2 is not a flonum". fl.mo:Expected error in mat fl>: "fl>: 7/2 is not a flonum". @@ -5364,7 +5364,7 @@ fl.mo:Expected error in mat fl<=: "fl<=: a is not a flonum". fl.mo:Expected error in mat fl<=: "fl<=: a is not a flonum". *************** -*** 9073,9079 **** +*** 9085,9091 **** fl.mo:Expected error in mat fl<=: "fl<=: 3 is not a flonum". fl.mo:Expected error in mat fl<=: "fl<=: 7/2 is not a flonum". fl.mo:Expected error in mat fl<=: "fl<=: 7/2 is not a flonum". @@ -5372,7 +5372,7 @@ fl.mo:Expected error in mat fl>=: "fl>=: (a) is not a flonum". fl.mo:Expected error in mat fl>=: "fl>=: a is not a flonum". fl.mo:Expected error in mat fl>=: "fl>=: a is not a flonum". ---- 9073,9079 ---- +--- 9085,9091 ---- fl.mo:Expected error in mat fl<=: "fl<=: 3 is not a flonum". fl.mo:Expected error in mat fl<=: "fl<=: 7/2 is not a flonum". fl.mo:Expected error in mat fl<=: "fl<=: 7/2 is not a flonum". @@ -5381,7 +5381,7 @@ fl.mo:Expected error in mat fl>=: "fl>=: a is not a flonum". fl.mo:Expected error in mat fl>=: "fl>=: a is not a flonum". *************** -*** 9081,9120 **** +*** 9093,9132 **** fl.mo:Expected error in mat fl>=: "fl>=: 3 is not a flonum". fl.mo:Expected error in mat fl>=: "fl>=: 7/2 is not a flonum". fl.mo:Expected error in mat fl>=: "fl>=: 7/2 is not a flonum". @@ -5422,7 +5422,7 @@ fl.mo:Expected error in mat fl>=?: "fl>=?: a is not a flonum". fl.mo:Expected error in mat fl>=?: "fl>=?: a is not a flonum". fl.mo:Expected error in mat fl>=?: "fl>=?: 3 is not a flonum". ---- 9081,9120 ---- +--- 9093,9132 ---- fl.mo:Expected error in mat fl>=: "fl>=: 3 is not a flonum". fl.mo:Expected error in mat fl>=: "fl>=: 7/2 is not a flonum". fl.mo:Expected error in mat fl>=: "fl>=: 7/2 is not a flonum". @@ -5464,7 +5464,7 @@ fl.mo:Expected error in mat fl>=?: "fl>=?: a is not a flonum". fl.mo:Expected error in mat fl>=?: "fl>=?: 3 is not a flonum". *************** -*** 9124,9130 **** +*** 9136,9142 **** fl.mo:Expected error in mat fl+: "fl+: (a . b) is not a flonum". fl.mo:Expected error in mat fl+: "fl+: 1 is not a flonum". fl.mo:Expected error in mat fl+: "fl+: 2/3 is not a flonum". @@ -5472,7 +5472,7 @@ fl.mo:Expected error in mat fl-: "fl-: (a . b) is not a flonum". fl.mo:Expected error in mat fl-: "fl-: 1 is not a flonum". fl.mo:Expected error in mat fl-: "fl-: a is not a flonum". ---- 9124,9130 ---- +--- 9136,9142 ---- fl.mo:Expected error in mat fl+: "fl+: (a . b) is not a flonum". fl.mo:Expected error in mat fl+: "fl+: 1 is not a flonum". fl.mo:Expected error in mat fl+: "fl+: 2/3 is not a flonum". @@ -5481,7 +5481,7 @@ fl.mo:Expected error in mat fl-: "fl-: 1 is not a flonum". fl.mo:Expected error in mat fl-: "fl-: a is not a flonum". *************** -*** 9134,9216 **** +*** 9146,9228 **** fl.mo:Expected error in mat fl*: "fl*: (a . b) is not a flonum". fl.mo:Expected error in mat fl*: "fl*: 1 is not a flonum". fl.mo:Expected error in mat fl*: "fl*: 2/3 is not a flonum". @@ -5565,7 +5565,7 @@ fl.mo:Expected error in mat flround: "flround: a is not a flonum". fl.mo:Expected error in mat flround: "flround: 2.0+1.0i is not a flonum". fl.mo:Expected error in mat flround: "flround: 2+1i is not a flonum". ---- 9134,9216 ---- +--- 9146,9228 ---- fl.mo:Expected error in mat fl*: "fl*: (a . b) is not a flonum". fl.mo:Expected error in mat fl*: "fl*: 1 is not a flonum". fl.mo:Expected error in mat fl*: "fl*: 2/3 is not a flonum". @@ -5650,7 +5650,7 @@ fl.mo:Expected error in mat flround: "flround: 2.0+1.0i is not a flonum". fl.mo:Expected error in mat flround: "flround: 2+1i is not a flonum". *************** -*** 9230,9265 **** +*** 9242,9277 **** fl.mo:Expected error in mat flinfinite?: "flinfinite?: 3 is not a flonum". fl.mo:Expected error in mat flinfinite?: "flinfinite?: 3/4 is not a flonum". fl.mo:Expected error in mat flinfinite?: "flinfinite?: hi is not a flonum". @@ -5687,7 +5687,7 @@ fl.mo:Expected error in mat fleven?: "fleven?: a is not a flonum". fl.mo:Expected error in mat fleven?: "fleven?: 3 is not a flonum". fl.mo:Expected error in mat fleven?: "fleven?: 3.2 is not an integer". ---- 9230,9265 ---- +--- 9242,9277 ---- fl.mo:Expected error in mat flinfinite?: "flinfinite?: 3 is not a flonum". fl.mo:Expected error in mat flinfinite?: "flinfinite?: 3/4 is not a flonum". fl.mo:Expected error in mat flinfinite?: "flinfinite?: hi is not a flonum". @@ -5725,7 +5725,7 @@ fl.mo:Expected error in mat fleven?: "fleven?: 3 is not a flonum". fl.mo:Expected error in mat fleven?: "fleven?: 3.2 is not an integer". *************** -*** 9267,9274 **** +*** 9279,9286 **** fl.mo:Expected error in mat fleven?: "fleven?: 1+1i is not a flonum". fl.mo:Expected error in mat fleven?: "fleven?: +inf.0 is not an integer". fl.mo:Expected error in mat fleven?: "fleven?: +nan.0 is not an integer". @@ -5734,7 +5734,7 @@ fl.mo:Expected error in mat flodd?: "flodd?: a is not a flonum". fl.mo:Expected error in mat flodd?: "flodd?: 3 is not a flonum". fl.mo:Expected error in mat flodd?: "flodd?: 3.2 is not an integer". ---- 9267,9274 ---- +--- 9279,9286 ---- fl.mo:Expected error in mat fleven?: "fleven?: 1+1i is not a flonum". fl.mo:Expected error in mat fleven?: "fleven?: +inf.0 is not an integer". fl.mo:Expected error in mat fleven?: "fleven?: +nan.0 is not an integer". @@ -5744,7 +5744,7 @@ fl.mo:Expected error in mat flodd?: "flodd?: 3 is not a flonum". fl.mo:Expected error in mat flodd?: "flodd?: 3.2 is not an integer". *************** -*** 9276,9282 **** +*** 9288,9294 **** fl.mo:Expected error in mat flodd?: "flodd?: 3+1i is not a flonum". fl.mo:Expected error in mat flodd?: "flodd?: +inf.0 is not an integer". fl.mo:Expected error in mat flodd?: "flodd?: +nan.0 is not an integer". @@ -5752,7 +5752,7 @@ fl.mo:Expected error in mat flmin: "flmin: a is not a flonum". fl.mo:Expected error in mat flmin: "flmin: a is not a flonum". fl.mo:Expected error in mat flmin: "flmin: a is not a flonum". ---- 9276,9282 ---- +--- 9288,9294 ---- fl.mo:Expected error in mat flodd?: "flodd?: 3+1i is not a flonum". fl.mo:Expected error in mat flodd?: "flodd?: +inf.0 is not an integer". fl.mo:Expected error in mat flodd?: "flodd?: +nan.0 is not an integer". @@ -5761,7 +5761,7 @@ fl.mo:Expected error in mat flmin: "flmin: a is not a flonum". fl.mo:Expected error in mat flmin: "flmin: a is not a flonum". *************** -*** 9284,9290 **** +*** 9296,9302 **** fl.mo:Expected error in mat flmin: "flmin: a is not a flonum". fl.mo:Expected error in mat flmin: "flmin: 0.0+1.0i is not a flonum". fl.mo:Expected error in mat flmin: "flmin: 0+1i is not a flonum". @@ -5769,7 +5769,7 @@ fl.mo:Expected error in mat flmax: "flmax: a is not a flonum". fl.mo:Expected error in mat flmax: "flmax: a is not a flonum". fl.mo:Expected error in mat flmax: "flmax: 3 is not a flonum". ---- 9284,9290 ---- +--- 9296,9302 ---- fl.mo:Expected error in mat flmin: "flmin: a is not a flonum". fl.mo:Expected error in mat flmin: "flmin: 0.0+1.0i is not a flonum". fl.mo:Expected error in mat flmin: "flmin: 0+1i is not a flonum". @@ -5778,7 +5778,7 @@ fl.mo:Expected error in mat flmax: "flmax: a is not a flonum". fl.mo:Expected error in mat flmax: "flmax: 3 is not a flonum". *************** -*** 9292,9305 **** +*** 9304,9317 **** fl.mo:Expected error in mat flmax: "flmax: a is not a flonum". fl.mo:Expected error in mat flmax: "flmax: 0.0+1.0i is not a flonum". fl.mo:Expected error in mat flmax: "flmax: 0+1i is not a flonum". @@ -5793,7 +5793,7 @@ fl.mo:Expected error in mat fldenominator: "fldenominator: a is not a flonum". fl.mo:Expected error in mat fldenominator: "fldenominator: 3 is not a flonum". fl.mo:Expected error in mat fldenominator: "fldenominator: 0+1i is not a flonum". ---- 9292,9305 ---- +--- 9304,9317 ---- fl.mo:Expected error in mat flmax: "flmax: a is not a flonum". fl.mo:Expected error in mat flmax: "flmax: 0.0+1.0i is not a flonum". fl.mo:Expected error in mat flmax: "flmax: 0+1i is not a flonum". @@ -5809,7 +5809,7 @@ fl.mo:Expected error in mat fldenominator: "fldenominator: 3 is not a flonum". fl.mo:Expected error in mat fldenominator: "fldenominator: 0+1i is not a flonum". *************** -*** 9345,9351 **** +*** 9357,9363 **** cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". @@ -5817,7 +5817,7 @@ cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". ---- 9345,9351 ---- +--- 9357,9363 ---- cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". @@ -5826,7 +5826,7 @@ cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". cfl.mo:Expected error in mat cfl-: "cfl-: a is not a cflonum". *************** -*** 9355,9368 **** +*** 9367,9380 **** cfl.mo:Expected error in mat cfl/: "cfl/: a is not a cflonum". cfl.mo:Expected error in mat cfl/: "cfl/: a is not a cflonum". cfl.mo:Expected error in mat cfl/: "cfl/: a is not a cflonum". @@ -5841,7 +5841,7 @@ foreign.mo:Expected error in mat load-shared-object: "load-shared-object: invalid path 3". foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: no entry for "i do not exist"". foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: no entry for "i do not exist"". ---- 9355,9368 ---- +--- 9367,9380 ---- cfl.mo:Expected error in mat cfl/: "cfl/: a is not a cflonum". cfl.mo:Expected error in mat cfl/: "cfl/: a is not a cflonum". cfl.mo:Expected error in mat cfl/: "cfl/: a is not a cflonum". @@ -5857,7 +5857,7 @@ foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: no entry for "i do not exist"". foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: no entry for "i do not exist"". *************** -*** 9397,9404 **** +*** 9409,9416 **** foreign.mo:Expected error in mat foreign-procedure: "id: invalid foreign-procedure argument foo". foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle abcde". foreign.mo:Expected error in mat foreign-procedure: "float_id: invalid foreign-procedure argument 0". @@ -5866,7 +5866,7 @@ foreign.mo:Expected error in mat foreign-sizeof: "foreign-sizeof: invalid foreign type specifier i-am-not-a-type". foreign.mo:Expected error in mat foreign-sizeof: "foreign-sizeof: invalid foreign type specifier 1". foreign.mo:Expected error in mat foreign-bytevectors: "u8*->u8*: invalid foreign-procedure argument "hello"". ---- 9397,9404 ---- +--- 9409,9416 ---- foreign.mo:Expected error in mat foreign-procedure: "id: invalid foreign-procedure argument foo". foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle abcde". foreign.mo:Expected error in mat foreign-procedure: "float_id: invalid foreign-procedure argument 0". @@ -5876,7 +5876,7 @@ foreign.mo:Expected error in mat foreign-sizeof: "foreign-sizeof: invalid foreign type specifier 1". foreign.mo:Expected error in mat foreign-bytevectors: "u8*->u8*: invalid foreign-procedure argument "hello"". *************** -*** 9896,9908 **** +*** 9908,9920 **** unix.mo:Expected error in mat file-operations: "file-access-time: failed for "testlink": no such file or directory". unix.mo:Expected error in mat file-operations: "file-change-time: failed for "testlink": no such file or directory". unix.mo:Expected error in mat file-operations: "file-modification-time: failed for "testlink": no such file or directory". @@ -5890,7 +5890,7 @@ windows.mo:Expected error in mat registry: "get-registry: pooh is not a string". windows.mo:Expected error in mat registry: "put-registry!: 3 is not a string". windows.mo:Expected error in mat registry: "put-registry!: 3 is not a string". ---- 9896,9908 ---- +--- 9908,9920 ---- unix.mo:Expected error in mat file-operations: "file-access-time: failed for "testlink": no such file or directory". unix.mo:Expected error in mat file-operations: "file-change-time: failed for "testlink": no such file or directory". unix.mo:Expected error in mat file-operations: "file-modification-time: failed for "testlink": no such file or directory". @@ -5905,7 +5905,7 @@ windows.mo:Expected error in mat registry: "put-registry!: 3 is not a string". windows.mo:Expected error in mat registry: "put-registry!: 3 is not a string". *************** -*** 9930,10001 **** +*** 9942,10013 **** ieee.mo:Expected error in mat flonum->fixnum: "flonum->fixnum: result for -inf.0 would be outside of fixnum range". ieee.mo:Expected error in mat flonum->fixnum: "flonum->fixnum: result for +nan.0 would be outside of fixnum range". ieee.mo:Expected error in mat fllp: "fllp: 3 is not a flonum". @@ -5978,7 +5978,7 @@ date.mo:Expected error in mat time: "time>=?: 3 is not a time record". date.mo:Expected error in mat time: "time>=?: # is not a time record". date.mo:Expected error in mat time: "time>=?: types of

Chez Scheme Version $(version)

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html - echo '

Copyright (c) 2017 Cisco Systems, Inc.

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html + echo '

Copyright © 2019 Cisco Systems, Inc.

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html echo '

Chez Scheme is a programming language and an implementation of that language, with supporting tools and documentation.

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html echo '' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html chmod 644 $(BUILDROOT)/Resources/en.lproj/Welcome.html diff --git a/release_notes/release_notes.stex b/release_notes/release_notes.stex index d010515e15..34c605f28f 100644 --- a/release_notes/release_notes.stex +++ b/release_notes/release_notes.stex @@ -1,8 +1,8 @@ \documentclass{releasenotes} -\thisversion{Version 9.5.1} +\thisversion{Version 9.5.3} \thatversion{Version 8.4} -\pubmonth{January} +\pubmonth{March} \pubyear{2019} \begin{document} @@ -112,7 +112,7 @@ unordered by default. An ordered guardian's objects are classified as inaccessible only when they are not reachable from the represetative of any inaccessible object in any other guardian. -\subsection{Compression format (9.5.1)} +\subsection{Compression format (9.5.3)} The default format for compressed-file writing is now LZ4, while {\tt gzip} is still supported and can be enabled by setting @@ -123,6 +123,37 @@ files tends to be much faster than reading {\tt gzip}-format files, in most cases nearly eliminating the load-time cost of compressing compiled files. +\subsection{Mutexes and condition variables can have names (9.5.3)} + +The procedures \scheme{make-mutex} and \scheme{make-condition} now +accept an optional argument \scheme{name}, which must be a symbol +that identifies the object or \scheme{f} for no name. The name is +printed every time the mutex or condition object is printed, which +is useful for debugging. + +\subsection{Improved packaging support (9.5.1)} + +The Chez Scheme \scheme{Makefile} has been enhanced with new targets for +creating binary packages for Unix-like operating systems. +The \scheme{create-tarball} target generates a binary tarball package for +distribution, the \scheme{create-rpm} target generates a Linux RPM package, and +the \scheme{create-pkg} target generates a macOS package file. + +\subsection{Library search handler (9.5.1)} + +The new \scheme{library-search-handler} parameter controls how library source +or object code is located when \scheme{import}, \scheme{compile-whole-program}, +or \scheme{compile-whole-library} are used to load a library. +The value of the \scheme{library-search-handler} parameter must be a procedure +expecting four arguments: the \var{who} argument is a symbol that provides +context in \scheme{import-notify} messages, the \var{library} argument is the +name of the desired library, the \var{directories} is a list of source and +object directory pairs in the form returned by \scheme{library-directories}, +and the \var{extensions} parameter is a list of source and object extension +pairs in the form returned by \scheme{library-extensions}. +The default vaue of the \scheme{library-search-handler} is the newly exposed +\scheme{default-library-search-handler} procedure. + \subsection{Ftype guardians (9.5.1)} Applications that manage memory outside the Scheme heap can leverage @@ -1705,6 +1736,62 @@ in fasl files does not generally make sense. %----------------------------------------------------------------------------- \section{Bug Fixes}\label{section:bugfixes} +\subsection{Welcome text in macOS package file (9.5.2)} + +The welcome text and copyright year in the macOS package file was +corrected. + +\subsection{Fasl representation change for recursive ftypes (9.5.2)} + +A bug in the reading of mutually recursive ftype definitions from +compiled files has been fixed. +The bug was triggered by recursive ftype definitions in which one +of the mutually recursive ftypes is a subtype of another, as in: + +\schemedisplay +(define-ftype + [A (* B)] + [B (struct [h A])])) +\endschemedisplay + +It manifested in the fasl reader raising bogus "incompatible record +type" exceptions when two or more references to one of the ftypes +occur in in separate compiled files or in separate top-level forms +of a file compiled via \scheme{compile-file}. +The bug could also have affected other record-type descriptors with +cycles involving parent rtds and ``extra'' fields as well as fasl +output created via \scheme{fasl-write}. + +\subsection{Unbound object resulting from libraries combined with \protect\scheme{compile-whole-library} (9.5.1)} + +A bug in \scheme{compile-whole-library} that allowed the invoke code for a +library included in the combined library body to be executed without first +invoking its binary library dependencies has been fixed. +This bug could arise when a member of a combined library was invoked without +invoking the requirements of the other libraries it was combined with. For +instance, consider the case where libraries \scheme{(A)} and \scheme{(B)} are +combined and \scheme{(B)} has dependencies on library \scheme{(A)} and binary +library \scheme{(C)}. +One possible sort order of this graph is \scheme{(C)}, \scheme{(A)}, +\scheme{(B)}, where the invoke code for \scheme{(A)} and \scheme{(B)} are +combined into a single block of invoke code. If library \scheme{(A)} is +invoked first, it will implicitly cause the invoke code for \scheme{(B)} to be +invoked without invoking the code for \scheme{(C)}. +We address this by adding explicit dependencies between \scheme{(A)} and all +the binary libraries that precede it and all of the other libraries clustered +with \scheme{(A)} and \scheme{(A)}, such that no matter which library clustered +with \scheme{(A)} is invoked firts, \scheme{(A)} will be invoked, causing all +binary libraries that precede \scheme{(A)} to be invoked. +It is also possible for a similar problem to exist between clusters, where +invoking a later cluster may invoke an earlier cluster without invoking the +binary dependencies for the earlier cluster. +We address this issue by adding an invoke requirement between each cluster and +the first library in the cluster that precedes it. +These extended invoke requirements are also added to the import requirements +for each library, and the dependency graph is enhanced with import requirement +links to ensure these are taken into account during the topological sort. + + \subsection{Automatic recompilation and missing include files (9.5.1)} A bug in automatic recompilation involving missing include files diff --git a/rpm/Makefile b/rpm/Makefile index 2b661b37a5..901358bcdd 100644 --- a/rpm/Makefile +++ b/rpm/Makefile @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -version = 9.5.1 +version = 9.5.3 release = 1 m := $(shell find ../bin/* -type d | xargs basename) arch := $(shell if test "$(m)" == "i3le" ; then echo i686 ; elif test "$(m)" == "a6le" ; then echo x86_64 ; else echo UNKNOWN ; fi) diff --git a/s/.gitattributes b/s/.gitattributes new file mode 100644 index 0000000000..25bdb21245 --- /dev/null +++ b/s/.gitattributes @@ -0,0 +1 @@ +update-revision export-subst diff --git a/s/7.ss b/s/7.ss index f2413a183c..319b5937e2 100644 --- a/s/7.ss +++ b/s/7.ss @@ -676,7 +676,7 @@ (define $scheme-greeting (lambda () - (format "~a\nCopyright 1984-2017 Cisco Systems, Inc.\n" + (format "~a\nCopyright 1984-2019 Cisco Systems, Inc.\n" (scheme-version)))) (define $session-key #f) diff --git a/s/Mf-base b/s/Mf-base index a3c32511a3..f9abbc68e6 100644 --- a/s/Mf-base +++ b/s/Mf-base @@ -97,6 +97,7 @@ PetiteBoot = ../boot/$m/petite.boot SchemeBoot = ../boot/$m/scheme.boot Cheader = ../boot/$m/scheme.h Cequates = ../boot/$m/equates.h +Revision = ../boot/$m/revision # The following controls the patch files loaded before compiling, typically used only # to load a new compiler for cross compilation @@ -152,11 +153,11 @@ allsrc =\ np-languages.ss bitset.ss fxmap.ss # doit uses a different Scheme process to compile each target -doit: ${PetiteBoot} ${SchemeBoot} ${Cheader} ${Cequates} +doit: ${PetiteBoot} ${SchemeBoot} ${Cheader} ${Cequates} ${Revision} # all uses a single Scheme process to compile all targets. this is typically # faster when most of the targets need to be recompiled. -all: bootall ${Cheader} ${Cequates} +all: bootall ${Cheader} ${Cequates} ${Revision} # allx runs all up to three times and checks to see if the new boot file is the # same as the last, i.e., the system is properly bootstrapped. @@ -177,7 +178,7 @@ ifneq ($(OS),Windows_NT) endif # bootstrap runs allx if any sources have changed since the last bootstrap -bootstrap: ${allsrc} +bootstrap: ${allsrc} | ${Revision} $(MAKE) allx touch bootstrap @@ -517,6 +518,10 @@ ${Cequates}: mkheader.so ${macroobj} nanopass.so base-lang.ss expand-lang.ss pri then mv -f ${Cequates}.bak ${Cequates};\ else rm -f ${Cequates}.bak; fi) +.PHONY: ${Revision} +${Revision}: update-revision + @./update-revision > ${Revision} + examples: ( cd ../examples && ${MAKE} all Scheme="${Scheme} ../s/${patchfile}" ) diff --git a/s/cmacros.ss b/s/cmacros.ss index c90c4c31ba..0be87bc540 100644 --- a/s/cmacros.ss +++ b/s/cmacros.ss @@ -328,7 +328,7 @@ [(_ foo e1 e2) e1] ... [(_ bar e1 e2) e2]))))]))) -(define-constant scheme-version #x00090501) +(define-constant scheme-version #x00090503) (define-syntax define-machine-types (lambda (x) diff --git a/s/fasl.ss b/s/fasl.ss index 5c581d9efd..3734f23040 100644 --- a/s/fasl.ss +++ b/s/fasl.ss @@ -68,6 +68,9 @@ (define bld-record (lambda (x t a? d) (unless (eq? x #!base-rtd) + (when (record-type-descriptor? x) + ; fasl representation for record-type-descriptor includes uid separately and as part of the record + (bld (record-type-uid x) t a? d)) (really-bld-record x t a? d)))) (define really-bld-record @@ -431,6 +434,7 @@ (cond [(record-type-descriptor? x) (put-u8 p (constant fasl-type-rtd)) + (wrf (record-type-uid x) p t a?) (wrf-fields (maybe-remake-rtd x) p t a?)] [else (put-u8 p (constant fasl-type-record)) diff --git a/s/newhash.ss b/s/newhash.ss index 165e10db95..f27d0f628c 100644 --- a/s/newhash.ss +++ b/s/newhash.ss @@ -934,7 +934,8 @@ Documentation notes: (define (hcabs hc) (if (fx< hc 0) (fxnot hc) hc)) (define (update hc k) - (fxlogxor (#3%fx+ (#3%fxsll hc 2) hc) k)) + (let ([hc2 (#3%fx+ hc (#3%fxsll (#3%fx+ hc k) 10))]) + (fxlogxor hc2 (fxsrl hc2 6)))) (define bytevector-hash (lambda (bv) diff --git a/s/primdata.ss b/s/primdata.ss index d52a568815..38deb4417f 100644 --- a/s/primdata.ss +++ b/s/primdata.ss @@ -926,7 +926,7 @@ (compile-library-handler [sig [() -> (procedure)] [(procedure) -> (void)]] [flags]) (compile-profile [sig [() -> (ptr)] [(ptr) -> (void)]] [flags unrestricted]) (compile-program-handler [sig [() -> (procedure)] [(procedure) -> (void)]] [flags]) - (compress-format [sig [() -> (symbol)] [(symbol) -> (void)]] [flags]) + (compress-format [sig [() -> (symbol)] [(sub-symbol) -> (void)]] [flags]) (console-error-port [sig [() -> (textual-output-port)] [(textual-output-port) -> (void)]] [flags]) (console-input-port [sig [() -> (textual-input-port)] [(textual-input-port) -> (void)]] [flags]) (console-output-port [sig [() -> (textual-output-port)] [(textual-output-port) -> (void)]] [flags]) @@ -1230,6 +1230,7 @@ (compute-size-increments [sig [(list) -> (list)] [(list sub-ufixnum) -> (list)]] [flags alloc]) (condition-broadcast [feature pthreads] [sig [(condition-object) -> (void)]] [flags true]) (condition-continuation [sig [(continuation-condition) -> (ptr)]] [flags pure mifoldable discard]) + (condition-name [feature pthreads] [sig [(condition-object) -> (maybe-symbol)]] [flags pure]) (condition-signal [feature pthreads] [sig [(condition-object) -> (void)]] [flags true]) (condition-wait [feature pthreads] [sig [(condition-object mutex) (condition-object mutex timeout) -> (boolean)]] [flags]) (conjugate [sig [(number) -> (number)]] [flags arith-op mifoldable discard]) @@ -1443,7 +1444,7 @@ (make-boot-file [sig [(pathname sub-list pathname ...) -> (void)]] [flags true]) (make-boot-header [sig [(pathname pathname pathname ...) -> (void)]] [flags true]) (make-compile-time-value [sig [(ptr) -> (compile-time-value)]] [flags pure unrestricted alloc]) - (make-condition [feature pthreads] [sig [() -> (condition-object)]] [flags pure unrestricted alloc]) + (make-condition [feature pthreads] [sig [() (maybe-symbol) -> (condition-object)]] [flags pure unrestricted alloc]) (make-continuation-condition [sig [(ptr) -> (condition)]] [flags pure unrestricted mifoldable discard]) (make-cost-center [sig [() -> (cost-center)]] [flags unrestricted alloc]) (make-ephemeron-eq-hashtable [sig [() (uint) -> (eq-hashtable)]] [flags alloc]) @@ -1456,7 +1457,7 @@ (make-input-port [sig [(procedure string) -> (textual-input-port)]] [flags alloc]) (make-input/output-port [sig [(procedure string string) -> (textual-input/output-port)]] [flags alloc]) (make-list [sig [(length) (length ptr) -> (list)]] [flags alloc]) - (make-mutex [feature pthreads] [sig [() -> (mutex)]] [flags unrestricted alloc]) + (make-mutex [feature pthreads] [sig [() (maybe-symbol) -> (mutex)]] [flags unrestricted alloc]) (make-object-finder [sig [(procedure) (procedure ptr) (procedure ptr sub-ufixnum) -> (procedure)]] [flags alloc]) (make-output-port [sig [(procedure string) -> (textual-output-port)]] [flags alloc]) (make-parameter [sig [(ptr) (ptr procedure) -> (procedure)]] [flags true cp02 cp03]) @@ -1485,6 +1486,7 @@ (mutable-bytevector? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) (mutable-vector? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) (mutex-acquire [feature pthreads] [sig [(mutex) (mutex ptr) -> (ptr)]] [flags]) ; can return #f if optional block? arg is #f + (mutex-name [feature pthreads] [sig [(mutex) -> (maybe-symbol)]] [flags pure]) (mutex-release [feature pthreads] [sig [(mutex) -> (void)]] [flags true]) (mutex? [feature pthreads] [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) (new-cafe [sig [() (procedure) -> (ptr ...)]] [flags]) diff --git a/s/prims.ss b/s/prims.ss index b7f632a17c..e9ab05cafe 100644 --- a/s/prims.ss +++ b/s/prims.ss @@ -1555,10 +1555,12 @@ (define fork-thread) (define make-mutex) (define mutex?) +(define mutex-name) (define mutex-acquire) (define mutex-release) (define make-condition) (define thread-condition?) +(define condition-name) (define condition-wait) (define condition-signal) (define condition-broadcast) @@ -1585,15 +1587,29 @@ (define ts (foreign-procedure "(cs)threads" () scheme-object)) (define-record-type (condition $make-condition $condition?) - (fields (mutable addr $condition-addr $condition-addr-set!)) + (fields (mutable addr $condition-addr $condition-addr-set!) + (immutable name $condition-name)) (nongenerative) (sealed #t)) (define-record-type (mutex $make-mutex $mutex?) - (fields (mutable addr $mutex-addr $mutex-addr-set!)) + (fields (mutable addr $mutex-addr $mutex-addr-set!) + (immutable name $mutex-name)) (nongenerative) (sealed #t)) +(define make-mutex-no-check + (lambda (name) + (let ([m ($make-mutex (mm) name)]) + (mutex-guardian m) + m))) + +(define make-condition-no-check + (lambda (name) + (let ([c ($make-condition (mc) name)]) + (condition-guardian c) + c))) + (define mutex-guardian (make-guardian)) (define condition-guardian (make-guardian)) @@ -1612,16 +1628,22 @@ (t) (void)))))))) -(set! make-mutex - (lambda () - (let ([m ($make-mutex (mm))]) - (mutex-guardian m) - m))) +(set-who! make-mutex + (case-lambda + [() (make-mutex-no-check #f)] + [(name) + (unless (or (not name) (symbol? name)) ($oops who "~s is not a symbol or #f" name)) + (make-mutex-no-check name)])) (set! mutex? (lambda (x) ($mutex? x))) +(set-who! mutex-name + (lambda (m) + (unless (mutex? m) ($oops who "~s is not a mutex" m)) + ($mutex-name m))) + (set! mutex-acquire (case-lambda [(m) (mutex-acquire m #t)] @@ -1644,16 +1666,22 @@ ($oops 'mutex-release "mutex is defunct")) (mr addr)))) -(set! make-condition - (lambda () - (let ([c ($make-condition (mc))]) - (condition-guardian c) - c))) +(set-who! make-condition + (case-lambda + [() (make-condition-no-check #f)] + [(name) + (unless (or (not name) (symbol? name)) ($oops who "~s is not a symbol or #f" name)) + (make-condition-no-check name)])) (set! thread-condition? (lambda (x) ($condition? x))) +(set-who! condition-name + (lambda (c) + (unless (thread-condition? c) ($oops who "~s is not a condition" c)) + ($condition-name c))) + (set! condition-wait (case-lambda [(c m) (condition-wait c m #f)] @@ -1713,8 +1741,8 @@ ($condition-addr-set! c 0))) (f)))))) -(set! $tc-mutex ($make-mutex ($raw-tc-mutex))) -(set! $collect-cond ($make-condition ($raw-collect-cond))) +(set! $tc-mutex ($make-mutex ($raw-tc-mutex) '$tc-mutex)) +(set! $collect-cond ($make-condition ($raw-collect-cond) '$collect-cond)) (set! get-initial-thread (let ([thread (car (ts))]) diff --git a/s/print.ss b/s/print.ss index 646153d968..15cc463f71 100644 --- a/s/print.ss +++ b/s/print.ss @@ -592,10 +592,14 @@ floating point returns with (1 0 -1 ...). (if-feature pthreads (begin (define $condition? thread-condition?) - (define $mutex? mutex?)) + (define $condition-name condition-name) + (define $mutex? mutex?) + (define $mutex-name mutex-name)) (begin (define $condition? (lambda (x) #f)) - (define $mutex? (lambda (x) #f)))) + (define $condition-name (lambda (x) #f)) + (define $mutex? (lambda (x) #f)) + (define $mutex-name (lambda (x) #f)))) (cond [($immediate? x) (type-case x @@ -651,8 +655,22 @@ floating point returns with (1 0 -1 ...). [(bytevector?) (wrvector bytevector-length bytevector-u8-ref "vu8" x r lev len d? env p)] [(flonum?) (wrflonum #f x r d? p)] ; catch before record? case - [($condition?) (display-string "#" p)] - [($mutex?) (display-string "#" p)] + [($condition?) + (cond + (($condition-name x) => + (lambda (name) + (display-string "#string name) p) + (write-char #\> p))) + (else (display-string "#" p)))] + [($mutex?) + (cond + (($mutex-name x) => + (lambda (name) + (display-string "#string name) p) + (write-char #\> p))) + (else (display-string "#" p)))] [(base-rtd?) (display-string "#!base-rtd" p)] [($record?) (if (print-record) diff --git a/s/strip.ss b/s/strip.ss index feab33f259..f9fae08cdc 100644 --- a/s/strip.ss +++ b/s/strip.ss @@ -28,7 +28,7 @@ (vector ty vfasl) (fxvector ty viptr) (bytevector ty bv) - (record ty size nflds rtd pad-ty* fld*) + (record maybe-uid size nflds rtd pad-ty* fld*) ; maybe-uid => rtd (closure offset c) (flonum high low) (small-integer iptr) @@ -172,6 +172,13 @@ (vector-set! v i (let ([key (read-fasl p g)]) (cons key (read-fasl p g)))))))) + (define (read-record p g maybe-uid) + (let* ([size (read-uptr p)] [nflds (read-uptr p)] [rtd (read-fasl p g)]) + (let loop ([n nflds] [rpad-ty* '()] [rfld* '()]) + (if (fx= n 0) + (fasl-record maybe-uid size nflds rtd (reverse rpad-ty*) (reverse rfld*)) + (let* ([pad-ty (read-byte p)] [fld (read-fld p g (fxlogand pad-ty #x0f))]) + (loop (fx- n 1) (cons pad-ty rpad-ty*) (cons fld rfld*))))))) (define (read-fasl p g) (let ([ty (read-byte p)]) (fasl-type-case ty @@ -202,13 +209,8 @@ ((fx= i n) bv) (bytevector-u8-set! bv i (read-byte p))))))] [(fasl-type-base-rtd) (fasl-tuple ty '#())] - [(fasl-type-rtd fasl-type-record) - (let* ([size (read-uptr p)] [nflds (read-uptr p)] [rtd (read-fasl p g)]) - (let loop ([n nflds] [rpad-ty* '()] [rfld* '()]) - (if (fx= n 0) - (fasl-record ty size nflds rtd (reverse rpad-ty*) (reverse rfld*)) - (let* ([pad-ty (read-byte p)] [fld (read-fld p g (fxlogand pad-ty #x0f))]) - (loop (fx- n 1) (cons pad-ty rpad-ty*) (cons fld rfld*))))))] + [(fasl-type-rtd) (read-record p g (read-fasl p g))] + [(fasl-type-record) (read-record p g #f)] [(fasl-type-closure) (let* ([offset (read-uptr p)] [c (read-fasl p g)]) @@ -326,9 +328,9 @@ (define fasl-record? (lambda (uname x) (fasl-case (follow-indirect x) - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (fasl-case (follow-indirect rtd) - [record (rtd-ty rtd-size rtd-nflds rtd-rtd rtd-pad-ty* rtd-fld*) + [record (rtd-uid rtd-size rtd-nflds rtd-rtd rtd-pad-ty* rtd-fld*) (and (> (length rtd-fld*) uid-index) (field-case (list-ref rtd-fld* uid-index) [ptr (fasl) @@ -351,7 +353,7 @@ (unless (fasl-record? uname x) (sorry! "unexpected type of object ~s" x)) (fasl-case (follow-indirect x) - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (unless (> (length fld*) index) (sorry! "fewer fields than expected for ~s" x)) (let ([fld (list-ref fld* index)]) @@ -401,11 +403,12 @@ [vector (ty vfasl) (build-graph! x t (build-vfasl! vfasl))] [fxvector (ty viptr) (build-graph! x t void)] [bytevector (ty viptr) (build-graph! x t void)] - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (if (and strip-source-annotations? (fasl-annotation? x)) (build! (fasl-annotation-stripped x) t) (build-graph! x t (lambda () + (when maybe-uid (build! maybe-uid t)) (build! rtd t) (for-each (lambda (fld) (field-case fld @@ -538,12 +541,16 @@ (write-byte p ty) (write-uptr p (bytevector-length bv)) (put-bytevector p bv)))] - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (if (and strip-source-annotations? (fasl-annotation? x)) (write-fasl p t (fasl-annotation-stripped x)) (write-graph p t x (lambda () - (write-byte p ty) + (if maybe-uid + (begin + (write-byte p (constant fasl-type-rtd)) + (write-fasl p t maybe-uid)) + (write-byte p (constant fasl-type-record))) (write-uptr p size) (write-uptr p nflds) (write-fasl p t rtd) @@ -695,14 +702,14 @@ (fasl-case x [closure (offset c) #t] [revisit (fasl) #t] - [record (ty size nflds rtd pad-ty* fld*) (revisit-record? x)] + [record (maybe-uid size nflds rtd pad-ty* fld*) (revisit-record? x)] [else #f]))) (fasl-case x [entry (fasl) (fasl-case fasl [closure (offset c) x] [revisit (fasl) x] - [record (ty size nflds rtd pad-ty* fld*) (and (revisit-record? fasl) x)] + [record (maybe-uid size nflds rtd pad-ty* fld*) (and (revisit-record? fasl) x)] [group (vfasl) (let ([fasl* (filter revisit-stuff? (vector->list vfasl))]) (and (not (null? fasl*)) @@ -831,8 +838,10 @@ [vector (ty vfasl) (and (eqv? ty1 ty2) (vandmap fasl=? vfasl1 vfasl2))] [fxvector (ty viptr) (and (eqv? ty1 ty2) (vandmap = viptr1 viptr2))] [bytevector (ty bv) (and (eqv? ty1 ty2) (bytevector=? bv1 bv2))] - [record (ty size nflds rtd pad-ty* fld*) - (and (eqv? ty1 ty2) + [record (maybe-uid size nflds rtd pad-ty* fld*) + (and (if maybe-uid1 + (and maybe-uid2 (fasl=? maybe-uid1 maybe-uid2)) + (not maybe-uid2)) (eqv? size1 size2) (eqv? nflds1 nflds2) (fasl=? rtd1 rtd2) diff --git a/s/syntax.ss b/s/syntax.ss index 149a11861f..b39dfffd68 100644 --- a/s/syntax.ss +++ b/s/syntax.ss @@ -2830,7 +2830,8 @@ [interleaved-init (frob) (process-bindings mb* r (cons (build-lexical-var no-source 't) dv*) - (cons frob de*))] + (cons (make-frob #`(begin #,(frob-e frob) (void)) (frob-meta? frob)) + de*))] [else (process-bindings mb* r dv* de*)])))))))) (define chi-top-module diff --git a/s/update-revision b/s/update-revision new file mode 100755 index 0000000000..0b6e3f6ed0 --- /dev/null +++ b/s/update-revision @@ -0,0 +1,22 @@ +#!/bin/bash +if [ -d ../../.git ]; then + git describe --always --exclude='*' --abbrev=40 --dirty + echo 'git' +elif [ -d ../../.hg ]; then + DIRTY="$(hg status -n --color never --pager never | head -1)" + hg log --limit 1 --template '{node}' --pager never + if [ -n "${DIRTY}" ]; then + echo '-dirty' + else + echo '' + fi + echo 'hg' +elif [ -f ../../.hg_archival.txt ]; then + # hg archive and hgweb embed this file by default (see .hgrc archivemeta) + sed -n 's/^node: \(.*\)/\1/p' < ../../.hg_archival.txt + echo 'hg' +else + # use export-subst git attribute to populate revision for git archive + echo '$Format:%H$' + echo 'git' +fi diff --git a/scheme.1.in b/scheme.1.in index 69191eb21b..5c69518c38 100644 --- a/scheme.1.in +++ b/scheme.1.in @@ -3,7 +3,7 @@ .if t .ds c caf\o'\'e' .if n .ds c cafe .ds ]W -.TH SCHEME 1 "Chez Scheme Version 9.5.1 October 2017" +.TH SCHEME 1 "Chez Scheme Version 9.5.3 March 2019" .SH NAME \fIChez Scheme\fP .br @@ -791,6 +791,6 @@ Second Edition\fP, MIT press (1996). .in -5 .SH AUTHOR -Copyright 2017 Cisco Systems, Inc. +Copyright 2019 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) diff --git a/wininstall/Makefile b/wininstall/Makefile old mode 100755 new mode 100644 index 9cfb2bdd14..0b23a4313e --- a/wininstall/Makefile +++ b/wininstall/Makefile @@ -1,4 +1,4 @@ -VERSION := 9.5.1 +VERSION := 9.5.3 WIXEXTENSIONS := -ext WixUIExtension -ext WixBalExtension ChezScheme.exe: x86/bundle.wixobj ChezScheme32.msi ChezScheme64.msi diff --git a/wininstall/a6nt.wxs b/wininstall/a6nt.wxs old mode 100755 new mode 100644 index 221693e0a6..c1d6cc28eb --- a/wininstall/a6nt.wxs +++ b/wininstall/a6nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + @@ -63,6 +63,9 @@ + + + @@ -82,6 +85,7 @@ + diff --git a/wininstall/i3nt.wxs b/wininstall/i3nt.wxs old mode 100755 new mode 100644 index bc63d1a740..a530b092fe --- a/wininstall/i3nt.wxs +++ b/wininstall/i3nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + @@ -63,6 +63,9 @@ + + + @@ -82,6 +85,7 @@ + diff --git a/wininstall/ta6nt.wxs b/wininstall/ta6nt.wxs old mode 100755 new mode 100644 index bc65071096..f137baa657 --- a/wininstall/ta6nt.wxs +++ b/wininstall/ta6nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + @@ -63,6 +63,9 @@ + + + @@ -82,6 +85,7 @@ + diff --git a/wininstall/ti3nt.wxs b/wininstall/ti3nt.wxs old mode 100755 new mode 100644 index 3ca3ede5f0..3c65019ef5 --- a/wininstall/ti3nt.wxs +++ b/wininstall/ti3nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + @@ -63,6 +63,9 @@ + + + @@ -84,6 +87,7 @@ + diff --git a/workarea b/workarea index d67ce7d2cb..414757c0c2 100755 --- a/workarea +++ b/workarea @@ -206,8 +206,8 @@ case $M in *nt) (cd $W/boot/$M; workln ../../../boot/$M/mainmd.obj mainmd.obj) (cd $W/boot/$M; workln ../../../boot/$M/mainmt.obj mainmt.obj) - (cd $W/boot/$M; workln ../../../boot/$M/csv951md.lib csv951md.lib) - (cd $W/boot/$M; workln ../../../boot/$M/csv951mt.lib csv951mt.lib) + (cd $W/boot/$M; workln ../../../boot/$M/csv953md.lib csv953md.lib) + (cd $W/boot/$M; workln ../../../boot/$M/csv953mt.lib csv953mt.lib) (cd $W/boot/$M; workln ../../../boot/$M/scheme.res scheme.res) ;; *) @@ -222,8 +222,8 @@ case $M in *nt) (cd $W/bin/$M; workln ../../../bin/$M/scheme.exe scheme.exe) (cd $W/bin/$M; forceworkln2 scheme.exe petite.exe) - (cd $W/bin/$M; workln ../../../bin/$M/csv951.dll csv951.dll) - (cd $W/bin/$M; workln ../../../bin/$M/csv951.lib csv951.lib) + (cd $W/bin/$M; workln ../../../bin/$M/csv953.dll csv953.dll) + (cd $W/bin/$M; workln ../../../bin/$M/csv953.lib csv953.lib) ;; *) (cd $W/bin/$M; workln ../../../bin/$M/scheme scheme)