=>> Building lang/scm build started at Fri Mar 29 17:52:44 GMT 2024 port directory: /usr/ports/lang/scm package name: scm-5f3_1 building for: FreeBSD pkg-builder.dan.net.uk 13.2-RELEASE-p10 FreeBSD 13.2-RELEASE-p10 amd64 maintained by: mi@aldan.algebra.com Makefile datestamp: -rw-r--r-- 1 root wheel 3245 Jan 25 05:29 /usr/ports/lang/scm/Makefile Ports top last git commit: c2c35d895e Ports top unclean checkout: yes Port dir last git commit: 85b8338a26 Port dir unclean checkout: no Poudriere version: poudriere-git-3.4.99.20240122_1 Host OSVERSION: 1400097 Jail OSVERSION: 1302001 Job Id: 15 ---Begin Environment--- SHELL=/bin/csh OSVERSION=1302001 UNAME_v=FreeBSD 13.2-RELEASE-p10 UNAME_r=13.2-RELEASE-p10 BLOCKSIZE=K MAIL=/var/mail/root MM_CHARSET=UTF-8 LANG=C.UTF-8 STATUS=1 HOME=/root PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin MAKE_OBJDIR_CHECK_WRITABLE=0 LOCALBASE=/usr/local USER=root POUDRIERE_NAME=poudriere-git LIBEXECPREFIX=/usr/local/libexec/poudriere POUDRIERE_VERSION=3.4.99.20240122_1 MASTERMNT=/usr/local/poudriere/data/.m/13-amd64-default-dan/ref LC_COLLATE=C POUDRIERE_BUILD_TYPE=bulk PACKAGE_BUILDING=yes SAVED_TERM=screen OUTPUT_REDIRECTED_STDERR=4 OUTPUT_REDIRECTED=1 PWD=/usr/local/poudriere/data/.m/13-amd64-default-dan/15/.p OUTPUT_REDIRECTED_STDOUT=3 P_PORTS_FEATURES=FLAVORS SUBPACKAGES SELECTED_OPTIONS MASTERNAME=13-amd64-default-dan SCRIPTPREFIX=/usr/local/share/poudriere SCRIPTNAME=bulk.sh OLDPWD=/usr/local/poudriere/data/.m/13-amd64-default-dan/ref/.p/pool POUDRIERE_PKGNAME=poudriere-git-3.4.99.20240122_1 SCRIPTPATH=/usr/local/share/poudriere/bulk.sh POUDRIEREPATH=/usr/local/bin/poudriere ---End Environment--- ---Begin Poudriere Port Flags/Env--- PORT_FLAGS= PKGENV= FLAVOR= MAKE_ARGS= ---End Poudriere Port Flags/Env--- ---Begin OPTIONS List--- ===> The following configuration options are available for scm-5f3_1: X11=off: X11 (graphics) support ===> Use 'make config' to modify these settings ---End OPTIONS List--- --MAINTAINER-- mi@aldan.algebra.com --End MAINTAINER-- --CONFIGURE_ARGS-- --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- --prefix=/usr/local XDG_DATA_HOME=/wrkdirs/usr/ports/lang/scm/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/lang/scm/work XDG_CACHE_HOME=/wrkdirs/usr/ports/lang/scm/work/.cache HOME=/wrkdirs/usr/ports/lang/scm/work TMPDIR="/tmp" PATH=/ccache/libexec/ccache:/wrkdirs/usr/ports/lang/scm/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/lang/scm/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh CCACHE_DIR="/root/.ccache" --End CONFIGURE_ENV-- --MAKE_ENV-- XDG_DATA_HOME=/wrkdirs/usr/ports/lang/scm/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/lang/scm/work XDG_CACHE_HOME=/wrkdirs/usr/ports/lang/scm/work/.cache HOME=/wrkdirs/usr/ports/lang/scm/work TMPDIR="/tmp" PATH=/ccache/libexec/ccache:/wrkdirs/usr/ports/lang/scm/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/lang/scm/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local LOCALBASE=/usr/local CC="cc" CFLAGS="-pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing " CPP="cpp" CPPFLAGS="-I/usr/local/include" LDFLAGS=" -L/usr/local/lib -fstack-protector-strong " LIBS="" CXX="c++" CXXFLAGS="-pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing " CCACHE_DIR="/root/.ccache" BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 0644" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install -m 0644" BSD_INSTALL_MAN="install -m 444" --End MAKE_ENV-- --PLIST_SUB-- VERSION="5f3" X11="@comment " NO_X11="" OSREL=13.2 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/scm" EXAMPLESDIR="share/examples/scm" DATADIR="share/scm" WWWDIR="www/scm" ETCDIR="etc/scm" --End PLIST_SUB-- --SUB_LIST-- X11="@comment " NO_X11="" PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/scm DOCSDIR=/usr/local/share/doc/scm EXAMPLESDIR=/usr/local/share/examples/scm WWWDIR=/usr/local/www/scm ETCDIR=/usr/local/etc/scm --End SUB_LIST-- ---Begin make.conf--- USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles FORCE_PACKAGE=yes PACKAGE_BUILDING=yes PACKAGE_BUILDING_FLAVORS=yes #### #### CCACHE_CPP2=1 WITH_SSP_PORTS=yes WITH_SSP=yes #WITH_LTO=yes DISABLE_LICENSES=yes LICENSES_ACCEPTED=AGPLv3 APACHE10 APACHE11 APACHE20 ART10 ARTPERL10 ART20 BSD BSD2CLAUSE BSD3CLAUSE BSD4CLAUSE BSL CC0-1.0 CDDL ClArtistic EPL GFDL GMGPL GPLv1 GPLv2 GPLv3 GPLv3RLE ISCL LGPL20 LGPL21 LGPL3 LPPL10 LPPL11 LPPL12 LPPL13 LPPL13a LPPL13b LPPL13c MIT MPL OpenSSL OFL10 OFL11 OWL PostgreSQL PHP202 PHP30 PHP301 PSFL RUBY ZLIB ZPL21 SVM-Light EULA ALASIR Microsoft-exFAT SIMIAN UDEVGAME unknown MTA COMMERCIAL teamspeak NO_LICENSES_DIALOGS=yes #### #### NO_IGNORE=yes DEFAULT_VERSIONS+=ssl=openssl mysql=8.0 imagemagick=7 samba=4.13 java=18 WITH_SETID_MODE=force PHP_ZTS=enabled OPTIONS_UNSET+=OPENJPEG OPTIONS_UNSET+=GSSAPI_BASE OPTIONS_SET+=ZTS OPTIONS_SET+=GSSAPI_NONE WITH_CCACHE_BUILD=yes CCACHE_DIR=/root/.ccache NO_CCACHE_DEPEND=1 CCACHE_WRAPPER_PATH= /ccache/libexec/ccache #### Misc Poudriere #### .include "/etc/make.conf.ports_env" GID=0 UID=0 DISABLE_MAKE_JOBS=poudriere ---End make.conf--- --Resource limits-- cpu time (seconds, -t) unlimited file size (512-blocks, -f) unlimited data seg size (kbytes, -d) 33554432 stack size (kbytes, -s) 524288 core file size (512-blocks, -c) unlimited max memory size (kbytes, -m) unlimited locked memory (kbytes, -l) unlimited max user processes (-u) 89999 open files (-n) 8192 virtual mem size (kbytes, -v) unlimited swap limit (kbytes, -w) unlimited socket buffer size (bytes, -b) unlimited pseudo-terminals (-p) unlimited kqueues (-k) unlimited umtx shared locks (-o) unlimited --End resource limits-- =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> scm-5f3_1 depends on file: /usr/local/sbin/pkg - not found ===> Installing existing package /packages/All/pkg-1.20.9_1.pkg [pkg-builder.dan.net.uk] Installing pkg-1.20.9_1... [pkg-builder.dan.net.uk] Extracting pkg-1.20.9_1: .......... done ===> scm-5f3_1 depends on file: /usr/local/sbin/pkg - found ===> Returning to build of scm-5f3_1 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Fetching all distfiles required by scm-5f3_1 for building =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Fetching all distfiles required by scm-5f3_1 for building => SHA256 Checksum OK for scm-5f3.tar.gz. => SHA256 Checksum OK for slib-psd1-3.tar.gz. =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Fetching all distfiles required by scm-5f3_1 for building ===> Extracting for scm-5f3_1 => SHA256 Checksum OK for scm-5f3.tar.gz. => SHA256 Checksum OK for slib-psd1-3.tar.gz. /bin/ln -s /usr/local/share/slib /wrkdirs/usr/ports/lang/scm/work =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Patching for scm-5f3_1 ===> Applying FreeBSD patches for scm-5f3_1 from /usr/ports/lang/scm/files /usr/bin/touch /wrkdirs/usr/ports/lang/scm/work/scm-5f3/scm.core =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> scm-5f3_1 depends on file: /usr/local/share/slib/require.scm - not found ===> Installing existing package /packages/All/slib-3c1.pkg [pkg-builder.dan.net.uk] Installing slib-3c1... [pkg-builder.dan.net.uk] `-- Installing indexinfo-0.3.1... [pkg-builder.dan.net.uk] `-- Extracting indexinfo-0.3.1: . done [pkg-builder.dan.net.uk] Extracting slib-3c1: .......... done ===> scm-5f3_1 depends on file: /usr/local/share/slib/require.scm - found ===> Returning to build of scm-5f3_1 =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> scm-5f3_1 depends on shared library: libgnuregex.so - not found ===> Installing existing package /packages/All/libgnuregex-6.0.pkg [pkg-builder.dan.net.uk] Installing libgnuregex-6.0... [pkg-builder.dan.net.uk] Extracting libgnuregex-6.0: ..... done ===> scm-5f3_1 depends on shared library: libgnuregex.so - found (/usr/local/lib/libgnuregex.so) ===> Returning to build of scm-5f3_1 ===> scm-5f3_1 depends on shared library: libreadline.so.8 - not found ===> Installing existing package /packages/All/readline-8.2.10.pkg [pkg-builder.dan.net.uk] Installing readline-8.2.10... [pkg-builder.dan.net.uk] Extracting readline-8.2.10: .......... done ===> scm-5f3_1 depends on shared library: libreadline.so.8 - found (/usr/local/lib/libreadline.so.8) ===> Returning to build of scm-5f3_1 =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Configuring for scm-5f3_1 #! /bin/cat # Generated by configure for scm 5f3. # This file (config.status) is included by the (scm) Makefile. PACKAGE_NAME=scm PACKAGE_TARNAME=scm PACKAGE_VERSION=5f3 PACKAGE_STRING=scm 5f3 PACKAGE_BUGREPORT=scm-discuss@gnu.org srcdir=/wrkdirs/usr/ports/lang/scm/work/scm-5f3/ prefix=/usr/local/ exec_prefix=${prefix} bindir=${exec_prefix}bin/ sbindir=${exec_prefix}sbin/ libexecdir=${exec_prefix}libexec/ datarootdir=${prefix}share/ datadir=${datarootdir} sysconfdir=${prefix}etc/ sharedstatedir=${prefix}com/ localstatedir=${prefix}var/ includedir=${prefix}include/ oldincludedir=/usr/include/ docdir=${datarootdir}doc/${PACKAGE_TARNAME}/ infodir=${datarootdir}info/ htmldir=${docdir} dvidir=${docdir} pdfdir=${docdir} psdir=${docdir} libdir=${exec_prefix}lib/ localedir=${datarootdir}locale/ mandir=${datarootdir}man/ distdir=${srcdir} snapdir=${srcdir} =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Building for scm-5f3_1 if [ -f udscm5.opt -o ! -f scm5.opt ]; then /usr/bin/make alld5; else /usr/bin/make all5; fi /usr/bin/make scm5.opt echo "-F cautious bignums arrays inexact" >> scm5.opt echo "-F engineering-notation dynamic-linking" >> scm5.opt echo "-F macro" >> scm5.opt cat scm5.opt > udscm5.opt echo "-F dump" >> udscm5.opt echo "#ifndef IMPLINIT" > newflags.h echo "#define IMPLINIT \"/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Init5f3.scm\"" >> newflags.h echo "#endif" >> newflags.h echo "#define CHEAP_CONTINUATIONS" >> newflags.h echo "#define CAUTIOUS" >> newflags.h if (cmp -s newflags.h scmflags.h) then rm newflags.h; else mv newflags.h scmflags.h; fi cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing scm.c -o scm.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing time.c -o time.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing repl.c -o repl.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing scl.c -o scl.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing sys.c -o sys.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing eval.c -o eval.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing subr.c -o subr.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing unif.c -o unif.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing rope.c -o rope.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing continue.c -o continue.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing findexec.c -o findexec.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing script.c -o script.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing debug.c -o debug.o cc -c -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing scmmain.c -o scmmain.o cp -p requires.scm require.scm cc -o scmlit scm.o time.o repl.o scl.o sys.o eval.o subr.o unif.o rope.o continue.o findexec.o script.o debug.o scmmain.o /usr/bin/make checklit ./scmlit -fr4rstest.scm -e'(test-sc4)(test-delay)(gc)' -e '(or (null? errs) (quit 1))' < /dev/null SECTION(2 1) SECTION(3 4) # # # # # # # # # (#t #f #f #f #f #f #f #f #f)#t (#t #f #f #f #f #f #f #f #f)#f (#f #t #f #f #f #f #f #f #f)#\a (#f #f #t #f #f #f #f #f #f)() (#f #f #f #t #f #f #f #f #f)9739 (#f #f #f #f #t #f #f #f #f)(test) (#f #f #f #f #f #t #f #f #f)# (#f #f #f #f #f #f #t #f #f)"test" (#f #f #f #f #f #f #t #f #f)"" (#f #f #f #f #f #f #f #t #f)test (#f #f #f #f #f #f #f #f #t)#() (#f #f #f #f #f #f #f #f #t)#(a b c) SECTION(4 1 2) (quote (quote a)) ==> (quote a) (quote (quote a)) ==> (quote a) SECTION(4 1 3) (# 3 4) ==> 12 SECTION(4 1 4) (# "r4rstest.scm": (x) (+ x x)> 4) ==> 8 (# 7 10) ==> 3 (# "r4rstest.scm": (y) (+ x y)> 6) ==> 10 (# "r4rstest.scm": x x> 3 4 5 6) ==> (3 4 5 6) (# "r4rstest.scm": (x y . z) z> 3 4 5 6) ==> (5 6) SECTION(4 1 5) (if yes) ==> yes (if no) ==> no (if 1) ==> 1 SECTION(4 1 6) (define 3) ==> 3 (set! 5) ==> 5 SECTION(4 2 1) (cond greater) ==> greater (cond equal) ==> equal (cond 2) ==> 2 (case composite) ==> composite (case consonant) ==> consonant (and #t) ==> #t (and #f) ==> #f (and (f g)) ==> (f g) (and #t) ==> #t (or #t) ==> #t (or #t) ==> #t (or #f) ==> #f (or #f) ==> #f (or (b c)) ==> (b c) SECTION(4 2 2) (let 6) ==> 6 (let 35) ==> 35 (let* 70) ==> 70 (letrec #t) ==> #t (let 5) ==> 5 (let 34) ==> 34 (let 6) ==> 6 (let 34) ==> 34 (let 34) ==> 34 (let* 7) ==> 7 (let* 34) ==> 34 (let* 8) ==> 8 (let* 34) ==> 34 (letrec 9) ==> 9 (letrec 34) ==> 34 (letrec 10) ==> 10 (letrec 34) ==> 34 SECTION(4 2 3) (begin 6) ==> 6 SECTION(4 2 4) (do #(0 1 2 3 4)) ==> #(0 1 2 3 4) (do 25) ==> 25 (do 25) ==> 25 (let 1) ==> 1 (let ((6 1 3) (-5 -2))) ==> ((6 1 3) (-5 -2)) (let -1) ==> -1 SECTION(4 2 6) (quasiquote (list 3 4)) ==> (list 3 4) (quasiquote (list a (quote a))) ==> (list a (quote a)) (quasiquote (a 3 4 5 6 b)) ==> (a 3 4 5 6 b) (quasiquote ((foo 7) . cons)) ==> ((foo 7) . cons) (quasiquote #(10 5 2 4 3 8)) ==> #(10 5 2 4 3 8) (quasiquote 5) ==> 5 (quasiquote (a (quasiquote (b (unquote (+ 1 2)) (unquote (foo 4 d)) e)) f)) ==> (a (quasiquote (b (unquote (+ 1 2)) (unquote (foo 4 d)) e)) f) (quasiquote (a (quasiquote (b (unquote x) (unquote (quote y)) d)) e)) ==> (a (quasiquote (b (unquote x) (unquote (quote y)) d)) e) (quasiquote (list 3 4)) ==> (list 3 4) (quasiquote (quasiquote (list (unquote (+ 1 2)) 4))) ==> (quasiquote (list (unquote (+ 1 2)) 4)) SECTION(5 2 1) (tprint #t) ==> #t (define 6) ==> 6 (define 1) ==> 1 (define 9) ==> 9 (define 9) ==> 9 (define 10) ==> 10 (# 6) ==> (3 6) (# 6) ==> 9 SECTION(5 2 2) (define 45) ==> 45 (#) ==> 5 (define 34) ==> 34 (#) ==> 5 (define 34) ==> 34 (# 88) ==> 88 (# 4) ==> 4 (define 34) ==> 34 (internal-define 99) ==> 99 (internal-define 77) ==> 77 SECTION(6 1) (# #t) ==> #f (# 3) ==> #f (# (3)) ==> #f (# #f) ==> #t (# ()) ==> #f (# ()) ==> #f (# nil) ==> #f SECTION(6 2) (# a a) ==> #t (# a b) ==> #f (# 2 2) ==> #t (# () ()) ==> #t (# 10000 10000) ==> #t (# (1 . 2) (1 . 2)) ==> #f (# # "r4rstest.scm": () 1> # "r4rstest.scm": () 2>) ==> #f (# #f nil) ==> #f (# # #) ==> #t (# # "r4rstest.scm": () (set! n (+ n 1)) n> # "r4rstest.scm": () (set! n (+ n 1)) n>) ==> #t (# # "r4rstest.scm": () (set! n (+ n 1)) n> # "r4rstest.scm": () (set! n (+ n 1)) n>) ==> #f (# # #) ==> #f (# a a) ==> #t (# (a) (a)) ==> #f (# () ()) ==> #t (# # #) ==> #t (# (a) (a)) ==> #t (# #() #()) ==> #t (# # #) ==> #t (# a a) ==> #t (# (a) (a)) ==> #t (# (a (b) c) (a (b) c)) ==> #t (# "abc" "abc") ==> #t (# 2 2) ==> #t (# #(a a a a a) #(a a a a a)) ==> #t SECTION(6 3) (dot (a b c d e)) ==> (a b c d e) (# (a b c)) ==> #t (set-cdr! (a . 4)) ==> (a . 4) (# (a . 4) (a . 4)) ==> #t (dot (a b c . d)) ==> (a b c . d) (# (a . 4)) ==> #f (list? #f) ==> #f (# a ()) ==> (a) (# (a) (b c d)) ==> ((a) b c d) (# "a" (b c)) ==> ("a" b c) (# a 3) ==> (a . 3) (# (a b) c) ==> ((a b) . c) (# (a b c)) ==> a (# ((a) b c d)) ==> (a) (# (1 . 2)) ==> 1 (# ((a) b c d)) ==> (b c d) (# (1 . 2)) ==> 2 (# a 7 c) ==> (a 7 c) (#) ==> () (# (a b c)) ==> 3 (# (a (b) (c d e))) ==> 3 (# ()) ==> 0 (# (x) (y)) ==> (x y) (# (a) (b c d)) ==> (a b c d) (# (a (b)) ((c))) ==> (a (b) (c)) (#) ==> () (# (a b) (c . d)) ==> (a b c . d) (# () a) ==> a (# (a b c)) ==> (c b a) (# (a (b c) d (e (f)))) ==> ((e (f)) d (b c) a) (# (a b c d) 2) ==> c (# a (a b c)) ==> (a b c) (# b (a b c)) ==> (b c) (# a (b c d)) ==> #f (# (a) (b (a) c)) ==> #f (# (a) (b (a) c)) ==> ((a) c) (# 101 (100 101 102)) ==> (101 102) (# a ((a 1) (b 2) (c 3))) ==> (a 1) (# b ((a 1) (b 2) (c 3))) ==> (b 2) (# d ((a 1) (b 2) (c 3))) ==> #f (# (a) (((a)) ((b)) ((c)))) ==> #f (# (a) (((a)) ((b)) ((c)))) ==> ((a)) (# 5 ((2 3) (5 7) (11 13))) ==> (5 7) SECTION(6 4) (# a) ==> #t (standard-case #t) ==> #t (standard-case #t) ==> #t (#string> flying-fish) ==> "flying-fish" (#string> martin) ==> "martin" (#string> \Malvina) ==> "Malvina" (standard-case #t) ==> #t (string-set! "cb") ==> "cb" (#string> ab) ==> "ab" (#symbol> "ab") ==> ab (# mississippi mississippi) ==> #t (string->symbol #f) ==> #f (#symbol> "jollywog") ==> jollywog SECTION(6 5 5) (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #f (# 0 0) ==> 1 (# 0 1) ==> 0 (# 0 256) ==> 0 (# -1 256) ==> 1 (# -1 255) ==> -1 (# -1 -256) ==> 1 (# -1 -255) ==> -1 (# 256 0) ==> 1 (# -256 0) ==> 1 (# 256 1) ==> 256 (# -256 1) ==> -256 (# 2 3) ==> 8 (# -2 3) ==> -8 (# 3 2) ==> 9 (# -3 2) ==> 9 (# 22 22 22) ==> #t (# 22 22) ==> #t (# 34 34 35) ==> #f (# 34 35) ==> #f (#> 3 -6246) ==> #t (#> 9 9 -2424) ==> #f (#=> 3 -4 -6246) ==> #t (#=> 9 9) ==> #t (#=> 8 9) ==> #f (# -1 2 3 4 5 6 7 8) ==> #t (# -1 2 3 4 4 5 6 7) ==> #f (# -1 2 3 4 5 6 7 8) ==> #t (# -1 2 3 4 4 5 6 7) ==> #t (# 1 3 2) ==> #f (#=> 1 3 2) ==> #f (# 0) ==> #t (# 1) ==> #f (# -1) ==> #f (# -100) ==> #f (# 4) ==> #t (# -4) ==> #f (# 0) ==> #f (# 4) ==> #f (# -4) ==> #t (# 0) ==> #f (# 3) ==> #t (# 2) ==> #f (# -4) ==> #f (# -1) ==> #t (# 3) ==> #f (# 2) ==> #t (# -4) ==> #t (# -1) ==> #f (# 34 5 7 38 6) ==> 38 (# 3 5 5 330 4 -24) ==> -24 (# 3 4) ==> 7 (# 3) ==> 3 (#) ==> 0 (# 4) ==> 4 (#) ==> 1 (# 1) ==> 1 (# -1) ==> -1 (# 6 3) ==> 2 (# 6 -2) ==> -3 (# -6 2) ==> -3 (# -6 -2) ==> 3 (# 3 4) ==> -1 (# 3) ==> -3 (# -7) ==> 7 (# 7) ==> 7 (# 0) ==> 0 (# 35 7) ==> 5 (# -35 7) ==> -5 (# 35 -7) ==> -5 (# -35 -7) ==> 5 (# 13 4) ==> 1 (# 13 4) ==> 1 (# -13 4) ==> 3 (# -13 4) ==> -1 (# 13 -4) ==> -3 (# 13 -4) ==> 1 (# -13 -4) ==> -1 (# -13 -4) ==> -1 (# 0 86400) ==> 0 (# 0 -86400) ==> 0 (# 238 9) ==> #t (# -238 9) ==> #t (# 238 -9) ==> #t (# -238 -9) ==> #t (# 0 4) ==> 4 (# -4 0) ==> 4 (# 32 -36) ==> 4 (#) ==> 0 (# 32 -36) ==> 288 (#) ==> 1 SECTION(6 5 5) (#number "r4rstest.scm": (str) (#@define ((ans (string->number str))) (cond ((not ans) #t) ((number? ans) #t) (else ans)))> "+#.#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "-#.#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "#.#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "1/0") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "-1/0") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "0/0") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "+1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "-1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "0/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "0/0-0/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "1/0-1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "-1/0+1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "#i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "#e") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@cond ((#@not #@ans) #t) ((number? ans) #t) (#t ans)))> "#i0/0") ==> #t SECTION(6 5 9) (#string> 0) ==> "0" (#string> 100) ==> "100" (#string> 256 16) ==> "100" (#number> "100") ==> 100 (#number> "100" 16) ==> 256 (#number> "") ==> #f (#number> ".") ==> #f (#number> "d") ==> #f (#number> "D") ==> #f (#number> "i") ==> #f (#number> "I") ==> #f (#number> "3i") ==> #f (#number> "3I") ==> #f (#number> "33i") ==> #f (#number> "33I") ==> #f (#number> "3.3i") ==> #f (#number> "3.3I") ==> #f (#number> "-") ==> #f (#number> "+") ==> #f (string->number #t) ==> #t (string->number #t) ==> #t SECTION(6 6) (# #\space #\space) ==> #t (# #\space #\space) ==> #t (# #\a) ==> #t (# #\() ==> #t (# #\space) ==> #t (# #\nl) ==> #t (# #\A #\B) ==> #f (# #\a #\b) ==> #f (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (# #\A #\B) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #f (#?> #\A #\B) ==> #f (#?> #\a #\b) ==> #f (#?> #\9 #\0) ==> #t (#?> #\A #\A) ==> #f (# #\A #\B) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (#=?> #\A #\B) ==> #f (#=?> #\a #\b) ==> #f (#=?> #\9 #\0) ==> #t (#=?> #\A #\A) ==> #t (# #\A #\B) ==> #f (# #\a #\B) ==> #f (# #\A #\b) ==> #f (# #\a #\b) ==> #f (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (# #\A #\a) ==> #t (# #\A #\B) ==> #t (# #\a #\B) ==> #t (# #\A #\b) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #f (# #\A #\a) ==> #f (#?> #\A #\B) ==> #f (#?> #\a #\B) ==> #f (#?> #\A #\b) ==> #f (#?> #\a #\b) ==> #f (#?> #\9 #\0) ==> #t (#?> #\A #\A) ==> #f (#?> #\A #\a) ==> #f (# #\A #\B) ==> #t (# #\a #\B) ==> #t (# #\A #\b) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (# #\A #\a) ==> #t (#=?> #\A #\B) ==> #f (#=?> #\a #\B) ==> #f (#=?> #\A #\b) ==> #f (#=?> #\a #\b) ==> #f (#=?> #\9 #\0) ==> #t (#=?> #\A #\A) ==> #t (#=?> #\A #\a) ==> #t (# #\a) ==> #t (# #\A) ==> #t (# #\z) ==> #t (# #\Z) ==> #t (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #f (# #\;) ==> #f (# #\a) ==> #f (# #\A) ==> #f (# #\z) ==> #f (# #\Z) ==> #f (# #\0) ==> #t (# #\9) ==> #t (# #\space) ==> #f (# #\;) ==> #f (# #\a) ==> #f (# #\A) ==> #f (# #\z) ==> #f (# #\Z) ==> #f (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #t (# #\;) ==> #f (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #f (# #\;) ==> #f (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #f (# #\;) ==> #f (#char> 46) ==> #\. (#char> 65) ==> #\A (#char> 97) ==> #\a (# #\A) ==> #\A (# #\a) ==> #\A (# #\A) ==> #\a (# #\a) ==> #\a SECTION(6 7) (# "The word \"recursion\\\" has many meanings.") ==> #t (string-set! "?**") ==> "?**" (# #\a #\b #\c) ==> "abc" (#) ==> "" (# "abc") ==> 3 (# "abc" 0) ==> #\a (# "abc" 2) ==> #\c (# "") ==> 0 (# "ab" 0 0) ==> "" (# "ab" 1 1) ==> "" (# "ab" 2 2) ==> "" (# "ab" 0 1) ==> "a" (# "ab" 1 2) ==> "b" (# "ab" 0 2) ==> "ab" (# "foo" "bar") ==> "foobar" (# "foo") ==> "foo" (# "foo" "") ==> "foo" (# "" "foo") ==> "foo" (#) ==> "" (# 0) ==> "" (# "" "") ==> #t (# "" "") ==> #f (#?> "" "") ==> #f (# "" "") ==> #t (#=?> "" "") ==> #t (# "" "") ==> #t (# "" "") ==> #f (#?> "" "") ==> #f (# "" "") ==> #t (#=?> "" "") ==> #t (# "A" "B") ==> #f (# "a" "b") ==> #f (# "9" "0") ==> #f (# "A" "A") ==> #t (# "A" "B") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #f (#?> "A" "B") ==> #f (#?> "a" "b") ==> #f (#?> "9" "0") ==> #t (#?> "A" "A") ==> #f (# "A" "B") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #t (#=?> "A" "B") ==> #f (#=?> "a" "b") ==> #f (#=?> "9" "0") ==> #t (#=?> "A" "A") ==> #t (# "A" "B") ==> #f (# "a" "B") ==> #f (# "A" "b") ==> #f (# "a" "b") ==> #f (# "9" "0") ==> #f (# "A" "A") ==> #t (# "A" "a") ==> #t (# "A" "B") ==> #t (# "a" "B") ==> #t (# "A" "b") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #f (# "A" "a") ==> #f (#?> "A" "B") ==> #f (#?> "a" "B") ==> #f (#?> "A" "b") ==> #f (#?> "a" "b") ==> #f (#?> "9" "0") ==> #t (#?> "A" "A") ==> #f (#?> "A" "a") ==> #f (# "A" "B") ==> #t (# "a" "B") ==> #t (# "A" "b") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #t (# "A" "a") ==> #t (#=?> "A" "B") ==> #f (#=?> "a" "B") ==> #f (#=?> "A" "b") ==> #f (#=?> "a" "b") ==> #f (#=?> "9" "0") ==> #t (#=?> "A" "A") ==> #t (#=?> "A" "a") ==> #t SECTION(6 8) (# #(0 (2 2 2 2) "Anna")) ==> #t (# a b c) ==> #(a b c) (#) ==> #() (# #(0 (2 2 2 2) "Anna")) ==> 3 (# #()) ==> 0 (# #(1 1 2 3 5 8 13 21) 5) ==> 8 (vector-set #(0 ("Sue" "Sue") "Anna")) ==> #(0 ("Sue" "Sue") "Anna") (# 2 hi) ==> #(hi hi) (# 0) ==> #() (# 0 a) ==> #() SECTION(6 9) (# #) ==> #t (# car) ==> #f (# # "r4rstest.scm": (x) (* x x)>) ==> #t (# (lambda (x) (* x x))) ==> #f (# #) ==> #t (# #) ==> #t (# # (3 4)) ==> 7 (# # "r4rstest.scm": (a b) (+ a b)> (3 4)) ==> 7 (# # 10 (3 4)) ==> 17 (# # ()) ==> () (# "r4rstest.scm": args (f (apply g args))> 12 75) ==> 30 (# # ((a b) (d e) (g h))) ==> (b e h) (# # (1 2 3) (4 5 6)) ==> (5 7 9) (# # (1 2 3)) ==> (1 2 3) (# # (1 2 3)) ==> (1 2 3) (# # (1 2 3)) ==> (-1 -2 -3) (for-each #(0 1 4 9 16)) ==> #(0 1 4 9 16) (# # "r4rstest.scm": (exit) (for-each (lambda (x) (if (negative? x) (exit x))) (quote (54 0 37 -3 245 19))) #t>) ==> -3 (# (1 2 3 4)) ==> 4 (# (a b . c)) ==> #f (# # ()) ==> () SECTION(6 10 1) (# #) ==> #t (# #) ==> #t (# "r4rstest.scm" #) ==> #t (# #) ==> #t SECTION(6 10 2) (# #) ==> #\; (# #) ==> #\; (# #) ==> (define cur-section (quote ())) (# #) ==> #\( (# #) ==> (define errs (quote ())) SECTION(6 10 3) (# "tmp1" # "r4rstest.scm": (test-file) (write-char #\; test-file) (display #\; test-file) (display ";" test-file) (write write-test-obj test-file) (newline test-file) (write load-test-obj test-file) (output-port? test-file)>) ==> #t (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) (# #) ==> #t (# #) ==> #t (input-port? #t) ==> #t (# #) ==> #\; (# #) ==> #\; (# #) ==> #\; (# #) ==> (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)) (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) (# #) ==> #t (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) (# #) ==> #t (# #) ==> #t (input-port? #t) ==> #t (# #) ==> #\; (# #) ==> #\; (# #) ==> #\; (# #) ==> (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)) (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) Passed all tests To fully test continuations, Scheme 4, and DELAY/FORCE do: (test-cont) (test-sc4) (test-delay) ;testing scheme 4 functions; SECTION(6 7) (#list> "P l") ==> (#\P #\space #\l) (#list> "") ==> () (#string> (#\1 #\\ #\")) ==> "1\\\"" (#string> ()) ==> "" SECTION(6 8) (#list> #(dah dah didah)) ==> (dah dah didah) (#list> #()) ==> () (#vector> (dididit dah)) ==> #(dididit dah) (#vector> ()) ==> #() SECTION(6 10 4) (load (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c))) ==> (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)) Passed all tests ;testing DELAY and FORCE; SECTION(6 9) (delay 3) ==> 3 (delay (3 3)) ==> (3 3) (delay 2) ==> 2 (# # count x) count (force p)))>>) ==> 6 (# #) ==> 6 (force 3) ==> 3 Passed all tests if grep -ie dynamic-linking udscm5.opt>/dev/null && ! /usr/bin/make dlls; then if sed "s/dynamic-linking//g" < udscm5.opt > tmp.opt; then mv -f tmp.opt udscm5.opt; fi; if sed "s/dynamic-linking//g" < scm5.opt > tmp.opt; then mv -f tmp.opt scm5.opt; fi fi echo "--compiler-options=-Wall" >> dlls.opt echo "--linker-options=-Wall" >> dlls.opt ./build -hsystem -t dll -f dlls.opt -F rev2-procedures #-c sc2.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define INITS init_sc2();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall sc2.c") (system "cc -shared -o sc2.so sc2.o") (delete-file "sc2.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F byte #-c byte.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define INITS init_byte();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall byte.c") (system "cc -shared -o byte.so byte.o") (delete-file "byte.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F array-for-each #-c ramap.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_ramap();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall ramap.c") (system "cc -shared -o ramap.so ramap.o") (delete-file "ramap.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F differ #-c differ.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_differ();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall differ.c") (system "cc -shared -o differ.so differ.o") (delete-file "differ.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F generalized-c-arguments #-c gsubr.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_gsubr();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall gsubr.c") (system "cc -shared -o gsubr.so gsubr.o") (delete-file "gsubr.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F record #-c record.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_record();" "#define CCLO" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall record.c") (system "cc -shared -o record.so record.o") (delete-file "record.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F byte-number inexact bignums ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_bytenumb();" "#define FLOATS" "#define BIGNUMS" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall bytenumb.c") (system "cc -shared -o bytenumb.so bytenumb.o") (delete-file "bytenumb.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F i/o-extensions #-c ioext.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define INITS init_ioext();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall ioext.c") (system "cc -shared -o ioext.so ioext.o") (delete-file "ioext.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F posix #-c posix.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_posix();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall posix.c") (system "cc -shared -o posix.so posix.o") (delete-file "posix.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F socket #-c socket.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_socket();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall socket.c") (system "cc -shared -o socket.so socket.o") (delete-file "socket.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F unix #-c unix.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_unix();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -Wall unix.c") (system "cc -shared -o unix.so unix.o") (delete-file "unix.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F regex #-c rgx.c ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_rgx();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -I/usr/local/include -Wall rgx.c") (system "cc -shared -L/usr/local/lib -lgnuregex -o rgx.so rgx.o") (delete-file "rgx.o") ; ================ Link C object files (delete-file "slibcat") ./build -hsystem -t dll -f dlls.opt -F edit-line ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: dlls.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"Init5f3.scm\"" "#define COMPILED_INITS init_edline();" "#define DLL")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -fPIC -c -I/usr/local/include -Wall edline.c") (system "cc -shared -L/usr/local/lib -lreadline -o edline.so edline.o") (delete-file "edline.o") ; ================ Link C object files (delete-file "slibcat") /usr/bin/make x.so ./scmlit -l xgen.scm /usr/local/include/X11/Xlib.h ;ERROR: "/wrkdirs/usr/ports/lang/scm/work/slib/lineio.scm": read-char: Wrong type in arg1 #f ; in expression: (#@apply #@read-char #@port) ; in scope: ; port procedure read-line ; defined by load: "/wrkdirs/usr/ports/lang/scm/work/slib/lineio.scm" ;STACK TRACE 1; (#@let* ((char (#@apply #@read-char #@port))) (if (eof-object ... 2; (#@do ((line (#@read-line #@xatom.h) (read-line xatom.h))) ((e ... 3; ((#@fprintf #@xatoms.scm ";; %s extracted definitions from %s ... 4; (#@let* ((ans (#@apply #@proc #@ports))) (#@for-each #@close- ... 5; ((#@cond ((#@= 1 (#@length #@args)) (#@xatoms) (apply xgen arg ... 6; (#@exit (#@xgen.scm (#@list-tail #@*argv* #@*optind*))) 7; (#@define ((filesuf #@file) (hss (#@has-suffix? #@file (#@sche ... 8; ((#@thunk) (set! complete #t)) 9; ((#@do-thunk (#@lambda () (#@cond (#@*syntax-rules* (require ( ... 10; ((#@case #@option #(# #f #\? #\: #\n #\u #\m #\s ... 11; ((#@cond ((#@not #@*argv*) (#@set! #@*argv* (#@program-argume ... ; program args: ("./scmlit" "-l" "xgen.scm" "/usr/local/include/X11/Xlib.h") *** Error code 1 Stop. make[3]: stopped in /wrkdirs/usr/ports/lang/scm/work/scm-5f3 *** Error code 1 (ignored) if ! /usr/bin/make dscm5; then /usr/bin/make scm5; fi make[2]: don't know how to make gmalloc.c. Stop make[2]: stopped in /wrkdirs/usr/ports/lang/scm/work/scm-5f3 ./build -hsystem -f scm5.opt -o scm -s /wrkdirs/usr/ports/lang/scm/work/scm-5f3/ ; Scheme (unix) script created by SLIB/batch ; [-p freebsd] ; used options from: scm5.opt ; ================ Write file with C defines (delete-file "scmflags.h") (call-with-output-file "scmflags.h" (lambda (fp) (for-each (lambda (string) (write-line string fp)) '("#define IMPLINIT \"/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Init5f3.scm\"" "#define INITS init_sc2();" "#define COMPILED_INITS init_record();" "#define CCLO" "#define CAUTIOUS" "#define BIGNUMS" "#define ARRAYS" "#define FLOATS" "#define ENGNOT" "#define MACRO")))) ; ================ Compile C source files (system "cc -pipe -O0 -Wall -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wcast-qual -Wno-unused-label -Wno-uninitialized -fstack-protector-strong -fno-strict-aliasing -c -DSUN_DL sc2.c record.c dynl.c continue.c scm.c scmmain.c findexec.c script.c time.c repl.c scl.c eval.c sys.c subr.c debug.c unif.c rope.c") scl.c:2789:15: warning: implicit conversion from 'long' to 'double' changes value from 2305843009213693951 to 2305843009213693952 [-Wimplicit-const-int-float-conversion] if ((u <= MOST_POSITIVE_FIXNUM) ~~ ^~~~~~~~~~~~~~~~~~~~ ./scmfig.h:565:40: note: expanded from macro 'MOST_POSITIVE_FIXNUM' # define MOST_POSITIVE_FIXNUM (LONG_MAX>>2) ~~~~~~~~^~~ 1 warning generated. unif.c:492:12: warning: variable 'vlen' set but not used [-Wunused-but-set-variable] sizet k, vlen = 1; ^ 1 warning generated. rope.c:89:27: warning: implicit conversion from 'unsigned long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-const-int-float-conversion] if ((0 <= u) && (u <= (unsigned long)~0L)) { ~~ ^~~~~~~~~~~~~~~~~~ rope.c:120:37: warning: implicit conversion from 'long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion] && (u <= (MOST_POSITIVE_FIXNUM * 4 + 3))) { ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~^~~ 2 warnings generated. ; ================ Link C object files (system "cc -o scm sc2.o record.o dynl.o continue.o scm.o scmmain.o findexec.o script.o time.o repl.o scl.o eval.o sys.o subr.o debug.o unif.o rope.o -lm -Wl,-export-dynamic ") rm scm.o time.o repl.o scl.o sys.o eval.o subr.o unif.o rope.o continue.o findexec.o script.o debug.o scmmain.o /usr/bin/make checkmacro ./scm -rmacro -fsyntest1.scm -fsyntest2.scm -fr4rstest.scm -e'(test-sc4)(test-cont)(test-delay)' -fsyntest1 -e '(or (null? errs) (quit 1))' < /dev/null (let ((x (quote outer))) (let-syntax ((m (syntax-rules () ((m) x)))) (let ((x (quote inner))) (m)))) ==> outer (let-syntax ((when (syntax-rules () ((when ?test ?stmt1 ?stmt2 ...) (if ?test (begin ?stmt1 ?stmt2 ...)))))) (let ((if #t)) (when if (set! if (quote now))) if)) ==> now (letrec-syntax ((or (syntax-rules () ((or) #f) ((or ?e) ?e) ((or ?e1 ?e2 ...) (let ((temp ?e1)) (if temp temp (or ?e2 ...))))))) (let ((x #f) (y 7) (temp 8) (let odd?) (if even?)) (or x (let temp) (if y) y))) ==> 7 (let ((=> #f)) (cond (#t => (quote ok)))) ==> ok (define-syntax set*! (syntax-rules () ((set*! (?var ?val) ...) (set*!-help (?val ...) () (?var ?val) ...)))) (define-syntax set*!-help (syntax-rules () ((set*!-help () (?temp ...) (?var ?val) ...) (let ((?temp ?val) ...) (set! ?var ?temp) ...)) ((set*!-help (?var1 ?var2 ...) ?temps ?assignments ...) (set*!-help (?var2 ...) (temp . ?temps) ?assignments ...)))) (let ((x 3) (y 4) (z 5)) (set*! (x (+ x y z)) (y (- x y z)) (z (* x y z))) (list x y z)) ==> (12 -6 60) (let ((else #f)) (cond (#f 3) (else 4) (#t 5))) ==> 5 (define-syntax push (syntax-rules () ((push item place) (set! place (cons item place))))) (let* ((cons (lambda (name) (case name ((phil) (quote (three-card monte))) ((dick) (quote (secret plan to end the war agnew not a crook))) ((jimmy) (quote (why not the best))) ((ron) (quote (abolish the draft balance the budget))) (else (quote ()))))) (scams (cons (quote phil)))) (push (car (cons (quote jimmy))) scams) (push (cadr (cons (quote ron))) scams) scams) ==> (balance the budget why not the best three-card monte) (define-syntax replic (syntax-rules () ((_ (?x ...) (?y ...)) (let ((?x (list ?y ...)) ...) (list ?x ...))))) (replic (x y z) (1 2)) ==> ((1 2) (1 2) (1 2)) Passed all tests Load "syntest2" to rewrite derived expressions and test SECTION(2 1) SECTION(3 4) # # # # # # # # # (#t #f #f #f #f #f #f #f #f)#t (#t #f #f #f #f #f #f #f #f)#f (#f #t #f #f #f #f #f #f #f)#\a (#f #f #t #f #f #f #f #f #f)() (#f #f #f #t #f #f #f #f #f)9739 (#f #f #f #f #t #f #f #f #f)(test) (#f #f #f #f #f #t #f #f #f)# (#f #f #f #f #f #f #t #f #f)"test" (#f #f #f #f #f #f #t #f #f)"" (#f #f #f #f #f #f #f #t #f)test (#f #f #f #f #f #f #f #f #t)#() (#f #f #f #f #f #f #f #f #t)#(a b c) SECTION(4 1 2) (quote (quote a)) ==> (quote a) (quote (quote a)) ==> (quote a) SECTION(4 1 3) (# 3 4) ==> 12 SECTION(4 1 4) (# "r4rstest.scm": (x) (+ x x)> 4) ==> 8 (# 7 10) ==> 3 (# "r4rstest.scm": (y) (+ x y)> 6) ==> 10 (# "r4rstest.scm": x x> 3 4 5 6) ==> (3 4 5 6) (# "r4rstest.scm": (x y . z) z> 3 4 5 6) ==> (5 6) SECTION(4 1 5) (if yes) ==> yes (if no) ==> no (if 1) ==> 1 SECTION(4 1 6) (define 3) ==> 3 (set! 5) ==> 5 SECTION(4 2 1) (cond greater) ==> greater (cond equal) ==> equal (cond 2) ==> 2 (case composite) ==> composite (case consonant) ==> consonant (and #t) ==> #t (and #f) ==> #f (and (f g)) ==> (f g) (and #t) ==> #t (or #t) ==> #t (or #t) ==> #t (or #f) ==> #f (or #f) ==> #f (or (b c)) ==> (b c) SECTION(4 2 2) (let 6) ==> 6 (let 35) ==> 35 (let* 70) ==> 70 (letrec #t) ==> #t (let 5) ==> 5 (let 34) ==> 34 (let 6) ==> 6 (let 34) ==> 34 (let 34) ==> 34 (let* 7) ==> 7 (let* 34) ==> 34 (let* 8) ==> 8 (let* 34) ==> 34 (letrec 9) ==> 9 (letrec 34) ==> 34 (letrec 10) ==> 10 (letrec 34) ==> 34 SECTION(4 2 3) (begin 6) ==> 6 SECTION(4 2 4) (do #(0 1 2 3 4)) ==> #(0 1 2 3 4) (do 25) ==> 25 (do 25) ==> 25 (let 1) ==> 1 (let ((6 1 3) (-5 -2))) ==> ((6 1 3) (-5 -2)) (let -1) ==> -1 SECTION(4 2 6) (quasiquote (list 3 4)) ==> (list 3 4) (quasiquote (list a (quote a))) ==> (list a (quote a)) (quasiquote (a 3 4 5 6 b)) ==> (a 3 4 5 6 b) (quasiquote ((foo 7) . cons)) ==> ((foo 7) . cons) (quasiquote #(10 5 2 4 3 8)) ==> #(10 5 2 4 3 8) (quasiquote 5) ==> 5 (quasiquote (a (quasiquote (b (unquote (+ 1 2)) (unquote (foo 4 d)) e)) f)) ==> (a (quasiquote (b (unquote (+ 1 2)) (unquote (foo 4 d)) e)) f) (quasiquote (a (quasiquote (b (unquote x) (unquote (quote y)) d)) e)) ==> (a (quasiquote (b (unquote x) (unquote (quote y)) d)) e) (quasiquote (list 3 4)) ==> (list 3 4) (quasiquote (quasiquote (list (unquote (+ 1 2)) 4))) ==> (quasiquote (list (unquote (+ 1 2)) 4)) SECTION(5 2 1) (tprint #t) ==> #t (define 6) ==> 6 (define 1) ==> 1 (define 9) ==> 9 (define 9) ==> 9 (define 10) ==> 10 (# 6) ==> (3 6) (# 6) ==> 9 SECTION(5 2 2) (define 45) ==> 45 (#) ==> 5 (define 34) ==> 34 (#) ==> 5 (define 34) ==> 34 (# 88) ==> 88 (# 4) ==> 4 (define 34) ==> 34 (internal-define 99) ==> 99 (internal-define 77) ==> 77 SECTION(6 1) (# #t) ==> #f (# 3) ==> #f (# (3)) ==> #f (# #f) ==> #t (# ()) ==> #f (# ()) ==> #f (# nil) ==> #f SECTION(6 2) (# a a) ==> #t (# a b) ==> #f (# 2 2) ==> #t (# () ()) ==> #t (# 10000 10000) ==> #t (# (1 . 2) (1 . 2)) ==> #f (# # "r4rstest.scm": () 1> # "r4rstest.scm": () 2>) ==> #f (# #f nil) ==> #f (# # "r4rstest.scm": (x) x> # "r4rstest.scm": (x) x>) ==> #t (# # "r4rstest.scm": () (set! n (+ n 1)) n> # "r4rstest.scm": () (set! n (+ n 1)) n>) ==> #t (# # "r4rstest.scm": () (set! n (+ n 1)) n> # "r4rstest.scm": () (set! n (+ n 1)) n>) ==> #f (# # "r4rstest.scm": () (if (eqv? f g) (quote f) (quote both))> # "r4rstest.scm": () (if (eqv? f g) (quote g) (quote both))>) ==> #f (# a a) ==> #t (# (a) (a)) ==> #f (# () ()) ==> #t (# # #) ==> #t (# (a) (a)) ==> #t (# #() #()) ==> #t (# # "r4rstest.scm": (x) x> # "r4rstest.scm": (x) x>) ==> #t (# a a) ==> #t (# (a) (a)) ==> #t (# (a (b) c) (a (b) c)) ==> #t (# "abc" "abc") ==> #t (# 2 2) ==> #t (# #(a a a a a) #(a a a a a)) ==> #t SECTION(6 3) (dot (a b c d e)) ==> (a b c d e) (# (a b c)) ==> #t (set-cdr! (a . 4)) ==> (a . 4) (# (a . 4) (a . 4)) ==> #t (dot (a b c . d)) ==> (a b c . d) (# (a . 4)) ==> #f (list? #f) ==> #f (# a ()) ==> (a) (# (a) (b c d)) ==> ((a) b c d) (# "a" (b c)) ==> ("a" b c) (# a 3) ==> (a . 3) (# (a b) c) ==> ((a b) . c) (# (a b c)) ==> a (# ((a) b c d)) ==> (a) (# (1 . 2)) ==> 1 (# ((a) b c d)) ==> (b c d) (# (1 . 2)) ==> 2 (# a 7 c) ==> (a 7 c) (#) ==> () (# (a b c)) ==> 3 (# (a (b) (c d e))) ==> 3 (# ()) ==> 0 (# (x) (y)) ==> (x y) (# (a) (b c d)) ==> (a b c d) (# (a (b)) ((c))) ==> (a (b) (c)) (#) ==> () (# (a b) (c . d)) ==> (a b c . d) (# () a) ==> a (# (a b c)) ==> (c b a) (# (a (b c) d (e (f)))) ==> ((e (f)) d (b c) a) (# (a b c d) 2) ==> c (# a (a b c)) ==> (a b c) (# b (a b c)) ==> (b c) (# a (b c d)) ==> #f (# (a) (b (a) c)) ==> #f (# (a) (b (a) c)) ==> ((a) c) (# 101 (100 101 102)) ==> (101 102) (# a ((a 1) (b 2) (c 3))) ==> (a 1) (# b ((a 1) (b 2) (c 3))) ==> (b 2) (# d ((a 1) (b 2) (c 3))) ==> #f (# (a) (((a)) ((b)) ((c)))) ==> #f (# (a) (((a)) ((b)) ((c)))) ==> ((a)) (# 5 ((2 3) (5 7) (11 13))) ==> (5 7) SECTION(6 4) (# a) ==> #t (standard-case #t) ==> #t (standard-case #t) ==> #t (#string> flying-fish) ==> "flying-fish" (#string> martin) ==> "martin" (#string> \Malvina) ==> "Malvina" (standard-case #t) ==> #t (string-set! "cb") ==> "cb" (#string> ab) ==> "ab" (#symbol> "ab") ==> ab (# mississippi mississippi) ==> #t (string->symbol #f) ==> #f (#symbol> "jollywog") ==> jollywog SECTION(6 5 5) (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #t (# 3) ==> #f (# 0 0) ==> 1 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> 0 1) ==> 0 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> 0 256) ==> 0 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -1 256) ==> 1 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -1 255) ==> -1 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -1 -256) ==> 1 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -1 -255) ==> -1 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> 256 0) ==> 1 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -256 0) ==> 1 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> 256 1) ==> 256 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -256 1) ==> -256 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> 2 3) ==> 8 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -2 3) ==> -8 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> 3 2) ==> 9 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> -3 2) ==> 9 (# 22 22 22) ==> #t (# 22 22) ==> #t (# 34 34 35) ==> #f (# 34 35) ==> #f (#> 3 -6246) ==> #t (#> 9 9 -2424) ==> #f (#=> 3 -4 -6246) ==> #t (#=> 9 9) ==> #t (#=> 8 9) ==> #f (# -1 2 3 4 5 6 7 8) ==> #t (# -1 2 3 4 4 5 6 7) ==> #f (# -1 2 3 4 5 6 7 8) ==> #t (# -1 2 3 4 4 5 6 7) ==> #t (# 1 3 2) ==> #f (#=> 1 3 2) ==> #f (# 0) ==> #t (# 1) ==> #f (# -1) ==> #f (# -100) ==> #f (# 4) ==> #t (# -4) ==> #f (# 0) ==> #f (# 4) ==> #f (# -4) ==> #t (# 0) ==> #f (# 3) ==> #t (# 2) ==> #f (# -4) ==> #f (# -1) ==> #t (# 3) ==> #f (# 2) ==> #t (# -4) ==> #t (# -1) ==> #f (# 34 5 7 38 6) ==> 38 (# 3 5 5 330 4 -24) ==> -24 (# 3 4) ==> 7 (# 3) ==> 3 (#) ==> 0 (# 4) ==> 4 (#) ==> 1 (# 1) ==> 1 (# -1) ==> -1 (# 6 3) ==> 2 (# 6 -2) ==> -3 (# -6 2) ==> -3 (# -6 -2) ==> 3 (# 3 4) ==> -1 (# 3) ==> -3 (# -7) ==> 7 (# 7) ==> 7 (# 0) ==> 0 (# 35 7) ==> 5 (# -35 7) ==> -5 (# 35 -7) ==> -5 (# -35 -7) ==> 5 (# 13 4) ==> 1 (# 13 4) ==> 1 (# -13 4) ==> 3 (# -13 4) ==> -1 (# 13 -4) ==> -3 (# 13 -4) ==> 1 (# -13 -4) ==> -1 (# -13 -4) ==> -1 (# 0 86400) ==> 0 (# 0 -86400) ==> 0 (# 238 9) ==> #t (# -238 9) ==> #t (# 238 -9) ==> #t (# -238 -9) ==> #t (# 0 4) ==> 4 (# -4 0) ==> 4 (# 32 -36) ==> 4 (#) ==> 0 (# 32 -36) ==> 288 (#) ==> 1 SECTION(6 5 5) (#number "r4rstest.scm": (str) (#@define ((ans (string->number str))) (# ((# (# (# #:31001d264860>) ((#) (# #f #f)) ((# (# . #)) (# . #)) ((# (# #:31001d264860> #) . #) (# ((# #)) (# # (# #) (# . #)))) ((# (#) . #) (# # (# . #))) ((# (# . #) . #) (# # (# . #) (# . #)))))) (# ((not ans) #t) ((number? ans) #t) (else ans))))> "+#.#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (# ((number? ans) #t) (else ans)))))> "-#.#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (# ((number? ans) #t) (else ans)))))> "#.#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (# ((number? ans) #t) (else ans)))))> "1/0") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "-1/0") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "0/0") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "+1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "-1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "0/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "0/0-0/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "1/0-1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "-1/0+1/0i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "#i") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "#e") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "#") ==> #t (#number "r4rstest.scm": (str) (#@define ((ans (#@string->number #@str))) (#@let-syntax ((6 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (ans . #@define) (str) 2 test-string->number 1 "r4rstest.scm") (#@if (#@not #@ans) (#@begin #t) (#@if (#@number? #@ans) (#@begin #t) (# (else ans))))))> "#i0/0") ==> #t (# 0.-1.i) ==> #t (# 0.+1.i) ==> #t (# 2.+1.i) ==> #t SECTION(6 5 9) (#string> 0) ==> "0" (#string> 100) ==> "100" (#string> 256 16) ==> "100" (#number> "100") ==> 100 (#number> "100" 16) ==> 256 (#number> "") ==> #f (#number> ".") ==> #f (#number> "d") ==> #f (#number> "D") ==> #f (#number> "i") ==> #f (#number> "I") ==> #f (#number> "3i") ==> #f (#number> "3I") ==> #f (#number> "33i") ==> #f (#number> "33I") ==> #f (#number> "3.3i") ==> #f (#number> "3.3I") ==> #f (#number> "-") ==> #f (#number> "+") ==> #f (string->number #t) ==> #t (string->number #t) ==> #t SECTION(6 6) (# #\space #\space) ==> #t (# #\space #\space) ==> #t (# #\a) ==> #t (# #\() ==> #t (# #\space) ==> #t (# #\nl) ==> #t (# #\A #\B) ==> #f (# #\a #\b) ==> #f (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (# #\A #\B) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #f (#?> #\A #\B) ==> #f (#?> #\a #\b) ==> #f (#?> #\9 #\0) ==> #t (#?> #\A #\A) ==> #f (# #\A #\B) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (#=?> #\A #\B) ==> #f (#=?> #\a #\b) ==> #f (#=?> #\9 #\0) ==> #t (#=?> #\A #\A) ==> #t (# #\A #\B) ==> #f (# #\a #\B) ==> #f (# #\A #\b) ==> #f (# #\a #\b) ==> #f (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (# #\A #\a) ==> #t (# #\A #\B) ==> #t (# #\a #\B) ==> #t (# #\A #\b) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #f (# #\A #\a) ==> #f (#?> #\A #\B) ==> #f (#?> #\a #\B) ==> #f (#?> #\A #\b) ==> #f (#?> #\a #\b) ==> #f (#?> #\9 #\0) ==> #t (#?> #\A #\A) ==> #f (#?> #\A #\a) ==> #f (# #\A #\B) ==> #t (# #\a #\B) ==> #t (# #\A #\b) ==> #t (# #\a #\b) ==> #t (# #\9 #\0) ==> #f (# #\A #\A) ==> #t (# #\A #\a) ==> #t (#=?> #\A #\B) ==> #f (#=?> #\a #\B) ==> #f (#=?> #\A #\b) ==> #f (#=?> #\a #\b) ==> #f (#=?> #\9 #\0) ==> #t (#=?> #\A #\A) ==> #t (#=?> #\A #\a) ==> #t (# #\a) ==> #t (# #\A) ==> #t (# #\z) ==> #t (# #\Z) ==> #t (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #f (# #\;) ==> #f (# #\a) ==> #f (# #\A) ==> #f (# #\z) ==> #f (# #\Z) ==> #f (# #\0) ==> #t (# #\9) ==> #t (# #\space) ==> #f (# #\;) ==> #f (# #\a) ==> #f (# #\A) ==> #f (# #\z) ==> #f (# #\Z) ==> #f (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #t (# #\;) ==> #f (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #f (# #\;) ==> #f (# #\0) ==> #f (# #\9) ==> #f (# #\space) ==> #f (# #\;) ==> #f (#char> 46) ==> #\. (#char> 65) ==> #\A (#char> 97) ==> #\a (# #\A) ==> #\A (# #\a) ==> #\A (# #\A) ==> #\a (# #\a) ==> #\a SECTION(6 7) (# "The word \"recursion\\\" has many meanings.") ==> #t (string-set! "?**") ==> "?**" (# #\a #\b #\c) ==> "abc" (#) ==> "" (# "abc") ==> 3 (# "abc" 0) ==> #\a (# "abc" 2) ==> #\c (# "") ==> 0 (# "ab" 0 0) ==> "" (# "ab" 1 1) ==> "" (# "ab" 2 2) ==> "" (# "ab" 0 1) ==> "a" (# "ab" 1 2) ==> "b" (# "ab" 0 2) ==> "ab" (# "foo" "bar") ==> "foobar" (# "foo") ==> "foo" (# "foo" "") ==> "foo" (# "" "foo") ==> "foo" (#) ==> "" (# 0) ==> "" (# "" "") ==> #t (# "" "") ==> #f (#?> "" "") ==> #f (# "" "") ==> #t (#=?> "" "") ==> #t (# "" "") ==> #t (# "" "") ==> #f (#?> "" "") ==> #f (# "" "") ==> #t (#=?> "" "") ==> #t (# "A" "B") ==> #f (# "a" "b") ==> #f (# "9" "0") ==> #f (# "A" "A") ==> #t (# "A" "B") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #f (#?> "A" "B") ==> #f (#?> "a" "b") ==> #f (#?> "9" "0") ==> #t (#?> "A" "A") ==> #f (# "A" "B") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #t (#=?> "A" "B") ==> #f (#=?> "a" "b") ==> #f (#=?> "9" "0") ==> #t (#=?> "A" "A") ==> #t (# "A" "B") ==> #f (# "a" "B") ==> #f (# "A" "b") ==> #f (# "a" "b") ==> #f (# "9" "0") ==> #f (# "A" "A") ==> #t (# "A" "a") ==> #t (# "A" "B") ==> #t (# "a" "B") ==> #t (# "A" "b") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #f (# "A" "a") ==> #f (#?> "A" "B") ==> #f (#?> "a" "B") ==> #f (#?> "A" "b") ==> #f (#?> "a" "b") ==> #f (#?> "9" "0") ==> #t (#?> "A" "A") ==> #f (#?> "A" "a") ==> #f (# "A" "B") ==> #t (# "a" "B") ==> #t (# "A" "b") ==> #t (# "a" "b") ==> #t (# "9" "0") ==> #f (# "A" "A") ==> #t (# "A" "a") ==> #t (#=?> "A" "B") ==> #f (#=?> "a" "B") ==> #f (#=?> "A" "b") ==> #f (#=?> "a" "b") ==> #f (#=?> "9" "0") ==> #t (#=?> "A" "A") ==> #t (#=?> "A" "a") ==> #t SECTION(6 8) (# #(0 (2 2 2 2) "Anna")) ==> #t (# a b c) ==> #(a b c) (#) ==> #() (# #(0 (2 2 2 2) "Anna")) ==> 3 (# #()) ==> 0 (# #(1 1 2 3 5 8 13 21) 5) ==> 8 (vector-set #(0 ("Sue" "Sue") "Anna")) ==> #(0 ("Sue" "Sue") "Anna") (# 2 hi) ==> #(hi hi) (# 0) ==> #() (# 0 a) ==> #() SECTION(6 9) (# #) ==> #t (# car) ==> #f (# # "r4rstest.scm": (x) (* x x)>) ==> #t (# (lambda (x) (* x x))) ==> #f (# #) ==> #t (# #) ==> #t (# # (3 4)) ==> 7 (# # "r4rstest.scm": (a b) (+ a b)> (3 4)) ==> 7 (# # 10 (3 4)) ==> 17 (# # ()) ==> () (# "r4rstest.scm": args (f (apply g args))> 12 75) ==> 30 (# # ((a b) (d e) (g h))) ==> (b e h) (# # (1 2 3) (4 5 6)) ==> (5 7 9) (# # (1 2 3)) ==> (1 2 3) (# # (1 2 3)) ==> (1 2 3) (# # (1 2 3)) ==> (-1 -2 -3) (for-each #(0 1 4 9 16)) ==> #(0 1 4 9 16) (# # "r4rstest.scm": (exit) (for-each (lambda (x) (if (negative? x) (exit x))) (quote (54 0 37 -3 245 19))) #t>) ==> -3 (# (1 2 3 4)) ==> 4 (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (obj) 2 (r) 2 (return) 2 (obj) 2 list-length 1 "r4rstest.scm") (#@if (#@null? #@obj) (#@begin 0) (#@if (#@pair? #@obj) (#@+ (#@r (#@cdr #@obj)) 1) (# (else (return #f)))))))) (#@let () (#@r #@obj)))))> (a b . c)) ==> #f (# # ()) ==> () SECTION(6 10 1) (# #) ==> #t (# #) ==> #t (# "r4rstest.scm" #) ==> #t (# #) ==> #t SECTION(6 10 2) (# #) ==> #\; (# #) ==> #\; (# #) ==> (define cur-section (quote ())) (# #) ==> #\( (# #) ==> (define errs (quote ())) SECTION(6 10 3) (# "tmp1" # "r4rstest.scm": (test-file) (write-char #\; test-file) (display #\; test-file) (display ";" test-file) (write write-test-obj test-file) (newline test-file) (write load-test-obj test-file) (output-port? test-file)>) ==> #t (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) (# #) ==> #t (# #) ==> #t (input-port? #t) ==> #t (# #) ==> #\; (# #) ==> #\; (# #) ==> #\; (# #) ==> (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)) (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) (# #) ==> #t (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) (# #) ==> #t (# #) ==> #t (input-port? #t) ==> #t (# #) ==> #\; (# #) ==> #\; (# #) ==> #\; (# #) ==> (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)) (# #) ==> (define foo (quote (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)))) Passed all tests ;testing inexact numbers; SECTION(6 2) (# 1 1.) ==> #f (# 0 0.) ==> #f (# 0. 0.) ==> #t (# 0. 0.) ==> #t (# 0. 0.) ==> #t (# 0. 0.) ==> #t (# 0. 0.) ==> #t SECTION(6 5 5) (magnitude 1.) ==> 1. (# 1.e300+1.e300i 4.e300+4.e300i) ==> 250.e-3 (magnitude 1.) ==> 1. (# 1.e-300+1.e-300i 4.e-300+4.e-300i) ==> 250.e-3 (# 0. 0.) ==> #t (# 0. 0.) ==> #t (# 0. 0.) ==> #t (# 3.9) ==> #t (max #t) ==> #t (# 3.9 4) ==> 4. (#inexact> 4) ==> 4. (#inexact> 4.) ==> 4. (#exact> 4) ==> 4 (#exact> 4.) ==> 4 (# -4.5) ==> -4. (# -3.5) ==> -4. (# -3.9) ==> -4. (# 0.) ==> 0. (# 250.e-3) ==> 0. (# 800.e-3) ==> 1. (# 3.5) ==> 4. (# 4.5) ==> 4. (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (# ((zero? z2) (+ 1 (* z1 z2))) ((and (real? z2) (real? z1) (positive? z1)) (real-expt z1 z2)) (else (exp (* (if (zero? z1) (real-part z2) z2) (log z1)))))))> 0. 1.) ==> 0. (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (#@if (#@zero? #@z2) (+ 1 (* z1 z2)) (#@if (#@let ((# (#@real? #@0+1))) (#@if #@# (#@let ((# (#@real? #@#))) (#@if #@# (#@let ((# (#@positive? #@#))) (#@if #@# # #f)) #f)) #f)) (real-expt z1 z2) (#@exp (#@* (#@if (#@zero? #@z1) (#@real-part #@z2) z2) (#@log #@z1)))))))> 0. 1) ==> 0. (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (#@if (#@zero? #@z2) (+ 1 (* z1 z2)) (#@if (#@let ((# (#@real? #@0+1))) (#@if #@# (#@let ((# (#@real? #@#))) (#@if #@# (#@let ((# (#@positive? #@#))) (#@if #@# # #f)) #f)) #f)) (real-expt z1 z2) (#@exp (#@* (#@if (#@zero? #@z1) (#@real-part #@z2) z2) (#@log #@z1)))))))> 0 1.) ==> 0. (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (#@if (#@zero? #@z2) (+ 1 (* z1 z2)) (#@if (#@let ((# (#@real? #@0+1))) (#@if #@# (#@let ((# (#@real? #@#))) (#@if #@# (#@let ((# (#@positive? #@#))) (#@if #@# # #f)) #f)) #f)) (real-expt z1 z2) (#@exp (#@* (#@if (#@zero? #@z1) (#@real-part #@z2) z2) (#@log #@z1)))))))> -25 0.) ==> 1. (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (#@if (#@zero? #@z2) (#@+ 1 (#@* #@z1 #@z2)) (#@if (#@let ((# (#@real? #@0+1))) (#@if #@# (#@let ((# (#@real? #@#))) (#@if #@# (#@let ((# (#@positive? #@#))) (#@if #@# # #f)) #f)) #f)) (real-expt z1 z2) (#@exp (#@* (#@if (#@zero? #@z1) (#@real-part #@z2) z2) (#@log #@z1)))))))> -3.25 0.) ==> 1. (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (z1 z2) 2 expt 1 "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm") (#@if (#@let ((# (#@exact? #@0+1))) (#@if #@# (#@let ((# (#@not (#@let ((# (#@zero? #@#))) (#@if #@# (#@let ((# (#@negative? #@2+1))) (#@if #@# # #f)) #f))))) (#@if #@# #@# #f)) #f)) (#@integer-expt #@z1 #@z2) (#@if (#@zero? #@z2) (#@+ 1 (#@* #@z1 #@z2)) (#@if (#@let ((# (#@real? #@0+1))) (#@if #@# (#@let ((# (#@real? #@#))) (#@if #@# (#@let ((# (#@positive? #@#))) (#@if #@# # #f)) #f)) #f)) (real-expt z1 z2) (#@exp (#@* (#@if (#@zero? #@z1) (#@real-part #@z2) z2) (#@log #@z1)))))))> -3.25 0) ==> 1. (# 1 1) ==> 785.3981633974483e-3 (# "tmp3" # "r4rstest.scm": (test-file) (write-char #\; test-file) (display #\; test-file) (display ";" test-file) (write write-test-obj test-file) (newline test-file) (write load-test-obj test-file) (output-port? test-file)>) ==> #t (# #) ==> (define foo (quote (250.e-3 -3.25))) (# #) ==> #t (# #) ==> #t (input-port? #t) ==> #t (# #) ==> #\; (# #) ==> #\; (# #) ==> #\; (# #) ==> (250.e-3 -3.25) (# #) ==> (define foo (quote (250.e-3 -3.25))) (pentium-fdiv-bug #t) ==> #t Passed all tests SECTION(6 5 6) (float-print-test #t) ==> #t (mult-float-print-test #t) ==> #t (mult-float-print-test #t) ==> #t (mult-float-print-test #t) ==> #t (mult-float-print-test #t) ==> #t (mult-float-print-test #t) ==> #t (# ((# (# () ((# #) #) ((# # #) #))) (# (# () ((#) (# #f #f)) ((# . #) (# . #))))) (# # ((cnt -323)) (# (> cnt 308) (# success) (# (let* ((estr (string-append "1.e" (number->string cnt))) (num (string->number estr)) (str (number->string num))) (cond ((or (>= (string-length str) 10) (not (equal? (string->number str) num))) (set! success #f) (for-each write (list estr num str (string->number str)))))) (# (# cnt (+ 1 cnt))))))))>) ==> #t (# ((# (# () ((# #) #) ((# # #) #))) (# (# () ((#) (# #f #f)) ((# . #) (# . #))))) (# # ((xx (expt f2.0 1000)) (p 1000)) (# (zero? xx) (# all-ok?) (# (let ((cnv (string->number (number->string xx)))) (cond ((not (= xx cnv)) (display "Number readback failure for ") (display (quasiquote (expt (unquote f2.0) (unquote p)))) (newline) (display xx) (newline) (set! all-ok? #f)))) (# (# xx (/ xx 2)) (# p (+ p -1))))))))>) ==> #t ;testing bignums; SECTION(6 5 7) (# 33333333333333333333 3) ==> 0 (# 33333333333333333333 -3) ==> 0 (# 33333333333333333333 3) ==> 0 (# 33333333333333333333 -3) ==> 0 (# 33333333333333333332 3) ==> 2 (# 33333333333333333332 -3) ==> -1 (# 33333333333333333332 3) ==> 2 (# 33333333333333333332 -3) ==> 2 (# -33333333333333333332 3) ==> 1 (# -33333333333333333332 -3) ==> -2 (# -33333333333333333332 3) ==> -2 (# -33333333333333333332 -3) ==> -2 (# 3 33333333333333333333) ==> 3 (# -3 33333333333333333333) ==> 33333333333333333330 (# 3 33333333333333333333) ==> 3 (# -3 33333333333333333333) ==> -3 (# 3 -33333333333333333333) ==> -33333333333333333330 (# -3 -33333333333333333333) ==> -3 (# 3 -33333333333333333333) ==> 3 (# -3 -33333333333333333333) ==> -3 (# -2177452800 86400) ==> 0 (# 2177452800 -86400) ==> 0 (# 2177452800 86400) ==> 0 (# -2177452800 -86400) ==> 0 (# 0 -2177452800) ==> 0 (remainder #t) ==> #t (remainder #t) ==> #t (# 33333333333333333333 11111111111111111111) ==> 11111111111111111111 (# 33333333333333333332 11111111111111111111) ==> 1 (# 33333333333333333330 11111111111111111111) ==> 1 (# 33333333333333333333 33333333333333333330) ==> 3 (# 33333333333333333333 11111111111111111111) ==> 33333333333333333333 (# -3 11111111111111111111) ==> 33333333333333333333 SECTION(6 5 8) (#string> 281474976710655325431) ==> "281474976710655325431" Passed all tests ;testing bignum-inexact comparisons; SECTION(6 5 5) (# 1427247692705959881058285969449495136382746625 1.42724769270596e45 1427247692705959881058285969449495136382746623) ==> #f (# 1.42724769270596e45 1427247692705959881058285969449495136382746625 1427247692705959881058285969449495136382746623) ==> #f (# 1427247692705959881058285969449495136382746623 1.42724769270596e45 1427247692705959881058285969449495136382746625) ==> #t To fully test continuations, Scheme 4, and DELAY/FORCE do: (test-cont) (test-sc4) (test-delay) ;testing scheme 4 functions; SECTION(6 7) (#list> "P l") ==> (#\P #\space #\l) (#list> "") ==> () (#string> (#\1 #\\ #\")) ==> "1\\\"" (#string> ()) ==> "" SECTION(6 8) (#list> #(dah dah didah)) ==> (dah dah didah) (#list> #()) ==> () (#vector> (dididit dah)) ==> #(dididit dah) (#vector> ()) ==> #() SECTION(6 10 4) (load (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c))) ==> (#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c)) Passed all tests ;testing continuations; SECTION(6 9) (# (eot) (# ((xf (next-leaf-generator x eot)) (yf (next-leaf-generator y eot))) (letrec ((loop (lambda (x y) (cond ((not (eq? x y)) #f) ((eq? eot x) #t) (else (loop (xf) (yf))))))) (loop (xf) (yf))))) (list (quote eot)))> (a (b (c))) ((a) b c)) ==> #t (# . # "/wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm": (x-use env-use) (#@let* ((x-use (#@remove-line-numbers! #@x-use))) ((#@let ((loop (#@lambda (rules) (#@cond ((#@null? #@rules) (error "macro use does not match definition:" x-use)) ((#@match (#@car #@rules) #@x-use #@env-use) #@=> (#@lambda (vars) (#@substitute-in-template #@x-use (#@car #@rules) #@vars #@env-def))) (#t (#@loop (#@cdr #@rules))))))) #@loop) #@rules))>>)) (x y) 2 (loop) 2 (yf) 2 (xf) 2 (eot) 2 (x y) 2 leaf-eq? 1 "r4rstest.scm") (#@if (#@not (#@eq? #@x #@y)) (#@begin #f) (#@if (#@eq? #@eot #@x) (#@begin #t) (#@loop (#@xf) (#@yf))))))) (#@let () (#@loop (#@xf) (#@yf)))))))> (a (b (c))) ((a) b c d)) ==> #f Passed all tests ;testing DELAY and FORCE; SECTION(6 9) (delay 3) ==> 3 (delay (3 3)) ==> (3 3) (delay 2) ==> 2 (# # "syntest2.scm": () (#@if #@result (#@car #@result) (#@let ((x (#@result))) (#@if #@result (car result) (#@begin (#@set! #@result (#@list #@x)) #@x))))>) ==> 6 (# # "syntest2.scm": () (#@if #@result (#@car #@result) (#@let ((x (#@result))) (#@if #@result (#@car #@result) (#@begin (#@set! #@result (#@list #@x)) #@x))))>) ==> 6 (force 3) ==> 3 Passed all tests (let ((x (quote outer))) (let-syntax ((m (syntax-rules () ((m) x)))) (let ((x (quote inner))) (m)))) ==> outer (let-syntax ((when (syntax-rules () ((when ?test ?stmt1 ?stmt2 ...) (if ?test (begin ?stmt1 ?stmt2 ...)))))) (let ((if #t)) (when if (set! if (quote now))) if)) ==> now (letrec-syntax ((or (syntax-rules () ((or) #f) ((or ?e) ?e) ((or ?e1 ?e2 ...) (let ((temp ?e1)) (if temp temp (or ?e2 ...))))))) (let ((x #f) (y 7) (temp 8) (let odd?) (if even?)) (or x (let temp) (if y) y))) ==> 7 (let ((=> #f)) (cond (#t => (quote ok)))) ==> ok (define-syntax set*! (syntax-rules () ((set*! (?var ?val) ...) (set*!-help (?val ...) () (?var ?val) ...)))) (define-syntax set*!-help (syntax-rules () ((set*!-help () (?temp ...) (?var ?val) ...) (let ((?temp ?val) ...) (set! ?var ?temp) ...)) ((set*!-help (?var1 ?var2 ...) ?temps ?assignments ...) (set*!-help (?var2 ...) (temp . ?temps) ?assignments ...)))) (let ((x 3) (y 4) (z 5)) (set*! (x (+ x y z)) (y (- x y z)) (z (* x y z))) (list x y z)) ==> (12 -6 60) (let ((else #f)) (cond (#f 3) (else 4) (#t 5))) ==> 5 (define-syntax push (syntax-rules () ((push item place) (set! place (cons item place))))) (let* ((cons (lambda (name) (case name ((phil) (quote (three-card monte))) ((dick) (quote (secret plan to end the war agnew not a crook))) ((jimmy) (quote (why not the best))) ((ron) (quote (abolish the draft balance the budget))) (else (quote ()))))) (scams (cons (quote phil)))) (push (car (cons (quote jimmy))) scams) (push (cadr (cons (quote ron))) scams) scams) ==> (balance the budget why not the best three-card monte) (define-syntax replic (syntax-rules () ((_ (?x ...) (?y ...)) (let ((?x (list ?y ...)) ...) (list ?x ...))))) (replic (x y z) (1 2)) ==> ((1 2) (1 2) (1 2)) Passed all tests Load "syntest2" to rewrite derived expressions and test =========================================================================== =================================================== ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> scm-5f3_1 depends on file: /usr/local/share/slib/require.scm - found ===> scm-5f3_1 depends on executable: indexinfo - found =========================================================================== =================================================== ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Staging for scm-5f3_1 ===> Generating temporary packing list install -s -m 555 /wrkdirs/usr/ports/lang/scm/work/scm-5f3/scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/scmlit /wrkdirs/usr/ports/lang/scm/work/stage/usr/local/bin install -m 444 /wrkdirs/usr/ports/lang/scm/work/scm-5f3/scm.1 /wrkdirs/usr/ports/lang/scm/work/stage/usr/local/share/man/man1 install -m 0644 /wrkdirs/usr/ports/lang/scm/work/require.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/COPYING /wrkdirs/usr/ports/lang/scm/work/scm-5f3/COPYING.LESSER /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Iedline.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Idiffer.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Init5f3.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Link.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macexp.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Macro.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Transcen.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/Tscript.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/build /wrkdirs/usr/ports/lang/scm/work/scm-5f3/build.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/compile.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/hobbit.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/mkimpcat.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/patchlvl.h /wrkdirs/usr/ports/lang/scm/work/scm-5f3/r4rstest.scm /wrkdirs/usr/ports/lang/scm/work/scm-5f3/scmhob.h /wrkdirs/usr/ports/lang/scm/work/scm-5f3/scmhob.scm /wrkdirs/usr/ports/lang/scm/work/stage/usr/local/lib/scm install -s -m 0644 /wrkdirs/usr/ports/lang/scm/work/scm-5f3/byte.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/bytenumb.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/differ.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/edline.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/gsubr.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/ioext.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/posix.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/ramap.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/record.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/rgx.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/sc2.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/socket.so /wrkdirs/usr/ports/lang/scm/work/scm-5f3/unix.so /wrkdirs/usr/ports/lang/scm/work/stage/usr/local/lib/scm /usr/bin/tar -C /wrkdirs/usr/ports/lang/scm/work/stage/usr/local/lib/scm -xf /portdistfiles/slib-psd1-3.tar.gz '*.scm' install -m 0644 /wrkdirs/usr/ports/lang/scm/work/scm-5f3/scm.info /wrkdirs/usr/ports/lang/scm/work/stage/usr/local/share/info ====> Compressing man pages (compress-man) =========================================================================== =================================================== ===== env: 'PKG_NOTES=build_timestamp ports_top_git_hash ports_top_checkout_unclean port_git_hash port_checkout_unclean built_by' 'PKG_NOTE_build_timestamp=2024-03-29T17:52:44+0000' 'PKG_NOTE_ports_top_git_hash=c2c35d895e' 'PKG_NOTE_ports_top_checkout_unclean=yes' 'PKG_NOTE_port_git_hash=85b8338a26' 'PKG_NOTE_port_checkout_unclean=no' 'PKG_NOTE_built_by=poudriere-git-3.4.99.20240122_1' NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Building packages for scm-5f3_1 ===> Building scm-5f3_1 =========================================================================== =>> Cleaning up wrkdir ===> Cleaning for scm-5f3_1 build of lang/scm | scm-5f3_1 ended at Fri Mar 29 17:53:00 GMT 2024 build time: 00:00:16