diff --git a/.gitignore b/.gitignore
index cadfd58156..ec99067e8c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
.*.sw?
.sw?
/Makefile
+/TAGS
/a6le/
/a6nt/
/a6osx/
@@ -9,10 +10,10 @@
/i3le/
/i3nt/
/i3osx/
-/TAGS
/ta6le/
/ta6nt/
/ta6osx/
/ti3le/
/ti3nt/
/ti3osx/
+/xc-*/
diff --git a/BUILDING b/BUILDING
index b2361bfc38..be45135445 100644
--- a/BUILDING
+++ b/BUILDING
@@ -167,91 +167,45 @@ The make file supports several targets:
WINDOWS
-Building Chez Scheme under Windows is currently more complicated than it
-should be. It requires the configure script (and through it, the workarea
-script) to be run on a host system that supports a compatible shell,
-e.g., bash, and the various command-line tools employed by configure
-and workarea, e.g., sed and ln. For example, the host system could be a
-Linux or MacOS X machine. The release directory must be made available
-on a shared filesystem, e.g., samba, to a build machine running Windows.
-It is not presently possible to copy the release directory to a Windows
-filesystem due to the use of symbolic links.
+Building Chez Scheme under Windows with Cygwin follows the
+instructions above except that make install is not supported:
-Prerequisite:
+./configure
+make
-The Microsoft Visual C compiler (express or full) and associated
-tools must be available on the Windows build machine, and the PATH,
-INCLUDE, and LIB variables must be set up properly for those tools.
+Prerequisites:
-Between the configure and build steps (below), the 32-bit or 64-bit
-(as appropriate) C runtime library vcruntime$V.dll must be placed into
-$W/bin/$M with a symbolic link to or copy of the file in $W/bin, where
-$V is the expected C runtime version for the installed Visual C compiler
-(e.g., 140 for Visual Studio 2015), $W is the workarea name, and $M is
-the machine type.
+* Cygwin with bash, grep, make, sed, etc.
+* Microsoft Visual Studio 2015
-Configure step (host machine):
-
-To configure the build, run:
-
-./configure -m=$M
-
-where $M is replaced with one of the Windows machine types, i.e.,
-i3nt for 32-bit, a6nt for 64-bit, ti3nt for threaded 32-bit, and
-ta6nt for 64-bit threaded.
-
-Build step (Windows build machine):
-
-To build the executable $W\bin\$M\scheme.exe, run:
-
-nmake -f Makefile.i3nt
-
-in the directory $W\c, then recompile the Scheme sources via:
-
-bldnt $M
-
-in the directory $W/c, where $W is replaced by the name of the
-workarea created by ./configure, and $M is the machine type.
-
-To run Chez Scheme or Petite Chez Scheme from a terminal window,
-set PATH and SCHEMEHEAPDIRS:
+To run Chez Scheme or Petite Chez Scheme from a Windows command prompt,
+set PATH:
set PATH=$W\bin\$M;%PATH%
-set SCHEMEHEAPDIRS=$W/boot/$M
again with $W and $M replaced with the workarea name and machine
type, and start Chez Scheme with the command "scheme" or Petite
Chez with the command "petite".
-Chez Scheme and Petite Chez Scheme are terminal-based programs,
-not GUIs. They both incorporate sophisticated command-line editing
-reminiscent of tcsh but with support for expressions that span
-multiple lines.
+The executables are linked against the Microsoft Visual C++ run-time
+library vcruntime140.dll. If you distribute the executables to a
+different system, be sure to include the redistributable run-time
+library.
Testing under Windows
The iconv tests in mats/io.ms require that a 32-bit or 64-bit (as
-appropriate) libiconv-2.dll implementing GNU libiconv be located in
-$W/bin/$M with a symbolic link to or copy of the file in $W/bin, where
-$W and $M are the workarea name and machine type. Windows sources for
+appropriate) iconv.dll, libiconv.dll, or libiconv-2.dll implementing
+GNU libiconv be located in $W\bin\$M or the path. Windows sources for
libiconv can be found at:
http://gnuwin32.sourceforge.net/packages/libiconv.htm
-If the dlls are not present, the iconv tests will fail. No other
-tests should be affected.
+An alternative that uses the Windows API can be found at:
-The tests can be run with a default set of options at a single
-optimize level by running the command:
+https://github.com/win-iconv/win-iconv
-bldnt $M $O
+If the DLL is not present, the iconv tests will fail. No other tests
+should be affected.
-in $W/mats, with $W and $M replaced with the workarea name and
-machine type and $O replaced by an optimize level, e.g., 0 or 3.
-This produces a set of output (.mo) files in the directory
-$W/mats/output-compile-$O-f-f-f. "make fastreport o=$O" can be
-then used to generate a report; this step must be run on a host
-system supporting GNU make and the various tools required by the
-fastreport target, e.g., grep. The resulting report file
-$W/mats/report-compile-$O-f-f-f should be empty if all tests
-succeeded.
+Use 'make test' described above to run the tests.
diff --git a/LOG b/LOG
index 765cbd0f39..51a95a0e07 100644
--- a/LOG
+++ b/LOG
@@ -186,3 +186,17 @@
negative differences to zero. added a corresponding release note.
system.stex,
release_notes.stex
+- added a cast to eliminate a warning
+ c/number.c
+- fixed bug in Windows version of directory-separator-predicate when
+ path-* procedures are passed a path that is not a string.
+ s/6.ss
+- fixed bug in cp0 on Windows with $foreign-wchar?.
+ s/cp0.ss
+- Cygwin is now used on Windows, updated mats, eliminated unused killme
+ BUILDING c/*nt c/Mf-base c/scheme.exe.manifest configure
+ examples/Makefile mats/6.ms mats/Mf-* mats/foreign.ms mats/ftype.ms
+ mats/patch-* mats/windows.ms s/Mf-*nt s/Mf-base workarea
+ release_notes.stex
+- fixed spelling of non-existent
+ s/syntax.ss
diff --git a/c/Makefile.a6nt b/c/Makefile.a6nt
index ca1d8fb0b9..e1dd90782c 100644
--- a/c/Makefile.a6nt
+++ b/c/Makefile.a6nt
@@ -109,6 +109,7 @@ $(MDMain): main.c
$(Exec): $(ResFile) $(MDMain) $(KernelLib)
-del /f $(Exec)
link /out:$(Exec) $(EXELDFLAGS) $(ResFile) $(MDMain) $(KernelLib)
+ mt -manifest ..\..\c\scheme.exe.manifest -outputresource:$(Exec);1
$(ResFile): scheme.rc
-del /f $(ResFile)
@@ -127,7 +128,7 @@ mdscheme.exe: $(ResFile) $(MDMain) $(MDKernelLib)
$(ZlibInclude)\zlib.h $(ZlibInclude)\zconf.h $(MDZlibLib) $(MTZlibLib):
cd ../zlib
nmake /nologo -f win32/Makefile.msc AR="link /lib" CFLAGS="-nologo -MT -O2 $(LOC)"
- rename zlib.lib zlibmt.lib
+ ren zlib.lib zlibmt.lib
nmake /nologo -f win32/Makefile.msc clean
nmake /nologo -f win32/Makefile.msc AR="link /lib"
cd ../c
diff --git a/c/Makefile.i3nt b/c/Makefile.i3nt
index 4f284036f2..c7d4f8adde 100644
--- a/c/Makefile.i3nt
+++ b/c/Makefile.i3nt
@@ -105,6 +105,7 @@ $(MDMain): main.c
$(Exec): $(ResFile) $(MDMain) $(KernelLib)
-del /f $(Exec)
link /out:$(Exec) $(EXELDFLAGS) $(ResFile) $(MDMain) $(KernelLib)
+ mt -manifest ..\..\c\scheme.exe.manifest -outputresource:$(Exec);1
$(ResFile): scheme.rc
-del /f $(ResFile)
@@ -123,7 +124,7 @@ mdscheme.exe: $(ResFile) $(MDMain) $(MDKernelLib)
$(ZlibInclude)\zlib.h $(ZlibInclude)\zconf.h $(MDZlibLib) $(MTZlibLib):
cd ../zlib
nmake /nologo -f win32/Makefile.msc AR="link /lib" CFLAGS="-nologo -MT -O2 $(LOC)"
- rename zlib.lib zlibmt.lib
+ ren zlib.lib zlibmt.lib
nmake /nologo -f win32/Makefile.msc clean
nmake /nologo -f win32/Makefile.msc AR="link /lib"
cd ../c
diff --git a/c/Makefile.ta6nt b/c/Makefile.ta6nt
index 319b4b2b1b..bad20a0175 100644
--- a/c/Makefile.ta6nt
+++ b/c/Makefile.ta6nt
@@ -109,6 +109,7 @@ $(MDMain): main.c
$(Exec): $(ResFile) $(MDMain) $(KernelLib)
-del /f $(Exec)
link /out:$(Exec) $(EXELDFLAGS) $(ResFile) $(MDMain) $(KernelLib)
+ mt -manifest ..\..\c\scheme.exe.manifest -outputresource:$(Exec);1
$(ResFile): scheme.rc
-del /f $(ResFile)
@@ -127,7 +128,7 @@ mdscheme.exe: $(ResFile) $(MDMain) $(MDKernelLib)
$(ZlibInclude)\zlib.h $(ZlibInclude)\zconf.h $(MDZlibLib) $(MTZlibLib):
cd ../zlib
nmake /nologo -f win32/Makefile.msc AR="link /lib" CFLAGS="-nologo -MT -O2 $(LOC)"
- rename zlib.lib zlibmt.lib
+ ren zlib.lib zlibmt.lib
nmake /nologo -f win32/Makefile.msc clean
nmake /nologo -f win32/Makefile.msc AR="link /lib"
cd ../c
diff --git a/c/Makefile.ti3nt b/c/Makefile.ti3nt
index d7ea1396c8..570c8bce02 100644
--- a/c/Makefile.ti3nt
+++ b/c/Makefile.ti3nt
@@ -36,6 +36,10 @@ DLLLDFLAGS=/machine:ix86 /release /nologo
# see note in Makefile.a6nt regarding stack size. we use 8MB here to be consistent.
EXELDFLAGS=/machine:ix86 /incremental:no /release /nologo /STACK:0x800000
+# use following flags for debugging
+# CFLAGS=/nologo /Od /W3 /MDd /I$(SchemeInclude) /I$(ZlibInclude) /DUSE_ANSI_PROTOTYPES /DI386 /DNO_UNISTD_H
+# LDFLAGS=/machine:ix86 /incremental:no /release /nologo /debug
+
SystemLib=rpcrt4.lib ole32.lib advapi32.lib User32.lib
MDZlibLib=..\zlib\zlib.lib
MTZlibLib=..\zlib\zlibmt.lib
@@ -101,6 +105,7 @@ $(MDMain): main.c
$(Exec): $(ResFile) $(MDMain) $(KernelLib)
-del /f $(Exec)
link /out:$(Exec) $(EXELDFLAGS) $(ResFile) $(MDMain) $(KernelLib)
+ mt -manifest ..\..\c\scheme.exe.manifest -outputresource:$(Exec);1
$(ResFile): scheme.rc
-del /f $(ResFile)
@@ -119,7 +124,7 @@ mdscheme.exe: $(ResFile) $(MDMain) $(MDKernelLib)
$(ZlibInclude)\zlib.h $(ZlibInclude)\zconf.h $(MDZlibLib) $(MTZlibLib):
cd ../zlib
nmake /nologo -f win32/Makefile.msc AR="link /lib" CFLAGS="-nologo -MT -O2 $(LOC)"
- rename zlib.lib zlibmt.lib
+ ren zlib.lib zlibmt.lib
nmake /nologo -f win32/Makefile.msc clean
nmake /nologo -f win32/Makefile.msc AR="link /lib"
cd ../c
diff --git a/c/Mf-a6nt b/c/Mf-a6nt
index 414bc1777e..e308de5021 100644
--- a/c/Mf-a6nt
+++ b/c/Mf-a6nt
@@ -20,12 +20,32 @@ clib=
o = obj
mdobj=windows.$o
mdsrc=windows.c Makefile.$m cs.ico scheme.rc make.bat
-mdclean=make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
+mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
include Mf-base
+${Scheme}: make.bat
+ ./make.bat
+ cp ../bin/$m/scheme.exe ../bin/$m/petite.exe
+
# currently creating datestamp at 'make source' time
datestamp.c:
-make.bat:
- echo "@nmake /nologo -f Makefile.$m %*" > make.bat
+vs.bat:
+ echo '@echo off' > $@
+ echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@
+ echo 'echo Visual Studio 2015 must be installed.' >> $@
+ echo 'exit 1' >> $@
+ echo ':VS' >> $@
+ echo 'set INCLUDE=' >> $@
+ echo 'set LIB=' >> $@
+ echo 'set LIBPATH=' >> $@
+ echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64' >> $@
+ echo '%*' >> $@
+ chmod +x $@
+
+make.bat: vs.bat
+ echo '@echo off' > $@
+ echo 'set MAKEFLAGS=' >> $@
+ echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@
+ chmod +x $@
diff --git a/c/Mf-base b/c/Mf-base
index 0cc49f2121..3245de6af2 100644
--- a/c/Mf-base
+++ b/c/Mf-base
@@ -43,7 +43,12 @@ ${Main}: ${mainobj}
cp -p ${mainobj} ${Main}
rootsrc=$(shell cd ../../c; echo *)
-${rootsrc}: ; ln -s ../../c/$@ $@
+${rootsrc}:
+ifeq ($(OS),Windows_NT)
+ cp -p ../../c/$@ $@
+else
+ ln -s ../../c/$@ $@
+endif
scheme.o: itest.c
scheme.o main.o: config.h
diff --git a/c/Mf-i3nt b/c/Mf-i3nt
index 0feb98ec4c..67f57d8204 100644
--- a/c/Mf-i3nt
+++ b/c/Mf-i3nt
@@ -20,12 +20,32 @@ clib=
o = obj
mdobj=windows.$o
mdsrc=windows.c Makefile.$m cs.ico scheme.rc make.bat
-mdclean=make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
+mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
include Mf-base
+${Scheme}: make.bat
+ ./make.bat
+ cp ../bin/$m/scheme.exe ../bin/$m/petite.exe
+
# currently creating datestamp at 'make source' time
datestamp.c:
-make.bat:
- echo "@nmake /nologo -f Makefile.$m %*" > make.bat
+vs.bat:
+ echo '@echo off' > $@
+ echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@
+ echo 'echo Visual Studio 2015 must be installed.' >> $@
+ echo 'exit 1' >> $@
+ echo ':VS' >> $@
+ echo 'set INCLUDE=' >> $@
+ echo 'set LIB=' >> $@
+ echo 'set LIBPATH=' >> $@
+ echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86' >> $@
+ echo '%*' >> $@
+ chmod +x $@
+
+make.bat: vs.bat
+ echo '@echo off' > $@
+ echo 'set MAKEFLAGS=' >> $@
+ echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@
+ chmod +x $@
diff --git a/c/Mf-ta6nt b/c/Mf-ta6nt
index 35011e1daf..794b7d071c 100644
--- a/c/Mf-ta6nt
+++ b/c/Mf-ta6nt
@@ -20,12 +20,32 @@ clib=
o = obj
mdobj=windows.$o
mdsrc=windows.c Makefile.$m cs.ico scheme.rc make.bat
-mdclean=make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
+mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
include Mf-base
+${Scheme}: make.bat
+ ./make.bat
+ cp ../bin/$m/scheme.exe ../bin/$m/petite.exe
+
# currently creating datestamp at 'make source' time
datestamp.c:
-make.bat:
- echo "@nmake /nologo -f Makefile.$m %*" > make.bat
+vs.bat:
+ echo '@echo off' > $@
+ echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@
+ echo 'echo Visual Studio 2015 must be installed.' >> $@
+ echo 'exit 1' >> $@
+ echo ':VS' >> $@
+ echo 'set INCLUDE=' >> $@
+ echo 'set LIB=' >> $@
+ echo 'set LIBPATH=' >> $@
+ echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64' >> $@
+ echo '%*' >> $@
+ chmod +x $@
+
+make.bat: vs.bat
+ echo '@echo off' > $@
+ echo 'set MAKEFLAGS=' >> $@
+ echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@
+ chmod +x $@
diff --git a/c/Mf-ti3nt b/c/Mf-ti3nt
index 43685ecd04..f8ef2485f5 100644
--- a/c/Mf-ti3nt
+++ b/c/Mf-ti3nt
@@ -20,12 +20,32 @@ clib=
o = obj
mdobj=windows.$o
mdsrc=windows.c Makefile.$m cs.ico scheme.rc make.bat
-mdclean=make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
+mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
include Mf-base
+${Scheme}: make.bat
+ ./make.bat
+ cp ../bin/$m/scheme.exe ../bin/$m/petite.exe
+
# currently creating datestamp at 'make source' time
datestamp.c:
-make.bat:
- echo "@nmake /nologo -f Makefile.$m %*" > make.bat
+vs.bat:
+ echo '@echo off' > $@
+ echo 'if "%VS140COMNTOOLS%" neq "" goto :VS' >> $@
+ echo 'echo Visual Studio 2015 must be installed.' >> $@
+ echo 'exit 1' >> $@
+ echo ':VS' >> $@
+ echo 'set INCLUDE=' >> $@
+ echo 'set LIB=' >> $@
+ echo 'set LIBPATH=' >> $@
+ echo 'call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86' >> $@
+ echo '%*' >> $@
+ chmod +x $@
+
+make.bat: vs.bat
+ echo '@echo off' > $@
+ echo 'set MAKEFLAGS=' >> $@
+ echo 'call vs.bat nmake /f Makefile.$m /nologo %*' >> $@
+ chmod +x $@
diff --git a/c/number.c b/c/number.c
index 1ea57b29a2..bc2b2eb7ab 100644
--- a/c/number.c
+++ b/c/number.c
@@ -1179,7 +1179,7 @@ static double floatify_normalize(p, e, sign, sticky) bigit *p; iptr e; IBOOL sig
/* fill in the fields */
dx.x.sign = sign;
- dx.x.e = e;
+ dx.x.e = (UINT)e;
dx.x.m1 = (UINT)(mlow >> 48 & m1mask);
dx.x.m2 = (UINT)(mlow >> 32 & 0xffff);
dx.x.m3 = (UINT)(mlow >> 16 & 0xffff);
diff --git a/c/scheme.exe.manifest b/c/scheme.exe.manifest
new file mode 100644
index 0000000000..a43d11b21a
--- /dev/null
+++ b/c/scheme.exe.manifest
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/configure b/configure
index ba7bf6666a..bbc7ba5b65 100755
--- a/configure
+++ b/configure
@@ -37,9 +37,9 @@ installman=""
installschemename="scheme"
installpetitename="petite"
installscriptname="scheme-script"
-CPPFLAGS=""
-CFLAGS=""
-LDFLAGS=""
+: ${CPPFLAGS:=""}
+: ${CFLAGS:=""}
+: ${LDFLAGS:=""}
case `uname` in
Linux)
@@ -117,6 +117,16 @@ case `uname` in
gzipmanpages=no
fi
;;
+ CYGWIN_NT-*)
+ if uname -a | egrep 'i386|i686|amd64|athlon|x86_64' > /dev/null 2>&1 ; then
+ m32=i3nt
+ m64=a6nt
+ tm32=ti3nt
+ tm64=ta6nt
+ installprefix=/usr/local
+ installmansuffix=share/man
+ fi
+ ;;
esac
threads=""
@@ -332,7 +342,9 @@ sed -e "s;^m=none\$;m=$m;"\
cat > $w/c/config.h << END
#define SCHEME_SCRIPT "$installscriptname"
+#ifndef WIN32
#define DEFAULT_HEAP_PATH "$installlib/csv%v/%m"
+#endif
END
cat > $w/c/Mf-config << END
diff --git a/examples/Makefile b/examples/Makefile
index c3f50434d6..80231c59e4 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -15,7 +15,7 @@ src = def.ss edit.ss fact.ss fatfib.ss fft.ss fib.ss freq.ss interpret.ss\
scons.ss setof.ss socket.ss unify.ss compat.ss
obj = ${src:%.ss=%.so}
-Scheme = scheme -q
+Scheme = ../bin/scheme -q
.SUFFIXES:
.SUFFIXES: .ss .so
diff --git a/mats/6.ms b/mats/6.ms
index 985ec9eaa9..eb55ecdce8 100644
--- a/mats/6.ms
+++ b/mats/6.ms
@@ -2618,12 +2618,13 @@
(lambda () (((inspect/object fatfib) 'code) 'source-path))
list)
'("../examples/fatfib.ss" 16 4))
- (equal?
- (parameterize ([cd "/"] [source-directories (list (cd))])
- (call-with-values
- (lambda () (((inspect/object fatfib) 'code) 'source-path))
- list))
- (list (format "~a/../examples/fatfib.ss" (cd)) 16 4))
+ (or (windows?)
+ (equal?
+ (parameterize ([cd "/"] [source-directories (list (cd))])
+ (call-with-values
+ (lambda () (((inspect/object fatfib) 'code) 'source-path))
+ list))
+ (list (format "~a/../examples/fatfib.ss" (cd)) 16 4)))
(begin
(parameterize ([source-directories (list (parameterize ([cd ".."]) (cd)))])
(load "examples/fatfib.ss" compile))
@@ -2926,11 +2927,11 @@
(and (time? (file-access-time "\\\\?\\c:\\"))
(time? (file-change-time "\\\\?\\c:\\"))
(time? (file-modification-time "\\\\?\\c:\\"))))
- (or (embedded?)
+ (or (windows?) (embedded?)
(time=? (file-access-time "Makefile") (file-access-time (format "Mf-~a" (machine-type)))))
- (or (embedded?)
+ (or (windows?) (embedded?)
(time=? (file-change-time "Makefile") (file-change-time (format "Mf-~a" (machine-type)))))
- (or (embedded?)
+ (or (windows?) (embedded?)
(time=? (file-modification-time "Makefile") (file-modification-time (format "Mf-~a" (machine-type)))))
(error? (file-access-time "probably/not/there"))
(error? (file-access-time "probably/not/there" #f))
diff --git a/mats/Mf-a6fb b/mats/Mf-a6fb
index 5dee6635fb..897539c02d 100644
--- a/mats/Mf-a6fb
+++ b/mats/Mf-a6fb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-a6le b/mats/Mf-a6le
index 905a894e7f..70c9d25ea2 100644
--- a/mats/Mf-a6le
+++ b/mats/Mf-a6le
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-a6nb b/mats/Mf-a6nb
index d3cc28c6a3..671b79e347 100644
--- a/mats/Mf-a6nb
+++ b/mats/Mf-a6nb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-a6nt b/mats/Mf-a6nt
index 59a8ad4a4b..1e3a3bfafb 100644
--- a/mats/Mf-a6nt
+++ b/mats/Mf-a6nt
@@ -16,27 +16,13 @@
m = a6nt
fsrc = foreign1.c foreign2.c foreign3.c
-ftmp = foreign1.obj foreign2.obj foreign3.obj
fobj = foreign1.so
-mdclean = ${ftmp} foreign1.exp foreign1.lib make.bat cat_flush.obj cat_flush.exe libiconv-2.dll
-mdsrc = bldnt.bat
-
-MSDOS = 1
+mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj foreign2.obj foreign3.obj
include Mf-base
-.SUFFIXES: .c .obj
+foreign1.so: $(fsrc)
+ ../c/vs.bat cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)
-.c.obj: ; cl -c -DWIN32 -I${Include} $*.c
-
-foreign1.so: $(ftmp)
- link -dll -out:foreign1.so foreign1.obj foreign2.obj foreign3.obj
-
-make.bat:
- echo "@echo off" > make.bat
- echo "call blda6nt" >> make.bat
- echo "call blda6nt 2" >> make.bat
- echo "blda6nt 3" >> make.bat
-
-libiconv-2.dll:
- ln -s ../bin/libiconv-2.dll .
+cat_flush: cat_flush.c
+ ../c/vs.bat cl /DWIN32 /DX86_64 /MD /nologo $<
diff --git a/mats/Mf-a6ob b/mats/Mf-a6ob
index 1bac7f76ea..a70674ffa2 100644
--- a/mats/Mf-a6ob
+++ b/mats/Mf-a6ob
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-a6osx b/mats/Mf-a6osx
index 9355a45ba6..07f30dea78 100644
--- a/mats/Mf-a6osx
+++ b/mats/Mf-a6osx
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-a6s2 b/mats/Mf-a6s2
index 5f3bd4d580..863dcbb513 100644
--- a/mats/Mf-a6s2
+++ b/mats/Mf-a6s2
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
gcc -o cat_flush cat_flush.c
-
-killme: killme.c
- gcc -o killme killme.c
diff --git a/mats/Mf-arm32le b/mats/Mf-arm32le
index b4145246cd..83b7f86b01 100644
--- a/mats/Mf-arm32le
+++ b/mats/Mf-arm32le
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-base b/mats/Mf-base
index f1bfcca4f7..3a74048221 100644
--- a/mats/Mf-base
+++ b/mats/Mf-base
@@ -34,10 +34,15 @@
# For example, "make o=2 cp0=t ctb=8192" causes the mats to be run at
# optimize level 2 with cp0 enabled and collect-trip-bytes set to 8192.
+ifeq (${OS},Windows_NT)
+ dirsep = ;
+else
+ dirsep = :
+endif
# Scheme is the scheme executable to test, and SCHEMEHEAPDIRS tells
# it where to find its boot files
Scheme = ../bin/$m/scheme
-export SCHEMEHEAPDIRS=.:../boot/%m
+export SCHEMEHEAPDIRS=.${dirsep}../boot/%m
# Include is the directory holding scheme.h.
Include = ../boot/$m
@@ -188,19 +193,11 @@ errors-$(conf): ${obj}
doerrors:
rm -f errors-$(conf)
-ifdef MSDOS
- -(cd $(objdir); grep '^Error' $(objname)) | dos2unix > errors-$(conf)
- -(cd $(objdir); grep '^Bug' $(objname)) | dos2unix >> errors-$(conf)
- -(cd $(objdir); grep '^Warning' $(objname)) | dos2unix >> errors-$(conf)
- -(cd $(objdir); grep '^Expected' $(objname)) | dos2unix\
- >> errors-$(conf)
-else
-(cd $(objdir); grep '^Error' $(objname)) > errors-$(conf)
-(cd $(objdir); grep '^Bug' $(objname)) >> errors-$(conf)
-(cd $(objdir); grep '^Warning' $(objname)) >> errors-$(conf)
-(cd $(objdir); grep '^Expected' $(objname))\
>> errors-$(conf)
-endif
fastreport:
$(MAKE) doerrors
@@ -288,7 +285,7 @@ all1: ; $(MAKE) all o=1
all2: ; $(MAKE) all o=2
all3: ; $(MAKE) all o=3
-all: makescript$o $(src) oop.ss ht.ss mat.so killme cat_flush ${fobj} m4test.in m4test.out prettytest.ss ftype.h freq.in freq.out ${patchfile} examples
+all: makescript$o $(src) oop.ss ht.ss mat.so cat_flush ${fobj} m4test.in m4test.out prettytest.ss ftype.h freq.in freq.out ${patchfile} examples
${Scheme} --verbose -q mat.so ${patchfile} < script.all$o
$(MAKE) doerrors
$(MAKE) doreport
@@ -322,19 +319,20 @@ source:
$(MAKE) source2 o=2
$(MAKE) source3 o=3
-source$o: ${src} mat.ss oop.ss ht.ss killme.c cat_flush.c ${fsrc} freq.in freq.out m4test.in m4test.out ${mdsrc} script.all$o prettytest.ss ftype.h
+source$o: ${src} mat.ss oop.ss ht.ss cat_flush.c ${fsrc} freq.in freq.out m4test.in m4test.out script.all$o prettytest.ss ftype.h
rootsrc = $(shell cd ../../mats; echo *)
-${rootsrc}: ; ln -s ../../mats/$@ $@
+${rootsrc}:
+ifeq ($(OS),Windows_NT)
+ cp -p ../../mats/$@ $@
+else
+ ln -s ../../mats/$@ $@
+endif
prettytest.ss:
rm -f prettytest.ss
$(MAKE) ${prettysrc}
-ifdef MSDOS
- cat ${prettysrc} | unix2dos > prettytest.ss
-else
cat ${prettysrc} > prettytest.ss
-endif
bullyprettytest.ss: ${src}
(cd ../s; make source)
@@ -346,7 +344,7 @@ thread.mo ${objdir}/thread.mo: ${fobj}
examples.mo ${objdir}/examples.mo: m4test.in m4test.out freq.in freq.out examples
6.mo ${objdir}/6.mo: prettytest.ss
io.mo ${objdir}/io.mo: prettytest.ss
-unix.mo ${objdir}/unix.mo io.mo ${objdir}/io.mo 6.mo ${objdir}/6.mo: cat_flush killme
+unix.mo ${objdir}/unix.mo io.mo ${objdir}/io.mo 6.mo ${objdir}/6.mo: cat_flush
oop.mo ${objdir}/oop.mo: oop.ss
ftype.mo ${objdir}/ftype.mo: ftype.h
hash.mo ${objdir}/hash.mo: ht.ss
@@ -356,7 +354,7 @@ examples:
prettyclean:
rm -f *.o ${mdclean} *.so *.mo experr* errors* report* summary testfile* testscript\
- ${fobj} prettytest.ss killme cat_flush so_locations\
+ ${fobj} prettytest.ss cat_flush so_locations\
script.all? *.html experr*.rej experr*.orig
rm -rf testdir*
rm -rf output-*
diff --git a/mats/Mf-i3fb b/mats/Mf-i3fb
index 566243fc87..d2dcdfc041 100644
--- a/mats/Mf-i3fb
+++ b/mats/Mf-i3fb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-i3le b/mats/Mf-i3le
index 352810ec47..0b41ce6dfb 100644
--- a/mats/Mf-i3le
+++ b/mats/Mf-i3le
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-i3nb b/mats/Mf-i3nb
index 0f35177ed1..3f413be9c4 100644
--- a/mats/Mf-i3nb
+++ b/mats/Mf-i3nb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-i3nt b/mats/Mf-i3nt
index 9622908a41..66da666d24 100644
--- a/mats/Mf-i3nt
+++ b/mats/Mf-i3nt
@@ -16,27 +16,13 @@
m = i3nt
fsrc = foreign1.c foreign2.c foreign3.c
-ftmp = foreign1.obj foreign2.obj foreign3.obj
fobj = foreign1.so
-mdclean = ${ftmp} foreign1.exp foreign1.lib make.bat cat_flush.obj cat_flush.exe libiconv-2.dll
-mdsrc = bldnt.bat
-
-MSDOS = 1
+mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj foreign2.obj foreign3.obj
include Mf-base
-.SUFFIXES: .c .obj
+foreign1.so: $(fsrc)
+ ../c/vs.bat cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)
-.c.obj: ; cl -c -DWIN32 -I${Include} $*.c
-
-foreign1.so: $(ftmp)
- link -dll -out:foreign1.so foreign1.obj foreign2.obj foreign3.obj
-
-make.bat:
- echo "@echo off" > make.bat
- echo "call bldi3nt" >> make.bat
- echo "call bldi3nt 2" >> make.bat
- echo "bldi3nt 3" >> make.bat
-
-libiconv-2.dll:
- ln -s ../bin/libiconv-2.dll .
+cat_flush: cat_flush.c
+ ../c/vs.bat cl /DWIN32 /MD /nologo $<
diff --git a/mats/Mf-i3ob b/mats/Mf-i3ob
index bdec860401..26beb6132c 100644
--- a/mats/Mf-i3ob
+++ b/mats/Mf-i3ob
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-i3osx b/mats/Mf-i3osx
index 2cd098b29c..003814538a 100644
--- a/mats/Mf-i3osx
+++ b/mats/Mf-i3osx
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-i3qnx b/mats/Mf-i3qnx
index 8172471586..6ae4c3d54a 100644
--- a/mats/Mf-i3qnx
+++ b/mats/Mf-i3qnx
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-i3s2 b/mats/Mf-i3s2
index 7492ab14f4..e806df2d39 100644
--- a/mats/Mf-i3s2
+++ b/mats/Mf-i3s2
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
gcc -o cat_flush cat_flush.c
-
-killme: killme.c
- gcc -o killme killme.c
diff --git a/mats/Mf-ppc32le b/mats/Mf-ppc32le
index a9cdb2983e..e5258158a1 100644
--- a/mats/Mf-ppc32le
+++ b/mats/Mf-ppc32le
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ta6fb b/mats/Mf-ta6fb
index fbd0309634..cb9901a8af 100644
--- a/mats/Mf-ta6fb
+++ b/mats/Mf-ta6fb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ta6le b/mats/Mf-ta6le
index 5ec0acf874..393a614168 100644
--- a/mats/Mf-ta6le
+++ b/mats/Mf-ta6le
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ta6nb b/mats/Mf-ta6nb
index 85244477d0..83eebee658 100644
--- a/mats/Mf-ta6nb
+++ b/mats/Mf-ta6nb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ta6nt b/mats/Mf-ta6nt
index e8d579d1f1..c355d5c3a2 100644
--- a/mats/Mf-ta6nt
+++ b/mats/Mf-ta6nt
@@ -16,27 +16,13 @@
m = ta6nt
fsrc = foreign1.c foreign2.c foreign3.c
-ftmp = foreign1.obj foreign2.obj foreign3.obj
fobj = foreign1.so
-mdclean = ${ftmp} foreign1.exp foreign1.lib make.bat cat_flush.obj cat_flush.exe libiconv-2.dll
-mdsrc = bldnt.bat
-
-MSDOS = 1
+mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj foreign2.obj foreign3.obj
include Mf-base
-.SUFFIXES: .c .obj
+foreign1.so: $(fsrc)
+ ../c/vs.bat cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)
-.c.obj: ; cl -c -DWIN32 -I${Include} $*.c
-
-foreign1.so: $(ftmp)
- link -dll -out:foreign1.so foreign1.obj foreign2.obj foreign3.obj
-
-make.bat:
- echo "@echo off" > make.bat
- echo "call bldta6nt" >> make.bat
- echo "call bldta6nt 2" >> make.bat
- echo "bldta6nt 3" >> make.bat
-
-libiconv-2.dll:
- ln -s ../bin/libiconv-2.dll .
+cat_flush: cat_flush.c
+ ../c/vs.bat cl /DWIN32 /DX86_64 /MD /nologo $<
diff --git a/mats/Mf-ta6ob b/mats/Mf-ta6ob
index 46065924e9..b2add3ef6e 100644
--- a/mats/Mf-ta6ob
+++ b/mats/Mf-ta6ob
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ta6osx b/mats/Mf-ta6osx
index b8000d8cde..48171ea593 100644
--- a/mats/Mf-ta6osx
+++ b/mats/Mf-ta6osx
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ta6s2 b/mats/Mf-ta6s2
index b94fdb87ba..e48dad256b 100644
--- a/mats/Mf-ta6s2
+++ b/mats/Mf-ta6s2
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
gcc -o cat_flush cat_flush.c
-
-killme: killme.c
- gcc -o killme killme.c
diff --git a/mats/Mf-ti3fb b/mats/Mf-ti3fb
index 6022ed071a..1222666467 100644
--- a/mats/Mf-ti3fb
+++ b/mats/Mf-ti3fb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ti3le b/mats/Mf-ti3le
index 0ba5ef764c..b1ac4f4ba3 100644
--- a/mats/Mf-ti3le
+++ b/mats/Mf-ti3le
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ti3nb b/mats/Mf-ti3nb
index c710a75e0b..e6e27dd3d9 100644
--- a/mats/Mf-ti3nb
+++ b/mats/Mf-ti3nb
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ti3nt b/mats/Mf-ti3nt
index 121d7cedc7..0454725eec 100644
--- a/mats/Mf-ti3nt
+++ b/mats/Mf-ti3nt
@@ -16,27 +16,13 @@
m = ti3nt
fsrc = foreign1.c foreign2.c foreign3.c
-ftmp = foreign1.obj foreign2.obj foreign3.obj
fobj = foreign1.so
-mdclean = ${ftmp} foreign1.exp foreign1.lib make.bat cat_flush.obj cat_flush.exe libiconv-2.dll
-mdsrc = bldnt.bat
-
-MSDOS = 1
+mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj foreign2.obj foreign3.obj
include Mf-base
-.SUFFIXES: .c .obj
+foreign1.so: $(fsrc)
+ ../c/vs.bat cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv941.lib $(fsrc)
-.c.obj: ; cl -c -DWIN32 -I${Include} $*.c
-
-foreign1.so: $(ftmp)
- link -dll -out:foreign1.so foreign1.obj foreign2.obj foreign3.obj
-
-make.bat:
- echo "@echo off" > make.bat
- echo "call bldti3nt" >> make.bat
- echo "call bldti3nt 2" >> make.bat
- echo "bldti3nt 3" >> make.bat
-
-libiconv-2.dll:
- ln -s ../bin/libiconv-2.dll .
+cat_flush: cat_flush.c
+ ../c/vs.bat cl /DWIN32 /MD /nologo $<
diff --git a/mats/Mf-ti3ob b/mats/Mf-ti3ob
index 5a8202851a..93e205a5be 100644
--- a/mats/Mf-ti3ob
+++ b/mats/Mf-ti3ob
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ti3osx b/mats/Mf-ti3osx
index 9c6dad8627..87dd308e0b 100644
--- a/mats/Mf-ti3osx
+++ b/mats/Mf-ti3osx
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/Mf-ti3s2 b/mats/Mf-ti3s2
index 356fe4559e..613640576d 100644
--- a/mats/Mf-ti3s2
+++ b/mats/Mf-ti3s2
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
gcc -o cat_flush cat_flush.c
-
-killme: killme.c
- gcc -o killme killme.c
diff --git a/mats/Mf-tppc32le b/mats/Mf-tppc32le
index 943d1fa36d..b6f6d43a6a 100644
--- a/mats/Mf-tppc32le
+++ b/mats/Mf-tppc32le
@@ -25,6 +25,3 @@ foreign1.so: ${fsrc} ../boot/$m/scheme.h
cat_flush: cat_flush.c
cc -o cat_flush cat_flush.c
-
-killme: killme.c
- cc -o killme killme.c
diff --git a/mats/bldnt.bat b/mats/bldnt.bat
deleted file mode 100644
index c82a8e8a79..0000000000
--- a/mats/bldnt.bat
+++ /dev/null
@@ -1,11 +0,0 @@
-@echo off
-set m=%1
-set o=%2
-if "%o%"=="" set o=0
-echo (time (compile-file "mat")) | ..\bin\%m%\scheme -q
-cl /I../boot/%m% /nologo -c -DWIN32 foreign1.c
-cl /I../boot/%m% /nologo -c -DWIN32 foreign2.c
-cl /I../boot/%m% /nologo -c -DWIN32 foreign3.c
-cl /nologo /DWIN32 cat_flush.c
-link -dll -out:foreign1.so foreign1.obj foreign2.obj foreign3.obj ..\bin\%m%\csv941.lib
-..\bin\%m%\scheme -q mat.so < script.all%o%
diff --git a/mats/foreign.ms b/mats/foreign.ms
index 63892bd335..ac9b4913ba 100644
--- a/mats/foreign.ms
+++ b/mats/foreign.ms
@@ -204,21 +204,7 @@
(mat load-shared-object
(file-exists? "foreign1.so")
(begin (load-shared-object "foreign1.so") #t)
- (begin
- (load-shared-object
- (let ([bindir (format "../bin/~a" (machine-type))])
- (define prefix?
- (lambda (x y)
- (let ([n (string-length x)])
- (and (fx<= n (string-length y))
- (let prefix? ([i 0])
- (or (fx= i n)
- (and (char=? (string-ref x i) (string-ref y i))
- (prefix? (fx+ i 1)))))))))
- (format "~a/~a" bindir
- (or (find (lambda (s) (prefix? "vcruntime" s)) (directory-list bindir))
- (errorf #f "did not find C runtime vcruntime*.dll in ~a" bindir)))))
- #t)
+ (begin (load-shared-object "msvcrt.dll") #t)
(begin (load-shared-object "kernel32.dll") #t)
(error? (load-shared-object 3))
)
diff --git a/mats/ftype.ms b/mats/ftype.ms
index f8011a9dc4..bf409fd6b0 100644
--- a/mats/ftype.ms
+++ b/mats/ftype.ms
@@ -557,8 +557,7 @@
[(a6osx a6osx)
(system (format "cc -m64 -dynamiclib -o ~a ~a" testfile.so testfile.c))]
[(i3nt ti3nt a6nt ta6nt)
- (system (format "cl /nologo -DWIN32 -c ~a" testfile.c))
- (system (format "link /nologo -dll -out:~a testfile-~a.obj" testfile.so testfile))]
+ (system (format "..\\c\\vs.bat cl /DWIN32 /Fe~a /LD /MD /nologo ~a" testfile.so testfile.c))]
[(arm32le tarm32le)
(system (format "cc -fPIC -shared -o ~a ~a" testfile.so testfile.c))]
[else ; this should work for most intel-based systems that use gcc...
diff --git a/mats/killme.c b/mats/killme.c
deleted file mode 100644
index 920f8b096a..0000000000
--- a/mats/killme.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* killme.c
- * Copyright 1984-2016 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
-#include
-#include
-
-int main(argc, argv) int argc; char *argv[]; {
- kill(getppid(), atoi(argv[1]));
- exit(0);
-}
diff --git a/mats/patch-compile-0-f-f-t b/mats/patch-compile-0-f-f-t
index d0d3797d4c..88c5c43641 100644
--- a/mats/patch-compile-0-f-f-t
+++ b/mats/patch-compile-0-f-f-t
@@ -1,7 +1,7 @@
-*** errors-compile-0-f-f-f 2015-09-22 16:26:12.225848078 -0400
---- errors-compile-0-f-f-t 2015-09-22 16:31:41.620049291 -0400
+*** errors-compile-0-f-f-f 2016-06-06 17:53:10.623331500 -0400
+--- errors-compile-0-f-f-t 2016-06-06 18:02:37.804196600 -0400
***************
-*** 3518,3524 ****
+*** 3565,3571 ****
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation -1".
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation "static"".
misc.mo:Expected error in mat make-object-finder: "make-object-finder: 17 is not a procedure".
@@ -9,7 +9,7 @@
misc.mo:Expected error in mat make-object-finder: "make-object-finder: invalid generation oldgen".
misc.mo:Expected error in mat make-object-finder: "make-object-finder: invalid generation -1".
misc.mo:Expected error in mat make-object-finder: "incorrect number of arguments to #".
---- 3518,3524 ----
+--- 3565,3571 ----
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation -1".
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation "static"".
misc.mo:Expected error in mat make-object-finder: "make-object-finder: 17 is not a procedure".
@@ -18,7 +18,7 @@
misc.mo:Expected error in mat make-object-finder: "make-object-finder: invalid generation -1".
misc.mo:Expected error in mat make-object-finder: "incorrect number of arguments to #".
***************
-*** 6969,6979 ****
+*** 7040,7050 ****
7.mo:Expected error in mat sstats: "set-sstats-gc-bytes!: twelve is not an exact integer".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation yuk".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation -1".
@@ -30,7 +30,7 @@
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
---- 6969,6979 ----
+--- 7040,7050 ----
7.mo:Expected error in mat sstats: "set-sstats-gc-bytes!: twelve is not an exact integer".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation yuk".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation -1".
@@ -43,7 +43,7 @@
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
***************
-*** 8319,8331 ****
+*** 8406,8418 ****
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".
@@ -57,7 +57,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".
---- 8319,8331 ----
+--- 8406,8418 ----
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".
diff --git a/mats/patch-compile-0-t-f-f b/mats/patch-compile-0-t-f-f
index f32efa8736..9ca196d46b 100644
--- a/mats/patch-compile-0-t-f-f
+++ b/mats/patch-compile-0-t-f-f
@@ -5741,6 +5741,35 @@
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"".
***************
+*** 9680,9692 ****
+ 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".
+! windows.mo:Expected error in mat registry: "incorrect argument count in call (get-registry)".
+! windows.mo:Expected error in mat registry: "incorrect argument count in call (get-registry 1 2)".
+! windows.mo:Expected error in mat registry: "incorrect argument count in call (put-registry! "hi")".
+! windows.mo:Expected error in mat registry: "incorrect argument count in call (put-registry! 1)".
+! windows.mo:Expected error in mat registry: "incorrect argument count in call (put-registry! 1 2 3)".
+! windows.mo:Expected error in mat registry: "incorrect argument count in call (remove-registry!)".
+! windows.mo:Expected error in mat registry: "incorrect argument count in call (remove-registry! 1 2)".
+ 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".
+--- 9680,9692 ----
+ 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".
+! windows.mo:Expected error in mat registry: "incorrect number of arguments to #".
+! windows.mo:Expected error in mat registry: "incorrect number of arguments to #".
+! windows.mo:Expected error in mat registry: "incorrect number of arguments to #".
+! windows.mo:Expected error in mat registry: "incorrect number of arguments to #".
+! windows.mo:Expected error in mat registry: "incorrect number of arguments to #".
+! windows.mo:Expected error in mat registry: "incorrect number of arguments to #".
+! windows.mo:Expected error in mat registry: "incorrect number of arguments to #".
+ 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".
+***************
*** 9714,9785 ****
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".
diff --git a/mats/patch-compile-0-t-f-t b/mats/patch-compile-0-t-f-t
index 6abf5ae26f..f6667ba0b8 100644
--- a/mats/patch-compile-0-t-f-t
+++ b/mats/patch-compile-0-t-f-t
@@ -1,7 +1,7 @@
-*** errors-compile-0-t-f-f 2015-09-22 21:53:21.139384282 -0400
---- errors-compile-0-t-f-t 2015-09-22 16:29:02.966062453 -0400
+*** errors-compile-0-t-f-f 2016-06-06 18:12:13.534516500 -0400
+--- errors-compile-0-t-f-t 2016-06-06 17:56:30.227458200 -0400
***************
-*** 3518,3524 ****
+*** 3565,3571 ****
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation -1".
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation "static"".
misc.mo:Expected error in mat make-object-finder: "make-object-finder: 17 is not a procedure".
@@ -9,7 +9,7 @@
misc.mo:Expected error in mat make-object-finder: "make-object-finder: invalid generation oldgen".
misc.mo:Expected error in mat make-object-finder: "make-object-finder: invalid generation -1".
misc.mo:Expected error in mat make-object-finder: "incorrect number of arguments to #".
---- 3518,3524 ----
+--- 3565,3571 ----
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation -1".
misc.mo:Expected error in mat compute-composition: "compute-composition: invalid generation "static"".
misc.mo:Expected error in mat make-object-finder: "make-object-finder: 17 is not a procedure".
@@ -18,7 +18,7 @@
misc.mo:Expected error in mat make-object-finder: "make-object-finder: invalid generation -1".
misc.mo:Expected error in mat make-object-finder: "incorrect number of arguments to #".
***************
-*** 6969,6979 ****
+*** 7040,7050 ****
7.mo:Expected error in mat sstats: "set-sstats-gc-bytes!: twelve is not an exact integer".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation yuk".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation -1".
@@ -30,7 +30,7 @@
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid space gnu".
---- 6969,6979 ----
+--- 7040,7050 ----
7.mo:Expected error in mat sstats: "set-sstats-gc-bytes!: twelve is not an exact integer".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation yuk".
7.mo:Expected error in mat bytes-allocated: "bytes-allocated: invalid generation -1".
diff --git a/mats/patch-compile-0-t-t-f b/mats/patch-compile-0-t-t-f
index 84d19c21c3..84b68511bf 100644
--- a/mats/patch-compile-0-t-t-f
+++ b/mats/patch-compile-0-t-t-f
@@ -1,5 +1,5 @@
-*** errors-compile-0-t-f-f 2015-09-22 21:53:21.139384282 -0400
---- errors-compile-0-t-t-f 2015-09-22 16:35:00.445792407 -0400
+*** errors-compile-0-t-f-f 2016-06-06 18:12:13.534516500 -0400
+--- errors-compile-0-t-t-f 2016-06-06 18:06:30.926483000 -0400
***************
*** 144,150 ****
3.mo:Expected error in mat cpvalid: "attempt to reference undefined variable b".
@@ -18,7 +18,7 @@
3.mo:Expected error in mat cpvalid: "attempt to reference undefined variable c".
3.mo:Expected warning in mat cpvalid: "possible attempt to reference undefined variable x".
***************
-*** 3560,3566 ****
+*** 3607,3613 ****
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".
@@ -26,7 +26,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".
---- 3560,3566 ----
+--- 3607,3613 ----
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".
@@ -35,7 +35,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".
***************
-*** 6979,6986 ****
+*** 7050,7057 ****
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".
@@ -44,7 +44,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)".
---- 6979,6986 ----
+--- 7050,7057 ----
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".
@@ -54,7 +54,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)".
***************
-*** 6988,7002 ****
+*** 7059,7073 ****
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".
@@ -70,7 +70,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".
---- 6988,7002 ----
+--- 7059,7073 ----
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".
@@ -87,7 +87,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".
***************
-*** 7009,7034 ****
+*** 7080,7105 ****
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 #".
@@ -114,7 +114,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".
---- 7009,7034 ----
+--- 7080,7105 ----
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 #".
@@ -142,7 +142,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".
***************
-*** 7140,7178 ****
+*** 7221,7259 ****
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 #".
@@ -182,7 +182,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".
---- 7140,7178 ----
+--- 7221,7259 ----
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 #".
@@ -223,7 +223,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".
***************
-*** 7198,7233 ****
+*** 7279,7314 ****
record.mo:Expected error in mat r6rs-records-procedural: "make-record-constructor-descriptor: record constructor descriptor # is not for parent of record type #".
record.mo:Expected error in mat r6rs-records-procedural: "make-record-type-descriptor: cannot extend sealed record type #".
record.mo:Expected error in mat r6rs-records-syntactic: "invalid syntax point".
@@ -260,7 +260,7 @@
record.mo:Expected error in mat r6rs-records-syntactic: "record-rtd: # is not a record".
record.mo:Expected error in mat r6rs-records-syntactic: "record-rtd: # is not a record".
record.mo:Expected error in mat r6rs-records-syntactic: "parent record type is sealed ex3".
---- 7198,7233 ----
+--- 7279,7314 ----
record.mo:Expected error in mat r6rs-records-procedural: "make-record-constructor-descriptor: record constructor descriptor # is not for parent of record type #".
record.mo:Expected error in mat r6rs-records-procedural: "make-record-type-descriptor: cannot extend sealed record type #".
record.mo:Expected error in mat r6rs-records-syntactic: "invalid syntax point".
diff --git a/mats/patch-interpret-0-t-f-f b/mats/patch-interpret-0-t-f-f
index d846446ae9..0e7f608d34 100644
--- a/mats/patch-interpret-0-t-f-f
+++ b/mats/patch-interpret-0-t-f-f
@@ -1,5 +1,5 @@
-*** errors-compile-0-t-f-f 2015-09-22 21:53:21.139384282 -0400
---- errors-interpret-0-t-f-f 2015-09-22 16:50:31.816326497 -0400
+*** errors-compile-0-t-f-f 2016-06-06 18:12:13.534516500 -0400
+--- errors-interpret-0-t-f-f 2016-06-06 19:24:55.494488400 -0400
***************
*** 1,7 ****
primvars.mo:Expected error in mat make-parameter: "make-parameter: 2 is not a procedure".
@@ -10,12 +10,12 @@
primvars.mo:Expected error in mat collect-generation-radix: "collect-generation-radix: -1 is not a positive fixnum".
primvars.mo:Expected error in mat collect-generation-radix: "collect-generation-radix: 0 is not a positive fixnum".
--- 1,13 ----
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 995, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 997, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1004, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1006, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1013, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1015, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 1005, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 1007, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1014, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1016, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1023, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1025, char 4 of 6.ms
primvars.mo:Expected error in mat make-parameter: "make-parameter: 2 is not a procedure".
primvars.mo:Expected error in mat make-parameter: "+: a is not a number".
primvars.mo:Expected error in mat make-parameter: "incorrect number of arguments to #".
@@ -169,7 +169,7 @@
3.mo:Expected error in mat letrec: "variable f is not bound".
3.mo:Expected error in mat letrec: "attempt to reference undefined variable a".
***************
-*** 3908,3923 ****
+*** 3959,3974 ****
6.mo:Expected error in mat pretty-print: "incorrect number of arguments to #".
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)".
@@ -186,9 +186,26 @@
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too few arguments for control string "abc~s" in call to fprintf at line 1, char 29 of testfile.ss".
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too many arguments for control string "~%~abc~adef~ag~s~~~%" in call to fprintf at line 1, char 29 of testfile.ss".
6.mo:Expected error in mat print-parameters: "write: cycle detected; proceeding with (print-graph #t)".
---- 3914,3923 ----
+--- 3965,3974 ----
***************
-*** 7151,7157 ****
+*** 6914,6920 ****
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in include: failed for testfile-mc-1a.ss: no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: failed for "testfile-mc-1a.ss": no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: file "testfile-mc-1a.ss" not found in source directories
+! 7.mo:Expected error in mat eval: "compile: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "interpret: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "compile: 7 is not an environment".
+ 7.mo:Expected error in mat expand: "sc-expand: 7 is not an environment".
+--- 6914,6920 ----
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in include: failed for testfile-mc-1a.ss: no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: failed for "testfile-mc-1a.ss": no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: file "testfile-mc-1a.ss" not found in source directories
+! 7.mo:Expected error in mat eval: "interpret: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "interpret: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "compile: 7 is not an environment".
+ 7.mo:Expected error in mat expand: "sc-expand: 7 is not an environment".
+***************
+*** 7232,7238 ****
record.mo:Expected error in mat record25: "invalid value #\9 for foreign type uptr".
record.mo:Expected error in mat record25: "invalid value 10 for foreign type float".
record.mo:Expected error in mat record25: "invalid value 11.0+0.0i for foreign type double".
@@ -196,7 +213,7 @@
record.mo:Expected error in mat record25: "invalid value 12.0 for foreign type long-long".
record.mo:Expected error in mat record25: "invalid value 13.0 for foreign type unsigned-long-long".
record.mo:Expected error in mat record25: "invalid value 3.0 for foreign type int".
---- 7151,7157 ----
+--- 7232,7238 ----
record.mo:Expected error in mat record25: "invalid value #\9 for foreign type uptr".
record.mo:Expected error in mat record25: "invalid value 10 for foreign type float".
record.mo:Expected error in mat record25: "invalid value 11.0+0.0i for foreign type double".
@@ -205,7 +222,7 @@
record.mo:Expected error in mat record25: "invalid value 13.0 for foreign type unsigned-long-long".
record.mo:Expected error in mat record25: "invalid value 3.0 for foreign type int".
***************
-*** 9081,9105 ****
+*** 9168,9192 ****
foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle foo".
foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle foo".
foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle foo".
@@ -231,7 +248,7 @@
foreign.mo:Expected error in mat foreign-procedure: "invalid foreign-procedure argument type specifier booleen".
foreign.mo:Expected error in mat foreign-procedure: "invalid foreign-procedure argument type specifier integer-34".
foreign.mo:Expected error in mat foreign-procedure: "invalid foreign-procedure result type specifier chare".
---- 9081,9105 ----
+--- 9168,9192 ----
foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle foo".
foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle foo".
foreign.mo:Expected error in mat foreign-procedure: "foreign-procedure: invalid foreign procedure handle foo".
@@ -258,7 +275,7 @@
foreign.mo:Expected error in mat foreign-procedure: "invalid foreign-procedure argument type specifier integer-34".
foreign.mo:Expected error in mat foreign-procedure: "invalid foreign-procedure result type specifier chare".
***************
-*** 9112,9143 ****
+*** 9199,9230 ****
foreign.mo:Expected error in mat foreign-sizeof: "incorrect number of arguments to #".
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".
@@ -291,7 +308,7 @@
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
---- 9112,9143 ----
+--- 9199,9230 ----
foreign.mo:Expected error in mat foreign-sizeof: "incorrect number of arguments to #".
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".
@@ -325,7 +342,7 @@
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
***************
-*** 9145,9170 ****
+*** 9232,9257 ****
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
@@ -352,7 +369,7 @@
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
---- 9145,9170 ----
+--- 9232,9257 ----
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
foreign.mo:Expected error in mat foreign-strings: "foreign-callable: invalid return value ("ello" 4) from #".
@@ -380,7 +397,7 @@
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
***************
-*** 9175,9209 ****
+*** 9262,9296 ****
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
@@ -416,7 +433,7 @@
foreign.mo:Expected error in mat foreign-C-types: "foreign-callable: invalid return value (73 74) from #".
foreign.mo:Expected error in mat foreign-C-types: "foreign-callable: invalid return value (73 74) from #".
foreign.mo:Expected error in mat foreign-C-types: "foreign-callable: invalid return value (73 74) from #".
---- 9175,9209 ----
+--- 9262,9296 ----
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
foreign.mo:Expected error in mat foreign-fixed-types: "foreign-callable: invalid return value (- x 7) from #".
@@ -453,7 +470,7 @@
foreign.mo:Expected error in mat foreign-C-types: "foreign-callable: invalid return value (73 74) from #".
foreign.mo:Expected error in mat foreign-C-types: "foreign-callable: invalid return value (73 74) from #".
***************
-*** 9783,9792 ****
+*** 9876,9885 ****
exceptions.mo:Expected error in mat assert: "failed assertion (memq (quote b) (quote (1 2 a 3 4)))".
exceptions.mo:Expected error in mat assert: "failed assertion (q ...)".
exceptions.mo:Expected error in mat assert: "failed assertion (andmap symbol? (syntax (x ...)))".
@@ -464,7 +481,7 @@
oop.mo:Expected error in mat oop: "m1: not applicable to 17".
oop.mo:Expected error in mat oop: "variable -x1 is not bound".
oop.mo:Expected error in mat oop: "variable -x1-set! is not bound".
---- 9783,9792 ----
+--- 9876,9885 ----
exceptions.mo:Expected error in mat assert: "failed assertion (memq (quote b) (quote (1 2 a 3 4)))".
exceptions.mo:Expected error in mat assert: "failed assertion (q ...)".
exceptions.mo:Expected error in mat assert: "failed assertion (andmap symbol? (syntax (x ...)))".
diff --git a/mats/patch-interpret-0-t-t-f b/mats/patch-interpret-0-t-t-f
index a5a6258045..94be1beeff 100644
--- a/mats/patch-interpret-0-t-t-f
+++ b/mats/patch-interpret-0-t-t-f
@@ -1,5 +1,5 @@
-*** errors-compile-0-t-t-f 2015-09-22 16:35:00.445792407 -0400
---- errors-interpret-0-t-t-f 2015-09-22 21:53:21.211385638 -0400
+*** errors-compile-0-t-t-f 2016-06-06 18:06:30.926483000 -0400
+--- errors-interpret-0-t-t-f 2016-06-06 19:30:54.817658600 -0400
***************
*** 1,7 ****
primvars.mo:Expected error in mat make-parameter: "make-parameter: 2 is not a procedure".
@@ -10,12 +10,12 @@
primvars.mo:Expected error in mat collect-generation-radix: "collect-generation-radix: -1 is not a positive fixnum".
primvars.mo:Expected error in mat collect-generation-radix: "collect-generation-radix: 0 is not a positive fixnum".
--- 1,13 ----
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 995, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 997, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1004, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1006, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1013, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1015, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 1005, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 1007, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1014, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1016, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1023, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1025, char 4 of 6.ms
primvars.mo:Expected error in mat make-parameter: "make-parameter: 2 is not a procedure".
primvars.mo:Expected error in mat make-parameter: "+: a is not a number".
primvars.mo:Expected error in mat make-parameter: "incorrect number of arguments to #".
@@ -169,7 +169,7 @@
3.mo:Expected error in mat letrec: "variable f is not bound".
3.mo:Expected error in mat letrec: "attempt to reference undefined variable a".
***************
-*** 3908,3923 ****
+*** 3959,3974 ****
6.mo:Expected error in mat pretty-print: "incorrect number of arguments to #".
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)".
@@ -186,9 +186,26 @@
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too few arguments for control string "abc~s" in call to fprintf at line 1, char 29 of testfile.ss".
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too many arguments for control string "~%~abc~adef~ag~s~~~%" in call to fprintf at line 1, char 29 of testfile.ss".
6.mo:Expected error in mat print-parameters: "write: cycle detected; proceeding with (print-graph #t)".
---- 3914,3923 ----
+--- 3965,3974 ----
***************
-*** 6979,6986 ****
+*** 6914,6920 ****
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in include: failed for testfile-mc-1a.ss: no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: failed for "testfile-mc-1a.ss": no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: file "testfile-mc-1a.ss" not found in source directories
+! 7.mo:Expected error in mat eval: "compile: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "interpret: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "compile: 7 is not an environment".
+ 7.mo:Expected error in mat expand: "sc-expand: 7 is not an environment".
+--- 6914,6920 ----
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in include: failed for testfile-mc-1a.ss: no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: failed for "testfile-mc-1a.ss": no such file or directory
+ 7.mo:Expected error in mat maybe-compile: "separate-compile: Exception in maybe-compile-library: file "testfile-mc-1a.ss" not found in source directories
+! 7.mo:Expected error in mat eval: "interpret: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "interpret: 7 is not an environment".
+ 7.mo:Expected error in mat eval: "compile: 7 is not an environment".
+ 7.mo:Expected error in mat expand: "sc-expand: 7 is not an environment".
+***************
+*** 7050,7057 ****
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".
@@ -197,7 +214,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)".
---- 6979,6986 ----
+--- 7050,7057 ----
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".
@@ -207,7 +224,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)".
***************
-*** 6988,7002 ****
+*** 7059,7073 ****
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".
@@ -223,7 +240,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".
---- 6988,7002 ----
+--- 7059,7073 ----
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".
@@ -240,7 +257,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".
***************
-*** 7009,7034 ****
+*** 7080,7105 ****
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 #".
@@ -267,7 +284,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".
---- 7009,7034 ----
+--- 7080,7105 ----
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 #".
@@ -295,7 +312,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".
***************
-*** 7140,7178 ****
+*** 7221,7259 ****
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 #".
@@ -335,7 +352,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".
---- 7140,7178 ----
+--- 7221,7259 ----
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 #".
@@ -376,7 +393,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".
***************
-*** 7198,7233 ****
+*** 7279,7314 ****
record.mo:Expected error in mat r6rs-records-procedural: "make-record-constructor-descriptor: record constructor descriptor # is not for parent of record type #".
record.mo:Expected error in mat r6rs-records-procedural: "make-record-type-descriptor: cannot extend sealed record type #".
record.mo:Expected error in mat r6rs-records-syntactic: "invalid syntax point".
@@ -413,7 +430,7 @@
record.mo:Expected error in mat r6rs-records-syntactic: "record-rtd: # is not a record".
record.mo:Expected error in mat r6rs-records-syntactic: "record-rtd: # is not a record".
record.mo:Expected error in mat r6rs-records-syntactic: "parent record type is sealed ex3".
---- 7198,7233 ----
+--- 7279,7314 ----
record.mo:Expected error in mat r6rs-records-procedural: "make-record-constructor-descriptor: record constructor descriptor # is not for parent of record type #".
record.mo:Expected error in mat r6rs-records-procedural: "make-record-type-descriptor: cannot extend sealed record type #".
record.mo:Expected error in mat r6rs-records-syntactic: "invalid syntax point".
@@ -451,7 +468,7 @@
record.mo:Expected error in mat r6rs-records-syntactic: "record-rtd: # is not a record".
record.mo:Expected error in mat r6rs-records-syntactic: "parent record type is sealed ex3".
***************
-*** 9783,9792 ****
+*** 9876,9885 ****
exceptions.mo:Expected error in mat assert: "failed assertion (memq (quote b) (quote (1 2 a 3 4)))".
exceptions.mo:Expected error in mat assert: "failed assertion (q ...)".
exceptions.mo:Expected error in mat assert: "failed assertion (andmap symbol? (syntax (x ...)))".
@@ -462,7 +479,7 @@
oop.mo:Expected error in mat oop: "m1: not applicable to 17".
oop.mo:Expected error in mat oop: "variable -x1 is not bound".
oop.mo:Expected error in mat oop: "variable -x1-set! is not bound".
---- 9783,9792 ----
+--- 9876,9885 ----
exceptions.mo:Expected error in mat assert: "failed assertion (memq (quote b) (quote (1 2 a 3 4)))".
exceptions.mo:Expected error in mat assert: "failed assertion (q ...)".
exceptions.mo:Expected error in mat assert: "failed assertion (andmap symbol? (syntax (x ...)))".
diff --git a/mats/patch-interpret-3-t-f-f b/mats/patch-interpret-3-t-f-f
index d403dd4efa..2fc10147e2 100644
--- a/mats/patch-interpret-3-t-f-f
+++ b/mats/patch-interpret-3-t-f-f
@@ -1,19 +1,19 @@
-*** errors-compile-3-t-f-f 2015-09-22 21:53:21.181385073 -0400
---- errors-interpret-3-t-f-f 2015-09-22 17:23:25.166477016 -0400
+*** errors-compile-3-t-f-f 2016-06-06 20:40:53.944458100 -0400
+--- errors-interpret-3-t-f-f 2016-06-06 21:50:19.270923200 -0400
***************
*** 1,3 ****
--- 1,9 ----
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 995, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 997, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1004, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1006, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1013, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1015, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 1005, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 1007, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1014, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1016, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1023, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1025, char 4 of 6.ms
3.mo:Expected warning in mat cpvalid: "possible attempt to reference undefined variable x".
3.mo:Expected warning in mat cpvalid: "possible attempt to reference undefined variable x at line 1, char 19 of testfile.ss".
- misc.mo:Expected warning in mat (argcnt load-warning): "compile: possible incorrect argument count in call (car) at line 3, char 38 of testfile.ss".
+ misc.mo:Expected warning in mat compile-profile: "profile-dump-list: unmodified source file "testfile.ss" not found in source directories".
***************
-*** 8,22 ****
+*** 12,26 ****
misc.mo:Expected warning in mat (argcnt compile-warning): "compile: possible incorrect argument count in call (car (quote (a b)) (quote (c d))) at line 3, char 38 of testfile.ss".
misc.mo:Expected warning in mat (argcnt compile-warning): "compile: possible incorrect argument count in call (g 7) at line 3, char 47 of testfile.ss".
misc.mo:Expected warning in mat (argcnt compile-warning): "compile: possible incorrect argument count in call (g) at line 3, char 48 of testfile.ss".
@@ -29,4 +29,4 @@
- 6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too many arguments for control string "~%~abc~adef~ag~s~~~%" in call to fprintf".
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too few arguments for control string "abc~s" in call to fprintf at line 1, char 29 of testfile.ss".
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too many arguments for control string "~%~abc~adef~ag~s~~~%" in call to fprintf at line 1, char 29 of testfile.ss".
---- 14,22 ----
+--- 18,26 ----
diff --git a/mats/patch-interpret-3-t-t-f b/mats/patch-interpret-3-t-t-f
index e0fbfc5b15..e065edaac8 100644
--- a/mats/patch-interpret-3-t-t-f
+++ b/mats/patch-interpret-3-t-t-f
@@ -1,19 +1,19 @@
-*** errors-compile-3-t-t-f 2015-09-22 17:08:03.746130250 -0400
---- errors-interpret-3-t-t-f 2015-09-22 21:53:21.233386052 -0400
+*** errors-compile-3-t-t-f 2016-06-06 20:35:36.101034000 -0400
+--- errors-interpret-3-t-t-f 2016-06-06 21:55:56.687725100 -0400
***************
*** 1,3 ****
--- 1,9 ----
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 995, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 997, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1004, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1006, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1013, char 4 of 6.ms
-+ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1015, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 1 at line 1005, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 2 at line 1007, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 5 at line 1014, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 6 at line 1016, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 9 at line 1023, char 4 of 6.ms
++ 6.mo:Bug in mat cp1in-verify-format-warnings clause 10 at line 1025, char 4 of 6.ms
3.mo:Expected warning in mat cpvalid: "possible attempt to reference undefined variable x".
3.mo:Expected warning in mat cpvalid: "possible attempt to reference undefined variable x at line 1, char 19 of testfile.ss".
- misc.mo:Expected warning in mat (argcnt load-warning): "compile: possible incorrect argument count in call (car) at line 3, char 38 of testfile.ss".
+ misc.mo:Expected warning in mat compile-profile: "profile-dump-list: unmodified source file "testfile.ss" not found in source directories".
***************
-*** 8,22 ****
+*** 12,26 ****
misc.mo:Expected warning in mat (argcnt compile-warning): "compile: possible incorrect argument count in call (car (quote (a b)) (quote (c d))) at line 3, char 38 of testfile.ss".
misc.mo:Expected warning in mat (argcnt compile-warning): "compile: possible incorrect argument count in call (g 7) at line 3, char 47 of testfile.ss".
misc.mo:Expected warning in mat (argcnt compile-warning): "compile: possible incorrect argument count in call (g) at line 3, char 48 of testfile.ss".
@@ -29,4 +29,4 @@
- 6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too many arguments for control string "~%~abc~adef~ag~s~~~%" in call to fprintf".
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too few arguments for control string "abc~s" in call to fprintf at line 1, char 29 of testfile.ss".
6.mo:Expected warning in mat cp1in-verify-format-warnings: "compile: too many arguments for control string "~%~abc~adef~ag~s~~~%" in call to fprintf at line 1, char 29 of testfile.ss".
---- 14,22 ----
+--- 18,26 ----
diff --git a/mats/windows.ms b/mats/windows.ms
index e9e73ee0b9..ca0dcca74c 100644
--- a/mats/windows.ms
+++ b/mats/windows.ms
@@ -55,14 +55,19 @@
)
)
(begin ; provide expected errors
+ (set! bad-arg-count
+ (lambda (who . args)
+ (if (#%$suppress-primitive-inlining)
+ (errorf #f "incorrect number of arguments to #" who)
+ (errorf #f "incorrect argument count in call ~s" (cons who args)))))
(mat registry
- (error? (errorf #f "incorrect argument count in call (get-registry)"))
- (error? (errorf #f "incorrect argument count in call (get-registry 1 2)"))
- (error? (errorf #f "incorrect argument count in call (put-registry! \"hi\")"))
- (error? (errorf #f "incorrect argument count in call (put-registry! 1)"))
- (error? (errorf #f "incorrect argument count in call (put-registry! 1 2 3)"))
- (error? (errorf #f "incorrect argument count in call (remove-registry!)"))
- (error? (errorf #f "incorrect argument count in call (remove-registry! 1 2)"))
+ (error? (bad-arg-count 'get-registry))
+ (error? (bad-arg-count 'get-registry 1 2))
+ (error? (bad-arg-count 'put-registry! "hi"))
+ (error? (bad-arg-count 'put-registry! 1))
+ (error? (bad-arg-count 'put-registry! 1 2 3))
+ (error? (bad-arg-count 'remove-registry!))
+ (error? (bad-arg-count 'remove-registry! 1 2))
(error? (errorf 'get-registry "pooh is not a string"))
(error? (errorf 'put-registry! "3 is not a string"))
(error? (errorf 'put-registry! "3 is not a string"))
diff --git a/release_notes/release_notes.stex b/release_notes/release_notes.stex
index ceab28e8e1..5677539d7c 100644
--- a/release_notes/release_notes.stex
+++ b/release_notes/release_notes.stex
@@ -2,7 +2,7 @@
\thisversion{Version 9.4.1}
\thatversion{Version 8.4}
-\pubmonth{May}
+\pubmonth{June}
\pubyear{2016}
\begin{document}
@@ -1465,6 +1465,15 @@ denormalized floating-point numbers.
zone-offset field.
[This bug dated back to Version 8.0.]
+\subsection{\protect\scheme{wchar} and \protect\scheme{wchar_t} record field types fail to inline in Windows (9.4)}
+
+On Windows, the inliner has been fixed to handle \scheme{wchar} and
+\scheme{wchar_t} record field types.
+
+\subsection{path-related procedures cause invalid memory reference with non-string arguments in Windows (9.4)}
+
+On Windows, the path-related procedures now raise an appropriate exception when the path argument is not a string.
+
\subsection{\protect\scheme{dynamic-wind} mistakenly enabling interrupts (9.3.3)}
A bug causing \scheme{dynamic-wind} to unconditionally enable
diff --git a/s/6.ss b/s/6.ss
index 34260b114f..ce937c0c25 100644
--- a/s/6.ss
+++ b/s/6.ss
@@ -358,6 +358,7 @@
(define directory-separator-predicate
(lambda (s)
(if (and windows?
+ (string? s)
(let ([n (string-length s)])
(and (fx>= n 4)
(char=? (string-ref s 0) #\\)
diff --git a/s/Mf-a6nt b/s/Mf-a6nt
index 7302b45c5c..7af6ae94ab 100644
--- a/s/Mf-a6nt
+++ b/s/Mf-a6nt
@@ -15,6 +15,5 @@
m = a6nt
archincludes = x86_64.ss
-buildsrc = bldnt.bat
include Mf-base
diff --git a/s/Mf-base b/s/Mf-base
index e908565f72..04da0de482 100644
--- a/s/Mf-base
+++ b/s/Mf-base
@@ -73,6 +73,13 @@ pps = f
Scheme = ../bin/$m/scheme
export SCHEMEHEAPDIRS=../boot/%m
+# Define the libdirs separator character
+ifeq ($(OS),Windows_NT)
+ dirsep = ;
+else
+ dirsep = :
+endif
+
ProfileDumpSource = source.pd
ProfileDumpBlock = block.pd
PetiteBoot = ../boot/$m/petite.boot
@@ -150,7 +157,9 @@ allx: prettyclean saveboot
$(MAKE) checkboot ;\
fi
$(MAKE) restoreboot
+ifneq ($(OS),Windows_NT)
$(MAKE) resetbootlinks
+endif
# bootstrap runs allx if any sources have changed since the last bootstrap
bootstrap: ${allsrc}
@@ -158,7 +167,7 @@ bootstrap: ${allsrc}
touch bootstrap
# source eagerly creates links to most of the files that might be needed
-source: ${allsrc} ${buildsrc} mkheader.ss script.all
+source: ${allsrc} mkheader.ss script.all
# profiled goes through the involved process of building a profile-optimized boot file
profiled:
@@ -353,10 +362,15 @@ nanopass.so: $(shell echo ../nanopass/nanopass/*) ../nanopass/nanopass.ss
'(collect-request-handler (lambda () (collect 0 1)))'\
'(collect 1 2)'\
'(compile-library "../nanopass/nanopass.ss" "nanopass.so")'\
- | ${Scheme} -q --libdirs "../nanopass::." --compile-imported-libraries
+ | ${Scheme} -q --libdirs "../nanopass${dirsep}${dirsep}." --compile-imported-libraries
rootsrc = $(shell cd ../../s; echo *)
-${rootsrc}: ; ln -s ../../s/$@ $@
+${rootsrc}:
+ifeq ($(OS),Windows_NT)
+ cp -p ../../s/$@ $@
+else
+ ln -s ../../s/$@ $@
+endif
script.all: Mf-base
diff --git a/s/Mf-i3nt b/s/Mf-i3nt
index 82cc2a80da..3d262f98d1 100644
--- a/s/Mf-i3nt
+++ b/s/Mf-i3nt
@@ -15,6 +15,5 @@
m = i3nt
archincludes = x86.ss
-buildsrc = bldnt.bat
include Mf-base
diff --git a/s/Mf-ta6nt b/s/Mf-ta6nt
index 02f3acbea5..f64a8a5d16 100644
--- a/s/Mf-ta6nt
+++ b/s/Mf-ta6nt
@@ -15,6 +15,5 @@
m = ta6nt
archincludes = x86_64.ss
-buildsrc = bldnt.bat
include Mf-base
diff --git a/s/Mf-ti3nt b/s/Mf-ti3nt
index faa136cbd5..b04515cf7d 100644
--- a/s/Mf-ti3nt
+++ b/s/Mf-ti3nt
@@ -15,6 +15,5 @@
m = ti3nt
archincludes = x86.ss
-buildsrc = bldnt.bat
include Mf-base
diff --git a/s/bldnt.bat b/s/bldnt.bat
deleted file mode 100644
index c77e993114..0000000000
--- a/s/bldnt.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@echo off
-REM bldnt machine-name
-echo (reset-handler abort) (base-exception-handler (lambda (c) (fresh-line) (display-condition c) (newline) (abort))) (case-sensitive #t) (optimize-level 2) (current-expand sc-expand) (generate-inspector-information #f) (subset-mode 'system) (compile-file "cmacros.ss" "cmacros.so") | ..\bin\%1\scheme -q --libdirs ..;.
-echo (reset-handler abort) (base-exception-handler (lambda (c) (fresh-line) (display-condition c) (newline) (abort))) (case-sensitive #t) (optimize-level 2) (current-expand sc-expand) (generate-inspector-information #f) (subset-mode 'system) (compile-file "priminfo.ss" "priminfo.so") | ..\bin\%1\scheme -q --libdirs ..;. cmacros.so
-echo (reset-handler abort) (base-exception-handler (lambda (c) (fresh-line) (display-condition c) (newline) (abort))) (case-sensitive #t) (optimize-level 2) (current-expand sc-expand) (subset-mode 'system) (compile-file "primvars.ss" "primvars.so") | ..\bin\%1\scheme -q --libdirs ..;. cmacros.so priminfo.so
-echo (reset-handler abort) (base-exception-handler (lambda (c) (fresh-line) (display-condition c) (newline) (abort))) (case-sensitive #t) (optimize-level 2) (current-expand sc-expand) (subset-mode 'system) (compile-file "setup.ss" "setup.so") | ..\bin\%1\scheme -q --libdirs ..;. cmacros.so priminfo.so
-echo (reset-handler abort) (base-exception-handler (lambda (c) (fresh-line) (display-condition c) (newline) (abort))) (case-sensitive #t) (optimize-level 2) (current-expand sc-expand) (generate-inspector-information #f) (collect-trip-bytes (expt 2 24)) (collect-request-handler (lambda () (collect 0 1))) (collect 1 2) (compile-library "../nanopass/nanopass.ss" "nanopass.so") | ..\bin\%1\scheme -q --libdirs "..\nanopass;;." --compile-imported-libraries
-..\bin\%1\scheme -q --libdirs ..;. cmacros.so priminfo.so primvars.so setup.so --script script.all
diff --git a/s/cp0.ss b/s/cp0.ss
index 4eb5e9480b..e61a583d5d 100644
--- a/s/cp0.ss
+++ b/s/cp0.ss
@@ -2476,7 +2476,7 @@
(lambda (x)
(and (char? x)
(constant-case wchar-bits
- [(16) (< (integer->char x) #x10000)]
+ [(16) (< (char->integer x) #x10000)]
[(32) #t]))))
; NB: is this sufficiently tested by ftype.ms and record.ms?
(define-inline 2 $foreign-wchar?
diff --git a/s/syntax.ss b/s/syntax.ss
index 58d58d2c65..d5a5cf58e6 100644
--- a/s/syntax.ss
+++ b/s/syntax.ss
@@ -4626,7 +4626,7 @@
(define-who install-library/ct-code
(lambda (uid import-code visit-code)
(let ([desc (get-library-descriptor uid)])
- (unless desc (sorry! who "unable to install visit code for non-existant library ~s" uid))
+ (unless desc (sorry! who "unable to install visit code for non-existent library ~s" uid))
(let ([ctdesc (libdesc-ctdesc desc)])
(unless ctdesc (sorry! who "unable to install visit code for revisit-only library ~s" uid))
(ctdesc-import-code-set! ctdesc import-code)
@@ -4635,7 +4635,7 @@
(define-who install-library/rt-code
(lambda (uid invoke-code)
(let ([desc (get-library-descriptor uid)])
- (unless desc (sorry! who "unable to install invoke code for non-existant library ~s" uid))
+ (unless desc (sorry! who "unable to install invoke code for non-existent library ~s" uid))
(let ([rtdesc (libdesc-rtdesc desc)])
(unless rtdesc (sorry! who "unable to install invoke code for visit-only library ~s" uid))
(rtdesc-invoke-code-set! rtdesc invoke-code)))))
diff --git a/workarea b/workarea
index 6b7cb15e7b..487096fb36 100755
--- a/workarea
+++ b/workarea
@@ -68,6 +68,13 @@ case "$M" in
*) echo "Unrecognized machine name $M"; exit 1 ;;
esac
+if [ "$OS" = "Windows_NT" ]
+then
+ ln="/bin/cp -R"
+else
+ ln="/bin/ln -s"
+fi
+
# This shell script creates a workarea for local modifications to the
# Chez Scheme source code. Invoke with the name of a machine type:
# i3le, i3nt, ti3osx, etc., plus an optional workarea name. The script
@@ -86,7 +93,7 @@ esac
workln()
{
if [ ! -e $2 -a -e $1 ] ; then
- /bin/ln -s $1 $2 2> /dev/null
+ $ln $1 $2 2> /dev/null
fi
}
@@ -99,6 +106,13 @@ forceworkln()
fi
}
+forceworkln2()
+{
+ if [ ! -e $2 ] ; then
+ $ln $1 $2 2> /dev/null
+ fi
+}
+
# workdir directory-name
workdir()
{
@@ -126,7 +140,7 @@ workdir $W/s
(cd $W/s; workln ../../s/Mf-base Mf-base)
(cd $W/s; workln ../../s/Mf-cross Mf-cross)
(cd $W/s; workln ../../s/$M.def $M.def)
-(cd $W/s; forceworkln $M.def machine.def)
+(cd $W/s; forceworkln2 $M.def machine.def)
workdir $W/mats
(cd $W/mats; workln ../../mats/Mf-$M Mf-$M)
@@ -191,7 +205,7 @@ workdir $W/bin/$M
case $M in
*nt)
(cd $W/bin/$M; workln ../../../bin/$M/scheme.exe scheme.exe)
- (cd $W/bin/$M; forceworkln scheme.exe petite.exe)
+ (cd $W/bin/$M; forceworkln2 scheme.exe petite.exe)
(cd $W/bin/$M; workln ../../../bin/$M/csv941.dll csv941.dll)
(cd $W/bin/$M; workln ../../../bin/$M/csv941.lib csv941.lib)
;;
@@ -204,9 +218,8 @@ esac
# crutch links for fingers that remember old release structure
case $M in
*nt)
- (cd $W/bin; forceworkln $M/scheme.exe scheme.exe)
- (cd $W/bin; forceworkln $M/petite.exe petite.exe)
- (cd $W/bin; forceworkln $M/csv941.dll csv941.dll)
+ (cd $W/bin; forceworkln $M/scheme.exe scheme)
+ (cd $W/bin; forceworkln $M/petite.exe petite)
;;
*)
(cd $W/bin; forceworkln $M/scheme scheme)
@@ -215,7 +228,7 @@ case $M in
esac
(cd $W; workln ../LOG LOG)
-(cd $W; forceworkln ../nanopass nanopass)
+(cd $W; forceworkln2 ../nanopass nanopass)
(cd $W; workln ../makefiles/installsh installsh)
(cd $W; workln ../scheme.1.in scheme.1.in)