diff --git a/.gitignore b/.gitignore index da8168b..92e915b 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,11 @@ _$* *.ln core # CVS default ignores end +Makefile +configure +config.log +config.cache +config.status +scsh.image +scshvm +go diff --git a/COPYING b/COPYING index 704f0ba..f039ae7 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,8 @@ -Copyright (c) 1993-1999 Richard Kelsey and Jonathan Rees +Copyright (c) 1993-2002 Richard Kelsey and Jonathan Rees +Copyright (c) 1994-2002 by Olin Shivers and Brian D. Carlstrom. +Copyright (c) 1999-2002 by Martin Gasbichler. +Copyright (c) 2001-2002 by Michael Sperber. + All rights reserved. Redistribution and use in source and binary forms, with or without @@ -23,7 +27,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - Distributing Autoconf Output **************************** diff --git a/CVS_README b/CVS_README new file mode 100644 index 0000000..a677bc0 --- /dev/null +++ b/CVS_README @@ -0,0 +1,85 @@ + + + + Welcome to the Scsh CVS Repository !!! + + + +This file contains some instructions about how to build Scsh after you +freshly checked out the "scsh-0.6" module. These instructions do *not* +apply to the module named "scsh" or the Scsh distribution itself. + +There is currently no scheme to tag working snapshots of the +repository, so anything may happen during the build process. The scsh +team does in general *not* provide support for code obtained from the +CVS repository. + +During the build process a number of auto-generated files not included +in the CVS repository are built. It is highly recommended to follow +these instructions carefully as otherwise incompatible versions of +generated files may result. Note that you need GNU make for this +process. + +To build Scsh, proceed as follows: + +1.) You must have a working version of Scheme 48, version 0.53. Nothing + older, nothing newer. Just 0.53. If you don't have, get it from + http://www.s48.org/0.53/scheme48-0.53.tgz and install Scheme + 48. Change to value of the variable BUILD_RUNNABLE in Makefile.in + so that it will point to the Scheme 48 executable. + +2.) "cd" into the directory which contains the source code (normally + scsh-0.6) and run the script autogen.sh: + + ./autogen.sh + + This will take several minutes and generate the source code for + the virtual machine and two images the Makefile relies + on. Furthermore the configure file will be generated. This script + calls autoheader and autoconf from the GNU Autoconf package. You + will need a recent version of Autoconf. Version 2.52 is okay, + version 2.13 is too old. + +3.) Configure the system: + + ./configure + + You presumably want to add the --prefix flag here to determine the + installation directory. This will generate the Makefile. + +4.) Build the system: + + make + + If anything fails here, fix the problem and/or contact the authors. + +5.) You should have a runnable version of the system that can be + started in the main directory like this: + + ./go + +6.) To install Scsh, type: + + make install + + Note that it is not recommended to have a CVS version of Scsh for + daily use. + +7.) If you intend to build on a different platform later, do a + + make distclean + + and restart at step 3. + + +You should repeat the whole build process whenever there are changes +to files in the directories scheme/vm, scheme/rts or +scheme/bcomp. Watch the run of cvs update carefully and/or subscribe +to the list scsh-checkins@lists.sourceforge.net. + + +Enjoy!!! + + +The Scsh developers + diff --git a/INSTALL b/INSTALL index a85fdbb..915b7ff 100644 --- a/INSTALL +++ b/INSTALL @@ -1,120 +1,49 @@ - This is a generic INSTALL file for utilities distributions. -If this package does not come with, e.g., installable documentation or -data files, please ignore the references to them below. + Installing scsh - [For information specific to Scheme 48, see doc/install.txt.] - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation, and -creates the Makefile(s) (one in each subdirectory of the source -directory). In some packages it creates a C header file containing -system-dependent definitions. It also creates a file `config.status' -that you can run in the future to recreate the current configuration. - -To compile this package: +This file describes how to install scsh from the source package. If +you have obtained the source tree from CVS refer to the file +CVS_README. 1. Configure the package for your system. - Normally, you just `cd' to the directory containing the package's -source code and type `./configure'. If you're using `csh' on an old -version of System V, you might need to type `sh configure' instead to -prevent `csh' from trying to execute `configure' itself. + Just `cd' to the directory containing this README file and type - Running `configure' takes a minute or two. While it is running, it -prints some messages that tell what it is doing. If you don't want to -see the messages, run `configure' with its standard output redirected -to `/dev/null'; for example, `./configure >/dev/null'. + ./configure + + You can pass some additional options to the configure script, along + them the installation directory with the + --prefix=/my/install/location option. Type ./configure --help to + get a list of all switches. + Running `configure' takes a minute or two. While it is running, it + prints some messages that tell what it is doing. Consult the file + config.log if anything went wrong. - To compile the package in a different directory from the one -containing the source code, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. If -for some reason `configure' is not in the source code directory that -you are configuring, then it will report that it can't find the source -code. In that case, run `configure' with the option `--srcdir=DIR', -where DIR is the directory that contains the source code. +2. Type - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. Alternately, you can do so by consistently -giving a value for the `prefix' variable when you run `make', e.g., - make prefix=/usr/gnu - make prefix=/usr/gnu install + make + + to compile scsh. - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH' or set the `make' -variable `exec_prefix' to PATH, the package will use PATH as the prefix -for installing programs and libraries. Data files and documentation -will still use the regular prefix. Normally, all files are installed -using the same prefix. +3. After a successful build you can invoke scsh by typing - Some packages pay attention to `--with-PACKAGE' options to -`configure', where PACKAGE is something like `gnu-as' or `x' (for the X -Window System). The README should mention any `--with-' options that -the package recognizes. + ./go - `configure' ignores any other arguments that you give it. + You should see the command prompt of scsh which you can exit by + typing `,exit'. - On systems that require unusual options for compilation or linking -that the package's `configure' script does not know about, you can give -`configure' initial values for variables by setting them in the -environment. In Bourne-compatible shells, you can do that on the -command line like this: +4. Type - CC='gcc -traditional' LIBS=-lposix ./configure + make install - Here are the `make' variables that you might want to override with -environment variables when running `configure'. - - For these variables, any value given in the environment overrides the -value that `configure' would choose: - - - Variable: CC - C compiler program. The default is `cc'. - - - Variable: INSTALL - Program to use to install files. The default is `install' if you - have it, `cp' otherwise. - - For these variables, any value given in the environment is added to -the value that `configure' chooses: - - - Variable: DEFS - Configuration options, in the form `-Dfoo -Dbar...'. Do not use - this variable in packages that create a configuration header file. - - - Variable: LIBS - Libraries to link with, in the form `-lfoo -lbar...'. - - If you need to do unusual things to compile the package, we encourage -you to figure out how `configure' could check whether to do them, and -mail diffs or instructions to the address given in the README so we -can include them in the next release. - -2. Type `make' to compile the package. If you want, you can override -the `make' variables CFLAGS and LDFLAGS like this: - - make CFLAGS=-O2 LDFLAGS=-s - -3. If the package comes with self-tests and you want to run them, -type `make check'. If you're not sure whether there are any, try it; -if `make' responds with something like - make: *** No way to make target `check'. Stop. -then the package does not come with self-tests. - -4. Type `make install' to install programs, data files, and -documentation. + to install programs, data files, and documentation. 5. You can remove the program binaries and object files from the -source directory by typing `make clean'. To also remove the -Makefile(s), the header file containing system-dependent definitions -(if the package uses one), and `config.status' (all the files that -`configure' created), type `make distclean'. + source directory by typing `make clean'. To also remove the + Makefile, the header file containing system-dependent definitions + , `config.status' and `config.cache' (all the files that + `configure' created), type `make distclean'. - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need it if you want to regenerate -`configure' using a newer version of `autoconf'. +For more information about scsh have a look into the README file and +the documentation in the `doc/' directory. There you can also read +documentation about Scheme 48, the Scheme implementation scsh is based +on. diff --git a/Makefile.in b/Makefile.in index bfdd82c..fb3da76 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# Scheme 48 Makefile +# Scsh Makefile # Documentation in files INSTALL and doc/install.txt SHELL = /bin/sh @@ -14,18 +14,24 @@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ -LDFLAGS = @LDFLAGS@ +LDFLAGS = -g @LDFLAGS@ LIBOBJS = @LIBOBJS@ +RM = rm -f + +AR = @AR@ +RANLIB = @RANLIB@ + prefix = @prefix@ exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +incdir = @includedir@ +manext = 1 +mandir = @mandir@/man$(manext) ### End of `configure' section### -bindir = $(exec_prefix)/bin -libdir = $(exec_prefix)/lib -incdir = $(exec_prefix)/include -manext = 1 -mandir = $(prefix)/man/man$(manext) +htmldir = $(libdir)/scsh/doc/scsh-manual/html # HP 9000 series, if you don't have gcc # CC = cc @@ -36,10 +42,13 @@ mandir = $(prefix)/man/man$(manext) # LDFLAGS = -N .c.o: - $(CC) -c $(CPPFLAGS) $(DEFS) -I$(srcdir)/c $(CFLAGS) -o $@ $< + $(CC) -g -c $(DEFS) -I$(srcdir)/c -I$(srcdir)/cig $(CPPFLAGS) $(CFLAGS) -o $@ $< -# You might want to change RUNNABLE to "s48" -RUNNABLE = scheme48 +# BUILD_RUNNABLE has to be Scheme 48 0.53. This is used for builds directly +# out of the CVS repository. +# We cannot use Scsh here since -i is not understood. +BUILD_RUNNABLE = /afs/wsi/i386_fbsd32/bin/scheme48 +RUNNABLE = scsh MANPAGE = $(RUNNABLE).$(manext) LIB = $(libdir)/$(RUNNABLE) @@ -68,13 +77,19 @@ include $(srcdir)/build/filenames.make # LINKER_RUNNABLE = $(RUNNABLE) # These settings requires you to already have a $(RUNNABLE) # command. This is desirable if you are making changes to the -# system that might break scheme48vm and/or scheme48.image. But it +# system that might break scshvm and/or scsh/scsh.image. But it # requires you to have squirreled away a previous working version -# of scheme48. +# of scsh. + +BIG_HEAP = -h 5500000 +# 1. is broken if you build from CVS +# LINKER_VM = ./$(VM) $(BIG_HEAP) +# LINKER_RUNNABLE = $(LINKER_VM) -i $(IMAGE) + +# therefore according to 2. but we cannot use scsh since -i is not understood +LINKER_VM = $(BUILD_RUNNABLE) $(BIG_HEAP) +LINKER_RUNNABLE = $(BUILD_RUNNABLE) -BIG_HEAP = -h 5000000 -LINKER_VM = ./$(VM) $(BIG_HEAP) -LINKER_RUNNABLE = $(LINKER_VM) -i $(IMAGE) LINKER_IMAGE = build/linker.image LINKER = $(LINKER_VM) -i $(LINKER_IMAGE) START_LINKER = echo ',batch' && echo ',bench on' @@ -87,9 +102,55 @@ START_LINKER = echo ',batch' && echo ',bench on' IMAGE = scheme48.image INITIAL = build/initial.image -VM = scheme48vm +VM = scshvm +LIBCIG = cig/lib$(VM).a +CIG = cig/cig +CIGOBJS = cig/libcig.o cig/libcig1.o + +#scsh-lib +LIBSCSHVM = scsh/lib$(VM).a +LIBSCSH = scsh/libscsh.a +SCSHVMHACKS = scsh/proc2.o + +# +# +SCSHOBJS = \ + scsh/cstuff.o \ + scsh/dirstuff1.o \ + scsh/fdports1.o \ + scsh/flock1.o \ + scsh/machine/time_dep1.o \ + scsh/signals1.o \ + scsh/machine/libansi.o \ + scsh/network1.o \ + scsh/putenv.o \ + scsh/rx/regexp1.o \ + scsh/sleep1.o \ + scsh/syscalls1.o \ + scsh/syslog1.o \ + scsh/time1.o \ + scsh/tty1.o \ + scsh/userinfo1.o \ + scsh/sighandlers1.o \ + scsh/libscsh.o \ + scsh/md5.o + +SCSH_INITIALIZERS = s48_init_syslog s48_init_posix_regexp \ + s48_init_userinfo s48_init_sighandlers \ + s48_init_syscalls s48_init_network s48_init_flock \ + s48_init_dirstuff s48_init_time s48_init_tty \ + s48_init_cig s48_init_libscsh s48_init_md5 + UNIX_OBJS = c/unix/misc.o c/unix/io.o c/unix/fd-io.o c/unix/event.o -OBJS = c/scheme48vm.o c/scheme48heap.o c/extension.o c/external.o + +SRFI_OBJS = c/srfi/srfi-27.o + +SRFI_INITIALIZERS = s48_init_srfi_27 + +S48OBJS = c/scheme48vm.o c/scheme48heap.o c/extension.o c/external.o +OBJS = scsh/process_args.o c/init.o $(S48OBJS) $(CIGOBJS) $(SCSHOBJS) \ + $(SCSHVMHACKS) $(SRFI_OBJS) + FAKEHS = c/fake/dlfcn.h c/fake/sigact.h c/fake/strerror.h \ c/fake/sys-select.h @@ -102,7 +163,7 @@ CONFIG_FILES = scheme/interfaces.scm scheme/low-packages.scm \ # The following is the first rule and therefore the "make" command's # default target. -enough: $(VM) $(IMAGE) go .notify +enough: $(VM) $(IMAGE) go $(LIBCIG) scsh $(LIBSCSH) $(LIBSCSHVM) # -------------------- # External code to include in the VM @@ -110,7 +171,11 @@ enough: $(VM) $(IMAGE) go .notify EXTERNAL_OBJECTS = $(SOCKET_OBJECTS) $(LOOKUP_OBJECTS) EXTERNAL_FLAGS = $(SOCKET_FLAGS) -EXTERNAL_INITIALIZERS = $(SOCKET_INITIALIZERS) $(LOOKUP_INITIALIZERS) +EXTERNAL_INITIALIZERS = $(ADDITIONAL_INITIALIZER) $(SOCKET_INITIALIZERS) \ + $(LOOKUP_INITIALIZERS) \ + $(SCSH_INITIALIZERS) $(SRFI_INITIALIZERS) \ + s48_init_cig + # Rules for any external code. @@ -132,15 +197,48 @@ LOOKUP_OBJECTS = c/unix/dynamo.o LOOKUP_INITIALIZERS = s48_init_external_lookup # End of lookup rules + +# Initializer for s48_add_external_init + +ADDITIONAL_INITIALIZER = s48_init_additional_inits + # End of external rules # -------------------- # The developers are curious to know. Don't be concerned if this fails. .notify: build/minor-version-number touch .notify - -echo Another 0.`cat $(srcdir)/build/minor-version-number` \ - installation. \ - | mail scheme-48-notifications@martigny.ai.mit.edu + -echo SCSH 0.`cat $(srcdir)/scsh/minor-version-number` \ + Scheme48 0.`cat $(srcdir)/minor-version-number` infestation. \ + | mail scheme-48-notifications@zurich.ai.mit.edu + -echo Another scsh 0.`cat $(srcdir)/scsh/minor-version-number` \ + infestation. | mail scsh-notifications@zurich.ai.mit.edu + + +# This says how to process .scm files with cig to make .c stubs. +#.SUFFIXES: .scm +#.scm.c: +# $(srcdir)/$(VM) -o $(srcdir)/$(VM) -i $(CIG) < $< > $*.c + +# These .h files mediate between the code exported from foo1.c +# and imported into foo.scm's stub foo.c. + +scsh/dirstuff1.o: scsh/dirstuff1.h +scsh/userinfo1.o: scsh/userinfo1.h +scsh/network1o: scsh/network1.h +scsh/flock1.o: scsh/flock1.h + +scsh/fdports1.o scsh/fdports.o: scsh/fdports1.h + +scsh/rx/regexp1.o: c/scheme48.h + +scsh/sighandlers1.o: scsh/sighandlers1.h + +scsh/syslog1.o: c/scheme48.h + +include $(srcdir)/scsh/machine/Makefile.inc +# Berkeley make wants to see this instead: (or use GNU make on BSD. -bri) +#.include "$(srcdir)/scsh/machine/Makefile.inc" $(VM): c/main.o $(OBJS) $(UNIX_OBJS) $(LIBOBJS) $(EXTERNAL_OBJECTS) rm -f /tmp/s48_external_$$$$.c && \ @@ -148,15 +246,47 @@ $(VM): c/main.o $(OBJS) $(UNIX_OBJS) $(LIBOBJS) $(EXTERNAL_OBJECTS) $(EXTERNAL_INITIALIZERS) && \ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ c/main.o $(OBJS) $(UNIX_OBJS) \ /tmp/s48_external_$$$$.c \ - $(LIBOBJS) $(LIBS) \ - $(EXTERNAL_OBJECTS) $(EXTERNAL_LD_FLAGS) && \ + $(EXTERNAL_OBJECTS) $(EXTERNAL_LD_FLAGS) \ + $(LIBOBJS) $(LIBS) && \ rm -f /tmp/s48_external_$$$$.c -c/main.o: c/main.c c/scheme48vm.h c/scheme48heap.h + + + +#JMG: again cig and scsh-lib +$(LIBCIG): c/main.o $(OBJS) +# $(CC) -r -o $@ main.o $(OBJS) + $(RM) $@ + $(AR) $@ c/main.o $(OBJS) + $(RANLIB) $@ + +$(LIBSCSHVM): c/smain.o $(OBJS) + $(RM) $@ + $(AR) $@ c/smain.o $(OBJS) + $(RANLIB) $@ + +$(LIBSCSH): $(OBJS) $(UNIX_OBJS) $(LIBOBJS) $(EXTERNAL_OBJECTS) + $(RM) $@ \ + rm -f /tmp/s48_external_$$$$.c && \ + build/build-external-modules /tmp/s48_external_$$$$.c \ + $(EXTERNAL_INITIALIZERS) && \ + $(CC) -c $(CFLAGS) -o /tmp/s48_external_$$$$.o \ + /tmp/s48_external_$$$$.c && \ + $(AR) $@ $(OBJS) $(UNIX_OBJS) $(LIBOBJS) $(EXTERNAL_OBJECTS) \ + /tmp/s48_external_$$$$.o && \ + $(RANLIB) $@ && \ + rm -f /tmp/s48_external_$$$$.c /tmp/s48_external_$$$$.o + +c/main.o: c/main.c $(CC) -c $(CFLAGS) -o $@ \ -DDEFAULT_IMAGE_NAME=\"$(LIB)/$(IMAGE)\" \ $(CPPFLAGS) $(DEFS) c/main.c +c/init.o: c/init.c c/scheme48vm.h c/scheme48heap.h + $(CC) -c $(CFLAGS) -o $@ \ + -DDEFAULT_IMAGE_NAME=\"$(LIB)/$(IMAGE)\" \ + $(CPPFLAGS) $(DEFS) c/init.c + c/scheme48vm.o: c/prescheme.h c/scheme48vm.h c/scheme48heap.h c/event.h \ c/io.h c/fd-io.h c/scheme48vm-prelude.h c/scheme48heap.o: c/prescheme.h c/scheme48vm.h c/scheme48heap.h c/event.h \ @@ -187,43 +317,80 @@ $(IMAGE): $(VM) scheme/env/init-defpackage.scm scheme/more-interfaces.scm \ ### Fake targets: all clean install man dist -install: enough dirs inst-script inst-vm inst-misc inst-man inst-inc inst-image +install: enough dirs inst-script inst-vm inst-misc inst-man inst-inc \ + inst-doc install-scsh -inst-vm: +inst-vm: $(VM) $(INSTALL_PROGRAM) $(VM) $(LIB) -inst-image: - rm -f '/tmp/$(IMAGE)' && \ - build/build-usual-image . '$(LIB)' '/tmp/$(IMAGE)' './$(VM)' \ - '$(INITIAL)' && \ - $(INSTALL_DATA) /tmp/$(IMAGE) $(LIB) && \ - rm /tmp/$(IMAGE) - inst-man: if [ -d $(mandir) -a -w $(mandir) ]; then \ - sed 's=LBIN=$(bindir)=g' doc/scheme48.man | \ + sed 's=LBIN=$(bindir)=g' doc/scsh.man | \ sed 's=LLIB=$(LIB)=g' | \ - sed 's=LS48=$(RUNNABLE)=g' >$(MANPAGE) && \ + sed 's=LSCSH=$(RUNNABLE)=g' >$(MANPAGE) && \ $(INSTALL_DATA) $(MANPAGE) $(mandir) && \ - rm $(MANPAGE); \ + $(RM) $(MANPAGE); \ else \ echo "$(mandir) not writable dir, not installing man page" \ >&2; \ fi inst-inc: - $(INSTALL_DATA) c/scheme48.h $(incdir) + $(INSTALL_DATA) $(srcdir)/c/scheme48.h $(incdir) + $(INSTALL_DATA) $(srcdir)/c/write-barrier.h $(incdir) + +install-cig: cig + $(INSTALL_PROGRAM) $(srcdir)/$(CIG) $(LIB)/cig + $(INSTALL_PROGRAM) $(srcdir)/$(CIG).image $(LIB)/cig + $(INSTALL_DATA) $(srcdir)/$(LIBCIG) $(LIB)/cig + $(INSTALL_DATA) $(srcdir)/cig/libcig.h $(LIB)/cig inst-misc: - for stub in env big opt misc link; do \ + for stub in env big opt misc link srfi; do \ for f in scheme/$$stub/*.scm; do \ $(INSTALL_DATA) $$f $(LIB)/$$stub || exit 1; \ done; \ done && \ for f in scheme/rts/*num.scm scheme/rts/jar-defrecord.scm; do \ $(INSTALL_DATA) $$f $(LIB)/rts || exit 1; \ + done + +inst-doc: + for f in $(srcdir)/doc/*.txt $(srcdir)/doc/*.ps; do \ + $(INSTALL_DATA) $$f $(LIB)/doc/; \ + done && \ + for f in $(srcdir)/doc/src/*.tex \ + $(srcdir)/doc/src/*.dvi \ + $(srcdir)/doc/src/*.ps; \ + do $(INSTALL_DATA) $$f $(LIB)/doc/s48-manual/; \ + done && \ + for f in $(srcdir)/doc/src/manual/*.html; \ + do $(INSTALL_DATA) $$f $(LIB)/doc/s48-manual/html/; \ + done && \ + for f in $(srcdir)/doc/scsh-manual/*.tex \ + $(srcdir)/doc/scsh-manual/*.sty \ + $(srcdir)/doc/scsh-manual/*.dvi \ + $(srcdir)/doc/scsh-manual/*.ps \ + $(srcdir)/doc/scsh-manual/*.pdf; \ + do $(INSTALL_DATA) $$f $(LIB)/doc/scsh-manual/; \ + done && \ + for f in $(srcdir)/doc/scsh-manual/html/*.html \ + $(srcdir)/doc/scsh-manual/html/*.gif \ + $(srcdir)/doc/scsh-manual/html/*.css; \ + do $(INSTALL_DATA) $$f $(htmldir)/; \ + done && \ + for f in $(srcdir)/doc/scsh-paper/*.tex \ + $(srcdir)/doc/scsh-paper/*.sty \ + $(srcdir)/doc/scsh-paper/*.dvi \ + $(srcdir)/doc/scsh-paper/*.ps; \ + do $(INSTALL_DATA) $$f $(LIB)/doc/scsh-paper/; \ + done && \ + for f in $(srcdir)/doc/scsh-paper/html/*.html \ + $(srcdir)/doc/scsh-paper/html/*.css; \ + do $(INSTALL_DATA) $$f $(LIB)/doc/scsh-paper/html; \ done + inst-script: script=$(bindir)/$(RUNNABLE) && \ echo '#!/bin/sh' >$$script && \ @@ -233,46 +400,52 @@ inst-script: >>$$script && \ chmod +x $$script -# Script to run scheme48 in this directory. +# Script to run scsh in this directory. go: echo '#!/bin/sh' >$@ && \ echo >>$@ && \ echo "lib=`pwd`" >>$@ && \ - echo 'exec $$lib/$(VM) -o $$lib/$(VM) -i $$lib/$(IMAGE) "$$@"' \ + echo 'exec $$lib/$(VM) -o $$lib/$(VM) -i $$lib/scsh/scsh.image "$$@"' \ >>$@ && \ chmod +x $@ dirs: - for dir in $(libdir) $(bindir) $(incdir); do \ - [ -d $$dir -a -w $$dir ] || { \ - echo "$$dir not a writable directory" >&2; \ - exit 1; \ - }; \ - done - { mkdir -p $(LIB) && [ -w $(LIB) ]; } || { \ - echo "$(LIB) not a writable directory" >&2; \ - exit 1; \ - } - for dir in rts env big opt misc link; do \ - { mkdir -p $(LIB)/$$dir && [ -w $(LIB)/$$dir ]; } || { \ - echo "$(LIB)/$$dir not a writable directory" >&2; \ - exit 1; \ - }; \ + for dir in $(libdir) $(bindir) $(incdir) $(LIB) $(mandir) $(htmldir); do\ + { mkdir -p $$dir && [ -w $$dir ]; } || { \ + echo "$$dir not a writable directory" >&2; \ + exit 1; \ + } \ + done && \ + for dir in \ + rts env big opt misc link srfi scsh doc/scsh-manual \ + doc/s48-manual/html doc/scsh-paper/html cig; do \ + { mkdir -p $(LIB)/$$dir && [ -w $(LIB)/$$dir ]; } || { \ + echo "$(LIB)/$$dir not a writable directory" >&2; \ + exit 1; \ + }; \ done configure: configure.in autoheader && autoconf -clean: - -rm -f $(VM) *.o c/unix/*.o c/*.o c/fake/*.o \ - TAGS $(IMAGE) \ +clean: clean-cig clean-scsh + -rm -f $(VM) *.o c/*/*.o c/*.o \ + $(IMAGE) \ build/*.tmp $(MANPAGE) build/linker.image \ - scheme/debug/*.image scheme/debug/*.debug config.cache \ + scheme/debug/*.image scheme/debug/*.debug \ scheme/vm/scheme48vm.c scheme/vm/scheme48heap.c \ go $(distname) +clean-cig: + -rm -f cig/*.o $(CIG) $(CIG).image $(LIBCIG) + distclean: clean - rm -f Makefile config.log config.status c/sysdep.h + rm -f Makefile config.log config.status c/sysdep.h config.cache \ + scsh/machine \ + scsh/endian.scm \ + exportlist.aix + $(RM) a.exe $(VM).base $(VM).def $(VM).exp + -find . -name '*~' -o -name '#*' -o -name core -exec rm {} \; check: $(VM) $(IMAGE) scheme/debug/check.scm ( \ @@ -296,18 +469,17 @@ image: $(INITIAL) $(MAKE) $(IMAGE) tags: - etags scheme/vm/arch.scm scheme/rts/*.scm scheme/bcomp/*.scm \ - scheme/*.scm scheme/env/*.scm scheme/big/*.scm scheme/link/*.scm \ - scheme/opt/*.scm scheme/debug/*.scm scheme/misc/*.scm + find . -name "*.scm" -o -name "*.c" -o -name "*.h" | etags - # -------------------- # Distribution... # DISTFILES should include all sources. -DISTFILES = README COPYING INSTALL configure \ - acconfig.h configure.in Makefile.in install-sh \ - doc/*.ps doc/*.txt doc/html/*.html doc/scheme48.man \ - doc/src/*.tex doc/src/*.sty \ +DISTFILES = README COPYING INSTALL RELEASE configure config.sub config.guess \ + scsh-config.in configure.in Makefile.in install-sh \ + doc/*.ps doc/*.txt \ + doc/src/*.tex doc/src/*.sty doc/src/manual.dvi \ + doc/src/manual.ps \ emacs/README build/*-version-number build/*.exec \ build/*.lisp build/build-usual-image build/filenames.make \ build/filenames.scm build/initial.debug \ @@ -316,14 +488,40 @@ DISTFILES = README COPYING INSTALL configure \ c/*.[ch] c/*/*.[ch] c/scheme48.h.in \ emacs/*.el gdbinit \ scheme/*.scm scheme/*/*.scm \ - ps-compiler \ - c/sysdep.h.in + ps-compiler/*.scm ps-compiler/minor-version-number \ + ps-compiler/doc/*.txt ps-compiler/*/*.scm \ + ps-compiler/*/*/*.scm \ + ps-compiler/prescheme/test/fact.cps \ + ps-compiler/prescheme/test/prescheme.h \ + ps-compiler/prescheme/c-stuff \ + c/sysdep.h.in \ + scsh/*.scm scsh/*/*.scm \ + scsh/*.[ch] scsh/*/*.[ch] \ + scsh/*.scm.in scsh/*/Makefile.inc \ + cig/*.scm cig/*.[ch] \ + doc/scsh.man \ + doc/scsh-manual/*.tex doc/scsh-manual/*.sty \ + doc/scsh-manual/man.ps doc/scsh-manual/man.pdf \ + doc/scsh-manual/man.dvi doc/scsh-manual/Makefile \ + doc/scsh-manual/THANKS doc/scsh-manual/html/*.html \ + doc/scsh-manual/html/*.gif doc/scsh-manual/html/*.css \ + doc/src/manual/*.html \ + doc/scsh-paper/*.sty doc/scsh-paper/*.tex \ + doc/scsh-paper/mitlogo.ps doc/scsh-paper/scsh-paper.ps \ + doc/scsh-paper/scsh-paper.dvi \ + doc/scsh-paper/html/*.html doc/scsh-paper/html/*.css + distname = $(RUNNABLE)-0.`cat build/minor-version-number` dist: build/initial.image + (cd doc/src && latex manual.tex && latex manual.tex && \ + dvips manual -o manual.ps && hyperlatex manual.tex) && \ + (cd doc/scsh-manual && makeindex man && make man.ps && \ + make man.pdf && make html) && \ + (cd doc/scsh-paper && make scsh-paper.ps && make html) && \ distname=$(distname) && \ - distfile=$(distdir)/$$distname.tgz && \ + distfile=$(distdir)/$$distname.tar.gz && \ if [ -d $(distdir) ] && \ [ -w $$distfile -o -w $(distdir) ]; then \ rm -f $$distname && \ @@ -378,9 +576,7 @@ PACKAGES=scheme/packages.scm scheme/rts-packages.scm scheme/alt-packages.scm \ build/filenames.scm build/filenames.make: $(PACKAGES) - $(MAKE) $(VM) PACKAGES= - ./$(VM) -i $(srcdir)/$(INITIAL) -a batch $(CIG) + -chmod +x $(CIG) + mv /tmp/cig $(srcdir)/cig/cig_bootstrap + $(RM) /tmp/cig + +$(CIG).image: $(IMAGE) $(VM) $(srcdir)/cig/cig.scm $(srcdir)/cig/libcig.scm + (echo ",batch"; \ + echo ",translate =scheme48/ $(srcdir)/scheme/"; \ + echo ",config ,load $(srcdir)/cig/cig.scm"; \ + echo ",config ,load $(srcdir)/cig/libcig.scm"; \ + echo ",load-package cig-aux"; \ + echo ",open define-foreign-syntax"; \ + echo ",translate =scheme48/ $(LIB)/"; \ + echo ",dump /tmp/cig \"(CIG Preloaded -bri)\"") \ + | ./$(VM) -o ./$(VM) -i ./$(IMAGE) + $(srcdir)/cig/image2script $(LIB)/$(VM) \ + -o $(LIB)/$(VM) \ + $(CIG).image + -chmod +x $(CIG).image + $(RM) /tmp/cig + +#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +# SCSH Specifics +#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +scsh: scsh/scsh scsh/scsh.image + +SCHEME =scsh/awk.scm \ + scsh/defrec.scm \ + scsh/endian.scm \ + scsh/enumconst.scm \ + scsh/event.scm \ + scsh/low-interrupt.scm \ + scsh/fdports.scm \ + scsh/fileinfo.scm \ + scsh/filemtch.scm \ + scsh/filesys.scm \ + scsh/flock.scm \ + scsh/fname.scm \ + scsh/fr.scm \ + scsh/glob.scm \ + scsh/dot-locking.scm \ + scsh/here.scm \ + scsh/libscsh.scm \ + scsh/machine/bufpol.scm \ + scsh/machine/errno.scm \ + scsh/machine/fdflags.scm \ + scsh/machine/netconst.scm \ + scsh/machine/packages.scm \ + scsh/machine/signals.scm \ + scsh/machine/time_dep.scm \ + scsh/machine/tty-consts.scm \ + scsh/machine/waitcodes.scm \ + scsh/md5.scm \ + scsh/meta-arg.scm \ + scsh/network.scm \ + scsh/newports.scm \ + scsh/procobj.scm \ + scsh/pty.scm \ + scsh/rdelim.scm \ + scsh/rw.scm \ + scsh/scsh-condition.scm \ + scsh/scsh-interfaces.scm \ + scsh/scsh-package.scm \ + scsh/scsh-read.scm \ + scsh/scsh-version.scm \ + scsh/scsh.scm \ + scsh/sighandlers.scm \ + scsh/startup.scm \ + scsh/stringcoll.scm \ + scsh/syntax-helpers.scm \ + scsh/syntax.scm \ + scsh/syscalls.scm \ + scsh/time.scm \ + scsh/top.scm \ + scsh/tty.scm \ + scsh/utilities.scm \ + scsh/weaktables.scm \ + scsh/rx/packages.scm \ + scsh/rx/re-match-syntax.scm \ + scsh/rx/rx-lib.scm \ + scsh/rx/parse.scm \ + scsh/rx/re-subst.scm \ + scsh/rx/simp.scm \ + scsh/rx/posixstr.scm \ + scsh/rx/re-syntax.scm \ + scsh/rx/spencer.scm \ + scsh/rx/oldfuns.scm \ + scsh/rx/re-fold.scm \ + scsh/rx/re.scm \ + scsh/rx/test.scm \ + scsh/rx/re-high.scm \ + scsh/rx/regexp.scm \ + scsh/rx/re-low.scm \ + scsh/rx/regress.scm +# scsh/dbm.scm db.scm ndbm.scm +# jcontrol + +# Bogus, but it makes the scm->c->o two-ply dependency work. +# Explicitly giving the .o/.c dependency also makes it go. +############################################################ +cig/libcig.c: cig/libcig.scm + +scsh/scsh: scsh/scsh-tramp.c + $(CC) -o $@ $(CPPFLAGS) $(CFLAGS) \ + -DVM=\"$(LIB)/$(VM)\" \ + -DIMAGE=\"$(LIB)/scsh.image\" \ + scsh/scsh-tramp.c + +bs: build/build-scsh-image + sh $(srcdir)/build/build-scsh-image "$(srcdir)" "$(LIB)" "$(IMAGE)" \ + "$(VM)" cig/cig.image + +loads = $(srcdir)/scsh/let-opt.scm $(srcdir)/scsh/scsh-interfaces.scm \ + $(srcdir)/scsh/machine/packages.scm \ + $(srcdir)/scsh/rx/packages.scm \ + $(srcdir)/scsh/scsh-package.scm \ + $(srcdir)/scsh/lib/ccp-pack.scm \ + $(srcdir)/scsh/lib/char-package.scm + +opens = floatnums scsh ccp-lib scsh-top-package scsh-here-string-hax \ + srfi-1 srfi-13 srfi-14 # srfi-14 is also exported by scsh + +scsh/scsh.image: $(VM) $(SCHEME) $(IMAGE) + (echo ",translate =scheme48/ `pwd`/scheme/"; \ + echo ",batch on"; \ + echo ",config ,load $(loads)"; \ + echo ",open $(opens)"; \ + echo "(dump-scsh \"$@\")"; \ + ) \ + | ./$(VM) -o ./$(VM) -i $(IMAGE) -h 10000000 + +# ,flush files => 0k +# ,flush names => -= 17k +# ,flush maps => -= 350K +# ,flush source => -= 1117k +# ,flush => 550k +scsh/stripped-scsh.image: $(VM) $(SCHEME) $(IMAGE) + (echo ",flush maps source";\ + echo ",translate =scheme48/ `pwd`/scheme/"; \ + echo ",batch on"; \ + echo ",config ,load $(loads)"; \ + echo ",open $(opens)"; \ + echo ",flush"; \ + echo "(dump-scsh \"$@\")";) \ + | ./$(VM) -o ./$(VM) -i $(IMAGE) -h 10000000 + +install-scsh: scsh install-scsh-image install-stripped-scsh-image + $(RM) $(bindir)/$(RUNNABLE) + $(INSTALL_PROGRAM) $(srcdir)/scsh/scsh $(bindir)/$(RUNNABLE) + $(INSTALL_PROGRAM) $(srcdir)/$(LIBSCSHVM) $(libdir)/$(LIBSCSHVM) + $(INSTALL_PROGRAM) $(srcdir)/$(LIBSCSH) $(libdir)/$(LIBSCSH) + $(RANLIB) $(libdir)/$(LIBSCSH) + for f in $(srcdir)/scsh/*.scm $(srcdir)/scsh/*/*.scm; \ + do $(INSTALL_DATA) $$f $(LIB)/scsh/; done + +install-scsh-image: $(VM) scsh/scsh.image + ( echo ',translate =scheme48 $(LIB)'; \ + echo '(dump-scsh "$(LIB)/scsh.image")'; \ + echo ',exit'; \ + ) | ./$(VM) -i scsh/scsh.image + +install-stripped-scsh-image: $(VM) scsh/stripped-scsh.image + ( echo ',translate =scheme48 $(LIB)'; \ + echo '(dump-scsh "$(LIB)/stripped-scsh.image")'; \ + echo ',exit'; \ + ) | ./$(VM) -i scsh/stripped-scsh.image + +clean-scsh: + $(RM) scsh/*.o scsh/rx/*.o scsh/machine/*.o + $(RM) scsh/*.image + $(RM) $(LIBSCSHVM) $(LIBSCSH) scsh/scsh$(EXEEXT) + + diff --git a/README b/README index 68a4b86..90883e8 100644 --- a/README +++ b/README @@ -1,93 +1,19 @@ -; Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. See file COPYING. +-*- Mode: Text; -*- -Please report bugs to scheme-48-bugs@martigny.ai.mit.edu, and include +Copyright (c) 1994 Brian D. Carlstrom +See file COPYING for copying information. + +Please report bugs to scsh-bugs@zurich.ai.mit.edu, and include the version number in your message. Installation instructions in file INSTALL. -A user's guide is in file doc/user-guide.txt. +A scsh manual is in directory doc/scsh-manual/. +A scsh paper is in directory doc/scsh-paper/. +A scsh quick reference is in file doc/cheat.txt. -Recent changes are listed in file doc/news.txt. - -Known bugs and things to do in the future are listed in doc/todo.txt. - -Send mail to scheme-48-request@martigny.ai.mit.edu to be put on a +Send mail to scsh-request@zurich.ai.mit.edu to be put on a mailing list for announcements, discussion, bug reports, and bug fixes. ------ -When running "make", don't worry if the ".notify" target fails. Its -only purpose is to send an email message to -scheme-48-notifications@martigny.ai.mit.edu, so that we can get a -rough idea of how much Scheme 48 is being used and by whom. We -promise not to use your name or email address for any commercial -purpose. If you don't want us to know, just do "make -t .notify" -first (after running "configure"). - ------ - -The Scheme 48 root directory is organized as follows (not all files are -listed here): - - README this file - INSTALL installation instructions - COPYING copyright notice - configure configuration script - Makefile.in input to configure - doc/ some documentation - scheme48.man a Unix-style manual page - user-guide.txt general guide to using Scheme 48 - todo.txt list of improvements we hope to make someday - news.txt list of improvements we have already made - module.ps description of Scheme 48's module system - big-scheme.txt extensions to Scheme - threads.txt multiprocessing - io.txt how the I/O system works - scheme/ scheme source files - packages.scm meta-module definitions - interfaces.scm system interface definitions - more-interfaces.scm system interface definitions - *-packages.scm module definitions - bcomp/ the byte-code compiler - vm/ virtual machine sources (written in Pre-Scheme) - rts/ run-time system sources - link/ static linker - env/ development environment modules (debugger, etc.) - big/ useful Scheme libraries and extensions ("Big Scheme") - alt/ portable implementations of some Scheme 48 features - opt/ optional code optimizer for the byte-code compiler - prescheme/ code for running the VM using Scheme 48 - debug/ debugging utilities, tests, etc. - misc/ very miscellaneous things (e.g. AMB operator) - posix/ unfinished interface to POSIX system calls - ps-compiler/ Pre-Scheme -> C compiler - c/ c source files - sysdep.h.in input to configure - scheme48vm.c most of the VM (generated by Pre-Scheme compiler) - scheme48vm.h extern declarations for scheme48vm.c - scheme48heap.c storage management (generated by Pre-Scheme compiler) - scheme48heap.h extern declarations for scheme48heap.c - main.c entry point for the VM - prescheme.h part of the VM - extension.c default definition of vm_extension() - scheme48.h C declarations and macros for Scheme 48 data structures - old-scheme48.h old version, included for compatibility - c-mods.h minor additions to the C language - event.h header file for OS interface - io.h ditto - fd-io.h ditto - socket.c socket support - dynamo.c dynamic loading support - unix/ Unix-specific source files - posix/ C half of an unfinished interface to POSIX system calls - fake/ C files for insufficiently POSIX-compliant systems - build/ code for building the system - filenames.make included by Makefile, generated automatically - filenames.scm code for generating filenames.make - initial.image an image file containing a minimal Scheme system - initial.debug debugging database for same - initial.scm script for creating initial.image - build-usual-image script for creating scheme48.image - build-external-modules script for creating external-module initializer - emacs/ gnu emacs support diff --git a/README.s48 b/README.s48 new file mode 100644 index 0000000..7774448 --- /dev/null +++ b/README.s48 @@ -0,0 +1,86 @@ +; Copyright (c) 1993-2001 by Richard Kelsey and Jonathan Rees. +; Copyright (c) 1994-2000 by Olin Shivers and Brian D. Carlstrom. +; Copyright (c) 1999-2000 by Martin Gasbichler. +See file COPYING. + +Please report bugs to scsh-bugs@zurich.ai.mit.edu, and include +the version number in your message. + +Installation instructions in file INSTALL. + +A user's guide is in file doc/user-guide.txt. + +Recent changes are listed in file doc/news.txt. + +Known bugs and things to do in the future are listed in doc/todo.txt. + +Send mail to scheme-48-request@martigny.ai.mit.edu to be put on a +mailing list for announcements, discussion, bug reports, and bug +fixes. + +----- + +The Scheme 48 root directory is organized as follows (not all files are +listed here): + + README this file + INSTALL installation instructions + COPYING copyright notice + configure configuration script + Makefile.in input to configure + doc/ some documentation + scheme48.man a Unix-style manual page + user-guide.txt general guide to using Scheme 48 + todo.txt list of improvements we hope to make someday + news.txt list of improvements we have already made + module.ps description of Scheme 48's module system + big-scheme.txt extensions to Scheme + threads.txt multiprocessing + io.txt how the I/O system works + scheme/ scheme source files + packages.scm meta-module definitions + interfaces.scm system interface definitions + more-interfaces.scm system interface definitions + *-packages.scm module definitions + bcomp/ the byte-code compiler + vm/ virtual machine sources (written in Pre-Scheme) + rts/ run-time system sources + link/ static linker + env/ development environment modules (debugger, etc.) + big/ useful Scheme libraries and extensions ("Big Scheme") + alt/ portable implementations of some Scheme 48 features + opt/ optional code optimizer for the byte-code compiler + prescheme/ code for running the VM using Scheme 48 + debug/ debugging utilities, tests, etc. + misc/ very miscellaneous things (e.g. AMB operator) + posix/ unfinished interface to POSIX system calls + ps-compiler/ Pre-Scheme -> C compiler + c/ c source files + sysdep.h.in input to configure + scheme48vm.c most of the VM (generated by Pre-Scheme compiler) + scheme48vm.h extern declarations for scheme48vm.c + scheme48heap.c storage management (generated by Pre-Scheme compiler) + scheme48heap.h extern declarations for scheme48heap.c + main.c entry point for the VM + prescheme.h part of the VM + extension.c default definition of vm_extension() + scheme48.h C declarations and macros for Scheme 48 data structures + old-scheme48.h old version, included for compatibility + c-mods.h minor additions to the C language + event.h header file for OS interface + io.h ditto + fd-io.h ditto + socket.c socket support + dynamo.c dynamic loading support + unix/ Unix-specific source files + posix/ C half of an unfinished interface to POSIX system calls + fake/ C files for insufficiently POSIX-compliant systems + build/ code for building the system + filenames.make included by Makefile, generated automatically + filenames.scm code for generating filenames.make + initial.image an image file containing a minimal Scheme system + initial.debug debugging database for same + initial.scm script for creating initial.image + build-usual-image script for creating scheme48.image + build-external-modules script for creating external-module initializer + emacs/ gnu emacs support diff --git a/RELEASE b/RELEASE new file mode 100644 index 0000000..8921322 --- /dev/null +++ b/RELEASE @@ -0,0 +1,389 @@ +Scsh 0.6.4 Release notes -*- outline -*- + +We are pleased to release scsh version 0.6.4. The new version is +mainly a bug-fix release, the only new features are command-line +switches for loading exec scripts and support for some more SRFIs. + +The text below gives a general description of scsh, instructions for obtaining +it, pointers to discussion forums, and a description of the new features in +release 0.6.3. (Emacs should display this document is in outline mode. Say +c-h m for instructions on how to move through it by sections (e.g., c-c c-n, +c-c c-p).) + +* Contents +========== +What is scsh + Scsh as a scripting language + Scsh as a systems-programming language + Scsh is a portable programming environment +Obtaining and installing scsh +Getting in touch +The World-Wide What? +New in this release + Switches to load exec scripts + Bug fixes + API changes +New in 0.6.3 +New in 0.6.2 +New in 0.6.1 +New in 0.6.0 +Thanks + + +* What is scsh +============== +Scsh is a broad-spectrum systems-programming environment for Unix embedded +in R5RS Scheme. It has an open-source copyright, and runs on most major +Unix systems. + +** Scsh as a scripting language +------------------------------- +Scsh has a high-level process notation for doing shell-script like tasks: +running programs, establishing pipelines and I/O redirection. For example, the +shell pipeline + + gunzip < paper.tex.gz | detex | spell | lpr -Ppulp & + +would be written in scsh as + + (& (| (gunzip) (detex) (spell) (lpr -Ppulp)) ; Background a pipeline + (< paper.tex.gz)) ; with this redirection + +Scsh embeds this process notation within a full Scheme implementation. +The process notation is realized as a set of macro definitions, and is +carefully designed to allow full integration with standard Scheme code. +Scsh isn't Scheme-like; it is Scheme. + +At the scripting level, scsh also has an Awk design, also implemented +as a macro that can be embedded inside general Scheme code. + +Scripts can be written as standalone Scheme source files, with a leading + #!/usr/local/bin/scsh -s +trigger line. + + +** Scsh as a systems-programming language +----------------------------------------- +Scsh additionally provides the low-level access to the operating system +normally associated with C. The current release provides full access to Posix, +plus important non-Posix extensions, such as complete sockets support. +"Complete Posix" means: fork, exec & wait, sockets, full read, write, open & +close, seek & tell, complete file-system access, including stat, +chmod/chgrp/chown, symlink, FIFO & directory access, tty & pty support, file +locking, pipes, select, file-name pattern-matching, time & date, environment +variables, signal handlers, and more. + +In brief, you can now write Unix systems programs in Scheme instead of C. +For example, we have implemented an extensible HTTP server at MIT entirely +in scsh. + +As important as full access to the OS is the manner in which it is provided. +Scsh integrates the OS support into Scheme in a manner which respects the +general structure of the language. The details of the design are discussed +in a joint MIT Lab for Computer Science/University of Hong Kong technical +report, "A Scheme Shell," also to appear in a revised format in the "Journal +syof Lisp and Symbolic Computation." This paper is also available by ftp: + ftp://ftp.scsh.net/pub/scsh/papers/scsh-paper.ps + + +** Scsh is a portable programming environment +--------------------------------------------- +Scsh is designed for portability. It is implemented on top of Scheme 48, +a byte-code-interpreter Scheme implementation. The Scheme 48 virtual machine +can be compiled on any system with a C compiler; the rest of Scheme 48 is +machine-independent across 32-bit processors. Scsh's OS interface is +also quite portable, providing a consistent interface across different +Unix platforms. We currently have scsh implementations for: + AIX + BSD/OS + CXUX + FreeBSD + HP-UX + IRIX + Linux + NetBSD + OpenBSD + Solaris + SunOS + Ultrix + Win32 + Darwin/Mac OS X + +Scsh code should run without change across these systems. +Porting to new platforms is usually not difficult. + + +* Obtaining and installing scsh +=============================== +You can get a copy of scsh via anonymous ftp, from + ftp://ftp.scsh.net/pub/scsh/scsh.tar.gz +The tar file includes a detailed manual and a paper describing +the design of the system. + +For the lazily curious, we also have the manual separately available as + ftp://ftp.scsh.net/pub/scsh/0.6/scsh-manual.ps +Just click 'n view. + +You *should* be able to build scsh on the standard platforms with exactly five +commands: gunzip, tar, cd, ./configure, and make. The configure script figures +out the special flags and switches needed to make the build work (thanks to +the GNU project for the autoconfig tool that makes this possible). + +After doing the make, you can start up a Scheme shell and try it out +by saying + ./go +See the manual for full details on the command-line switches. + +If it's harder than this, and your system is standard, we'd like to know +about it. + + +* Getting in touch +================== +There are two main ways to join in scsh-related discussion: the mailing-list + scsh@zurich.ai.mit.edu +and the netnews group + comp.lang.scheme.scsh +These two forums should be equivalent, being bi-directionally gatewayed +at MIT, but due to technical problems it's better to read them both. + +Bugs can be reported to + scsh-bugs@zurich.ai.mit.edu +or via the Scsh project's bugs section on SourceForge: + http://sourceforge.net/projects/scsh/ + +If you do not netnews hierarchy, or wish to join the mailing +list for other reasons, send mail to + scsh-request@zurich.ai.mit.edu + + +* The World-Wide What? +====================== +We even have one of those dot-com cyberweb things: + http://www.scsh.net +We manage the project using SourceForge: + http://sourceforge.net/projects/scsh/ + +* New in this release +===================== + +** Switches to load exec scripts + The new switch -le loads a file into the exec package, the new + switch -de loads the "-s" script into the exec package. + +** Bug fixes + - Other select bug + - Timeout for select is in seconds, not milliseconds + - Load package md5 before dumping scsh.image + - Revised implementation of SRFI-19 + - -sfd switch called bogus procedures + - Ooopsify write-string/partial + - Clean up get_groups + - Check for "." in file-name-{sans-}extension + - Bug fix for let-match: variables may be #f + - Fix some problems with WAIT-FOR-CHANNELS + - Fixes in the time zone code + - Fix a bug in SEND-MESSAGE: There is such a thing as an empty datagram + - Renamed string-filter to make-string-filter and char-filter to + make-char-port-filter + +** API changes + pause-until-interrupt has been removed because it is not compatible + with the thread system + +* New in 0.6.3 +============== + +** Shorter startup times + By a couple of small fixes we could diminish the startup + time by 10-30%. + +** stripped-scsh.image + In addition to the standard heap image scsh.image, scsh now ships + with an additional image stripped-scsh.image. This image contains + the same code as the standard image but has almost all debugging + information removed. It is therefore much smaller (2.5 MB vs. 4.5 + MB) which also allows shorter startup times. The image is intended + for use in scripts but not for interactive development. See the + manual for more information. + +** MD5 support + The package md5 contains a bunch of procedures to compute MD5 + checksums. + +** New SRFIs + This release adds support for SRFI 25, 26, 27, 28 and 30. + +** API changes + select and select! are supported again. + Note however, that we recommend to use the new select-ports and + select-port-channels procedures instead whenever possible. + New interface to the uname function. + New direct interface to the directory stream operations + New structure scheme-with-scsh which combines the exports of the + modules scsh and scheme, avoiding duplicates + New procdures to work directly on file-info records + The repl procedure has been removed + New procedures connect-socket-no-wait, connect-socket-successful? + Add lookup-external from recent S48 + +** Bugfixes + LET-MATCH, IF-MATCH, and COND-MATCH now behave according to the + documentation. + Many bug fixes for the SRE system, specifically for dynamic + submatches. + PORT->SOCKET uses dups both ports of the socket + Added missing process resource alignments + No reaping for stopped children + Initialize t.c_lflag before reading it. + Fix to allow single character here strings. + Add a whole bunch of S48_GC_PROTECT against s48_extract_integer. + Added MAP, FOR-EACH, MEMBER, ASSOC to SRFI 1 interface + Fixed a subtle bug in the macro for the << redirection + Use "compare" und "rename" to compare symbols in lots of macros + Fixed the close method for string-input-ports + ... and many others. + +* New in 0.6.2 +============== + +** SRFIs + In addition to SRFIs 1, 8, 13, 14 and 23 scsh now features SRFIs 2, + 5, 6, 7, 9, 11, 16, 17 and 19. See http://srfi.schemers.org/ for a + detailed description. The SRFIs are available in packages srfi-N + where N is the number of the SRFI. + +** port->socket + New procedure port->socket to turn a port into a socket object was + added to the network code. + +** New forms in the module language + The module language supports the new forms modify, subset and + with-prefix from Scheme 48 version 0.57. + +** API changes + Fork, fork/pipe, fork/pipe+ take an optional argument + continue-threads? to determine whether all threads should continue + to run in the child. + + exec-path-list is now a preseved thread fluid + +** PDF version of the manual + There is now a PDF version of the manual generated by pdflatex. + +** Bugfixes + - Added default argument to tty-info as described in the manual + - Conversion to s48_value in tty1.c + - Fixed another hygiene problem in SRE + - Plugged space leak in bind-listen-accept-loop + - Aligned CWD and umask in various file operations + - Better releasing of port locks + - Corrected exception of time + - Set-cloexec to #t for unrevealed ports. + - Included scsh paper in the distribution. + - Fixed accept for AF_UNIX + - (setenv var #f) now deletes var from environment + - Quoted { and } within literal strings of regexps + +* New in 0.6.1 +============== + +** API changes + For sre's, BOW, EOW, WORD, and WORD+ (which were already unsupported + in 0.6.0 on most platforms) are gone for good. + +** Bugfixes + Most of the known bugs of version 0.6.0 have been fixed, many thanks for + the precise reports! See the project page on SourceForge for a list + of the remaining known bugs. Here is a brief overview of the fixes: + + - GC_PROTECT'ed the necessary variables (specifically, where >1 arg to + a function 'may GC') (Thanks to Steven Jenkins for dealing with this) + - Fixed various race conditons in the signal handling and process reaping code + - Fixed bug in set-process-group + - If $HOME is unset, consult (user-info (user-uid)) for the value of + home-directory + - Fix external-call-from-callback problem leading to spurious + gc-protection-mismatch exceptions. + - Let s48-do-gc return 0 so the PreScheme compiler will emit the correct + signature of the function. + - scsh/linux/tty-consts.scm: num-ttychars seems to be 32 not 19. + - scsh/top.scm: Return 0 exit status for -c and -e. + - *.c: Replaced // comments. + - scsh/syslog1.c: Remove LOG_LPR from list of syslog levels. + - scsh/network1.c: Pass SYSCALL argument to ERRNO-ERROR. + - scsh/syscalls1.c: Disable timer interrupts before execve + - scsh/network.scm: Correct name extraction in bind-socket + - Added export for with-error-output-port + - Install HTML version of manual under $(libdir) + - ./configure is more rebost wrt $(srcdir) + - Fixed installation of the S48 manual + - Replaced several /tmp by /var/tmp + - Catch EISDIR in delete-filesys-object + - flush-all-ports is now non-blocking + +* New in 0.6.0 +============== + +** Scsh is now based on Scheme 48 0.53 + With the move from Scheme 48 version 0.36 to version 0.53 in this + release the underlying system received a massive update. The most + significant changes include: + User level threads + Advanced garbage collector + Improved foreign function interface to C + + The most significant change for Scsh users is the addition of a + user-level thread system. Scsh provides various features to deal + with this new power in a system programming environment: An event + based interface to interrupts, thread local process state and + thread-safe system calls. + +** A manual for Scheme 48 has been included + Richard Kelsey, the author of Scheme 48, has graciously allowed us + to retrofit the current Scheme 48 manual for inclusion in this scsh + release. + +** Interfaces to dot-locking, crypt and syslog + Scsh now provides advisory file locking via the dot-locking scheme + and a direct binding to the crypt function. Furthermore we added + a complete, system-independent and thread-safe interface to syslog. + +** API changes + Some features of the previous releases are currently not + supported as we did not have the time to implement them. Please tell + us, if you can't get along without them. Here is a listing of these + currently dereleased features: + select + select! + ODBC support + bufpol/line + + The following procedures received new names in this release: + sleep (now process-sleep) + sleep-until (now process-sleep-until) + + network-info, service-info and protocol-info now return #f on non-success. + + The default directory for creating temporary files has changed: It's + now the value of $TMPDIR if set and /var/tmp otherwise. + + The nth procedure is still there but is now officially obsolete. It + will go away in a future release. + +** HTML version of the manual + There is now a HTML version of the scsh manual generated by tex2page + +* Thanks +======== + +We would like to thank the members of local-resistance cells for the +Underground everywhere for bug reports, bug fixes, design review and comments +that were incorporated into this release. We really appreciate their help, +particularly in the task of porting scsh to new platforms. + + +Brought to you by the Scheme Underground. Go forth and write elegant systems +programs. + -Olin Shivers, Brian Carlstrom, Martin Gasbichler & Mike Sperber + diff --git a/TODO b/TODO new file mode 100644 index 0000000..cecab0c --- /dev/null +++ b/TODO @@ -0,0 +1,66 @@ +0.6.1 release-critical: +======================= + +Non-critical: [Martin] +============= +S48_EXTRACT_BOOLEAN is defined several times + +create-file-thing should report a better error message. + + /* Sorry, we only have a version with 5 arguments..*/. + s48_raise_os_error_5 (errno, sec, min, hour, mday, month); + + +how do i make the scheme48 heap larger? preferably without having to write +scripts that start like this: + +#!/usr/local/lib/scsh/scshvm \ +-o /usr/local/lib/scsh/scshvm -i /usr/local/lib/scsh/scsh.image -h +-s +!# + +Check whether we have remove the extern char *tzname[] declaration in time1.c + +implement bufpol/line's flush on stdin + + +Move the code of time_plus_ticks to time1.c as it is not machine dependent + +---> +The module system doesn't maintain a cwd of its own: + +> ,config ,load ../sunet/xml/xml-packages.scm +../sunet/xml/xml-packages.scm +> (chdir "/tmp") +> ,open xml +Load structure xml (y/n)? y +[plt-compat +Error: exception + cannot-open-channel + (open-channel "../sunet/xml/plt.scm" 1) +<--- + +split up newports.scm (part that overwrites s48 defs, port-buffering, ...) + +disallow cig to produce more than 12 arguments + +libcig1.c : cig_string_body is probably extract_string + IsChar is used nowhere + +Add .h.c rule to Makefile + +---> +(define-syntax bla + (syntax-rules () + ((bla) + (rx any)))) +> (bla) + +Error: Illegal regular expression + #{Generated any 1276} + +(Because "any" is imported from scsh-utilities in rx/parse.scm) +<--- + +Set port policy for input to bufpol/line via isatty + diff --git a/Thanks b/Thanks new file mode 100644 index 0000000..c69dae0 --- /dev/null +++ b/Thanks @@ -0,0 +1,27 @@ +Post-0.5.2-release bug reports: + Friedrich Dominicus + Jay Nietling + Tim Bradshaw + Robert Brown + Eric Marsden + Paul Emsley + Pawel Turnau + Hannu Koivisto + Andy Gaynor + Francisco Vides Fernandez + Tim Burgess + Brian Denheyer + Harvey Stein + Eric Hilsdale + Andreas Bernauer + Chris Beggy + Ed Kademan + Michal Maruska + Noel Hunt + David Reiss + Chad R Dougherty + Michel Schinz + Alan Bawden + Bengt Kleberg + RT Happe + Dorai Sitaram \ No newline at end of file diff --git a/acconfig.h b/acconfig.h deleted file mode 100644 index ece5e70..0000000 --- a/acconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * HAVE_SIGACTION is defined iff sigaction() is available. - */ -#undef HAVE_SIGACTION - -/* - * HAVE_STRERROR is defined iff the standard libraries provide strerror(). - */ -#undef HAVE_STRERROR - -/* - * NLIST_HAS_N_NAME is defined iff a struct nlist has an n_name member. - * If it doesn't then we assume it has an n_un member which, in turn, - * has an n_name member. - */ -#undef NLIST_HAS_N_NAME - -/* - * HAVE_SYS_SELECT_H is defined iff we have the include file sys/select.h. - */ -#undef HAVE_SYS_SELECT_H - -/* - * USCORE is defined iff C externals are prepended with an underscore. - */ -#undef USCORE - -@BOTTOM@ - -#include "fake/sigact.h" -#include "fake/strerror.h" -#include "fake/sys-select.h" diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..6aee8f7 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,16 @@ +#! /bin/sh + +autoheader && +autoconf && +./configure && +touch scsh/*.c && +touch build/filenames.scm && +rm -f scheme48.image cig/cig.image scsh/scsh.image && +rm -f build/linker.image build/initial.image && +rm -f c/scheme48.h && +make build/filenames.make && +make i-know-what-i-am-doing && +make c/scheme48.h&& +make linker && +make build/initial.image && +make distclean diff --git a/build/build-external-modules b/build/build-external-modules new file mode 100755 index 0000000..aad9f2f --- /dev/null +++ b/build/build-external-modules @@ -0,0 +1,28 @@ +#!/bin/sh +# Build external-modules.c. + +target="$1" +shift + +( + cat <"$target" diff --git a/build/build-usual-image b/build/build-usual-image index ea3f23e..8af1c43 100755 --- a/build/build-usual-image +++ b/build/build-usual-image @@ -9,7 +9,7 @@ vm=$4 initial=$5 USER=${USER-`logname 2>/dev/null || echo '*GOK*'`} -$vm -i $initial -a batch < name -(0 low-structures) -(1 debug-low-structures) -(2 alt-features-structures) -(3 cheat-features-structures) -(4 the-interfaces) -(5 meta-module-system) -(6 run-time-structures) -(7 compiler-structures) -(8 initial-structures) -(9 debug-structures) -(10 usual-structures) -(11 alt-low-structures) -(12 compiler-structures) -(13 linker-structures) -(14 scheme-level-0) -(15 scheme-level-1) -(16 records) -(17 export-the-record-type) -(18 define-record-types) -(19 methods) -(20 number-i/o) -(21 fluids) -(22 wind) -(23 session-data) -(24 i/o) -(25 channels) -(26 channel-i/o) -(27 conditions) -(28 writing) -(29 reading) -(30 scheme-level-2) -(31 features) -(32 templates) -(33 continuations) -(34 more-types) -(35 enumerated) -(36 architecture) -(37 exceptions) -(38 interrupts) -(39 threads) -(40 scheduler) -(41 root-scheduler) -(42 enum-case) -(43 queues) -(44 locks) -(45 usual-resumer) -(46 weak) -(47 display-conditions) -(48 meta-types) -(49 bindings) -(50 names) -(51 thingies) -(52 nodes) -(53 compiler-envs) -(54 syntactic) -(55 usual-macros) -(56 var-utilities) -(57 debug-data) -(58 stack-check) -(59 segments) -(60 primops) -(61 reconstruction) -(62 compiler) -(63 reading-forms) -(64 flat-environments) -(65 interfaces) -(66 packages) -(67 scan-package) -(68 optimizer) -(69 compile-packages) -(70 defpackage) -(71 types) -(72 module-system) -(73 usages) -(74 analysis) -(75 inline) -(76 strong) -(77 tables) -(78 filenames) -(79 environments) -(80 evaluation) -(81 ensures-loaded) -(82 for-reification) -(83 scheme) -(84 mini-command) -(85 initial-system) -- -; Location uid -> (name . package-uid) -(0 (and . 14)) -(1 (cond . 14)) -(2 (do . 14)) -(3 (let . 14)) -(4 (let* . 14)) -(5 (or . 14)) -(6 (code-quote . 14)) -(7 (quote . 14)) -(8 (unspecific . 14)) -(9 (define-syntax . 14)) -(10 (lambda . 14)) -(11 (begin . 14)) -(12 (unassigned . 14)) -(13 (flat-lambda . 14)) -(14 (define . 14)) -(15 (primitive-procedure . 14)) -(16 (if . 14)) -(17 (letrec-syntax . 14)) -(18 (%file-name% . 14)) -(19 (let-syntax . 14)) -(20 (structure-ref . 14)) -(21 (loophole . 14)) -(22 (letrec . 14)) -(23 (lap . 14)) -(24 (set! . 14)) -(25 (call . 14)) -(26 (atan . 14)) -(27 (set-location-defined?! . 14)) -(28 (acos . 14)) -(29 (vm-extension . 14)) -(30 (asin . 14)) -(31 (location-defined? . 14)) -(32 (time . 14)) -(33 (template-set! . 14)) -(34 (cons . 14)) -(35 (wait . 14)) -(36 (trap . 14)) -(37 (assq . 14)) -(38 (make-weak-pointer . 14)) -(39 (lookup-shared-binding . 14)) -(40 (push . 14)) -(41 (set-contents! . 14)) -(42 (read-char . 14)) -(43 (make-cell . 14)) -(44 (sqrt . 14)) -(45 (* . 14)) -(46 (contents . 14)) -(47 (+ . 14)) -(48 (peek-char . 14)) -(49 (- . 14)) -(50 (continuation-set! . 14)) -(51 (/ . 14)) -(52 (weak-pointer? . 14)) -(53 (quotient . 14)) -(54 (close-channel . 14)) -(55 (channel-abort . 14)) -(56 (char? . 14)) -(57 (< . 14)) -(58 (= . 14)) -(59 (> . 14)) -(60 (make-location . 14)) -(61 (imag-part . 14)) -(62 (set-port-data! . 14)) -(63 (make-template . 14)) -(64 (real? . 14)) -(65 (real-part . 14)) -(66 (get-cont-from-heap . 14)) -(67 (record-length . 14)) -(68 (port-data . 14)) -(69 (pair? . 14)) -(70 (make-port . 14)) -(71 (set-port-lock! . 14)) -(72 (return-from-exception . 14)) -(73 (location? . 14)) -(74 (channel-maybe-read . 14)) -(75 (checked-record-ref . 14)) -(76 (add-finalizer! . 14)) -(77 (rational? . 14)) -(78 (template? . 14)) -(79 (port-lock . 14)) -(80 (vector-length . 14)) -(81 (make-continuation . 14)) -(82 (string-length . 14)) -(83 (shared-binding-ref . 14)) -(84 (port? . 14)) -(85 (angle . 14)) -(86 (false . 14)) -(87 (remainder . 14)) -(88 (continuation? . 14)) -(89 (binary-reduce1 . 14)) -(90 (binary-reduce2 . 14)) -(91 (char= . 14)) -(96 (with-continuation . 14)) -(97 (floor . 14)) -(98 (apply . 14)) -(99 (memory-status . 14)) -(100 (checked-record-set! . 14)) -(101 (inexact->exact . 14)) -(102 (exact->inexact . 14)) -(103 (error . 14)) -(104 (extended-number-length . 14)) -(105 (open-channels-list . 14)) -(106 (channel-id . 14)) -(107 (shared-binding-set! . 14)) -(108 (numerator . 14)) -(109 (eof-object . 14)) -(110 (byte-vector-length . 14)) -(111 (record-ref . 14)) -(112 (make-polar . 14)) -(113 (write-char . 14)) -(114 (symbol->string . 14)) -(115 (exact? . 14)) -(116 (vector-ref . 14)) -(117 (set-current-thread! . 14)) -(118 (immutable? . 14)) -(119 (set-exception-handlers! . 14)) -(120 (string-ref . 14)) -(121 (set-port-index! . 14)) -(122 (make-shared-binding . 14)) -(123 (current-thread . 14)) -(124 (channel-status . 14)) -(125 (set-port-limit! . 14)) -(126 (shared-binding-name . 14)) -(127 (port-index . 14)) -(128 (make-immutable! . 14)) -(129 (set-enabled-interrupts! . 14)) -(130 (port-limit . 14)) -(131 (ascii->char . 14)) -(132 (char->ascii . 14)) -(133 (undefine-shared-binding . 14)) -(134 (record-set! . 14)) -(135 (shared-binding? . 14)) -(136 (eof-object? . 14)) -(137 (set-interrupt-handlers! . 14)) -(138 (record . 14)) -(139 (schedule-interrupt . 14)) -(140 (channel-maybe-write . 14)) -(141 (extended-number-ref . 14)) -(142 (vector-set! . 14)) -(143 (copy-bytes! . 14)) -(144 (string-set! . 14)) -(145 (call-external-value . 14)) -(146 (values . 14)) -(147 (intern . 14)) -(148 (vector . 14)) -(149 (byte-vector-ref . 14)) -(150 (make-double . 14)) -(151 (make-record . 14)) -(152 (set-location-id! . 14)) -(153 (location-id . 14)) -(154 (bitwise-and . 14)) -(155 (eq? . 14)) -(156 (write-image . 14)) -(157 (double? . 14)) -(158 (extended-number-set! . 14)) -(159 (make-vector . 14)) -(160 (record? . 14)) -(161 (make-string . 14)) -(162 (set-port-buffer! . 14)) -(163 (primitive-catch . 14)) -(164 (string-hash . 14)) -(165 (template-length . 14)) -(166 (number? . 14)) -(167 (port-buffer . 14)) -(168 (byte-vector-set! . 14)) -(169 (bitwise-ior . 14)) -(170 (set-car! . 14)) -(171 (closure-env . 14)) -(172 (vector? . 14)) -(173 (bitwise-not . 14)) -(174 (set-cdr! . 14)) -(175 (symbol? . 14)) -(176 (string? . 14)) -(177 (car . 14)) -(178 (bitwise-xor . 14)) -(179 (cdr . 14)) -(180 (find-all-records . 14)) -(181 (continuation-length . 14)) -(182 (log . 14)) -(183 (message . 14)) -(184 (tan . 14)) -(185 (collect . 14)) -(186 (cos . 14)) -(187 (channel-os-index . 14)) -(188 (make-extended-number . 14)) -(189 (set-port-status! . 14)) -(190 (sin . 14)) -(191 (exp . 14)) -(192 (pop . 14)) -(193 (port-status . 14)) -(194 (return-from-callback . 14)) -(195 (set-port-locked?! . 14)) -(196 (make-byte-vector . 14)) -(197 (weak-pointer-ref . 14)) -(198 (call-with-values . 14)) -(199 (denominator . 14)) -(200 (reverse-list->string . 14)) -(201 (port-locked? . 14)) -(202 (extended-number? . 14)) -(203 (shared-binding-is-import? . 14)) -(204 (find-all . 14)) -(205 (cell-ref . 14)) -(206 (byte-vector? . 14)) -(207 (string=? . 14)) -(208 (open-channel . 14)) -(209 (channel? . 14)) -(210 (make-rectangular . 14)) -(211 (set-session-data! . 14)) -(212 (template-ref . 14)) -(213 (make-closure . 14)) -(214 (session-data . 14)) -(215 (integer? . 14)) -(216 (signal-condition . 14)) -(217 (port-handler . 14)) -(218 (set-port-pending-eof?! . 14)) -(219 (define-shared-binding . 14)) -(220 (arithmetic-shift . 14)) -(221 (complex? . 14)) -(222 (port-pending-eof? . 14)) -(223 (cell-set! . 14)) -(224 (binary-comparison-reduce2 . 14)) -(225 (closure? . 14)) -(226 (continuation-ref . 14)) -(227 (closure-template . 14)) -(228 (current-cont . 14)) -(229 (char->integer . 14)) -(230 (integer->char . 14)) -(231 (ascii-limit . 14)) -(232 (ascii-whitespaces . 14)) -(233 (procedure? . 14)) -(234 (invoke-closure . 14)) -(235 (primitive-cwcc . 14)) -(236 (make-undefined-location . 14)) -(237 (location-assigned? . 14)) -(238 (vector-unassigned? . 14)) -(239 (string-copy . 14)) -(240 (string->symbol . 14)) -(241 (input-port? . 14)) -(242 (output-port? . 14)) -(243 (make-code-vector . 14)) -(244 (code-vector? . 14)) -(245 (code-vector-length . 14)) -(246 (code-vector-ref . 14)) -(247 (code-vector-set! . 14)) -(248 (channel-read . 14)) -(249 (buffer-length . 14)) -(250 (channel-write . 14)) -(251 (lookup-imported-binding . 14)) -(252 (lookup-exported-binding . 14)) -(253 (define-imported-binding . 14)) -(254 (define-exported-binding . 14)) -(255 (undefine-imported-binding . 14)) -(256 (undefine-exported-binding . 14)) -(257 (debug-message . 14)) -(258 (make-condition . 14)) -(259 (signal . 14)) -(260 (warn . 14)) -(261 (syntax-error . 14)) -(262 (call-error . 14)) -(263 (case . 15)) -(264 (quasiquote . 15)) -(265 (syntax-rules . 15)) -(266 (not . 15)) -(267 (boolean? . 15)) -(268 (eqv? . 15)) -(269 (equal? . 15)) -(270 (max . 15)) -(271 (min . 15)) -(272 (max-or-min . 15)) -(273 (abs . 15)) -(274 (zero? . 15)) -(275 (positive? . 15)) -(276 (negative? . 15)) -(277 (even? . 15)) -(278 (odd? . 15)) -(279 (caar . 15)) -(280 (cadr . 15)) -(281 (cdar . 15)) -(282 (cddr . 15)) -(283 (caaar . 15)) -(284 (caadr . 15)) -(285 (cadar . 15)) -(286 (caddr . 15)) -(287 (cdaar . 15)) -(288 (cdadr . 15)) -(289 (cddar . 15)) -(290 (cdddr . 15)) -(291 (caaaar . 15)) -(292 (caaadr . 15)) -(293 (caadar . 15)) -(294 (caaddr . 15)) -(295 (cadaar . 15)) -(296 (cadadr . 15)) -(297 (caddar . 15)) -(298 (cadddr . 15)) -(299 (cdaaar . 15)) -(300 (cdaadr . 15)) -(301 (cdadar . 15)) -(302 (cdaddr . 15)) -(303 (cddaar . 15)) -(304 (cddadr . 15)) -(305 (cdddar . 15)) -(306 (cddddr . 15)) -(307 (null? . 15)) -(308 (list . 15)) -(309 (length . 15)) -(310 (real-length . 15)) -(311 (append . 15)) -(312 (reverse . 15)) -(313 (append-reverse . 15)) -(314 (list-tail . 15)) -(315 (list-ref . 15)) -(316 (mem . 15)) -(317 (memq . 15)) -(318 (memv . 15)) -(319 (member . 15)) -(320 (ass . 15)) -(321 (assv . 15)) -(322 (assoc . 15)) -(323 (list? . 15)) -(324 (char>? . 15)) -(325 (char>=? . 15)) -(326 (char<=? . 15)) -(327 (char-whitespace? . 15)) -(328 (char-lower-case? . 15)) -(329 (char-upper-case? . 15)) -(330 (char-numeric? . 15)) -(331 (char-alphabetic? . 15)) -(332 (char-case-delta . 15)) -(333 (make-character-map . 15)) -(334 (upcase-map . 15)) -(335 (char-upcase . 15)) -(336 (downcase-map . 15)) -(337 (char-downcase . 15)) -(338 (char-ci-compare . 15)) -(339 (char-ci=? . 15)) -(340 (char-ci? . 15)) -(343 (char-ci>=? . 15)) -(344 (string . 15)) -(345 (substring . 15)) -(346 (string-append . 15)) -(347 (string->list . 15)) -(348 (list->string . 15)) -(349 (string-fill! . 15)) -(350 (make-string=? . 15)) -(351 (string-ci=? . 15)) -(352 (make-string? . 15)) -(356 (string<=? . 15)) -(357 (string>=? . 15)) -(358 (string-ci>? . 15)) -(359 (string-ci<=? . 15)) -(360 (string-ci>=? . 15)) -(361 (vector->list . 15)) -(362 (list->vector . 15)) -(363 (vector-fill! . 15)) -(364 (map . 15)) -(365 (map1 . 15)) -(366 (map2+ . 15)) -(367 (for-each . 15)) -(368 (for-each1 . 15)) -(369 (for-each2+ . 15)) -(370 (delay . 15)) -(371 (make-promise . 15)) -(372 (force . 15)) -(373 (unspecific . 15)) -(374 (reduce . 15)) -(375 (filter . 15)) -(376 (pos . 15)) -(377 (posq . 15)) -(378 (posv . 15)) -(379 (position . 15)) -(380 (any . 15)) -(381 (every . 15)) -(382 (sublist . 15)) -(383 (last . 15)) -(384 (insert . 15)) -(385 (fold . 15)) -(386 (fold->2 . 15)) -(387 (fold->3 . 15)) -(388 (inexact? . 15)) -(389 (modulo . 15)) -(390 (ceiling . 15)) -(391 (truncate . 15)) -(392 (round . 15)) -(393 (gcd . 15)) -(394 (euclid . 15)) -(395 (lcm . 15)) -(396 (expt . 15)) -(397 (raise-to-integer-power . 15)) -(398 (rationalize . 15)) -(399 (simplest-rational . 15)) -(400 (record-type . 16)) -(401 (*record-type-uid* . 16)) -(402 (*record-type* . 16)) -(403 (make-record-type . 16)) -(404 (record-type? . 16)) -(405 (record-type-resumer . 16)) -(406 (set-record-type-resumer! . 16)) -(407 (record-type-uid . 16)) -(408 (record-type-name . 16)) -(409 (record-type-field-names . 16)) -(410 (record-type-number-of-fields . 16)) -(411 (record-type-discloser . 16)) -(412 (set-record-type-discloser! . 16)) -(413 (record-type-fields . 16)) -(414 (record-field-index . 16)) -(415 (record-constructor . 16)) -(416 (record-accessor . 16)) -(417 (record-modifier . 16)) -(418 (record-predicate . 16)) -(419 (define-record-discloser . 16)) -(420 (make-default-record-discloser . 16)) -(421 (disclose-record . 16)) -(422 (define-record-resumer . 16)) -(423 (default-record-resumer . 16)) -(424 (initialize-records! . 16)) -(425 (resume-record . 16)) -(426 (:record-type . 16)) -(427 (define-record-type . 18)) -(428 (define-constructor . 18)) -(429 (define-accessors . 18)) -(430 (define-accessor . 18)) -(431 (:simple-type . 19)) -(432 (really-make-simple-type . 19)) -(433 (simple-type-id . 19)) -(434 (simple-type-priority . 19)) -(435 (simple-type-predicate . 19)) -(436 (simple-type-superiors . 19)) -(437 (simple-type? . 19)) -(438 (make-simple-type . 19)) -(439 (compute-priority . 19)) -(440 (*increment* . 19)) -(441 (%type-priority . 19)) -(442 (%type-predicate . 19)) -(443 (%same-type? . 19)) -(444 (define-simple-type . 19)) -(445 (:syntax . 19)) -(446 (:values . 19)) -(447 (value? . 19)) -(448 (:value . 19)) -(449 (:zero . 19)) -(450 (:number . 19)) -(451 (:complex . 19)) -(452 (:real . 19)) -(453 (:rational . 19)) -(454 (:integer . 19)) -(455 (:exact-integer . 19)) -(456 (:boolean . 19)) -(457 (:symbol . 19)) -(458 (:char . 19)) -(459 (:null . 19)) -(460 (:pair . 19)) -(461 (:vector . 19)) -(462 (:string . 19)) -(463 (:procedure . 19)) -(464 (:input-port . 19)) -(465 (:output-port . 19)) -(466 (:eof-object . 19)) -(467 (:record . 19)) -(468 (record-type-priority . 19)) -(469 (:method-info . 19)) -(470 (really-make-method-info . 19)) -(471 (method-info-proc . 19)) -(472 (method-info-n-ary? . 19)) -(473 (method-info-types . 19)) -(474 (method-info? . 19)) -(475 (make-method-info . 19)) -(476 (empty-method-list . 19)) -(477 (insert-method . 19)) -(478 (same-applicability? . 19)) -(479 (every2 . 19)) -(480 (more-specific? . 19)) -(481 (more-specific-type? . 19)) -(482 (:method-table . 19)) -(483 (really-make-method-table . 19)) -(484 (method-table-id . 19)) -(485 (method-table-set-perform! . 19)) -(486 (method-table-get-perform . 19)) -(487 (make-generic . 19)) -(488 (method-table-prototype . 19)) -(489 (method-table-methods . 19)) -(490 (set-method-table-methods! . 19)) -(491 (method-table? . 19)) -(492 (make-method-table . 19)) -(493 (make-cell-for-generic . 19)) -(494 (add-to-method-table! . 19)) -(495 (set-final-method! . 19)) -(496 (apply-generic . 19)) -(497 (define-generic . 19)) -(498 (methods->perform . 19)) -(499 (last-action . 19)) -(500 (one-action . 19)) -(501 (argument-sequence-predicate . 19)) -(502 (check-for-next . 19)) -(503 (check-next . 19)) -(504 (method-info . 19)) -(505 (method-internal . 19)) -(506 (with-next-method . 19)) -(507 (define-method . 19)) -(508 (&add-method! . 19)) -(509 (add-method! . 19)) -(510 (&type-predicate . 19)) -(511 (type-predicate . 19)) -(512 (&type-priority . 19)) -(513 (type-priority . 19)) -(514 (&type-superiors . 19)) -(515 (type-superiors . 19)) -(516 (&same-type? . 19)) -(517 (same-type? . 19)) -(518 (:singleton . 19)) -(519 (singleton . 19)) -(520 (singleton-value . 19)) -(521 (compare-to . 19)) -(522 (&disclose . 19)) -(523 (disclose . 19)) -(524 (proc->discloser . 19)) -(525 (&number->string . 20)) -(526 (real-number->string . 20)) -(527 (number->string . 20)) -(528 (integer->string . 20)) -(529 (string->number . 20)) -(530 (&really-string->number . 20)) -(531 (really-string->number . 20)) -(532 (:integer-string . 20)) -(533 (set-exactness . 20)) -(534 (string->integer . 20)) -(535 (:thread . 21)) -(536 (make-thread . 21)) -(537 (thread-dynamic-point . 21)) -(538 (thread-dynamic-env . 21)) -(539 (get-dynamic-env . 21)) -(540 (set-dynamic-env! . 21)) -(541 (get-dynamic-point . 21)) -(542 (set-dynamic-point! . 21)) -(543 (initialize-dynamic-state! . 21)) -(544 (with-dynamic-env . 21)) -(545 (empty-dynamic-env . 21)) -(546 (:fluid . 21)) -(547 (make-fluid . 21)) -(548 (fluid-top-level-value . 21)) -(549 (set-fluid-top-level-value! . 21)) -(550 (fluid . 21)) -(551 (set-fluid! . 21)) -(552 (let-fluid . 21)) -(553 (let-fluids . 21)) -(554 (define-enumeration . 35)) -(555 (components . 35)) -(556 (enum . 35)) -(557 (enumerand->name . 35)) -(558 (name->enumerand . 35)) -(559 (lookup-enumerand . 35)) -(560 (architecture-version . 36)) -(561 (bits-used-per-byte . 36)) -(562 (byte-limit . 36)) -(563 (define-instruction-set . 36)) -(564 (op . 36)) -(565 (op-enumeration . 36)) -(566 (op-count . 36)) -(567 (opcode-arg-specs . 36)) -(568 (interrupt . 36)) -(569 (interrupt-enumeration . 36)) -(570 (interrupt-count . 36)) -(571 (exception . 36)) -(572 (exception-enumeration . 36)) -(573 (exception-count . 36)) -(574 (current-port-marker . 36)) -(575 (current-port-marker-enumeration . 36)) -(576 (current-port-marker-count . 36)) -(577 (maximum-stack-args . 36)) -(578 (*last-protocol* . 36)) -(579 (next-protocol . 36)) -(580 (two-byte-nargs-protocol . 36)) -(581 (two-byte-nargs+list-protocol . 36)) -(582 (big-stack-protocol . 36)) -(583 (args+nargs-protocol . 36)) -(584 (nary-dispatch-protocol . 36)) -(585 (maximum-external-call-args . 36)) -(586 (default-stack-space . 36)) -(587 (environment-stack-size . 36)) -(588 (continuation-stack-size . 36)) -(589 (available-stack-space . 36)) -(590 (time-option . 36)) -(591 (time-option-enumeration . 36)) -(592 (time-option-count . 36)) -(593 (memory-status-option . 36)) -(594 (memory-status-option-enumeration . 36)) -(595 (memory-status-option-count . 36)) -(596 (channel-status-option . 36)) -(597 (channel-status-option-enumeration . 36)) -(598 (channel-status-option-count . 36)) -(599 (port-status-options . 36)) -(600 (port-status-options-enumeration . 36)) -(601 (port-status-options-count . 36)) -(602 (stob . 36)) -(603 (stob-enumeration . 36)) -(604 (stob-count . 36)) -(605 (least-b-vector-type . 36)) -(606 (stob-data . 36)) -(607 (:queue . 43)) -(608 (really-make-queue . 43)) -(609 (queue-tail . 43)) -(610 (set-queue-tail! . 43)) -(611 (queue-head . 43)) -(612 (set-queue-head! . 43)) -(613 (queue-uid . 43)) -(614 (queue? . 43)) -(615 (*queue-uid* . 43)) -(616 (make-queue . 43)) -(617 (queue-empty? . 43)) -(618 (enqueue! . 43)) -(619 (queue-front . 43)) -(620 (dequeue! . 43)) -(621 (on-queue? . 43)) -(622 (delete-from-queue! . 43)) -(623 (delete-from-queue-if! . 43)) -(624 (queue->list . 43)) -(625 (queue-length . 43)) -(626 (*condition-types* . 27)) -(627 (condition-supertypes . 27)) -(628 (define-condition-type . 27)) -(629 (condition-predicate . 27)) -(630 (condition? . 27)) -(631 (condition-type . 27)) -(632 (condition-stuff . 27)) -(633 (error? . 27)) -(634 (call-error? . 27)) -(635 (read-error? . 27)) -(636 (exception? . 27)) -(637 (exception-opcode . 27)) -(638 (exception-reason . 27)) -(639 (exception-arguments . 27)) -(640 (make-exception . 27)) -(641 (warning? . 27)) -(642 (syntax-error? . 27)) -(643 (interrupt? . 27)) -(644 (*session-data-initializers* . 23)) -(645 (make-session-data-slot! . 23)) -(646 (session-data-ref . 23)) -(647 (session-data-set! . 23)) -(648 (initialize-session-data! . 23)) -(649 (initialize-interrupts! . 38)) -(650 (interrupt-handlers . 38)) -(651 (set-interrupt-handler! . 38)) -(652 (no-interrupts . 38)) -(653 (all-interrupts . 38)) -(654 (with-interrupts-inhibited . 38)) -(655 (with-interrupts-allowed . 38)) -(656 (disable-interrupts! . 38)) -(657 (enable-interrupts! . 38)) -(658 (with-interrupts . 38)) -(659 (enabled-interrupts . 38)) -(660 (*post-gc-procedures* . 38)) -(661 (call-after-gc! . 38)) -(662 (post-gc-handler . 38)) -(663 (required-post-gc-space . 38)) -(664 (space-shortage-handler . 38)) -(665 (call-before-heap-overflow! . 38)) -(666 (dynamic-wind . 22)) -(667 (call-with-current-continuation . 22)) -(668 (continuation->procedure . 22)) -(669 (:point . 22)) -(670 (make-point . 22)) -(671 (point-parent . 22)) -(672 (point-dynamic-env . 22)) -(673 (point-out . 22)) -(674 (point-in . 22)) -(675 (point-depth . 22)) -(676 (travel-to-point! . 22)) -(677 (template-overhead . 32)) -(678 (template-code . 32)) -(679 (template-info . 32)) -(680 (set-template-code! . 32)) -(681 (set-template-info! . 32)) -(682 (:closure . 34)) -(683 (:code-vector . 34)) -(684 (:location . 34)) -(685 (:template . 34)) -(686 (:channel . 34)) -(687 (:port . 34)) -(688 (:double . 34)) -(689 (:weak-pointer . 34)) -(690 (:shared-binding . 34)) -(691 (continuation-cont . 33)) -(692 (real-continuation-pc . 33)) -(693 (real-continuation-template . 33)) -(694 (continuation-env . 33)) -(695 (exception-continuation-pc . 33)) -(696 (exception-continuation-template . 33)) -(697 (exception-continuation-exception . 33)) -(698 (exception-continuation? . 33)) -(699 (continuation-pc . 33)) -(700 (continuation-template . 33)) -(701 (normal-continuation-overhead . 33)) -(702 (exception-continuation-overhead . 33)) -(703 (continuation-arg . 33)) -(704 (continuation-arg-count . 33)) -(705 (:continuation . 33)) -(706 (continuation-parent . 33)) -(707 (define-exception-handler . 37)) -(708 (signal-exception . 37)) -(709 (exception-handlers . 37)) -(710 (extend-opcode! . 37)) -(711 (really-signal-condition . 37)) -(712 (with-handler . 37)) -(713 ($condition-handlers . 37)) -(714 (initialize-exceptions! . 37)) -(715 (last-resort-condition-handler . 37)) -(716 (report-utter-lossage . 37)) -(717 (continuation-preview . 37)) -(718 (ignore-errors . 37)) -(719 (report-errors-as-warnings . 37)) -(720 (:thread . 39)) -(721 (really-make-thread . 39)) -(722 (thread-name . 39)) -(723 (thread-uid . 39)) -(724 (thread-current-task . 39)) -(725 (set-thread-current-task! . 39)) -(726 (thread-events . 39)) -(727 (set-thread-events! . 39)) -(728 (thread-data . 39)) -(729 (set-thread-data! . 39)) -(730 (thread-scheduler . 39)) -(731 (set-thread-scheduler! . 39)) -(732 (thread-time . 39)) -(733 (set-thread-time! . 39)) -(734 (thread-arguments . 39)) -(735 (set-thread-arguments! . 39)) -(736 (thread-queue . 39)) -(737 (set-thread-queue! . 39)) -(738 (thread-continuation . 39)) -(739 (set-thread-continuation! . 39)) -(740 (thread-dynamic-point . 39)) -(741 (set-thread-dynamic-point! . 39)) -(742 (thread-dynamic-env . 39)) -(743 (thread? . 39)) -(744 (*thread-uid* . 39)) -(745 (make-thread . 39)) -(746 (thread-top-level . 39)) -(747 (thread-uid->thread . 39)) -(748 (all-threads . 39)) -(749 (add-event! . 39)) -(750 (thunk->continuation . 39)) -(751 (compose-continuation . 39)) -(752 (make-thread-queue . 39)) -(753 (thread-queue-empty? . 39)) -(754 (enqueue-thread! . 39)) -(755 (dequeue-thread! . 39)) -(756 (remove-thread-from-queue! . 39)) -(757 (current-thread . 39)) -(758 (set-current-thread! . 39)) -(759 (event-type . 39)) -(760 (event-type-enumeration . 39)) -(761 (event-type-count . 39)) -(762 (run . 39)) -(763 (find-and-run-next-thread . 39)) -(764 (debit-thread-times-and-run! . 39)) -(765 (handle-timer-interrupt . 39)) -(766 (run-next-thread . 39)) -(767 (min . 39)) -(768 (switch-to-thread . 39)) -(769 (run-thread . 39)) -(770 (suspend . 39)) -(771 (suspend-to . 39)) -(772 (debit-down! . 39)) -(773 (exit . 39)) -(774 (wait . 39)) -(775 (waiting? . 39)) -(776 (block . 39)) -(777 (relinquish-timeslice . 39)) -(778 (upcall . 39)) -(779 (propogate-upcall . 39)) -(780 (kill-thread! . 39)) -(781 (interrupt-thread . 39)) -(782 (get-next-event! . 39)) -(783 (event-pending? . 39)) -(784 (schedule-event . 39)) -(785 (schedule-wakeup . 39)) -(786 (show-running . 39)) -(787 (running? . 39)) -(788 (spawn . 39)) -(789 (spawn-on-root . 39)) -(790 (spawn-on-scheduler . 39)) -(791 (make-ready . 39)) -(792 (schedule-interrupt! . 39)) -(793 (cancel-timer-interrupt! . 39)) -(794 (interrupt-timer-time . 39)) -(795 (real-time . 39)) -(796 (with-threads . 39)) -(797 (start-multitasking . 39)) -(798 (deadlock? . 39)) -(799 (terminate? . 39)) -(800 (terminate-current-thread . 39)) -(801 (root-scheduler-slot . 39)) -(802 (root-scheduler . 39)) -(803 (sleep . 39)) -(804 (*dozers* . 39)) -(805 (insert . 39)) -(806 (wake-some-threads . 39)) -(807 (:lock . 44)) -(808 (really-make-lock . 44)) -(809 (lock-uid . 44)) -(810 (lock-queue . 44)) -(811 (lock-owner-uid . 44)) -(812 (set-lock-owner-uid! . 44)) -(813 (lock? . 44)) -(814 (*lock-uid* . 44)) -(815 (make-lock . 44)) -(816 (obtain-lock . 44)) -(817 (maybe-obtain-lock . 44)) -(818 (release-lock . 44)) -(819 (:port-handler . 24)) -(820 (make-port-handler . 24)) -(821 (port-handler-buffer-proc . 24)) -(822 (port-handler-close . 24)) -(823 (port-handler-discloser . 24)) -(824 (port-handler? . 24)) -(825 (disclose-port . 24)) -(826 (obtain-port-lock . 24)) -(827 (maybe-obtain-port-lock . 24)) -(828 (release-port-lock . 24)) -(829 (initialize-i/o-handlers! . 24)) -(830 (one-arg-proc->handler . 24)) -(831 (two-arg-proc->handler . 24)) -(832 (read-char-handler . 24)) -(833 (fill-port-buffer! . 24)) -(834 (write-char-handler . 24)) -(835 (empty-port-buffer! . 24)) -(836 (port-flushed? . 24)) -(837 (set-port-flushed?! . 24)) -(838 (close-input-port . 24)) -(839 (close-output-port . 24)) -(840 (define-port-op . 24)) -(841 (real-char-ready? . 24)) -(842 (read-block . 24)) -(843 (really-read-block . 24)) -(844 (buffer-length . 24)) -(845 (read-more . 24)) -(846 (okay-limits? . 24)) -(847 (write-block . 24)) -(848 (write-string . 24)) -(849 (write-buffered-block . 24)) -(850 (write-unbuffered-block . 24)) -(851 (force-output . 24)) -(852 (really-force-output . 24)) -(853 (force-output-if-open . 24)) -(854 (default-buffer-size . 24)) -(855 (open-port? . 24)) -(856 (open-port-mask . 24)) -(857 (input-port-mask . 24)) -(858 (open-input-port-mask . 24)) -(859 (open-input-port-status . 24)) -(860 (open-input-port? . 24)) -(861 (make-input-port-closed! . 24)) -(862 (make-input-port . 24)) -(863 (okay-buffer? . 24)) -(864 (output-port-mask . 24)) -(865 (open-output-port-mask . 24)) -(866 (open-output-port-status . 24)) -(867 (open-output-port? . 24)) -(868 (make-output-port-closed! . 24)) -(869 (make-output-port . 24)) -(870 (make-unbuffered-output-port . 24)) -(871 (null-output-port-handler . 24)) -(872 (make-null-output-port . 24)) -(873 (*flush-these-ports* . 24)) -(874 (initialize-output-port-list! . 24)) -(875 (periodically-force-output! . 24)) -(876 (output-port-forcers . 24)) -(877 (periodically-flushed-ports . 24)) -(878 (make-forcing-thunk . 24)) -(879 ($current-input-port . 24)) -(880 ($current-output-port . 24)) -(881 ($current-error-port . 24)) -(882 ($current-noise-port . 24)) -(883 (current-input-port . 24)) -(884 (current-output-port . 24)) -(885 (current-error-port . 24)) -(886 (current-noise-port . 24)) -(887 (initialize-i/o . 24)) -(888 (with-current-ports . 24)) -(889 (call-with-current-input-port . 24)) -(890 (call-with-current-output-port . 24)) -(891 (call-with-current-noise-port . 24)) -(892 (silently . 24)) -(893 (newline . 24)) -(894 (char-ready? . 24)) -(895 (output-port-option . 24)) -(896 (input-port-option . 24)) -(897 (write . 28)) -(898 (recurring-write . 28)) -(899 (write-boolean . 28)) -(900 (write-number . 28)) -(901 (write-char-literal . 28)) -(902 (character-name . 28)) -(903 (write-string-literal . 28)) -(904 (write-list . 28)) -(905 (quotation? . 28)) -(906 (write-vector . 28)) -(907 (write-other . 28)) -(908 (display-type-name . 28)) -(909 (display . 28)) -(910 (read . 29)) -(911 (sub-read-carefully . 29)) -(912 (reader-token-marker . 29)) -(913 (make-reader-token . 29)) -(914 (reader-token? . 29)) -(915 (close-paren . 29)) -(916 (dot . 29)) -(917 (sub-read . 29)) -(918 (read-dispatch-vector . 29)) -(919 (read-terminating?-vector . 29)) -(920 (set-standard-syntax! . 29)) -(921 (set-standard-read-macro! . 29)) -(922 (sub-read-list . 29)) -(923 (gobble-line . 29)) -(924 (*sharp-macros* . 29)) -(925 (define-sharp-macro . 29)) -(926 (sub-read-token . 29)) -(927 (parse-token . 29)) -(928 (strange-symbol-names . 29)) -(929 (p-c-v . 29)) -(930 (preferred-case . 29)) -(931 (reading-error . 29)) -(932 (input-channel? . 25)) -(933 (output-channel? . 25)) -(934 (open-input-channel . 25)) -(935 (open-output-channel . 25)) -(936 (close-input-channel . 25)) -(937 (close-output-channel . 25)) -(938 (input-channel-handler . 26)) -(939 (input-channel->port . 26)) -(940 (input-channel+closer->port . 26)) -(941 (real-input-channel->port . 26)) -(942 (output-channel-handler . 26)) -(943 (make-unbuffered-output-channel-handler . 26)) -(944 (output-channel->port . 26)) -(945 (output-channel+closer->port . 26)) -(946 (real-output-channel->port . 26)) -(947 (maybe-force-output . 26)) -(948 (:channel-cell . 26)) -(949 (make-channel-cell . 26)) -(950 (channel-cell-closer . 26)) -(951 (channel-cell-ref . 26)) -(952 (channel-cell? . 26)) -(953 (port->channel . 26)) -(954 (open-input-file . 26)) -(955 (open-output-file . 26)) -(956 (call-with-input-file . 26)) -(957 (call-with-output-file . 26)) -(958 (with-input-from-file . 26)) -(959 (with-output-to-file . 26)) -(960 (force-channel-output-ports! . 26)) -(961 (steal-channel-port! . 26)) -(962 (really-steal-channel-port! . 26)) -(963 (initialize-channel-i/o! . 26)) -(964 (i/o-completion-handler . 26)) -(965 (waiting-for-i/o? . 26)) -(966 (wait-for-channel . 26)) -(967 (nothing . 26)) -(968 (steal-channel! . 26)) -(969 (channel-wait-count-slot . 26)) -(970 (channel-wait-count . 26)) -(971 (increment-channel-wait-count! . 26)) -(972 (decrement-channel-wait-count! . 26)) -(973 (channel-wait-queues-slot . 26)) -(974 (add-channel-wait-queue! . 26)) -(975 (fetch-channel-wait-queue! . 26)) -(976 (:table . 77)) -(977 (really-make-table . 77)) -(978 (table-set!-procedure . 77)) -(979 (set-table-set!-procedure! . 77)) -(980 (table-ref-procedure . 77)) -(981 (set-table-ref-procedure! . 77)) -(982 (table-data . 77)) -(983 (set-table-data! . 77)) -(984 (table-size . 77)) -(985 (set-table-size! . 77)) -(986 (table? . 77)) -(987 (table-ref . 77)) -(988 (table-set! . 77)) -(989 (linear-table-size-limit . 77)) -(990 (next-table-size . 77)) -(991 (make-table-maker . 77)) -(992 (assoc->table-maker . 77)) -(993 (null-entry . 77)) -(994 (new-entry . 77)) -(995 (entry-value . 77)) -(996 (entry-key . 77)) -(997 (set-entry-value! . 77)) -(998 (delete-entry! . 77)) -(999 (make-assoc . 77)) -(1000 (make-linear-table-ref . 77)) -(1001 (make-linear-table-set! . 77)) -(1002 (make->hash-table . 77)) -(1003 (make-hash-table-ref . 77)) -(1004 (make-hash-table-set! . 77)) -(1005 (expand-hash-table! . 77)) -(1006 (table-enter-alist! . 77)) -(1007 (table-expand-table! . 77)) -(1008 (table-walk . 77)) -(1009 (really-table-walk . 77)) -(1010 (alist-walk . 77)) -(1011 (make-table-immutable! . 77)) -(1012 (table->entry-list . 77)) -(1013 (default-table-hash-function . 77)) -(1014 (eqv?-assoc . 77)) -(1015 (default-table-assoc . 77)) -(1016 (symbol-hash . 77)) -(1017 (make-table . 77)) -(1018 (make-string-table . 77)) -(1019 (make-symbol-table . 77)) -(1020 (make-integer-table . 77)) -(1021 (make-population . 46)) -(1022 (add-to-population! . 46)) -(1023 (weak-memq . 46)) -(1024 (population-reduce . 46)) -(1025 (population->list . 46)) -(1026 (walk-population . 46)) -(1027 (:meta-type . 48)) -(1028 (really-make-type . 48)) -(1029 (type-info . 48)) -(1030 (type-more . 48)) -(1031 (type-mask . 48)) -(1032 (meta-type? . 48)) -(1033 (make-type . 48)) -(1034 (name->type-table . 48)) -(1035 (mask->name-table . 48)) -(1036 (name->type . 48)) -(1037 (set-type-name! . 48)) -(1038 (*mask* . 48)) -(1039 (new-type-bit . 48)) -(1040 (mask->type . 48)) -(1041 (bottom-type . 48)) -(1042 (error-type . 48)) -(1043 (bottom-type? . 48)) -(1044 (new-atomic-type . 48)) -(1045 (named-atomic-type . 48)) -(1046 (syntax-type . 48)) -(1047 (other-static-type . 48)) -(1048 (empty-rail-type . 48)) -(1049 (rail-type . 48)) -(1050 (make-optional-type . 48)) -(1051 (make-rest-type . 48)) -(1052 (head-type . 48)) -(1053 (head-type-really . 48)) -(1054 (tail-type . 48)) -(1055 (empty-rail-type? . 48)) -(1056 (rest-type? . 48)) -(1057 (optional-type? . 48)) -(1058 (mask/no-values . 48)) -(1059 (mask/two-or-more . 48)) -(1060 (mask/&rest . 48)) -(1061 (value-type . 48)) -(1062 (mask/value . 48)) -(1063 (value-type? . 48)) -(1064 (any-values-type . 48)) -(1065 (any-arguments-type . 48)) -(1066 (mask/one-or-more . 48)) -(1067 (same-type? . 48)) -(1068 (subtype? . 48)) -(1069 (meet-type . 48)) -(1070 (other-type-info . 48)) -(1071 (meet-rail . 48)) -(1072 (meet-procedure . 48)) -(1073 (meet? . 48)) -(1074 (meet-procedure? . 48)) -(1075 (join-type . 48)) -(1076 (join-rail . 48)) -(1077 (join-procedure . 48)) -(1078 (number-hierarchy . 48)) -(1079 (integer-type . 48)) -(1080 (rational-type . 48)) -(1081 (real-type . 48)) -(1082 (complex-type . 48)) -(1083 (number-type . 48)) -(1084 (exact-type . 48)) -(1085 (inexact-type . 48)) -(1086 (exact-integer-type . 48)) -(1087 (inexact-real-type . 48)) -(1088 (boolean-type . 48)) -(1089 (pair-type . 48)) -(1090 (null-type . 48)) -(1091 (record-type . 48)) -(1092 (any-procedure-type . 48)) -(1093 (other-value-type . 48)) -(1094 (mask/other . 48)) -(1095 (make-other-type . 48)) -(1096 (char-type . 48)) -(1097 (unspecific-type . 48)) -(1098 (string-type . 48)) -(1099 (symbol-type . 48)) -(1100 (vector-type . 48)) -(1101 (escape-type . 48)) -(1102 (structure-type . 48)) -(1103 (mask/procedure . 48)) -(1104 (procedure-type . 48)) -(1105 (make-procedure-type . 48)) -(1106 (procedure-type-domain . 48)) -(1107 (procedure-type-codomain . 48)) -(1108 (restrictive? . 48)) -(1109 (sexp->type . 48)) -(1110 (sexp->values-type . 48)) -(1111 (type->sexp . 48)) -(1112 (atomic-type->sexp . 48)) -(1113 (rail-type->sexp . 48)) -(1114 (disjoin-type . 48)) -(1115 (disjoin-rest . 48)) -(1116 (mask/number . 48)) -(1117 (make-some-values-type . 48)) -(1118 (proc . 48)) -(1119 (some-values . 48)) -(1120 (procedure-type? . 48)) -(1121 (fixed-arity-procedure-type? . 48)) -(1122 (procedure-type-arity . 48)) -(1123 (procedure-type-argument-types . 48)) -(1124 (variable-type . 48)) -(1125 (variable-type? . 48)) -(1126 (variable-value-type . 48)) -(1127 (usual-variable-type . 48)) -(1128 (undeclared-type . 48)) -(1129 (compatible-types? . 48)) -(1130 (:interface . 65)) -(1131 (really-make-interface . 65)) -(1132 (interface-name . 65)) -(1133 (set-interface-name! . 65)) -(1134 (interface-clients . 65)) -(1135 (walk-method . 65)) -(1136 (ref-method . 65)) -(1137 (interface? . 65)) -(1138 (interface-ref . 65)) -(1139 (for-each-declaration . 65)) -(1140 (note-reference-to-interface! . 65)) -(1141 (make-interface . 65)) -(1142 (make-simple-interface . 65)) -(1143 (really-make-simple-interface . 65)) -(1144 (make-compound-interface . 65)) -(1145 (note-interface-name! . 65)) -(1146 (binding? . 49)) -(1147 (binding-type . 49)) -(1148 (binding-place . 49)) -(1149 (binding-static . 49)) -(1150 (binding-path . 49)) -(1151 (set-binding-place! . 49)) -(1152 (make-binding . 49)) -(1153 (add-path . 49)) -(1154 (clobber-binding! . 49)) -(1155 (impose-type . 49)) -(1156 (forget-integration . 49)) -(1157 (same-denotation? . 49)) -(1158 (maybe-fix-place! . 49)) -(1159 (follow-forwarding-pointers . 49)) -(1160 (name? . 50)) -(1161 (:generated . 50)) -(1162 (make-generated . 50)) -(1163 (generated-parent-name . 50)) -(1164 (generated-env . 50)) -(1165 (generated-token . 50)) -(1166 (generated-symbol . 50)) -(1167 (generated? . 50)) -(1168 (generate-name . 50)) -(1169 (generated-uid . 50)) -(1170 (*generated-uid* . 50)) -(1171 (name->symbol . 50)) -(1172 (name-hash . 50)) -(1173 (make-name-table . 50)) -(1174 (desyntaxify . 50)) -(1175 (make-qualified . 50)) -(1176 (qualified? . 50)) -(1177 (qualified-parent-name . 50)) -(1178 (qualified-symbol . 50)) -(1179 (name->qualified . 50)) -(1180 (qualify-parent . 50)) -(1181 (:transform . 50)) -(1182 (really-make-transform . 50)) -(1183 (transform-id . 50)) -(1184 (transform-source . 50)) -(1185 (transform-aux-names . 50)) -(1186 (transform-type . 50)) -(1187 (transform-env . 50)) -(1188 (transform-procedure . 50)) -(1189 (transform? . 50)) -(1190 (make-transform . 50)) -(1191 (maybe-apply-macro-transform . 50)) -(1192 (apply-inline-transform . 50)) -(1193 (make-keyword-comparator . 50)) -(1194 (name->source-name . 50)) -(1195 (bind-aliases . 50)) -(1196 (make-name-generator . 50)) -(1197 (lookup . 50)) -(1198 (lookup . 53)) -(1199 (bind1 . 53)) -(1200 (bind . 53)) -(1201 (bindrec . 53)) -(1202 (make-compiler-env . 53)) -(1203 (funny-name/macro-eval . 53)) -(1204 (environment-macro-eval . 53)) -(1205 (funny-name/define! . 53)) -(1206 (environment-define! . 53)) -(1207 (funny-name/package . 53)) -(1208 (extract-package-from-environment . 53)) -(1209 (funny-name/source-file-name . 53)) -(1210 (bind-source-file-name . 53)) -(1211 (source-file-name . 53)) -(1212 (:thingie . 51)) -(1213 (make-thingie . 51)) -(1214 (thingie-want-type . 51)) -(1215 (thingie-name . 51)) -(1216 (thingie-binding . 51)) -(1217 (thingie? . 51)) -(1218 (:structure . 66)) -(1219 (really-make-structure . 66)) -(1220 (structure-name . 66)) -(1221 (set-structure-name! . 66)) -(1222 (structure-clients . 66)) -(1223 (structure-package . 66)) -(1224 (structure-interface-really . 66)) -(1225 (set-structure-interface! . 66)) -(1226 (structure-interface-thunk . 66)) -(1227 (structure? . 66)) -(1228 (structure-interface . 66)) -(1229 (initialize-structure! . 66)) -(1230 (make-structure . 66)) -(1231 (note-structure-name! . 66)) -(1232 (structure-unstable? . 66)) -(1233 (for-each-export . 66)) -(1234 (:package . 66)) -(1235 (really-make-package . 66)) -(1236 (package-cached . 66)) -(1237 (package-clients . 66)) -(1238 (package-real-undefined-but-assigneds . 66)) -(1239 (set-package-undefined-but-assigneds! . 66)) -(1240 (package-real-undefineds . 66)) -(1241 (set-package-undefineds! . 66)) -(1242 (package-accesses-thunk . 66)) -(1243 (package-opens-thunk . 66)) -(1244 (set-package-opens-thunk! . 66)) -(1245 (package->environment . 66)) -(1246 (set-package->environment! . 66)) -(1247 (package-loaded? . 66)) -(1248 (set-package-loaded?! . 66)) -(1249 (package-clauses . 66)) -(1250 (package-file-name . 66)) -(1251 (package-get-location . 66)) -(1252 (set-package-get-location! . 66)) -(1253 (package-integrate? . 66)) -(1254 (set-package-integrate?! . 66)) -(1255 (package-unstable? . 66)) -(1256 (package-definitions . 66)) -(1257 (package-opens-really . 66)) -(1258 (set-package-opens! . 66)) -(1259 (package-uid . 66)) -(1260 (package? . 66)) -(1261 (make-package . 66)) -(1262 (really-package->environment . 66)) -(1263 (lazy-table-accessor . 66)) -(1264 (package-undefineds . 66)) -(1265 (package-undefined-but-assigneds . 66)) -(1266 (new-package-uid . 66)) -(1267 (*package-uid* . 66)) -(1268 (package-name-table . 66)) -(1269 (package-name . 66)) -(1270 (note-package-name! . 66)) -(1271 (package-opens . 66)) -(1272 (initialize-package-if-necessary! . 66)) -(1273 (package-accesses . 66)) -(1274 (make-simple-package . 66)) -(1275 (package-definition . 66)) -(1276 (package-define! . 66)) -(1277 (package-add-static! . 66)) -(1278 (package-refine-type! . 66)) -(1279 (package-lookup . 66)) -(1280 (really-package-lookup . 66)) -(1281 (search-opens . 66)) -(1282 (structure-lookup . 66)) -(1283 (real-structure-lookup . 66)) -(1284 (generic-lookup . 66)) -(1285 (initialize-package! . 66)) -(1286 (for-each-definition . 66)) -(1287 (get-new-location . 66)) -(1288 (make-new-location . 66)) -(1289 ($get-location . 66)) -(1290 (*location-uid* . 66)) -(1291 (location-info-table . 66)) -(1292 (flush-location-names . 66)) -(1293 (link! . 66)) -(1294 (really-link! . 66)) -(1295 (get-location . 66)) -(1296 (location-on-demand . 66)) -(1297 (get-undefined . 66)) -(1298 (location-for-assignment . 66)) -(1299 (package-note-caching! . 66)) -(1300 (note-caching! . 66)) -(1301 (get-location-for-unassignable . 66)) -(1302 (get-location-for-undefined . 66)) -(1303 ($note-undefined . 66)) -(1304 (cenv->package . 66)) -(1305 (location-for-reference . 66)) -(1306 (noting-undefined-variables . 66)) -(1307 (print-undefined-names . 66)) -(1308 (environment-ref . 79)) -(1309 (environment-set! . 79)) -(1310 (environment-define! . 79)) -(1311 (*structure-ref . 79)) -(1312 (carefully . 79)) -(1313 ($interaction-environment . 79)) -(1314 (interaction-environment . 79)) -(1315 (set-interaction-environment! . 79)) -(1316 (with-interaction-environment . 79)) -(1317 (scheme-report-environment . 79)) -(1318 (*scheme-report-environment* . 79)) -(1319 (*null-environment* . 79)) -(1320 (*scheme-report-number* . 79)) -(1321 (set-scheme-report-environment! . 79)) -(1322 (null-environment . 79)) -(1323 (make-reflective-tower . 79)) -(1324 (set-reflective-tower-maker! . 79)) -(1325 (namestring . 78)) -(1326 (directory-component-separator . 78)) -(1327 (type-component-separator . 78)) -(1328 (namestring-component . 78)) -(1329 (file-name-preferred-case . 78)) -(1330 (*scheme-file-type* . 78)) -(1331 (*load-file-type* . 78)) -(1332 (file-name-directory . 78)) -(1333 (file-name-nondirectory . 78)) -(1334 (file-nondirectory-position . 78)) -(1335 (string-posq . 78)) -(1336 (*translations* . 78)) -(1337 (translations . 78)) -(1338 (set-translation! . 78)) -(1339 (translate . 78)) -(1340 ($note-file-package . 63)) -(1341 (read-forms . 63)) -(1342 (really-read-forms . 63)) -(1343 (:operator . 52)) -(1344 (make-operator . 52)) -(1345 (operator-name . 52)) -(1346 (operator-uid . 52)) -(1347 (operator-nargs . 52)) -(1348 (operator-type . 52)) -(1349 (set-operator-type! . 52)) -(1350 (operator? . 52)) -(1351 (usual-operator-type . 52)) -(1352 (get-operator . 52)) -(1353 (*operator-uid* . 52)) -(1354 (operators-table . 52)) -(1355 (number-of-operators . 52)) -(1356 (the-operators . 52)) -(1357 (make-operator-table . 52)) -(1358 (operator-table-ref . 52)) -(1359 (operator-lookup . 52)) -(1360 (operator-define! . 52)) -(1361 (:node . 52)) -(1362 (really-make-node . 52)) -(1363 (node-plist . 52)) -(1364 (set-node-plist! . 52)) -(1365 (node-form . 52)) -(1366 (node-operator-id . 52)) -(1367 (node? . 52)) -(1368 (make-node . 52)) -(1369 (node-ref . 52)) -(1370 (node-set! . 52)) -(1371 (node-operator . 52)) -(1372 (node-predicate . 52)) -(1373 (make-similar-node . 52)) -(1374 (force-node . 52)) -(1375 (schemify . 52)) -(1376 (schemifiers . 52)) -(1377 (schemify-node . 52)) -(1378 (schemify-nodes . 52)) -(1379 (define-schemifier . 52)) -(1380 (schemify-lambda . 52)) -(1381 (schemify-formals . 52)) -(1382 (schemify-sexp . 52)) -(1383 (number-of-required-args . 56)) -(1384 (n-ary? . 56)) -(1385 (normalize-formals . 56)) -(1386 (scan-forms . 54)) -(1387 (expand-scanned-form . 54)) -(1388 (scan-define . 54)) -(1389 (expand-define . 54)) -(1390 (scan-define-syntax . 54)) -(1391 (expand-form . 54)) -(1392 (expand-head . 54)) -(1393 (destructure-define . 54)) -(1394 (make-operator-predicate . 54)) -(1395 (define? . 54)) -(1396 (begin? . 54)) -(1397 (define-syntax? . 54)) -(1398 (static-value . 54)) -(1399 (expand-body . 54)) -(1400 (scan-body-forms . 54)) -(1401 (body-lossage . 54)) -(1402 (expand . 54)) -(1403 (expand-list . 54)) -(1404 (expand-literal . 54)) -(1405 (expand-call . 54)) -(1406 (expand-name . 54)) -(1407 (expand-macro-application . 54)) -(1408 (expand-operator-form . 54)) -(1409 (expanders . 54)) -(1410 (define-expander . 54)) -(1411 (unspecific-node . 54)) -(1412 (expand-structure-ref . 54)) -(1413 (expand-lambda . 54)) -(1414 (bind-names . 54)) -(1415 (names? . 54)) -(1416 (expand-letrec . 54)) -(1417 (process-syntax . 54)) -(1418 (this-long? . 54)) -(1419 (at-least-this-long? . 54)) -(1420 (specs? . 54)) -(1421 (literal? . 54)) -(1422 (syntax? . 54)) -(1423 (begin-node? . 54)) -(1424 (call-node? . 54)) -(1425 (name-node? . 54)) -(1426 (operator/literal . 54)) -(1427 (operator/quote . 54)) -(1428 (operator/call . 54)) -(1429 (operator/name . 54)) -(1430 (operator/unspecific . 54)) -(1431 (operator/unassigned . 54)) -(1432 (operator/lambda . 54)) -(1433 (operator/begin . 54)) -(1434 (operator/letrec . 54)) -(1435 (operator/define . 54)) -(1436 (operator/define-syntax . 54)) -(1437 (operator/primitive-procedure . 54)) -(1438 (operator/structure-ref . 54)) -(1439 (:primop . 60)) -(1440 (make-primop . 60)) -(1441 (primop-compilator . 60)) -(1442 (primop-closed . 60)) -(1443 (primop-type . 60)) -(1444 (primop-name . 60)) -(1445 (primop? . 60)) -(1446 (primop-table . 60)) -(1447 (walk-primops . 60)) -(1448 (define-compiler-primitive . 60)) -(1449 (get-primop . 60)) -(1450 (:debug-data . 57)) -(1451 (make-debug-data . 57)) -(1452 (debug-data-source . 57)) -(1453 (set-debug-data-source! . 57)) -(1454 (debug-data-env-maps . 57)) -(1455 (set-debug-data-env-maps! . 57)) -(1456 (debug-data-pc-in-parent . 57)) -(1457 (debug-data-parent . 57)) -(1458 (debug-data-name . 57)) -(1459 (debug-data-uid . 57)) -(1460 (debug-data? . 57)) -(1461 (maximum-stack-use . 58)) -(1462 (protocol-skip . 58)) -(1463 (stack-delta . 58)) -(1464 (define-delta . 58)) -(1465 (stack-max . 58)) -(1466 (nothing . 58)) -(1467 (popper . 58)) -(1468 (pusher . 58)) -(1469 (continue . 58)) -(1470 (continuer . 58)) -(1471 (do-make-cont . 58)) -(1472 (stack-function . 58)) -(1473 (arg-spec-size . 58)) -(1474 (imax . 58)) -(1475 (get-offset . 58)) -(1476 (new-template-uid . 59)) -(1477 (*template-uid* . 59)) -(1478 (template-uid . 59)) -(1479 (set-template-uid! . 59)) -(1480 (debug-flag-names . 59)) -(1481 (type/debug-flags . 59)) -(1482 (make-debug-flags . 59)) -(1483 ($debug-flags . 59)) -(1484 (debug-flag-accessor . 59)) -(1485 (debug-flag-modifier . 59)) -(1486 (keep-source-code? . 59)) -(1487 (keep-environment-maps? . 59)) -(1488 (keep-procedure-names? . 59)) -(1489 (keep-file-names? . 59)) -(1490 (tabulate-debug-data? . 59)) -(1491 (debug-data-table . 59)) -(1492 (with-fresh-compiler-state . 59)) -(1493 (saving-and-restoring . 59)) -(1494 (debug-data->info . 59)) -(1495 (get-debug-data . 59)) -(1496 (note-debug-data! . 59)) -(1497 (new-debug-data . 59)) -(1498 (make-segment . 59)) -(1499 (segment-size . 59)) -(1500 (segment-emitter . 59)) -(1501 (segment->template . 59)) -(1502 (segment-data->template . 59)) -(1503 (check-stack-use . 59)) -(1504 (:assembly-state . 59)) -(1505 (make-assembly-state . 59)) -(1506 (astate-literals . 59)) -(1507 (set-astate-literals! . 59)) -(1508 (astate-count . 59)) -(1509 (set-astate-count! . 59)) -(1510 (astate-pc . 59)) -(1511 (set-astate-pc! . 59)) -(1512 (astate-code-vector . 59)) -(1513 (make-astate . 59)) -(1514 (emit-byte! . 59)) -(1515 (literal->index . 59)) -(1516 (literal-position . 59)) -(1517 (position . 59)) -(1518 (emit-literal! . 59)) -(1519 (emit-segment! . 59)) -(1520 (empty-segment . 59)) -(1521 (instruction . 59)) -(1522 (sequentially . 59)) -(1523 (sequentially-2 . 59)) -(1524 (instruction-with-literal . 59)) -(1525 (instruction-with-location . 59)) -(1526 (template . 59)) -(1527 (make-label . 59)) -(1528 (instruction-using-label . 59)) -(1529 (computed-goto-label-size . 59)) -(1530 (computed-goto-instruction . 59)) -(1531 (attach-label . 59)) -(1532 (insert-label! . 59)) -(1533 (code-vector-set2! . 59)) -(1534 (two-byte-limit . 59)) -(1535 (high-byte . 59)) -(1536 (low-byte . 59)) -(1537 ($debug-data . 59)) -(1538 (note-source-code . 59)) -(1539 (note-environment . 59)) -(1540 (emit-with-environment-maps! . 59)) -(1541 ($environment-maps . 59)) -(1542 (node-type . 61)) -(1543 (reconstruct-type . 61)) -(1544 (reconstruct . 61)) -(1545 (examine . 61)) -(1546 (reconstructors . 61)) -(1547 (define-reconstructor . 61)) -(1548 (reconstruct-lambda . 61)) -(1549 (careful-codomain . 61)) -(1550 (reconstruct-name . 61)) -(1551 (proc->reconstructor . 61)) -(1552 (reconstruct-call . 61)) -(1553 (fork-constraints . 61)) -(1554 (node->type . 61)) -(1555 (name-node? . 61)) -(1556 (lambda-node? . 61)) -(1557 (literal-node? . 61)) -(1558 (primop-reconstructors . 61)) -(1559 (define-primop-reconstructor . 61)) -(1560 (reconstruct-apply . 61)) -(1561 (constant-type . 61)) -(1562 (compile-expression . 62)) -(1563 (compile . 62)) -(1564 (compilators . 62)) -(1565 (define-compilator . 62)) -(1566 (compile-constant . 62)) -(1567 (compile-call . 62)) -(1568 (compile-name-call . 62)) -(1569 (compile-redex . 62)) -(1570 (compile-unknown-call . 62)) -(1571 (maybe-push-continuation . 62)) -(1572 (fixup-source . 62)) -(1573 (push-arguments . 62)) -(1574 (push-all-with-names . 62)) -(1575 (compile-lambda . 62)) -(1576 (compile-lambda-code . 62)) -(1577 (name-node->symbol . 62)) -(1578 (set-lexical-offsets! . 62)) -(1579 (compile-flat-lambda . 62)) -(1580 (get-variables-offsets . 62)) -(1581 (variable-env-data . 62)) -(1582 (sort-list . 62)) -(1583 (make-cont . 62)) -(1584 (cont-segment . 62)) -(1585 (cont-source-info . 62)) -(1586 (return-cont-segment . 62)) -(1587 (return-cont . 62)) -(1588 (return-cont? . 62)) -(1589 (fall-through-cont . 62)) -(1590 (fall-through-cont? . 62)) -(1591 (ignore-values-segment . 62)) -(1592 (ignore-values-cont . 62)) -(1593 (ignore-values-cont? . 62)) -(1594 (deliver-value . 62)) -(1595 (named-cont . 62)) -(1596 (cont-name . 62)) -(1597 (name-node-binding . 62)) -(1598 (generate-trap . 62)) -(1599 (type-check . 62)) -(1600 (set-type-check?! . 62)) -(1601 (*type-check?* . 62)) -(1602 (diagnose-call-error . 62)) -(1603 (lambda-node? . 62)) -(1604 (name-node? . 62)) -(1605 (literal-node? . 62)) -(1606 (operator/lambda . 62)) -(1607 (operator/set! . 62)) -(1608 (operator/call . 62)) -(1609 (operator/begin . 62)) -(1610 (direct-compilator . 62)) -(1611 (direct-closed-compilator . 62)) -(1612 (nargs->domain . 62)) -(1613 (get-primop-type . 62)) -(1614 (primop-types . 62)) -(1615 (define-simple-primitive . 62)) -(1616 (simple-compilator . 62)) -(1617 (simple-closed-compilator . 62)) -(1618 (symbol-append . 62)) -(1619 (define-stob-predicate . 62)) -(1620 (define-data-struct-primitives . 62)) -(1621 (define-vector-primitives . 62)) -(1622 (define-n-ary-compiler-primitive . 62)) -(1623 (n-ary-primitive-compilator . 62)) -(1624 (call-on-arg-and-id . 62)) -(1625 (call-on-args . 62)) -(1626 (op/unspecific . 62)) -(1627 (op/literal . 62)) -(1628 (push-all-but-last . 62)) -(1629 (dispatch-protocol-size . 62)) -(1630 (make-dispatch-protocol . 62)) -(1631 (compile-forms . 62)) -(1632 (compile-forms-loop . 62)) -(1633 (compile-form . 62)) -(1634 (define-node? . 62)) -(1635 (compile-definition . 62)) -(1636 (location-contents-offset . 62)) -(1637 (make-startup-procedure . 62)) -(1638 (append-templates . 62)) -(1639 (an-ignore-values-cont . 62)) -(1640 (eval . 80)) -(1641 (load-into . 80)) -(1642 (eval-from-file . 80)) -(1643 (load . 80)) -(1644 (really-load-into . 80)) -(1645 (compile-and-run . 80)) -(1646 (display-condition . 47)) -(1647 (really-display-condition . 47)) -(1648 (*depth* . 47)) -(1649 (*length* . 47)) -(1650 (&disclose-condition . 47)) -(1651 (disclose-condition . 47)) -(1652 (limited-write . 47)) -(1653 (command-processor . 84)) -(1654 (mini-load . 84)) -(1655 (read-string . 84)) -(1656 (enum-case . 42)) -(1657 (run-threads . 40)) -(1658 (run-threads-with-housekeeper . 40)) -(1659 (round-robin-event-handler . 40)) -(1660 (make-counter . 40)) -(1661 (counter-value . 40)) -(1662 (increment-counter! . 40)) -(1663 (decrement-counter! . 40)) -(1664 (root-scheduler . 41)) -(1665 (make-root-event-handler . 41)) -(1666 (root-handler . 41)) -(1667 (cheap-display-condition . 41)) -(1668 (abort-token . 41)) -(1669 (scheme-exit-now . 41)) -(1670 (root-wait . 41)) -(1671 (one-day-of-milliseconds . 41)) -(1672 (do-some-waiting . 41)) -(1673 (deadlock-handler . 41)) -(1674 (call-when-deadlocked! . 41)) -(1675 (spawn-output-forcers . 41)) -(1676 (unspecific . 41)) -(1677 (usual-resumer . 45)) -(1678 (initialize-rts . 45)) -(1679 (start . 85)) -(1680 (make-built-in-structures . 85)) -(1681 (initialize-interaction-environment! . 85)) -(1682 (make-initial-package . 85)) -(1683 (make-tower . 85)) -(1684 (the-usual-transforms . 55)) -(1685 (define-usual-macro . 55)) -(1686 (usual-transform . 55)) -(1687 (do-spec? . 55)) -(1688 (specs? . 55)) -(1689 (case-clause? . 55)) -(1690 (process-rules . 55)) -(1691 (segment-pattern? . 55)) -(1692 (segment-template? . 55)) -(1693 (segment-depth . 55)) -(1694 (segment-tail . 55)) -(1695 (indicators-for-zero-or-more . 55)) -(1696 (find-free-names-in-syntax-rules . 55)) -(1697 (strongly-connected-components . 76)) -(1698 (find-next-vertex . 76)) -(1699 (:vertex . 76)) -(1700 (really-make-vertex . 76)) -(1701 (vertex-lowpoint . 76)) -(1702 (set-vertex-lowpoint! . 76)) -(1703 (vertex-parent . 76)) -(1704 (set-vertex-parent! . 76)) -(1705 (vertex-index . 76)) -(1706 (set-vertex-index! . 76)) -(1707 (vertex-stack . 76)) -(1708 (set-vertex-stack! . 76)) -(1709 (vertex-edges . 76)) -(1710 (set-vertex-edges! . 76)) -(1711 (vertex-data . 76)) -(1712 (vertex? . 76)) -(1713 (make-vertex . 76)) -(1714 (make-vertices . 76)) -(1715 (do-vertex . 76)) -(1716 (get-strong . 76)) -(1717 (end-vertex . 76)) -(1718 (unwind-stack . 76)) -(1719 (follow-edge . 76)) -(1720 (pop-vertex-edge! . 76)) -(1721 (find-usages . 73)) -(1722 (maybe-update-known-type . 73)) -(1723 (find-node-usages . 73)) -(1724 (analyze . 73)) -(1725 (analyze-nodes . 73)) -(1726 (usage-analyzers . 73)) -(1727 (define-usage-analyzer . 73)) -(1728 (nothing . 73)) -(1729 (add-if-free . 73)) -(1730 (:usage . 73)) -(1731 (really-make-usage . 73)) -(1732 (usage-assignment-count . 73)) -(1733 (set-assignment! . 73)) -(1734 (usage-operator-count . 73)) -(1735 (set-operator! . 73)) -(1736 (usage-reference-count . 73)) -(1737 (set-reference! . 73)) -(1738 (usage-name-node . 73)) -(1739 (usage? . 73)) -(1740 (make-usage . 73)) -(1741 (make-package-usage . 73)) -(1742 (package-usage? . 73)) -(1743 (usage-incrementator . 73)) -(1744 (note-reference! . 73)) -(1745 (note-operator! . 73)) -(1746 (note-assignment! . 73)) -(1747 (lambda-node? . 73)) -(1748 (quote-node? . 73)) -(1749 (literal-node? . 73)) -(1750 (call-node? . 73)) -(1751 (name-node? . 73)) -(1752 (define-node? . 73)) -(1753 (sort-forms . 73)) -(1754 (stuff-count . 73)) -(1755 (maybe-make-aliased . 73)) -(1756 (topologically-sort . 73)) -(1757 (:form . 73)) -(1758 (really-make-form . 73)) -(1759 (form-temp . 73)) -(1760 (set-form-temp! . 73)) -(1761 (form-free . 73)) -(1762 (set-form-free! . 73)) -(1763 (form-unaliased? . 73)) -(1764 (set-form-unaliased?! . 73)) -(1765 (form-aliases . 73)) -(1766 (set-form-aliases! . 73)) -(1767 (form-node . 73)) -(1768 (form? . 73)) -(1769 (make-form . 73)) -(1770 (insert-aliases . 73)) -(1771 (make-inline-transform . 75)) -(1772 (clean-node . 75)) -(1773 (clean-lambda . 75)) -(1774 (clean-lookup . 75)) -(1775 (unused-name . 75)) -(1776 (inline-transform . 75)) -(1777 (make-substitution . 75)) -(1778 (reconstitute . 75)) -(1779 (reconstitute-name . 75)) -(1780 (operator/name . 75)) -(1781 (operator/literal . 75)) -(1782 (qualified->name . 75)) -(1783 (get-qualified-env . 75)) -(1784 (quote-node? . 75)) -(1785 (call-node? . 75)) -(1786 (lambda-node? . 75)) -(1787 (name-node? . 75)) -(1788 (loophole-node? . 75)) -(1789 (operator . 82)) -(1790 (primop . 82)) -(1791 (simple-interface . 82)) -(1792 (package . 82)) -(1793 (transform . 82)) -(1794 (package-define-static! . 82)) -(1795 (:syntax . 71)) -(1796 (:values . 71)) -(1797 (:arguments . 71)) -(1798 (:value . 71)) -(1799 (procedure . 71)) -(1800 (:boolean . 71)) -(1801 (:char . 71)) -(1802 (:null . 71)) -(1803 (:unspecific . 71)) -(1804 (:number . 71)) -(1805 (:complex . 71)) -(1806 (:real . 71)) -(1807 (:rational . 71)) -(1808 (:integer . 71)) -(1809 (:exact-integer . 71)) -(1810 (:pair . 71)) -(1811 (:string . 71)) -(1812 (:symbol . 71)) -(1813 (:vector . 71)) -(1814 (:procedure . 71)) -(1815 (:input-port . 71)) -(1816 (:output-port . 71)) -(1817 (:error . 71)) -(1818 (:escape . 71)) -(1819 (:structure . 71)) -(1820 (:type . 71)) -(1821 (def . 70)) -(1822 (really-def . 70)) -(1823 (define-multiple . 70)) -(1824 (define-interface . 70)) -(1825 (compound-interface . 70)) -(1826 (export . 70)) -(1827 (define-structure . 70)) -(1828 (define-structures . 70)) -(1829 (structure . 70)) -(1830 (structures . 70)) -(1831 (a-package . 70)) -(1832 (receive . 70)) -(1833 (define-reflective-tower-maker . 70)) -(1834 (export-reflective-tower-maker . 70)) -(1835 (define-module . 70)) -(1836 (make-a-package . 70)) -(1837 (loser . 70)) -(1838 (interface-of . 70)) -(1839 (*verify-later!* . 70)) -(1840 (verify-later! . 70)) -(1841 (set-verify-later! . 70)) -(1842 (note-name! . 70)) -(1843 (optimizers-table . 68)) -(1844 (set-optimizer! . 68)) -(1845 (get-optimizer . 68)) -(1846 (apply-optimizers . 68)) -(1847 (collect-packages . 67)) -(1848 (package-source . 67)) -(1849 (read-files . 67)) -(1850 (package-optimizer-names . 67)) -(1851 (check-structure . 67)) -(1852 (compile-package . 69)) -(1853 (expand-package . 69)) -(1854 (define-usual-transform . 69)) -(1855 (define-primitives . 69)) -(1856 (make-define-primitive-node . 69)) -(1857 (operator/define . 69)) -(1858 (operator/primitive-procedure . 69)) -(1859 (analyze-forms . 74)) -(1860 (analyze-form . 74)) -(1861 (inlinable-rhs? . 74)) -(1862 (simple-lambda? . 74)) -(1863 (operator/name . 74)) -(1864 (simple? . 74)) -(1865 (simple-list? . 74)) -(1866 (analyzers . 74)) -(1867 (define-analyzer . 74)) -(1868 (static-value . 74)) -(1869 (really-simple-call? . 74)) -(1870 (lexical-node? . 74)) -(1871 (no-ret . 74)) -(1872 (ret . 74)) -(1873 (simple-literal? . 74)) -(1874 (require . 74)) -(1875 (*debug?* . 74)) -(1876 (package-lookup-type . 74)) -(1877 (lambda-node? . 74)) -(1878 (name-node? . 74)) -(1879 (loophole-node? . 74)) -(1880 (define-node? . 74)) -(1881 (flatten-form . 64)) -(1882 (flatten-node . 64)) -(1883 (flatteners . 64)) -(1884 (define-flattener . 64)) -(1885 (flatten-list . 64)) -(1886 (no-free-vars . 64)) -(1887 (flatten-lambda . 64)) -(1888 (convert-lambda-body . 64)) -(1889 (add-cells . 64)) -(1890 (assigned? . 64)) -(1891 (mark-set-variables! . 64)) -(1892 (mark-sets . 64)) -(1893 (define-set-marker . 64)) -(1894 (no-sets . 64)) -(1895 (make-cell . 64)) -(1896 (make-unassigned-cell . 64)) -(1897 (make-cell-ref . 64)) -(1898 (make-cell-set! . 64)) -(1899 (make-primop-call . 64)) -(1900 (operator/flat-lambda . 64)) -(1901 (operator/lambda . 64)) -(1902 (operator/begin . 64)) -(1903 (operator/literal . 64)) -(1904 (operator/call . 64)) -(1905 (operator/unassigned . 64)) -(1906 (operator/set! . 64)) -(1907 (define-node? . 64)) -(1908 (lambda-node? . 64)) -(1909 (define-primop . 64)) -(1910 (temp0 . 64)) -(1911 (make-cell-primop . 64)) -(1912 (temp1 . 64)) -(1913 (cell-ref-primop . 64)) -(1914 (temp2 . 64)) -(1915 (cell-set!-primop . 64)) -(1916 (union . 64)) -(1917 (set-difference . 64)) -(1918 (ensure-loaded . 81)) -- -; Template uid -> name, parent, pc in parent, env maps -(0 scheme-level-0 #f #f ()) -(1 atan 0 7 ()) -(2 scheme-level-0 #f #f ()) -(3 set-location-defined?! 2 7 ()) -(4 scheme-level-0 #f #f ()) -(5 acos 4 7 ()) -(6 scheme-level-0 #f #f ()) -(7 vm-extension 6 7 ()) -(8 scheme-level-0 #f #f ()) -(9 asin 8 7 ()) -(10 scheme-level-0 #f #f ()) -(11 location-defined? 10 7 ()) -(12 scheme-level-0 #f #f ()) -(13 time 12 7 ()) -(14 scheme-level-0 #f #f ()) -(15 template-set! 14 7 ()) -(16 scheme-level-0 #f #f ()) -(17 scheme-level-0 #f #f ()) -(18 cons 17 7 ()) -(19 scheme-level-0 #f #f ()) -(20 wait 19 7 ()) -(21 scheme-level-0 #f #f ()) -(22 trap 21 7 ()) -(23 scheme-level-0 #f #f ()) -(24 assq 23 7 ()) -(25 scheme-level-0 #f #f ()) -(26 make-weak-pointer 25 7 ()) -(27 scheme-level-0 #f #f ()) -(28 lookup-shared-binding 27 7 ()) -(29 scheme-level-0 #f #f ()) -(30 push 29 7 ()) -(31 scheme-level-0 #f #f ()) -(32 set-contents! 31 7 ()) -(33 scheme-level-0 #f #f ()) -(34 read-char 33 7 ()) -(35 scheme-level-0 #f #f ()) -(36 make-cell 35 7 ()) -(37 scheme-level-0 #f #f ()) -(38 sqrt 37 7 ()) -(39 scheme-level-0 #f #f ()) -(40 * 39 7 ()) -(41 scheme-level-0 #f #f ()) -(42 contents 41 7 ()) -(43 scheme-level-0 #f #f ()) -(44 + 43 7 ()) -(45 scheme-level-0 #f #f ()) -(46 peek-char 45 7 ()) -(47 scheme-level-0 #f #f ()) -(48 - 47 7 ()) -(49 scheme-level-0 #f #f ()) -(50 continuation-set! 49 7 ()) -(51 scheme-level-0 #f #f ()) -(52 / 51 7 ()) -(53 scheme-level-0 #f #f ()) -(54 weak-pointer? 53 7 ()) -(55 scheme-level-0 #f #f ()) -(56 quotient 55 7 ()) -(57 scheme-level-0 #f #f ()) -(58 close-channel 57 7 ()) -(59 scheme-level-0 #f #f ()) -(60 channel-abort 59 7 ()) -(61 scheme-level-0 #f #f ()) -(62 char? 61 7 ()) -(63 scheme-level-0 #f #f ()) -(64 < 63 7 ()) -(65 scheme-level-0 #f #f ()) -(66 = 65 7 ()) -(67 scheme-level-0 #f #f ()) -(68 > 67 7 ()) -(69 scheme-level-0 #f #f ()) -(70 make-location 69 7 ()) -(71 scheme-level-0 #f #f ()) -(72 imag-part 71 7 ()) -(73 scheme-level-0 #f #f ()) -(74 set-port-data! 73 7 ()) -(75 scheme-level-0 #f #f ()) -(76 make-template 75 7 ()) -(77 scheme-level-0 #f #f ()) -(78 real? 77 7 ()) -(79 scheme-level-0 #f #f ()) -(80 real-part 79 7 ()) -(81 scheme-level-0 #f #f ()) -(82 get-cont-from-heap 81 7 ()) -(83 scheme-level-0 #f #f ()) -(84 record-length 83 7 ()) -(85 scheme-level-0 #f #f ()) -(86 port-data 85 7 ()) -(87 scheme-level-0 #f #f ()) -(88 pair? 87 7 ()) -(89 scheme-level-0 #f #f ()) -(90 make-port 89 7 ()) -(91 scheme-level-0 #f #f ()) -(92 set-port-lock! 91 7 ()) -(93 scheme-level-0 #f #f ()) -(94 return-from-exception 93 7 ()) -(95 scheme-level-0 #f #f ()) -(96 location? 95 7 ()) -(97 scheme-level-0 #f #f ()) -(98 channel-maybe-read 97 7 ()) -(99 scheme-level-0 #f #f ()) -(100 checked-record-ref 99 7 ()) -(101 scheme-level-0 #f #f ()) -(102 add-finalizer! 101 7 ()) -(103 scheme-level-0 #f #f ()) -(104 rational? 103 7 ()) -(105 scheme-level-0 #f #f ()) -(106 template? 105 7 ()) -(107 scheme-level-0 #f #f ()) -(108 port-lock 107 7 ()) -(109 scheme-level-0 #f #f ()) -(110 vector-length 109 7 ()) -(111 scheme-level-0 #f #f ()) -(112 make-continuation 111 7 ()) -(113 scheme-level-0 #f #f ()) -(114 string-length 113 7 ()) -(115 scheme-level-0 #f #f ()) -(116 shared-binding-ref 115 7 ()) -(117 scheme-level-0 #f #f ()) -(118 port? 117 7 ()) -(119 scheme-level-0 #f #f ()) -(120 angle 119 7 ()) -(121 scheme-level-0 #f #f ()) -(122 false 121 7 ()) -(123 scheme-level-0 #f #f ()) -(124 remainder 123 7 ()) -(125 scheme-level-0 #f #f ()) -(126 continuation? 125 7 ()) -(127 scheme-level-0 #f #f ()) -(128 binary-reduce1 127 7 ()) -(129 scheme-level-0 #f #f ()) -(130 binary-reduce2 129 7 ()) -(131 scheme-level-0 #f #f ()) -(132 char= 139 7 ()) -(141 scheme-level-0 #f #f ()) -(142 with-continuation 141 7 ()) -(143 scheme-level-0 #f #f ()) -(144 floor 143 7 ()) -(145 scheme-level-0 #f #f ()) -(146 apply 145 7 ()) -(147 scheme-level-0 #f #f ()) -(148 memory-status 147 7 ()) -(149 scheme-level-0 #f #f ()) -(150 checked-record-set! 149 7 ()) -(151 scheme-level-0 #f #f ()) -(152 inexact->exact 151 7 ()) -(153 scheme-level-0 #f #f ()) -(154 exact->inexact 153 7 ()) -(155 scheme-level-0 #f #f ()) -(156 error 155 7 ()) -(157 scheme-level-0 #f #f ()) -(158 extended-number-length 157 7 ()) -(159 scheme-level-0 #f #f ()) -(160 open-channels-list 159 7 ()) -(161 scheme-level-0 #f #f ()) -(162 channel-id 161 7 ()) -(163 scheme-level-0 #f #f ()) -(164 shared-binding-set! 163 7 ()) -(165 scheme-level-0 #f #f ()) -(166 numerator 165 7 ()) -(167 scheme-level-0 #f #f ()) -(168 eof-object 167 7 ()) -(169 scheme-level-0 #f #f ()) -(170 byte-vector-length 169 7 ()) -(171 scheme-level-0 #f #f ()) -(172 record-ref 171 7 ()) -(173 scheme-level-0 #f #f ()) -(174 make-polar 173 7 ()) -(175 scheme-level-0 #f #f ()) -(176 write-char 175 7 ()) -(177 scheme-level-0 #f #f ()) -(178 symbol->string 177 7 ()) -(179 scheme-level-0 #f #f ()) -(180 exact? 179 7 ()) -(181 scheme-level-0 #f #f ()) -(182 vector-ref 181 7 ()) -(183 scheme-level-0 #f #f ()) -(184 set-current-thread! 183 7 ()) -(185 scheme-level-0 #f #f ()) -(186 immutable? 185 7 ()) -(187 scheme-level-0 #f #f ()) -(188 set-exception-handlers! 187 7 ()) -(189 scheme-level-0 #f #f ()) -(190 string-ref 189 7 ()) -(191 scheme-level-0 #f #f ()) -(192 set-port-index! 191 7 ()) -(193 scheme-level-0 #f #f ()) -(194 make-shared-binding 193 7 ()) -(195 scheme-level-0 #f #f ()) -(196 current-thread 195 7 ()) -(197 scheme-level-0 #f #f ()) -(198 channel-status 197 7 ()) -(199 scheme-level-0 #f #f ()) -(200 set-port-limit! 199 7 ()) -(201 scheme-level-0 #f #f ()) -(202 shared-binding-name 201 7 ()) -(203 scheme-level-0 #f #f ()) -(204 port-index 203 7 ()) -(205 scheme-level-0 #f #f ()) -(206 make-immutable! 205 7 ()) -(207 scheme-level-0 #f #f ()) -(208 set-enabled-interrupts! 207 7 ()) -(209 scheme-level-0 #f #f ()) -(210 port-limit 209 7 ()) -(211 scheme-level-0 #f #f ()) -(212 ascii->char 211 7 ()) -(213 scheme-level-0 #f #f ()) -(214 char->ascii 213 7 ()) -(215 scheme-level-0 #f #f ()) -(216 undefine-shared-binding 215 7 ()) -(217 scheme-level-0 #f #f ()) -(218 record-set! 217 7 ()) -(219 scheme-level-0 #f #f ()) -(220 shared-binding? 219 7 ()) -(221 scheme-level-0 #f #f ()) -(222 eof-object? 221 7 ()) -(223 scheme-level-0 #f #f ()) -(224 set-interrupt-handlers! 223 7 ()) -(225 scheme-level-0 #f #f ()) -(226 record 225 7 ()) -(227 scheme-level-0 #f #f ()) -(228 schedule-interrupt 227 7 ()) -(229 scheme-level-0 #f #f ()) -(230 channel-maybe-write 229 7 ()) -(231 scheme-level-0 #f #f ()) -(232 unspecific 231 7 ()) -(233 scheme-level-0 #f #f ()) -(234 extended-number-ref 233 7 ()) -(235 scheme-level-0 #f #f ()) -(236 vector-set! 235 7 ()) -(237 scheme-level-0 #f #f ()) -(238 copy-bytes! 237 7 ()) -(239 scheme-level-0 #f #f ()) -(240 string-set! 239 7 ()) -(241 scheme-level-0 #f #f ()) -(242 unassigned 241 7 ()) -(243 scheme-level-0 #f #f ()) -(244 call-external-value 243 7 ()) -(245 scheme-level-0 #f #f ()) -(246 values 245 7 ()) -(247 scheme-level-0 #f #f ()) -(248 intern 247 7 ()) -(249 scheme-level-0 #f #f ()) -(250 vector 249 7 ()) -(251 scheme-level-0 #f #f ()) -(252 byte-vector-ref 251 7 ()) -(253 scheme-level-0 #f #f ()) -(254 make-double 253 7 ()) -(255 scheme-level-0 #f #f ()) -(256 make-record 255 7 ()) -(257 scheme-level-0 #f #f ()) -(258 set-location-id! 257 7 ()) -(259 scheme-level-0 #f #f ()) -(260 location-id 259 7 ()) -(261 scheme-level-0 #f #f ()) -(262 bitwise-and 261 7 ()) -(263 scheme-level-0 #f #f ()) -(264 eq? 263 7 ()) -(265 scheme-level-0 #f #f ()) -(266 write-image 265 7 ()) -(267 scheme-level-0 #f #f ()) -(268 double? 267 7 ()) -(269 scheme-level-0 #f #f ()) -(270 extended-number-set! 269 7 ()) -(271 scheme-level-0 #f #f ()) -(272 make-vector 271 7 ()) -(273 scheme-level-0 #f #f ()) -(274 record? 273 7 ()) -(275 scheme-level-0 #f #f ()) -(276 make-string 275 7 ()) -(277 scheme-level-0 #f #f ()) -(278 set-port-buffer! 277 7 ()) -(279 scheme-level-0 #f #f ()) -(280 primitive-catch 279 7 ()) -(281 scheme-level-0 #f #f ()) -(282 string-hash 281 7 ()) -(283 scheme-level-0 #f #f ()) -(284 template-length 283 7 ()) -(285 scheme-level-0 #f #f ()) -(286 number? 285 7 ()) -(287 scheme-level-0 #f #f ()) -(288 port-buffer 287 7 ()) -(289 scheme-level-0 #f #f ()) -(290 byte-vector-set! 289 7 ()) -(291 scheme-level-0 #f #f ()) -(292 bitwise-ior 291 7 ()) -(293 scheme-level-0 #f #f ()) -(294 set-car! 293 7 ()) -(295 scheme-level-0 #f #f ()) -(296 closure-env 295 7 ()) -(297 scheme-level-0 #f #f ()) -(298 vector? 297 7 ()) -(299 scheme-level-0 #f #f ()) -(300 bitwise-not 299 7 ()) -(301 scheme-level-0 #f #f ()) -(302 set-cdr! 301 7 ()) -(303 scheme-level-0 #f #f ()) -(304 symbol? 303 7 ()) -(305 scheme-level-0 #f #f ()) -(306 string? 305 7 ()) -(307 scheme-level-0 #f #f ()) -(308 car 307 7 ()) -(309 scheme-level-0 #f #f ()) -(310 bitwise-xor 309 7 ()) -(311 scheme-level-0 #f #f ()) -(312 cdr 311 7 ()) -(313 scheme-level-0 #f #f ()) -(314 find-all-records 313 7 ()) -(315 scheme-level-0 #f #f ()) -(316 continuation-length 315 7 ()) -(317 scheme-level-0 #f #f ()) -(318 log 317 7 ()) -(319 scheme-level-0 #f #f ()) -(320 message 319 7 ()) -(321 scheme-level-0 #f #f ()) -(322 tan 321 7 ()) -(323 scheme-level-0 #f #f ()) -(324 collect 323 7 ()) -(325 scheme-level-0 #f #f ()) -(326 cos 325 7 ()) -(327 scheme-level-0 #f #f ()) -(328 channel-os-index 327 7 ()) -(329 scheme-level-0 #f #f ()) -(330 make-extended-number 329 7 ()) -(331 scheme-level-0 #f #f ()) -(332 set-port-status! 331 7 ()) -(333 scheme-level-0 #f #f ()) -(334 sin 333 7 ()) -(335 scheme-level-0 #f #f ()) -(336 exp 335 7 ()) -(337 scheme-level-0 #f #f ()) -(338 pop 337 7 ()) -(339 scheme-level-0 #f #f ()) -(340 port-status 339 7 ()) -(341 scheme-level-0 #f #f ()) -(342 return-from-callback 341 7 ()) -(343 scheme-level-0 #f #f ()) -(344 set-port-locked?! 343 7 ()) -(345 scheme-level-0 #f #f ()) -(346 make-byte-vector 345 7 ()) -(347 scheme-level-0 #f #f ()) -(348 weak-pointer-ref 347 7 ()) -(349 scheme-level-0 #f #f ()) -(350 call-with-values 349 7 ()) -(351 scheme-level-0 #f #f ()) -(352 denominator 351 7 ()) -(353 scheme-level-0 #f #f ()) -(354 reverse-list->string 353 7 ()) -(355 scheme-level-0 #f #f ()) -(356 port-locked? 355 7 ()) -(357 scheme-level-0 #f #f ()) -(358 extended-number? 357 7 ()) -(359 scheme-level-0 #f #f ()) -(360 shared-binding-is-import? 359 7 ()) -(361 scheme-level-0 #f #f ()) -(362 find-all 361 7 ()) -(363 scheme-level-0 #f #f ()) -(364 cell-ref 363 7 ()) -(365 scheme-level-0 #f #f ()) -(366 byte-vector? 365 7 ()) -(367 scheme-level-0 #f #f ()) -(368 string=? 367 7 ()) -(369 scheme-level-0 #f #f ()) -(370 open-channel 369 7 ()) -(371 scheme-level-0 #f #f ()) -(372 channel? 371 7 ()) -(373 scheme-level-0 #f #f ()) -(374 make-rectangular 373 7 ()) -(375 scheme-level-0 #f #f ()) -(376 set-session-data! 375 7 ()) -(377 scheme-level-0 #f #f ()) -(378 template-ref 377 7 ()) -(379 scheme-level-0 #f #f ()) -(380 make-closure 379 7 ()) -(381 scheme-level-0 #f #f ()) -(382 session-data 381 7 ()) -(383 scheme-level-0 #f #f ()) -(384 integer? 383 7 ()) -(385 scheme-level-0 #f #f ()) -(386 signal-condition 385 7 ()) -(387 scheme-level-0 #f #f ()) -(388 port-handler 387 7 ()) -(389 scheme-level-0 #f #f ()) -(390 set-port-pending-eof?! 389 7 ()) -(391 scheme-level-0 #f #f ()) -(392 define-shared-binding 391 7 ()) -(393 scheme-level-0 #f #f ()) -(394 arithmetic-shift 393 7 ()) -(395 scheme-level-0 #f #f ()) -(396 complex? 395 7 ()) -(397 scheme-level-0 #f #f ()) -(398 port-pending-eof? 397 7 ()) -(399 scheme-level-0 #f #f ()) -(400 cell-set! 399 7 ()) -(401 scheme-level-0 #f #f ()) -(402 binary-comparison-reduce2 401 7 ()) -(403 scheme-level-0 #f #f ()) -(404 scheme-level-0 #f #f ()) -(405 closure? 404 7 ()) -(406 scheme-level-0 #f #f ()) -(407 continuation-ref 406 7 ()) -(408 scheme-level-0 #f #f ()) -(409 closure-template 408 7 ()) -(410 scheme-level-0 #f #f ()) -(411 current-cont 410 7 ()) -(412 scheme-level-0 #f #f ()) -(413 char->integer 412 7 ()) -(414 scheme-level-0 #f #f ()) -(415 integer->char 414 7 ()) -(416 scheme-level-0 #f #f ()) -(417 invoke-closure 416 7 ()) -(418 scheme-level-0 #f #f ()) -(419 primitive-cwcc 418 7 ()) -(420 #f 419 8 ()) -(421 scheme-level-0 #f #f ()) -(422 make-undefined-location 421 7 ()) -(423 scheme-level-0 #f #f ()) -(424 location-assigned? 423 7 ()) -(425 scheme-level-0 #f #f ()) -(426 vector-unassigned? 425 7 ()) -(427 scheme-level-0 #f #f ()) -(428 string-copy 427 7 ()) -(429 scheme-level-0 #f #f ()) -(430 string->symbol 429 7 ()) -(431 scheme-level-0 #f #f ()) -(432 input-port? 431 7 ()) -(433 scheme-level-0 #f #f ()) -(434 output-port? 433 7 ()) -(435 scheme-level-0 #f #f ()) -(436 make-code-vector 435 7 ()) -(437 scheme-level-0 #f #f ()) -(438 code-vector? 437 7 ()) -(439 scheme-level-0 #f #f ()) -(440 code-vector-length 439 7 ()) -(441 scheme-level-0 #f #f ()) -(442 code-vector-ref 441 7 ()) -(443 scheme-level-0 #f #f ()) -(444 code-vector-set! 443 7 ()) -(445 scheme-level-0 #f #f ()) -(446 buffer-length 445 7 ()) -(447 scheme-level-0 #f #f ()) -(448 channel-read 447 7 ()) -(449 #f 448 6 ()) -(450 loop 449 19 ()) -(451 scheme-level-0 #f #f ()) -(452 channel-write 451 7 ()) -(453 loop 452 19 ()) -(454 scheme-level-0 #f #f ()) -(455 lookup-imported-binding 454 7 ()) -(456 scheme-level-0 #f #f ()) -(457 lookup-exported-binding 456 7 ()) -(458 scheme-level-0 #f #f ()) -(459 define-imported-binding 458 7 ()) -(460 scheme-level-0 #f #f ()) -(461 define-exported-binding 460 7 ()) -(462 scheme-level-0 #f #f ()) -(463 undefine-imported-binding 462 7 ()) -(464 scheme-level-0 #f #f ()) -(465 undefine-exported-binding 464 7 ()) -(466 scheme-level-0 #f #f ()) -(467 debug-message 466 7 ()) -(468 scheme-level-0 #f #f ()) -(469 signal 468 7 ()) -(470 scheme-level-0 #f #f ()) -(471 warn 470 7 ()) -(472 scheme-level-0 #f #f ()) -(473 syntax-error 472 7 ()) -(474 scheme-level-0 #f #f ()) -(475 call-error 474 7 ()) -(476 scheme-level-0 #f #f ()) -(477 scheme-level-0 #f #f ()) -(478 scheme-level-1 #f #f ()) -(479 scheme-level-1 #f #f ()) -(480 scheme-level-1 #f #f ()) -(481 scheme-level-1 #f #f ()) -(482 scheme-level-1 #f #f ()) -(483 scheme-level-1 #f #f ()) -(484 scheme-level-1 #f #f ()) -(485 scheme-level-1 #f #f ()) -(486 scheme-level-1 #f #f ()) -(487 scheme-level-1 #f #f ()) -(488 scheme-level-1 #f #f ()) -(489 scheme-level-1 #f #f ()) -(490 #f 489 11 ()) -(491 scheme-level-1 #f #f ()) -(492 #f 491 11 ()) -(493 scheme-level-1 #f #f ()) -(494 scheme-level-1 #f #f ()) -(495 scheme-level-1 #f #f ()) -(496 scheme-level-1 #f #f ()) -(497 scheme-level-1 #f #f ()) -(498 scheme-level-1 #f #f ()) -(499 scheme-level-1 #f #f ()) -(500 not 499 7 ()) -(501 scheme-level-1 #f #f ()) -(502 boolean? 501 7 ()) -(503 scheme-level-1 #f #f ()) -(504 eqv? 503 7 ()) -(505 scheme-level-1 #f #f ()) -(506 equal? 505 7 ()) -(507 loop 506 156 ()) -(508 scheme-level-1 #f #f ()) -(509 null? 508 7 ()) -(510 scheme-level-1 #f #f ()) -(511 inexact? 510 7 ()) -(512 scheme-level-1 #f #f ()) -(513 max-or-min 512 7 ()) -(514 loop 513 34 ()) -(515 scheme-level-1 #f #f ()) -(516 max 515 7 ()) -(517 scheme-level-1 #f #f ()) -(518 min 517 7 ()) -(519 scheme-level-1 #f #f ()) -(520 abs 519 7 ()) -(521 scheme-level-1 #f #f ()) -(522 zero? 521 7 ()) -(523 scheme-level-1 #f #f ()) -(524 positive? 523 7 ()) -(525 scheme-level-1 #f #f ()) -(526 negative? 525 7 ()) -(527 scheme-level-1 #f #f ()) -(528 even? 527 7 ()) -(529 scheme-level-1 #f #f ()) -(530 odd? 529 7 ()) -(531 scheme-level-1 #f #f ()) -(532 caar 531 7 ()) -(533 scheme-level-1 #f #f ()) -(534 cadr 533 7 ()) -(535 scheme-level-1 #f #f ()) -(536 cdar 535 7 ()) -(537 scheme-level-1 #f #f ()) -(538 cddr 537 7 ()) -(539 scheme-level-1 #f #f ()) -(540 caaar 539 7 ()) -(541 scheme-level-1 #f #f ()) -(542 caadr 541 7 ()) -(543 scheme-level-1 #f #f ()) -(544 cadar 543 7 ()) -(545 scheme-level-1 #f #f ()) -(546 caddr 545 7 ()) -(547 scheme-level-1 #f #f ()) -(548 cdaar 547 7 ()) -(549 scheme-level-1 #f #f ()) -(550 cdadr 549 7 ()) -(551 scheme-level-1 #f #f ()) -(552 cddar 551 7 ()) -(553 scheme-level-1 #f #f ()) -(554 cdddr 553 7 ()) -(555 scheme-level-1 #f #f ()) -(556 caaaar 555 7 ()) -(557 scheme-level-1 #f #f ()) -(558 caaadr 557 7 ()) -(559 scheme-level-1 #f #f ()) -(560 caadar 559 7 ()) -(561 scheme-level-1 #f #f ()) -(562 caaddr 561 7 ()) -(563 scheme-level-1 #f #f ()) -(564 cadaar 563 7 ()) -(565 scheme-level-1 #f #f ()) -(566 cadadr 565 7 ()) -(567 scheme-level-1 #f #f ()) -(568 caddar 567 7 ()) -(569 scheme-level-1 #f #f ()) -(570 cadddr 569 7 ()) -(571 scheme-level-1 #f #f ()) -(572 cdaaar 571 7 ()) -(573 scheme-level-1 #f #f ()) -(574 cdaadr 573 7 ()) -(575 scheme-level-1 #f #f ()) -(576 cdadar 575 7 ()) -(577 scheme-level-1 #f #f ()) -(578 cdaddr 577 7 ()) -(579 scheme-level-1 #f #f ()) -(580 cddaar 579 7 ()) -(581 scheme-level-1 #f #f ()) -(582 cddadr 581 7 ()) -(583 scheme-level-1 #f #f ()) -(584 cdddar 583 7 ()) -(585 scheme-level-1 #f #f ()) -(586 cddddr 585 7 ()) -(587 scheme-level-1 #f #f ()) -(588 list 587 7 ()) -(589 scheme-level-1 #f #f ()) -(590 real-length 589 7 ()) -(591 scheme-level-1 #f #f ()) -(592 length 591 7 ()) -(593 scheme-level-1 #f #f ()) -(594 reduce 593 7 ()) -(595 scheme-level-1 #f #f ()) -(596 append 595 7 ()) -(597 recur 596 34 ()) -(598 scheme-level-1 #f #f ()) -(599 append-reverse 598 7 ()) -(600 scheme-level-1 #f #f ()) -(601 reverse 600 7 ()) -(602 scheme-level-1 #f #f ()) -(603 list-tail 602 7 ()) -(604 scheme-level-1 #f #f ()) -(605 list-ref 604 7 ()) -(606 scheme-level-1 #f #f ()) -(607 mem 606 7 ()) -(608 #f 607 6 ()) -(609 loop 608 18 ()) -(610 scheme-level-1 #f #f ()) -(611 ass 610 7 ()) -(612 #f 611 6 ()) -(613 loop 612 18 ()) -(614 scheme-level-1 #f #f ()) -(615 list? 614 7 ()) -(616 recur 615 21 ()) -(617 scheme-level-1 #f #f ()) -(618 char>? 617 7 ()) -(619 scheme-level-1 #f #f ()) -(620 char>=? 619 7 ()) -(621 scheme-level-1 #f #f ()) -(622 char<=? 621 7 ()) -(623 scheme-level-1 #f #f ()) -(624 char-whitespace? 623 7 ()) -(625 scheme-level-1 #f #f ()) -(626 char-lower-case? 625 7 ()) -(627 scheme-level-1 #f #f ()) -(628 char-upper-case? 627 7 ()) -(629 scheme-level-1 #f #f ()) -(630 char-numeric? 629 7 ()) -(631 scheme-level-1 #f #f ()) -(632 char-alphabetic? 631 7 ()) -(633 scheme-level-1 #f #f ()) -(634 make-character-map 633 7 ()) -(635 loop##6 634 27 ()) -(636 scheme-level-1 #f #f ()) -(637 char-upcase 636 7 ()) -(638 scheme-level-1 #f #f ()) -(639 char-downcase 638 7 ()) -(640 scheme-level-1 #f #f ()) -(641 char-ci-compare 640 7 ()) -(642 #f 641 6 ()) -(643 scheme-level-1 #f #f ()) -(644 list->string 643 7 ()) -(645 loop##8 644 36 ()) -(646 scheme-level-1 #f #f ()) -(647 string 646 7 ()) -(648 scheme-level-1 #f #f ()) -(649 substring 648 7 ()) -(650 loop##9 649 26 ()) -(651 scheme-level-1 #f #f ()) -(652 string-append 651 7 ()) -(653 #f 652 12 ()) -(654 loop 652 60 ()) -(655 loop##10 654 40 ()) -(656 scheme-level-1 #f #f ()) -(657 string->list 656 7 ()) -(658 loop##11 657 18 ()) -(659 scheme-level-1 #f #f ()) -(660 unspecific 659 7 ()) -(661 scheme-level-1 #f #f ()) -(662 string-fill! 661 7 ()) -(663 loop##12 662 18 ()) -(664 scheme-level-1 #f #f ()) -(665 make-string=? 664 7 ()) -(666 #f 665 6 ()) -(667 loop 666 36 ()) -(668 scheme-level-1 #f #f ()) -(669 make-string? 672 7 ()) -(674 scheme-level-1 #f #f ()) -(675 string<=? 674 7 ()) -(676 scheme-level-1 #f #f ()) -(677 string>=? 676 7 ()) -(678 scheme-level-1 #f #f ()) -(679 string-ci>? 678 7 ()) -(680 scheme-level-1 #f #f ()) -(681 string-ci<=? 680 7 ()) -(682 scheme-level-1 #f #f ()) -(683 string-ci>=? 682 7 ()) -(684 scheme-level-1 #f #f ()) -(685 vector->list 684 7 ()) -(686 loop##14 685 11 ()) -(687 scheme-level-1 #f #f ()) -(688 list->vector 687 7 ()) -(689 loop##15 688 35 ()) -(690 scheme-level-1 #f #f ()) -(691 vector-fill! 690 7 ()) -(692 loop##16 691 19 ()) -(693 scheme-level-1 #f #f ()) -(694 map1 693 7 ()) -(695 scheme-level-1 #f #f ()) -(696 any 695 7 ()) -(697 scheme-level-1 #f #f ()) -(698 map2+ 697 7 ()) -(699 scheme-level-1 #f #f ()) -(700 map 699 7 ()) -(701 scheme-level-1 #f #f ()) -(702 for-each1 701 7 ()) -(703 loop 702 18 ()) -(704 scheme-level-1 #f #f ()) -(705 for-each2+ 704 7 ()) -(706 loop 705 21 ()) -(707 scheme-level-1 #f #f ()) -(708 for-each 707 7 ()) -(709 scheme-level-1 #f #f ()) -(710 make-promise 709 7 ()) -(711 #f 710 11 ()) -(712 scheme-level-1 #f #f ()) -(713 force 712 7 ()) -(714 scheme-level-1 #f #f ()) -(715 filter 714 7 ()) -(716 #f 715 6 ()) -(717 scheme-level-1 #f #f ()) -(718 pos 717 7 ()) -(719 #f 718 6 ()) -(720 loop 719 22 ()) -(721 scheme-level-1 #f #f ()) -(722 every 721 7 ()) -(723 scheme-level-1 #f #f ()) -(724 sublist 723 7 ()) -(725 recur 724 58 ()) -(726 scheme-level-1 #f #f ()) -(727 last 726 7 ()) -(728 scheme-level-1 #f #f ()) -(729 insert 728 7 ()) -(730 scheme-level-1 #f #f ()) -(731 fold 730 7 ()) -(732 loop##20 731 11 ()) -(733 scheme-level-1 #f #f ()) -(734 fold->2 733 7 ()) -(735 loop 734 24 ()) -(736 #f 735 25 ()) -(737 scheme-level-1 #f #f ()) -(738 fold->3 737 7 ()) -(739 loop 738 27 ()) -(740 #f 739 28 ()) -(741 scheme-level-1 #f #f ()) -(742 modulo 741 7 ()) -(743 scheme-level-1 #f #f ()) -(744 ceiling 743 7 ()) -(745 scheme-level-1 #f #f ()) -(746 truncate 745 7 ()) -(747 scheme-level-1 #f #f ()) -(748 round 747 7 ()) -(749 scheme-level-1 #f #f ()) -(750 euclid 749 7 ()) -(751 scheme-level-1 #f #f ()) -(752 gcd 751 7 ()) -(753 #f 752 8 ()) -(754 scheme-level-1 #f #f ()) -(755 lcm 754 7 ()) -(756 #f 755 8 ()) -(757 scheme-level-1 #f #f ()) -(758 raise-to-integer-power 757 7 ()) -(759 loop 758 39 ()) -(760 scheme-level-1 #f #f ()) -(761 expt 760 7 ()) -(762 scheme-level-1 #f #f ()) -(763 simplest-rational 762 7 ()) -(764 simplest-rational-internal 763 11 ()) -(765 scheme-level-1 #f #f ()) -(766 rationalize 765 7 ()) -(767 records #f #f ()) -(768 #f 767 7 ()) -(769 records #f #f ()) -(770 records #f #f ()) -(771 records #f #f ()) -(772 records #f #f ()) -(773 record-type 772 7 ()) -(774 records #f #f ()) -(775 record-type-name 774 7 ()) -(776 records #f #f ()) -(777 make-default-record-discloser 776 7 ()) -(778 #f 777 6 ()) -(779 records #f #f ()) -(780 make-record-type 779 7 ()) -(781 records #f #f ()) -(782 record-type? 781 7 ()) -(783 records #f #f ()) -(784 record-type-resumer 783 7 ()) -(785 records #f #f ()) -(786 set-record-type-resumer! 785 7 ()) -(787 records #f #f ()) -(788 record-type-uid 787 7 ()) -(789 records #f #f ()) -(790 record-type-field-names 789 7 ()) -(791 records #f #f ()) -(792 record-type-number-of-fields 791 7 ()) -(793 records #f #f ()) -(794 record-type-discloser 793 7 ()) -(795 records #f #f ()) -(796 set-record-type-discloser! 795 7 ()) -(797 records #f #f ()) -(798 record-field-index 797 7 ()) -(799 loop 798 28 ()) -(800 records #f #f ()) -(801 record-constructor 800 7 ()) -(802 #f 801 10 ()) -(803 #f 801 41 ()) -(804 loop 803 45 ()) -(805 records #f #f ()) -(806 record-accessor 805 7 ()) -(807 #f 806 62 ()) -(808 records #f #f ()) -(809 record-modifier 808 7 ()) -(810 #f 809 62 ()) -(811 records #f #f ()) -(812 record-predicate 811 7 ()) -(813 #f 812 6 ()) -(814 records #f #f ()) -(815 define-record-discloser 814 7 ()) -(816 records #f #f ()) -(817 disclose-record 816 7 ()) -(818 records #f #f ()) -(819 define-record-resumer 818 7 ()) -(820 records #f #f ()) -(821 resume-record 820 7 ()) -(822 records #f #f ()) -(823 initialize-records! 822 7 ()) -(824 loop##23 823 18 ()) -(825 records #f #f ()) -(826 records #f #f ()) -(827 records #f #f ()) -(828 records #f #f ()) -(829 define-record-types #f #f ()) -(830 methods #f #f ()) -(831 &add-method! 830 59 ()) -(832 methods #f #f ()) -(833 &disclose 832 52 ()) -(834 methods #f #f ()) -(835 &disclose 834 52 ()) -(836 methods #f #f ()) -(837 methods #f #f ()) -(838 disclose 837 56 ()) -(839 methods #f #f ()) -(840 &same-type? 839 56 ()) -(841 methods #f #f ()) -(842 &type-priority 841 52 ()) -(843 methods #f #f ()) -(844 &type-predicate 843 52 ()) -(845 methods #f #f ()) -(846 #f 845 11 ()) -(847 methods #f #f ()) -(848 singleton-value 847 7 ()) -(849 methods #f #f ()) -(850 singleton 849 7 ()) -(851 methods #f #f ()) -(852 methods #f #f ()) -(853 &same-type? 852 56 ()) -(854 methods #f #f ()) -(855 &same-type? 854 56 ()) -(856 methods #f #f ()) -(857 methods #f #f ()) -(858 same-type? 857 60 ()) -(859 methods #f #f ()) -(860 &type-superiors 859 52 ()) -(861 methods #f #f ()) -(862 &type-superiors 861 52 ()) -(863 methods #f #f ()) -(864 methods #f #f ()) -(865 type-superiors 864 56 ()) -(866 methods #f #f ()) -(867 &type-priority 866 52 ()) -(868 methods #f #f ()) -(869 &type-priority 868 52 ()) -(870 methods #f #f ()) -(871 methods #f #f ()) -(872 type-priority 871 56 ()) -(873 methods #f #f ()) -(874 &type-predicate 873 52 ()) -(875 methods #f #f ()) -(876 &type-predicate 875 52 ()) -(877 methods #f #f ()) -(878 methods #f #f ()) -(879 type-predicate 878 56 ()) -(880 methods #f #f ()) -(881 add-method! 880 52 ()) -(882 methods #f #f ()) -(883 methods #f #f ()) -(884 add-method! 883 60 ()) -(885 methods #f #f ()) -(886 #f 885 11 ()) -(887 methods #f #f ()) -(888 set-method-table-methods! 887 7 ()) -(889 methods #f #f ()) -(890 method-table-methods 889 7 ()) -(891 methods #f #f ()) -(892 method-table-prototype 891 7 ()) -(893 methods #f #f ()) -(894 make-generic 893 7 ()) -(895 methods #f #f ()) -(896 method-table-get-perform 895 7 ()) -(897 methods #f #f ()) -(898 method-table-set-perform! 897 7 ()) -(899 methods #f #f ()) -(900 method-table-id 899 7 ()) -(901 methods #f #f ()) -(902 really-make-method-table 901 7 ()) -(903 methods #f #f ()) -(904 methods #f #f ()) -(905 #f 904 11 ()) -(906 methods #f #f ()) -(907 method-info-types 906 7 ()) -(908 methods #f #f ()) -(909 method-info-n-ary? 908 7 ()) -(910 methods #f #f ()) -(911 method-info-proc 910 7 ()) -(912 methods #f #f ()) -(913 really-make-method-info 912 7 ()) -(914 methods #f #f ()) -(915 methods #f #f ()) -(916 record-type-priority 915 51 ()) -(917 methods #f #f ()) -(918 methods #f #f ()) -(919 methods #f #f ()) -(920 methods #f #f ()) -(921 methods #f #f ()) -(922 methods #f #f ()) -(923 methods #f #f ()) -(924 methods #f #f ()) -(925 methods #f #f ()) -(926 methods #f #f ()) -(927 methods #f #f ()) -(928 methods #f #f ()) -(929 methods #f #f ()) -(930 #f 929 25 ()) -(931 methods #f #f ()) -(932 methods #f #f ()) -(933 methods #f #f ()) -(934 methods #f #f ()) -(935 methods #f #f ()) -(936 methods #f #f ()) -(937 #f 936 25 ()) -(938 methods #f #f ()) -(939 methods #f #f ()) -(940 methods #f #f ()) -(941 methods #f #f ()) -(942 #f 941 11 ()) -(943 methods #f #f ()) -(944 simple-type-superiors 943 7 ()) -(945 methods #f #f ()) -(946 simple-type-predicate 945 7 ()) -(947 methods #f #f ()) -(948 simple-type-priority 947 7 ()) -(949 methods #f #f ()) -(950 simple-type-id 949 7 ()) -(951 methods #f #f ()) -(952 really-make-simple-type 951 7 ()) -(953 methods #f #f ()) -(954 methods #f #f ()) -(955 simple-type? 954 7 ()) -(956 methods #f #f ()) -(957 %type-priority 956 7 ()) -(958 methods #f #f ()) -(959 compute-priority 958 7 ()) -(960 methods #f #f ()) -(961 make-simple-type 960 7 ()) -(962 methods #f #f ()) -(963 %type-predicate 962 7 ()) -(964 methods #f #f ()) -(965 %same-type? 964 7 ()) -(966 methods #f #f ()) -(967 value? 966 7 ()) -(968 methods #f #f ()) -(969 method-info? 968 7 ()) -(970 methods #f #f ()) -(971 make-method-info 970 7 ()) -(972 methods #f #f ()) -(973 empty-method-list 972 7 ()) -(974 methods #f #f ()) -(975 more-specific-type? 974 7 ()) -(976 methods #f #f ()) -(977 more-specific? 976 7 ()) -(978 loop 977 148 ()) -(979 methods #f #f ()) -(980 every2 979 7 ()) -(981 methods #f #f ()) -(982 same-applicability? 981 7 ()) -(983 methods #f #f ()) -(984 insert-method 983 7 ()) -(985 recur 984 18 ()) -(986 methods #f #f ()) -(987 method-table? 986 7 ()) -(988 methods #f #f ()) -(989 last-action 988 7 ()) -(990 #f 989 6 ()) -(991 methods #f #f ()) -(992 one-action 991 7 ()) -(993 #f 992 6 ()) -(994 #f 993 20 ()) -(995 methods #f #f ()) -(996 check-for-next 995 7 ()) -(997 #f 996 6 ()) -(998 methods #f #f ()) -(999 check-next 998 7 ()) -(1000 #f 999 6 ()) -(1001 methods #f #f ()) -(1002 argument-sequence-predicate 1001 7 ()) -(1003 recur 1002 27 ()) -(1004 methods #f #f ()) -(1005 methods->perform 1004 7 ()) -(1006 recur 1005 18 ()) -(1007 methods #f #f ()) -(1008 add-to-method-table! 1007 7 ()) -(1009 methods #f #f ()) -(1010 set-final-method! 1009 7 ()) -(1011 methods #f #f ()) -(1012 make-cell-for-generic 1011 7 ()) -(1013 #f 1012 8 ()) -(1014 #f 1012 13 ()) -(1015 #f 1012 18 ()) -(1016 methods #f #f ()) -(1017 make-method-table 1016 7 ()) -(1018 #f 1017 53 ()) -(1019 #f 1017 79 ()) -(1020 methods #f #f ()) -(1021 apply-generic 1020 7 ()) -(1022 methods #f #f ()) -(1023 compare-to 1022 7 ()) -(1024 #f 1023 6 ()) -(1025 methods #f #f ()) -(1026 proc->discloser 1025 7 ()) -(1027 #f 1026 6 ()) -(1028 #f 1027 6 ()) -(1029 methods #f #f ()) -(1030 number-i/o #f #f ()) -(1031 string->integer 1030 24 ()) -(1032 do-it 1030 33 ()) -(1033 loop 1032 40 ()) -(1034 digit->integer 1030 42 ()) -(1035 number-i/o #f #f ()) -(1036 set-exactness 1035 7 ()) -(1037 number-i/o #f #f ()) -(1038 &really-string->number 1037 60 ()) -(1039 number-i/o #f #f ()) -(1040 #f 1039 25 ()) -(1041 loop 1040 31 ()) -(1042 number-i/o #f #f ()) -(1043 &really-string->number 1042 60 ()) -(1044 number-i/o #f #f ()) -(1045 number-i/o #f #f ()) -(1046 number-i/o #f #f ()) -(1047 string->number 1046 7 ()) -(1048 loop 1047 285 ()) -(1049 radix-is 1048 55 ()) -(1050 exactness-is 1048 60 ()) -(1051 loop 1048 300 ()) -(1052 number-i/o #f #f ()) -(1053 integer->string 1052 22 ()) -(1054 recur 1053 52 ()) -(1055 integer->digit 1052 31 ()) -(1056 number-i/o #f #f ()) -(1057 &number->string 1056 56 ()) -(1058 number-i/o #f #f ()) -(1059 &number->string 1058 56 ()) -(1060 number-i/o #f #f ()) -(1061 number->string 1060 7 ()) -(1062 number-i/o #f #f ()) -(1063 number-i/o #f #f ()) -(1064 fluids #f #f ()) -(1065 fluids #f #f ()) -(1066 set-fluid-top-level-value! 1065 7 ()) -(1067 fluids #f #f ()) -(1068 fluid-top-level-value 1067 7 ()) -(1069 fluids #f #f ()) -(1070 make-fluid 1069 7 ()) -(1071 fluids #f #f ()) -(1072 fluids #f #f ()) -(1073 thread-dynamic-env 1072 7 ()) -(1074 fluids #f #f ()) -(1075 thread-dynamic-point 1074 7 ()) -(1076 fluids #f #f ()) -(1077 make-thread 1076 7 ()) -(1078 fluids #f #f ()) -(1079 fluids #f #f ()) -(1080 get-dynamic-env 1079 7 ()) -(1081 fluids #f #f ()) -(1082 set-dynamic-env! 1081 7 ()) -(1083 fluids #f #f ()) -(1084 get-dynamic-point 1083 7 ()) -(1085 fluids #f #f ()) -(1086 set-dynamic-point! 1085 7 ()) -(1087 fluids #f #f ()) -(1088 empty-dynamic-env 1087 7 ()) -(1089 fluids #f #f ()) -(1090 initialize-dynamic-state! 1089 7 ()) -(1091 fluids #f #f ()) -(1092 with-dynamic-env 1091 7 ()) -(1093 #f 1092 38 ()) -(1094 fluids #f #f ()) -(1095 fluid 1094 7 ()) -(1096 fluids #f #f ()) -(1097 set-fluid! 1096 7 ()) -(1098 fluids #f #f ()) -(1099 let-fluid 1098 7 ()) -(1100 fluids #f #f ()) -(1101 let-fluids 1100 7 ()) -(1102 loop 1101 30 ()) -(1103 enumerated #f #f ()) -(1104 lookup-enumerand 1103 7 ()) -(1105 loop 1104 27 ()) -(1106 architecture #f #f ()) -(1107 architecture #f #f ()) -(1108 architecture #f #f ()) -(1109 architecture #f #f ()) -(1110 architecture #f #f ()) -(1111 architecture #f #f ()) -(1112 architecture #f #f ()) -(1113 architecture #f #f ()) -(1114 architecture #f #f ()) -(1115 architecture #f #f ()) -(1116 architecture #f #f ()) -(1117 architecture #f #f ()) -(1118 architecture #f #f ()) -(1119 architecture #f #f ()) -(1120 architecture #f #f ()) -(1121 architecture #f #f ()) -(1122 architecture #f #f ()) -(1123 architecture #f #f ()) -(1124 architecture #f #f ()) -(1125 architecture #f #f ()) -(1126 architecture #f #f ()) -(1127 architecture #f #f ()) -(1128 architecture #f #f ()) -(1129 next-protocol 1128 7 ()) -(1130 architecture #f #f ()) -(1131 architecture #f #f ()) -(1132 architecture #f #f ()) -(1133 architecture #f #f ()) -(1134 architecture #f #f ()) -(1135 architecture #f #f ()) -(1136 architecture #f #f ()) -(1137 architecture #f #f ()) -(1138 architecture #f #f ()) -(1139 architecture #f #f ()) -(1140 architecture #f #f ()) -(1141 architecture #f #f ()) -(1142 architecture #f #f ()) -(1143 architecture #f #f ()) -(1144 queues #f #f ()) -(1145 queue-uid 1144 7 ()) -(1146 queues #f #f ()) -(1147 set-queue-head! 1146 7 ()) -(1148 queues #f #f ()) -(1149 queue-head 1148 7 ()) -(1150 queues #f #f ()) -(1151 set-queue-tail! 1150 7 ()) -(1152 queues #f #f ()) -(1153 queue-tail 1152 7 ()) -(1154 queues #f #f ()) -(1155 really-make-queue 1154 7 ()) -(1156 queues #f #f ()) -(1157 queues #f #f ()) -(1158 queue? 1157 7 ()) -(1159 queues #f #f ()) -(1160 make-queue 1159 7 ()) -(1161 queues #f #f ()) -(1162 queue-empty? 1161 7 ()) -(1163 queues #f #f ()) -(1164 enqueue! 1163 7 ()) -(1165 queues #f #f ()) -(1166 queue-front 1165 7 ()) -(1167 queues #f #f ()) -(1168 dequeue! 1167 7 ()) -(1169 queues #f #f ()) -(1170 on-queue? 1169 7 ()) -(1171 queues #f #f ()) -(1172 delete-from-queue-if! 1171 7 ()) -(1173 loop 1172 130 ()) -(1174 queues #f #f ()) -(1175 delete-from-queue! 1174 7 ()) -(1176 #f 1175 9 ()) -(1177 queues #f #f ()) -(1178 queue->list 1177 7 ()) -(1179 #f 1178 6 ()) -(1180 queues #f #f ()) -(1181 queue-length 1180 7 ()) -(1182 queues #f #f ()) -(1183 conditions #f #f ()) -(1184 conditions #f #f ()) -(1185 conditions #f #f ()) -(1186 conditions #f #f ()) -(1187 conditions #f #f ()) -(1188 conditions #f #f ()) -(1189 conditions #f #f ()) -(1190 make-exception 1189 7 ()) -(1191 conditions #f #f ()) -(1192 conditions #f #f ()) -(1193 conditions #f #f ()) -(1194 conditions #f #f ()) -(1195 conditions #f #f ()) -(1196 conditions #f #f ()) -(1197 conditions #f #f ()) -(1198 conditions #f #f ()) -(1199 conditions #f #f ()) -(1200 conditions #f #f ()) -(1201 conditions #f #f ()) -(1202 conditions #f #f ()) -(1203 conditions #f #f ()) -(1204 conditions #f #f ()) -(1205 condition? 1204 7 ()) -(1206 conditions #f #f ()) -(1207 condition-predicate 1206 7 ()) -(1208 #f 1207 6 ()) -(1209 conditions #f #f ()) -(1210 define-condition-type 1209 7 ()) -(1211 #f 1210 17 ()) -(1212 conditions #f #f ()) -(1213 condition-supertypes 1212 7 ()) -(1214 conditions #f #f ()) -(1215 session-data #f #f ()) -(1216 make-session-data-slot! 1215 7 ()) -(1217 session-data #f #f ()) -(1218 session-data-ref 1217 7 ()) -(1219 session-data #f #f ()) -(1220 session-data-set! 1219 7 ()) -(1221 session-data #f #f ()) -(1222 initialize-session-data! 1221 7 ()) -(1223 session-data #f #f ()) -(1224 interrupts #f #f ()) -(1225 #f 1224 11 ()) -(1226 interrupts #f #f ()) -(1227 interrupts #f #f ()) -(1228 interrupts #f #f ()) -(1229 interrupts #f #f ()) -(1230 enabled-interrupts 1229 7 ()) -(1231 interrupts #f #f ()) -(1232 post-gc-handler 1231 7 ()) -(1233 #f 1232 6 ()) -(1234 #f 1233 42 ()) -(1235 #f 1233 58 ()) -(1236 #f 1235 7 ()) -(1237 #f 1235 21 ()) -(1238 interrupts #f #f ()) -(1239 initialize-interrupts! 1238 7 ()) -(1240 #f 1239 6 ()) -(1241 loop##72 1240 32 ()) -(1242 #f 1241 32 ()) -(1243 #f 1240 78 ()) -(1244 #f 1243 11 ()) -(1245 interrupts #f #f ()) -(1246 set-interrupt-handler! 1245 7 ()) -(1247 interrupts #f #f ()) -(1248 with-interrupts 1247 7 ()) -(1249 #f 1248 13 ()) -(1250 interrupts #f #f ()) -(1251 with-interrupts-inhibited 1250 7 ()) -(1252 interrupts #f #f ()) -(1253 with-interrupts-allowed 1252 7 ()) -(1254 interrupts #f #f ()) -(1255 disable-interrupts! 1254 7 ()) -(1256 interrupts #f #f ()) -(1257 enable-interrupts! 1256 7 ()) -(1258 interrupts #f #f ()) -(1259 call-after-gc! 1258 7 ()) -(1260 interrupts #f #f ()) -(1261 call-before-heap-overflow! 1260 7 ()) -(1262 interrupts #f #f ()) -(1263 interrupts #f #f ()) -(1264 wind #f #f ()) -(1265 point-depth 1264 7 ()) -(1266 wind #f #f ()) -(1267 point-in 1266 7 ()) -(1268 wind #f #f ()) -(1269 point-out 1268 7 ()) -(1270 wind #f #f ()) -(1271 point-dynamic-env 1270 7 ()) -(1272 wind #f #f ()) -(1273 point-parent 1272 7 ()) -(1274 wind #f #f ()) -(1275 make-point 1274 7 ()) -(1276 wind #f #f ()) -(1277 wind #f #f ()) -(1278 dynamic-wind 1277 7 ()) -(1279 wind #f #f ()) -(1280 travel-to-point! 1279 7 ()) -(1281 wind #f #f ()) -(1282 continuation->procedure 1281 7 ()) -(1283 #f 1282 6 ()) -(1284 #f 1283 60 ()) -(1285 wind #f #f ()) -(1286 call-with-current-continuation 1285 7 ()) -(1287 #f 1286 6 ()) -(1288 templates #f #f ()) -(1289 template-code 1288 7 ()) -(1290 templates #f #f ()) -(1291 template-info 1290 7 ()) -(1292 templates #f #f ()) -(1293 set-template-code! 1292 7 ()) -(1294 templates #f #f ()) -(1295 set-template-info! 1294 7 ()) -(1296 templates #f #f ()) -(1297 more-types #f #f ()) -(1298 &disclose 1297 48 ()) -(1299 more-types #f #f ()) -(1300 more-types #f #f ()) -(1301 &disclose 1300 52 ()) -(1302 more-types #f #f ()) -(1303 more-types #f #f ()) -(1304 more-types #f #f ()) -(1305 more-types #f #f ()) -(1306 more-types #f #f ()) -(1307 more-types #f #f ()) -(1308 more-types #f #f ()) -(1309 more-types #f #f ()) -(1310 continuations #f #f ()) -(1311 &disclose 1310 48 ()) -(1312 continuations #f #f ()) -(1313 continuations #f #f ()) -(1314 continuations #f #f ()) -(1315 continuation-cont 1314 7 ()) -(1316 continuations #f #f ()) -(1317 real-continuation-pc 1316 7 ()) -(1318 continuations #f #f ()) -(1319 real-continuation-template 1318 7 ()) -(1320 continuations #f #f ()) -(1321 continuation-env 1320 7 ()) -(1322 continuations #f #f ()) -(1323 exception-continuation-pc 1322 7 ()) -(1324 continuations #f #f ()) -(1325 exception-continuation-template 1324 7 ()) -(1326 continuations #f #f ()) -(1327 exception-continuation-exception 1326 7 ()) -(1328 continuations #f #f ()) -(1329 exception-continuation? 1328 7 ()) -(1330 continuations #f #f ()) -(1331 continuation-pc 1330 7 ()) -(1332 continuations #f #f ()) -(1333 continuation-template 1332 7 ()) -(1334 continuations #f #f ()) -(1335 continuation-arg 1334 7 ()) -(1336 continuations #f #f ()) -(1337 continuation-arg-count 1336 7 ()) -(1338 continuations #f #f ()) -(1339 continuation-parent 1338 7 ()) -(1340 loop 1339 105 ()) -(1341 continuations #f #f ()) -(1342 exceptions #f #f ()) -(1343 &disclose 1342 48 ()) -(1344 exceptions #f #f ()) -(1345 &disclose 1344 52 ()) -(1346 exceptions #f #f ()) -(1347 report-errors-as-warnings 1346 7 ()) -(1348 #f 1347 12 ()) -(1349 exceptions #f #f ()) -(1350 ignore-errors 1349 7 ()) -(1351 #f 1350 6 ()) -(1352 #f 1351 6 ()) -(1353 exceptions #f #f ()) -(1354 continuation-preview 1353 7 ()) -(1355 exceptions #f #f ()) -(1356 report-utter-lossage 1355 7 ()) -(1357 #f 1356 183 ()) -(1358 exceptions #f #f ()) -(1359 last-resort-condition-handler 1358 7 ()) -(1360 #f 1359 15 ()) -(1361 #f 1360 23 ()) -(1362 exceptions #f #f ()) -(1363 initialize-exceptions! 1362 7 ()) -(1364 #f 1363 6 ()) -(1365 exceptions #f #f ()) -(1366 exceptions #f #f ()) -(1367 with-handler 1366 7 ()) -(1368 exceptions #f #f ()) -(1369 really-signal-condition 1368 7 ()) -(1370 loop 1369 29 ()) -(1371 #f 1370 9 ()) -(1372 exceptions #f #f ()) -(1373 extend-opcode! 1372 7 ()) -(1374 except 1373 6 ()) -(1375 #f 1373 32 ()) -(1376 exceptions #f #f ()) -(1377 #f 1376 11 ()) -(1378 exceptions #f #f ()) -(1379 exceptions #f #f ()) -(1380 signal-exception 1379 7 ()) -(1381 exceptions #f #f ()) -(1382 define-exception-handler 1381 7 ()) -(1383 threads #f #f ()) -(1384 threads #f #f ()) -(1385 threads #f #f ()) -(1386 threads #f #f ()) -(1387 threads #f #f ()) -(1388 threads #f #f ()) -(1389 threads #f #f ()) -(1390 threads #f #f ()) -(1391 threads #f #f ()) -(1392 threads #f #f ()) -(1393 #f 1392 11 ()) -(1394 threads #f #f ()) -(1395 thread-dynamic-env 1394 7 ()) -(1396 threads #f #f ()) -(1397 set-thread-dynamic-point! 1396 7 ()) -(1398 threads #f #f ()) -(1399 thread-dynamic-point 1398 7 ()) -(1400 threads #f #f ()) -(1401 set-thread-continuation! 1400 7 ()) -(1402 threads #f #f ()) -(1403 thread-continuation 1402 7 ()) -(1404 threads #f #f ()) -(1405 set-thread-queue! 1404 7 ()) -(1406 threads #f #f ()) -(1407 thread-queue 1406 7 ()) -(1408 threads #f #f ()) -(1409 set-thread-arguments! 1408 7 ()) -(1410 threads #f #f ()) -(1411 thread-arguments 1410 7 ()) -(1412 threads #f #f ()) -(1413 set-thread-time! 1412 7 ()) -(1414 threads #f #f ()) -(1415 thread-time 1414 7 ()) -(1416 threads #f #f ()) -(1417 set-thread-scheduler! 1416 7 ()) -(1418 threads #f #f ()) -(1419 thread-scheduler 1418 7 ()) -(1420 threads #f #f ()) -(1421 set-thread-data! 1420 7 ()) -(1422 threads #f #f ()) -(1423 thread-data 1422 7 ()) -(1424 threads #f #f ()) -(1425 set-thread-events! 1424 7 ()) -(1426 threads #f #f ()) -(1427 thread-events 1426 7 ()) -(1428 threads #f #f ()) -(1429 set-thread-current-task! 1428 7 ()) -(1430 threads #f #f ()) -(1431 thread-current-task 1430 7 ()) -(1432 threads #f #f ()) -(1433 thread-uid 1432 7 ()) -(1434 threads #f #f ()) -(1435 thread-name 1434 7 ()) -(1436 threads #f #f ()) -(1437 really-make-thread 1436 7 ()) -(1438 threads #f #f ()) -(1439 threads #f #f ()) -(1440 thread? 1439 7 ()) -(1441 threads #f #f ()) -(1442 compose-continuation 1441 7 ()) -(1443 #f 1442 6 ()) -(1444 #f 1443 27 ()) -(1445 #f 1444 10 ()) -(1446 #f 1445 9 ()) -(1447 threads #f #f ()) -(1448 thunk->continuation 1447 7 ()) -(1449 threads #f #f ()) -(1450 interrupt-timer-time 1449 7 ()) -(1451 threads #f #f ()) -(1452 debit-down! 1451 7 ()) -(1453 loop 1452 28 ()) -(1454 threads #f #f ()) -(1455 run-thread 1454 7 ()) -(1456 #f 1455 44 ()) -(1457 threads #f #f ()) -(1458 switch-to-thread 1457 7 ()) -(1459 #f 1458 6 ()) -(1460 threads #f #f ()) -(1461 suspend-to 1460 7 ()) -(1462 threads #f #f ()) -(1463 suspend 1462 7 ()) -(1464 threads #f #f ()) -(1465 thread-top-level 1464 7 ()) -(1466 thread-start 1465 6 ()) -(1467 #f 1466 3 ()) -(1468 threads #f #f ()) -(1469 make-thread 1468 7 ()) -(1470 threads #f #f ()) -(1471 all-threads 1470 7 ()) -(1472 threads #f #f ()) -(1473 thread-uid->thread 1472 7 ()) -(1474 loop 1473 27 ()) -(1475 threads #f #f ()) -(1476 add-event! 1475 7 ()) -(1477 threads #f #f ()) -(1478 enqueue-thread! 1477 7 ()) -(1479 threads #f #f ()) -(1480 dequeue-thread! 1479 7 ()) -(1481 threads #f #f ()) -(1482 remove-thread-from-queue! 1481 7 ()) -(1483 threads #f #f ()) -(1484 event-pending? 1483 7 ()) -(1485 threads #f #f ()) -(1486 min 1485 7 ()) -(1487 threads #f #f ()) -(1488 schedule-interrupt! 1487 7 ()) -(1489 threads #f #f ()) -(1490 run-next-thread 1489 7 ()) -(1491 threads #f #f ()) -(1492 debit-thread-times-and-run! 1491 7 ()) -(1493 loop 1492 41 ()) -(1494 threads #f #f ()) -(1495 find-and-run-next-thread 1494 7 ()) -(1496 loop 1495 35 ()) -(1497 threads #f #f ()) -(1498 run 1497 7 ()) -(1499 threads #f #f ()) -(1500 handle-timer-interrupt 1499 7 ()) -(1501 threads #f #f ()) -(1502 exit 1501 7 ()) -(1503 threads #f #f ()) -(1504 wait 1503 7 ()) -(1505 threads #f #f ()) -(1506 waiting? 1505 7 ()) -(1507 threads #f #f ()) -(1508 block 1507 7 ()) -(1509 threads #f #f ()) -(1510 relinquish-timeslice 1509 7 ()) -(1511 threads #f #f ()) -(1512 running? 1511 7 ()) -(1513 loop 1512 25 ()) -(1514 threads #f #f ()) -(1515 interrupt-thread 1514 7 ()) -(1516 threads #f #f ()) -(1517 propogate-upcall 1516 7 ()) -(1518 #f 1517 62 ()) -(1519 threads #f #f ()) -(1520 upcall 1519 7 ()) -(1521 threads #f #f ()) -(1522 kill-thread! 1521 7 ()) -(1523 #f 1522 9 ()) -(1524 threads #f #f ()) -(1525 get-next-event! 1524 7 ()) -(1526 threads #f #f ()) -(1527 schedule-wakeup 1526 7 ()) -(1528 threads #f #f ()) -(1529 schedule-event 1528 7 ()) -(1530 threads #f #f ()) -(1531 show-running 1530 7 ()) -(1532 loop##111 1531 16 ()) -(1533 threads #f #f ()) -(1534 spawn-on-scheduler 1533 7 ()) -(1535 threads #f #f ()) -(1536 spawn 1535 7 ()) -(1537 threads #f #f ()) -(1538 root-scheduler 1537 7 ()) -(1539 threads #f #f ()) -(1540 spawn-on-root 1539 7 ()) -(1541 threads #f #f ()) -(1542 make-ready 1541 7 ()) -(1543 threads #f #f ()) -(1544 cancel-timer-interrupt! 1543 7 ()) -(1545 threads #f #f ()) -(1546 real-time 1545 7 ()) -(1547 threads #f #f ()) -(1548 start-multitasking 1547 7 ()) -(1549 #f 1548 6 ()) -(1550 #f 1549 6 ()) -(1551 #f 1549 11 ()) -(1552 #f 1551 7 ()) -(1553 #f 1552 6 ()) -(1554 #f 1552 11 ()) -(1555 threads #f #f ()) -(1556 with-threads 1555 7 ()) -(1557 #f 1556 10 ()) -(1558 #f 1557 3 ()) -(1559 #f 1557 8 ()) -(1560 #f 1557 13 ()) -(1561 threads #f #f ()) -(1562 terminate-current-thread 1561 7 ()) -(1563 threads #f #f ()) -(1564 insert 1563 7 ()) -(1565 threads #f #f ()) -(1566 sleep 1565 7 ()) -(1567 #f 1566 71 ()) -(1568 threads #f #f ()) -(1569 wake-some-threads 1568 7 ()) -(1570 loop 1569 46 ()) -(1571 threads #f #f ()) -(1572 threads #f #f ()) -(1573 threads #f #f ()) -(1574 threads #f #f ()) -(1575 locks #f #f ()) -(1576 set-lock-owner-uid! 1575 7 ()) -(1577 locks #f #f ()) -(1578 lock-owner-uid 1577 7 ()) -(1579 locks #f #f ()) -(1580 lock-queue 1579 7 ()) -(1581 locks #f #f ()) -(1582 lock-uid 1581 7 ()) -(1583 locks #f #f ()) -(1584 really-make-lock 1583 7 ()) -(1585 locks #f #f ()) -(1586 locks #f #f ()) -(1587 lock? 1586 7 ()) -(1588 locks #f #f ()) -(1589 make-lock 1588 7 ()) -(1590 locks #f #f ()) -(1591 obtain-lock 1590 7 ()) -(1592 #f 1591 10 ()) -(1593 locks #f #f ()) -(1594 maybe-obtain-lock 1593 7 ()) -(1595 #f 1594 10 ()) -(1596 locks #f #f ()) -(1597 release-lock 1596 7 ()) -(1598 #f 1597 10 ()) -(1599 locks #f #f ()) -(1600 i/o #f #f ()) -(1601 i/o #f #f ()) -(1602 i/o #f #f ()) -(1603 i/o #f #f ()) -(1604 #f 1603 11 ()) -(1605 #f 1603 16 ()) -(1606 #f 1603 21 ()) -(1607 i/o #f #f ()) -(1608 i/o #f #f ()) -(1609 i/o #f #f ()) -(1610 i/o #f #f ()) -(1611 i/o #f #f ()) -(1612 i/o #f #f ()) -(1613 i/o #f #f ()) -(1614 i/o #f #f ()) -(1615 i/o #f #f ()) -(1616 i/o #f #f ()) -(1617 &disclose 1616 52 ()) -(1618 i/o #f #f ()) -(1619 &disclose 1618 52 ()) -(1620 i/o #f #f ()) -(1621 port-handler-discloser 1620 7 ()) -(1622 i/o #f #f ()) -(1623 port-handler-close 1622 7 ()) -(1624 i/o #f #f ()) -(1625 port-handler-buffer-proc 1624 7 ()) -(1626 i/o #f #f ()) -(1627 make-port-handler 1626 7 ()) -(1628 i/o #f #f ()) -(1629 i/o #f #f ()) -(1630 port-handler? 1629 7 ()) -(1631 i/o #f #f ()) -(1632 disclose-port 1631 7 ()) -(1633 i/o #f #f ()) -(1634 obtain-port-lock 1633 7 ()) -(1635 i/o #f #f ()) -(1636 maybe-obtain-port-lock 1635 7 ()) -(1637 i/o #f #f ()) -(1638 release-port-lock 1637 7 ()) -(1639 i/o #f #f ()) -(1640 one-arg-proc->handler 1639 7 ()) -(1641 #f 1640 6 ()) -(1642 i/o #f #f ()) -(1643 fill-port-buffer! 1642 7 ()) -(1644 i/o #f #f ()) -(1645 read-char-handler 1644 7 ()) -(1646 #f 1645 6 ()) -(1647 i/o #f #f ()) -(1648 two-arg-proc->handler 1647 7 ()) -(1649 #f 1648 6 ()) -(1650 i/o #f #f ()) -(1651 empty-port-buffer! 1650 7 ()) -(1652 i/o #f #f ()) -(1653 write-char-handler 1652 7 ()) -(1654 i/o #f #f ()) -(1655 initialize-i/o-handlers! 1654 7 ()) -(1656 i/o #f #f ()) -(1657 open-input-port? 1656 7 ()) -(1658 i/o #f #f ()) -(1659 make-input-port-closed! 1658 7 ()) -(1660 i/o #f #f ()) -(1661 close-input-port 1660 7 ()) -(1662 i/o #f #f ()) -(1663 open-output-port? 1662 7 ()) -(1664 i/o #f #f ()) -(1665 really-force-output 1664 7 ()) -(1666 i/o #f #f ()) -(1667 make-output-port-closed! 1666 7 ()) -(1668 i/o #f #f ()) -(1669 close-output-port 1668 7 ()) -(1670 i/o #f #f ()) -(1671 open-port? 1670 7 ()) -(1672 i/o #f #f ()) -(1673 current-input-port 1672 7 ()) -(1674 i/o #f #f ()) -(1675 input-port-option 1674 7 ()) -(1676 i/o #f #f ()) -(1677 char-ready? 1676 7 ()) -(1678 i/o #f #f ()) -(1679 real-char-ready? 1678 7 ()) -(1680 i/o #f #f ()) -(1681 okay-limits? 1680 7 ()) -(1682 i/o #f #f ()) -(1683 read-more 1682 7 ()) -(1684 i/o #f #f ()) -(1685 buffer-length 1684 7 ()) -(1686 i/o #f #f ()) -(1687 really-read-block 1686 7 ()) -(1688 i/o #f #f ()) -(1689 read-block 1688 7 ()) -(1690 i/o #f #f ()) -(1691 write-unbuffered-block 1690 7 ()) -(1692 loop##127 1691 40 ()) -(1693 i/o #f #f ()) -(1694 write-buffered-block 1693 7 ()) -(1695 i/o #f #f ()) -(1696 write-block 1695 7 ()) -(1697 i/o #f #f ()) -(1698 write-string 1697 7 ()) -(1699 i/o #f #f ()) -(1700 force-output 1699 7 ()) -(1701 i/o #f #f ()) -(1702 force-output-if-open 1701 7 ()) -(1703 i/o #f #f ()) -(1704 okay-buffer? 1703 7 ()) -(1705 i/o #f #f ()) -(1706 make-input-port 1705 7 ()) -(1707 i/o #f #f ()) -(1708 make-output-port 1707 7 ()) -(1709 i/o #f #f ()) -(1710 make-unbuffered-output-port 1709 7 ()) -(1711 i/o #f #f ()) -(1712 make-null-output-port 1711 7 ()) -(1713 i/o #f #f ()) -(1714 initialize-output-port-list! 1713 7 ()) -(1715 i/o #f #f ()) -(1716 periodically-force-output! 1715 7 ()) -(1717 i/o #f #f ()) -(1718 make-forcing-thunk 1717 7 ()) -(1719 #f 1718 6 ()) -(1720 #f 1719 7 ()) -(1721 #f 1719 46 ()) -(1722 i/o #f #f ()) -(1723 output-port-forcers 1722 7 ()) -(1724 loop 1723 30 ()) -(1725 i/o #f #f ()) -(1726 periodically-flushed-ports 1725 7 ()) -(1727 loop 1726 35 ()) -(1728 i/o #f #f ()) -(1729 current-output-port 1728 7 ()) -(1730 i/o #f #f ()) -(1731 current-error-port 1730 7 ()) -(1732 i/o #f #f ()) -(1733 current-noise-port 1732 7 ()) -(1734 i/o #f #f ()) -(1735 with-current-ports 1734 7 ()) -(1736 i/o #f #f ()) -(1737 initialize-i/o 1736 7 ()) -(1738 i/o #f #f ()) -(1739 call-with-current-input-port 1738 7 ()) -(1740 i/o #f #f ()) -(1741 call-with-current-output-port 1740 7 ()) -(1742 i/o #f #f ()) -(1743 call-with-current-noise-port 1742 7 ()) -(1744 i/o #f #f ()) -(1745 silently 1744 7 ()) -(1746 i/o #f #f ()) -(1747 output-port-option 1746 7 ()) -(1748 i/o #f #f ()) -(1749 newline 1748 7 ()) -(1750 i/o #f #f ()) -(1751 i/o #f #f ()) -(1752 i/o #f #f ()) -(1753 writing #f #f ()) -(1754 display 1753 7 ()) -(1755 recur 1754 36 ()) -(1756 writing #f #f ()) -(1757 display-type-name 1756 7 ()) -(1758 loop##133 1757 90 ()) -(1759 writing #f #f ()) -(1760 write-other 1759 7 ()) -(1761 #f 1760 73 ()) -(1762 writing #f #f ()) -(1763 write-vector 1762 7 ()) -(1764 loop 1763 76 ()) -(1765 writing #f #f ()) -(1766 quotation? 1765 7 ()) -(1767 writing #f #f ()) -(1768 write-list 1767 7 ()) -(1769 loop 1768 92 ()) -(1770 writing #f #f ()) -(1771 write-string-literal 1770 7 ()) -(1772 loop##137 1771 26 ()) -(1773 writing #f #f ()) -(1774 character-name 1773 7 ()) -(1775 writing #f #f ()) -(1776 write-char-literal 1775 7 ()) -(1777 writing #f #f ()) -(1778 write-number 1777 7 ()) -(1779 writing #f #f ()) -(1780 write-boolean 1779 7 ()) -(1781 writing #f #f ()) -(1782 recurring-write 1781 7 ()) -(1783 writing #f #f ()) -(1784 write 1783 7 ()) -(1785 recur 1784 36 ()) -(1786 reading #f #f ()) -(1787 loop##139 1786 40 ()) -(1788 reading #f #f ()) -(1789 reading #f #f ()) -(1790 number-sharp-macro 1789 7 ()) -(1791 #f 1789 15 ()) -(1792 reading #f #f ()) -(1793 #f 1792 11 ()) -(1794 reading #f #f ()) -(1795 #f 1794 11 ()) -(1796 reading #f #f ()) -(1797 #f 1796 11 ()) -(1798 reading #f #f ()) -(1799 #f 1798 11 ()) -(1800 reading #f #f ()) -(1801 #f 1800 13 ()) -(1802 reading #f #f ()) -(1803 #f 1802 15 ()) -(1804 reading #f #f ()) -(1805 #f 1804 15 ()) -(1806 loop 1805 25 ()) -(1807 reading #f #f ()) -(1808 #f 1807 15 ()) -(1809 reading #f #f ()) -(1810 #f 1809 15 ()) -(1811 reading #f #f ()) -(1812 #f 1811 15 ()) -(1813 reading #f #f ()) -(1814 #f 1813 15 ()) -(1815 reading #f #f ()) -(1816 reading #f #f ()) -(1817 sub-read-constituent 1816 7 ()) -(1818 #f 1816 15 ()) -(1819 reading #f #f ()) -(1820 sub-read-whitespace 1819 7 ()) -(1821 #f 1819 15 ()) -(1822 reading #f #f ()) -(1823 reading #f #f ()) -(1824 #f 1823 11 ()) -(1825 reading #f #f ()) -(1826 reading #f #f ()) -(1827 reading #f #f ()) -(1828 reading #f #f ()) -(1829 reader-token? 1828 7 ()) -(1830 reading #f #f ()) -(1831 reading-error 1830 7 ()) -(1832 reading #f #f ()) -(1833 sub-read 1832 7 ()) -(1834 reading #f #f ()) -(1835 read 1834 7 ()) -(1836 loop 1835 33 ()) -(1837 reading #f #f ()) -(1838 sub-read-carefully 1837 7 ()) -(1839 reading #f #f ()) -(1840 make-reader-token 1839 7 ()) -(1841 reading #f #f ()) -(1842 set-standard-syntax! 1841 7 ()) -(1843 reading #f #f ()) -(1844 set-standard-read-macro! 1843 7 ()) -(1845 reading #f #f ()) -(1846 sub-read-list 1845 7 ()) -(1847 recur 1846 56 ()) -(1848 reading #f #f ()) -(1849 gobble-line 1848 7 ()) -(1850 loop 1849 15 ()) -(1851 reading #f #f ()) -(1852 define-sharp-macro 1851 7 ()) -(1853 reading #f #f ()) -(1854 preferred-case 1853 7 ()) -(1855 reading #f #f ()) -(1856 sub-read-token 1855 7 ()) -(1857 loop 1856 42 ()) -(1858 reading #f #f ()) -(1859 parse-token 1858 7 ()) -(1860 reading #f #f ()) -(1861 reading #f #f ()) -(1862 channels #f #f ()) -(1863 close-output-channel 1862 7 ()) -(1864 channels #f #f ()) -(1865 close-input-channel 1864 7 ()) -(1866 channels #f #f ()) -(1867 open-output-channel 1866 7 ()) -(1868 channels #f #f ()) -(1869 open-input-channel 1868 7 ()) -(1870 channels #f #f ()) -(1871 output-channel? 1870 7 ()) -(1872 channels #f #f ()) -(1873 input-channel? 1872 7 ()) -(1874 channel-i/o #f #f ()) -(1875 fetch-channel-wait-queue! 1874 7 ()) -(1876 loop 1875 113 ()) -(1877 channel-i/o #f #f ()) -(1878 add-channel-wait-queue! 1877 7 ()) -(1879 channel-i/o #f #f ()) -(1880 channel-i/o #f #f ()) -(1881 decrement-channel-wait-count! 1880 7 ()) -(1882 channel-i/o #f #f ()) -(1883 increment-channel-wait-count! 1882 7 ()) -(1884 channel-i/o #f #f ()) -(1885 channel-wait-count 1884 7 ()) -(1886 channel-i/o #f #f ()) -(1887 channel-i/o #f #f ()) -(1888 #f 1887 11 ()) -(1889 channel-i/o #f #f ()) -(1890 #f 1889 11 ()) -(1891 channel-i/o #f #f ()) -(1892 steal-channel! 1891 7 ()) -(1893 channel-i/o #f #f ()) -(1894 nothing 1893 7 ()) -(1895 channel-i/o #f #f ()) -(1896 wait-for-channel 1895 7 ()) -(1897 #f 1896 135 ()) -(1898 channel-i/o #f #f ()) -(1899 waiting-for-i/o? 1898 7 ()) -(1900 channel-i/o #f #f ()) -(1901 i/o-completion-handler 1900 7 ()) -(1902 channel-i/o #f #f ()) -(1903 initialize-channel-i/o! 1902 7 ()) -(1904 channel-i/o #f #f ()) -(1905 really-steal-channel-port! 1904 7 ()) -(1906 #f 1905 154 ()) -(1907 channel-i/o #f #f ()) -(1908 steal-channel-port! 1907 7 ()) -(1909 channel-i/o #f #f ()) -(1910 force-channel-output-ports! 1909 7 ()) -(1911 #f 1910 3 ()) -(1912 channel-i/o #f #f ()) -(1913 with-output-to-file 1912 7 ()) -(1914 #f 1913 9 ()) -(1915 channel-i/o #f #f ()) -(1916 with-input-from-file 1915 7 ()) -(1917 #f 1916 9 ()) -(1918 channel-i/o #f #f ()) -(1919 call-with-output-file 1918 7 ()) -(1920 channel-i/o #f #f ()) -(1921 call-with-input-file 1920 7 ()) -(1922 channel-i/o #f #f ()) -(1923 open-output-file 1922 7 ()) -(1924 channel-i/o #f #f ()) -(1925 open-input-file 1924 7 ()) -(1926 channel-i/o #f #f ()) -(1927 port->channel 1926 7 ()) -(1928 channel-i/o #f #f ()) -(1929 channel-cell? 1928 7 ()) -(1930 channel-i/o #f #f ()) -(1931 channel-cell-ref 1930 7 ()) -(1932 channel-i/o #f #f ()) -(1933 channel-cell-closer 1932 7 ()) -(1934 channel-i/o #f #f ()) -(1935 make-channel-cell 1934 7 ()) -(1936 channel-i/o #f #f ()) -(1937 channel-i/o #f #f ()) -(1938 maybe-force-output 1937 7 ()) -(1939 #f 1938 28 ()) -(1940 channel-i/o #f #f ()) -(1941 real-output-channel->port 1940 7 ()) -(1942 channel-i/o #f #f ()) -(1943 output-channel+closer->port 1942 7 ()) -(1944 channel-i/o #f #f ()) -(1945 output-channel->port 1944 7 ()) -(1946 channel-i/o #f #f ()) -(1947 make-unbuffered-output-channel-handler 1946 7 ()) -(1948 #f 1947 19 ()) -(1949 #f 1947 24 ()) -(1950 #f 1947 29 ()) -(1951 channel-i/o #f #f ()) -(1952 #f 1951 11 ()) -(1953 #f 1951 16 ()) -(1954 #f 1951 21 ()) -(1955 channel-i/o #f #f ()) -(1956 real-input-channel->port 1955 7 ()) -(1957 channel-i/o #f #f ()) -(1958 input-channel+closer->port 1957 7 ()) -(1959 channel-i/o #f #f ()) -(1960 input-channel->port 1959 7 ()) -(1961 channel-i/o #f #f ()) -(1962 #f 1961 11 ()) -(1963 #f 1961 16 ()) -(1964 #f 1961 21 ()) -(1965 scheme-level-2 #f #f ()) -(1966 features #f #f ()) -(1967 tables #f #f ()) -(1968 tables #f #f ()) -(1969 tables #f #f ()) -(1970 tables #f #f ()) -(1971 make-table 1970 32 ()) -(1972 tables #f #f ()) -(1973 tables #f #f ()) -(1974 tables #f #f ()) -(1975 tables #f #f ()) -(1976 tables #f #f ()) -(1977 set-table-size! 1976 7 ()) -(1978 tables #f #f ()) -(1979 table-size 1978 7 ()) -(1980 tables #f #f ()) -(1981 set-table-data! 1980 7 ()) -(1982 tables #f #f ()) -(1983 table-data 1982 7 ()) -(1984 tables #f #f ()) -(1985 set-table-ref-procedure! 1984 7 ()) -(1986 tables #f #f ()) -(1987 table-ref-procedure 1986 7 ()) -(1988 tables #f #f ()) -(1989 set-table-set!-procedure! 1988 7 ()) -(1990 tables #f #f ()) -(1991 table-set!-procedure 1990 7 ()) -(1992 tables #f #f ()) -(1993 really-make-table 1992 7 ()) -(1994 tables #f #f ()) -(1995 tables #f #f ()) -(1996 table? 1995 7 ()) -(1997 tables #f #f ()) -(1998 table-ref 1997 7 ()) -(1999 tables #f #f ()) -(2000 table-set! 1999 7 ()) -(2001 tables #f #f ()) -(2002 next-table-size 2001 7 ()) -(2003 tables #f #f ()) -(2004 delete-entry! 2003 7 ()) -(2005 loop 2004 40 ()) -(2006 tables #f #f ()) -(2007 new-entry 2006 7 ()) -(2008 tables #f #f ()) -(2009 make-linear-table-set! 2008 7 ()) -(2010 #f 2009 6 ()) -(2011 tables #f #f ()) -(2012 table-expand-table! 2011 7 ()) -(2013 tables #f #f ()) -(2014 table-enter-alist! 2013 7 ()) -(2015 loop##166 2014 26 ()) -(2016 tables #f #f ()) -(2017 make-hash-table-ref 2016 7 ()) -(2018 #f 2017 6 ()) -(2019 tables #f #f ()) -(2020 expand-hash-table! 2019 7 ()) -(2021 loop##168 2020 52 ()) -(2022 tables #f #f ()) -(2023 make-hash-table-set! 2022 7 ()) -(2024 #f 2023 6 ()) -(2025 tables #f #f ()) -(2026 make->hash-table 2025 7 ()) -(2027 #f 2026 41 ()) -(2028 tables #f #f ()) -(2029 make-linear-table-ref 2028 7 ()) -(2030 #f 2029 6 ()) -(2031 tables #f #f ()) -(2032 assoc->table-maker 2031 7 ()) -(2033 #f 2032 60 ()) -(2034 tables #f #f ()) -(2035 make-assoc 2034 7 ()) -(2036 #f 2035 20 ()) -(2037 loop 2036 18 ()) -(2038 tables #f #f ()) -(2039 make-table-maker 2038 7 ()) -(2040 tables #f #f ()) -(2041 alist-walk 2040 7 ()) -(2042 loop##170 2041 11 ()) -(2043 tables #f #f ()) -(2044 really-table-walk 2043 7 ()) -(2045 loop##173 2044 63 ()) -(2046 tables #f #f ()) -(2047 table-walk 2046 7 ()) -(2048 #f 2047 6 ()) -(2049 tables #f #f ()) -(2050 make-table-immutable! 2049 7 ()) -(2051 tables #f #f ()) -(2052 table->entry-list 2051 7 ()) -(2053 #f 2052 17 ()) -(2054 tables #f #f ()) -(2055 default-table-hash-function 2054 7 ()) -(2056 tables #f #f ()) -(2057 default-table-assoc 2056 7 ()) -(2058 tables #f #f ()) -(2059 symbol-hash 2058 7 ()) -(2060 tables #f #f ()) -(2061 tables #f #f ()) -(2062 weak #f #f ()) -(2063 walk-population 2062 7 ()) -(2064 #f 2063 6 ()) -(2065 weak #f #f ()) -(2066 population->list 2065 7 ()) -(2067 weak #f #f ()) -(2068 population-reduce 2067 7 ()) -(2069 loop##175 2068 11 ()) -(2070 weak #f #f ()) -(2071 weak-memq 2070 7 ()) -(2072 weak #f #f ()) -(2073 add-to-population! 2072 7 ()) -(2074 weak #f #f ()) -(2075 make-population 2074 7 ()) -(2076 meta-types #f #f ()) -(2077 meta-types #f #f ()) -(2078 meta-types #f #f ()) -(2079 meta-types #f #f ()) -(2080 meta-types #f #f ()) -(2081 meta-types #f #f ()) -(2082 meta-types #f #f ()) -(2083 meta-types #f #f ()) -(2084 meta-types #f #f ()) -(2085 meta-types #f #f ()) -(2086 meta-types #f #f ()) -(2087 meta-types #f #f ()) -(2088 meta-types #f #f ()) -(2089 meta-types #f #f ()) -(2090 meta-types #f #f ()) -(2091 meta-types #f #f ()) -(2092 meta-types #f #f ()) -(2093 meta-types #f #f ()) -(2094 meta-types #f #f ()) -(2095 meta-types #f #f ()) -(2096 meta-types #f #f ()) -(2097 meta-types #f #f ()) -(2098 meta-types #f #f ()) -(2099 meta-types #f #f ()) -(2100 meta-types #f #f ()) -(2101 meta-types #f #f ()) -(2102 meta-types #f #f ()) -(2103 meta-types #f #f ()) -(2104 meta-types #f #f ()) -(2105 meta-types #f #f ()) -(2106 loop 2105 28 ()) -(2107 meta-types #f #f ()) -(2108 meta-types #f #f ()) -(2109 meta-types #f #f ()) -(2110 meta-types #f #f ()) -(2111 meta-types #f #f ()) -(2112 meta-types #f #f ()) -(2113 meta-types #f #f ()) -(2114 meta-types #f #f ()) -(2115 meta-types #f #f ()) -(2116 meta-types #f #f ()) -(2117 meta-types #f #f ()) -(2118 meta-types #f #f ()) -(2119 meta-types #f #f ()) -(2120 meta-types #f #f ()) -(2121 meta-types #f #f ()) -(2122 meta-types #f #f ()) -(2123 meta-types #f #f ()) -(2124 meta-types #f #f ()) -(2125 meta-types #f #f ()) -(2126 meta-types #f #f ()) -(2127 #f 2126 11 ()) -(2128 meta-types #f #f ()) -(2129 type-mask 2128 7 ()) -(2130 meta-types #f #f ()) -(2131 type-more 2130 7 ()) -(2132 meta-types #f #f ()) -(2133 type-info 2132 7 ()) -(2134 meta-types #f #f ()) -(2135 really-make-type 2134 7 ()) -(2136 meta-types #f #f ()) -(2137 meta-types #f #f ()) -(2138 meta-type? 2137 7 ()) -(2139 meta-types #f #f ()) -(2140 make-type 2139 7 ()) -(2141 meta-types #f #f ()) -(2142 set-type-name! 2141 7 ()) -(2143 meta-types #f #f ()) -(2144 make-other-type 2143 7 ()) -(2145 meta-types #f #f ()) -(2146 name->type 2145 7 ()) -(2147 meta-types #f #f ()) -(2148 new-type-bit 2147 7 ()) -(2149 meta-types #f #f ()) -(2150 mask->type 2149 7 ()) -(2151 meta-types #f #f ()) -(2152 bottom-type? 2151 7 ()) -(2153 meta-types #f #f ()) -(2154 new-atomic-type 2153 7 ()) -(2155 meta-types #f #f ()) -(2156 named-atomic-type 2155 7 ()) -(2157 meta-types #f #f ()) -(2158 empty-rail-type? 2157 7 ()) -(2159 meta-types #f #f ()) -(2160 rest-type? 2159 7 ()) -(2161 meta-types #f #f ()) -(2162 same-type? 2161 7 ()) -(2163 meta-types #f #f ()) -(2164 head-type 2163 7 ()) -(2165 meta-types #f #f ()) -(2166 optional-type? 2165 7 ()) -(2167 meta-types #f #f ()) -(2168 rail-type 2167 7 ()) -(2169 meta-types #f #f ()) -(2170 make-optional-type 2169 7 ()) -(2171 meta-types #f #f ()) -(2172 make-rest-type 2171 7 ()) -(2173 meta-types #f #f ()) -(2174 head-type-really 2173 7 ()) -(2175 meta-types #f #f ()) -(2176 tail-type 2175 7 ()) -(2177 meta-types #f #f ()) -(2178 value-type? 2177 7 ()) -(2179 meta-types #f #f ()) -(2180 other-type-info 2179 7 ()) -(2181 meta-types #f #f ()) -(2182 restrictive? 2181 7 ()) -(2183 meta-types #f #f ()) -(2184 make-procedure-type 2183 7 ()) -(2185 meta-types #f #f ()) -(2186 procedure-type-domain 2185 7 ()) -(2187 meta-types #f #f ()) -(2188 procedure-type-codomain 2187 7 ()) -(2189 meta-types #f #f ()) -(2190 meet-procedure 2189 7 ()) -(2191 meta-types #f #f ()) -(2192 meet-rail 2191 7 ()) -(2193 meta-types #f #f ()) -(2194 meet-type 2193 7 ()) -(2195 meta-types #f #f ()) -(2196 subtype? 2195 7 ()) -(2197 meta-types #f #f ()) -(2198 meet-procedure? 2197 7 ()) -(2199 meta-types #f #f ()) -(2200 meet? 2199 7 ()) -(2201 meta-types #f #f ()) -(2202 procedure-type? 2201 7 ()) -(2203 meta-types #f #f ()) -(2204 join-procedure 2203 7 ()) -(2205 meta-types #f #f ()) -(2206 join-rail 2205 7 ()) -(2207 meta-types #f #f ()) -(2208 join-type 2207 7 ()) -(2209 meta-types #f #f ()) -(2210 procedure-type 2209 7 ()) -(2211 meta-types #f #f ()) -(2212 sexp->values-type 2211 7 ()) -(2213 meta-types #f #f ()) -(2214 sexp->type 2213 7 ()) -(2215 #f 2214 285 ()) -(2216 #f 2214 349 ()) -(2217 meta-types #f #f ()) -(2218 disjoin-rest 2217 7 ()) -(2219 meta-types #f #f ()) -(2220 disjoin-type 2219 7 ()) -(2221 loop##194 2220 262 ()) -(2222 meta-types #f #f ()) -(2223 atomic-type->sexp 2222 7 ()) -(2224 meta-types #f #f ()) -(2225 rail-type->sexp 2224 7 ()) -(2226 recur 2225 25 ()) -(2227 meta-types #f #f ()) -(2228 type->sexp 2227 7 ()) -(2229 #f 2228 141 ()) -(2230 meta-types #f #f ()) -(2231 make-some-values-type 2230 7 ()) -(2232 meta-types #f #f ()) -(2233 fixed-arity-procedure-type? 2232 7 ()) -(2234 loop 2233 43 ()) -(2235 meta-types #f #f ()) -(2236 procedure-type-arity 2235 7 ()) -(2237 loop##197 2236 11 ()) -(2238 meta-types #f #f ()) -(2239 procedure-type-argument-types 2238 7 ()) -(2240 recur 2239 28 ()) -(2241 meta-types #f #f ()) -(2242 variable-type 2241 7 ()) -(2243 meta-types #f #f ()) -(2244 variable-type? 2243 7 ()) -(2245 meta-types #f #f ()) -(2246 compatible-types? 2245 7 ()) -(2247 meta-types #f #f ()) -(2248 meta-types #f #f ()) -(2249 meta-types #f #f ()) -(2250 interfaces #f #f ()) -(2251 #f 2250 7 ()) -(2252 interfaces #f #f ()) -(2253 ref-method 2252 7 ()) -(2254 interfaces #f #f ()) -(2255 walk-method 2254 7 ()) -(2256 interfaces #f #f ()) -(2257 interface-clients 2256 7 ()) -(2258 interfaces #f #f ()) -(2259 set-interface-name! 2258 7 ()) -(2260 interfaces #f #f ()) -(2261 interface-name 2260 7 ()) -(2262 interfaces #f #f ()) -(2263 really-make-interface 2262 7 ()) -(2264 interfaces #f #f ()) -(2265 interfaces #f #f ()) -(2266 interface? 2265 7 ()) -(2267 interfaces #f #f ()) -(2268 interface-ref 2267 7 ()) -(2269 interfaces #f #f ()) -(2270 for-each-declaration 2269 7 ()) -(2271 interfaces #f #f ()) -(2272 note-reference-to-interface! 2271 7 ()) -(2273 interfaces #f #f ()) -(2274 make-interface 2273 7 ()) -(2275 interfaces #f #f ()) -(2276 really-make-simple-interface 2275 7 ()) -(2277 #f 2276 6 ()) -(2278 #f 2276 11 ()) -(2279 interfaces #f #f ()) -(2280 make-simple-interface 2279 7 ()) -(2281 #f 2280 23 ()) -(2282 #f 2281 66 ()) -(2283 interfaces #f #f ()) -(2284 make-compound-interface 2283 7 ()) -(2285 #f 2284 12 ()) -(2286 loop 2285 18 ()) -(2287 #f 2284 17 ()) -(2288 #f 2287 6 ()) -(2289 #f 2284 38 ()) -(2290 interfaces #f #f ()) -(2291 note-interface-name! 2290 7 ()) -(2292 bindings #f #f ()) -(2293 bindings #f #f ()) -(2294 binding-type 2293 7 ()) -(2295 bindings #f #f ()) -(2296 binding-place 2295 7 ()) -(2297 bindings #f #f ()) -(2298 binding-static 2297 7 ()) -(2299 bindings #f #f ()) -(2300 binding-path 2299 7 ()) -(2301 bindings #f #f ()) -(2302 set-binding-place! 2301 7 ()) -(2303 bindings #f #f ()) -(2304 make-binding 2303 7 ()) -(2305 bindings #f #f ()) -(2306 add-path 2305 7 ()) -(2307 bindings #f #f ()) -(2308 clobber-binding! 2307 7 ()) -(2309 bindings #f #f ()) -(2310 impose-type 2309 7 ()) -(2311 bindings #f #f ()) -(2312 forget-integration 2311 7 ()) -(2313 bindings #f #f ()) -(2314 same-denotation? 2313 7 ()) -(2315 bindings #f #f ()) -(2316 follow-forwarding-pointers 2315 7 ()) -(2317 bindings #f #f ()) -(2318 maybe-fix-place! 2317 7 ()) -(2319 names #f #f ()) -(2320 #f 2319 7 ()) -(2321 names #f #f ()) -(2322 transform-procedure 2321 7 ()) -(2323 names #f #f ()) -(2324 transform-env 2323 7 ()) -(2325 names #f #f ()) -(2326 transform-type 2325 7 ()) -(2327 names #f #f ()) -(2328 transform-aux-names 2327 7 ()) -(2329 names #f #f ()) -(2330 transform-source 2329 7 ()) -(2331 names #f #f ()) -(2332 transform-id 2331 7 ()) -(2333 names #f #f ()) -(2334 really-make-transform 2333 7 ()) -(2335 names #f #f ()) -(2336 names #f #f ()) -(2337 names #f #f ()) -(2338 #f 2337 11 ()) -(2339 names #f #f ()) -(2340 generated-symbol 2339 7 ()) -(2341 names #f #f ()) -(2342 generated-token 2341 7 ()) -(2343 names #f #f ()) -(2344 generated-env 2343 7 ()) -(2345 names #f #f ()) -(2346 generated-parent-name 2345 7 ()) -(2347 names #f #f ()) -(2348 make-generated 2347 7 ()) -(2349 names #f #f ()) -(2350 names #f #f ()) -(2351 generated? 2350 7 ()) -(2352 names #f #f ()) -(2353 name? 2352 7 ()) -(2354 names #f #f ()) -(2355 generate-name 2354 7 ()) -(2356 names #f #f ()) -(2357 generated-uid 2356 7 ()) -(2358 names #f #f ()) -(2359 name->symbol 2358 7 ()) -(2360 names #f #f ()) -(2361 name-hash 2360 7 ()) -(2362 names #f #f ()) -(2363 desyntaxify 2362 7 ()) -(2364 loop 2363 267 ()) -(2365 names #f #f ()) -(2366 make-qualified 2365 7 ()) -(2367 names #f #f ()) -(2368 qualified? 2367 7 ()) -(2369 names #f #f ()) -(2370 qualified-parent-name 2369 7 ()) -(2371 names #f #f ()) -(2372 qualified-symbol 2371 7 ()) -(2373 names #f #f ()) -(2374 lookup 2373 7 ()) -(2375 names #f #f ()) -(2376 transform? 2375 7 ()) -(2377 names #f #f ()) -(2378 qualify-parent 2377 7 ()) -(2379 recur 2378 18 ()) -(2380 names #f #f ()) -(2381 name->qualified 2380 7 ()) -(2382 names #f #f ()) -(2383 make-transform 2382 7 ()) -(2384 names #f #f ()) -(2385 name->source-name 2384 7 ()) -(2386 names #f #f ()) -(2387 make-keyword-comparator 2386 7 ()) -(2388 #f 2387 6 ()) -(2389 names #f #f ()) -(2390 make-name-generator 2389 7 ()) -(2391 #f 2390 13 ()) -(2392 names #f #f ()) -(2393 bind-aliases 2392 7 ()) -(2394 #f 2393 36 ()) -(2395 names #f #f ()) -(2396 maybe-apply-macro-transform 2395 7 ()) -(2397 names #f #f ()) -(2398 apply-inline-transform 2397 7 ()) -(2399 names #f #f ()) -(2400 compiler-envs #f #f ()) -(2401 compiler-envs #f #f ()) -(2402 compiler-envs #f #f ()) -(2403 compiler-envs #f #f ()) -(2404 compiler-envs #f #f ()) -(2405 lookup 2404 7 ()) -(2406 compiler-envs #f #f ()) -(2407 bind1 2406 7 ()) -(2408 #f 2407 6 ()) -(2409 compiler-envs #f #f ()) -(2410 bind 2409 7 ()) -(2411 compiler-envs #f #f ()) -(2412 bindrec 2411 7 ()) -(2413 #f 2412 17 ()) -(2414 compiler-envs #f #f ()) -(2415 make-compiler-env 2414 7 ()) -(2416 #f 2415 6 ()) -(2417 compiler-envs #f #f ()) -(2418 environment-macro-eval 2417 7 ()) -(2419 compiler-envs #f #f ()) -(2420 environment-define! 2419 7 ()) -(2421 compiler-envs #f #f ()) -(2422 extract-package-from-environment 2421 7 ()) -(2423 compiler-envs #f #f ()) -(2424 bind-source-file-name 2423 7 ()) -(2425 compiler-envs #f #f ()) -(2426 source-file-name 2425 7 ()) -(2427 thingies #f #f ()) -(2428 thingie-binding 2427 7 ()) -(2429 thingies #f #f ()) -(2430 thingie-name 2429 7 ()) -(2431 thingies #f #f ()) -(2432 thingie-want-type 2431 7 ()) -(2433 thingies #f #f ()) -(2434 make-thingie 2433 7 ()) -(2435 thingies #f #f ()) -(2436 thingies #f #f ()) -(2437 thingie? 2436 7 ()) -(2438 packages #f #f ()) -(2439 #f 2438 11 ()) -(2440 packages #f #f ()) -(2441 packages #f #f ()) -(2442 packages #f #f ()) -(2443 packages #f #f ()) -(2444 packages #f #f ()) -(2445 packages #f #f ()) -(2446 packages #f #f ()) -(2447 packages #f #f ()) -(2448 #f 2447 11 ()) -(2449 packages #f #f ()) -(2450 package-uid 2449 7 ()) -(2451 packages #f #f ()) -(2452 set-package-opens! 2451 7 ()) -(2453 packages #f #f ()) -(2454 package-opens-really 2453 7 ()) -(2455 packages #f #f ()) -(2456 package-definitions 2455 7 ()) -(2457 packages #f #f ()) -(2458 package-unstable? 2457 7 ()) -(2459 packages #f #f ()) -(2460 set-package-integrate?! 2459 7 ()) -(2461 packages #f #f ()) -(2462 package-integrate? 2461 7 ()) -(2463 packages #f #f ()) -(2464 set-package-get-location! 2463 7 ()) -(2465 packages #f #f ()) -(2466 package-get-location 2465 7 ()) -(2467 packages #f #f ()) -(2468 package-file-name 2467 7 ()) -(2469 packages #f #f ()) -(2470 package-clauses 2469 7 ()) -(2471 packages #f #f ()) -(2472 set-package-loaded?! 2471 7 ()) -(2473 packages #f #f ()) -(2474 package-loaded? 2473 7 ()) -(2475 packages #f #f ()) -(2476 set-package->environment! 2475 7 ()) -(2477 packages #f #f ()) -(2478 package->environment 2477 7 ()) -(2479 packages #f #f ()) -(2480 set-package-opens-thunk! 2479 7 ()) -(2481 packages #f #f ()) -(2482 package-opens-thunk 2481 7 ()) -(2483 packages #f #f ()) -(2484 package-accesses-thunk 2483 7 ()) -(2485 packages #f #f ()) -(2486 set-package-undefineds! 2485 7 ()) -(2487 packages #f #f ()) -(2488 package-real-undefineds 2487 7 ()) -(2489 packages #f #f ()) -(2490 set-package-undefined-but-assigneds! 2489 7 ()) -(2491 packages #f #f ()) -(2492 package-real-undefined-but-assigneds 2491 7 ()) -(2493 packages #f #f ()) -(2494 package-clients 2493 7 ()) -(2495 packages #f #f ()) -(2496 package-cached 2495 7 ()) -(2497 packages #f #f ()) -(2498 really-make-package 2497 7 ()) -(2499 packages #f #f ()) -(2500 packages #f #f ()) -(2501 #f 2500 11 ()) -(2502 packages #f #f ()) -(2503 structure-interface-thunk 2502 7 ()) -(2504 packages #f #f ()) -(2505 set-structure-interface! 2504 7 ()) -(2506 packages #f #f ()) -(2507 structure-interface-really 2506 7 ()) -(2508 packages #f #f ()) -(2509 structure-package 2508 7 ()) -(2510 packages #f #f ()) -(2511 structure-clients 2510 7 ()) -(2512 packages #f #f ()) -(2513 set-structure-name! 2512 7 ()) -(2514 packages #f #f ()) -(2515 structure-name 2514 7 ()) -(2516 packages #f #f ()) -(2517 really-make-structure 2516 7 ()) -(2518 packages #f #f ()) -(2519 packages #f #f ()) -(2520 structure? 2519 7 ()) -(2521 packages #f #f ()) -(2522 initialize-structure! 2521 7 ()) -(2523 packages #f #f ()) -(2524 structure-interface 2523 7 ()) -(2525 packages #f #f ()) -(2526 package? 2525 7 ()) -(2527 packages #f #f ()) -(2528 note-package-name! 2527 7 ()) -(2529 packages #f #f ()) -(2530 note-structure-name! 2529 7 ()) -(2531 packages #f #f ()) -(2532 make-structure 2531 7 ()) -(2533 #f 2532 85 ()) -(2534 packages #f #f ()) -(2535 structure-unstable? 2534 7 ()) -(2536 packages #f #f ()) -(2537 get-new-location 2536 7 ()) -(2538 packages #f #f ()) -(2539 package-define! 2538 7 ()) -(2540 packages #f #f ()) -(2541 package-accesses 2540 7 ()) -(2542 packages #f #f ()) -(2543 initialize-package! 2542 7 ()) -(2544 #f 2543 45 ()) -(2545 #f 2543 59 ()) -(2546 packages #f #f ()) -(2547 initialize-package-if-necessary! 2546 7 ()) -(2548 packages #f #f ()) -(2549 package-definition 2548 7 ()) -(2550 packages #f #f ()) -(2551 search-opens 2550 7 ()) -(2552 loop 2551 18 ()) -(2553 packages #f #f ()) -(2554 structure-lookup 2553 7 ()) -(2555 packages #f #f ()) -(2556 package-lookup 2555 7 ()) -(2557 packages #f #f ()) -(2558 generic-lookup 2557 7 ()) -(2559 packages #f #f ()) -(2560 really-package-lookup 2559 7 ()) -(2561 packages #f #f ()) -(2562 real-structure-lookup 2561 7 ()) -(2563 packages #f #f ()) -(2564 for-each-export 2563 7 ()) -(2565 #f 2564 22 ()) -(2566 packages #f #f ()) -(2567 really-package->environment 2566 7 ()) -(2568 #f 2567 6 ()) -(2569 #f 2567 11 ()) -(2570 packages #f #f ()) -(2571 new-package-uid 2570 7 ()) -(2572 packages #f #f ()) -(2573 make-package 2572 7 ()) -(2574 packages #f #f ()) -(2575 lazy-table-accessor 2574 7 ()) -(2576 #f 2575 6 ()) -(2577 packages #f #f ()) -(2578 package-name 2577 7 ()) -(2579 packages #f #f ()) -(2580 package-opens 2579 7 ()) -(2581 packages #f #f ()) -(2582 make-simple-package 2581 7 ()) -(2583 #f 2582 65 ()) -(2584 #f 2582 70 ()) -(2585 packages #f #f ()) -(2586 package-add-static! 2585 7 ()) -(2587 packages #f #f ()) -(2588 package-refine-type! 2587 7 ()) -(2589 packages #f #f ()) -(2590 for-each-definition 2589 7 ()) -(2591 #f 2590 6 ()) -(2592 packages #f #f ()) -(2593 make-new-location 2592 7 ()) -(2594 packages #f #f ()) -(2595 flush-location-names 2594 7 ()) -(2596 packages #f #f ()) -(2597 print-undefined-names 2596 7 ()) -(2598 #f 2597 10 ()) -(2599 #f 2597 184 ()) -(2600 packages #f #f ()) -(2601 noting-undefined-variables 2600 7 ()) -(2602 add-name 2601 13 ()) -(2603 #f 2601 25 ()) -(2604 #f 2601 30 ()) -(2605 #f 2604 3 ()) -(2606 #f 2604 11 ()) -(2607 #f 2606 3 ()) -(2608 packages #f #f ()) -(2609 cenv->package 2608 7 ()) -(2610 packages #f #f ()) -(2611 get-location-for-unassignable 2610 7 ()) -(2612 #f 2611 98 ()) -(2613 #f 2611 103 ()) -(2614 packages #f #f ()) -(2615 package-note-caching! 2614 7 ()) -(2616 loop 2615 79 ()) -(2617 packages #f #f ()) -(2618 note-caching! 2617 7 ()) -(2619 packages #f #f ()) -(2620 location-for-reference 2619 7 ()) -(2621 loop 2620 28 ()) -(2622 packages #f #f ()) -(2623 get-location-for-undefined 2622 7 ()) -(2624 #f 2623 105 ()) -(2625 packages #f #f ()) -(2626 get-location 2625 7 ()) -(2627 packages #f #f ()) -(2628 really-link! 2627 7 ()) -(2629 loop##277 2628 11 ()) -(2630 packages #f #f ()) -(2631 link! 2630 7 ()) -(2632 #f 2631 14 ()) -(2633 packages #f #f ()) -(2634 location-on-demand 2633 7 ()) -(2635 #f 2634 6 ()) -(2636 packages #f #f ()) -(2637 packages #f #f ()) -(2638 environments #f #f ()) -(2639 set-reflective-tower-maker! 2638 28 ()) -(2640 environments #f #f ()) -(2641 make-reflective-tower 2640 7 ()) -(2642 recur 2641 19 ()) -(2643 #f 2642 6 ()) -(2644 environments #f #f ()) -(2645 null-environment 2644 7 ()) -(2646 environments #f #f ()) -(2647 set-scheme-report-environment! 2646 7 ()) -(2648 environments #f #f ()) -(2649 environments #f #f ()) -(2650 environments #f #f ()) -(2651 environments #f #f ()) -(2652 scheme-report-environment 2651 7 ()) -(2653 environments #f #f ()) -(2654 with-interaction-environment 2653 7 ()) -(2655 environments #f #f ()) -(2656 set-interaction-environment! 2655 7 ()) -(2657 environments #f #f ()) -(2658 interaction-environment 2657 7 ()) -(2659 environments #f #f ()) -(2660 environments #f #f ()) -(2661 carefully 2660 7 ()) -(2662 environments #f #f ()) -(2663 *structure-ref 2662 7 ()) -(2664 environments #f #f ()) -(2665 environment-define! 2664 7 ()) -(2666 environments #f #f ()) -(2667 environment-set! 2666 7 ()) -(2668 #f 2667 115 ()) -(2669 environments #f #f ()) -(2670 environment-ref 2669 7 ()) -(2671 #f 2670 22 ()) -(2672 filenames #f #f ()) -(2673 translate 2672 7 ()) -(2674 loop 2673 26 ()) -(2675 filenames #f #f ()) -(2676 set-translation! 2675 7 ()) -(2677 filenames #f #f ()) -(2678 translations 2677 7 ()) -(2679 filenames #f #f ()) -(2680 filenames #f #f ()) -(2681 string-posq 2680 7 ()) -(2682 loop 2681 19 ()) -(2683 filenames #f #f ()) -(2684 file-nondirectory-position 2683 7 ()) -(2685 loop 2684 24 ()) -(2686 filenames #f #f ()) -(2687 file-name-nondirectory 2686 7 ()) -(2688 filenames #f #f ()) -(2689 file-name-directory 2688 7 ()) -(2690 filenames #f #f ()) -(2691 filenames #f #f ()) -(2692 filenames #f #f ()) -(2693 filenames #f #f ()) -(2694 namestring-component 2693 7 ()) -(2695 filenames #f #f ()) -(2696 filenames #f #f ()) -(2697 filenames #f #f ()) -(2698 namestring 2697 7 ()) -(2699 #f 2698 192 ()) -(2700 reading-forms #f #f ()) -(2701 really-read-forms 2700 7 ()) -(2702 loop 2701 19 ()) -(2703 reading-forms #f #f ()) -(2704 read-forms 2703 7 ()) -(2705 #f 2704 47 ()) -(2706 reading-forms #f #f ()) -(2707 #f 2706 11 ()) -(2708 nodes #f #f ()) -(2709 #f 2708 15 ()) -(2710 nodes #f #f ()) -(2711 #f 2710 19 ()) -(2712 nodes #f #f ()) -(2713 #f 2712 19 ()) -(2714 #f 2713 29 ()) -(2715 #f 2713 57 ()) -(2716 nodes #f #f ()) -(2717 nodes #f #f ()) -(2718 nodes #f #f ()) -(2719 #f 2718 19 ()) -(2720 #f 2719 6 ()) -(2721 nodes #f #f ()) -(2722 #f 2721 19 ()) -(2723 nodes #f #f ()) -(2724 #f 2723 19 ()) -(2725 nodes #f #f ()) -(2726 #f 2725 11 ()) -(2727 nodes #f #f ()) -(2728 #f 2727 11 ()) -(2729 nodes #f #f ()) -(2730 node-operator-id 2729 7 ()) -(2731 nodes #f #f ()) -(2732 node-form 2731 7 ()) -(2733 nodes #f #f ()) -(2734 set-node-plist! 2733 7 ()) -(2735 nodes #f #f ()) -(2736 node-plist 2735 7 ()) -(2737 nodes #f #f ()) -(2738 really-make-node 2737 7 ()) -(2739 nodes #f #f ()) -(2740 nodes #f #f ()) -(2741 nodes #f #f ()) -(2742 nodes #f #f ()) -(2743 nodes #f #f ()) -(2744 nodes #f #f ()) -(2745 #f 2744 11 ()) -(2746 nodes #f #f ()) -(2747 set-operator-type! 2746 7 ()) -(2748 nodes #f #f ()) -(2749 operator-type 2748 7 ()) -(2750 nodes #f #f ()) -(2751 operator-nargs 2750 7 ()) -(2752 nodes #f #f ()) -(2753 operator-uid 2752 7 ()) -(2754 nodes #f #f ()) -(2755 operator-name 2754 7 ()) -(2756 nodes #f #f ()) -(2757 make-operator 2756 7 ()) -(2758 nodes #f #f ()) -(2759 nodes #f #f ()) -(2760 operator? 2759 7 ()) -(2761 nodes #f #f ()) -(2762 get-operator 2761 7 ()) -(2763 nodes #f #f ()) -(2764 make-operator-table 2763 7 ()) -(2765 nodes #f #f ()) -(2766 operator-lookup 2765 7 ()) -(2767 nodes #f #f ()) -(2768 operator-define! 2767 7 ()) -(2769 nodes #f #f ()) -(2770 node? 2769 7 ()) -(2771 nodes #f #f ()) -(2772 make-node 2771 7 ()) -(2773 nodes #f #f ()) -(2774 node-ref 2773 7 ()) -(2775 nodes #f #f ()) -(2776 node-set! 2775 7 ()) -(2777 loop 2776 103 ()) -(2778 nodes #f #f ()) -(2779 node-operator 2778 7 ()) -(2780 nodes #f #f ()) -(2781 node-predicate 2780 7 ()) -(2782 #f 2781 37 ()) -(2783 nodes #f #f ()) -(2784 make-similar-node 2783 7 ()) -(2785 nodes #f #f ()) -(2786 force-node 2785 7 ()) -(2787 nodes #f #f ()) -(2788 schemify-node 2787 7 ()) -(2789 nodes #f #f ()) -(2790 schemify-sexp 2789 7 ()) -(2791 loop 2790 147 ()) -(2792 nodes #f #f ()) -(2793 schemify 2792 7 ()) -(2794 nodes #f #f ()) -(2795 schemify-nodes 2794 7 ()) -(2796 #f 2795 6 ()) -(2797 nodes #f #f ()) -(2798 define-schemifier 2797 7 ()) -(2799 nodes #f #f ()) -(2800 schemify-formals 2799 7 ()) -(2801 nodes #f #f ()) -(2802 schemify-lambda 2801 7 ()) -(2803 nodes #f #f ()) -(2804 nodes #f #f ()) -(2805 var-utilities #f #f ()) -(2806 normalize-formals 2805 7 ()) -(2807 var-utilities #f #f ()) -(2808 n-ary? 2807 7 ()) -(2809 var-utilities #f #f ()) -(2810 number-of-required-args 2809 7 ()) -(2811 loop##296 2810 11 ()) -(2812 syntactic #f #f ()) -(2813 syntactic #f #f ()) -(2814 syntactic #f #f ()) -(2815 syntactic #f #f ()) -(2816 syntactic #f #f ()) -(2817 syntactic #f #f ()) -(2818 syntactic #f #f ()) -(2819 syntactic #f #f ()) -(2820 syntactic #f #f ()) -(2821 syntactic #f #f ()) -(2822 syntactic #f #f ()) -(2823 syntactic #f #f ()) -(2824 syntactic #f #f ()) -(2825 syntactic #f #f ()) -(2826 syntactic #f #f ()) -(2827 syntactic #f #f ()) -(2828 syntactic #f #f ()) -(2829 #f 2828 19 ()) -(2830 #f 2829 113 ()) -(2831 syntactic #f #f ()) -(2832 #f 2831 19 ()) -(2833 #f 2832 104 ()) -(2834 #f 2833 6 ()) -(2835 syntactic #f #f ()) -(2836 #f 2835 19 ()) -(2837 #f 2836 108 ()) -(2838 syntactic #f #f ()) -(2839 #f 2838 19 ()) -(2840 syntactic #f #f ()) -(2841 #f 2840 19 ()) -(2842 #f 2841 87 ()) -(2843 syntactic #f #f ()) -(2844 #f 2843 19 ()) -(2845 syntactic #f #f ()) -(2846 #f 2845 19 ()) -(2847 syntactic #f #f ()) -(2848 #f 2847 19 ()) -(2849 syntactic #f #f ()) -(2850 #f 2849 19 ()) -(2851 syntactic #f #f ()) -(2852 #f 2851 19 ()) -(2853 syntactic #f #f ()) -(2854 #f 2853 19 ()) -(2855 syntactic #f #f ()) -(2856 #f 2855 19 ()) -(2857 syntactic #f #f ()) -(2858 #f 2857 19 ()) -(2859 syntactic #f #f ()) -(2860 #f 2859 11 ()) -(2861 syntactic #f #f ()) -(2862 syntactic #f #f ()) -(2863 syntactic #f #f ()) -(2864 syntactic #f #f ()) -(2865 at-least-this-long? 2864 7 ()) -(2866 syntactic #f #f ()) -(2867 names? 2866 7 ()) -(2868 syntactic #f #f ()) -(2869 destructure-define 2868 7 ()) -(2870 syntactic #f #f ()) -(2871 scan-define 2870 7 ()) -(2872 syntactic #f #f ()) -(2873 this-long? 2872 7 ()) -(2874 syntactic #f #f ()) -(2875 process-syntax 2874 7 ()) -(2876 syntactic #f #f ()) -(2877 scan-define-syntax 2876 7 ()) -(2878 syntactic #f #f ()) -(2879 expand-name 2878 7 ()) -(2880 syntactic #f #f ()) -(2881 expand-operator-form 2880 7 ()) -(2882 syntactic #f #f ()) -(2883 literal? 2882 7 ()) -(2884 syntactic #f #f ()) -(2885 expand-literal 2884 7 ()) -(2886 syntactic #f #f ()) -(2887 expand-list 2886 7 ()) -(2888 #f 2887 6 ()) -(2889 syntactic #f #f ()) -(2890 expand-call 2889 7 ()) -(2891 syntactic #f #f ()) -(2892 expand 2891 7 ()) -(2893 syntactic #f #f ()) -(2894 expand-macro-application 2893 7 ()) -(2895 #f 2894 6 ()) -(2896 syntactic #f #f ()) -(2897 expand-structure-ref 2896 7 ()) -(2898 lose 2897 32 ()) -(2899 syntactic #f #f ()) -(2900 expand-head 2899 7 ()) -(2901 syntactic #f #f ()) -(2902 scan-forms 2901 7 ()) -(2903 loop 2902 22 ()) -(2904 syntactic #f #f ()) -(2905 expand-define 2904 7 ()) -(2906 syntactic #f #f ()) -(2907 expand-scanned-form 2906 7 ()) -(2908 syntactic #f #f ()) -(2909 expand-form 2908 7 ()) -(2910 loop 2909 32 ()) -(2911 syntactic #f #f ()) -(2912 static-value 2911 7 ()) -(2913 syntactic #f #f ()) -(2914 make-operator-predicate 2913 7 ()) -(2915 #f 2914 26 ()) -(2916 syntactic #f #f ()) -(2917 body-lossage 2916 7 ()) -(2918 syntactic #f #f ()) -(2919 scan-body-forms 2918 7 ()) -(2920 #f 2919 231 ()) -(2921 syntactic #f #f ()) -(2922 expand-letrec 2921 7 ()) -(2923 #f 2922 10 ()) -(2924 syntactic #f #f ()) -(2925 expand-body 2924 7 ()) -(2926 #f 2925 33 ()) -(2927 syntactic #f #f ()) -(2928 define-expander 2927 7 ()) -(2929 syntactic #f #f ()) -(2930 unspecific-node 2929 7 ()) -(2931 syntactic #f #f ()) -(2932 bind-names 2931 7 ()) -(2933 loop 2932 26 ()) -(2934 syntactic #f #f ()) -(2935 expand-lambda 2934 7 ()) -(2936 #f 2935 6 ()) -(2937 syntactic #f #f ()) -(2938 specs? 2937 7 ()) -(2939 syntactic #f #f ()) -(2940 syntax? 2939 7 ()) -(2941 primops #f #f ()) -(2942 primops #f #f ()) -(2943 #f 2942 11 ()) -(2944 primops #f #f ()) -(2945 primop-name 2944 7 ()) -(2946 primops #f #f ()) -(2947 primop-type 2946 7 ()) -(2948 primops #f #f ()) -(2949 primop-closed 2948 7 ()) -(2950 primops #f #f ()) -(2951 primop-compilator 2950 7 ()) -(2952 primops #f #f ()) -(2953 make-primop 2952 7 ()) -(2954 primops #f #f ()) -(2955 primops #f #f ()) -(2956 primop? 2955 7 ()) -(2957 primops #f #f ()) -(2958 walk-primops 2957 7 ()) -(2959 #f 2958 6 ()) -(2960 primops #f #f ()) -(2961 define-compiler-primitive 2960 7 ()) -(2962 primops #f #f ()) -(2963 get-primop 2962 7 ()) -(2964 debug-data #f #f ()) -(2965 #f 2964 7 ()) -(2966 debug-data #f #f ()) -(2967 debug-data-uid 2966 7 ()) -(2968 debug-data #f #f ()) -(2969 debug-data-name 2968 7 ()) -(2970 debug-data #f #f ()) -(2971 debug-data-parent 2970 7 ()) -(2972 debug-data #f #f ()) -(2973 debug-data-pc-in-parent 2972 7 ()) -(2974 debug-data #f #f ()) -(2975 set-debug-data-env-maps! 2974 7 ()) -(2976 debug-data #f #f ()) -(2977 debug-data-env-maps 2976 7 ()) -(2978 debug-data #f #f ()) -(2979 set-debug-data-source! 2978 7 ()) -(2980 debug-data #f #f ()) -(2981 debug-data-source 2980 7 ()) -(2982 debug-data #f #f ()) -(2983 make-debug-data 2982 7 ()) -(2984 debug-data #f #f ()) -(2985 debug-data #f #f ()) -(2986 debug-data? 2985 7 ()) -(2987 stack-check #f #f ()) -(2988 loop##324 2987 8 ()) -(2989 stack-check #f #f ()) -(2990 #f 2989 11 ()) -(2991 loop 2990 48 ()) -(2992 stack-check #f #f ()) -(2993 #f 2992 11 ()) -(2994 stack-check #f #f ()) -(2995 #f 2994 11 ()) -(2996 stack-check #f #f ()) -(2997 stack-check #f #f ()) -(2998 stack-check #f #f ()) -(2999 #f 2998 11 ()) -(3000 loop 2999 68 ()) -(3001 stack-check #f #f ()) -(3002 #f 3001 11 ()) -(3003 stack-check #f #f ()) -(3004 #f 3003 11 ()) -(3005 stack-check #f #f ()) -(3006 #f 3005 11 ()) -(3007 stack-check #f #f ()) -(3008 #f 3007 11 ()) -(3009 stack-check #f #f ()) -(3010 stack-check #f #f ()) -(3011 stack-check #f #f ()) -(3012 stack-check #f #f ()) -(3013 stack-check #f #f ()) -(3014 stack-check #f #f ()) -(3015 stack-check #f #f ()) -(3016 stack-check #f #f ()) -(3017 stack-check #f #f ()) -(3018 stack-check #f #f ()) -(3019 stack-check #f #f ()) -(3020 stack-check #f #f ()) -(3021 stack-check #f #f ()) -(3022 stack-check #f #f ()) -(3023 stack-check #f #f ()) -(3024 stack-check #f #f ()) -(3025 stack-check #f #f ()) -(3026 stack-max 3025 7 ()) -(3027 stack-check #f #f ()) -(3028 protocol-skip 3027 7 ()) -(3029 stack-check #f #f ()) -(3030 maximum-stack-use 3029 7 ()) -(3031 loop##327 3030 74 ()) -(3032 stack-check #f #f ()) -(3033 nothing 3032 7 ()) -(3034 #f 3033 6 ()) -(3035 stack-check #f #f ()) -(3036 popper 3035 7 ()) -(3037 #f 3036 6 ()) -(3038 stack-check #f #f ()) -(3039 imax 3038 7 ()) -(3040 stack-check #f #f ()) -(3041 pusher 3040 7 ()) -(3042 #f 3041 6 ()) -(3043 stack-check #f #f ()) -(3044 continue 3043 7 ()) -(3045 stack-check #f #f ()) -(3046 continuer 3045 7 ()) -(3047 #f 3046 6 ()) -(3048 stack-check #f #f ()) -(3049 get-offset 3048 7 ()) -(3050 stack-check #f #f ()) -(3051 do-make-cont 3050 7 ()) -(3052 #f 3051 6 ()) -(3053 stack-check #f #f ()) -(3054 arg-spec-size 3053 7 ()) -(3055 stack-check #f #f ()) -(3056 stack-function 3055 7 ()) -(3057 loop 3056 22 ()) -(3058 segments #f #f ()) -(3059 segments #f #f ()) -(3060 segments #f #f ()) -(3061 segments #f #f ()) -(3062 #f 3061 15 ()) -(3063 segments #f #f ()) -(3064 astate-code-vector 3063 7 ()) -(3065 segments #f #f ()) -(3066 set-astate-pc! 3065 7 ()) -(3067 segments #f #f ()) -(3068 astate-pc 3067 7 ()) -(3069 segments #f #f ()) -(3070 set-astate-count! 3069 7 ()) -(3071 segments #f #f ()) -(3072 astate-count 3071 7 ()) -(3073 segments #f #f ()) -(3074 set-astate-literals! 3073 7 ()) -(3075 segments #f #f ()) -(3076 astate-literals 3075 7 ()) -(3077 segments #f #f ()) -(3078 make-assembly-state 3077 7 ()) -(3079 segments #f #f ()) -(3080 segments #f #f ()) -(3081 segments #f #f ()) -(3082 segments #f #f ()) -(3083 segments #f #f ()) -(3084 segments #f #f ()) -(3085 segments #f #f ()) -(3086 segments #f #f ()) -(3087 segments #f #f ()) -(3088 segments #f #f ()) -(3089 segments #f #f ()) -(3090 segments #f #f ()) -(3091 segments #f #f ()) -(3092 segments #f #f ()) -(3093 new-template-uid 3092 7 ()) -(3094 segments #f #f ()) -(3095 template-uid 3094 7 ()) -(3096 segments #f #f ()) -(3097 set-template-uid! 3096 7 ()) -(3098 segments #f #f ()) -(3099 debug-flag-accessor 3098 7 ()) -(3100 #f 3099 26 ()) -(3101 segments #f #f ()) -(3102 debug-flag-modifier 3101 7 ()) -(3103 #f 3102 26 ()) -(3104 segments #f #f ()) -(3105 saving-and-restoring 3104 7 ()) -(3106 swap 3105 6 ()) -(3107 segments #f #f ()) -(3108 with-fresh-compiler-state 3107 7 ()) -(3109 #f 3108 44 ()) -(3110 #f 3109 3 ()) -(3111 #f 3109 8 ()) -(3112 segments #f #f ()) -(3113 note-debug-data! 3112 7 ()) -(3114 segments #f #f ()) -(3115 debug-data->info 3114 7 ()) -(3116 segments #f #f ()) -(3117 get-debug-data 3116 7 ()) -(3118 segments #f #f ()) -(3119 new-debug-data 3118 7 ()) -(3120 segments #f #f ()) -(3121 high-byte 3120 7 ()) -(3122 segments #f #f ()) -(3123 emit-byte! 3122 7 ()) -(3124 segments #f #f ()) -(3125 low-byte 3124 7 ()) -(3126 segments #f #f ()) -(3127 position 3126 7 ()) -(3128 loop 3127 22 ()) -(3129 segments #f #f ()) -(3130 literal-position 3129 7 ()) -(3131 #f 3130 21 ()) -(3132 segments #f #f ()) -(3133 literal->index 3132 7 ()) -(3134 segments #f #f ()) -(3135 emit-literal! 3134 7 ()) -(3136 segments #f #f ()) -(3137 code-vector-set2! 3136 7 ()) -(3138 segments #f #f ()) -(3139 check-stack-use 3138 7 ()) -(3140 loop##338 3139 77 ()) -(3141 segments #f #f ()) -(3142 emit-segment! 3141 7 ()) -(3143 segments #f #f ()) -(3144 emit-with-environment-maps! 3143 7 ()) -(3145 #f 3144 14 ()) -(3146 segments #f #f ()) -(3147 make-astate 3146 7 ()) -(3148 segments #f #f ()) -(3149 template 3148 7 ()) -(3150 #f 3149 10 ()) -(3151 segments #f #f ()) -(3152 segment-data->template 3151 7 ()) -(3153 loop##340 3152 68 ()) -(3154 segments #f #f ()) -(3155 segment->template 3154 7 ()) -(3156 #f 3155 124 ()) -(3157 segments #f #f ()) -(3158 instruction 3157 7 ()) -(3159 #f 3158 30 ()) -(3160 #f 3159 22 ()) -(3161 segments #f #f ()) -(3162 sequentially-2 3161 7 ()) -(3163 #f 3162 59 ()) -(3164 segments #f #f ()) -(3165 sequentially 3164 7 ()) -(3166 loop 3165 105 ()) -(3167 #f 3165 120 ()) -(3168 loop 3167 18 ()) -(3169 segments #f #f ()) -(3170 instruction-with-literal 3169 7 ()) -(3171 #f 3170 30 ()) -(3172 #f 3171 160 ()) -(3173 segments #f #f ()) -(3174 instruction-with-location 3173 7 ()) -(3175 #f 3174 10 ()) -(3176 segments #f #f ()) -(3177 make-label 3176 7 ()) -(3178 segments #f #f ()) -(3179 insert-label! 3178 7 ()) -(3180 segments #f #f ()) -(3181 instruction-using-label 3180 7 ()) -(3182 #f 3181 49 ()) -(3183 segments #f #f ()) -(3184 computed-goto-instruction 3183 7 ()) -(3185 #f 3184 68 ()) -(3186 loop##341 3185 75 ()) -(3187 segments #f #f ()) -(3188 attach-label 3187 7 ()) -(3189 #f 3188 19 ()) -(3190 #f 3189 37 ()) -(3191 segments #f #f ()) -(3192 note-source-code 3191 7 ()) -(3193 #f 3192 19 ()) -(3194 segments #f #f ()) -(3195 note-environment 3194 7 ()) -(3196 #f 3195 31 ()) -(3197 segments #f #f ()) -(3198 segments #f #f ()) -(3199 segments #f #f ()) -(3200 reconstruction #f #f ()) -(3201 constant-type 3200 7 ()) -(3202 reconstruction #f #f ()) -(3203 reconstruction #f #f ()) -(3204 reconstruction #f #f ()) -(3205 reconstruct-apply 3204 7 ()) -(3206 #f 3205 56 ()) -(3207 reconstruction #f #f ()) -(3208 #f 3207 11 ()) -(3209 reconstruction #f #f ()) -(3210 #f 3209 11 ()) -(3211 #f 3210 10 ()) -(3212 reconstruction #f #f ()) -(3213 #f 3212 15 ()) -(3214 reconstruction #f #f ()) -(3215 define-primop-reconstructor 3214 7 ()) -(3216 reconstruction #f #f ()) -(3217 reconstruction #f #f ()) -(3218 reconstruction #f #f ()) -(3219 reconstruction #f #f ()) -(3220 reconstruction #f #f ()) -(3221 #f 3220 15 ()) -(3222 reconstruction #f #f ()) -(3223 #f 3222 15 ()) -(3224 reconstruction #f #f ()) -(3225 node->type 3224 7 ()) -(3226 reconstruction #f #f ()) -(3227 #f 3226 15 ()) -(3228 reconstruction #f #f ()) -(3229 #f 3228 15 ()) -(3230 #f 3229 60 ()) -(3231 reconstruction #f #f ()) -(3232 #f 3231 15 ()) -(3233 reconstruction #f #f ()) -(3234 #f 3233 15 ()) -(3235 loop##343 3234 11 ()) -(3236 reconstruction #f #f ()) -(3237 reconstruction #f #f ()) -(3238 fork-constraints 3237 7 ()) -(3239 #f 3238 13 ()) -(3240 reconstruction #f #f ()) -(3241 #f 3240 15 ()) -(3242 #f 3241 153 ()) -(3243 reconstruction #f #f ()) -(3244 #f 3243 13 ()) -(3245 reconstruction #f #f ()) -(3246 #f 3245 13 ()) -(3247 reconstruction #f #f ()) -(3248 #f 3247 15 ()) -(3249 reconstruction #f #f ()) -(3250 #f 3249 15 ()) -(3251 reconstruction #f #f ()) -(3252 reconstruct-call 3251 7 ()) -(3253 lose 3252 112 ()) -(3254 #f 3253 3 ()) -(3255 loop 3252 179 ()) -(3256 reconstruction #f #f ()) -(3257 proc->reconstructor 3256 7 ()) -(3258 reconstruction #f #f ()) -(3259 #f 3258 15 ()) -(3260 reconstruction #f #f ()) -(3261 reconstruct-name 3260 7 ()) -(3262 reconstruction #f #f ()) -(3263 #f 3262 15 ()) -(3264 reconstruction #f #f ()) -(3265 careful-codomain 3264 7 ()) -(3266 reconstruction #f #f ()) -(3267 reconstruct-lambda 3266 7 ()) -(3268 #f 3267 71 ()) -(3269 reconstruction #f #f ()) -(3270 #f 3269 15 ()) -(3271 reconstruction #f #f ()) -(3272 #f 3271 15 ()) -(3273 reconstruction #f #f ()) -(3274 define-reconstructor 3273 7 ()) -(3275 reconstruction #f #f ()) -(3276 #f 3275 11 ()) -(3277 reconstruction #f #f ()) -(3278 examine 3277 7 ()) -(3279 reconstruction #f #f ()) -(3280 reconstruct 3279 7 ()) -(3281 reconstruction #f #f ()) -(3282 reconstruct-type 3281 7 ()) -(3283 reconstruction #f #f ()) -(3284 node-type 3283 7 ()) -(3285 compiler #f #f ()) -(3286 compiler #f #f ()) -(3287 loop 3286 60 ()) -(3288 compiler #f #f ()) -(3289 compiler #f #f ()) -(3290 compiler #f #f ()) -(3291 define-one-or-two 3290 7 ()) -(3292 #f 3291 12 ()) -(3293 #f 3291 17 ()) -(3294 compiler #f #f ()) -(3295 define-one-or-two 3294 7 ()) -(3296 #f 3295 73 ()) -(3297 #f 3295 78 ()) -(3298 compiler #f #f ()) -(3299 compiler #f #f ()) -(3300 compiler #f #f ()) -(3301 define=< 3300 7 ()) -(3302 #f 3301 73 ()) -(3303 #f 3301 78 ()) -(3304 compiler #f #f ()) -(3305 define+* 3304 7 ()) -(3306 #f 3305 43 ()) -(3307 #f 3305 48 ()) -(3308 compiler #f #f ()) -(3309 define-char-io 3308 7 ()) -(3310 #f 3309 12 ()) -(3311 #f 3309 17 ()) -(3312 compiler #f #f ()) -(3313 define-char-io 3312 7 ()) -(3314 #f 3313 12 ()) -(3315 #f 3313 17 ()) -(3316 compiler #f #f ()) -(3317 n-ary-constructor 3316 7 ()) -(3318 #f 3317 16 ()) -(3319 #f 3317 21 ()) -(3320 compiler #f #f ()) -(3321 #f 3320 21 ()) -(3322 compiler #f #f ()) -(3323 #f 3322 44 ()) -(3324 #f 3323 112 ()) -(3325 #f 3322 49 ()) -(3326 compiler #f #f ()) -(3327 #f 3326 17 ()) -(3328 #f 3326 22 ()) -(3329 compiler #f #f ()) -(3330 #f 3329 73 ()) -(3331 #f 3329 84 ()) -(3332 compiler #f #f ()) -(3333 #f 3332 71 ()) -(3334 #f 3332 76 ()) -(3335 compiler #f #f ()) -(3336 #f 3335 57 ()) -(3337 #f 3335 62 ()) -(3338 compiler #f #f ()) -(3339 compiler #f #f ()) -(3340 #f 3339 7 ()) -(3341 compiler #f #f ()) -(3342 compiler #f #f ()) -(3343 #f 3342 7 ()) -(3344 compiler #f #f ()) -(3345 compiler #f #f ()) -(3346 compiler #f #f ()) -(3347 compiler #f #f ()) -(3348 compiler #f #f ()) -(3349 loop##347 3348 12 ()) -(3350 compiler #f #f ()) -(3351 compiler #f #f ()) -(3352 #f 3351 19 ()) -(3353 compiler #f #f ()) -(3354 compiler #f #f ()) -(3355 compiler #f #f ()) -(3356 compiler #f #f ()) -(3357 compiler #f #f ()) -(3358 compiler #f #f ()) -(3359 compiler #f #f ()) -(3360 compiler #f #f ()) -(3361 #f 3360 19 ()) -(3362 compiler #f #f ()) -(3363 compiler #f #f ()) -(3364 compiler #f #f ()) -(3365 compiler #f #f ()) -(3366 compiler #f #f ()) -(3367 #f 3366 19 ()) -(3368 #f 3367 73 ()) -(3369 #f 3367 157 ()) -(3370 compiler #f #f ()) -(3371 #f 3370 19 ()) -(3372 compiler #f #f ()) -(3373 #f 3372 19 ()) -(3374 compiler #f #f ()) -(3375 compiler #f #f ()) -(3376 #f 3375 19 ()) -(3377 loop 3376 89 ()) -(3378 compiler #f #f ()) -(3379 #f 3378 19 ()) -(3380 compiler #f #f ()) -(3381 #f 3380 19 ()) -(3382 compiler #f #f ()) -(3383 #f 3382 19 ()) -(3384 compiler #f #f ()) -(3385 #f 3384 19 ()) -(3386 compiler #f #f ()) -(3387 #f 3386 41 ()) -(3388 compiler #f #f ()) -(3389 #f 3388 41 ()) -(3390 compiler #f #f ()) -(3391 #f 3390 19 ()) -(3392 compiler #f #f ()) -(3393 #f 3392 11 ()) -(3394 compiler #f #f ()) -(3395 diagnose-call-error 3394 7 ()) -(3396 #f 3395 173 ()) -(3397 compiler #f #f ()) -(3398 type-check 3397 7 ()) -(3399 #f 3398 121 ()) -(3400 compiler #f #f ()) -(3401 compile 3400 7 ()) -(3402 compiler #f #f ()) -(3403 compile-expression 3402 7 ()) -(3404 compiler #f #f ()) -(3405 define-compilator 3404 7 ()) -(3406 compiler #f #f ()) -(3407 ignore-values-cont? 3406 7 ()) -(3408 compiler #f #f ()) -(3409 deliver-value 3408 7 ()) -(3410 compiler #f #f ()) -(3411 compile-constant 3410 7 ()) -(3412 compiler #f #f ()) -(3413 return-cont? 3412 7 ()) -(3414 compiler #f #f ()) -(3415 fixup-source 3414 7 ()) -(3416 compiler #f #f ()) -(3417 maybe-push-continuation 3416 7 ()) -(3418 compiler #f #f ()) -(3419 make-cont 3418 7 ()) -(3420 compiler #f #f ()) -(3421 fall-through-cont 3420 7 ()) -(3422 compiler #f #f ()) -(3423 push-arguments 3422 7 ()) -(3424 recur 3423 37 ()) -(3425 compiler #f #f ()) -(3426 compile-unknown-call 3425 7 ()) -(3427 compiler #f #f ()) -(3428 name-node-binding 3427 7 ()) -(3429 compiler #f #f ()) -(3430 compile-name-call 3429 7 ()) -(3431 compiler #f #f ()) -(3432 generate-trap 3431 7 ()) -(3433 compiler #f #f ()) -(3434 named-cont 3433 7 ()) -(3435 compiler #f #f ()) -(3436 push-all-with-names 3435 7 ()) -(3437 compiler #f #f ()) -(3438 set-lexical-offsets! 3437 7 ()) -(3439 loop 3438 22 ()) -(3440 compiler #f #f ()) -(3441 name-node->symbol 3440 7 ()) -(3442 compiler #f #f ()) -(3443 return-cont 3442 7 ()) -(3444 compiler #f #f ()) -(3445 compile-lambda-code 3444 7 ()) -(3446 compiler #f #f ()) -(3447 cont-name 3446 7 ()) -(3448 compiler #f #f ()) -(3449 compile-redex 3448 7 ()) -(3450 compiler #f #f ()) -(3451 compile-call 3450 7 ()) -(3452 compiler #f #f ()) -(3453 compile-lambda 3452 7 ()) -(3454 compiler #f #f ()) -(3455 variable-env-data 3454 7 ()) -(3456 level-loop 3455 26 ()) -(3457 loop 3456 60 ()) -(3458 loop 3457 123 ()) -(3459 compiler #f #f ()) -(3460 sort-list 3459 7 ()) -(3461 insert 3460 11 ()) -(3462 sort 3460 32 ()) -(3463 compiler #f #f ()) -(3464 get-variables-offsets 3463 7 ()) -(3465 loop 3464 22 ()) -(3466 compiler #f #f ()) -(3467 compile-flat-lambda 3466 7 ()) -(3468 #f 3467 26 ()) -(3469 #f 3467 366 ()) -(3470 compiler #f #f ()) -(3471 fall-through-cont? 3470 7 ()) -(3472 compiler #f #f ()) -(3473 ignore-values-cont 3472 7 ()) -(3474 compiler #f #f ()) -(3475 set-type-check?! 3474 7 ()) -(3476 compiler #f #f ()) -(3477 push-all-but-last 3476 7 ()) -(3478 recur 3477 25 ()) -(3479 compiler #f #f ()) -(3480 direct-compilator 3479 7 ()) -(3481 #f 3480 6 ()) -(3482 compiler #f #f ()) -(3483 direct-closed-compilator 3482 7 ()) -(3484 #f 3483 6 ()) -(3485 compiler #f #f ()) -(3486 nargs->domain 3485 7 ()) -(3487 loop##356 3486 11 ()) -(3488 compiler #f #f ()) -(3489 get-primop-type 3488 7 ()) -(3490 #f 3489 10 ()) -(3491 compiler #f #f ()) -(3492 simple-compilator 3491 7 ()) -(3493 #f 3492 6 ()) -(3494 compiler #f #f ()) -(3495 simple-closed-compilator 3494 7 ()) -(3496 #f 3495 6 ()) -(3497 compiler #f #f ()) -(3498 define-simple-primitive 3497 7 ()) -(3499 compiler #f #f ()) -(3500 symbol-append 3499 7 ()) -(3501 compiler #f #f ()) -(3502 define-stob-predicate 3501 7 ()) -(3503 compiler #f #f ()) -(3504 define-data-struct-primitives 3503 7 ()) -(3505 def-prim 3504 8 ()) -(3506 loop##358 3504 190 ()) -(3507 compiler #f #f ()) -(3508 define-vector-primitives 3507 7 ()) -(3509 def-prim 3508 26 ()) -(3510 compiler #f #f ()) -(3511 n-ary-primitive-compilator 3510 7 ()) -(3512 #f 3511 6 ()) -(3513 compiler #f #f ()) -(3514 define-n-ary-compiler-primitive 3513 7 ()) -(3515 compiler #f #f ()) -(3516 call-on-arg-and-id 3515 7 ()) -(3517 compiler #f #f ()) -(3518 call-on-args 3517 7 ()) -(3519 do-arg 3518 6 ()) -(3520 loop 3518 52 ()) -(3521 compiler #f #f ()) -(3522 make-dispatch-protocol 3521 7 ()) -(3523 compiler #f #f ()) -(3524 compile-definition 3523 7 ()) -(3525 compiler #f #f ()) -(3526 compile-form 3525 7 ()) -(3527 compiler #f #f ()) -(3528 compile-forms-loop 3527 7 ()) -(3529 compiler #f #f ()) -(3530 compile-forms 3529 7 ()) -(3531 compiler #f #f ()) -(3532 append-templates 3531 7 ()) -(3533 #f 3532 31 ()) -(3534 compiler #f #f ()) -(3535 make-startup-procedure 3534 7 ()) -(3536 compiler #f #f ()) -(3537 evaluation #f #f ()) -(3538 compile-and-run 3537 7 ()) -(3539 #f 3538 61 ()) -(3540 #f 3539 6 ()) -(3541 evaluation #f #f ()) -(3542 really-load-into 3541 7 ()) -(3543 evaluation #f #f ()) -(3544 load 3543 7 ()) -(3545 evaluation #f #f ()) -(3546 eval-from-file 3545 7 ()) -(3547 evaluation #f #f ()) -(3548 load-into 3547 7 ()) -(3549 evaluation #f #f ()) -(3550 eval 3549 7 ()) -(3551 scheme #f #f ()) -(3552 display-conditions #f #f ()) -(3553 limited-write 3552 7 ()) -(3554 recur 3553 22 ()) -(3555 #f 3554 145 ()) -(3556 #f 3555 24 ()) -(3557 display-conditions #f #f ()) -(3558 &disclose-condition 3557 52 ()) -(3559 display-conditions #f #f ()) -(3560 display-conditions #f #f ()) -(3561 display-conditions #f #f ()) -(3562 display-conditions #f #f ()) -(3563 display-conditions #f #f ()) -(3564 really-display-condition 3563 7 ()) -(3565 #f 3564 246 ()) -(3566 display-conditions #f #f ()) -(3567 display-condition 3566 22 ()) -(3568 #f 3567 10 ()) -(3569 mini-command #f #f ()) -(3570 read-string 3569 7 ()) -(3571 loop 3570 23 ()) -(3572 mini-command #f #f ()) -(3573 mini-load 3572 7 ()) -(3574 mini-command #f #f ()) -(3575 command-processor 3574 7 ()) -(3576 loop 3575 77 ()) -(3577 #f 3576 7 ()) -(3578 #f 3577 6 ()) -(3579 #f 3578 68 ()) -(3580 #f 3577 11 ()) -(3581 #f 3580 75 ()) -(3582 #f 3580 201 ()) -(3583 #f 3580 246 ()) -(3584 #f 3583 12 ()) -(3585 export-the-record-type #f #f ()) -(3586 enum-case #f #f ()) -(3587 scheduler #f #f ()) -(3588 decrement-counter! 3587 7 ()) -(3589 scheduler #f #f ()) -(3590 increment-counter! 3589 7 ()) -(3591 scheduler #f #f ()) -(3592 scheduler #f #f ()) -(3593 make-counter 3592 7 ()) -(3594 scheduler #f #f ()) -(3595 round-robin-event-handler 3594 7 ()) -(3596 thread-event-handler 3595 15 ()) -(3597 #f 3596 111 ()) -(3598 asynchronous-event-handler 3595 24 ()) -(3599 next-thread 3595 33 ()) -(3600 #f 3599 18 ()) -(3601 scheduler #f #f ()) -(3602 run-threads-with-housekeeper 3601 7 ()) -(3603 #f 3602 6 ()) -(3604 loop 3603 29 ()) -(3605 #f 3604 6 ()) -(3606 #f 3605 57 ()) -(3607 scheduler #f #f ()) -(3608 run-threads 3607 7 ()) -(3609 #f 3608 6 ()) -(3610 loop 3609 26 ()) -(3611 #f 3610 6 ()) -(3612 #f 3611 8 ()) -(3613 root-scheduler #f #f ()) -(3614 root-scheduler #f #f ()) -(3615 spawn-output-forcers 3614 7 ()) -(3616 root-scheduler #f #f ()) -(3617 call-when-deadlocked! 3616 7 ()) -(3618 root-scheduler #f #f ()) -(3619 root-scheduler #f #f ()) -(3620 do-some-waiting 3619 7 ()) -(3621 root-scheduler #f #f ()) -(3622 root-scheduler #f #f ()) -(3623 root-wait 3622 7 ()) -(3624 #f 3623 22 ()) -(3625 root-scheduler #f #f ()) -(3626 scheme-exit-now 3625 7 ()) -(3627 root-scheduler #f #f ()) -(3628 root-scheduler #f #f ()) -(3629 cheap-display-condition 3628 7 ()) -(3630 #f 3629 164 ()) -(3631 root-scheduler #f #f ()) -(3632 root-handler 3631 7 ()) -(3633 root-scheduler #f #f ()) -(3634 make-root-event-handler 3633 7 ()) -(3635 #f 3634 115 ()) -(3636 #f 3634 120 ()) -(3637 root-scheduler #f #f ()) -(3638 root-scheduler 3637 7 ()) -(3639 #f 3638 13 ()) -(3640 #f 3639 24 ()) -(3641 #f 3639 41 ()) -(3642 usual-resumer #f #f ()) -(3643 usual-resumer #f #f ()) -(3644 initialize-rts 3643 7 ()) -(3645 #f 3644 44 ()) -(3646 #f 3645 7 ()) -(3647 #f 3646 46 ()) -(3648 #f 3647 3 ()) -(3649 usual-resumer #f #f ()) -(3650 usual-resumer 3649 7 ()) -(3651 #f 3650 6 ()) -(3652 #f 3651 15 ()) -(3653 initial-system #f #f ()) -(3654 make-tower 3653 7 ()) -(3655 initial-system #f #f ()) -(3656 make-initial-package 3655 7 ()) -(3657 #f 3656 17 ()) -(3658 initial-system #f #f ()) -(3659 initialize-interaction-environment! 3658 7 ()) -(3660 initial-system #f #f ()) -(3661 make-built-in-structures 3660 7 ()) -(3662 #f 3661 38 ()) -(3663 #f 3661 60 ()) -(3664 initial-system #f #f ()) -(3665 start 3664 7 ()) -(3666 #f 3665 6 ()) -(3667 #f 3666 6 ()) -(3668 #f 3667 64 ()) -(3669 usual-macros #f #f ()) -(3670 find-free-names-in-syntax-rules 3669 7 ()) -(3671 meta-variables 3670 13 ()) -(3672 free-names 3670 22 ()) -(3673 loop##378 3670 36 ()) -(3674 usual-macros #f #f ()) -(3675 usual-macros #f #f ()) -(3676 segment-tail 3675 7 ()) -(3677 loop 3676 21 ()) -(3678 usual-macros #f #f ()) -(3679 segment-depth 3678 7 ()) -(3680 usual-macros #f #f ()) -(3681 segment-template? 3680 7 ()) -(3682 usual-macros #f #f ()) -(3683 segment-pattern? 3682 7 ()) -(3684 usual-macros #f #f ()) -(3685 process-rules 3684 7 ()) -(3686 make-transformer 3685 424 ()) -(3687 process-rule 3685 433 ()) -(3688 #f 3687 114 ()) -(3689 process-match 3685 442 ()) -(3690 process-segment-match 3685 451 ()) -(3691 process-pattern 3685 460 ()) -(3692 #f 3691 97 ()) -(3693 process-template 3685 469 ()) -(3694 loop##382 3693 294 ()) -(3695 meta-variables 3685 478 ()) -(3696 free-meta-variables 3685 487 ()) -(3697 usual-macros #f #f ()) -(3698 #f 3697 11 ()) -(3699 usual-macros #f #f ()) -(3700 #f 3699 11 ()) -(3701 expand-quasiquote 3700 154 ()) -(3702 finalize-quasiquote 3700 163 ()) -(3703 descend-quasiquote 3700 172 ()) -(3704 descend-quasiquote-pair 3700 181 ()) -(3705 #f 3704 15 ()) -(3706 #f 3705 15 ()) -(3707 descend-quasiquote-vector 3700 190 ()) -(3708 #f 3707 22 ()) -(3709 interesting-to-quasiquote? 3700 199 ()) -(3710 usual-macros #f #f ()) -(3711 case-clause? 3710 7 ()) -(3712 usual-macros #f #f ()) -(3713 #f 3712 11 ()) -(3714 #f 3713 28 ()) -(3715 #f 3713 218 ()) -(3716 usual-macros #f #f ()) -(3717 #f 3716 11 ()) -(3718 usual-macros #f #f ()) -(3719 specs? 3718 7 ()) -(3720 usual-macros #f #f ()) -(3721 #f 3720 11 ()) -(3722 usual-macros #f #f ()) -(3723 #f 3722 11 ()) -(3724 usual-macros #f #f ()) -(3725 do-spec? 3724 7 ()) -(3726 usual-macros #f #f ()) -(3727 #f 3726 11 ()) -(3728 #f 3727 238 ()) -(3729 usual-macros #f #f ()) -(3730 #f 3729 11 ()) -(3731 recur 3730 85 ()) -(3732 usual-macros #f #f ()) -(3733 #f 3732 11 ()) -(3734 usual-macros #f #f ()) -(3735 usual-transform 3734 7 ()) -(3736 usual-macros #f #f ()) -(3737 define-usual-macro 3736 7 ()) -(3738 usual-macros #f #f ()) -(3739 strong #f #f ()) -(3740 pop-vertex-edge! 3739 7 ()) -(3741 strong #f #f ()) -(3742 follow-edge 3741 7 ()) -(3743 strong #f #f ()) -(3744 unwind-stack 3743 7 ()) -(3745 loop 3744 22 ()) -(3746 strong #f #f ()) -(3747 end-vertex 3746 7 ()) -(3748 #f 3747 6 ()) -(3749 strong #f #f ()) -(3750 get-strong 3749 7 ()) -(3751 strong #f #f ()) -(3752 do-vertex 3751 7 ()) -(3753 strong #f #f ()) -(3754 make-vertices 3753 7 ()) -(3755 maybe-slot 3754 6 ()) -(3756 #f 3754 18 ()) -(3757 #f 3754 36 ()) -(3758 strong #f #f ()) -(3759 make-vertex 3758 7 ()) -(3760 strong #f #f ()) -(3761 vertex? 3760 7 ()) -(3762 strong #f #f ()) -(3763 vertex-data 3762 7 ()) -(3764 strong #f #f ()) -(3765 set-vertex-edges! 3764 7 ()) -(3766 strong #f #f ()) -(3767 vertex-edges 3766 7 ()) -(3768 strong #f #f ()) -(3769 set-vertex-stack! 3768 7 ()) -(3770 strong #f #f ()) -(3771 vertex-stack 3770 7 ()) -(3772 strong #f #f ()) -(3773 set-vertex-index! 3772 7 ()) -(3774 strong #f #f ()) -(3775 vertex-index 3774 7 ()) -(3776 strong #f #f ()) -(3777 set-vertex-parent! 3776 7 ()) -(3778 strong #f #f ()) -(3779 vertex-parent 3778 7 ()) -(3780 strong #f #f ()) -(3781 set-vertex-lowpoint! 3780 7 ()) -(3782 strong #f #f ()) -(3783 vertex-lowpoint 3782 7 ()) -(3784 strong #f #f ()) -(3785 really-make-vertex 3784 7 ()) -(3786 strong #f #f ()) -(3787 strong #f #f ()) -(3788 find-next-vertex 3787 7 ()) -(3789 loop##404 3788 11 ()) -(3790 strong #f #f ()) -(3791 strongly-connected-components 3790 7 ()) -(3792 loop 3791 52 ()) -(3793 #f 3792 39 ()) -(3794 #f 3792 57 ()) -(3795 usages #f #f ()) -(3796 insert-aliases 3795 7 ()) -(3797 loop 3796 22 ()) -(3798 usages #f #f ()) -(3799 make-form 3798 7 ()) -(3800 usages #f #f ()) -(3801 #f 3800 11 ()) -(3802 usages #f #f ()) -(3803 form? 3802 7 ()) -(3804 usages #f #f ()) -(3805 form-node 3804 7 ()) -(3806 usages #f #f ()) -(3807 set-form-aliases! 3806 7 ()) -(3808 usages #f #f ()) -(3809 form-aliases 3808 7 ()) -(3810 usages #f #f ()) -(3811 set-form-unaliased?! 3810 7 ()) -(3812 usages #f #f ()) -(3813 form-unaliased? 3812 7 ()) -(3814 usages #f #f ()) -(3815 set-form-free! 3814 7 ()) -(3816 usages #f #f ()) -(3817 form-free 3816 7 ()) -(3818 usages #f #f ()) -(3819 set-form-temp! 3818 7 ()) -(3820 usages #f #f ()) -(3821 form-temp 3820 7 ()) -(3822 usages #f #f ()) -(3823 really-make-form 3822 7 ()) -(3824 usages #f #f ()) -(3825 usages #f #f ()) -(3826 topologically-sort 3825 7 ()) -(3827 #f 3826 13 ()) -(3828 #f 3827 6 ()) -(3829 #f 3827 15 ()) -(3830 usages #f #f ()) -(3831 maybe-make-aliased 3830 7 ()) -(3832 usages #f #f ()) -(3833 stuff-count 3832 7 ()) -(3834 #f 3833 10 ()) -(3835 usages #f #f ()) -(3836 sort-forms 3835 7 ()) -(3837 #f 3836 39 ()) -(3838 #f 3836 71 ()) -(3839 usages #f #f ()) -(3840 usages #f #f ()) -(3841 usages #f #f ()) -(3842 usages #f #f ()) -(3843 usages #f #f ()) -(3844 usages #f #f ()) -(3845 usages #f #f ()) -(3846 usages #f #f ()) -(3847 usages #f #f ()) -(3848 usages #f #f ()) -(3849 usage-incrementator 3848 7 ()) -(3850 #f 3849 6 ()) -(3851 usages #f #f ()) -(3852 package-usage? 3851 7 ()) -(3853 usages #f #f ()) -(3854 make-package-usage 3853 7 ()) -(3855 usages #f #f ()) -(3856 make-usage 3855 7 ()) -(3857 usages #f #f ()) -(3858 usage? 3857 7 ()) -(3859 usages #f #f ()) -(3860 usage-name-node 3859 7 ()) -(3861 usages #f #f ()) -(3862 set-reference! 3861 7 ()) -(3863 usages #f #f ()) -(3864 usage-reference-count 3863 7 ()) -(3865 usages #f #f ()) -(3866 set-operator! 3865 7 ()) -(3867 usages #f #f ()) -(3868 usage-operator-count 3867 7 ()) -(3869 usages #f #f ()) -(3870 set-assignment! 3869 7 ()) -(3871 usages #f #f ()) -(3872 usage-assignment-count 3871 7 ()) -(3873 usages #f #f ()) -(3874 really-make-usage 3873 7 ()) -(3875 usages #f #f ()) -(3876 usages #f #f ()) -(3877 #f 3876 15 ()) -(3878 usages #f #f ()) -(3879 #f 3878 15 ()) -(3880 usages #f #f ()) -(3881 #f 3880 15 ()) -(3882 usages #f #f ()) -(3883 #f 3882 15 ()) -(3884 usages #f #f ()) -(3885 #f 3884 15 ()) -(3886 usages #f #f ()) -(3887 #f 3886 15 ()) -(3888 usages #f #f ()) -(3889 #f 3888 15 ()) -(3890 #f 3889 57 ()) -(3891 usages #f #f ()) -(3892 #f 3891 15 ()) -(3893 #f 3892 41 ()) -(3894 usages #f #f ()) -(3895 #f 3894 13 ()) -(3896 usages #f #f ()) -(3897 add-if-free 3896 7 ()) -(3898 usages #f #f ()) -(3899 #f 3898 13 ()) -(3900 usages #f #f ()) -(3901 usages #f #f ()) -(3902 usages #f #f ()) -(3903 usages #f #f ()) -(3904 usages #f #f ()) -(3905 usages #f #f ()) -(3906 nothing 3905 7 ()) -(3907 usages #f #f ()) -(3908 define-usage-analyzer 3907 7 ()) -(3909 usages #f #f ()) -(3910 #f 3909 11 ()) -(3911 usages #f #f ()) -(3912 analyze-nodes 3911 7 ()) -(3913 #f 3912 6 ()) -(3914 usages #f #f ()) -(3915 analyze 3914 7 ()) -(3916 usages #f #f ()) -(3917 find-node-usages 3916 7 ()) -(3918 #f 3917 30 ()) -(3919 #f 3917 44 ()) -(3920 usages #f #f ()) -(3921 maybe-update-known-type 3920 7 ()) -(3922 usages #f #f ()) -(3923 find-usages 3922 7 ()) -(3924 #f 3923 23 ()) -(3925 #f 3923 41 ()) -(3926 #f 3925 24 ()) -(3927 #f 3923 59 ()) -(3928 inline #f #f ()) -(3929 inline #f #f ()) -(3930 inline #f #f ()) -(3931 inline #f #f ()) -(3932 inline #f #f ()) -(3933 inline #f #f ()) -(3934 get-qualified-env 3933 7 ()) -(3935 inline #f #f ()) -(3936 qualified->name 3935 7 ()) -(3937 recur 3936 18 ()) -(3938 inline #f #f ()) -(3939 inline #f #f ()) -(3940 inline #f #f ()) -(3941 reconstitute-name 3940 7 ()) -(3942 inline #f #f ()) -(3943 reconstitute 3942 7 ()) -(3944 label 3943 18 ()) -(3945 inline #f #f ()) -(3946 make-substitution 3945 7 ()) -(3947 #f 3946 29 ()) -(3948 inline #f #f ()) -(3949 inline-transform 3948 7 ()) -(3950 #f 3949 63 ()) -(3951 #f 3949 71 ()) -(3952 inline #f #f ()) -(3953 unused-name 3952 7 ()) -(3954 loop##428 3953 46 ()) -(3955 #f 3954 10 ()) -(3956 inline #f #f ()) -(3957 clean-lookup 3956 7 ()) -(3958 inline #f #f ()) -(3959 clean-lambda 3958 7 ()) -(3960 #f 3959 41 ()) -(3961 recur 3959 91 ()) -(3962 inline #f #f ()) -(3963 clean-node 3962 7 ()) -(3964 #f 3963 132 ()) -(3965 #f 3963 296 ()) -(3966 inline #f #f ()) -(3967 make-inline-transform 3966 7 ()) -(3968 #f 3967 41 ()) -(3969 #f 3967 96 ()) -(3970 loop##429 3969 11 ()) -(3971 for-reification #f #f ()) -(3972 package-define-static! 3971 7 ()) -(3973 for-reification #f #f ()) -(3974 transform 3973 7 ()) -(3975 for-reification #f #f ()) -(3976 package 3975 7 ()) -(3977 loop##430 3976 73 ()) -(3978 for-reification #f #f ()) -(3979 simple-interface 3978 7 ()) -(3980 #f 3979 12 ()) -(3981 for-reification #f #f ()) -(3982 primop 3981 7 ()) -(3983 for-reification #f #f ()) -(3984 operator 3983 7 ()) -(3985 types #f #f ()) -(3986 types #f #f ()) -(3987 types #f #f ()) -(3988 types #f #f ()) -(3989 types #f #f ()) -(3990 types #f #f ()) -(3991 types #f #f ()) -(3992 types #f #f ()) -(3993 types #f #f ()) -(3994 types #f #f ()) -(3995 types #f #f ()) -(3996 types #f #f ()) -(3997 types #f #f ()) -(3998 types #f #f ()) -(3999 types #f #f ()) -(4000 types #f #f ()) -(4001 types #f #f ()) -(4002 types #f #f ()) -(4003 types #f #f ()) -(4004 types #f #f ()) -(4005 types #f #f ()) -(4006 types #f #f ()) -(4007 procedure 4006 7 ()) -(4008 types #f #f ()) -(4009 types #f #f ()) -(4010 types #f #f ()) -(4011 types #f #f ()) -(4012 defpackage #f #f ()) -(4013 note-name! 4012 7 ()) -(4014 defpackage #f #f ()) -(4015 set-verify-later! 4014 7 ()) -(4016 defpackage #f #f ()) -(4017 verify-later! 4016 7 ()) -(4018 defpackage #f #f ()) -(4019 *verify-later!* 4018 7 ()) -(4020 defpackage #f #f ()) -(4021 defpackage #f #f ()) -(4022 loser 4021 7 ()) -(4023 defpackage #f #f ()) -(4024 make-a-package 4023 7 ()) -(4025 optimizer #f #f ()) -(4026 apply-optimizers 4025 7 ()) -(4027 #f 4026 6 ()) -(4028 optimizer #f #f ()) -(4029 get-optimizer 4028 7 ()) -(4030 #f 4029 6 ()) -(4031 #f 4030 10 ()) -(4032 #f 4031 55 ()) -(4033 optimizer #f #f ()) -(4034 set-optimizer! 4033 7 ()) -(4035 optimizer #f #f ()) -(4036 scan-package #f #f ()) -(4037 check-structure 4036 7 ()) -(4038 #f 4037 17 ()) -(4039 scan-package #f #f ()) -(4040 package-optimizer-names 4039 7 ()) -(4041 #f 4040 36 ()) -(4042 #f 4040 75 ()) -(4043 scan-package #f #f ()) -(4044 read-files 4043 7 ()) -(4045 #f 4044 30 ()) -(4046 scan-package #f #f ()) -(4047 package-source 4046 7 ()) -(4048 #f 4047 46 ()) -(4049 scan-package #f #f ()) -(4050 collect-packages 4049 7 ()) -(4051 recur 4050 26 ()) -(4052 #f 4051 150 ()) -(4053 compile-packages #f #f ()) -(4054 compile-packages #f #f ()) -(4055 compile-packages #f #f ()) -(4056 make-define-primitive-node 4055 7 ()) -(4057 compile-packages #f #f ()) -(4058 define-primitives 4057 7 ()) -(4059 #f 4058 17 ()) -(4060 #f 4058 36 ()) -(4061 compile-packages #f #f ()) -(4062 define-usual-transform 4061 7 ()) -(4063 compile-packages #f #f ()) -(4064 expand-package 4063 7 ()) -(4065 #f 4064 21 ()) -(4066 #f 4065 10 ()) -(4067 #f 4065 28 ()) -(4068 #f 4065 82 ()) -(4069 #f 4068 15 ()) -(4070 #f 4069 10 ()) -(4071 compile-packages #f #f ()) -(4072 compile-package 4071 7 ()) -(4073 module-system #f #f ()) -(4074 analysis #f #f ()) -(4075 analysis #f #f ()) -(4076 analysis #f #f ()) -(4077 analysis #f #f ()) -(4078 analysis #f #f ()) -(4079 package-lookup-type 4078 7 ()) -(4080 analysis #f #f ()) -(4081 analysis #f #f ()) -(4082 require 4081 7 ()) -(4083 analysis #f #f ()) -(4084 simple-literal? 4083 7 ()) -(4085 analysis #f #f ()) -(4086 analysis #f #f ()) -(4087 analysis #f #f ()) -(4088 lexical-node? 4087 7 ()) -(4089 analysis #f #f ()) -(4090 really-simple-call? 4089 7 ()) -(4091 analysis #f #f ()) -(4092 static-value 4091 7 ()) -(4093 analysis #f #f ()) -(4094 #f 4093 11 ()) -(4095 analysis #f #f ()) -(4096 #f 4095 11 ()) -(4097 loop 4096 21 ()) -(4098 analysis #f #f ()) -(4099 #f 4098 11 ()) -(4100 analysis #f #f ()) -(4101 #f 4100 11 ()) -(4102 analysis #f #f ()) -(4103 #f 4102 11 ()) -(4104 analysis #f #f ()) -(4105 #f 4104 11 ()) -(4106 analysis #f #f ()) -(4107 #f 4106 11 ()) -(4108 analysis #f #f ()) -(4109 #f 4108 11 ()) -(4110 analysis #f #f ()) -(4111 #f 4110 11 ()) -(4112 analysis #f #f ()) -(4113 #f 4112 11 ()) -(4114 analysis #f #f ()) -(4115 #f 4114 11 ()) -(4116 analysis #f #f ()) -(4117 #f 4116 11 ()) -(4118 analysis #f #f ()) -(4119 define-analyzer 4118 7 ()) -(4120 analysis #f #f ()) -(4121 #f 4120 11 ()) -(4122 analysis #f #f ()) -(4123 simple-list? 4122 7 ()) -(4124 analysis #f #f ()) -(4125 simple? 4124 7 ()) -(4126 analysis #f #f ()) -(4127 analysis #f #f ()) -(4128 simple-lambda? 4127 7 ()) -(4129 #f 4128 128 ()) -(4130 analysis #f #f ()) -(4131 inlinable-rhs? 4130 7 ()) -(4132 analysis #f #f ()) -(4133 analyze-form 4132 7 ()) -(4134 analysis #f #f ()) -(4135 analyze-forms 4134 7 ()) -(4136 #f 4135 17 ()) -(4137 analysis #f #f ()) -(4138 #f 4137 11 ()) -(4139 flat-environments #f #f ()) -(4140 set-difference 4139 7 ()) -(4141 recur 4140 18 ()) -(4142 flat-environments #f #f ()) -(4143 union 4142 7 ()) -(4144 recur 4143 31 ()) -(4145 flat-environments #f #f ()) -(4146 cell-set!-primop 4145 7 ()) -(4147 flat-environments #f #f ()) -(4148 flat-environments #f #f ()) -(4149 cell-ref-primop 4148 7 ()) -(4150 flat-environments #f #f ()) -(4151 flat-environments #f #f ()) -(4152 make-cell-primop 4151 7 ()) -(4153 flat-environments #f #f ()) -(4154 flat-environments #f #f ()) -(4155 flat-environments #f #f ()) -(4156 flat-environments #f #f ()) -(4157 flat-environments #f #f ()) -(4158 flat-environments #f #f ()) -(4159 flat-environments #f #f ()) -(4160 flat-environments #f #f ()) -(4161 flat-environments #f #f ()) -(4162 flat-environments #f #f ()) -(4163 flat-environments #f #f ()) -(4164 make-primop-call 4163 7 ()) -(4165 flat-environments #f #f ()) -(4166 make-cell-set! 4165 7 ()) -(4167 flat-environments #f #f ()) -(4168 make-cell-ref 4167 7 ()) -(4169 flat-environments #f #f ()) -(4170 make-unassigned-cell 4169 7 ()) -(4171 flat-environments #f #f ()) -(4172 make-cell 4171 7 ()) -(4173 flat-environments #f #f ()) -(4174 #f 4173 11 ()) -(4175 #f 4174 25 ()) -(4176 flat-environments #f #f ()) -(4177 #f 4176 11 ()) -(4178 flat-environments #f #f ()) -(4179 #f 4178 11 ()) -(4180 flat-environments #f #f ()) -(4181 #f 4180 11 ()) -(4182 flat-environments #f #f ()) -(4183 #f 4182 11 ()) -(4184 flat-environments #f #f ()) -(4185 flat-environments #f #f ()) -(4186 flat-environments #f #f ()) -(4187 flat-environments #f #f ()) -(4188 flat-environments #f #f ()) -(4189 flat-environments #f #f ()) -(4190 no-sets 4189 7 ()) -(4191 flat-environments #f #f ()) -(4192 define-set-marker 4191 7 ()) -(4193 flat-environments #f #f ()) -(4194 #f 4193 11 ()) -(4195 flat-environments #f #f ()) -(4196 mark-set-variables! 4195 7 ()) -(4197 flat-environments #f #f ()) -(4198 assigned? 4197 7 ()) -(4199 flat-environments #f #f ()) -(4200 #f 4199 11 ()) -(4201 flat-environments #f #f ()) -(4202 #f 4201 11 ()) -(4203 #f 4202 85 ()) -(4204 #f 4202 99 ()) -(4205 #f 4204 119 ()) -(4206 flat-environments #f #f ()) -(4207 #f 4206 11 ()) -(4208 #f 4207 21 ()) -(4209 flat-environments #f #f ()) -(4210 #f 4209 11 ()) -(4211 #f 4210 21 ()) -(4212 #f 4211 6 ()) -(4213 flat-environments #f #f ()) -(4214 #f 4213 11 ()) -(4215 #f 4214 37 ()) -(4216 flat-environments #f #f ()) -(4217 #f 4216 11 ()) -(4218 flat-environments #f #f ()) -(4219 add-cells 4218 7 ()) -(4220 loop##443 4219 11 ()) -(4221 flat-environments #f #f ()) -(4222 convert-lambda-body 4221 7 ()) -(4223 #f 4222 47 ()) -(4224 flat-environments #f #f ()) -(4225 flatten-lambda 4224 7 ()) -(4226 #f 4225 21 ()) -(4227 flat-environments #f #f ()) -(4228 #f 4227 11 ()) -(4229 flat-environments #f #f ()) -(4230 flat-environments #f #f ()) -(4231 flat-environments #f #f ()) -(4232 flat-environments #f #f ()) -(4233 flat-environments #f #f ()) -(4234 no-free-vars 4233 7 ()) -(4235 flat-environments #f #f ()) -(4236 flatten-list 4235 7 ()) -(4237 loop 4236 26 ()) -(4238 #f 4237 39 ()) -(4239 flat-environments #f #f ()) -(4240 define-flattener 4239 7 ()) -(4241 flat-environments #f #f ()) -(4242 #f 4241 11 ()) -(4243 #f 4242 6 ()) -(4244 flat-environments #f #f ()) -(4245 flatten-node 4244 7 ()) -(4246 flat-environments #f #f ()) -(4247 flatten-form 4246 7 ()) -(4248 #f 4247 73 ()) -(4249 #f 4247 120 ()) -(4250 flat-environments #f #f ()) -(4251 #f 4250 11 ()) -(4252 #f 4251 6 ()) -(4253 ensures-loaded #f #f ()) -(4254 ensure-loaded 4253 7 ()) -(4255 #f 4254 49 ()) -(4256 #f 4255 56 ()) -(4257 #f 4254 61 ()) -(4258 #f #f #f ()) -(4259 #f 4258 3 ()) -(4260 get-location 4259 3 ()) -(4261 #f 4259 10490 ()) -(4262 #f 4259 10539 ()) -(4263 #f 4259 10652 ()) -(4264 #f 4259 10770 ()) -(4265 #f 4259 10851 ()) -(4266 conc 4265 42 ()) -(4267 #f 4266 16 ()) -(4268 #f 4259 12161 ()) -(4269 loop 4268 115 ()) -(4270 #f 4268 202 ()) -(4271 #f 4268 233 ()) -(4272 #f 4268 413 ()) -(4273 #f 4268 471 ()) -(4274 #f 4259 12549 ()) -(4275 mem? 4274 197 ()) -(4276 every? 4274 206 ()) -(4277 #f 4274 219 ()) -(4278 #f 4274 282 ()) -(4279 #f 4259 12745 ()) -(4280 loop##448 4279 66 ()) -(4281 #f 4259 12794 ()) -(4282 #f 4259 14536 ()) -(4283 #f 4259 21629 ()) -(4284 #f 4283 456 ()) -(4285 #f 4259 22563 ()) -(4286 loop 4285 95 ()) -(4287 #f 4259 22720 ()) -(4288 loop 4287 95 ()) -(4289 #f 4259 22845 ()) -(4290 loop 4289 95 ()) -(4291 #f 4259 22938 ()) -(4292 loop 4291 95 ()) -(4293 #f 4259 23031 ()) -(4294 loop 4293 95 ()) -(4295 #f 4259 23124 ()) -(4296 loop 4295 95 ()) -(4297 #f 4259 23217 ()) -(4298 loop 4297 95 ()) -(4299 #f 4259 23310 ()) -(4300 loop 4299 95 ()) -(4301 #f 4259 23403 ()) -(4302 loop 4301 95 ()) -(4303 #f 4259 24099 ()) -(4304 loop 4303 95 ()) -(4305 #f 4259 26351 ()) -(4306 #f 4259 26514 ()) -(4307 #f 4259 26563 ()) -(4308 #f 4259 26612 ()) -(4309 #f 4259 26757 ()) -(4310 #f 4259 26975 ()) -(4311 #f 4259 29898 ()) -(4312 #f 4259 30098 ()) -(4313 #f 4259 30147 ()) -(4314 #f 4259 30196 ()) -(4315 #f 4314 146 ()) -(4316 #f 4259 30245 ()) -(4317 #f 4316 329 ()) -(4318 #f 4316 403 ()) -(4319 #f 4259 30624 ()) -(4320 #f 4259 30673 ()) -(4321 #f 4320 176 ()) -(4322 parse-package-clauses 4259 30731 ()) -(4323 loop 4322 76 ()) -(4324 #f 4259 30740 ()) -(4325 #f 4324 35 ()) -(4326 #f 4325 146 ()) -(4327 #f 4259 30996 ()) -(4328 #f 4259 31045 ()) -(4329 loop 4328 35 ()) -(4330 #f 4259 31158 ()) -(4331 #f 4259 31239 ()) -(4332 #f 4259 31320 ()) -(4333 loop 4332 51 ()) -(4334 #f 4332 90 ()) -(4335 #f 4332 114 ()) -(4336 #f 4259 31401 ()) -(4337 #f 4259 32658 ()) -(4338 #f 4259 32794 ()) -(4339 #f #f #f ()) -- diff --git a/build/initial.image b/build/initial.image deleted file mode 100644 index 4d5a55f..0000000 Binary files a/build/initial.image and /dev/null differ diff --git a/build/initial.scm b/build/initial.scm index db9b7f5..a7d519a 100644 --- a/build/initial.scm +++ b/build/initial.scm @@ -1,4 +1,4 @@ -; Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. See file COPYING. +; Copyright (c) 1993-2000 by Richard Kelsey and Jonathan Rees. See file COPYING. ; Link script. @@ -30,7 +30,7 @@ (l '())) (for-each (lambda (int) (for-each-declaration - (lambda (name type) + (lambda (name package-name type) (if (not (assq name l)) (let ((s (eval name env))) (if (structure? s) diff --git a/build/load-linker.exec b/build/load-linker.exec new file mode 100644 index 0000000..953ea60 --- /dev/null +++ b/build/load-linker.exec @@ -0,0 +1,90 @@ +; Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. See file COPYING. + +; Load the linker. -*- Mode: Scheme; -*- + +; Run this script with ,exec ,load l.exec. +; After the script is loaded, you can, in principle, do whatever +; you might do in the usual linker image. For example, you might do +; (this is from the Makefile) +; +; ,in link-config +; (load-configuration "interfaces.scm") +; (load-configuration "packages.scm") +; (flatload initial-structures) +; (load "initial.scm") +; (link-initial-system) +; +; This is intended to be used to debug new versions of the compiler or +; static linker. + +(config '(run (define :arguments :values))) ;temporary hack + +(translate "=scheme48/" "./") + +(load-package 'flatloading) +(open 'flatloading) + +(define (r x) (config `(run ,x))) + +(r '(define-structure source-file-names (export (%file-name% :syntax)) + (open scheme-level-1 + syntactic + fluids) + (begin (define-syntax %file-name% + (syntax-rules () + ((%file-name%) (fluid $source-file-name))))))) + +(r '(define-structure enumerated enumerated-interface + (open scheme-level-1 signals) + (files (rts defenum scm)))) + +(r '(define-structure architecture architecture-interface + (open scheme-level-1 signals enumerated) + (files (rts arch)))) + +(config '(structure reflective-tower-maker + (export-reflective-tower-maker))) + +; Make the new linker obtain its table, record, etc. structures from +; the currently running Scheme. + +(config '(load "packages.scm")) +(config '(structure %run-time-structures run-time-structures-interface)) +(config '(structure %features-structures features-structures-interface)) + +(r + '(define-structure %linker-structures + (make-linker-structures %run-time-structures + %features-structures + (make-compiler-structures %run-time-structures + %features-structures)))) + +; Load the linker's interface and structure definitions. +(config '(load "interfaces.scm" "more-interfaces.scm")) +(let ((z (config '(run %linker-structures))) + (env (config interaction-environment))) + (config (lambda () (flatload z env)))) + +; Load the linker. +(load-package 'link-config) + +; Initialize +(in 'link-config + '(open scheme packages packages-internal + reflective-tower-maker)) + +(in 'linker '(run (set! *debug-linker?* #t))) +(in 'link-config '(open flatloading)) ; A different one. + +; ,open debuginfo packages-internal compiler scan syntactic meta-types + +; (in 'link-config '(dump "l.image")) + +; ,exec (usual-stuff) + +(define (usual-stuff) + (in 'link-config) + (run '(begin (load-configuration "interfaces.scm") + (load-configuration "packages.scm") + (flatload initial-structures))) + (load "initial.scm")) diff --git a/build/lucid-script.lisp b/build/lucid-script.lisp new file mode 100644 index 0000000..0f142cf --- /dev/null +++ b/build/lucid-script.lisp @@ -0,0 +1,82 @@ + +; Script to load the Scheme 48 linker into Common Lisp. +; Requires Pseudoscheme 2.11. + +(defvar pseudoscheme-directory "../pseudo/") +(load (concatenate 'string pseudoscheme-directory "loadit.lisp")) +; or perhaps (load (merge-pathnames "loadit.lisp" pseudoscheme-directory)) +(load-pseudoscheme pseudoscheme-directory) + +(progn (revised^4-scheme::define-sharp-macro #\. + #'(lambda (c port) + (read-char port) + (eval (let ((*readtable* ps::scheme-readtable)) + (read port))))) + (values)) + +(ps:scheme) +;-------------------- +; Scheme forms + +(benchmark-mode) + +(define config-env ; (interaction-environment) would also work here. + (#.'scheme-translator:make-program-env + '%config + (list #.'scheme-translator:revised^4-scheme-structure))) + +(load "bcomp/module-language" config-env) +(load "alt/config" config-env) +(load "env/flatload" config-env) +(eval '(set! *load-file-type* #f) config-env) + +(define load-config + (let ((load-config (eval 'load-configuration config-env))) + (lambda (filename) + (load-config filename config-env)))) + +(load-config "packages") + +(define flatload-package (eval 'flatload config-env)) + +(flatload-package (eval 'linker-structures config-env) config-env) + +(let ((#.'clever-load:*compile-if-necessary-p* #t)) + (let ((#.'ps:*scheme-read* #.'#'ps::scheme-read-using-commonlisp-reader)) + (load "alt/pseudoscheme-record") + (load "alt/pseudoscheme-features"))) + +(let ((#.'clever-load:*compile-if-necessary-p* #t)) + (flatload-package (eval 'link-config config-env))) + +(load "alt/init-defpackage.scm") + +(define-syntax struct-list ;not in link.sbin + (syntax-rules () + ((struct-list ?name ...) (list (cons '?name ?name) ...)))) + +;-------------------- +(quit) + +#+Lucid +(defun disksave-restart-function () + (format t "~&Scheme 48 linker.~2%") + ;; (hax:init-interrupt-delivery) - for threads + (ps:scheme) + (terpri)) +#+Lucid +(defun dump-linker () + (lcl:disksave "link/linker-in-lucid" :gc t :full-gc t :verbose t + :restart-function #'disksave-restart-function)) +;(dump-linker) +;(lcl:quit) + + +; Debugging hacks +;(defun enable-lisp-packages () +; (setq *readtable* ps:scheme-readtable) +; (values)) +;(defun disable-lisp-packages () +; (setq *readtable* ps::roadblock-readtable) +; (values)) + diff --git a/build/minor-version-number b/build/minor-version-number index 59343b0..c596943 100644 --- a/build/minor-version-number +++ b/build/minor-version-number @@ -1 +1 @@ -53 +6.4 diff --git a/c/.gitignore b/c/.gitignore new file mode 100644 index 0000000..35ecba5 --- /dev/null +++ b/c/.gitignore @@ -0,0 +1,2 @@ +sysdep.h +sysdep.h.in diff --git a/c/c-mods.h b/c/c-mods.h index 84130cb..7632f4d 100644 --- a/c/c-mods.h +++ b/c/c-mods.h @@ -1,4 +1,10 @@ +#ifndef TRUE #define TRUE (0 == 0) +#endif + +#ifndef FALSE #define FALSE (0 == 1) +#endif + #define bool char /* boolean type */ diff --git a/c/event.h b/c/event.h index 96874e5..b2548b6 100644 --- a/c/event.h +++ b/c/event.h @@ -1,5 +1,7 @@ -enum event_enum { KEYBOARD_INTERRUPT_EVENT, IO_COMPLETION_EVENT, ALARM_EVENT, - OS_SIGNAL_EVENT, ERROR_EVENT, NO_EVENT }; +enum event_enum { KEYBOARD_INTERRUPT_EVENT, + IO_READ_COMPLETION_EVENT, IO_WRITE_COMPLETION_EVENT, + ALARM_EVENT, + OS_SIGNAL_EVENT, ERROR_EVENT, NO_EVENT }; extern bool s48_add_pending_fd(int fd, bool is_input); extern bool s48_remove_fd(int fd); diff --git a/c/extension.c b/c/extension.c new file mode 100644 index 0000000..ba54548 --- /dev/null +++ b/c/extension.c @@ -0,0 +1,236 @@ +/* Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. + See file COPYING. */ + +/* Implementation of the vm-extension opcode. This is completely + optional; nothing in the standard system uses these features. + If you have ANSI C but not POSIX support, try compiling with -DPOSIX=0. + + The vm-extension opcode is being phased out. New code should use the + external-call opcode to call C procedures. + + floating point: POSIX.1, ANSI C (should we be linking with -lM or -lm?) + sprintf: POSIX.1, ANSI C + atof: POSIX.1, ANSI C + + */ + +#ifndef POSIX +# define POSIX 2 +#endif + +#include +#include "sysdep.h" +#include "scheme48.h" + +#include +#include +#include +#include +#include /* setuid & setgid */ +#include +#include /* gethostbyname */ /* Kali code */ + +#include +#include + + +#define GREATEST_FIXNUM_VALUE ((1 << 29) - 1) +#define LEAST_FIXNUM_VALUE (-1 << 29) +#define CHANNEL_INDEX(x) EXTRACT_FIXNUM(STOB_REF(x, 1)) +#define FOR_INPUT 1 +#define FOR_OUTPUT 2 + +typedef struct { + char b[sizeof(double)]; +} unaligned_double; + +typedef union { + double f; + unaligned_double b; +} float_or_bytes; + +extern long s48_Sextension_valueS; /* how values are returned */ + +/* return status values */ +#define EXT_ST_OKAY 0 +#define EXT_ST_EXCEPTION 1 + +#define EXT_RETURN(value) {s48_Sextension_valueS = (value); return EXT_ST_OKAY; } +#define EXT_EXCEPTION return EXT_ST_EXCEPTION + +/******************************************/ + +s48_value +s48_extended_vm (long key, s48_value value) +{ + double x, y; + + switch (key) { + + /* Cases 0 through 19 are reserved for the mobot system. */ + + case 0: /* read jumpers on 68000 board */ + EXT_RETURN(S48_UNSAFE_ENTER_FIXNUM(0)); + + /* Floating point */ + +#define FLOP 100 +#define FLOP2(i) case FLOP+(i): \ + if (!S48_STOB_P(value) || S48_STOB_DESCRIPTOR_LENGTH(value) != 2) \ + EXT_EXCEPTION; +#define FLOP3(i) case FLOP+(i): \ + if (!S48_STOB_P(value) || S48_STOB_DESCRIPTOR_LENGTH(value) != 3) \ + EXT_EXCEPTION; + +#define get_arg(args,i) S48_STOB_REF(args,(i)) +#define get_string_arg(args,i) (S48_UNSAFE_EXTRACT_STRING(get_arg(args,i))) + +#define get_float_arg(args, i, var) EXTRACT_FLOAT(get_arg(args, i), var) +#define set_float_arg(args, i, val) SET_FLOAT(get_arg(args, i), val) + +#define EXTRACT_FLOAT(stob, var) \ + { s48_value temp_ = (stob); \ + float_or_bytes loser_; \ + if (!S48_STOB_P(temp_)) EXT_EXCEPTION; \ + loser_.b = *(unaligned_double*)(&S48_STOB_REF(temp_, 0)); \ + (var) = loser_.f; } + +#define SET_FLOAT(stob, val) \ + { s48_value temp_ = (stob); \ + float_or_bytes loser_; \ + if (!S48_STOB_P(temp_)) EXT_EXCEPTION; \ + loser_.f = (double)(val); \ + *(unaligned_double*)(&S48_STOB_REF(temp_, 0)) = loser_.b; } + + FLOP3(0) { + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + set_float_arg(value, 2, x + y); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP3(1) { + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + set_float_arg(value, 2, x - y); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP3(2) { + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + set_float_arg(value, 2, x * y); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP3(3) { + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + if (y == 0.0) EXT_EXCEPTION; + set_float_arg(value, 2, x / y); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(4) { + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + EXT_RETURN(S48_ENTER_BOOLEAN(x == y));} + FLOP2(5) { + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + EXT_RETURN(S48_ENTER_BOOLEAN(x < y));} + FLOP2(6) { /* fixnum->float */ + s48_value arg = get_arg(value, 0); + if (!S48_FIXNUM_P(arg)) EXT_RETURN(S48_FALSE); + set_float_arg(value, 1, S48_UNSAFE_EXTRACT_FIXNUM(arg)); + EXT_RETURN(S48_TRUE);} + FLOP2(7) { /* string->float */ + char *str = get_string_arg(value, 0); + set_float_arg(value, 1, atof(str)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(8) { /* float->string */ + size_t len; + char *str = get_string_arg(value,1); + get_float_arg(value, 0, x); + sprintf(str, "%g", x); + len = strlen(str); + if (len > S48_UNSAFE_STRING_LENGTH(get_arg(value,1))) + /* unlikely but catastrophic */ + fprintf(stderr, "printing float: output too long: %s\n", + str); + EXT_RETURN(S48_UNSAFE_ENTER_FIXNUM(len));} + + /* exp log sin cos tan asin acos atan sqrt */ + + FLOP2(9) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, exp(x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(10) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, log(x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(11) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, sin(x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(12) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, cos(x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(13) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, tan(x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(14) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, asin(x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(15) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, acos(x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP3(16) { /* atan */ + get_float_arg(value, 0, y); + get_float_arg(value, 1, x); + set_float_arg(value, 2, atan2(y, x)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP2(17) { + get_float_arg(value, 0, x); + set_float_arg(value, 1, sqrt(x)); + EXT_RETURN(S48_UNSPECIFIC);} + + FLOP2(18) { /* floor */ + get_float_arg(value, 0, x); + set_float_arg(value, 1, floor(x)); + EXT_RETURN(S48_UNSPECIFIC);} + case FLOP+19: { /* integer? */ + EXTRACT_FLOAT(value, x); + EXT_RETURN(S48_ENTER_BOOLEAN(fmod(x, 1.0) == 0.0)); } + case FLOP+20: { /* float->fixnum */ + EXTRACT_FLOAT(value, x); + if (x <= (double)GREATEST_FIXNUM_VALUE + && x >= (double)LEAST_FIXNUM_VALUE) + { + EXT_RETURN(S48_UNSAFE_ENTER_FIXNUM((long)x)); } + else + EXT_RETURN(S48_FALSE);} + FLOP3(21) { /* quotient */ + double z; + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + if (fmod(x, 1.0) != 0.0 || fmod(y, 1.0) != 0.0) EXT_EXCEPTION; + if (y == 0.0) EXT_EXCEPTION; + z = x / y; + set_float_arg(value, 2, z < 0.0 ? ceil(z) : floor(z)); + EXT_RETURN(S48_UNSPECIFIC);} + FLOP3(22) { /* remainder */ + get_float_arg(value, 0, x); + get_float_arg(value, 1, y); + if (fmod(x, 1.0) != 0.0 || fmod(y, 1.0) != 0.0) EXT_EXCEPTION; + if (y == 0.0) EXT_EXCEPTION; + + /* "fmod(double x, double y) returns the floating-point remainder + (f) of the division of x by y, where f has the same sign as x, + such that x=iy+f for some integer i, and |f| < |y|." */ + + set_float_arg(value, 2, fmod(x, y)); + EXT_RETURN(S48_UNSPECIFIC);} + + default: + EXT_EXCEPTION; + } +} + diff --git a/c/external.c b/c/external.c index ffc0037..0e8a5af 100644 --- a/c/external.c +++ b/c/external.c @@ -127,6 +127,8 @@ s48_value s48_external_call(s48_value sch_proc, s48_value proc_name, long nargs, char *char_argv) { + volatile char *gc_marker; /* volatile to survive longjumps */ + char *gc_marker_temp; /* C wants it so */ volatile char *gc_roots_marker; /* volatile to survive longjumps */ volatile s48_value name = proc_name; /* volatile to survive longjumps */ @@ -144,7 +146,8 @@ s48_external_call(s48_value sch_proc, s48_value proc_name, S48_CHECK_VALUE(sch_proc); S48_CHECK_STRING(name); - gc_roots_marker = s48_set_gc_roots_baseB(); + gc_roots_marker = s48_set_gc_roots_baseB(&gc_marker_temp); + gc_marker = gc_marker_temp; /* fprintf(stderr, "[external_call at depth %d]\n", depth); */ @@ -209,7 +212,7 @@ s48_external_call(s48_value sch_proc, s48_value proc_name, /* Raise an exception if the user neglected to pop off some gc roots. */ - if (! s48_release_gc_roots_baseB((char *)gc_roots_marker)) { + if (! s48_release_gc_roots_baseB((char *)gc_roots_marker, (char *)gc_marker)) { s48_raise_scheme_exception(S48_EXCEPTION_GC_PROTECTION_MISMATCH, 0); } @@ -242,7 +245,7 @@ s48_external_call(s48_value sch_proc, s48_value proc_name, depth, callback_depth()); fprintf(stderr, "[throw unrolling to %ld]\n", gc_roots_marker); */ - s48_release_gc_roots_baseB((char *)gc_roots_marker); + s48_release_gc_roots_baseB((char *)gc_roots_marker, (char *)gc_marker); } /* Check to see if a thread is waiting to return to the next block down. */ @@ -301,7 +304,7 @@ s48_call_scheme(s48_value proc, long nargs, ...) /* It would be nice to push a list of the arguments, but we have no way of preserving them across a cons. */ - if (nargs < 0 || 10 < nargs) { /* DO NOT INCREASE THIS NUMBER */ + if (nargs < 0 || 12 < nargs) { /* DO NOT INCREASE THIS NUMBER */ s48_value sch_nargs = s48_enter_integer(nargs); /* `proc' is protected */ s48_raise_scheme_exception(S48_EXCEPTION_TOO_MANY_ARGUMENTS_IN_CALLBACK, 2, proc, sch_nargs); @@ -473,12 +476,12 @@ s48_raise_scheme_exception(long why, long nargs, ...) /* Specific exceptions */ void -s48_raise_argtype_error(s48_value value) { +s48_raise_argument_type_error(s48_value value) { s48_raise_scheme_exception(S48_EXCEPTION_WRONG_TYPE_ARGUMENT, 1, value); } void -s48_raise_argnumber_error(s48_value value, s48_value min, s48_value max) { +s48_raise_argument_number_error(s48_value value, s48_value min, s48_value max) { s48_raise_scheme_exception(S48_EXCEPTION_WRONG_NUMBER_OF_ARGUMENTS, 3, value, min, max); } @@ -501,6 +504,69 @@ s48_raise_os_error(int the_errno) { s48_enter_string(strerror(the_errno))); } +void +s48_raise_os_error_1(int the_errno, s48_value arg1) { + s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 3, + s48_enter_fixnum(the_errno), + s48_enter_string(strerror(the_errno)), + arg1); +} + +void +s48_raise_os_error_2(int the_errno, s48_value arg1, s48_value arg2) { + s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 4, + s48_enter_fixnum(the_errno), + s48_enter_string(strerror(the_errno)), + arg1, arg2); +} + +void +s48_raise_os_error_3(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3) { + s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 5, + s48_enter_fixnum(the_errno), + s48_enter_string(strerror(the_errno)), + arg1, arg2, arg3); +} + +void +s48_raise_os_error_4(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4) { + s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 6, + s48_enter_fixnum(the_errno), + s48_enter_string(strerror(the_errno)), + arg1, arg2, arg3, arg4); +} + +void +s48_raise_os_error_5(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4, s48_value arg5) { + s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 7, + s48_enter_fixnum(the_errno), + s48_enter_string(strerror(the_errno)), + arg1, arg2, arg3, arg4, arg5); +} + +void +s48_raise_os_error_6(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4, s48_value arg5, + s48_value arg6) { + s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 8, + s48_enter_fixnum(the_errno), + s48_enter_string(strerror(the_errno)), + arg1, arg2, arg3, arg4, arg5, arg6); +} + +void +s48_raise_os_error_7(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4, s48_value arg5, + s48_value arg6, s48_value arg7) { + s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 9, + s48_enter_fixnum(the_errno), + s48_enter_string(strerror(the_errno)), + arg1, arg2, arg3, arg4, arg5, arg6, arg7); +} + void s48_raise_string_os_error(char *reason) { s48_raise_scheme_exception(S48_EXCEPTION_OS_ERROR, 1, @@ -529,7 +595,7 @@ long s48_stob_length(s48_value thing, int type) { if (!(S48_STOB_P(thing) && (S48_STOB_TYPE(thing) == type))) - s48_raise_argtype_error(thing); + s48_raise_argument_type_error(thing); return S48_STOB_DESCRIPTOR_LENGTH(thing); } @@ -538,7 +604,7 @@ long s48_stob_byte_length(s48_value thing, int type) { if (!(S48_STOB_P(thing) && (S48_STOB_TYPE(thing) == type))) - s48_raise_argtype_error(thing); + s48_raise_argument_type_error(thing); if (type == S48_STOBTYPE_STRING) return S48_STOB_BYTE_LENGTH(thing) - 1; @@ -552,7 +618,7 @@ s48_stob_ref(s48_value thing, int type, long offset) long length; if (!(S48_STOB_P(thing) && (S48_STOB_TYPE(thing) == type))) - s48_raise_argtype_error(thing); + s48_raise_argument_type_error(thing); length = S48_STOB_DESCRIPTOR_LENGTH(thing); @@ -572,7 +638,7 @@ s48_stob_set(s48_value thing, int type, long offset, s48_value value) if (!(S48_STOB_P(thing) && (S48_STOB_TYPE(thing) == type) && !S48_STOB_IMMUTABLEP(thing))) - s48_raise_argtype_error(thing); + s48_raise_argument_type_error(thing); length = S48_STOB_DESCRIPTOR_LENGTH(thing); @@ -585,12 +651,12 @@ s48_stob_set(s48_value thing, int type, long offset, s48_value value) } char -s48_byte_ref(s48_value thing, int type, long offset) +s48_stob_byte_ref(s48_value thing, int type, long offset) { long length; if (!(S48_STOB_P(thing) && (S48_STOB_TYPE(thing) == type))) - s48_raise_argtype_error(thing); + s48_raise_argument_type_error(thing); length = (type == S48_STOBTYPE_STRING) ? S48_STOB_BYTE_LENGTH(thing) - 1 : @@ -605,12 +671,12 @@ s48_byte_ref(s48_value thing, int type, long offset) } void -s48_byte_set(s48_value thing, int type, long offset, char value) +s48_stob_byte_set(s48_value thing, int type, long offset, char value) { long length; if (!(S48_STOB_P(thing) && (S48_STOB_TYPE(thing) == type))) - s48_raise_argtype_error(thing); + s48_raise_argument_type_error(thing); length = (type == S48_STOBTYPE_STRING) ? S48_STOB_BYTE_LENGTH(thing) - 1 : @@ -645,7 +711,7 @@ s48_value s48_enter_fixnum(long value) { if (value < S48_MIN_FIXNUM_VALUE || S48_MAX_FIXNUM_VALUE < value) - s48_raise_argtype_error(s48_enter_integer(value)); + s48_raise_argument_type_error(s48_enter_integer(value)); return S48_UNSAFE_ENTER_FIXNUM(value); } @@ -654,7 +720,7 @@ long s48_extract_fixnum(s48_value value) { if (! S48_FIXNUM_P(value)) - s48_raise_argtype_error(value); + s48_raise_argument_type_error(value); return S48_UNSAFE_EXTRACT_FIXNUM(value); } @@ -689,6 +755,22 @@ s48_enter_integer(long value) } } +s48_value +s48_enter_unsigned_integer(unsigned long value) +{ + if (value <= S48_MAX_FIXNUM_VALUE) + return S48_UNSAFE_ENTER_FIXNUM(value); + else { + S48_SHARED_BINDING_CHECK(long_to_bignum_binding); + + return s48_call_scheme(S48_SHARED_BINDING_REF(long_to_bignum_binding), + 3, + S48_FALSE, /* this is ok */ + S48_UNSAFE_ENTER_FIXNUM(value >> 16), + S48_UNSAFE_ENTER_FIXNUM(value & 0xFFFF)); + } +} + /* * If we have a fixnum we just extract it. Bignums require a call back into * Scheme 48. (BIGNUM-TO-LONG n) returns a vector containing the sign and the @@ -717,7 +799,7 @@ s48_extract_integer(s48_value value) S48_GC_UNPROTECT(); if (stuff == S48_FALSE) - s48_raise_argtype_error(value); + s48_raise_argument_type_error(value); /* The first VECTOR_REF does the type checking for the rest. */ { @@ -728,7 +810,7 @@ s48_extract_integer(s48_value value) if ((! S48_FIXNUM_P(boxed_high)) || high > (pos_p ? 0x7FFF : 0x8000)) - s48_raise_argtype_error(value); + s48_raise_argument_type_error(value); { long magnitude = ((- high) << 16) - low; @@ -738,6 +820,49 @@ s48_extract_integer(s48_value value) } } +unsigned long +s48_extract_unsigned_integer(s48_value value) +{ + long temp; + if (S48_FIXNUM_P(value)){ + temp = S48_UNSAFE_EXTRACT_FIXNUM(value); + if (temp < 0) + s48_raise_argument_type_error(value); + else return (unsigned long) temp; + } + else { + s48_value stuff; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(value); + + S48_SHARED_BINDING_CHECK(bignum_to_long_binding); + + stuff = s48_call_scheme(S48_SHARED_BINDING_REF(bignum_to_long_binding), + 1, + value); + + S48_GC_UNPROTECT(); + + if (stuff == S48_FALSE) + s48_raise_argument_type_error(value); + + /* The first VECTOR_REF does the type checking for the rest. */ + { + long low = S48_UNSAFE_EXTRACT_FIXNUM(S48_VECTOR_REF(stuff, 2)); + s48_value boxed_high = S48_UNSAFE_VECTOR_REF(stuff, 1); + long high = S48_UNSAFE_EXTRACT_FIXNUM(boxed_high); + int pos_p = S48_EXTRACT_BOOLEAN(S48_UNSAFE_VECTOR_REF(stuff, 0)); + + if ((!pos_p) || + (! S48_FIXNUM_P(boxed_high)) || + (high > 0xFFFF)) + s48_raise_argument_type_error(value); + else return ((((unsigned long) high) << 16) + low); + } + } +} + /* * Doubles and characters are straightforward. */ @@ -757,7 +882,7 @@ double s48_extract_double(s48_value s48_double) { if (! S48_DOUBLE_P(s48_double)) - s48_raise_argtype_error(s48_double); + s48_raise_argument_type_error(s48_double); return S48_UNSAFE_EXTRACT_DOUBLE(s48_double); } @@ -777,7 +902,7 @@ unsigned char s48_extract_char(s48_value a_char) { if (! S48_CHAR_P(a_char)) - s48_raise_argtype_error(a_char); + s48_raise_argument_type_error(a_char); return S48_UNSAFE_EXTRACT_CHAR(a_char); } @@ -812,6 +937,164 @@ s48_cons(s48_value v1, s48_value v2) return obj; } +s48_value +s48_list_1(s48_value v1) +{ + return (s48_cons (v1, S48_NULL)); +} + +s48_value +s48_list_2(s48_value v1, s48_value v2) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_1 (v2); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_3(s48_value v1, s48_value v2, s48_value v3) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_2 (v2, v3); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_4(s48_value v1, s48_value v2, s48_value v3, s48_value v4) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_3 (v2, v3, v4); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_5(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_4 (v2, v3, v4, v5); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_6(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5, + s48_value v6) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_5 (v2, v3, v4, v5, v6); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_7(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5, + s48_value v6, s48_value v7) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_6 (v2, v3, v4, v5, v6, v7); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_8(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5, + s48_value v6, s48_value v7, s48_value v8) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_7 (v2, v3, v4, v5, v6, v7, v8); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_9(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5, + s48_value v6, s48_value v7, s48_value v8, s48_value v9) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_8 (v2, v3, v4, v5, v6, v7, v8, v9); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_10(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5, + s48_value v6, s48_value v7, s48_value v8, s48_value v9, s48_value v10) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_9 (v2, v3, v4, v5, v6, v7, v8, v9, v10); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_11(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5, + s48_value v6, s48_value v7, s48_value v8, s48_value v9, s48_value v10, + s48_value v11) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_10 (v2, v3, v4, v5, v6, v7, v8, v9, v10, v11); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + +s48_value +s48_list_12(s48_value v1, s48_value v2, s48_value v3, s48_value v4, s48_value v5, + s48_value v6, s48_value v7, s48_value v8, s48_value v9, s48_value v10, + s48_value v11, s48_value v12) +{ + s48_value list = S48_UNSPECIFIC; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(v1); + list = s48_list_11 (v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12); + list = s48_cons (v1, list); + S48_GC_UNPROTECT(); + return list; +} + s48_value s48_make_weak_pointer(s48_value value) { @@ -831,7 +1114,7 @@ s48_value s48_enter_substring(char *str, int length) { s48_value obj = s48_allocate_stob(S48_STOBTYPE_STRING, length + 1); - strncpy(S48_UNSAFE_EXTRACT_STRING(obj), str, length); + memcpy(S48_UNSAFE_EXTRACT_STRING(obj), str, length); *(S48_UNSAFE_EXTRACT_STRING(obj) + length) = '\0'; return obj; } @@ -878,9 +1161,31 @@ s48_make_vector(int length, s48_value init) } s48_value -s48_make_byte_vector(int length) +s48_enter_byte_vector(char *bvec, int length) { - return s48_allocate_stob(S48_STOBTYPE_BYTE_VECTOR, length); + s48_value obj = s48_allocate_stob(S48_STOBTYPE_BYTE_VECTOR, length); + memcpy(S48_UNSAFE_EXTRACT_BYTE_VECTOR(obj), bvec, length); + return obj; +} + +char * +s48_extract_byte_vector(s48_value bvec) +{ + S48_CHECK_BYTE_VECTOR(bvec); + + return S48_UNSAFE_EXTRACT_BYTE_VECTOR(bvec); +} + +s48_value +s48_make_byte_vector(int length, int init) +{ + int i; + s48_value obj = s48_allocate_stob(S48_STOBTYPE_BYTE_VECTOR, length); + + for (i = 0; i < length; i++) + S48_BYTE_VECTOR_SET(obj, i, init); + + return obj; } s48_value @@ -929,7 +1234,7 @@ s48_check_record_type(s48_value record, s48_value type_binding) if ((! S48_RECORD_P(record)) || (S48_UNSAFE_SHARED_BINDING_REF(type_binding) != S48_UNSAFE_RECORD_REF(record, -1))) - s48_raise_argtype_error(record); + s48_raise_argument_type_error(record); } long @@ -945,3 +1250,54 @@ s48_length(s48_value list) return S48_UNSAFE_ENTER_FIXNUM(i); } +/* +** +** Support for libscsh.a: add external initializers without the Makefile +** +*/ + +struct simple_list{ + void (*init)(); /* pointer to init-function */ + struct simple_list* next; +}; + +struct simple_list* additional_inits = 0; + +/* + * This function is part of EXTERNAL_INITIALIZERS in the scsh Makefile. + * It calls the init-functions in additional_inits. + */ + +void s48_init_additional_inits(){ + + struct simple_list* ptr = additional_inits; + struct simple_list* free_me; + + while (ptr != 0){ + ptr->init(); + free_me = ptr; + ptr = ptr->next; + free (free_me); + } +} + +/* + * Actual API function: argument is an init-function. You have to + * ensure, that all s48_add_external_inits are called before you call + * s48_main. + */ + +int s48_add_external_init(void (*init)()){ + + struct simple_list *new_list; + + new_list = (struct simple_list *) malloc(sizeof (struct simple_list)); + + if (new_list == 0) return 0; + + new_list->init = init; + new_list->next = additional_inits; + additional_inits = new_list; + + return 1; +} diff --git a/c/fake/dlfcn.h b/c/fake/dlfcn.h index 2c29be7..e76adc9 100644 --- a/c/fake/dlfcn.h +++ b/c/fake/dlfcn.h @@ -1,11 +1,7 @@ /* * This include file is for systems which do not have dynamic loading. */ -#if ! defined(HAVE_DLOPEN) - extern void *dlopen(char *filename, int flags); extern char *dlerror(void); extern void *dlsym(void *lib, char *name); extern int dlclose(void *lib); - -#endif diff --git a/c/fake/libdl1.c b/c/fake/libdl1.c index 753ef06..e59e974 100644 --- a/c/fake/libdl1.c +++ b/c/fake/libdl1.c @@ -5,12 +5,18 @@ * (whose name is pointed to by object_file). */ #include "sysdep.h" +#include #include - #ifdef USCORE #include #endif +#if defined(HAVE_DLOPEN) +#include +#else +#include "../fake/dlfcn.h" +#endif + #if ! defined(NLIST_HAS_N_NAME) #define n_name n_un.n_name #endif @@ -64,7 +70,7 @@ dlsym(void *lib, char *name) lasterror = "Bad library pointer passed to dlsym()"; return (NULL); } - if (object_file == NULL) { + if (s48_object_file == NULL) { lasterror = "I don't know the name of my executable"; return (NULL); } @@ -87,7 +93,7 @@ dlsym(void *lib, char *name) names[0].n_value = 0; /* for Linux */ names[0].n_type = 0; /* for Linux */ names[1].n_name = NULL; - status = nlist(object_file, names); + status = nlist(s48_object_file, names); #ifdef USCORE if (tmp != buff) free((void *)tmp); diff --git a/c/fake/libdl2.c b/c/fake/libdl2.c new file mode 100644 index 0000000..376ea24 --- /dev/null +++ b/c/fake/libdl2.c @@ -0,0 +1,43 @@ +/* + * This is a fake version of the dynamic loading library for machines + * which don't have it, and don't even have an nlist. + * We fake it so that everything fails. + */ +#include "sysdep.h" + + +static char *lasterror; + + +char * +dlerror(void) +{ + char *res; + + res = lasterror; + lasterror = NULL; + return (res); +} + + +void * +dlopen(char *name, int flags) +{ + lasterror = "Dynamic loading not supported on this machine"; + return (NULL); +} + + +int +dlclose(void *lib) +{ + return (0); +} + + +void * +dlsym(void *lib, char *name) +{ + lasterror = "Dynamic loading not supported on this machine"; + return (NULL); +} diff --git a/c/fake/sigact.h b/c/fake/sigact.h new file mode 100644 index 0000000..e12edcb --- /dev/null +++ b/c/fake/sigact.h @@ -0,0 +1,15 @@ +/* + * If we don't have sigaction, we fake it using signal. + */ +#if ! defined(HAVE_SIGACTION) + +struct sigaction { + void (*sa_handler)(); + int sa_mask; + int sa_flags; +}; + +#define sigaction(sig, act, oact) signal((sig), (act)->sa_handler) +#define sigemptyset(ign) 0 + +#endif diff --git a/c/fake/strerror.c b/c/fake/strerror.c new file mode 100644 index 0000000..fe1ec7e --- /dev/null +++ b/c/fake/strerror.c @@ -0,0 +1,22 @@ +/* + * If the system doesn't have a strerror procedure, we provide our own. + * Note, this depends on sys_nerr and sys_errlist being provided. + * If your system doesn't provide that either, you can replace this + * procedure with one that always returns "Unknown error". + */ +#include "sysdep.h" + + +extern int sys_nerr; +extern char *sys_errlist[]; + + +char * +strerror(int errnum) +{ + if ((0 <= errnum) + && (errnum < sys_nerr)) + return (sys_errlist[errnum]); + else + return ("Unknown error"); +} diff --git a/c/fake/strerror.h b/c/fake/strerror.h new file mode 100644 index 0000000..670e683 --- /dev/null +++ b/c/fake/strerror.h @@ -0,0 +1,8 @@ +/* + * If we don't have strerror(), we fake it using sys_nerr and sys_errlist. + */ +#if ! defined(HAVE_STRERROR) + +extern char *strerror(int errnum); + +#endif diff --git a/c/fake/sys-select.h b/c/fake/sys-select.h new file mode 100644 index 0000000..d5dc08c --- /dev/null +++ b/c/fake/sys-select.h @@ -0,0 +1,9 @@ +/* + * If we have a sys/select.h, then include it. + */ +#if defined(HAVE_SYS_SELECT_H) + +#include +#include + +#endif diff --git a/c/fd-io.h b/c/fd-io.h index 19255c0..8efdd8c 100644 --- a/c/fd-io.h +++ b/c/fd-io.h @@ -7,6 +7,8 @@ extern int ps_open_fd(char *in_filename, bool is_input, long *status); extern int ps_close_fd(long fd_as_long); +extern bool ps_check_fd(long fd_as_long, bool is_read, long *status); + extern long ps_read_fd(long fd_as_long, char *buf_as_long, long max, bool waitp, bool *eofp, bool *pending, long *status); diff --git a/c/init.c b/c/init.c new file mode 100644 index 0000000..4b63075 --- /dev/null +++ b/c/init.c @@ -0,0 +1,117 @@ +/* Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. + See file COPYING. */ + +#include +#include +#include +#include "scheme48vm.h" +#include "scheme48heap.h" + +extern void s48_sysdep_init(void); +extern void s48_initialize_external_modules(void); + +/* JMG: s48_object_file is obsolete according to s48 manual */ +char *s48_object_file; /* specified via a command line argument */ + +char *s48_reloc_file; /* dynamic loading will set this */ + +char *prog_name; + +void *heap, *stack; + +int s48_main (long heap_size, long stack_size, + char *image_name, int argc, char** argv) +{ + int ret = internal_s48_main(heap_size, stack_size, "libscsh", "libscsh", + image_name, argc, argv); + free(heap); + free(stack); + return ret; +} + +int +internal_s48_main(long heap_size, long stack_size, char * _prog_name, + char* object_file, char *image_name, int argc, char** argv) +{ + long return_value; + long required_heap_size; + int warn_undefined_imported_bindings_p = 1; + +#if defined(STATIC_AREAS) + extern long static_entry; + extern long static_symbol_table; + extern long static_imported_binding_table, static_exported_binding_table; + extern long p_count, *p_areas[], p_sizes[]; + extern long i_count, *i_areas[], i_sizes[]; +#endif + + prog_name = _prog_name; + + s48_object_file = object_file; + s48_reloc_file = NULL; + + + s48_sysdep_init(); + s48_heap_init(); + s48_init(); + + if (image_name == NULL) + required_heap_size = 0; + else { + /* check_image_header returns number of bytes; required_heap_size + is number of cells. */ + required_heap_size = + s48_check_image_header((unsigned char *)image_name) >> 2; + if (-1 == required_heap_size) { + fprintf(stderr, "Image file \"%s\" is unusable.\n", image_name); + return 1; } + } + + /* two semi-spaces, plus we want some room to maneuver */ + if (heap_size < 4 * required_heap_size) { + fprintf(stderr, "heap size %ld is too small, using %ld\n", + heap_size, 4 * required_heap_size); + heap_size = 4 * required_heap_size; } + + heap = (void *) malloc(heap_size * sizeof(long)); + stack = (void *) malloc(stack_size * sizeof(long)); + + if (!heap || !stack) { + fprintf(stderr, "system is out of memory\n"); + return 1; } + + s48_initialize_heap((long)heap, heap_size); + +#if defined(STATIC_AREAS) + if (image_name == NULL) { + s48_register_static_areas(p_count, p_areas, p_sizes, + i_count, i_areas, i_sizes); + s48_set_image_valuesB(static_entry, + static_symbol_table, + static_imported_binding_table, + static_exported_binding_table); + } else if (s48_read_image() == -1) { + fprintf(stderr, "Image file \"%s\" is unusable.\n", image_name); + return 1; } +#else + if (s48_read_image() == -1) { + fprintf(stderr, "Image file \"%s\" is unusable.\n", image_name); + return 1; } +#endif + + s48_initialize_vm(stack, stack_size); + + s48_initialize_external_modules(); + + if (warn_undefined_imported_bindings_p) + s48_warn_about_undefined_imported_bindings(); + + return_value = s48_call_startup_procedure(argv, argc); + + if (s48_reloc_file != NULL) + if (0 != unlink(s48_reloc_file)) + fprintf(stderr, "unable to delete file %s\n", s48_reloc_file); + + return(return_value); +} + diff --git a/c/io.h b/c/io.h new file mode 100644 index 0000000..8357210 --- /dev/null +++ b/c/io.h @@ -0,0 +1,12 @@ +extern FILE *ps_open_input_file(char *, long *); +extern FILE *ps_open_output_file(char *, long *); +extern long ps_close(FILE *); +extern char ps_read_char(FILE *, char *, long *, char); +extern long ps_read_integer(FILE *, char *, long *); +extern long ps_write_char(char, FILE *); +extern long ps_write_integer(long, FILE *); +extern long ps_write_string(char *, FILE *); +extern long ps_read_block(FILE *, char *, long, char *, long *); +extern long ps_write_block(FILE *, char *, long); +extern char *ps_error_string(long); +extern void ps_error(char *, long count, ...); diff --git a/c/main.c b/c/main.c index 1267c24..f002d9b 100644 --- a/c/main.c +++ b/c/main.c @@ -4,12 +4,13 @@ #include #include #include -#include "scheme48vm.h" -#include "scheme48heap.h" +/* I bumped this up from 1.5 Mcell because the debugging info put us over +** the top. -Olin +*/ #if !defined(DEFAULT_HEAP_SIZE) -/* 1.5 megacell = 6 megabytes (3 meg per semispace) */ -#define DEFAULT_HEAP_SIZE 1500000L +/* 5 megacell = 20 megabytes (10 meg per semispace) */ +#define DEFAULT_HEAP_SIZE 5000000L #endif #if !defined(DEFAULT_STACK_SIZE) @@ -28,24 +29,29 @@ #endif /* STATIC_AREAS */ -extern void s48_sysdep_init(void); -extern void s48_initialize_external_modules(void); -char *s48_object_file; /* specified via a command line argument */ -char *s48_reloc_file; /* dynamic loading will set this */ + +char ** process_args(char **argv, + long *heap_size, + long *stack_size, + char **object_file, + char **image_name); + +extern int +internal_s48_main(long heap_size, long stack_size, + char* prog_name, char* object_file, char* image_name, + int argc, char** argv); int main(argc, argv) int argc; char **argv; { + char **argp; /* JMG */ char *image_name = DEFAULT_IMAGE_NAME; long heap_size = DEFAULT_HEAP_SIZE; /* in numbers of cells */ long stack_size = DEFAULT_STACK_SIZE; /* in numbers of cells */ - int errors = 0; - long return_value; - void *heap, *stack; - long required_heap_size; - int warn_undefined_imported_bindings_p = 1; + char *object_file = NULL; /* specified via a command line argument */ + char *prog_name; #if defined(STATIC_AREAS) extern long static_entry; @@ -57,125 +63,11 @@ main(argc, argv) long vm_argc = 0; char *me = *argv; /* Save program name. */ + prog_name = *argv++; - s48_object_file = s48_reloc_file = NULL; - - argv++; argc--; /* Skip program name. */ - - for (; argc > 0; argc--, argv++) - if (argv[0][0] == '-') - switch (argv[0][1]) { - case 'h': - argc--; argv++; - if (argc == 0) { errors++; break; } - heap_size = atoi(*argv); - if (heap_size <= 0) errors++; - break; - case 's': - argc--; argv++; - if (argc == 0) { errors++; break; } - stack_size = atoi(*argv); - if (stack_size <= 0) errors++; - break; - case 'i': - argc--; argv++; - if (argc == 0) { errors++; break; } - image_name = *argv; - break; - case 'a': - argc--; - vm_argc = argc; /* remaining args are passed to the VM */ - argc = 0; - break; - case 'o': - argc--; argv++; - if (argc == 0) { errors++; break; } - s48_object_file = *argv; - break; - case 'u': - argc--; argv++; - warn_undefined_imported_bindings_p = 0; - break; - default: - fprintf(stderr, "Invalid argument: %s\n", *argv); - errors++; - } - else - if (argv[0][0] != '\0') { - fprintf(stderr, "Invalid argument: %s\n", *argv); - errors++; } - if (errors != 0) { - fprintf(stderr, -"Usage: %s [options] [-a arguments]\n\ -Options: -h \n\ - -s \n\ - -i \n\ - -o \n\ - -u [don't warn on unbound external identifiers]", - me); - return 1; - } - - s48_sysdep_init(); - s48_heap_init(); - s48_init(); - - if (image_name == NULL) - required_heap_size = 0; - else { - /* check_image_header returns number of bytes; required_heap_size - is number of cells. */ - required_heap_size = - s48_check_image_header((unsigned char *)image_name) >> 2; - if (-1 == required_heap_size) { - fprintf(stderr, "Image file \"%s\" is unusable.\n", image_name); - return 1; } - } - - /* two semi-spaces, plus we want some room to maneuver */ - if (heap_size < 4 * required_heap_size) { - fprintf(stderr, "heap size %ld is too small, using %ld\n", - heap_size, 4 * required_heap_size); - heap_size = 4 * required_heap_size; } - - heap = (void *) malloc(heap_size * sizeof(long)); - stack = (void *) malloc(stack_size * sizeof(long)); - - if (!heap || !stack) { - fprintf(stderr, "system is out of memory\n"); - return 1; } - - s48_initialize_heap((long)heap, heap_size); - -#if defined(STATIC_AREAS) - if (image_name == NULL) { - s48_register_static_areas(p_count, p_areas, p_sizes, - i_count, i_areas, i_sizes); - s48_set_image_valuesB(static_entry, - static_symbol_table, - static_imported_binding_table, - static_exported_binding_table); - } else if (s48_read_image() == -1) { - fprintf(stderr, "Image file \"%s\" is unusable.\n", image_name); - return 1; } -#else - if (s48_read_image() == -1) { - fprintf(stderr, "Image file \"%s\" is unusable.\n", image_name); - return 1; } -#endif - - s48_initialize_vm(stack, stack_size); - - s48_initialize_external_modules(); - - if (warn_undefined_imported_bindings_p) - s48_warn_about_undefined_imported_bindings(); - - return_value = s48_call_startup_procedure(argv, vm_argc); - - if (s48_reloc_file != NULL) - if (0 != unlink(s48_reloc_file)) - fprintf(stderr, "unable to delete file %s\n", s48_reloc_file); - - return(return_value); + argv=process_args(argv, + &heap_size, &stack_size, + &object_file, &image_name); + for(argc=0, argp=argv; *argp; argc++, argp++); /* Recompute argc. */ + return internal_s48_main(heap_size, stack_size, prog_name, object_file, image_name, argc, argv); } diff --git a/c/old-scheme48.h b/c/old-scheme48.h new file mode 100644 index 0000000..03f5d10 --- /dev/null +++ b/c/old-scheme48.h @@ -0,0 +1,110 @@ +typedef long scheme_value; + +#define FIXNUM_TAG 0 +#define FIXNUMP(x) (((long)(x) & 3L) == FIXNUM_TAG) +#define IMMEDIATE_TAG 1 +#define IMMEDIATEP(x) (((long)(x) & 3L) == IMMEDIATE_TAG) +#define HEADER_TAG 2 +#define HEADERP(x) (((long)(x) & 3L) == HEADER_TAG) +#define STOB_TAG 3 +#define STOBP(x) (((long)(x) & 3L) == STOB_TAG) + +#define ENTER_FIXNUM(n) ((scheme_value)((n) << 2)) +#define EXTRACT_FIXNUM(x) ((long)(x) >> 2) + +#define MISC_IMMEDIATE(n) (scheme_value)(IMMEDIATE_TAG | ((n) << 2)) +#define SCHFALSE MISC_IMMEDIATE(0) +#define SCHTRUE MISC_IMMEDIATE(1) +#define SCHCHAR MISC_IMMEDIATE(2) +#define SCHUNSPECIFIC MISC_IMMEDIATE(3) +#define SCHUNDEFINED MISC_IMMEDIATE(4) +#define SCHEOF MISC_IMMEDIATE(5) +#define SCHNULL MISC_IMMEDIATE(6) +#define UNDEFINED SCHUNDEFINED +#define UNSPECIFIC SCHUNSPECIFIC + +#define ENTER_BOOLEAN(n) ((n) ? SCHTRUE : SCHFALSE) +#define EXTRACT_BOOLEAN(x) ((x) != SCHFALSE) + +#define ENTER_CHAR(c) (SCHCHAR | ((c) << 8)) +#define EXTRACT_CHAR(x) ((x) >> 8) +#define CHARP(x) ((((long) (x)) & 0xff) == SCHCHAR) + +#define ADDRESS_AFTER_HEADER(x, type) ((type *)((x) - STOB_TAG)) +#define STOB_REF(x, i) ((ADDRESS_AFTER_HEADER(x, long))[i]) +#define STOB_TYPE(x) ((STOB_HEADER(x)>>2)&31) +#define STOB_HEADER(x) (STOB_REF((x),-1)) +#define STOB_BLENGTH(x) (STOB_HEADER(x) >> 8) +#define STOB_LLENGTH(x) (STOB_HEADER(x) >> 10) + +#define STOBTYPE_PAIR 0 +#define PAIRP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_PAIR)) +#define STOBTYPE_SYMBOL 1 +#define SYMBOLP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_SYMBOL)) +#define STOBTYPE_VECTOR 2 +#define VECTORP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_VECTOR)) +#define STOBTYPE_CLOSURE 3 +#define CLOSUREP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_CLOSURE)) +#define STOBTYPE_LOCATION 4 +#define LOCATIONP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_LOCATION)) +#define STOBTYPE_CHANNEL 5 +#define CHANNELP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_CHANNEL)) +#define STOBTYPE_PORT 6 +#define PORTP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_PORT)) +#define STOBTYPE_RATNUM 7 +#define RATNUMP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_RATNUM)) +#define STOBTYPE_RECORD 8 +#define RECORDP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_RECORD)) +#define STOBTYPE_CONTINUATION 9 +#define CONTINUATIONP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_CONTINUATION)) +#define STOBTYPE_EXTENDED_NUMBER 10 +#define EXTENDED_NUMBERP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_EXTENDED_NUMBER)) +#define STOBTYPE_TEMPLATE 11 +#define TEMPLATEP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_TEMPLATE)) +#define STOBTYPE_WEAK_POINTER 12 +#define WEAK_POINTERP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_WEAK_POINTER)) +#define STOBTYPE_SHARED_BINDING 13 +#define SHARED_BINDINGP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_SHARED_BINDING)) +#define STOBTYPE_UNUSED_D_HEADER1 14 +#define UNUSED_D_HEADER1P(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_UNUSED_D_HEADER1)) +#define STOBTYPE_UNUSED_D_HEADER2 15 +#define UNUSED_D_HEADER2P(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_UNUSED_D_HEADER2)) +#define STOBTYPE_STRING 16 +#define STRINGP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_STRING)) +#define STOBTYPE_CODE_VECTOR 17 +#define CODE_VECTORP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_CODE_VECTOR)) +#define STOBTYPE_DOUBLE 18 +#define DOUBLEP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_DOUBLE)) +#define STOBTYPE_BIGNUM 19 +#define BIGNUMP(x) (STOBP(x) && (STOB_TYPE(x) == STOBTYPE_BIGNUM)) + +#define CAR(x) STOB_REF(x, 0) +#define CDR(x) STOB_REF(x, 1) +#define SYMBOL_TO_STRING(x) STOB_REF(x, 0) +#define LOCATION_ID(x) STOB_REF(x, 0) +#define CONTENTS(x) STOB_REF(x, 1) +#define CLOSURE_TEMPLATE(x) STOB_REF(x, 0) +#define CLOSURE_ENV(x) STOB_REF(x, 1) +#define WEAK_POINTER_REF(x) STOB_REF(x, 0) +#define SHARED_BINDING_NAME(x) STOB_REF(x, 0) +#define SHARED_BINDING_IS_IMPORTP(x) STOB_REF(x, 1) +#define SHARED_BINDING_REF(x) STOB_REF(x, 2) +#define PORT_HANDLER(x) STOB_REF(x, 0) +#define PORT_STATUS(x) STOB_REF(x, 1) +#define PORT_LOCK(x) STOB_REF(x, 2) +#define PORT_LOCKEDP(x) STOB_REF(x, 3) +#define PORT_DATA(x) STOB_REF(x, 4) +#define PORT_BUFFER(x) STOB_REF(x, 5) +#define PORT_INDEX(x) STOB_REF(x, 6) +#define PORT_LIMIT(x) STOB_REF(x, 7) +#define PORT_PENDING_EOFP(x) STOB_REF(x, 8) +#define CHANNEL_STATUS(x) STOB_REF(x, 0) +#define CHANNEL_ID(x) STOB_REF(x, 1) +#define CHANNEL_OS_INDEX(x) STOB_REF(x, 2) + +#define VECTOR_LENGTH(x) STOB_LLENGTH(x) +#define VECTOR_REF(x, i) STOB_REF(x, i) +#define CODE_VECTOR_LENGTH(x) STOB_BLENGTH(x) +#define CODE_VECTOR_REF(x, i) (ADDRESS_AFTER_HEADER(x, unsigned char)[i]) +#define STRING_LENGTH(x) (STOB_BLENGTH(x)-1) +#define STRING_REF(x, i) (ADDRESS_AFTER_HEADER(x, char)[i]) diff --git a/c/prescheme.h b/c/prescheme.h new file mode 100644 index 0000000..b95d022 --- /dev/null +++ b/c/prescheme.h @@ -0,0 +1,59 @@ +#include +#include "io.h" + +#define PS_READ_CHAR(PORT,RESULT,EOFP,STATUS) \ +{ \ + FILE * TTport = PORT; \ + int TTchar; \ + if (EOF == (TTchar = getc(TTport))) \ + RESULT = ps_read_char(TTport, &EOFP, &STATUS, 0==1);\ + else { \ + RESULT = TTchar; \ + EOFP = 0; \ + STATUS = 0; } \ +} + +#define PS_PEEK_CHAR(PORT,RESULT,EOFP,STATUS) \ +{ \ + FILE * TTport = PORT; \ + int TTchar; \ + if (EOF == (TTchar = getc(TTport))) \ + RESULT = ps_read_char(TTport, &EOFP, &STATUS, 0==0);\ + else { \ + RESULT = TTchar; \ + ungetc(RESULT, TTport); \ + EOFP = 0; \ + STATUS = 0; } \ +} + +#define PS_READ_INTEGER(PORT,RESULT,EOFP,STATUS) \ +RESULT = ps_read_integer(PORT,&EOFP,&STATUS); + +#define PS_WRITE_CHAR(CHAR,PORT,STATUS) \ +{ \ + FILE * TTport = PORT; \ + char TTchar = CHAR; \ + if (EOF == putc(TTchar,TTport)) \ + STATUS = ps_write_char(TTchar,TTport); \ + else { \ + STATUS = 0; } \ +} + + +/* C shifts may not work if the amount is greater than the machine word size */ +/* Patched by JAR 6/6/93 */ + +#define PS_SHIFT_RIGHT(X,Y,RESULT) \ +{ \ + long TTx = X, TTy = Y; \ + RESULT = TTy >= 32 ? (TTx < 0 ? -1 : 0) : TTx >> TTy; \ +} + +#define PS_SHIFT_LEFT(X,Y,RESULT) \ +{ \ + long TTy = Y; \ + RESULT = TTy >= 32 ? 0 : X << TTy; \ +} + +extern long s48_return_value, s48_run_machine(); + diff --git a/c/scheme48.h b/c/scheme48.h index 55b843a..b22d05e 100644 --- a/c/scheme48.h +++ b/c/scheme48.h @@ -13,9 +13,16 @@ typedef long s48_value; #define NO_ERRORS 0 /* errno value */ +extern int s48_main (long heap_size, long stack_size, + char *image_name, int argc, char** argv); + +extern int s48_add_external_init(void (*init)()); + /* Misc stuff */ -#define S48_EQ(v1, v2) ((v1) == (v2)) +#define S48_EQ_P(v1, v2) ((v1) == (v2)) +/* Superceded name for the above definition, retained for compatibility. */ +#define S48_EQ(v1, v2) ((v1) == (v2)) #define S48_MAX_FIXNUM_VALUE ((1 << 29) - 1) #define S48_MIN_FIXNUM_VALUE (-1 << 29) @@ -39,15 +46,43 @@ extern s48_value s48_enter_fixnum(long); extern long s48_extract_fixnum(s48_value); extern s48_value s48_enter_integer(long); extern long s48_extract_integer(s48_value); +extern s48_value s48_enter_unsigned_integer(unsigned long); +extern unsigned long s48_extract_unsigned_integer(s48_value); extern s48_value s48_enter_double(double); extern double s48_extract_double(s48_value); extern s48_value s48_cons(s48_value, s48_value); +extern s48_value s48_list_1(s48_value); +extern s48_value s48_list_2(s48_value, s48_value); +extern s48_value s48_list_3(s48_value, s48_value, s48_value); +extern s48_value s48_list_4(s48_value, s48_value, s48_value, s48_value); +extern s48_value s48_list_5(s48_value, s48_value, s48_value, s48_value, + s48_value); +extern s48_value s48_list_6(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value); +extern s48_value s48_list_7(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value); +extern s48_value s48_list_8(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value); +extern s48_value s48_list_9(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value); +extern s48_value s48_list_10(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value); +extern s48_value s48_list_11(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value); +extern s48_value s48_list_12(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value); extern s48_value s48_enter_string(char *); extern char * s48_extract_string(s48_value); extern s48_value s48_enter_substring(char *, int); extern s48_value s48_make_string(int, char); extern s48_value s48_make_vector(int, s48_value); -extern s48_value s48_make_byte_vector(int); +extern s48_value s48_enter_byte_vector(char *, int); +extern char * s48_extract_byte_vector(s48_value); +extern s48_value s48_make_byte_vector(int, int); extern s48_value s48_make_record(s48_value); extern s48_value s48_make_weak_pointer(s48_value); extern void s48_check_record_type(s48_value, s48_value); @@ -64,7 +99,7 @@ extern s48_value s48_call_scheme(s48_value proc, long nargs, ...); #define S48_EXPORT_FUNCTION(p) (s48_define_exported_binding(#p, s48_enter_pointer(p))) -#define S48_MAKE_VALUE(type) (s48_make_byte_vector(sizeof(type))) +#define S48_MAKE_VALUE(type) (s48_make_byte_vector(sizeof(type),0)) extern void * s48_value_pointer(s48_value); #define S48_EXTRACT_VALUE_POINTER(x, type) ((type *) s48_value_pointer(x)) @@ -177,28 +212,46 @@ extern void * s48_value_pointer(s48_value); /* Exceptions */ extern void s48_raise_scheme_exception(long type, long nargs, ...); -extern void s48_raise_argtype_error(s48_value value); -extern void s48_raise_argnumber_error(s48_value value, - s48_value min, s48_value max); +extern void s48_raise_argument_type_error(s48_value value); +extern void s48_raise_argument_number_error(s48_value value, + s48_value min, + s48_value max); extern void s48_raise_range_error(s48_value value, s48_value min, s48_value max); extern void s48_raise_closed_channel_error(); extern void s48_raise_os_error(int the_errno); +extern void s48_raise_os_error_1(int the_errno, s48_value arg1); +extern void s48_raise_os_error_2(int the_errno, s48_value arg1, s48_value arg2); +extern void s48_raise_os_error_3(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3); +extern void s48_raise_os_error_4(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4); +extern void s48_raise_os_error_5(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4, s48_value arg5); +extern void s48_raise_os_error_6(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4, s48_value arg5, + s48_value arg6); extern void s48_raise_string_os_error(char *reason); extern void s48_raise_out_of_memory_error(); /* Type checking */ -#define S48_CHECK_PAIR(v) do { if (!S48_PAIR_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_FIXNUM(v) do { if (!S48_FIXNUM_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_STRING(v) do { if (!S48_STRING_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_CHANNEL(v) do { if (!S48_CHANNEL_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_RECORD(v) do { if (!S48_RECORD_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_VALUE(v) do { if (!S48_BYTE_VECTOR_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_EXPORT_BINDING(v) do { if (!S48_EXPORT_BINDING_P(v)) s48_raise_argtype_error(v); } while (0) +#define S48_CHECK_PAIR(v) do { if (!S48_PAIR_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_FIXNUM(v) do { if (!S48_FIXNUM_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_STRING(v) do { if (!S48_STRING_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_BYTE_VECTOR(v) do { if (!S48_BYTE_VECTOR_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_CHANNEL(v) do { if (!S48_CHANNEL_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_RECORD(v) do { if (!S48_RECORD_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_VALUE(v) do { if (!S48_BYTE_VECTOR_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_EXPORT_BINDING(v) do { if (!S48_EXPORT_BINDING_P(v)) s48_raise_argument_type_error(v); } while (0) #define S48_VALUE_P(v) (S48_BYTE_VECTOR_P(v)) +#define S48_TRUE_P(v) ((v) == S48_TRUE) +#define S48_FALSE_P(v) ((v) == S48_FALSE) +#define S48_EXTRACT_BOOLEAN(v) ((v) != S48_FALSE) +#define S48_ENTER_BOOLEAN(v) ((v) ? S48_TRUE : S48_FALSE) + extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_SHARED_BINDING_CHECK(binding) \ @@ -207,6 +260,7 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); S48_SHARED_BINDING_NAME(binding)); \ } while(0) + #define S48_FIXNUM_TAG 0 #define S48_FIXNUM_P(x) (((long)(x) & 3L) == S48_FIXNUM_TAG) #define S48_IMMEDIATE_TAG 1 @@ -228,9 +282,6 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_EOF (S48_MISC_IMMEDIATE(5)) #define S48_NULL (S48_MISC_IMMEDIATE(6)) -#define S48_ENTER_BOOLEAN(n) ((n) ? S48_TRUE : S48_FALSE) -#define S48_EXTRACT_BOOLEAN(x) ((x) != S48_FALSE) - #define S48_UNSAFE_ENTER_CHAR(c) (S48_CHAR | ((c) << 8)) #define S48_UNSAFE_EXTRACT_CHAR(x) ((x) >> 8) #define S48_CHAR_P(x) ((((long) (x)) & 0xff) == S48_CHAR) @@ -238,8 +289,8 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_ADDRESS_AFTER_HEADER(x, type) ((type *)((x) - S48_STOB_TAG)) #define S48_STOB_REF(x, i) (S48_ADDRESS_AFTER_HEADER(x, s48_value)[i]) #define S48_STOB_BYTE_REF(x, i) (((char *)S48_ADDRESS_AFTER_HEADER(x, s48_value))[i]) -#define S48_STOB_SET(x, i, v) do { s48_value __stob_set_x = (x); long __stob_set_i = (i); s48_value __stob_set_v = (v); if (S48_STOB_IMMUTABLEP(__stob_set_x)) s48_raise_argtype_error(__stob_set_x); else { S48_WRITE_BARRIER((__stob_set_x), (char *) (&S48_STOB_REF((__stob_set_x), (__stob_set_i))),(__stob_set_v)); *(&S48_STOB_REF((__stob_set_x), (__stob_set_i))) = (__stob_set_v); } } while (0) -#define S48_STOB_BYTE_SET(x, i, v) do { char __stob_set_x = (x); long __stob_set_i = (i); s48_value __stob_set_v = (v); if (S48_STOB_IMMUTABLEP(__stob_set_x)) s48_raise_argtype_error(__stob_set_x); else *(&S48_STOB_BYTE_REF((__stob_set_x), (__stob_set_i))) = (__stob_set_v); } while (0) +#define S48_STOB_SET(x, i, v) do { s48_value __stob_set_x = (x); long __stob_set_i = (i); s48_value __stob_set_v = (v); if (S48_STOB_IMMUTABLEP(__stob_set_x)) s48_raise_argument_type_error(__stob_set_x); else { S48_WRITE_BARRIER((__stob_set_x), (char *) (&S48_STOB_REF((__stob_set_x), (__stob_set_i))),(__stob_set_v)); *(&S48_STOB_REF((__stob_set_x), (__stob_set_i))) = (__stob_set_v); } } while (0) +#define S48_STOB_BYTE_SET(x, i, v) do { s48_value __stob_set_x = (x); long __stob_set_i = (i); char __stob_set_v = (v); if (S48_STOB_IMMUTABLEP(__stob_set_x)) s48_raise_argument_type_error(__stob_set_x); else *(&S48_STOB_BYTE_REF((__stob_set_x), (__stob_set_i))) = (__stob_set_v); } while (0) #define S48_STOB_TYPE(x) ((S48_STOB_HEADER(x)>>2)&31) #define S48_STOB_HEADER(x) (S48_STOB_REF((x),-1)) #define S48_STOB_ADDRESS(x) (&(S48_STOB_HEADER(x))) @@ -258,46 +309,48 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_CLOSURE_P(x) (s48_stob_has_type(x, 3)) #define S48_STOBTYPE_LOCATION 4 #define S48_LOCATION_P(x) (s48_stob_has_type(x, 4)) -#define S48_STOBTYPE_CHANNEL 5 -#define S48_CHANNEL_P(x) (s48_stob_has_type(x, 5)) -#define S48_STOBTYPE_PORT 6 -#define S48_PORT_P(x) (s48_stob_has_type(x, 6)) -#define S48_STOBTYPE_RATNUM 7 -#define S48_RATNUM_P(x) (s48_stob_has_type(x, 7)) -#define S48_STOBTYPE_RECORD 8 -#define S48_RECORD_P(x) (s48_stob_has_type(x, 8)) -#define S48_STOBTYPE_CONTINUATION 9 -#define S48_CONTINUATION_P(x) (s48_stob_has_type(x, 9)) -#define S48_STOBTYPE_EXTENDED_NUMBER 10 -#define S48_EXTENDED_NUMBER_P(x) (s48_stob_has_type(x, 10)) -#define S48_STOBTYPE_TEMPLATE 11 -#define S48_TEMPLATE_P(x) (s48_stob_has_type(x, 11)) -#define S48_STOBTYPE_WEAK_POINTER 12 -#define S48_WEAK_POINTER_P(x) (s48_stob_has_type(x, 12)) -#define S48_STOBTYPE_SHARED_BINDING 13 -#define S48_SHARED_BINDING_P(x) (s48_stob_has_type(x, 13)) -#define S48_STOBTYPE_UNUSED_D_HEADER1 14 -#define S48_UNUSED_D_HEADER1_P(x) (s48_stob_has_type(x, 14)) -#define S48_STOBTYPE_UNUSED_D_HEADER2 15 -#define S48_UNUSED_D_HEADER2_P(x) (s48_stob_has_type(x, 15)) -#define S48_STOBTYPE_STRING 16 -#define S48_STRING_P(x) (s48_stob_has_type(x, 16)) -#define S48_STOBTYPE_BYTE_VECTOR 17 -#define S48_BYTE_VECTOR_P(x) (s48_stob_has_type(x, 17)) -#define S48_STOBTYPE_DOUBLE 18 -#define S48_DOUBLE_P(x) (s48_stob_has_type(x, 18)) -#define S48_STOBTYPE_BIGNUM 19 -#define S48_BIGNUM_P(x) (s48_stob_has_type(x, 19)) +#define S48_STOBTYPE_CELL 5 +#define S48_CELL_P(x) (s48_stob_has_type(x, 5)) +#define S48_STOBTYPE_CHANNEL 6 +#define S48_CHANNEL_P(x) (s48_stob_has_type(x, 6)) +#define S48_STOBTYPE_PORT 7 +#define S48_PORT_P(x) (s48_stob_has_type(x, 7)) +#define S48_STOBTYPE_RATNUM 8 +#define S48_RATNUM_P(x) (s48_stob_has_type(x, 8)) +#define S48_STOBTYPE_RECORD 9 +#define S48_RECORD_P(x) (s48_stob_has_type(x, 9)) +#define S48_STOBTYPE_CONTINUATION 10 +#define S48_CONTINUATION_P(x) (s48_stob_has_type(x, 10)) +#define S48_STOBTYPE_EXTENDED_NUMBER 11 +#define S48_EXTENDED_NUMBER_P(x) (s48_stob_has_type(x, 11)) +#define S48_STOBTYPE_TEMPLATE 12 +#define S48_TEMPLATE_P(x) (s48_stob_has_type(x, 12)) +#define S48_STOBTYPE_WEAK_POINTER 13 +#define S48_WEAK_POINTER_P(x) (s48_stob_has_type(x, 13)) +#define S48_STOBTYPE_SHARED_BINDING 14 +#define S48_SHARED_BINDING_P(x) (s48_stob_has_type(x, 14)) +#define S48_STOBTYPE_UNUSED_D_HEADER1 15 +#define S48_UNUSED_D_HEADER1_P(x) (s48_stob_has_type(x, 15)) +#define S48_STOBTYPE_UNUSED_D_HEADER2 16 +#define S48_UNUSED_D_HEADER2_P(x) (s48_stob_has_type(x, 16)) +#define S48_STOBTYPE_STRING 17 +#define S48_STRING_P(x) (s48_stob_has_type(x, 17)) +#define S48_STOBTYPE_BYTE_VECTOR 18 +#define S48_BYTE_VECTOR_P(x) (s48_stob_has_type(x, 18)) +#define S48_STOBTYPE_DOUBLE 19 +#define S48_DOUBLE_P(x) (s48_stob_has_type(x, 19)) +#define S48_STOBTYPE_BIGNUM 20 +#define S48_BIGNUM_P(x) (s48_stob_has_type(x, 20)) #define S48_CAR_OFFSET 0 #define S48_CAR(x) (s48_stob_ref((x), S48_STOBTYPE_PAIR, 0)) #define S48_UNSAFE_CAR(x) (S48_STOB_REF((x), 0)) -#define S48_SET_CAR(x, v) (s48_stob_ref((x), S48_STOBTYPE_PAIR, 0, (v))) +#define S48_SET_CAR(x, v) (s48_stob_set((x), S48_STOBTYPE_PAIR, 0, (v))) #define S48_UNSAFE_SET_CAR(x, v) S48_STOB_SET((x), 0, (v)) #define S48_CDR_OFFSET 1 #define S48_CDR(x) (s48_stob_ref((x), S48_STOBTYPE_PAIR, 1)) #define S48_UNSAFE_CDR(x) (S48_STOB_REF((x), 1)) -#define S48_SET_CDR(x, v) (s48_stob_ref((x), S48_STOBTYPE_PAIR, 1, (v))) +#define S48_SET_CDR(x, v) (s48_stob_set((x), S48_STOBTYPE_PAIR, 1, (v))) #define S48_UNSAFE_SET_CDR(x, v) S48_STOB_SET((x), 1, (v)) #define S48_SYMBOL_TO_STRING_OFFSET 0 #define S48_SYMBOL_TO_STRING(x) (s48_stob_ref((x), S48_STOBTYPE_SYMBOL, 0)) @@ -305,13 +358,18 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_LOCATION_ID_OFFSET 0 #define S48_LOCATION_ID(x) (s48_stob_ref((x), S48_STOBTYPE_LOCATION, 0)) #define S48_UNSAFE_LOCATION_ID(x) (S48_STOB_REF((x), 0)) -#define S48_SET_LOCATION_ID(x, v) (s48_stob_ref((x), S48_STOBTYPE_LOCATION, 0, (v))) +#define S48_SET_LOCATION_ID(x, v) (s48_stob_set((x), S48_STOBTYPE_LOCATION, 0, (v))) #define S48_UNSAFE_SET_LOCATION_ID(x, v) S48_STOB_SET((x), 0, (v)) #define S48_CONTENTS_OFFSET 1 #define S48_CONTENTS(x) (s48_stob_ref((x), S48_STOBTYPE_LOCATION, 1)) #define S48_UNSAFE_CONTENTS(x) (S48_STOB_REF((x), 1)) -#define S48_SET_CONTENTS(x, v) (s48_stob_ref((x), S48_STOBTYPE_LOCATION, 1, (v))) +#define S48_SET_CONTENTS(x, v) (s48_stob_set((x), S48_STOBTYPE_LOCATION, 1, (v))) #define S48_UNSAFE_SET_CONTENTS(x, v) S48_STOB_SET((x), 1, (v)) +#define S48_CELL_REF_OFFSET 0 +#define S48_CELL_REF(x) (s48_stob_ref((x), S48_STOBTYPE_CELL, 0)) +#define S48_UNSAFE_CELL_REF(x) (S48_STOB_REF((x), 0)) +#define S48_CELL_SET(x, v) (s48_stob_set((x), S48_STOBTYPE_CELL, 0, (v))) +#define S48_UNSAFE_CELL_SET(x, v) S48_STOB_SET((x), 0, (v)) #define S48_CLOSURE_TEMPLATE_OFFSET 0 #define S48_CLOSURE_TEMPLATE(x) (s48_stob_ref((x), S48_STOBTYPE_CLOSURE, 0)) #define S48_UNSAFE_CLOSURE_TEMPLATE(x) (S48_STOB_REF((x), 0)) @@ -330,50 +388,52 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_SHARED_BINDING_REF_OFFSET 2 #define S48_SHARED_BINDING_REF(x) (s48_stob_ref((x), S48_STOBTYPE_SHARED_BINDING, 2)) #define S48_UNSAFE_SHARED_BINDING_REF(x) (S48_STOB_REF((x), 2)) -#define S48_SHARED_BINDING_SET(x, v) (s48_stob_ref((x), S48_STOBTYPE_SHARED_BINDING, 2, (v))) +#define S48_SHARED_BINDING_SET(x, v) (s48_stob_set((x), S48_STOBTYPE_SHARED_BINDING, 2, (v))) #define S48_UNSAFE_SHARED_BINDING_SET(x, v) S48_STOB_SET((x), 2, (v)) #define S48_PORT_HANDLER_OFFSET 0 #define S48_PORT_HANDLER(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 0)) #define S48_UNSAFE_PORT_HANDLER(x) (S48_STOB_REF((x), 0)) +#define S48_SET_PORT_HANDLER(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 0, (v))) +#define S48_UNSAFE_SET_PORT_HANDLER(x, v) S48_STOB_SET((x), 0, (v)) #define S48_PORT_STATUS_OFFSET 1 #define S48_PORT_STATUS(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 1)) #define S48_UNSAFE_PORT_STATUS(x) (S48_STOB_REF((x), 1)) -#define S48_SET_PORT_STATUS(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 1, (v))) +#define S48_SET_PORT_STATUS(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 1, (v))) #define S48_UNSAFE_SET_PORT_STATUS(x, v) S48_STOB_SET((x), 1, (v)) #define S48_PORT_LOCK_OFFSET 2 #define S48_PORT_LOCK(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 2)) #define S48_UNSAFE_PORT_LOCK(x) (S48_STOB_REF((x), 2)) -#define S48_SET_PORT_LOCK(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 2, (v))) +#define S48_SET_PORT_LOCK(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 2, (v))) #define S48_UNSAFE_SET_PORT_LOCK(x, v) S48_STOB_SET((x), 2, (v)) #define S48_PORT_LOCKEDP_OFFSET 3 #define S48_PORT_LOCKEDP(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 3)) #define S48_UNSAFE_PORT_LOCKEDP(x) (S48_STOB_REF((x), 3)) -#define S48_SET_PORT_LOCKEDP(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 3, (v))) +#define S48_SET_PORT_LOCKEDP(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 3, (v))) #define S48_UNSAFE_SET_PORT_LOCKEDP(x, v) S48_STOB_SET((x), 3, (v)) #define S48_PORT_DATA_OFFSET 4 #define S48_PORT_DATA(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 4)) #define S48_UNSAFE_PORT_DATA(x) (S48_STOB_REF((x), 4)) -#define S48_SET_PORT_DATA(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 4, (v))) +#define S48_SET_PORT_DATA(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 4, (v))) #define S48_UNSAFE_SET_PORT_DATA(x, v) S48_STOB_SET((x), 4, (v)) #define S48_PORT_BUFFER_OFFSET 5 #define S48_PORT_BUFFER(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 5)) #define S48_UNSAFE_PORT_BUFFER(x) (S48_STOB_REF((x), 5)) -#define S48_SET_PORT_BUFFER(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 5, (v))) +#define S48_SET_PORT_BUFFER(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 5, (v))) #define S48_UNSAFE_SET_PORT_BUFFER(x, v) S48_STOB_SET((x), 5, (v)) #define S48_PORT_INDEX_OFFSET 6 #define S48_PORT_INDEX(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 6)) #define S48_UNSAFE_PORT_INDEX(x) (S48_STOB_REF((x), 6)) -#define S48_SET_PORT_INDEX(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 6, (v))) +#define S48_SET_PORT_INDEX(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 6, (v))) #define S48_UNSAFE_SET_PORT_INDEX(x, v) S48_STOB_SET((x), 6, (v)) #define S48_PORT_LIMIT_OFFSET 7 #define S48_PORT_LIMIT(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 7)) #define S48_UNSAFE_PORT_LIMIT(x) (S48_STOB_REF((x), 7)) -#define S48_SET_PORT_LIMIT(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 7, (v))) +#define S48_SET_PORT_LIMIT(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 7, (v))) #define S48_UNSAFE_SET_PORT_LIMIT(x, v) S48_STOB_SET((x), 7, (v)) #define S48_PORT_PENDING_EOFP_OFFSET 8 #define S48_PORT_PENDING_EOFP(x) (s48_stob_ref((x), S48_STOBTYPE_PORT, 8)) #define S48_UNSAFE_PORT_PENDING_EOFP(x) (S48_STOB_REF((x), 8)) -#define S48_SET_PORT_PENDING_EOFP(x, v) (s48_stob_ref((x), S48_STOBTYPE_PORT, 8, (v))) +#define S48_SET_PORT_PENDING_EOFP(x, v) (s48_stob_set((x), S48_STOBTYPE_PORT, 8, (v))) #define S48_UNSAFE_SET_PORT_PENDING_EOFP(x, v) S48_STOB_SET((x), 8, (v)) #define S48_CHANNEL_STATUS_OFFSET 0 #define S48_CHANNEL_STATUS(x) (s48_stob_ref((x), S48_STOBTYPE_CHANNEL, 0)) @@ -403,15 +463,16 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_BYTE_VECTOR_REF(x, i) (s48_stob_byte_ref((x), S48_STOBTYPE_BYTE_VECTOR, (i))) #define S48_BYTE_VECTOR_SET(x, i, v) (s48_stob_byte_set((x), S48_STOBTYPE_BYTE_VECTOR, (i), (v))) #define S48_UNSAFE_BYTE_VECTOR_REF(x, i) (S48_STOB_BYTE_REF((x), (i))) -#define S48_UNSAFE_BYTE_VECTOR_SET(x, i, v) S48_BYTE_STOB_SET((x), (i), (v)) +#define S48_UNSAFE_BYTE_VECTOR_SET(x, i, v) S48_STOB_BYTE_SET((x), (i), (v)) #define S48_STRING_LENGTH(x) (s48_stob_byte_length((x), S48_STOBTYPE_STRING)) #define S48_STRING_REF(x, i) (s48_stob_byte_ref((x), S48_STOBTYPE_STRING, (i))) #define S48_STRING_SET(x, i, v) (s48_stob_byte_set((x), S48_STOBTYPE_STRING, (i), (v))) #define S48_UNSAFE_STRING_REF(x, i) (S48_STOB_BYTE_REF((x), (i))) -#define S48_UNSAFE_STRING_SET(x, i, v) S48_BYTE_STOB_SET((x), (i), (v)) +#define S48_UNSAFE_STRING_SET(x, i, v) S48_STOB_BYTE_SET((x), (i), (v)) #define S48_UNSAFE_BYTE_VECTOR_LENGTH(x) (S48_STOB_BYTE_LENGTH(x)) #define S48_UNSAFE_STRING_LENGTH(x) (S48_STOB_BYTE_LENGTH(x) - 1) #define S48_UNSAFE_EXTRACT_STRING(x) (S48_ADDRESS_AFTER_HEADER((x), char)) +#define S48_UNSAFE_EXTRACT_BYTE_VECTOR(x) (S48_ADDRESS_AFTER_HEADER((x), char)) #define S48_EXTRACT_EXTERNAL_OBJECT(x, type) ((type *)(S48_ADDRESS_AFTER_HEADER(x, long)+1)) #define S48_RECORD_TYPE_RESUMER(x) S48_RECORD_REF((x), 0) diff --git a/c/scheme48.h.in b/c/scheme48.h.in index 2d3e533..1bf0a10 100644 --- a/c/scheme48.h.in +++ b/c/scheme48.h.in @@ -7,9 +7,16 @@ typedef long s48_value; #define NO_ERRORS 0 /* errno value */ +extern int s48_main (long heap_size, long stack_size, + char *image_name, int argc, char** argv); + +extern int s48_add_external_init(void (*init)()); + /* Misc stuff */ -#define S48_EQ(v1, v2) ((v1) == (v2)) +#define S48_EQ_P(v1, v2) ((v1) == (v2)) +/* Superceded name for the above definition, retained for compatibility. */ +#define S48_EQ(v1, v2) ((v1) == (v2)) #define S48_MAX_FIXNUM_VALUE ((1 << 29) - 1) #define S48_MIN_FIXNUM_VALUE (-1 << 29) @@ -33,15 +40,43 @@ extern s48_value s48_enter_fixnum(long); extern long s48_extract_fixnum(s48_value); extern s48_value s48_enter_integer(long); extern long s48_extract_integer(s48_value); +extern s48_value s48_enter_unsigned_integer(unsigned long); +extern unsigned long s48_extract_unsigned_integer(s48_value); extern s48_value s48_enter_double(double); extern double s48_extract_double(s48_value); extern s48_value s48_cons(s48_value, s48_value); +extern s48_value s48_list_1(s48_value); +extern s48_value s48_list_2(s48_value, s48_value); +extern s48_value s48_list_3(s48_value, s48_value, s48_value); +extern s48_value s48_list_4(s48_value, s48_value, s48_value, s48_value); +extern s48_value s48_list_5(s48_value, s48_value, s48_value, s48_value, + s48_value); +extern s48_value s48_list_6(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value); +extern s48_value s48_list_7(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value); +extern s48_value s48_list_8(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value); +extern s48_value s48_list_9(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value); +extern s48_value s48_list_10(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value); +extern s48_value s48_list_11(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value); +extern s48_value s48_list_12(s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value, + s48_value, s48_value, s48_value, s48_value); extern s48_value s48_enter_string(char *); extern char * s48_extract_string(s48_value); extern s48_value s48_enter_substring(char *, int); extern s48_value s48_make_string(int, char); extern s48_value s48_make_vector(int, s48_value); -extern s48_value s48_make_byte_vector(int); +extern s48_value s48_enter_byte_vector(char *, int); +extern char * s48_extract_byte_vector(s48_value); +extern s48_value s48_make_byte_vector(int, int); extern s48_value s48_make_record(s48_value); extern s48_value s48_make_weak_pointer(s48_value); extern void s48_check_record_type(s48_value, s48_value); @@ -58,7 +93,7 @@ extern s48_value s48_call_scheme(s48_value proc, long nargs, ...); #define S48_EXPORT_FUNCTION(p) (s48_define_exported_binding(#p, s48_enter_pointer(p))) -#define S48_MAKE_VALUE(type) (s48_make_byte_vector(sizeof(type))) +#define S48_MAKE_VALUE(type) (s48_make_byte_vector(sizeof(type),0)) extern void * s48_value_pointer(s48_value); #define S48_EXTRACT_VALUE_POINTER(x, type) ((type *) s48_value_pointer(x)) @@ -171,28 +206,46 @@ extern void * s48_value_pointer(s48_value); /* Exceptions */ extern void s48_raise_scheme_exception(long type, long nargs, ...); -extern void s48_raise_argtype_error(s48_value value); -extern void s48_raise_argnumber_error(s48_value value, - s48_value min, s48_value max); +extern void s48_raise_argument_type_error(s48_value value); +extern void s48_raise_argument_number_error(s48_value value, + s48_value min, + s48_value max); extern void s48_raise_range_error(s48_value value, s48_value min, s48_value max); extern void s48_raise_closed_channel_error(); extern void s48_raise_os_error(int the_errno); +extern void s48_raise_os_error_1(int the_errno, s48_value arg1); +extern void s48_raise_os_error_2(int the_errno, s48_value arg1, s48_value arg2); +extern void s48_raise_os_error_3(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3); +extern void s48_raise_os_error_4(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4); +extern void s48_raise_os_error_5(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4, s48_value arg5); +extern void s48_raise_os_error_6(int the_errno, s48_value arg1, s48_value arg2, + s48_value arg3, s48_value arg4, s48_value arg5, + s48_value arg6); extern void s48_raise_string_os_error(char *reason); extern void s48_raise_out_of_memory_error(); /* Type checking */ -#define S48_CHECK_PAIR(v) do { if (!S48_PAIR_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_FIXNUM(v) do { if (!S48_FIXNUM_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_STRING(v) do { if (!S48_STRING_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_CHANNEL(v) do { if (!S48_CHANNEL_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_RECORD(v) do { if (!S48_RECORD_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_VALUE(v) do { if (!S48_BYTE_VECTOR_P(v)) s48_raise_argtype_error(v); } while (0) -#define S48_CHECK_EXPORT_BINDING(v) do { if (!S48_EXPORT_BINDING_P(v)) s48_raise_argtype_error(v); } while (0) +#define S48_CHECK_PAIR(v) do { if (!S48_PAIR_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_FIXNUM(v) do { if (!S48_FIXNUM_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_STRING(v) do { if (!S48_STRING_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_BYTE_VECTOR(v) do { if (!S48_BYTE_VECTOR_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_CHANNEL(v) do { if (!S48_CHANNEL_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_RECORD(v) do { if (!S48_RECORD_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_VALUE(v) do { if (!S48_BYTE_VECTOR_P(v)) s48_raise_argument_type_error(v); } while (0) +#define S48_CHECK_EXPORT_BINDING(v) do { if (!S48_EXPORT_BINDING_P(v)) s48_raise_argument_type_error(v); } while (0) #define S48_VALUE_P(v) (S48_BYTE_VECTOR_P(v)) +#define S48_TRUE_P(v) ((v) == S48_TRUE) +#define S48_FALSE_P(v) ((v) == S48_FALSE) +#define S48_EXTRACT_BOOLEAN(v) ((v) != S48_FALSE) +#define S48_ENTER_BOOLEAN(v) ((v) ? S48_TRUE : S48_FALSE) + extern void s48_check_record_type(s48_value record, s48_value type_binding); #define S48_SHARED_BINDING_CHECK(binding) \ @@ -200,3 +253,4 @@ extern void s48_check_record_type(s48_value record, s48_value type_binding); s48_raise_scheme_exception(S48_EXCEPTION_UNBOUND_EXTERNAL_NAME, 1, \ S48_SHARED_BINDING_NAME(binding)); \ } while(0) + diff --git a/c/scheme48heap.c b/c/scheme48heap.c index 9870e16..88cea6d 100644 --- a/c/scheme48heap.c +++ b/c/scheme48heap.c @@ -7,6 +7,7 @@ static void clean_weak_pointers(void); static char gc_recordP(long); static void note_undumpableB(long); void s48_write_barrier(long, char *, long); +char s48_newspaceLoldspaceP(void); long s48_heap_size(void); long s48_preallocate_space(long); void s48_register_static_areas(long, char **, long*, long, char **, long*); @@ -31,7 +32,7 @@ long s48_find_all(long); long s48_read_image(void); long s48_find_all_records(long); long s48_trace_locationsB(char *, char *); -void s48_do_gc(void); +long s48_do_gc(void); long s48_trace_stob_contentsB(long); void s48_begin_collection(void); long s48_trace_value(long); @@ -69,7 +70,7 @@ static long Simported_bindingsS; static long Sexported_bindingsS; static long Sresumer_recordsS; static char SinitializingPS; -static long Hthe_record_type9260; +static long Hthe_record_type9400; char * s48_ShpS; char * s48_SlimitS; @@ -83,23 +84,23 @@ static long copy_weak_pointer(long weak_1X, char * frontier_2X, char * *TT0) char * x_3X; { x_3X = Sweak_pointer_hpS; if ((x_3X == NULL)) { - goto L2423;} + goto L2435;} else { if (((Sweak_pointer_hpS) < (Sweak_pointer_limitS))) { arg0K0 = frontier_2X; - goto L2428;} + goto L2440;} else { - goto L2423;}}} - L2423: { + goto L2435;}}} + L2435: { old_4X = Sweak_pointer_hpS; new_frontier_5X = frontier_2X + 1024; Sweak_pointer_hpS = frontier_2X; Sweak_pointer_limitS = new_frontier_5X; - *((long *) (Sweak_pointer_hpS)) = 261190; + *((long *) (Sweak_pointer_hpS)) = 261194; *((long *) ((Sweak_pointer_hpS) + 8)) = (((long) old_4X)); arg0K0 = new_frontier_5X; - goto L2428;} - L2428: { + goto L2440;} + L2440: { frontier_6X = arg0K0; new_7X = 3 + (((long) ((Sweak_pointer_hpS) + 4))); *((long *) ((Sweak_pointer_hpS) + 4)) = (*((long *) (((char *) (-3 + weak_1X))))); @@ -130,56 +131,56 @@ static void clean_weak_pointers(void) end_9X = Sweak_pointer_hpS; arg0K0 = (x_8X + -1024); arg0K1 = end_9X; - goto L3994;}} - L3994: { + goto L4006;}} + L4006: { start_10X = arg0K0; end_11X = arg0K1; next_12X = ((char *) (*((long *) (start_10X + 8)))); arg0K0 = start_10X; - goto L2635;} - L2635: { + goto L2647;} + L2647: { scan_13X = arg0K0; if ((scan_13X < end_11X)) { - *((long *) scan_13X) = 1074; + *((long *) scan_13X) = 1078; value_14X = *((long *) (scan_13X + 4)); if ((3 == (3 & value_14X))) { a_15X = ((char *) (-3 + value_14X)); if ((a_15X < (Sfrom_beginS))) { - goto L2681;} + goto L2693;} else { if ((a_15X < (Sfrom_endS))) { if ((3 == (3 & value_14X))) { h_16X = *((long *) ((((char *) (-3 + value_14X))) + -4)); if ((3 == (3 & h_16X))) { arg1K0 = h_16X; - goto L2676;} + goto L2688;} else { arg1K0 = 1; - goto L2676;}} + goto L2688;}} else { - goto L2681;}} + goto L2693;}} else { - goto L2681;}}} + goto L2693;}}} else { - goto L2681;}} + goto L2693;}} else { if ((next_12X == NULL)) { if ((end_9X < (Sweak_pointer_limitS))) { - *((long *) end_9X) = (70 + ((((-4 & ((Sweak_pointer_limitS) - (end_9X + 4))))<<8))); + *((long *) end_9X) = (74 + ((((-4 & ((Sweak_pointer_limitS) - (end_9X + 4))))<<8))); return;} else { return;}} else { arg0K0 = (next_12X + -1024); arg0K1 = next_12X; - goto L3994;}}} - L2681: { + goto L4006;}}} + L2693: { arg0K0 = (scan_13X + 8); - goto L2635;} - L2676: { + goto L2647;} + L2688: { x2_17X = arg1K0; *((long *) (scan_13X + 4)) = x2_17X; - goto L2681;} + goto L2693;} } static char gc_recordP(long x_18X) { @@ -188,12 +189,12 @@ static char gc_recordP(long x_18X) header_19X = *((long *) ((((char *) (-3 + x_18X))) + -4)); if ((3 == (3 & header_19X))) { if ((3 == (3 & header_19X))) { - return (8 == (31 & ((((*((long *) ((((char *) (-3 + header_19X))) + -4))))>>2))));} + return (9 == (31 & ((((*((long *) ((((char *) (-3 + header_19X))) + -4))))>>2))));} else { return 0;}} else { if ((3 == (3 & x_18X))) { - return (8 == (31 & ((((*((long *) ((((char *) (-3 + x_18X))) + -4))))>>2))));} + return (9 == (31 & ((((*((long *) ((((char *) (-3 + x_18X))) + -4))))>>2))));} else { return 0;}}} else { @@ -221,8 +222,8 @@ static void note_undumpableB(long thing_20X) else { list_21X = Sundumpable_recordsS; arg1K0 = list_21X; - goto L6367;}} - L6367: { + goto L6379;}} + L6379: { list_22X = arg1K0; if ((25 == list_22X)) { Sundumpable_countS = (1 + (Sundumpable_countS)); @@ -248,16 +249,16 @@ static void note_undumpableB(long thing_20X) *((long *) (((char *) (-3 + x_30X)))) = thing_20X; *((long *) ((((char *) (-3 + x_30X))) + 4)) = b_28X; Sundumpable_recordsS = x_30X; - goto L6289;} + goto L6301;} else { - goto L6289;}} + goto L6301;}} else { if (((*((long *) (((char *) (-3 + list_22X))))) == thing_20X)) { return;} else { arg1K0 = (*((long *) ((((char *) (-3 + list_22X))) + 4))); - goto L6367;}}} - L6289: { + goto L6379;}}} + L6301: { temp_31X = s48_SlimitS; s48_SlimitS = (Soldspace_limitS); Soldspace_limitS = temp_31X; @@ -277,6 +278,11 @@ void s48_write_barrier(long stob_35X, char * address_36X, long value_37X) { return;} } +char s48_newspaceLoldspaceP(void) +{ + + { return ((s48_SlimitS) < (Soldspace_limitS));} +} long s48_heap_size(void) { @@ -491,9 +497,9 @@ long s48_check_image_header(char *filename_61X) SstatusS = NO_ERRORS; SeofPS = 0; if ((SeofPS)) { - goto L2893;} + goto L2905;} else { - goto L3626;}} + goto L3638;}} else { ps_write_string("Can't open heap image file", (stderr)); { long ignoreXX; @@ -502,301 +508,301 @@ long s48_check_image_header(char *filename_61X) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L2893: { + L2905: { if ((SeofPS)) { - goto L2926;} + goto L2938;} else { - goto L3590;}} - L3626: { + goto L3602;}} + L3638: { PS_READ_CHAR(port_62X, ch_64X, eofP_65X, status_66X) if (eofP_65X) { arg2K0 = eofP_65X; arg1K1 = status_66X; - goto L2871;} + goto L2883;} else { if ((status_66X == NO_ERRORS)) { if ((12 == ch_64X)) { arg2K0 = 0; arg1K1 = status_66X; - goto L2871;} + goto L2883;} else { - goto L3626;}} + goto L3638;}} else { arg2K0 = eofP_65X; arg1K1 = status_66X; - goto L2871;}}} - L2926: { + goto L2883;}}} + L2938: { if ((SeofPS)) { arg2K0 = 0; - goto L2959;} + goto L2971;} else { arg1K0 = 0; - goto L3566;}} - L3590: { + goto L3578;}} + L3602: { PS_READ_CHAR(port_62X, ch_67X, eofP_68X, status_69X) if (eofP_68X) { arg2K0 = eofP_68X; arg1K1 = status_69X; - goto L2904;} + goto L2916;} else { if ((status_69X == NO_ERRORS)) { if ((10 == ch_67X)) { arg2K0 = 0; arg1K1 = status_69X; - goto L2904;} + goto L2916;} else { - goto L3590;}} + goto L3602;}} else { arg2K0 = eofP_68X; arg1K1 = status_69X; - goto L2904;}}} - L2871: { + goto L2916;}}} + L2883: { eofP_70X = arg2K0; status_71X = arg1K1; if (eofP_70X) { SeofPS = 1; - goto L2893;} + goto L2905;} else { if (((SstatusS) == NO_ERRORS)) { - goto L2893;} + goto L2905;} else { SeofPS = 1; SstatusS = status_71X; - goto L2893;}}} - L2959: { + goto L2905;}}} + L2971: { same_versionP_72X = arg2K0; if ((SeofPS)) { arg1K0 = -1; - goto L2994;} + goto L3006;} else { PS_READ_INTEGER(port_62X, thing_73X, eofP_74X, status_75X) if (eofP_74X) { SeofPS = 1; arg1K0 = -1; - goto L2994;} + goto L3006;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_73X; - goto L2994;} + goto L3006;} else { SeofPS = 1; SstatusS = status_75X; arg1K0 = -1; - goto L2994;}}}} - L3566: { + goto L3006;}}}} + L3578: { i_76X = arg1K0; PS_READ_CHAR(port_62X, ch_77X, eofP_78X, status_79X) if (eofP_78X) { arg2K0 = 0; arg2K1 = eofP_78X; arg1K2 = status_79X; - goto L2937;} + goto L2949;} else { if ((status_79X == NO_ERRORS)) { if ((i_76X == (strlen((char *) "Vanilla 20")))) { arg2K0 = (10 == ch_77X); arg2K1 = 0; arg1K2 = status_79X; - goto L2937;} + goto L2949;} else { if ((ch_77X == (*("Vanilla 20" + i_76X)))) { arg1K0 = (1 + i_76X); - goto L3566;} + goto L3578;} else { arg2K0 = 0; arg2K1 = 0; arg1K2 = status_79X; - goto L2937;}}} + goto L2949;}}} else { arg2K0 = 0; arg2K1 = eofP_78X; arg1K2 = status_79X; - goto L2937;}}} - L2904: { + goto L2949;}}} + L2916: { eofP_80X = arg2K0; status_81X = arg1K1; if (eofP_80X) { SeofPS = 1; - goto L2926;} + goto L2938;} else { if (((SstatusS) == NO_ERRORS)) { - goto L2926;} + goto L2938;} else { SeofPS = 1; SstatusS = status_81X; - goto L2926;}}} - L2994: { + goto L2938;}}} + L3006: { old_bytes_per_cell_82X = arg1K0; if ((SeofPS)) { arg1K0 = -1; - goto L3029;} + goto L3041;} else { PS_READ_INTEGER(port_62X, thing_83X, eofP_84X, status_85X) if (eofP_84X) { SeofPS = 1; arg1K0 = -1; - goto L3029;} + goto L3041;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_83X; - goto L3029;} + goto L3041;} else { SeofPS = 1; SstatusS = status_85X; arg1K0 = -1; - goto L3029;}}}} - L2937: { + goto L3041;}}}} + L2949: { thing_86X = arg2K0; eofP_87X = arg2K1; status_88X = arg1K2; if (eofP_87X) { SeofPS = 1; arg2K0 = 0; - goto L2959;} + goto L2971;} else { if (((SstatusS) == NO_ERRORS)) { arg2K0 = thing_86X; - goto L2959;} + goto L2971;} else { SeofPS = 1; SstatusS = status_88X; arg2K0 = 0; - goto L2959;}}} - L3029: { + goto L2971;}}} + L3041: { cells_89X = arg1K0; Sold_beginS = (((char *) (((cells_89X)<<2)))); if ((SeofPS)) { arg1K0 = -1; - goto L3067;} + goto L3079;} else { PS_READ_INTEGER(port_62X, thing_90X, eofP_91X, status_92X) if (eofP_91X) { SeofPS = 1; arg1K0 = -1; - goto L3067;} + goto L3079;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_90X; - goto L3067;} + goto L3079;} else { SeofPS = 1; SstatusS = status_92X; arg1K0 = -1; - goto L3067;}}}} - L3067: { + goto L3079;}}}} + L3079: { cells_93X = arg1K0; Sold_hpS = (((char *) (((cells_93X)<<2)))); if ((SeofPS)) { arg1K0 = -1; - goto L3105;} + goto L3117;} else { PS_READ_INTEGER(port_62X, thing_94X, eofP_95X, status_96X) if (eofP_95X) { SeofPS = 1; arg1K0 = -1; - goto L3105;} + goto L3117;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_94X; - goto L3105;} + goto L3117;} else { SeofPS = 1; SstatusS = status_96X; arg1K0 = -1; - goto L3105;}}}} - L3105: { + goto L3117;}}}} + L3117: { v_97X = arg1K0; SsymbolsS = v_97X; if ((SeofPS)) { arg1K0 = -1; - goto L3141;} + goto L3153;} else { PS_READ_INTEGER(port_62X, thing_98X, eofP_99X, status_100X) if (eofP_99X) { SeofPS = 1; arg1K0 = -1; - goto L3141;} + goto L3153;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_98X; - goto L3141;} + goto L3153;} else { SeofPS = 1; SstatusS = status_100X; arg1K0 = -1; - goto L3141;}}}} - L3141: { + goto L3153;}}}} + L3153: { v_101X = arg1K0; Simported_bindingsS = v_101X; if ((SeofPS)) { arg1K0 = -1; - goto L3177;} + goto L3189;} else { PS_READ_INTEGER(port_62X, thing_102X, eofP_103X, status_104X) if (eofP_103X) { SeofPS = 1; arg1K0 = -1; - goto L3177;} + goto L3189;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_102X; - goto L3177;} + goto L3189;} else { SeofPS = 1; SstatusS = status_104X; arg1K0 = -1; - goto L3177;}}}} - L3177: { + goto L3189;}}}} + L3189: { v_105X = arg1K0; Sexported_bindingsS = v_105X; if ((SeofPS)) { arg1K0 = -1; - goto L3213;} + goto L3225;} else { PS_READ_INTEGER(port_62X, thing_106X, eofP_107X, status_108X) if (eofP_107X) { SeofPS = 1; arg1K0 = -1; - goto L3213;} + goto L3225;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_106X; - goto L3213;} + goto L3225;} else { SeofPS = 1; SstatusS = status_108X; arg1K0 = -1; - goto L3213;}}}} - L3213: { + goto L3225;}}}} + L3225: { v_109X = arg1K0; Sresumer_recordsS = v_109X; if ((SeofPS)) { arg1K0 = -1; - goto L3249;} + goto L3261;} else { PS_READ_INTEGER(port_62X, thing_110X, eofP_111X, status_112X) if (eofP_111X) { SeofPS = 1; arg1K0 = -1; - goto L3249;} + goto L3261;} else { if (((SstatusS) == NO_ERRORS)) { arg1K0 = thing_110X; - goto L3249;} + goto L3261;} else { SeofPS = 1; SstatusS = status_112X; arg1K0 = -1; - goto L3249;}}}} - L3249: { + goto L3261;}}}} + L3261: { v_113X = arg1K0; Sstartup_procedureS = v_113X; Simage_portS = port_62X; if ((SeofPS)) { - goto L3288;} + goto L3300;} else { - goto L3497;}} - L3288: { + goto L3509;}} + L3300: { if (((SstatusS) == NO_ERRORS)) { if ((SeofPS)) { SstatusS = EDOM; @@ -804,12 +810,12 @@ long s48_check_image_header(char *filename_61X) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L3369;} + goto L3381;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L3369;}} + goto L3381;}} else { if (same_versionP_72X) { if ((4 == old_bytes_per_cell_82X)) { @@ -819,53 +825,53 @@ long s48_check_image_header(char *filename_61X) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L3429;} + goto L3441;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L3429;}}} + goto L3441;}}} else { ps_write_string("Format of image is incompatible with this version of system", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L3399;} + goto L3411;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L3399;}}}} + goto L3411;}}}} else { ps_write_string("Error reading from image file", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L3344;} + goto L3356;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L3344;}}} - L3497: { + goto L3356;}}} + L3509: { PS_READ_CHAR(port_62X, ch_114X, eofP_115X, status_116X) if (eofP_115X) { arg2K0 = eofP_115X; arg1K1 = status_116X; - goto L3266;} + goto L3278;} else { if ((status_116X == NO_ERRORS)) { if ((12 == ch_114X)) { arg2K0 = 0; arg1K1 = status_116X; - goto L3266;} + goto L3278;} else { - goto L3497;}} + goto L3509;}} else { arg2K0 = eofP_115X; arg1K1 = status_116X; - goto L3266;}}} - L3369: { + goto L3278;}}} + L3381: { status_117X = ps_close(port_62X); if ((status_117X == NO_ERRORS)) { return -1;} @@ -874,7 +880,7 @@ long s48_check_image_header(char *filename_61X) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L3429: { + L3441: { status_118X = ps_close(port_62X); if ((status_118X == NO_ERRORS)) { return -1;} @@ -883,7 +889,7 @@ long s48_check_image_header(char *filename_61X) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L3399: { + L3411: { status_119X = ps_close(port_62X); if ((status_119X == NO_ERRORS)) { return -1;} @@ -892,7 +898,7 @@ long s48_check_image_header(char *filename_61X) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L3344: { + L3356: { status_120X = ps_close(port_62X); if ((status_120X == NO_ERRORS)) { return -1;} @@ -901,19 +907,19 @@ long s48_check_image_header(char *filename_61X) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L3266: { + L3278: { eofP_121X = arg2K0; status_122X = arg1K1; if (eofP_121X) { SeofPS = 1; - goto L3288;} + goto L3300;} else { if (((SstatusS) == NO_ERRORS)) { - goto L3288;} + goto L3300;} else { SeofPS = 1; SstatusS = status_122X; - goto L3288;}}} + goto L3300;}}} } long s48_find_all(long type_123X) { @@ -922,8 +928,8 @@ long s48_find_all(long type_123X) char * merged_arg0K1; char * merged_arg0K0; - int Hproc923124_return_tag; - char Hproc9231240_return_value; + int Hproc937124_return_tag; + char Hproc9371240_return_value; char * start_125X; char * end_126X; char * next_142X; @@ -948,75 +954,75 @@ long s48_find_all(long type_123X) s48_ShpS = ((s48_ShpS) + 4); merged_arg0K0 = (Snewspace_beginS); merged_arg0K1 = start_hp_127X; - Hproc923124_return_tag = 0; - goto Hproc923124; - Hproc923124_return_0: - v_128X = Hproc9231240_return_value; + Hproc937124_return_tag = 0; + goto Hproc937124; + Hproc937124_return_0: + v_128X = Hproc9371240_return_value; if (v_128X) { if ((0 < (Simpure_area_countS))) { areas_129X = Simpure_areasS; sizes_130X = Simpure_sizesS; count_131X = Simpure_area_countS; arg1K0 = 0; - goto L5577;} + goto L5589;} else { - goto L5517;}} + goto L5529;}} else { - goto L5535;}} - L5577: { + goto L5547;}} + L5589: { i_132X = arg1K0; if ((i_132X < count_131X)) { merged_arg0K0 = (*(areas_129X + i_132X)); merged_arg0K1 = ((*(areas_129X + i_132X)) + (*(sizes_130X + i_132X))); - Hproc923124_return_tag = 1; - goto Hproc923124; - Hproc923124_return_1: - v_133X = Hproc9231240_return_value; + Hproc937124_return_tag = 1; + goto Hproc937124; + Hproc937124_return_1: + v_133X = Hproc9371240_return_value; if (v_133X) { arg1K0 = (1 + i_132X); - goto L5577;} + goto L5589;} else { - goto L5535;}} + goto L5547;}} else { - goto L5517;}} - L5517: { + goto L5529;}} + L5529: { if ((0 < (Spure_area_countS))) { areas_134X = Spure_areasS; sizes_135X = Spure_sizesS; count_136X = Spure_area_countS; arg1K0 = 0; - goto L5598;} + goto L5610;} else { - goto L5524;}} - L5535: { + goto L5536;}} + L5547: { s48_ShpS = start_hp_127X; return 1;} - L5598: { + L5610: { i_137X = arg1K0; if ((i_137X < count_136X)) { merged_arg0K0 = (*(areas_134X + i_137X)); merged_arg0K1 = ((*(areas_134X + i_137X)) + (*(sizes_135X + i_137X))); - Hproc923124_return_tag = 2; - goto Hproc923124; - Hproc923124_return_2: - v_138X = Hproc9231240_return_value; + Hproc937124_return_tag = 2; + goto Hproc937124; + Hproc937124_return_2: + v_138X = Hproc9371240_return_value; if (v_138X) { arg1K0 = (1 + i_137X); - goto L5598;} + goto L5610;} else { - goto L5535;}} + goto L5547;}} else { - goto L5524;}} - L5524: { + goto L5536;}} + L5536: { *((long *) start_hp_127X) = (10 + (((((s48_ShpS) - (start_hp_127X + 4)))<<8))); return (3 + (((long) (start_hp_127X + 4))));} - Hproc923124: { + Hproc937124: { start_125X = merged_arg0K0; end_126X = merged_arg0K1;{ type_139X = Sfinding_typeS; arg0K0 = start_125X; - goto L4503;} - L4503: { + goto L4515;} + L4515: { addr_140X = arg0K0; if ((addr_140X < end_126X)) { d_141X = *((long *) addr_140X); @@ -1027,25 +1033,25 @@ long s48_find_all(long type_123X) *((long *) (s48_ShpS)) = (3 + (((long) (addr_140X + 4)))); s48_ShpS = ((s48_ShpS) + 4); arg0K0 = next_142X; - goto L4503;} + goto L4515;} else { - Hproc9231240_return_value = 0; - goto Hproc923124_return;}} + Hproc9371240_return_value = 0; + goto Hproc937124_return;}} else { arg0K0 = next_142X; - goto L4503;}} + goto L4515;}} else { ps_write_string("heap is in an inconsistent state.", (stderr)); - Hproc9231240_return_value = 0; - goto Hproc923124_return;}} + Hproc9371240_return_value = 0; + goto Hproc937124_return;}} else { - Hproc9231240_return_value = 1; - goto Hproc923124_return;}} - Hproc923124_return: - switch (Hproc923124_return_tag) { - case 0: goto Hproc923124_return_0; - case 1: goto Hproc923124_return_1; - default: goto Hproc923124_return_2; + Hproc9371240_return_value = 1; + goto Hproc937124_return;}} + Hproc937124_return: + switch (Hproc937124_return_tag) { + case 0: goto Hproc937124_return_0; + case 1: goto Hproc937124_return_1; + default: goto Hproc937124_return_2; }} } @@ -1113,29 +1119,29 @@ long s48_read_image(void) if (eofP_145X) { arg2K0 = 0; arg3K1 = "Premature EOF when reading image file"; - goto L6079;} + goto L6091;} else { if ((got_144X < 4)) { arg2K0 = 0; arg3K1 = "Read returned too few bytes"; - goto L6079;} + goto L6091;} else { arg2K0 = 1; arg3K1 = ""; - goto L6079;}}} + goto L6091;}}} else { SstatusS = status_146X; arg2K0 = 0; arg3K1 = "Error reading from image file"; - goto L6079;}} - L6079: { + goto L6091;}} + L6091: { okayP_147X = arg2K0; string_148X = arg3K1; if (okayP_147X) { if ((1 == (*((long *) (s48_ShpS))))) { arg4K0 = port_143X; arg2K1 = 0; - goto L5092;} + goto L5104;} else { addr_149X = s48_ShpS; x_150X = *((unsigned char *) addr_149X); @@ -1147,30 +1153,30 @@ long s48_read_image(void) if ((1 == (*((long *) (s48_ShpS))))) { arg4K0 = port_143X; arg2K1 = 1; - goto L5092;} + goto L5104;} else { ps_write_string("Unable to correct byte order", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L6187;} + goto L6199;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L6187;}}}} + goto L6199;}}}} else { ps_write_string(string_148X, (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L6135;} + goto L6147;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L6135;}}} - L5092: { + goto L6147;}}} + L5104: { port_152X = arg4K0; reverseP_153X = arg2K1; delta_154X = (s48_ShpS) - (Sold_beginS); @@ -1184,33 +1190,33 @@ long s48_read_image(void) if (eofP_160X) { arg2K0 = 0; arg3K1 = "Premature EOF when reading image file"; - goto L5114;} + goto L5126;} else { if ((got_159X < need_158X)) { arg2K0 = 0; arg3K1 = "Read returned too few bytes"; - goto L5114;} + goto L5126;} else { arg2K0 = 1; arg3K1 = ""; - goto L5114;}}} + goto L5126;}}} else { SstatusS = status_161X; arg2K0 = 0; arg3K1 = "Error reading from image file"; - goto L5114;}} + goto L5126;}} else { ps_write_string("Heap not big enough to restore this image", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L5210;} + goto L5222;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L5210;}}} - L6187: { + goto L5222;}}} + L6199: { status_162X = ps_close(port_143X); if ((status_162X == NO_ERRORS)) { return -1;} @@ -1219,7 +1225,7 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L6135: { + L6147: { status_163X = ps_close(port_143X); if ((status_163X == NO_ERRORS)) { return -1;} @@ -1228,7 +1234,7 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L5114: { + L5126: { okayP_164X = arg2K0; string_165X = arg3K1; PS_READ_CHAR(port_152X, v_166X, eofP_167X, status_168X) @@ -1242,54 +1248,54 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } arg0K0 = start_157X; - goto L4309;} + goto L4321;} else { - goto L5152;}} + goto L5164;}} else { ps_write_string("Error closing image file", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L5345;} + goto L5357;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L5345;}}} + goto L5357;}}} else { ps_write_string("Image file has extraneous data after image", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L5315;} + goto L5327;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L5315;}}} + goto L5327;}}} else { ps_write_string("Error reading from image file", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L5285;} + goto L5297;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L5285;}}} + goto L5297;}}} else { ps_write_string(string_165X, (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } if (((SstatusS) == NO_ERRORS)) { - goto L5255;} + goto L5267;} else { ps_write_string((ps_error_string((SstatusS))), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - goto L5255;}}} - L5210: { + goto L5267;}}} + L5222: { status_170X = ps_close(port_152X); if ((status_170X == NO_ERRORS)) { return -1;} @@ -1298,7 +1304,7 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L4309: { + L4321: { ptr_171X = arg0K0; if ((ptr_171X < new_hp_155X)) { x_172X = *((unsigned char *) ptr_171X); @@ -1310,24 +1316,24 @@ long s48_read_image(void) value_174X = *((long *) ptr_171X); next_175X = ptr_171X + 4; if ((2 == (3 & value_174X))) { - if (((31 & (((value_174X)>>2))) < 16)) { + if (((31 & (((value_174X)>>2))) < 17)) { arg0K0 = next_175X; - goto L4309;} + goto L4321;} else { arg0K0 = (next_175X + (-4 & (3 + ((long)(((unsigned long)value_174X)>>8))))); - goto L4309;}} + goto L4321;}} else { arg0K0 = next_175X; - goto L4309;}} + goto L4321;}} else { - goto L5152;}} - L5152: { + goto L5164;}} + L5164: { if ((0 == delta_154X)) { - goto L5162;} + goto L5174;} else { arg0K0 = start_157X; - goto L4408;}} - L5345: { + goto L4420;}} + L5357: { status_176X = ps_close(port_152X); if ((status_176X == NO_ERRORS)) { return -1;} @@ -1336,7 +1342,7 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L5315: { + L5327: { status_177X = ps_close(port_152X); if ((status_177X == NO_ERRORS)) { return -1;} @@ -1345,7 +1351,7 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L5285: { + L5297: { status_178X = ps_close(port_152X); if ((status_178X == NO_ERRORS)) { return -1;} @@ -1354,7 +1360,7 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L5255: { + L5267: { status_179X = ps_close(port_152X); if ((status_179X == NO_ERRORS)) { return -1;} @@ -1363,82 +1369,82 @@ long s48_read_image(void) { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } return -1;}} - L5162: { + L5174: { s48_ShpS = new_hp_155X; descriptor_180X = Sstartup_procedureS; if ((3 == (3 & descriptor_180X))) { arg1K0 = (3 + (((long) ((((char *) (-3 + descriptor_180X))) + delta_154X)))); - goto L5166;} + goto L5178;} else { arg1K0 = descriptor_180X; - goto L5166;}} - L4408: { + goto L5178;}} + L4420: { ptr_181X = arg0K0; if ((ptr_181X < new_hp_155X)) { descriptor_182X = *((long *) ptr_181X); if ((3 == (3 & descriptor_182X))) { arg1K0 = (3 + (((long) ((((char *) (-3 + descriptor_182X))) + delta_154X)))); - goto L4413;} + goto L4425;} else { arg1K0 = descriptor_182X; - goto L4413;}} + goto L4425;}} else { - goto L5162;}} - L5166: { + goto L5174;}} + L5178: { v_183X = arg1K0; Sstartup_procedureS = v_183X; descriptor_184X = SsymbolsS; if ((3 == (3 & descriptor_184X))) { arg1K0 = (3 + (((long) ((((char *) (-3 + descriptor_184X))) + delta_154X)))); - goto L5171;} + goto L5183;} else { arg1K0 = descriptor_184X; - goto L5171;}} - L4413: { + goto L5183;}} + L4425: { d_185X = arg1K0; *((long *) ptr_181X) = d_185X; if ((2 == (3 & d_185X))) { - if (((31 & (((d_185X)>>2))) < 16)) { - goto L4427;} + if (((31 & (((d_185X)>>2))) < 17)) { + goto L4439;} else { arg0K0 = (ptr_181X + (4 + (-4 & (3 + ((long)(((unsigned long)d_185X)>>8)))))); - goto L4408;}} + goto L4420;}} else { - goto L4427;}} - L5171: { + goto L4439;}} + L5183: { v_186X = arg1K0; SsymbolsS = v_186X; descriptor_187X = Simported_bindingsS; if ((3 == (3 & descriptor_187X))) { arg1K0 = (3 + (((long) ((((char *) (-3 + descriptor_187X))) + delta_154X)))); - goto L5176;} + goto L5188;} else { arg1K0 = descriptor_187X; - goto L5176;}} - L4427: { + goto L5188;}} + L4439: { arg0K0 = (ptr_181X + 4); - goto L4408;} - L5176: { + goto L4420;} + L5188: { v_188X = arg1K0; Simported_bindingsS = v_188X; descriptor_189X = Sexported_bindingsS; if ((3 == (3 & descriptor_189X))) { arg1K0 = (3 + (((long) ((((char *) (-3 + descriptor_189X))) + delta_154X)))); - goto L5181;} + goto L5193;} else { arg1K0 = descriptor_189X; - goto L5181;}} - L5181: { + goto L5193;}} + L5193: { v_190X = arg1K0; Sexported_bindingsS = v_190X; descriptor_191X = Sresumer_recordsS; if ((3 == (3 & descriptor_191X))) { arg1K0 = (3 + (((long) ((((char *) (-3 + descriptor_191X))) + delta_154X)))); - goto L5186;} + goto L5198;} else { arg1K0 = descriptor_191X; - goto L5186;}} - L5186: { + goto L5198;}} + L5198: { v_192X = arg1K0; Sresumer_recordsS = v_192X; return 0;} @@ -1450,8 +1456,8 @@ long s48_find_all_records(long record_type_193X) char * merged_arg0K1; char * merged_arg0K0; - int Hproc969194_return_tag; - char Hproc9691940_return_value; + int Hproc985194_return_tag; + char Hproc9851940_return_value; char * start_195X; char * end_196X; long obj_213X; @@ -1471,82 +1477,82 @@ long s48_find_all_records(long record_type_193X) char * *areas_199X; char v_198X; char * start_hp_197X; - { Hthe_record_type9260 = record_type_193X; - Sfinding_typeS = 8; + { Hthe_record_type9400 = record_type_193X; + Sfinding_typeS = 9; start_hp_197X = s48_ShpS; *((long *) (s48_ShpS)) = 0; s48_ShpS = ((s48_ShpS) + 4); merged_arg0K0 = (Snewspace_beginS); merged_arg0K1 = start_hp_197X; - Hproc969194_return_tag = 0; - goto Hproc969194; - Hproc969194_return_0: - v_198X = Hproc9691940_return_value; + Hproc985194_return_tag = 0; + goto Hproc985194; + Hproc985194_return_0: + v_198X = Hproc9851940_return_value; if (v_198X) { if ((0 < (Simpure_area_countS))) { areas_199X = Simpure_areasS; sizes_200X = Simpure_sizesS; count_201X = Simpure_area_countS; arg1K0 = 0; - goto L5742;} + goto L5754;} else { - goto L5682;}} + goto L5694;}} else { - goto L5700;}} - L5742: { + goto L5712;}} + L5754: { i_202X = arg1K0; if ((i_202X < count_201X)) { merged_arg0K0 = (*(areas_199X + i_202X)); merged_arg0K1 = ((*(areas_199X + i_202X)) + (*(sizes_200X + i_202X))); - Hproc969194_return_tag = 1; - goto Hproc969194; - Hproc969194_return_1: - v_203X = Hproc9691940_return_value; + Hproc985194_return_tag = 1; + goto Hproc985194; + Hproc985194_return_1: + v_203X = Hproc9851940_return_value; if (v_203X) { arg1K0 = (1 + i_202X); - goto L5742;} + goto L5754;} else { - goto L5700;}} + goto L5712;}} else { - goto L5682;}} - L5682: { + goto L5694;}} + L5694: { if ((0 < (Spure_area_countS))) { areas_204X = Spure_areasS; sizes_205X = Spure_sizesS; count_206X = Spure_area_countS; arg1K0 = 0; - goto L5763;} + goto L5775;} else { - goto L5689;}} - L5700: { + goto L5701;}} + L5712: { s48_ShpS = start_hp_197X; return 1;} - L5763: { + L5775: { i_207X = arg1K0; if ((i_207X < count_206X)) { merged_arg0K0 = (*(areas_204X + i_207X)); merged_arg0K1 = ((*(areas_204X + i_207X)) + (*(sizes_205X + i_207X))); - Hproc969194_return_tag = 2; - goto Hproc969194; - Hproc969194_return_2: - v_208X = Hproc9691940_return_value; + Hproc985194_return_tag = 2; + goto Hproc985194; + Hproc985194_return_2: + v_208X = Hproc9851940_return_value; if (v_208X) { arg1K0 = (1 + i_207X); - goto L5763;} + goto L5775;} else { - goto L5700;}} + goto L5712;}} else { - goto L5689;}} - L5689: { + goto L5701;}} + L5701: { *((long *) start_hp_197X) = (10 + (((((s48_ShpS) - (start_hp_197X + 4)))<<8))); return (3 + (((long) (start_hp_197X + 4))));} - Hproc969194: { + Hproc985194: { start_195X = merged_arg0K0; end_196X = merged_arg0K1;{ type_209X = Sfinding_typeS; arg0K0 = start_195X; - goto L4670;} - L4670: { + goto L4682;} + L4682: { addr_210X = arg0K0; if ((addr_210X < end_196X)) { d_211X = *((long *) addr_210X); @@ -1554,33 +1560,33 @@ long s48_find_all_records(long record_type_193X) if ((2 == (3 & d_211X))) { if ((type_209X == (31 & (((d_211X)>>2))))) { obj_213X = 3 + (((long) (addr_210X + 4))); - if (((*((long *) (((char *) (-3 + obj_213X))))) == (Hthe_record_type9260))) { + if (((*((long *) (((char *) (-3 + obj_213X))))) == (Hthe_record_type9400))) { if ((((s48_ShpS) + 16) < (s48_SlimitS))) { *((long *) (s48_ShpS)) = obj_213X; s48_ShpS = ((s48_ShpS) + 4); arg0K0 = next_212X; - goto L4670;} + goto L4682;} else { - Hproc9691940_return_value = 0; - goto Hproc969194_return;}} + Hproc9851940_return_value = 0; + goto Hproc985194_return;}} else { arg0K0 = next_212X; - goto L4670;}} + goto L4682;}} else { arg0K0 = next_212X; - goto L4670;}} + goto L4682;}} else { ps_write_string("heap is in an inconsistent state.", (stderr)); - Hproc9691940_return_value = 0; - goto Hproc969194_return;}} + Hproc9851940_return_value = 0; + goto Hproc985194_return;}} else { - Hproc9691940_return_value = 1; - goto Hproc969194_return;}} - Hproc969194_return: - switch (Hproc969194_return_tag) { - case 0: goto Hproc969194_return_0; - case 1: goto Hproc969194_return_1; - default: goto Hproc969194_return_2; + Hproc9851940_return_value = 1; + goto Hproc985194_return;}} + Hproc985194_return: + switch (Hproc985194_return_tag) { + case 0: goto Hproc985194_return_0; + case 1: goto Hproc985194_return_1; + default: goto Hproc985194_return_2; }} } @@ -1608,8 +1614,8 @@ long s48_trace_locationsB(char * start_214X, char * end_215X) char * addr_216X; { arg0K0 = start_214X; arg0K1 = (s48_ShpS); - goto L6441;} - L6441: { + goto L6453;} + L6453: { addr_216X = arg0K0; frontier_217X = arg0K1; if ((addr_216X < end_215X)) { @@ -1617,18 +1623,18 @@ long s48_trace_locationsB(char * start_214X, char * end_215X) next_219X = addr_216X + 4; if ((2 == (3 & thing_218X))) { if ((2 == (3 & thing_218X))) { - if (((31 & (((thing_218X)>>2))) < 16)) { + if (((31 & (((thing_218X)>>2))) < 17)) { arg0K0 = next_219X; arg0K1 = frontier_217X; - goto L6441;} + goto L6453;} else { arg0K0 = (next_219X + (-4 & (3 + ((long)(((unsigned long)thing_218X)>>8))))); arg0K1 = frontier_217X; - goto L6441;}} + goto L6453;}} else { arg0K0 = next_219X; arg0K1 = frontier_217X; - goto L6441;}} + goto L6453;}} else { if ((Swriting_imagePS)) { v_220X = gc_recordP(thing_218X); @@ -1641,67 +1647,67 @@ long s48_trace_locationsB(char * start_214X, char * end_215X) *((long *) addr_216X) = (*((long *) ((((char *) (-3 + thing_218X))) + 4))); arg0K0 = addr_216X; arg0K1 = frontier_217X; - goto L6441;} + goto L6453;} else { - goto L6475;}} + goto L6487;}} else { - goto L6475;}} + goto L6487;}} else { - goto L6475;}} + goto L6487;}} else { - goto L6475;}}} + goto L6487;}}} else { s48_ShpS = frontier_217X; return 0;}} - L6475: { + L6487: { if ((3 == (3 & thing_218X))) { a_223X = ((char *) (-3 + thing_218X)); if ((a_223X < (Sfrom_beginS))) { arg0K0 = next_219X; arg0K1 = frontier_217X; - goto L6441;} + goto L6453;} else { if ((a_223X < (Sfrom_endS))) { h_224X = *((long *) ((((char *) (-3 + thing_218X))) + -4)); if ((3 == (3 & h_224X))) { arg1K0 = h_224X; arg0K1 = frontier_217X; - goto L6482;} + goto L6494;} else { - if ((1074 == h_224X)) { + if ((1078 == h_224X)) { descriptor_225X = *((long *) (((char *) (-3 + thing_218X)))); if ((3 == (3 & descriptor_225X))) { a_226X = ((char *) (-3 + descriptor_225X)); if ((a_226X < (Sfrom_beginS))) { - goto L7062;} + goto L7072;} else { if ((a_226X < (Sfrom_endS))) { new_thing_227X = copy_weak_pointer(thing_218X, frontier_217X, &frontier_228X); arg1K0 = new_thing_227X; arg0K1 = frontier_228X; - goto L6482;} + goto L6494;} else { - goto L7062;}}} + goto L7072;}}} else { - goto L7062;}} + goto L7072;}} else { - goto L7062;}}} + goto L7072;}}} else { arg0K0 = next_219X; arg0K1 = frontier_217X; - goto L6441;}}} + goto L6453;}}} else { arg0K0 = next_219X; arg0K1 = frontier_217X; - goto L6441;}} - L6482: { + goto L6453;}} + L6494: { new_thing_229X = arg1K0; frontier_230X = arg0K1; *((long *) addr_216X) = new_thing_229X; arg0K0 = next_219X; arg0K1 = frontier_230X; - goto L6441;} - L7062: { + goto L6453;} + L7072: { *((long *) frontier_217X) = h_224X; data_addr_231X = frontier_217X + 4; new_232X = 3 + (((long) data_addr_231X)); @@ -1709,28 +1715,31 @@ long s48_trace_locationsB(char * start_214X, char * end_215X) memcpy((void *)data_addr_231X, (void *)(((char *) (-3 + thing_218X))),((long)(((unsigned long)h_224X)>>8))); arg1K0 = new_232X; arg0K1 = (data_addr_231X + (-4 & (3 + ((long)(((unsigned long)h_224X)>>8))))); - goto L6482;} + goto L6494;} } -void s48_do_gc(void) +long s48_do_gc(void) { char * arg0K0; char * end_234X; char * start_233X; { arg0K0 = (Snewspace_beginS); - goto L6697;} - L6697: { + goto L6709;} + L6709: { start_233X = arg0K0; end_234X = s48_ShpS; s48_trace_locationsB(start_233X, end_234X); if (((((((s48_SlimitS) - (s48_ShpS)))>>2)) < 0)) { ps_error("GC error: ran out of space in new heap", 0); - return clean_weak_pointers();} + goto L6732;} else { if ((end_234X < (s48_ShpS))) { arg0K0 = end_234X; - goto L6697;} + goto L6709;} else { - return clean_weak_pointers();}}} + goto L6732;}}} + L6732: { + clean_weak_pointers(); + return 0;} } long s48_trace_stob_contentsB(long stob_235X) { @@ -1773,15 +1782,15 @@ void s48_begin_collection(void) sizes_243X = Simpure_sizesS; count_244X = Simpure_area_countS; arg1K0 = 0; - goto L6812;} + goto L6825;} else { return;}} - L6812: { + L6825: { i_245X = arg1K0; if ((i_245X < count_244X)) { s48_trace_locationsB((*(areas_242X + i_245X)), ((*(areas_242X + i_245X)) + (*(sizes_243X + i_245X)))); arg1K0 = (1 + i_245X); - goto L6812;} + goto L6825;} else { return;}} } @@ -1805,8 +1814,8 @@ long s48_trace_value(long stob_246X) char v_248X; long stob_247X; { arg1K0 = stob_247X; - goto L7253;} - L7253: { + goto L7265;} + L7265: { stob_247X = arg1K0; if ((Swriting_imagePS)) { v_248X = gc_recordP(stob_246X); @@ -1817,16 +1826,16 @@ long s48_trace_value(long stob_246X) if ((1 == (*((long *) ((((char *) (-3 + type_249X))) + 4))))) { note_undumpableB(stob_246X); arg1K0 = (*((long *) ((((char *) (-3 + stob_246X))) + 4))); - goto L7253;} + goto L7265;} else { - goto L6840;}} + goto L6853;}} else { - goto L6840;}} + goto L6853;}} else { - goto L6840;}} + goto L6853;}} else { - goto L6840;}} - L6840: { + goto L6853;}} + L6853: { if ((3 == (3 & stob_246X))) { a_251X = ((char *) (-3 + stob_246X)); if ((a_251X < (Sfrom_beginS))) { @@ -1838,36 +1847,36 @@ long s48_trace_value(long stob_246X) if ((3 == (3 & h_253X))) { arg1K0 = h_253X; arg0K1 = frontier_252X; - goto L6862;} + goto L6875;} else { - if ((1074 == h_253X)) { + if ((1078 == h_253X)) { descriptor_254X = *((long *) (((char *) (-3 + stob_246X)))); if ((3 == (3 & descriptor_254X))) { a_255X = ((char *) (-3 + descriptor_254X)); if ((a_255X < (Sfrom_beginS))) { - goto L4193;} + goto L4205;} else { if ((a_255X < (Sfrom_endS))) { new_thing_256X = copy_weak_pointer(stob_246X, frontier_252X, &new_hp_257X); arg1K0 = new_thing_256X; arg0K1 = new_hp_257X; - goto L6862;} + goto L6875;} else { - goto L4193;}}} + goto L4205;}}} else { - goto L4193;}} + goto L4205;}} else { - goto L4193;}}} + goto L4205;}}} else { return stob_246X;}}} else { return stob_246X;}} - L6862: { + L6875: { new_thing_258X = arg1K0; new_hp_259X = arg0K1; s48_ShpS = new_hp_259X; return new_thing_258X;} - L4193: { + L4205: { *((long *) frontier_252X) = h_253X; data_addr_260X = frontier_252X + 4; new_261X = 3 + (((long) data_addr_260X)); @@ -1875,7 +1884,7 @@ long s48_trace_value(long stob_246X) memcpy((void *)data_addr_260X, (void *)(((char *) (-3 + stob_246X))),((long)(((unsigned long)h_253X)>>8))); arg1K0 = new_261X; arg0K1 = (data_addr_260X + (-4 & (3 + ((long)(((unsigned long)h_253X)>>8))))); - goto L6862;} + goto L6875;} } long s48_write_image(long resume_proc_262X, FILE * port_263X) { @@ -1885,8 +1894,8 @@ long s48_write_image(long resume_proc_262X, FILE * port_263X) char * merged_arg0K0; int abort_collection_return_tag; - int Hproc967264_return_tag; - char Hproc9672640_return_value; + int Hproc983264_return_tag; + char Hproc9832640_return_value; char * start_265X; char * end_266X; long h_320X; @@ -1966,96 +1975,95 @@ long s48_write_image(long resume_proc_262X, FILE * port_263X) exported_bindings_272X = s48_trace_value(v_271X); resume_proc_273X = s48_trace_value(resume_proc_262X); arg0K0 = (Snewspace_beginS); - goto L6983;} - L6983: { + goto L7001;} + L7001: { start_274X = arg0K0; end_275X = s48_ShpS; s48_trace_locationsB(start_274X, end_275X); if (((((((s48_SlimitS) - (s48_ShpS)))>>2)) < 0)) { ps_error("GC error: ran out of space in new heap", 0); - clean_weak_pointers(); - goto L6952;} + goto L6992;} else { if ((end_275X < (s48_ShpS))) { arg0K0 = end_275X; - goto L6983;} + goto L7001;} else { - clean_weak_pointers(); - goto L6952;}}} - L6952: { + goto L6992;}}} + L6992: { + clean_weak_pointers(); s48_mark_traced_channels_closedB(); symbols_276X = s48_copy_symbol_table(); - Sfinding_typeS = 8; + Sfinding_typeS = 9; start_hp_277X = s48_ShpS; *((long *) (s48_ShpS)) = 0; s48_ShpS = ((s48_ShpS) + 4); merged_arg0K0 = (Snewspace_beginS); merged_arg0K1 = start_hp_277X; - Hproc967264_return_tag = 0; - goto Hproc967264; - Hproc967264_return_0: - v_278X = Hproc9672640_return_value; + Hproc983264_return_tag = 0; + goto Hproc983264; + Hproc983264_return_0: + v_278X = Hproc9832640_return_value; if (v_278X) { if ((0 < (Simpure_area_countS))) { areas_279X = Simpure_areasS; sizes_280X = Simpure_sizesS; count_281X = Simpure_area_countS; arg1K0 = 0; - goto L5907;} + goto L5919;} else { - goto L5847;}} + goto L5859;}} else { - goto L5865;}} - L5907: { + goto L5877;}} + L5919: { i_282X = arg1K0; if ((i_282X < count_281X)) { merged_arg0K0 = (*(areas_279X + i_282X)); merged_arg0K1 = ((*(areas_279X + i_282X)) + (*(sizes_280X + i_282X))); - Hproc967264_return_tag = 1; - goto Hproc967264; - Hproc967264_return_1: - v_283X = Hproc9672640_return_value; + Hproc983264_return_tag = 1; + goto Hproc983264; + Hproc983264_return_1: + v_283X = Hproc9832640_return_value; if (v_283X) { arg1K0 = (1 + i_282X); - goto L5907;} + goto L5919;} else { - goto L5865;}} + goto L5877;}} else { - goto L5847;}} - L5847: { + goto L5859;}} + L5859: { if ((0 < (Spure_area_countS))) { areas_284X = Spure_areasS; sizes_285X = Spure_sizesS; count_286X = Spure_area_countS; arg1K0 = 0; - goto L5928;} + goto L5940;} else { - goto L5854;}} - L5865: { + goto L5866;}} + L5877: { s48_ShpS = start_hp_277X; arg1K0 = 1; - goto L7002;} - L5928: { + goto L7016;} + L5940: { i_287X = arg1K0; if ((i_287X < count_286X)) { merged_arg0K0 = (*(areas_284X + i_287X)); merged_arg0K1 = ((*(areas_284X + i_287X)) + (*(sizes_285X + i_287X))); - Hproc967264_return_tag = 2; - goto Hproc967264; - Hproc967264_return_2: - v_288X = Hproc9672640_return_value; + Hproc983264_return_tag = 2; + goto Hproc983264; + Hproc983264_return_2: + v_288X = Hproc9832640_return_value; if (v_288X) { arg1K0 = (1 + i_287X); - goto L5928;} + goto L5940;} else { - goto L5865;}} + goto L5877;}} else { - goto L5854;}} - L5854: { + goto L5866;}} + L5866: { *((long *) start_hp_277X) = (10 + (((((s48_ShpS) - (start_hp_277X + 4)))<<8))); arg1K0 = (3 + (((long) (start_hp_277X + 4)))); - goto L7002;} - L7002: { + goto L7016;} + L7016: { resumer_records_289X = arg1K0; imported_bindings_290X = s48_cleaned_imported_bindings(); if ((1 == resumer_records_289X)) { @@ -2068,175 +2076,175 @@ long s48_write_image(long resume_proc_262X, FILE * port_263X) if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(10, port_263X, v_291X) SstatusS = v_291X; - goto L2019;} + goto L2031;} else { - goto L2019;}}} - L2019: { + goto L2031;}}} + L2031: { if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(12, port_263X, v_292X) SstatusS = v_292X; - goto L2028;} + goto L2040;} else { - goto L2028;}} - L2028: { + goto L2040;}} + L2040: { if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(10, port_263X, v_293X) SstatusS = v_293X; - goto L2037;} + goto L2049;} else { - goto L2037;}} - L2037: { + goto L2049;}} + L2049: { if (((SstatusS) == NO_ERRORS)) { SstatusS = (ps_write_string("Vanilla 20", port_263X)); - goto L2044;} + goto L2056;} else { - goto L2044;}} - L2044: { + goto L2056;}} + L2056: { if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(10, port_263X, v_294X) SstatusS = v_294X; - goto L2053;} + goto L2065;} else { - goto L2053;}} - L2053: { + goto L2065;}} + L2065: { if (((SstatusS) == NO_ERRORS)) { SstatusS = (ps_write_integer(4, port_263X)); - goto L2123;} + goto L2135;} else { - goto L2123;}} - L2123: { + goto L2135;}} + L2135: { if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(10, port_263X, v_295X) SstatusS = v_295X; - goto L2055;} - else { - goto L2055;}} - L2055: { - v_296X = Snewspace_beginS; - if (((SstatusS) == NO_ERRORS)) { - SstatusS = (ps_write_integer(((((((long) v_296X)))>>2)), port_263X)); - goto L2143;} - else { - goto L2143;}} - L2143: { - if (((SstatusS) == NO_ERRORS)) { - PS_WRITE_CHAR(10, port_263X, v_297X) - SstatusS = v_297X; - goto L2061;} - else { - goto L2061;}} - L2061: { - v_298X = s48_ShpS; - if (((SstatusS) == NO_ERRORS)) { - SstatusS = (ps_write_integer(((((((long) v_298X)))>>2)), port_263X)); - goto L2163;} - else { - goto L2163;}} - L2163: { - if (((SstatusS) == NO_ERRORS)) { - PS_WRITE_CHAR(10, port_263X, v_299X) - SstatusS = v_299X; goto L2067;} else { goto L2067;}} L2067: { + v_296X = Snewspace_beginS; if (((SstatusS) == NO_ERRORS)) { - SstatusS = (ps_write_integer(symbols_276X, port_263X)); - goto L2178;} + SstatusS = (ps_write_integer(((((((long) v_296X)))>>2)), port_263X)); + goto L2155;} else { - goto L2178;}} - L2178: { + goto L2155;}} + L2155: { if (((SstatusS) == NO_ERRORS)) { - PS_WRITE_CHAR(10, port_263X, v_300X) - SstatusS = v_300X; - goto L2069;} - else { - goto L2069;}} - L2069: { - if (((SstatusS) == NO_ERRORS)) { - SstatusS = (ps_write_integer(imported_bindings_290X, port_263X)); - goto L2193;} - else { - goto L2193;}} - L2193: { - if (((SstatusS) == NO_ERRORS)) { - PS_WRITE_CHAR(10, port_263X, v_301X) - SstatusS = v_301X; - goto L2071;} - else { - goto L2071;}} - L2071: { - if (((SstatusS) == NO_ERRORS)) { - SstatusS = (ps_write_integer(exported_bindings_272X, port_263X)); - goto L2208;} - else { - goto L2208;}} - L2208: { - if (((SstatusS) == NO_ERRORS)) { - PS_WRITE_CHAR(10, port_263X, v_302X) - SstatusS = v_302X; + PS_WRITE_CHAR(10, port_263X, v_297X) + SstatusS = v_297X; goto L2073;} else { goto L2073;}} L2073: { + v_298X = s48_ShpS; + if (((SstatusS) == NO_ERRORS)) { + SstatusS = (ps_write_integer(((((((long) v_298X)))>>2)), port_263X)); + goto L2175;} + else { + goto L2175;}} + L2175: { + if (((SstatusS) == NO_ERRORS)) { + PS_WRITE_CHAR(10, port_263X, v_299X) + SstatusS = v_299X; + goto L2079;} + else { + goto L2079;}} + L2079: { + if (((SstatusS) == NO_ERRORS)) { + SstatusS = (ps_write_integer(symbols_276X, port_263X)); + goto L2190;} + else { + goto L2190;}} + L2190: { + if (((SstatusS) == NO_ERRORS)) { + PS_WRITE_CHAR(10, port_263X, v_300X) + SstatusS = v_300X; + goto L2081;} + else { + goto L2081;}} + L2081: { + if (((SstatusS) == NO_ERRORS)) { + SstatusS = (ps_write_integer(imported_bindings_290X, port_263X)); + goto L2205;} + else { + goto L2205;}} + L2205: { + if (((SstatusS) == NO_ERRORS)) { + PS_WRITE_CHAR(10, port_263X, v_301X) + SstatusS = v_301X; + goto L2083;} + else { + goto L2083;}} + L2083: { + if (((SstatusS) == NO_ERRORS)) { + SstatusS = (ps_write_integer(exported_bindings_272X, port_263X)); + goto L2220;} + else { + goto L2220;}} + L2220: { + if (((SstatusS) == NO_ERRORS)) { + PS_WRITE_CHAR(10, port_263X, v_302X) + SstatusS = v_302X; + goto L2085;} + else { + goto L2085;}} + L2085: { if (((SstatusS) == NO_ERRORS)) { SstatusS = (ps_write_integer(resumer_records_289X, port_263X)); - goto L2223;} + goto L2235;} else { - goto L2223;}} - L2223: { + goto L2235;}} + L2235: { if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(10, port_263X, v_303X) SstatusS = v_303X; - goto L2075;} + goto L2087;} else { - goto L2075;}} - L2075: { + goto L2087;}} + L2087: { if (((SstatusS) == NO_ERRORS)) { SstatusS = (ps_write_integer(resume_proc_273X, port_263X)); - goto L2238;} + goto L2250;} else { - goto L2238;}} - L2238: { + goto L2250;}} + L2250: { if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(10, port_263X, v_304X) SstatusS = v_304X; - goto L2077;} + goto L2089;} else { - goto L2077;}} - L2077: { + goto L2089;}} + L2089: { if (((SstatusS) == NO_ERRORS)) { PS_WRITE_CHAR(12, port_263X, v_305X) SstatusS = v_305X; - goto L2086;} + goto L2098;} else { - goto L2086;}} - L2086: { + goto L2098;}} + L2098: { *((long *) (s48_ShpS)) = 1; if (((SstatusS) == NO_ERRORS)) { SstatusS = (ps_write_block(port_263X, ((char *) (s48_ShpS)), (((s48_ShpS) + 4) - (s48_ShpS)))); - goto L2105;} + goto L2117;} else { - goto L2105;}} - L2105: { + goto L2117;}} + L2117: { if (((SstatusS) == NO_ERRORS)) { SstatusS = (ps_write_block(port_263X, ((char *) (Snewspace_beginS)), ((s48_ShpS) - (Snewspace_beginS)))); - goto L2118;} + goto L2130;} else { - goto L2118;}} - L2118: { + goto L2130;}} + L2130: { status_306X = SstatusS; abort_collection_return_tag = 1; goto abort_collection; abort_collection_return_1: return status_306X;} - Hproc967264: { + Hproc983264: { start_265X = merged_arg0K0; end_266X = merged_arg0K1;{ type_307X = Sfinding_typeS; arg0K0 = start_265X; - goto L4852;} - L4852: { + goto L4864;} + L4864: { addr_308X = arg0K0; if ((addr_308X < end_266X)) { d_309X = *((long *) addr_308X); @@ -2246,40 +2254,40 @@ long s48_write_image(long resume_proc_262X, FILE * port_263X) obj_311X = 3 + (((long) (addr_308X + 4))); type_312X = *((long *) (((char *) (-3 + obj_311X)))); if ((3 == (3 & type_312X))) { - if ((8 == (31 & ((((*((long *) ((((char *) (-3 + type_312X))) + -4))))>>2))))) { + if ((9 == (31 & ((((*((long *) ((((char *) (-3 + type_312X))) + -4))))>>2))))) { if ((3 == (3 & (*((long *) ((((char *) (-3 + type_312X))) + 4)))))) { if ((((s48_ShpS) + 16) < (s48_SlimitS))) { *((long *) (s48_ShpS)) = obj_311X; s48_ShpS = ((s48_ShpS) + 4); arg0K0 = next_310X; - goto L4852;} + goto L4864;} else { - Hproc9672640_return_value = 0; - goto Hproc967264_return;}} + Hproc9832640_return_value = 0; + goto Hproc983264_return;}} else { arg0K0 = next_310X; - goto L4852;}} + goto L4864;}} else { arg0K0 = next_310X; - goto L4852;}} + goto L4864;}} else { arg0K0 = next_310X; - goto L4852;}} + goto L4864;}} else { arg0K0 = next_310X; - goto L4852;}} + goto L4864;}} else { ps_write_string("heap is in an inconsistent state.", (stderr)); - Hproc9672640_return_value = 0; - goto Hproc967264_return;}} + Hproc9832640_return_value = 0; + goto Hproc983264_return;}} else { - Hproc9672640_return_value = 1; - goto Hproc967264_return;}} - Hproc967264_return: - switch (Hproc967264_return_tag) { - case 0: goto Hproc967264_return_0; - case 1: goto Hproc967264_return_1; - default: goto Hproc967264_return_2; + Hproc9832640_return_value = 1; + goto Hproc983264_return;}} + Hproc983264_return: + switch (Hproc983264_return_tag) { + case 0: goto Hproc983264_return_0; + case 1: goto Hproc983264_return_1; + default: goto Hproc983264_return_2; }} abort_collection: { @@ -2296,25 +2304,25 @@ long s48_write_image(long resume_proc_262X, FILE * port_263X) Snewspace_endS = (Soldspace_endS); Soldspace_endS = temp_316X; arg0K0 = (Snewspace_beginS); - goto L4085;} - L4085: { + goto L4097;} + L4097: { addr_317X = arg0K0; if ((addr_317X < (s48_ShpS))) { d_318X = *((long *) addr_317X); if ((2 == (3 & d_318X))) { arg1K0 = d_318X; - goto L4106;} + goto L4118;} else { h_319X = *((long *) ((((char *) (-3 + d_318X))) + -4)); *((long *) addr_317X) = h_319X; arg1K0 = h_319X; - goto L4106;}} + goto L4118;}} else { goto abort_collection_return;}} - L4106: { + L4118: { h_320X = arg1K0; arg0K0 = (addr_317X + (4 + (-4 & (3 + ((long)(((unsigned long)h_320X)>>8)))))); - goto L4085;} + goto L4097;} abort_collection_return: switch (abort_collection_return_tag) { case 0: goto abort_collection_return_0; @@ -2353,5 +2361,5 @@ Sgc_countS = 0; SstatusS = NO_ERRORS; SeofPS = 0; SinitializingPS = 1; -Hthe_record_type9260 = 1; +Hthe_record_type9400 = 1; } diff --git a/c/scheme48heap.h b/c/scheme48heap.h new file mode 100644 index 0000000..7072653 --- /dev/null +++ b/c/scheme48heap.h @@ -0,0 +1,53 @@ +/* + * Externally visible objects defined in scheme48heap.c. + */ + +/* initialize top-level variables */ +extern void s48_heap_init(void); + +/* heap-init interface */ +extern void s48_initialize_heap(long, long); +extern void s48_register_static_areas(unsigned char, long *, long *, + unsigned char, long *, long *); + +/* heap interface */ +extern long s48_available(void); +extern long s48_heap_size(void); +extern long s48_find_all(long); +extern long s48_find_all_records(long); +extern char *s48_ShpS; +extern char *s48_SlimitS; + +/* gc interface */ +extern void s48_begin_collection(void); +extern long s48_trace_value(long); +extern long s48_trace_locationsB(char *, char *); +extern long s48_trace_stob_contentsB(long); +extern void s48_do_gc(void); +extern void s48_end_collection(void); +extern char s48_extantP(long); +extern long s48_gc_count(void); + +/* allocation interface */ +extern char s48_availableP(long); +extern long s48_preallocate_space(long); +extern char *s48_allocate_space(long, long, long); +extern void s48_write_barrier(long, char *, long); + +/* images interface */ +extern char s48_image_writing_okayP(void); +extern long s48_write_image(long, FILE *); +extern long s48_check_image_header(unsigned char *); +extern long s48_read_image(); + +extern long s48_startup_procedure(void); +extern long s48_initial_symbols(void); +extern long s48_initial_imported_bindings(void); +extern long s48_initial_exported_bindings(void); +extern long s48_resumer_records(void); +extern long s48_undumpable_records(long *); + +extern void s48_initialization_completeB(void); +extern void s48_initializing_gc_root(void); + +extern void s48_set_image_valuesB(long, long, long, long); diff --git a/c/scheme48vm.c b/c/scheme48vm.c index bf7c338..8289be5 100644 --- a/c/scheme48vm.c +++ b/c/scheme48vm.c @@ -3,25 +3,25 @@ #include "scheme48vm-prelude.h" static char add_more_channels(long); -static void enqueue_channelB(long, long); +static void enqueue_input_channelB(long, long); +static void enqueue_output_channelB(long, long); static long close_channelB(long); static void push_continuationB(char *, long); static long enter_string(char*, long); -static char HcleanerB2160(long); +static char HcleanerB2200(long); static void push_exception_continuationB(long, long); static long make_registered_channel(long, long, long, long, long*); static long channel_close_error(long, long, long); -static void HtopD8861(void); -static long Hlookup2102(long, long, long); -static long Hlookup2083(long, long, long); -static void HtopD8854(void); +static void HtopD9001(void); +static long Hlookup2142(long, long, long); +static long Hlookup2123(long, long, long); +static void HtopD8994(void); static long collect_saving_temps(long, long, long*); void s48_set_extension_valueB(long); void s48_note_event(void); -void s48_set_os_signal(long, long); long s48_exported_bindings(void); -char * s48_set_gc_roots_baseB(void); -char s48_release_gc_roots_baseB(char *); +char * s48_set_gc_roots_baseB(char **); +char s48_release_gc_roots_baseB(char *, char *); void s48_disable_interruptsB(void); void s48_push_gc_rootsB(char *, long); void s48_register_gc_rootB(char *); @@ -29,9 +29,10 @@ void s48_stack_setB(long, long); long s48_stack_ref(long); void s48_push(long); long s48_resetup_external_exception(long, long); -void s48_enable_interruptsB(void); char s48_pop_gc_rootsB(void); +void s48_enable_interruptsB(void); void s48_mark_traced_channels_closedB(void); +void s48_set_os_signals(long); long s48_set_channel_os_index(long, long); long s48_cleaned_imported_bindings(void); long s48_copy_symbol_table(void); @@ -45,10 +46,13 @@ long s48_allocate_stob(long, long); void s48_initialize_vm(char *, long); long s48_restart(long, long); long s48_call_startup_procedure(char**, long); +static long Spending_interruptsS; static long Snumber_of_channelsS; static long *Svm_channelsS; -static long Spending_channels_headS; -static long Spending_channels_tailS; +static long Spending_input_channels_headS; +static long Spending_input_channels_tailS; +static long Spending_output_channels_headS; +static long Spending_output_channels_tailS; static char * Sstack_beginS; static char * Sstack_endS; static char * SstackS; @@ -67,14 +71,12 @@ static long Ssession_dataS; static long Sfinalizer_alistS; static long Sfinalize_theseS; static long Senabled_interruptsS; -static long Spending_interruptsS; static long Sinterrupted_templateS; static long Sinterrupt_templateS; static long Sexception_templateS; static long Ssaved_pcS; static long Slosing_opcodeS; -static long Sos_signal_typeS; -static long Sos_signal_argumentS; +static long Sos_signal_listS; static char Sexternal_exceptionPS; static long Sexternal_exception_nargsS; static long Simported_bindingsS; @@ -103,28 +105,28 @@ static char add_more_channels(long index_5X) y_7X = 8 + (Snumber_of_channelsS); if ((x_6X < y_7X)) { arg0K0 = y_7X; - goto L2366;} + goto L2398;} else { arg0K0 = x_6X; - goto L2366;}} - L2366: { + goto L2398;}} + L2398: { new_count_8X = arg0K0; new_vm_channels_9X = (long*)malloc(sizeof(long) * new_count_8X); if ((NULL == new_vm_channels_9X)) { return 0;} else { arg0K0 = 0; - goto L2378;}} - L2378: { + goto L2410;}} + L2410: { i_10X = arg0K0; if ((i_10X == (Snumber_of_channelsS))) { arg0K0 = (Snumber_of_channelsS); - goto L2393;} + goto L2425;} else { *(new_vm_channels_9X + i_10X) = (*((Svm_channelsS) + i_10X)); arg0K0 = (1 + i_10X); - goto L2378;}} - L2393: { + goto L2410;}} + L2425: { i_11X = arg0K0; if ((i_11X == new_count_8X)) { free((Svm_channelsS)); @@ -134,9 +136,9 @@ static char add_more_channels(long index_5X) else { *(new_vm_channels_9X + i_11X) = 1; arg0K0 = (1 + i_11X); - goto L2393;}} + goto L2425;}} } -static void enqueue_channelB(long index_12X, long status_13X) +static void enqueue_input_channelB(long index_12X, long status_13X) { char * addr_18X; long x_17X; @@ -149,732 +151,775 @@ static void enqueue_channelB(long index_12X, long status_13X) S48_WRITE_BARRIER(channel_14X, addr_16X, val_15X); *((long *) addr_16X) = val_15X; if ((1 == (*((long *) ((((char *) (-3 + channel_14X))) + 12))))) { - if ((1 == (Spending_channels_headS))) { - Spending_channels_headS = channel_14X; - Spending_channels_tailS = channel_14X; + if ((1 == (Spending_input_channels_headS))) { + Spending_input_channels_headS = channel_14X; + Spending_input_channels_tailS = channel_14X; return;} else { - x_17X = Spending_channels_tailS; + x_17X = Spending_input_channels_tailS; addr_18X = (((char *) (-3 + x_17X))) + 12; S48_WRITE_BARRIER(x_17X, addr_18X, channel_14X); *((long *) addr_18X) = channel_14X; - Spending_channels_tailS = channel_14X; + Spending_input_channels_tailS = channel_14X; return;}} else { return;}} } -static long close_channelB(long channel_19X) +static void enqueue_output_channelB(long index_19X, long status_20X) +{ + char * addr_25X; + long x_24X; + char * addr_23X; + long val_22X; + long channel_21X; + { channel_21X = *((Svm_channelsS) + index_19X); + val_22X = ((status_20X)<<2); + addr_23X = (((char *) (-3 + channel_21X))) + 16; + S48_WRITE_BARRIER(channel_21X, addr_23X, val_22X); + *((long *) addr_23X) = val_22X; + if ((1 == (*((long *) ((((char *) (-3 + channel_21X))) + 12))))) { + if ((1 == (Spending_output_channels_headS))) { + Spending_output_channels_headS = channel_21X; + Spending_output_channels_tailS = channel_21X; + return;} + else { + x_24X = Spending_output_channels_tailS; + addr_25X = (((char *) (-3 + x_24X))) + 12; + S48_WRITE_BARRIER(x_24X, addr_25X, channel_21X); + *((long *) addr_25X) = channel_21X; + Spending_output_channels_tailS = channel_21X; + return;}} + else { + return;}} +} +static long close_channelB(long channel_26X) { long arg0K0; - char * addr_27X; - long status_26X; - long v_25X; - long v_24X; - long v_23X; - long v_22X; - long x_21X; - long os_index_20X; - { os_index_20X = (((*((long *) ((((char *) (-3 + channel_19X))) + 8))))>>2); - x_21X = *((long *) ((((char *) (-3 + channel_19X))) + 16)); - if ((5 == x_21X)) { - v_22X = ps_abort_fd_op(os_index_20X); - enqueue_channelB(os_index_20X, v_22X); - goto L7996;} - else { - goto L7996;}} - L7996: { - v_23X = *((long *) (((char *) (-3 + channel_19X)))); - if ((4 == v_23X)) { - goto L8011;} - else { - if ((12 == (*((long *) (((char *) (-3 + channel_19X))))))) { - goto L8011;} + char * addr_36X; + long status_35X; + long v_34X; + long v_33X; + long v_32X; + long v_31X; + long v_30X; + long v_29X; + long x_28X; + long os_index_27X; + { os_index_27X = (((*((long *) ((((char *) (-3 + channel_26X))) + 8))))>>2); + x_28X = *((long *) ((((char *) (-3 + channel_26X))) + 16)); + if ((5 == x_28X)) { + v_29X = *((long *) (((char *) (-3 + channel_26X)))); + if ((4 == v_29X)) { + goto L8295;} else { - v_24X = ps_close_fd(os_index_20X); - arg0K0 = v_24X; - goto L8018;}}} - L8011: { - v_25X = ps_close_fd(os_index_20X); - arg0K0 = v_25X; - goto L8018;} - L8018: { - status_26X = arg0K0; - *((Svm_channelsS) + os_index_20X) = 1; - addr_27X = ((char *) (-3 + channel_19X)); - S48_WRITE_BARRIER(channel_19X, addr_27X, 0); - *((long *) addr_27X) = 0; - return status_26X;} + if ((12 == (*((long *) (((char *) (-3 + channel_26X))))))) { + goto L8295;} + else { + v_30X = ps_abort_fd_op(os_index_27X); + enqueue_output_channelB(os_index_27X, v_30X); + goto L8307;}}} + else { + goto L8307;}} + L8295: { + v_31X = ps_abort_fd_op(os_index_27X); + enqueue_input_channelB(os_index_27X, v_31X); + goto L8307;} + L8307: { + v_32X = *((long *) (((char *) (-3 + channel_26X)))); + if ((4 == v_32X)) { + goto L8322;} + else { + if ((12 == (*((long *) (((char *) (-3 + channel_26X))))))) { + goto L8322;} + else { + v_33X = ps_close_fd(os_index_27X); + arg0K0 = v_33X; + goto L8329;}}} + L8322: { + v_34X = ps_close_fd(os_index_27X); + arg0K0 = v_34X; + goto L8329;} + L8329: { + status_35X = arg0K0; + *((Svm_channelsS) + os_index_27X) = 1; + addr_36X = ((char *) (-3 + channel_26X)); + S48_WRITE_BARRIER(channel_26X, addr_36X, 0); + *((long *) addr_36X) = 0; + return status_35X;} } -static void push_continuationB(char * code_pointer_28X, long size_29X) +static void push_continuationB(char * code_pointer_37X, long size_38X) { - long cont_32X; - long template_31X; - long pc_30X; - { pc_30X = (((code_pointer_28X - (((char *) (-3 + (*((long *) (((char *) (-3 + (StemplateS)))))))))))<<2); - template_31X = StemplateS; + long cont_41X; + long template_40X; + long pc_39X; + { pc_39X = (((code_pointer_37X - (((char *) (-3 + (*((long *) (((char *) (-3 + (StemplateS)))))))))))<<2); + template_40X = StemplateS; SstackS = ((SstackS) + -20); - *((long *) ((SstackS) + 4)) = (128 | (4134 + (((size_29X)<<10)))); - cont_32X = 3 + (((long) ((SstackS) + 8))); - *((long *) ((((char *) (-3 + cont_32X))) + 4)) = pc_30X; - *((long *) ((((char *) (-3 + cont_32X))) + 8)) = template_31X; - *((long *) ((((char *) (-3 + cont_32X))) + 12)) = (SenvS); - *((long *) (((char *) (-3 + cont_32X)))) = (ScontS); - ScontS = cont_32X; + *((long *) ((SstackS) + 4)) = (128 | (4138 + (((size_38X)<<10)))); + cont_41X = 3 + (((long) ((SstackS) + 8))); + *((long *) ((((char *) (-3 + cont_41X))) + 4)) = pc_39X; + *((long *) ((((char *) (-3 + cont_41X))) + 8)) = template_40X; + *((long *) ((((char *) (-3 + cont_41X))) + 12)) = (SenvS); + *((long *) (((char *) (-3 + cont_41X)))) = (ScontS); + ScontS = cont_41X; return;} } -static long enter_string(char *string_33X, long key_34X) +static long enter_string(char *string_42X, long key_43X) { long arg0K0; - long i_39X; - long string_38X; - char * addr_37X; - long len_36X; - long z_35X; - { z_35X = strlen((char *) string_33X); - len_36X = 1 + z_35X; - addr_37X = ALLOCATE_SPACE(16, (4 + len_36X)); - *((long *) addr_37X) = (66 + (((len_36X)<<8))); - string_38X = 3 + (((long) (addr_37X + 4))); - *((unsigned char *) ((((char *) (-3 + string_38X))) + z_35X)) = 0; + long i_48X; + long string_47X; + char * addr_46X; + long len_45X; + long z_44X; + { z_44X = strlen((char *) string_42X); + len_45X = 1 + z_44X; + addr_46X = ALLOCATE_SPACE(17, (4 + len_45X)); + *((long *) addr_46X) = (70 + (((len_45X)<<8))); + string_47X = 3 + (((long) (addr_46X + 4))); + *((unsigned char *) ((((char *) (-3 + string_47X))) + z_44X)) = 0; arg0K0 = 0; - goto L9526;} - L9526: { - i_39X = arg0K0; - if ((i_39X < z_35X)) { - *((unsigned char *) ((((char *) (-3 + string_38X))) + i_39X)) = ((*(string_33X + i_39X))); - arg0K0 = (1 + i_39X); - goto L9526;} + goto L10165;} + L10165: { + i_48X = arg0K0; + if ((i_48X < z_44X)) { + *((unsigned char *) ((((char *) (-3 + string_47X))) + i_48X)) = ((*(string_42X + i_48X))); + arg0K0 = (1 + i_48X); + goto L10165;} else { - return string_38X;}} + return string_47X;}} } -static char HcleanerB2160(long table_40X) +static char HcleanerB2200(long table_49X) { long arg0K1; long arg0K0; - long v_51X; - char * addr_50X; - long new_foo_49X; - char v_48X; - char * addr_47X; - long okay_46X; - long foo_45X; - long foo_44X; - char temp_43X; - long i_42X; - long table_41X; - { table_41X = s48_trace_value(table_40X); + long v_60X; + char * addr_59X; + long new_foo_58X; + char v_57X; + char * addr_56X; + long okay_55X; + long foo_54X; + long foo_53X; + char temp_52X; + long i_51X; + long table_50X; + { table_50X = s48_trace_value(table_49X); arg0K0 = 0; - goto L9716;} - L9716: { - i_42X = arg0K0; - temp_43X = 1024 == i_42X; - if (temp_43X) { - return temp_43X;} + goto L10355;} + L10355: { + i_51X = arg0K0; + temp_52X = 1024 == i_51X; + if (temp_52X) { + return temp_52X;} else { - foo_44X = *((long *) ((((char *) (-3 + table_41X))) + (((i_42X)<<2)))); - arg0K0 = foo_44X; + foo_53X = *((long *) ((((char *) (-3 + table_50X))) + (((i_51X)<<2)))); + arg0K0 = foo_53X; arg0K1 = 1; - goto L9736;}} - L9736: { - foo_45X = arg0K0; - okay_46X = arg0K1; - if ((1 == foo_45X)) { - addr_47X = (((char *) (-3 + table_41X))) + (((i_42X)<<2)); - S48_WRITE_BARRIER(table_41X, addr_47X, okay_46X); - *((long *) addr_47X) = okay_46X; - arg0K0 = (1 + i_42X); - goto L9716;} + goto L10375;}} + L10375: { + foo_54X = arg0K0; + okay_55X = arg0K1; + if ((1 == foo_54X)) { + addr_56X = (((char *) (-3 + table_50X))) + (((i_51X)<<2)); + S48_WRITE_BARRIER(table_50X, addr_56X, okay_55X); + *((long *) addr_56X) = okay_55X; + arg0K0 = (1 + i_51X); + goto L10355;} else { - v_48X = s48_extantP(foo_45X); - if (v_48X) { - new_foo_49X = s48_trace_value(foo_45X); - addr_50X = (((char *) (-3 + new_foo_49X))) + 4; - S48_WRITE_BARRIER(new_foo_49X, addr_50X, okay_46X); - *((long *) addr_50X) = okay_46X; - arg0K0 = new_foo_49X; - goto L9741;} + v_57X = s48_extantP(foo_54X); + if (v_57X) { + new_foo_58X = s48_trace_value(foo_54X); + addr_59X = (((char *) (-3 + new_foo_58X))) + 4; + S48_WRITE_BARRIER(new_foo_58X, addr_59X, okay_55X); + *((long *) addr_59X) = okay_55X; + arg0K0 = new_foo_58X; + goto L10380;} else { - arg0K0 = okay_46X; - goto L9741;}}} - L9741: { - v_51X = arg0K0; - arg0K0 = (*((long *) ((((char *) (-3 + foo_45X))) + 4))); - arg0K1 = v_51X; - goto L9736;} + arg0K0 = okay_55X; + goto L10380;}}} + L10380: { + v_60X = arg0K0; + arg0K0 = (*((long *) ((((char *) (-3 + foo_54X))) + 4))); + arg0K1 = v_60X; + goto L10375;} } -static void push_exception_continuationB(long exception_52X, long instruction_size_53X) +static void push_exception_continuationB(long exception_61X, long instruction_size_62X) { char * arg1K0; long arg0K1; long arg0K0; - long v_58X; - long i_57X; - char * p_56X; - long tem_55X; - long opcode_54X; - { opcode_54X = *((unsigned char *) (Scode_pointerS)); - *((long *) (SstackS)) = (((instruction_size_53X)<<2)); + long v_67X; + long i_66X; + char * p_65X; + long tem_64X; + long opcode_63X; + { opcode_63X = *((unsigned char *) (Scode_pointerS)); + *((long *) (SstackS)) = (((instruction_size_62X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((exception_52X)<<2)); + *((long *) (SstackS)) = (((exception_61X)<<2)); SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (StemplateS); SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (((((Scode_pointerS) - (((char *) (-3 + (*((long *) (((char *) (-3 + (StemplateS)))))))))))<<2)); SstackS = ((SstackS) + -4); - tem_55X = Sexception_templateS; - StemplateS = tem_55X; - Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_55X)))))))); + tem_64X = Sexception_templateS; + StemplateS = tem_64X; + Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_64X)))))))); arg1K0 = ((SstackS) + 4); arg0K1 = 0; - goto L9949;} - L9949: { - p_56X = arg1K0; - i_57X = arg0K1; - if ((2 == (3 & (*((long *) p_56X))))) { - if ((22 == (*((long *) p_56X)))) { - arg0K0 = (-1 + i_57X); - goto L9890;} + goto L10589;} + L10589: { + p_65X = arg1K0; + i_66X = arg0K1; + if ((2 == (3 & (*((long *) p_65X))))) { + if ((26 == (*((long *) p_65X)))) { + arg0K0 = (-1 + i_66X); + goto L10530;} else { - arg0K0 = i_57X; - goto L9890;}} + arg0K0 = i_66X; + goto L10530;}} else { - arg1K0 = (p_56X + 4); - arg0K1 = (1 + i_57X); - goto L9949;}} - L9890: { - v_58X = arg0K0; - push_continuationB((Scode_pointerS), v_58X); - *((long *) (SstackS)) = (((opcode_54X)<<2)); + arg1K0 = (p_65X + 4); + arg0K1 = (1 + i_66X); + goto L10589;}} + L10530: { + v_67X = arg0K0; + push_continuationB((Scode_pointerS), v_67X); + *((long *) (SstackS)) = (((opcode_63X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((exception_52X)<<2)); + *((long *) (SstackS)) = (((exception_61X)<<2)); SstackS = ((SstackS) + -4); return;} } -static long make_registered_channel(long mode_59X, long id_60X, long os_index_61X, long key_62X, long *TT0) +static long make_registered_channel(long mode_68X, long id_69X, long os_index_70X, long key_71X, long *TT0) { - long x_66X; - char * addr_65X; - char x_64X; - char temp_63X; - { temp_63X = os_index_61X < (Snumber_of_channelsS); - if (temp_63X) { - goto L10816;} + long x_75X; + char * addr_74X; + char x_73X; + char temp_72X; + { temp_72X = os_index_70X < (Snumber_of_channelsS); + if (temp_72X) { + goto L11458;} else { - x_64X = add_more_channels(os_index_61X); - if (x_64X) { - goto L10816;} + x_73X = add_more_channels(os_index_70X); + if (x_73X) { + goto L11458;} else { *TT0 = 9; return 1;}}} - L10816: { - if ((1 == (*((Svm_channelsS) + os_index_61X)))) { - addr_65X = ALLOCATE_SPACE(5, 24); - *((long *) addr_65X) = 5142; - x_66X = 3 + (((long) (addr_65X + 4))); - *((long *) (((char *) (-3 + x_66X)))) = (((mode_59X)<<2)); - *((long *) ((((char *) (-3 + x_66X))) + 4)) = id_60X; - *((long *) ((((char *) (-3 + x_66X))) + 8)) = (((os_index_61X)<<2)); - *((long *) ((((char *) (-3 + x_66X))) + 12)) = 1; - *((long *) ((((char *) (-3 + x_66X))) + 16)) = 1; - *((Svm_channelsS) + os_index_61X) = x_66X; + L11458: { + if ((1 == (*((Svm_channelsS) + os_index_70X)))) { + addr_74X = ALLOCATE_SPACE(6, 24); + *((long *) addr_74X) = 5146; + x_75X = 3 + (((long) (addr_74X + 4))); + *((long *) (((char *) (-3 + x_75X)))) = (((mode_68X)<<2)); + *((long *) ((((char *) (-3 + x_75X))) + 4)) = id_69X; + *((long *) ((((char *) (-3 + x_75X))) + 8)) = (((os_index_70X)<<2)); + *((long *) ((((char *) (-3 + x_75X))) + 12)) = 1; + *((long *) ((((char *) (-3 + x_75X))) + 16)) = 1; + *((Svm_channelsS) + os_index_70X) = x_75X; *TT0 = 9; - return x_66X;} + return x_75X;} else { *TT0 = 11; return 1;}} } -static long channel_close_error(long status_67X, long index_68X, long id_69X) +static long channel_close_error(long status_76X, long index_77X, long id_78X) { - long v_70X; + long v_79X; { ps_write_string("Error: ", (stderr)); - ps_write_string((ps_error_string(status_67X)), (stderr)); + ps_write_string((ps_error_string(status_76X)), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } ps_write_string(" while closing port ", (stderr)); - if ((3 == (3 & id_69X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + id_69X))) + -4))))>>2))))) { - ps_write_string((((char *)(((char *) (-3 + id_69X))))), (stderr)); - goto L11462;} + if ((3 == (3 & id_78X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + id_78X))) + -4))))>>2))))) { + ps_write_string((((char *)(((char *) (-3 + id_78X))))), (stderr)); + goto L12104;} else { - goto L11456;}} + goto L12098;}} else { - goto L11456;}} - L11462: { - PS_WRITE_CHAR(10, (stderr), v_70X) - return v_70X;} - L11456: { - ps_write_integer((((index_68X)>>2)), (stderr)); - goto L11462;} + goto L12098;}} + L12104: { + PS_WRITE_CHAR(10, (stderr), v_79X) + return v_79X;} + L12098: { + ps_write_integer((((index_77X)>>2)), (stderr)); + goto L12104;} } -static void HtopD8861(void) +static void HtopD9001(void) { char * arg1K0; long arg0K1; long arg0K0; - long env_113X; - long env_112X; - long last_env_111X; - long cont_110X; - long env_109X; - long v_108X; - long env_107X; - long p_106X; - long arg_count_105X; - long i_104X; - char * p_103X; - char * addr_102X; - long val_101X; - long unused_100X; - char * a_99X; - char x_98X; - long pair_97X; - long v_96X; + long env_123X; + long env_122X; + long last_env_121X; + long cont_120X; + long env_119X; + long v_118X; + long env_117X; + long p_116X; + long arg_count_115X; + long i_114X; + char * p_113X; + char * addr_112X; + long val_111X; + long unused_110X; + char * a_109X; + char x_108X; + long pair_107X; + long v_106X; + long v_105X; + long v_104X; + long v_103X; + long env_102X; + long alist_101X; + long x2_100X; + char * cell_99X; + long i_98X; + long x2_97X; + char * cell_96X; long v_95X; - long env_94X; - long alist_93X; - long x2_92X; - char * cell_91X; - long i_90X; - long x2_89X; - char * cell_88X; + long v_94X; + long v_93X; + long v_92X; + long v_91X; + long v_90X; + long v_89X; + long v_88X; long v_87X; long v_86X; long v_85X; long v_84X; long v_83X; - long v_82X; - long v_81X; - long v_80X; - long v_79X; - long v_78X; - long v_77X; - long v_76X; - long v_75X; - long v_74X; - char * frame_73X; - long length_72X; - char * frame_71X; + char * frame_82X; + long length_81X; + char * frame_80X; { arg1K0 = (Sexternal_root_stackS); - goto L6255;} - L6255: { - frame_71X = arg1K0; - if ((frame_71X == NULL)) { + goto L6478;} + L6478: { + frame_80X = arg1K0; + if ((frame_80X == NULL)) { arg1K0 = (Spermanent_external_rootsS); - goto L6281;} + goto L6504;} else { - length_72X = *((long *) frame_71X); + length_81X = *((long *) frame_80X); arg0K0 = 0; - goto L6263;}} - L6281: { - frame_73X = arg1K0; - if ((frame_73X == NULL)) { + goto L6486;}} + L6504: { + frame_82X = arg1K0; + if ((frame_82X == NULL)) { s48_initializing_gc_root(); - v_74X = s48_trace_value((Simported_bindingsS)); - Simported_bindingsS = v_74X; - v_75X = s48_trace_value((Sexported_bindingsS)); - Sexported_bindingsS = v_75X; + v_83X = s48_trace_value((Simported_bindingsS)); + Simported_bindingsS = v_83X; + v_84X = s48_trace_value((Sexported_bindingsS)); + Sexported_bindingsS = v_84X; Ssaved_pcS = (((((Scode_pointerS) - (((char *) (-3 + (*((long *) (((char *) (-3 + (StemplateS)))))))))))<<2)); - v_76X = s48_trace_value((StemplateS)); - StemplateS = v_76X; - v_77X = s48_trace_value((SvalS)); - SvalS = v_77X; - v_78X = s48_trace_value((Scurrent_threadS)); - Scurrent_threadS = v_78X; - v_79X = s48_trace_value((Ssession_dataS)); - Ssession_dataS = v_79X; - v_80X = s48_trace_value((Sexception_handlersS)); - Sexception_handlersS = v_80X; - v_81X = s48_trace_value((Sexception_templateS)); - Sexception_templateS = v_81X; - v_82X = s48_trace_value((Sinterrupt_handlersS)); - Sinterrupt_handlersS = v_82X; - v_83X = s48_trace_value((Sinterrupt_templateS)); - Sinterrupt_templateS = v_83X; - v_84X = s48_trace_value((Sinterrupted_templateS)); - Sinterrupted_templateS = v_84X; - v_85X = s48_trace_value((Sfinalize_theseS)); - Sfinalize_theseS = v_85X; - v_86X = s48_trace_value((Sos_signal_typeS)); - Sos_signal_typeS = v_86X; - v_87X = s48_trace_value((Sos_signal_argumentS)); - Sos_signal_argumentS = v_87X; + v_85X = s48_trace_value((StemplateS)); + StemplateS = v_85X; + v_86X = s48_trace_value((SvalS)); + SvalS = v_86X; + v_87X = s48_trace_value((Scurrent_threadS)); + Scurrent_threadS = v_87X; + v_88X = s48_trace_value((Ssession_dataS)); + Ssession_dataS = v_88X; + v_89X = s48_trace_value((Sexception_handlersS)); + Sexception_handlersS = v_89X; + v_90X = s48_trace_value((Sexception_templateS)); + Sexception_templateS = v_90X; + v_91X = s48_trace_value((Sinterrupt_handlersS)); + Sinterrupt_handlersS = v_91X; + v_92X = s48_trace_value((Sinterrupt_templateS)); + Sinterrupt_templateS = v_92X; + v_93X = s48_trace_value((Sinterrupted_templateS)); + Sinterrupted_templateS = v_93X; + v_94X = s48_trace_value((Sfinalize_theseS)); + Sfinalize_theseS = v_94X; + v_95X = s48_trace_value((Sos_signal_listS)); + Sos_signal_listS = v_95X; arg0K0 = (Sfinalizer_alistS); - goto L5289;} + goto L5381;} else { - cell_88X = ((char *) (*((long *) (frame_73X + 4)))); - x2_89X = s48_trace_value((*((long *) cell_88X))); - *((long *) cell_88X) = x2_89X; - arg1K0 = (((char *) (*((long *) frame_73X)))); - goto L6281;}} - L6263: { - i_90X = arg0K0; - if ((i_90X == length_72X)) { - arg1K0 = (((char *) (*((long *) (frame_71X + 4))))); - goto L6255;} + cell_96X = ((char *) (*((long *) (frame_82X + 4)))); + x2_97X = s48_trace_value((*((long *) cell_96X))); + *((long *) cell_96X) = x2_97X; + arg1K0 = (((char *) (*((long *) frame_82X)))); + goto L6504;}} + L6486: { + i_98X = arg0K0; + if ((i_98X == length_81X)) { + arg1K0 = (((char *) (*((long *) (frame_80X + 4))))); + goto L6478;} else { - cell_91X = ((char *) (*((long *) (frame_71X + (8 + (((i_90X)<<2))))))); - x2_92X = s48_trace_value((*((long *) cell_91X))); - *((long *) cell_91X) = x2_92X; - arg0K0 = (1 + i_90X); - goto L6263;}} - L5289: { - alist_93X = arg0K0; - if ((25 == alist_93X)) { - env_94X = s48_trace_value((SenvS)); - SenvS = env_94X; - v_95X = s48_trace_value((Spending_channels_headS)); - Spending_channels_headS = v_95X; - v_96X = s48_trace_value((Spending_channels_tailS)); - Spending_channels_tailS = v_96X; + cell_99X = ((char *) (*((long *) (frame_80X + (8 + (((i_98X)<<2))))))); + x2_100X = s48_trace_value((*((long *) cell_99X))); + *((long *) cell_99X) = x2_100X; + arg0K0 = (1 + i_98X); + goto L6486;}} + L5381: { + alist_101X = arg0K0; + if ((25 == alist_101X)) { + env_102X = s48_trace_value((SenvS)); + SenvS = env_102X; + v_103X = s48_trace_value((Spending_input_channels_headS)); + Spending_input_channels_headS = v_103X; + v_104X = s48_trace_value((Spending_input_channels_tailS)); + Spending_input_channels_tailS = v_104X; + v_105X = s48_trace_value((Spending_output_channels_headS)); + Spending_output_channels_headS = v_105X; + v_106X = s48_trace_value((Spending_output_channels_tailS)); + Spending_output_channels_tailS = v_106X; if ((Sstack_warningPS)) { arg1K0 = (Sstack_beginS); - goto L5883;} + goto L6106;} else { - goto L5916;}} + goto L6139;}} else { - pair_97X = *((long *) (((char *) (-3 + alist_93X)))); - x_98X = s48_extantP((*((long *) (((char *) (-3 + pair_97X)))))); - if (x_98X) { - goto L5314;} + pair_107X = *((long *) (((char *) (-3 + alist_101X)))); + x_108X = s48_extantP((*((long *) (((char *) (-3 + pair_107X)))))); + if (x_108X) { + goto L5406;} else { - s48_trace_stob_contentsB((*((long *) (((char *) (-3 + pair_97X)))))); - goto L5314;}}} - L5883: { - a_99X = arg1K0; - if ((252645135 == (*((long *) a_99X)))) { - arg1K0 = (a_99X + 4); - goto L5883;} + s48_trace_stob_contentsB((*((long *) (((char *) (-3 + pair_107X)))))); + goto L5406;}}} + L6106: { + a_109X = arg1K0; + if ((252645135 == (*((long *) a_109X)))) { + arg1K0 = (a_109X + 4); + goto L6106;} else { - unused_100X = (((a_99X - (Sstack_beginS)))>>2); - if ((unused_100X < 30)) { + unused_110X = (((a_109X - (Sstack_beginS)))>>2); + if ((unused_110X < 30)) { { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } ps_write_string("[Alert: stack overconsumption (", (stderr)); - ps_write_integer(unused_100X, (stderr)); + ps_write_integer(unused_110X, (stderr)); ps_write_string("); please inform the Scheme 48 implementors]", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } Sstack_warningPS = 0; - goto L5916;} + goto L6139;} else { - goto L5916;}}} - L5916: { + goto L6139;}}} + L6139: { arg1K0 = ((SstackS) + 4); arg0K1 = 0; - goto L5981;} - L5314: { - val_101X = s48_trace_value((*((long *) ((((char *) (-3 + pair_97X))) + 4)))); - addr_102X = (((char *) (-3 + pair_97X))) + 4; - S48_WRITE_BARRIER(pair_97X, addr_102X, val_101X); - *((long *) addr_102X) = val_101X; - arg0K0 = (*((long *) ((((char *) (-3 + alist_93X))) + 4))); - goto L5289;} - L5981: { - p_103X = arg1K0; - i_104X = arg0K1; - if ((2 == (3 & (*((long *) p_103X))))) { - if ((22 == (*((long *) p_103X)))) { - arg0K0 = (-1 + i_104X); - goto L5918;} + goto L6204;} + L5406: { + val_111X = s48_trace_value((*((long *) ((((char *) (-3 + pair_107X))) + 4)))); + addr_112X = (((char *) (-3 + pair_107X))) + 4; + S48_WRITE_BARRIER(pair_107X, addr_112X, val_111X); + *((long *) addr_112X) = val_111X; + arg0K0 = (*((long *) ((((char *) (-3 + alist_101X))) + 4))); + goto L5381;} + L6204: { + p_113X = arg1K0; + i_114X = arg0K1; + if ((2 == (3 & (*((long *) p_113X))))) { + if ((26 == (*((long *) p_113X)))) { + arg0K0 = (-1 + i_114X); + goto L6141;} else { - arg0K0 = i_104X; - goto L5918;}} + arg0K0 = i_114X; + goto L6141;}} else { - arg1K0 = (p_103X + 4); - arg0K1 = (1 + i_104X); - goto L5981;}} - L5918: { - arg_count_105X = arg0K0; - s48_trace_locationsB(((SstackS) + 4), ((SstackS) + (4 + (((arg_count_105X)<<2))))); - p_106X = SenvS; - if ((3 == (3 & p_106X))) { - if ((p_106X < (((long) (Sstack_beginS))))) { - goto L5934;} + arg1K0 = (p_113X + 4); + arg0K1 = (1 + i_114X); + goto L6204;}} + L6141: { + arg_count_115X = arg0K0; + s48_trace_locationsB(((SstackS) + 4), ((SstackS) + (4 + (((arg_count_115X)<<2))))); + p_116X = SenvS; + if ((3 == (3 & p_116X))) { + if ((p_116X < (((long) (Sstack_beginS))))) { + goto L6157;} else { - if (((((long) (Sstack_endS))) < p_106X)) { - goto L5934;} + if (((((long) (Sstack_endS))) < p_116X)) { + goto L6157;} else { - env_107X = SenvS; - arg0K0 = env_107X; - goto L6094;}}} + env_117X = SenvS; + arg0K0 = env_117X; + goto L6317;}}} else { - goto L5934;}} - L5934: { - v_108X = s48_trace_value((SenvS)); - SenvS = v_108X; - goto L5939;} - L6094: { - env_109X = arg0K0; - if ((3 == (3 & env_109X))) { - if ((env_109X < (((long) (Sstack_beginS))))) { - goto L5939;} + goto L6157;}} + L6157: { + v_118X = s48_trace_value((SenvS)); + SenvS = v_118X; + goto L6162;} + L6317: { + env_119X = arg0K0; + if ((3 == (3 & env_119X))) { + if ((env_119X < (((long) (Sstack_beginS))))) { + goto L6162;} else { - if (((((long) (Sstack_endS))) < env_109X)) { - goto L5939;} + if (((((long) (Sstack_endS))) < env_119X)) { + goto L6162;} else { - s48_trace_stob_contentsB(env_109X); - arg0K0 = (*((long *) (((char *) (-3 + env_109X))))); - goto L6094;}}} + s48_trace_stob_contentsB(env_119X); + arg0K0 = (*((long *) (((char *) (-3 + env_119X))))); + goto L6317;}}} else { - goto L5939;}} - L5939: { + goto L6162;}} + L6162: { arg0K0 = (ScontS); arg0K1 = 0; - goto L5944;} - L5944: { - cont_110X = arg0K0; - last_env_111X = arg0K1; - env_112X = *((long *) ((((char *) (-3 + cont_110X))) + 12)); - s48_trace_stob_contentsB(cont_110X); - if ((env_112X == last_env_111X)) { - goto L5962;} + goto L6167;} + L6167: { + cont_120X = arg0K0; + last_env_121X = arg0K1; + env_122X = *((long *) ((((char *) (-3 + cont_120X))) + 12)); + s48_trace_stob_contentsB(cont_120X); + if ((env_122X == last_env_121X)) { + goto L6185;} else { - arg0K0 = env_112X; - goto L6049;}} - L5962: { - if ((cont_110X == (Sbottom_of_stackS))) { + arg0K0 = env_122X; + goto L6272;}} + L6185: { + if ((cont_120X == (Sbottom_of_stackS))) { return;} else { - arg0K0 = (*((long *) (((char *) (-3 + cont_110X))))); - arg0K1 = env_112X; - goto L5944;}} - L6049: { - env_113X = arg0K0; - if ((3 == (3 & env_113X))) { - if ((env_113X < (((long) (Sstack_beginS))))) { - goto L5962;} + arg0K0 = (*((long *) (((char *) (-3 + cont_120X))))); + arg0K1 = env_122X; + goto L6167;}} + L6272: { + env_123X = arg0K0; + if ((3 == (3 & env_123X))) { + if ((env_123X < (((long) (Sstack_beginS))))) { + goto L6185;} else { - if (((((long) (Sstack_endS))) < env_113X)) { - goto L5962;} + if (((((long) (Sstack_endS))) < env_123X)) { + goto L6185;} else { - s48_trace_stob_contentsB(env_113X); - arg0K0 = (*((long *) (((char *) (-3 + env_113X))))); - goto L6049;}}} + s48_trace_stob_contentsB(env_123X); + arg0K0 = (*((long *) (((char *) (-3 + env_123X))))); + goto L6272;}}} else { - goto L5962;}} + goto L6185;}} } -static long Hlookup2102(long table_114X, long string_115X, long key_116X) +static long Hlookup2142(long table_124X, long string_125X, long key_126X) { long arg0K1; long arg0K0; - long len_127X; - long s2_126X; - char * addr_125X; - long x_124X; - char * addr_123X; - long foo_122X; - long bucket_121X; - long index_120X; - long h_119X; - long i_118X; - long n_117X; - { n_117X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_115X))) + -4))))>>8)); + long len_137X; + long s2_136X; + char * addr_135X; + long x_134X; + char * addr_133X; + long foo_132X; + long bucket_131X; + long index_130X; + long h_129X; + long i_128X; + long n_127X; + { n_127X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_125X))) + -4))))>>8)); arg0K0 = 0; arg0K1 = 0; - goto L13083;} - L13083: { - i_118X = arg0K0; - h_119X = arg0K1; - if ((i_118X < n_117X)) { - arg0K0 = (1 + i_118X); - arg0K1 = (h_119X + (((*((unsigned char *) ((((char *) (-3 + string_115X))) + i_118X)))))); - goto L13083;} + goto L13725;} + L13725: { + i_128X = arg0K0; + h_129X = arg0K1; + if ((i_128X < n_127X)) { + arg0K0 = (1 + i_128X); + arg0K1 = (h_129X + (((*((unsigned char *) ((((char *) (-3 + string_125X))) + i_128X)))))); + goto L13725;} else { - index_120X = 1023 & h_119X; - bucket_121X = *((long *) ((((char *) (-3 + table_114X))) + (((index_120X)<<2)))); - arg0K0 = bucket_121X; - goto L13051;}} - L13051: { - foo_122X = arg0K0; - if ((1 == foo_122X)) { - addr_123X = ALLOCATE_SPACE(13, 20); - *((long *) addr_123X) = 4150; - x_124X = 3 + (((long) (addr_123X + 4))); - *((long *) (((char *) (-3 + x_124X)))) = string_115X; - *((long *) ((((char *) (-3 + x_124X))) + 4)) = 1; - *((long *) ((((char *) (-3 + x_124X))) + 8)) = 13; - *((long *) ((((char *) (-3 + x_124X))) + 12)) = bucket_121X; - addr_125X = (((char *) (-3 + table_114X))) + (((index_120X)<<2)); - S48_WRITE_BARRIER(table_114X, addr_125X, x_124X); - *((long *) addr_125X) = x_124X; - return x_124X;} + index_130X = 1023 & h_129X; + bucket_131X = *((long *) ((((char *) (-3 + table_124X))) + (((index_130X)<<2)))); + arg0K0 = bucket_131X; + goto L13693;}} + L13693: { + foo_132X = arg0K0; + if ((1 == foo_132X)) { + addr_133X = ALLOCATE_SPACE(14, 20); + *((long *) addr_133X) = 4154; + x_134X = 3 + (((long) (addr_133X + 4))); + *((long *) (((char *) (-3 + x_134X)))) = string_125X; + *((long *) ((((char *) (-3 + x_134X))) + 4)) = 1; + *((long *) ((((char *) (-3 + x_134X))) + 8)) = 13; + *((long *) ((((char *) (-3 + x_134X))) + 12)) = bucket_131X; + addr_135X = (((char *) (-3 + table_124X))) + (((index_130X)<<2)); + S48_WRITE_BARRIER(table_124X, addr_135X, x_134X); + *((long *) addr_135X) = x_134X; + return x_134X;} else { - s2_126X = *((long *) (((char *) (-3 + foo_122X)))); - len_127X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_115X))) + -4))))>>8); - if ((len_127X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_126X))) + -4))))>>8)))) { - if (((!memcmp((void *)(((char *) (-3 + s2_126X))), (void *)(((char *) (-3 + string_115X))),len_127X)))) { - return foo_122X;} + s2_136X = *((long *) (((char *) (-3 + foo_132X)))); + len_137X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_125X))) + -4))))>>8); + if ((len_137X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_136X))) + -4))))>>8)))) { + if (((!memcmp((void *)(((char *) (-3 + s2_136X))), (void *)(((char *) (-3 + string_125X))),len_137X)))) { + return foo_132X;} else { - goto L13067;}} + goto L13709;}} else { - goto L13067;}}} - L13067: { - arg0K0 = (*((long *) ((((char *) (-3 + foo_122X))) + 12))); - goto L13051;} + goto L13709;}}} + L13709: { + arg0K0 = (*((long *) ((((char *) (-3 + foo_132X))) + 12))); + goto L13693;} } -static long Hlookup2083(long table_128X, long string_129X, long key_130X) +static long Hlookup2123(long table_138X, long string_139X, long key_140X) { long arg0K1; long arg0K0; - long len_141X; - long s2_140X; - char * addr_139X; - long x_138X; - char * addr_137X; - long foo_136X; - long bucket_135X; - long index_134X; - long h_133X; - long i_132X; - long n_131X; - { n_131X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_129X))) + -4))))>>8)); + long len_151X; + long s2_150X; + char * addr_149X; + long x_148X; + char * addr_147X; + long foo_146X; + long bucket_145X; + long index_144X; + long h_143X; + long i_142X; + long n_141X; + { n_141X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_139X))) + -4))))>>8)); arg0K0 = 0; arg0K1 = 0; - goto L13208;} - L13208: { - i_132X = arg0K0; - h_133X = arg0K1; - if ((i_132X < n_131X)) { - arg0K0 = (1 + i_132X); - arg0K1 = (h_133X + (((*((unsigned char *) ((((char *) (-3 + string_129X))) + i_132X)))))); - goto L13208;} + goto L13850;} + L13850: { + i_142X = arg0K0; + h_143X = arg0K1; + if ((i_142X < n_141X)) { + arg0K0 = (1 + i_142X); + arg0K1 = (h_143X + (((*((unsigned char *) ((((char *) (-3 + string_139X))) + i_142X)))))); + goto L13850;} else { - index_134X = 1023 & h_133X; - bucket_135X = *((long *) ((((char *) (-3 + table_128X))) + (((index_134X)<<2)))); - arg0K0 = bucket_135X; - goto L13176;}} - L13176: { - foo_136X = arg0K0; - if ((1 == foo_136X)) { - addr_137X = ALLOCATE_SPACE(13, 20); - *((long *) addr_137X) = 4150; - x_138X = 3 + (((long) (addr_137X + 4))); - *((long *) (((char *) (-3 + x_138X)))) = string_129X; - *((long *) ((((char *) (-3 + x_138X))) + 4)) = 5; - *((long *) ((((char *) (-3 + x_138X))) + 8)) = 13; - *((long *) ((((char *) (-3 + x_138X))) + 12)) = bucket_135X; - addr_139X = (((char *) (-3 + table_128X))) + (((index_134X)<<2)); - S48_WRITE_BARRIER(table_128X, addr_139X, x_138X); - *((long *) addr_139X) = x_138X; - return x_138X;} + index_144X = 1023 & h_143X; + bucket_145X = *((long *) ((((char *) (-3 + table_138X))) + (((index_144X)<<2)))); + arg0K0 = bucket_145X; + goto L13818;}} + L13818: { + foo_146X = arg0K0; + if ((1 == foo_146X)) { + addr_147X = ALLOCATE_SPACE(14, 20); + *((long *) addr_147X) = 4154; + x_148X = 3 + (((long) (addr_147X + 4))); + *((long *) (((char *) (-3 + x_148X)))) = string_139X; + *((long *) ((((char *) (-3 + x_148X))) + 4)) = 5; + *((long *) ((((char *) (-3 + x_148X))) + 8)) = 13; + *((long *) ((((char *) (-3 + x_148X))) + 12)) = bucket_145X; + addr_149X = (((char *) (-3 + table_138X))) + (((index_144X)<<2)); + S48_WRITE_BARRIER(table_138X, addr_149X, x_148X); + *((long *) addr_149X) = x_148X; + return x_148X;} else { - s2_140X = *((long *) (((char *) (-3 + foo_136X)))); - len_141X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_129X))) + -4))))>>8); - if ((len_141X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_140X))) + -4))))>>8)))) { - if (((!memcmp((void *)(((char *) (-3 + s2_140X))), (void *)(((char *) (-3 + string_129X))),len_141X)))) { - return foo_136X;} + s2_150X = *((long *) (((char *) (-3 + foo_146X)))); + len_151X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_139X))) + -4))))>>8); + if ((len_151X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_150X))) + -4))))>>8)))) { + if (((!memcmp((void *)(((char *) (-3 + s2_150X))), (void *)(((char *) (-3 + string_139X))),len_151X)))) { + return foo_146X;} else { - goto L13192;}} + goto L13834;}} else { - goto L13192;}}} - L13192: { - arg0K0 = (*((long *) ((((char *) (-3 + foo_136X))) + 12))); - goto L13176;} + goto L13834;}}} + L13834: { + arg0K0 = (*((long *) ((((char *) (-3 + foo_146X))) + 12))); + goto L13818;} } -static void HtopD8854(void) +static void HtopD8994(void) { long arg0K2; long arg0K1; long arg0K0; - long status_168X; - long id_167X; - long new_166X; - long id_165X; - long header_164X; - long channel_163X; - long i_162X; - char * addr_161X; - long l_160X; - long v_159X; - char * addr_158X; - char * addr_157X; - char * addr_156X; - char * addr_155X; - long val_154X; - char tracedP_153X; - long next_152X; - long thing_151X; - long pair_150X; - long alist_149X; - long l2_148X; - long goners_147X; - long okay_146X; - long alist_145X; - long pc_144X; - long tem_143X; - long new_142X; - { new_142X = s48_trace_value((Sthe_symbol_tableS)); - HcleanerB2160(new_142X); - Sthe_symbol_tableS = new_142X; - tem_143X = StemplateS; - pc_144X = Ssaved_pcS; - StemplateS = tem_143X; - Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_143X)))))))) + (((pc_144X)>>2))); + long status_178X; + long id_177X; + long new_176X; + long id_175X; + long header_174X; + long channel_173X; + long i_172X; + char * addr_171X; + long l_170X; + long v_169X; + char * addr_168X; + char * addr_167X; + char * addr_166X; + char * addr_165X; + long val_164X; + char tracedP_163X; + long next_162X; + long thing_161X; + long pair_160X; + long alist_159X; + long l2_158X; + long goners_157X; + long okay_156X; + long alist_155X; + long pc_154X; + long tem_153X; + long new_152X; + { new_152X = s48_trace_value((Sthe_symbol_tableS)); + HcleanerB2200(new_152X); + Sthe_symbol_tableS = new_152X; + tem_153X = StemplateS; + pc_154X = Ssaved_pcS; + StemplateS = tem_153X; + Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_153X)))))))) + (((pc_154X)>>2))); arg0K0 = (Sfinalizer_alistS); arg0K1 = 25; arg0K2 = 25; - goto L7722;} - L7722: { - alist_145X = arg0K0; - okay_146X = arg0K1; - goners_147X = arg0K2; - if ((25 == alist_145X)) { - Sfinalizer_alistS = okay_146X; - l2_148X = Sfinalize_theseS; - if ((25 == goners_147X)) { - arg0K0 = l2_148X; - goto L7730;} + goto L7945;} + L7945: { + alist_155X = arg0K0; + okay_156X = arg0K1; + goners_157X = arg0K2; + if ((25 == alist_155X)) { + Sfinalizer_alistS = okay_156X; + l2_158X = Sfinalize_theseS; + if ((25 == goners_157X)) { + arg0K0 = l2_158X; + goto L7953;} else { - arg0K0 = goners_147X; - goto L7783;}} + arg0K0 = goners_157X; + goto L8006;}} else { - alist_149X = s48_trace_value(alist_145X); - pair_150X = s48_trace_value((*((long *) (((char *) (-3 + alist_149X)))))); - thing_151X = *((long *) (((char *) (-3 + pair_150X)))); - next_152X = *((long *) ((((char *) (-3 + alist_149X))) + 4)); - tracedP_153X = s48_extantP(thing_151X); - val_154X = s48_trace_value(thing_151X); - addr_155X = ((char *) (-3 + pair_150X)); - S48_WRITE_BARRIER(pair_150X, addr_155X, val_154X); - *((long *) addr_155X) = val_154X; - addr_156X = ((char *) (-3 + alist_149X)); - S48_WRITE_BARRIER(alist_149X, addr_156X, pair_150X); - *((long *) addr_156X) = pair_150X; - if (tracedP_153X) { - addr_157X = (((char *) (-3 + alist_149X))) + 4; - S48_WRITE_BARRIER(alist_149X, addr_157X, okay_146X); - *((long *) addr_157X) = okay_146X; - arg0K0 = next_152X; - arg0K1 = alist_149X; - arg0K2 = goners_147X; - goto L7722;} + alist_159X = s48_trace_value(alist_155X); + pair_160X = s48_trace_value((*((long *) (((char *) (-3 + alist_159X)))))); + thing_161X = *((long *) (((char *) (-3 + pair_160X)))); + next_162X = *((long *) ((((char *) (-3 + alist_159X))) + 4)); + tracedP_163X = s48_extantP(thing_161X); + val_164X = s48_trace_value(thing_161X); + addr_165X = ((char *) (-3 + pair_160X)); + S48_WRITE_BARRIER(pair_160X, addr_165X, val_164X); + *((long *) addr_165X) = val_164X; + addr_166X = ((char *) (-3 + alist_159X)); + S48_WRITE_BARRIER(alist_159X, addr_166X, pair_160X); + *((long *) addr_166X) = pair_160X; + if (tracedP_163X) { + addr_167X = (((char *) (-3 + alist_159X))) + 4; + S48_WRITE_BARRIER(alist_159X, addr_167X, okay_156X); + *((long *) addr_167X) = okay_156X; + arg0K0 = next_162X; + arg0K1 = alist_159X; + arg0K2 = goners_157X; + goto L7945;} else { - addr_158X = (((char *) (-3 + alist_149X))) + 4; - S48_WRITE_BARRIER(alist_149X, addr_158X, goners_147X); - *((long *) addr_158X) = goners_147X; - arg0K0 = next_152X; - arg0K1 = okay_146X; - arg0K2 = alist_149X; - goto L7722;}}} - L7730: { - v_159X = arg0K0; - Sfinalize_theseS = v_159X; + addr_168X = (((char *) (-3 + alist_159X))) + 4; + S48_WRITE_BARRIER(alist_159X, addr_168X, goners_157X); + *((long *) addr_168X) = goners_157X; + arg0K0 = next_162X; + arg0K1 = okay_156X; + arg0K2 = alist_159X; + goto L7945;}}} + L7953: { + v_169X = arg0K0; + Sfinalize_theseS = v_169X; arg0K0 = 0; - goto L12515;} - L7783: { - l_160X = arg0K0; - if ((25 == (*((long *) ((((char *) (-3 + l_160X))) + 4))))) { - addr_161X = (((char *) (-3 + l_160X))) + 4; - S48_WRITE_BARRIER(l_160X, addr_161X, l2_148X); - *((long *) addr_161X) = l2_148X; - arg0K0 = goners_147X; - goto L7730;} + goto L13157;} + L8006: { + l_170X = arg0K0; + if ((25 == (*((long *) ((((char *) (-3 + l_170X))) + 4))))) { + addr_171X = (((char *) (-3 + l_170X))) + 4; + S48_WRITE_BARRIER(l_170X, addr_171X, l2_158X); + *((long *) addr_171X) = l2_158X; + arg0K0 = goners_157X; + goto L7953;} else { - arg0K0 = (*((long *) ((((char *) (-3 + l_160X))) + 4))); - goto L7783;}} - L12515: { - i_162X = arg0K0; - if ((i_162X == (Snumber_of_channelsS))) { + arg0K0 = (*((long *) ((((char *) (-3 + l_170X))) + 4))); + goto L8006;}} + L13157: { + i_172X = arg0K0; + if ((i_172X == (Snumber_of_channelsS))) { Spending_interruptsS = (4 | (Spending_interruptsS)); if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { s48_Spending_interruptPS = 0; @@ -887,79 +932,79 @@ static void HtopD8854(void) s48_Spending_interruptPS = 1; return;}} else { - channel_163X = *((Svm_channelsS) + i_162X); - if ((1 == channel_163X)) { - goto L12551;} + channel_173X = *((Svm_channelsS) + i_172X); + if ((1 == channel_173X)) { + goto L13193;} else { - header_164X = *((long *) ((((char *) (-3 + channel_163X))) + -4)); - if ((3 == (3 & header_164X))) { - arg0K0 = header_164X; - goto L12544;} + header_174X = *((long *) ((((char *) (-3 + channel_173X))) + -4)); + if ((3 == (3 & header_174X))) { + arg0K0 = header_174X; + goto L13186;} else { - if ((0 == (*((long *) (((char *) (-3 + channel_163X))))))) { + if ((0 == (*((long *) (((char *) (-3 + channel_173X))))))) { arg0K0 = 1; - goto L12544;} + goto L13186;} else { - id_165X = *((long *) ((((char *) (-3 + channel_163X))) + 4)); - if ((0 == (3 & id_165X))) { - arg0K0 = id_165X; - goto L12227;} + id_175X = *((long *) ((((char *) (-3 + channel_173X))) + 4)); + if ((0 == (3 & id_175X))) { + arg0K0 = id_175X; + goto L12869;} else { - if ((3 == (3 & (*((long *) ((((char *) (-3 + id_165X))) + -4)))))) { - arg0K0 = (*((long *) ((((char *) (-3 + id_165X))) + -4))); - goto L12227;} + if ((3 == (3 & (*((long *) ((((char *) (-3 + id_175X))) + -4)))))) { + arg0K0 = (*((long *) ((((char *) (-3 + id_175X))) + -4))); + goto L12869;} else { - arg0K0 = id_165X; - goto L12227;}}}}}}} - L12551: { - arg0K0 = (1 + i_162X); - goto L12515;} - L12544: { - new_166X = arg0K0; - *((Svm_channelsS) + i_162X) = new_166X; - goto L12551;} - L12227: { - id_167X = arg0K0; - status_168X = close_channelB(channel_163X); - if ((status_168X == NO_ERRORS)) { - goto L12242;} + arg0K0 = id_175X; + goto L12869;}}}}}}} + L13193: { + arg0K0 = (1 + i_172X); + goto L13157;} + L13186: { + new_176X = arg0K0; + *((Svm_channelsS) + i_172X) = new_176X; + goto L13193;} + L12869: { + id_177X = arg0K0; + status_178X = close_channelB(channel_173X); + if ((status_178X == NO_ERRORS)) { + goto L12884;} else { - channel_close_error(status_168X, (*((long *) ((((char *) (-3 + channel_163X))) + 8))), id_167X); - goto L12242;}} - L12242: { + channel_close_error(status_178X, (*((long *) ((((char *) (-3 + channel_173X))) + 8))), id_177X); + goto L12884;}} + L12884: { ps_write_string("Channel closed: ", (stderr)); - if ((0 == (3 & id_167X))) { - ps_write_integer((((id_167X)>>2)), (stderr)); - goto L12260;} + if ((0 == (3 & id_177X))) { + ps_write_integer((((id_177X)>>2)), (stderr)); + goto L12902;} else { - ps_write_string((((char *)(((char *) (-3 + id_167X))))), (stderr)); - goto L12260;}} - L12260: { + ps_write_string((((char *)(((char *) (-3 + id_177X))))), (stderr)); + goto L12902;}} + L12902: { ps_write_string(" ", (stderr)); - ps_write_integer(((((*((long *) ((((char *) (-3 + channel_163X))) + 8))))>>2)), (stderr)); + ps_write_integer(((((*((long *) ((((char *) (-3 + channel_173X))) + 8))))>>2)), (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } arg0K0 = 1; - goto L12544;} + goto L13186;} } -static long collect_saving_temps(long value0_169X, long value1_170X, long *TT0) +static long collect_saving_temps(long value0_179X, long value1_180X, long *TT0) { - long value0_172X; - long value1_171X; + long value0_182X; + long value1_181X; { s48_begin_collection(); (*(Sgc_root_procS))(); - value1_171X = s48_trace_value(value1_170X); - value0_172X = s48_trace_value(value0_169X); + value1_181X = s48_trace_value(value1_180X); + value0_182X = s48_trace_value(value0_179X); s48_do_gc(); (*(Spost_gc_cleanupS))(); s48_end_collection(); - *TT0 = value1_171X; - return value0_172X;} + *TT0 = value1_181X; + return value0_182X;} } -void s48_set_extension_valueB(long value_173X) +void s48_set_extension_valueB(long value_183X) { - { s48_Sextension_valueS = value_173X; + { s48_Sextension_valueS = value_183X; return;} } void s48_note_event(void) @@ -969,31 +1014,26 @@ void s48_note_event(void) s48_Spending_interruptPS = 1; return;} } -void s48_set_os_signal(long type_174X, long argument_175X) -{ - - { Sos_signal_typeS = type_174X; - Sos_signal_argumentS = argument_175X; - return;} -} long s48_exported_bindings(void) { { return (Sexported_bindingsS);} } -char * s48_set_gc_roots_baseB(void) +char * s48_set_gc_roots_baseB(char * *TT0) { - char * old_base_176X; - { old_base_176X = Sexternal_root_stack_baseS; + char * old_base_184X; + { old_base_184X = Sexternal_root_stack_baseS; Sexternal_root_stack_baseS = (Sexternal_root_stackS); - return old_base_176X;} + *TT0 = (Sexternal_root_stackS); + return old_base_184X;} } -char s48_release_gc_roots_baseB(char * old_base_177X) +char s48_release_gc_roots_baseB(char * old_base_185X, char * old_stack_186X) { - char okayP_178X; - { okayP_178X = (Sexternal_root_stackS) == (Sexternal_root_stack_baseS); - Sexternal_root_stack_baseS = old_base_177X; - return okayP_178X;} + char okayP_187X; + { okayP_187X = (Sexternal_root_stackS) == (Sexternal_root_stack_baseS); + Sexternal_root_stack_baseS = old_base_185X; + Sexternal_root_stackS = old_stack_186X; + return okayP_187X;} } void s48_disable_interruptsB(void) { @@ -1002,56 +1042,65 @@ void s48_disable_interruptsB(void) Senabled_interruptsS = 0; return;} } -void s48_push_gc_rootsB(char * frame_179X, long n_180X) +void s48_push_gc_rootsB(char * frame_188X, long n_189X) { - { *((long *) frame_179X) = n_180X; - *((long *) (frame_179X + 4)) = (((long) (Sexternal_root_stackS))); - Sexternal_root_stackS = frame_179X; + { *((long *) frame_188X) = n_189X; + *((long *) (frame_188X + 4)) = (((long) (Sexternal_root_stackS))); + Sexternal_root_stackS = frame_188X; return;} } -void s48_register_gc_rootB(char * loc_addr_181X) +void s48_register_gc_rootB(char * loc_addr_190X) { - char * frame_182X; - { frame_182X = (char *)malloc(8); - if ((frame_182X == NULL)) { + char * frame_191X; + { frame_191X = (char *)malloc(8); + if ((frame_191X == NULL)) { ps_error("out of memory registering a global root", 0); - goto L3175;} + goto L3195;} else { - goto L3175;}} - L3175: { - *((long *) frame_182X) = (((long) (Spermanent_external_rootsS))); - *((long *) (frame_182X + 4)) = (((long) loc_addr_181X)); - Spermanent_external_rootsS = frame_182X; + goto L3195;}} + L3195: { + *((long *) frame_191X) = (((long) (Spermanent_external_rootsS))); + *((long *) (frame_191X + 4)) = (((long) loc_addr_190X)); + Spermanent_external_rootsS = frame_191X; return;} } -void s48_stack_setB(long x_183X, long value_184X) +void s48_stack_setB(long x_192X, long value_193X) { - { *((long *) ((SstackS) + (4 + (((x_183X)<<2))))) = value_184X; + { *((long *) ((SstackS) + (4 + (((x_192X)<<2))))) = value_193X; return;} } -long s48_stack_ref(long i_185X) +long s48_stack_ref(long i_194X) { - { return (*((long *) ((SstackS) + (4 + (((i_185X)<<2))))));} + { return (*((long *) ((SstackS) + (4 + (((i_194X)<<2))))));} } -void s48_push(long x_186X) +void s48_push(long x_195X) { - { *((long *) (SstackS)) = x_186X; + { *((long *) (SstackS)) = x_195X; SstackS = ((SstackS) + -4); return;} } -long s48_resetup_external_exception(long new_why_187X, long additional_nargs_188X) +long s48_resetup_external_exception(long new_why_196X, long additional_nargs_197X) { - long old_why_190X; - long old_nargs_189X; - { old_nargs_189X = Sexternal_exception_nargsS; - old_why_190X = *((long *) ((SstackS) + (4 + (((old_nargs_189X)<<2))))); - *((long *) ((SstackS) + (4 + (((old_nargs_189X)<<2))))) = (((new_why_187X)<<2)); - Sexternal_exception_nargsS = (old_nargs_189X + additional_nargs_188X); - return old_why_190X;} + long old_why_199X; + long old_nargs_198X; + { old_nargs_198X = Sexternal_exception_nargsS; + old_why_199X = *((long *) ((SstackS) + (4 + (((old_nargs_198X)<<2))))); + *((long *) ((SstackS) + (4 + (((old_nargs_198X)<<2))))) = (((new_why_196X)<<2)); + Sexternal_exception_nargsS = (old_nargs_198X + additional_nargs_197X); + return old_why_199X;} +} +char s48_pop_gc_rootsB(void) +{ + + { if (((Sexternal_root_stackS) == (Sexternal_root_stack_baseS))) { + return 0;} + else { + Sexternal_root_stackS = (((char *) (*((long *) ((Sexternal_root_stackS) + 4))))); + return 1;}} } void s48_enable_interruptsB(void) { @@ -1068,209 +1117,243 @@ void s48_enable_interruptsB(void) s48_Spending_interruptPS = 1; return;}} } -char s48_pop_gc_rootsB(void) -{ - - { if (((Sexternal_root_stackS) == (Sexternal_root_stack_baseS))) { - return 0;} - else { - Sexternal_root_stackS = (((char *) (*((long *) ((Sexternal_root_stackS) + 4))))); - return 1;}} -} void s48_mark_traced_channels_closedB(void) { long arg0K0; - char * addr_196X; - char * addr_195X; - long descriptor_194X; - long header_193X; - long channel_192X; - long i_191X; + char * addr_205X; + char * addr_204X; + long descriptor_203X; + long header_202X; + long channel_201X; + long i_200X; { arg0K0 = 0; - goto L6332;} - L6332: { - i_191X = arg0K0; - if ((i_191X == (Snumber_of_channelsS))) { + goto L6555;} + L6555: { + i_200X = arg0K0; + if ((i_200X == (Snumber_of_channelsS))) { return;} else { - channel_192X = *((Svm_channelsS) + i_191X); - if ((1 == channel_192X)) { - goto L6392;} + channel_201X = *((Svm_channelsS) + i_200X); + if ((1 == channel_201X)) { + goto L6615;} else { - header_193X = *((long *) ((((char *) (-3 + channel_192X))) + -4)); - if ((3 == (3 & header_193X))) { + header_202X = *((long *) ((((char *) (-3 + channel_201X))) + -4)); + if ((3 == (3 & header_202X))) { ps_write_string("Channel closed in dumped image: ", (stderr)); - descriptor_194X = *((long *) ((((char *) (-3 + channel_192X))) + 4)); - if ((0 == (3 & descriptor_194X))) { - ps_write_integer(((((*((long *) ((((char *) (-3 + channel_192X))) + 4))))>>2)), (stderr)); - goto L6378;} + descriptor_203X = *((long *) ((((char *) (-3 + channel_201X))) + 4)); + if ((0 == (3 & descriptor_203X))) { + ps_write_integer(((((*((long *) ((((char *) (-3 + channel_201X))) + 4))))>>2)), (stderr)); + goto L6601;} else { - ps_write_string((((char *)(((char *) (-3 + (*((long *) ((((char *) (-3 + channel_192X))) + 4)))))))), (stderr)); - goto L6378;}} + ps_write_string((((char *)(((char *) (-3 + (*((long *) ((((char *) (-3 + channel_201X))) + 4)))))))), (stderr)); + goto L6601;}} else { - goto L6392;}}}} - L6392: { - arg0K0 = (1 + i_191X); - goto L6332;} - L6378: { + goto L6615;}}}} + L6615: { + arg0K0 = (1 + i_200X); + goto L6555;} + L6601: { { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - addr_195X = ((char *) (-3 + header_193X)); - S48_WRITE_BARRIER(header_193X, addr_195X, 0); - *((long *) addr_195X) = 0; - addr_196X = (((char *) (-3 + header_193X))) + 8; - S48_WRITE_BARRIER(header_193X, addr_196X, -4); - *((long *) addr_196X) = -4; - goto L6392;} + addr_204X = ((char *) (-3 + header_202X)); + S48_WRITE_BARRIER(header_202X, addr_204X, 0); + *((long *) addr_204X) = 0; + addr_205X = (((char *) (-3 + header_202X))) + 8; + S48_WRITE_BARRIER(header_202X, addr_205X, -4); + *((long *) addr_205X) = -4; + goto L6615;} } -long s48_set_channel_os_index(long channel_197X, long os_index_198X) +void s48_set_os_signals(long signal_list_206X) { - char * addr_205X; - long val_204X; - long v_203X; - long x_202X; - long old_index_201X; - char x_200X; - char temp_199X; - { temp_199X = os_index_198X < (Snumber_of_channelsS); - if (temp_199X) { - goto L7901;} + long arg0K0; + char * addr_210X; + long l_209X; + long v_208X; + long l1_207X; + { l1_207X = Sos_signal_listS; + if ((25 == l1_207X)) { + arg0K0 = signal_list_206X; + goto L8074;} else { - x_200X = add_more_channels(os_index_198X); - if (x_200X) { - goto L7901;} + arg0K0 = l1_207X; + goto L8085;}} + L8074: { + v_208X = arg0K0; + Sos_signal_listS = v_208X; + return;} + L8085: { + l_209X = arg0K0; + if ((25 == (*((long *) ((((char *) (-3 + l_209X))) + 4))))) { + addr_210X = (((char *) (-3 + l_209X))) + 4; + S48_WRITE_BARRIER(l_209X, addr_210X, signal_list_206X); + *((long *) addr_210X) = signal_list_206X; + arg0K0 = l1_207X; + goto L8074;} + else { + arg0K0 = (*((long *) ((((char *) (-3 + l_209X))) + 4))); + goto L8085;}} +} +long s48_set_channel_os_index(long channel_211X, long os_index_212X) +{ + char * addr_221X; + long val_220X; + long v_219X; + long v_218X; + long v_217X; + long x_216X; + long old_index_215X; + char x_214X; + char temp_213X; + { temp_213X = os_index_212X < (Snumber_of_channelsS); + if (temp_213X) { + goto L8169;} + else { + x_214X = add_more_channels(os_index_212X); + if (x_214X) { + goto L8169;} else { return 36;}}} - L7901: { - if ((1 == (*((Svm_channelsS) + os_index_198X)))) { - old_index_201X = (((*((long *) ((((char *) (-3 + channel_197X))) + 8))))>>2); - x_202X = *((long *) ((((char *) (-3 + channel_197X))) + 16)); - if ((5 == x_202X)) { - v_203X = ps_abort_fd_op(old_index_201X); - enqueue_channelB(old_index_201X, v_203X); - goto L7887;} + L8169: { + if ((1 == (*((Svm_channelsS) + os_index_212X)))) { + old_index_215X = (((*((long *) ((((char *) (-3 + channel_211X))) + 8))))>>2); + x_216X = *((long *) ((((char *) (-3 + channel_211X))) + 16)); + if ((5 == x_216X)) { + v_217X = *((long *) (((char *) (-3 + channel_211X)))); + if ((4 == v_217X)) { + goto L8143;} + else { + if ((12 == (*((long *) (((char *) (-3 + channel_211X))))))) { + goto L8143;} + else { + v_218X = ps_abort_fd_op(old_index_215X); + enqueue_output_channelB(old_index_215X, v_218X); + goto L8155;}}} else { - goto L7887;}} + goto L8155;}} else { return 44;}} - L7887: { - *((Svm_channelsS) + old_index_201X) = 1; - *((Svm_channelsS) + os_index_198X) = channel_197X; - val_204X = ((os_index_198X)<<2); - addr_205X = (((char *) (-3 + channel_197X))) + 8; - S48_WRITE_BARRIER(channel_197X, addr_205X, val_204X); - *((long *) addr_205X) = val_204X; + L8143: { + v_219X = ps_abort_fd_op(old_index_215X); + enqueue_input_channelB(old_index_215X, v_219X); + goto L8155;} + L8155: { + *((Svm_channelsS) + old_index_215X) = 1; + *((Svm_channelsS) + os_index_212X) = channel_211X; + val_220X = ((os_index_212X)<<2); + addr_221X = (((char *) (-3 + channel_211X))) + 8; + S48_WRITE_BARRIER(channel_211X, addr_221X, val_220X); + *((long *) addr_221X) = val_220X; return 5;} } long s48_cleaned_imported_bindings(void) { long arg0K1; long arg0K0; - long v_219X; - char * addr_218X; - long entry_217X; - char * addr_216X; - long new_foo_215X; - char v_214X; - char * addr_213X; - long okay_212X; - long foo_211X; - long i_210X; - long foo_209X; - long i_208X; - long table_207X; - long table_206X; - { table_206X = s48_trace_value((Simported_bindingsS)); - table_207X = s48_trace_value(table_206X); + long v_235X; + char * addr_234X; + long entry_233X; + char * addr_232X; + long new_foo_231X; + char v_230X; + char * addr_229X; + long okay_228X; + long foo_227X; + long i_226X; + long foo_225X; + long i_224X; + long table_223X; + long table_222X; + { table_222X = s48_trace_value((Simported_bindingsS)); + table_223X = s48_trace_value(table_222X); arg0K0 = 0; - goto L8578;} - L8578: { - i_208X = arg0K0; - if ((1024 == i_208X)) { + goto L9205;} + L9205: { + i_224X = arg0K0; + if ((1024 == i_224X)) { arg0K0 = 0; - goto L9667;} + goto L10306;} else { - foo_209X = *((long *) ((((char *) (-3 + table_207X))) + (((i_208X)<<2)))); - arg0K0 = foo_209X; + foo_225X = *((long *) ((((char *) (-3 + table_223X))) + (((i_224X)<<2)))); + arg0K0 = foo_225X; arg0K1 = 1; - goto L8598;}} - L9667: { - i_210X = arg0K0; - if ((1024 == i_210X)) { - return table_206X;} + goto L9225;}} + L10306: { + i_226X = arg0K0; + if ((1024 == i_226X)) { + return table_222X;} else { - arg0K0 = (*((long *) ((((char *) (-3 + table_206X))) + (((i_210X)<<2))))); - goto L9675;}} - L8598: { - foo_211X = arg0K0; - okay_212X = arg0K1; - if ((1 == foo_211X)) { - addr_213X = (((char *) (-3 + table_207X))) + (((i_208X)<<2)); - S48_WRITE_BARRIER(table_207X, addr_213X, okay_212X); - *((long *) addr_213X) = okay_212X; - arg0K0 = (1 + i_208X); - goto L8578;} + arg0K0 = (*((long *) ((((char *) (-3 + table_222X))) + (((i_226X)<<2))))); + goto L10314;}} + L9225: { + foo_227X = arg0K0; + okay_228X = arg0K1; + if ((1 == foo_227X)) { + addr_229X = (((char *) (-3 + table_223X))) + (((i_224X)<<2)); + S48_WRITE_BARRIER(table_223X, addr_229X, okay_228X); + *((long *) addr_229X) = okay_228X; + arg0K0 = (1 + i_224X); + goto L9205;} else { - v_214X = s48_extantP(foo_211X); - if (v_214X) { - new_foo_215X = s48_trace_value(foo_211X); - addr_216X = (((char *) (-3 + new_foo_215X))) + 12; - S48_WRITE_BARRIER(new_foo_215X, addr_216X, okay_212X); - *((long *) addr_216X) = okay_212X; - arg0K0 = new_foo_215X; - goto L8603;} + v_230X = s48_extantP(foo_227X); + if (v_230X) { + new_foo_231X = s48_trace_value(foo_227X); + addr_232X = (((char *) (-3 + new_foo_231X))) + 12; + S48_WRITE_BARRIER(new_foo_231X, addr_232X, okay_228X); + *((long *) addr_232X) = okay_228X; + arg0K0 = new_foo_231X; + goto L9230;} else { - arg0K0 = okay_212X; - goto L8603;}}} - L9675: { - entry_217X = arg0K0; - if ((1 == entry_217X)) { - arg0K0 = (1 + i_210X); - goto L9667;} + arg0K0 = okay_228X; + goto L9230;}}} + L10314: { + entry_233X = arg0K0; + if ((1 == entry_233X)) { + arg0K0 = (1 + i_226X); + goto L10306;} else { - addr_218X = (((char *) (-3 + entry_217X))) + 8; - S48_WRITE_BARRIER(entry_217X, addr_218X, 529); - *((long *) addr_218X) = 529; - arg0K0 = (*((long *) ((((char *) (-3 + entry_217X))) + 12))); - goto L9675;}} - L8603: { - v_219X = arg0K0; - arg0K0 = (*((long *) ((((char *) (-3 + foo_211X))) + 12))); - arg0K1 = v_219X; - goto L8598;} + addr_234X = (((char *) (-3 + entry_233X))) + 8; + S48_WRITE_BARRIER(entry_233X, addr_234X, 529); + *((long *) addr_234X) = 529; + arg0K0 = (*((long *) ((((char *) (-3 + entry_233X))) + 12))); + goto L10314;}} + L9230: { + v_235X = arg0K0; + arg0K0 = (*((long *) ((((char *) (-3 + foo_227X))) + 12))); + arg0K1 = v_235X; + goto L9225;} } long s48_copy_symbol_table(void) { - long new_220X; - { new_220X = s48_trace_value((Sthe_symbol_tableS)); - HcleanerB2160(new_220X); - return new_220X;} + long new_236X; + { new_236X = s48_trace_value((Sthe_symbol_tableS)); + HcleanerB2200(new_236X); + return new_236X;} } -void s48_setup_external_exception(long why_221X, long nargs_222X) +void s48_setup_external_exception(long why_237X, long nargs_238X) { - { push_exception_continuationB(why_221X, 1); - if ((10 < nargs_222X)) { + { push_exception_continuationB(why_237X, 1); + if ((10 < nargs_238X)) { ps_error("too many arguments from external exception", 0); - goto L11018;} + goto L11660;} else { - goto L11018;}} - L11018: { - Sexternal_exception_nargsS = nargs_222X; + goto L11660;}} + L11660: { + Sexternal_exception_nargsS = nargs_238X; Sexternal_exceptionPS = 1; return;} } -void s48_close_channel(long os_index_223X) +void s48_close_channel(long os_index_239X) { - long obj_224X; - { if ((os_index_223X < 0)) { + long obj_240X; + { if ((os_index_239X < 0)) { return;} else { - if ((os_index_223X < (Snumber_of_channelsS))) { - obj_224X = *((Svm_channelsS) + os_index_223X); - if ((3 == (3 & obj_224X))) { - if ((5 == (31 & ((((*((long *) ((((char *) (-3 + obj_224X))) + -4))))>>2))))) { - close_channelB((*((Svm_channelsS) + os_index_223X))); + if ((os_index_239X < (Snumber_of_channelsS))) { + obj_240X = *((Svm_channelsS) + os_index_239X); + if ((3 == (3 & obj_240X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_240X))) + -4))))>>2))))) { + close_channelB((*((Svm_channelsS) + os_index_239X))); return;} else { return;}} @@ -1282,582 +1365,582 @@ void s48_close_channel(long os_index_223X) char s48_warn_about_undefined_imported_bindings(void) { long arg0K0; - long name_230X; - long entry_229X; - char temp_228X; - long i_227X; - long table_226X; - FILE * out_225X; - { out_225X = stderr; - table_226X = Simported_bindingsS; + long name_246X; + long entry_245X; + char temp_244X; + long i_243X; + long table_242X; + FILE * out_241X; + { out_241X = stderr; + table_242X = Simported_bindingsS; arg0K0 = 0; - goto L11558;} - L11558: { - i_227X = arg0K0; - temp_228X = 1024 == i_227X; - if (temp_228X) { - return temp_228X;} + goto L12200;} + L12200: { + i_243X = arg0K0; + temp_244X = 1024 == i_243X; + if (temp_244X) { + return temp_244X;} else { - arg0K0 = (*((long *) ((((char *) (-3 + table_226X))) + (((i_227X)<<2))))); - goto L11566;}} - L11566: { - entry_229X = arg0K0; - if ((1 == entry_229X)) { - arg0K0 = (1 + i_227X); - goto L11558;} + arg0K0 = (*((long *) ((((char *) (-3 + table_242X))) + (((i_243X)<<2))))); + goto L12208;}} + L12208: { + entry_245X = arg0K0; + if ((1 == entry_245X)) { + arg0K0 = (1 + i_243X); + goto L12200;} else { - if ((17 == (255 & (*((long *) ((((char *) (-3 + entry_229X))) + 8)))))) { - name_230X = *((long *) (((char *) (-3 + entry_229X)))); - ps_write_string("undefined imported name ", out_225X); - if ((3 == (3 & name_230X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + name_230X))) + -4))))>>2))))) { - ps_write_string((((char *)(((char *) (-3 + name_230X))))), out_225X); - goto L11546;} + if ((17 == (255 & (*((long *) ((((char *) (-3 + entry_245X))) + 8)))))) { + name_246X = *((long *) (((char *) (-3 + entry_245X)))); + ps_write_string("undefined imported name ", out_241X); + if ((3 == (3 & name_246X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + name_246X))) + -4))))>>2))))) { + ps_write_string((((char *)(((char *) (-3 + name_246X))))), out_241X); + goto L12188;} else { - goto L11544;}} + goto L12186;}} else { - goto L11544;}} + goto L12186;}} else { - goto L11569;}}} - L11546: { + goto L12211;}}} + L12188: { { long ignoreXX; - PS_WRITE_CHAR(10, out_225X, ignoreXX) } - goto L11569;} - L11544: { - ps_write_string("", out_225X); - goto L11546;} - L11569: { - arg0K0 = (*((long *) ((((char *) (-3 + entry_229X))) + 12))); - goto L11566;} + PS_WRITE_CHAR(10, out_241X, ignoreXX) } + goto L12211;} + L12186: { + ps_write_string("", out_241X); + goto L12188;} + L12211: { + arg0K0 = (*((long *) ((((char *) (-3 + entry_245X))) + 12))); + goto L12208;} } -void s48_define_exported_binding(char *name_231X, long value_232X) +void s48_define_exported_binding(char *name_247X, long value_248X) { char arg2K0; long arg0K2; long arg0K1; long arg0K0; - char * addr_245X; - long x_244X; - long name_243X; - long value_242X; - long key_241X; - long temp_240X; - long key_239X; - char okayP_238X; - char v_237X; - long temp1_236X; - long temp0_235X; - char v_234X; - long space_233X; - { space_233X = 6 + ((((4 + (strlen((char *) name_231X))))>>2)); - v_234X = AVAILABLEp(space_233X); - if (v_234X) { + char * addr_261X; + long x_260X; + long name_259X; + long value_258X; + long key_257X; + long temp_256X; + long key_255X; + char okayP_254X; + char v_253X; + long temp1_252X; + long temp0_251X; + char v_250X; + long space_249X; + { space_249X = 6 + ((((4 + (strlen((char *) name_247X))))>>2)); + v_250X = AVAILABLEp(space_249X); + if (v_250X) { arg2K0 = 1; arg0K1 = 0; - arg0K2 = value_232X; - goto L14338;} + arg0K2 = value_248X; + goto L14980;} else { - temp0_235X = collect_saving_temps(value_232X, 1, &temp1_236X); - v_237X = AVAILABLEp(space_233X); - if (v_237X) { + temp0_251X = collect_saving_temps(value_248X, 1, &temp1_252X); + v_253X = AVAILABLEp(space_249X); + if (v_253X) { arg2K0 = 1; arg0K1 = 0; - arg0K2 = temp0_235X; - goto L14338;} + arg0K2 = temp0_251X; + goto L14980;} else { arg2K0 = 0; arg0K1 = 0; - arg0K2 = temp0_235X; - goto L14338;}}} - L14338: { - okayP_238X = arg2K0; - key_239X = arg0K1; - temp_240X = arg0K2; - if (okayP_238X) { - arg0K0 = key_239X; - arg0K1 = temp_240X; - goto L14319;} + arg0K2 = temp0_251X; + goto L14980;}}} + L14980: { + okayP_254X = arg2K0; + key_255X = arg0K1; + temp_256X = arg0K2; + if (okayP_254X) { + arg0K0 = key_255X; + arg0K1 = temp_256X; + goto L14961;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_239X; - arg0K1 = temp_240X; - goto L14319;}} - L14319: { - key_241X = arg0K0; - value_242X = arg0K1; - name_243X = enter_string(name_231X, key_241X); - x_244X = Hlookup2083((Simported_bindingsS), name_243X, key_241X); - addr_245X = (((char *) (-3 + x_244X))) + 8; - S48_WRITE_BARRIER(x_244X, addr_245X, value_242X); - *((long *) addr_245X) = value_242X; + arg0K0 = key_255X; + arg0K1 = temp_256X; + goto L14961;}} + L14961: { + key_257X = arg0K0; + value_258X = arg0K1; + name_259X = enter_string(name_247X, key_257X); + x_260X = Hlookup2123((Simported_bindingsS), name_259X, key_257X); + addr_261X = (((char *) (-3 + x_260X))) + 8; + S48_WRITE_BARRIER(x_260X, addr_261X, value_258X); + *((long *) addr_261X) = value_258X; return;} } -long s48_add_channel(long mode_246X, long id_247X, long os_index_248X) +long s48_add_channel(long mode_262X, long id_263X, long os_index_264X) { char arg2K0; long arg0K1; long arg0K0; - long status_256X; - long channel_255X; - long v_254X; - long key_253X; - char okayP_252X; - char v_251X; - long temp1_250X; - char v_249X; - { v_249X = AVAILABLEp(6); - if (v_249X) { + long status_272X; + long channel_271X; + long v_270X; + long key_269X; + char okayP_268X; + char v_267X; + long temp1_266X; + char v_265X; + { v_265X = AVAILABLEp(6); + if (v_265X) { arg2K0 = 1; arg0K1 = 0; - goto L14727;} + goto L15375;} else { - collect_saving_temps(1, 1, &temp1_250X); - v_251X = AVAILABLEp(6); - if (v_251X) { + collect_saving_temps(1, 1, &temp1_266X); + v_267X = AVAILABLEp(6); + if (v_267X) { arg2K0 = 1; arg0K1 = 0; - goto L14727;} + goto L15375;} else { arg2K0 = 0; arg0K1 = 0; - goto L14727;}}} - L14727: { - okayP_252X = arg2K0; - key_253X = arg0K1; - if (okayP_252X) { - arg0K0 = key_253X; - goto L14710;} + goto L15375;}}} + L15375: { + okayP_268X = arg2K0; + key_269X = arg0K1; + if (okayP_268X) { + arg0K0 = key_269X; + goto L15358;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_253X; - goto L14710;}} - L14710: { - v_254X = arg0K0; - channel_255X = make_registered_channel((((mode_246X)>>2)), id_247X, os_index_248X, v_254X, &status_256X); - if ((3 == (3 & channel_255X))) { - if ((5 == (31 & ((((*((long *) ((((char *) (-3 + channel_255X))) + -4))))>>2))))) { - return channel_255X;} + arg0K0 = key_269X; + goto L15358;}} + L15358: { + v_270X = arg0K0; + channel_271X = make_registered_channel((((mode_262X)>>2)), id_263X, os_index_264X, v_270X, &status_272X); + if ((3 == (3 & channel_271X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_271X))) + -4))))>>2))))) { + return channel_271X;} else { - goto L14721;}} + goto L15369;}} else { - goto L14721;}} - L14721: { - return (((status_256X)<<2));} + goto L15369;}} + L15369: { + return (((status_272X)<<2));} } -long s48_get_imported_binding(char *name_257X) +long s48_get_imported_binding(char *name_273X) { char arg2K0; long arg0K1; long arg0K0; - long name_265X; - long key_264X; - long key_263X; - char okayP_262X; - char v_261X; - long temp1_260X; - char v_259X; - long space_258X; - { space_258X = 6 + ((((4 + (strlen((char *) name_257X))))>>2)); - v_259X = AVAILABLEp(space_258X); - if (v_259X) { + long name_281X; + long key_280X; + long key_279X; + char okayP_278X; + char v_277X; + long temp1_276X; + char v_275X; + long space_274X; + { space_274X = 6 + ((((4 + (strlen((char *) name_273X))))>>2)); + v_275X = AVAILABLEp(space_274X); + if (v_275X) { arg2K0 = 1; arg0K1 = 0; - goto L15416;} + goto L16064;} else { - collect_saving_temps(1, 1, &temp1_260X); - v_261X = AVAILABLEp(space_258X); - if (v_261X) { + collect_saving_temps(1, 1, &temp1_276X); + v_277X = AVAILABLEp(space_274X); + if (v_277X) { arg2K0 = 1; arg0K1 = 0; - goto L15416;} + goto L16064;} else { arg2K0 = 0; arg0K1 = 0; - goto L15416;}}} - L15416: { - okayP_262X = arg2K0; - key_263X = arg0K1; - if (okayP_262X) { - arg0K0 = key_263X; - goto L15403;} + goto L16064;}}} + L16064: { + okayP_278X = arg2K0; + key_279X = arg0K1; + if (okayP_278X) { + arg0K0 = key_279X; + goto L16051;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_263X; - goto L15403;}} - L15403: { - key_264X = arg0K0; - name_265X = enter_string(name_257X, key_264X); - return Hlookup2102((Sexported_bindingsS), name_265X, key_264X);} + arg0K0 = key_279X; + goto L16051;}} + L16051: { + key_280X = arg0K0; + name_281X = enter_string(name_273X, key_280X); + return Hlookup2142((Sexported_bindingsS), name_281X, key_280X);} } -long s48_allocate_stob(long type_266X, long size_267X) +long s48_allocate_stob(long type_282X, long size_283X) { - char * addr_271X; - char v_270X; - long temp1_269X; - char v_268X; - { v_268X = AVAILABLEp(size_267X); - if (v_268X) { - goto L15711;} + char * addr_287X; + char v_286X; + long temp1_285X; + char v_284X; + { v_284X = AVAILABLEp(size_283X); + if (v_284X) { + goto L16359;} else { - collect_saving_temps(1, 1, &temp1_269X); - v_270X = AVAILABLEp(size_267X); - if (v_270X) { - goto L15711;} + collect_saving_temps(1, 1, &temp1_285X); + v_286X = AVAILABLEp(size_283X); + if (v_286X) { + goto L16359;} else { ps_error("Scheme48 heap overflow", 0); - goto L15711;}}} - L15711: { - addr_271X = ALLOCATE_SPACE(type_266X, (4 + size_267X)); - *((long *) addr_271X) = (2 + (((((((size_267X)<<6)) + type_266X))<<2))); - return (3 + (((long) (addr_271X + 4))));} + goto L16359;}}} + L16359: { + addr_287X = ALLOCATE_SPACE(type_282X, (4 + size_283X)); + *((long *) addr_287X) = (2 + (((((((size_283X)<<6)) + type_282X))<<2))); + return (3 + (((long) (addr_287X + 4))));} } -void s48_initialize_vm(char * stack_begin_272X, long stack_size_273X) +void s48_initialize_vm(char * stack_begin_288X, long stack_size_289X) { char arg2K0; char * arg1K0; long arg0K2; long arg0K1; long arg0K0; - char * addr_344X; - long code_343X; - long temp_342X; - char * addr_341X; - char * addr_340X; - char * addr_339X; - long code_338X; - long temp_337X; - char * addr_336X; - char * addr_335X; - char v_334X; - long temp1_333X; - char v_332X; - long cont_331X; + char * addr_360X; + long code_359X; + long temp_358X; + char * addr_357X; + char * addr_356X; + char * addr_355X; + long code_354X; + long temp_353X; + char * addr_352X; + char * addr_351X; + char v_350X; + long temp1_349X; + char v_348X; + long cont_347X; + char * addr_346X; + long code_345X; + long temp_344X; + char * addr_343X; + char * addr_342X; + char v_341X; + long temp1_340X; + char v_339X; + char * a_338X; + long size_337X; + char * start_336X; + char * stack_335X; + long v_334X; + char * addr_333X; + long i_332X; + char * addr_331X; char * addr_330X; - long code_329X; - long temp_328X; - char * addr_327X; - char * addr_326X; - char v_325X; - long temp1_324X; - char v_323X; - char * a_322X; - long size_321X; - char * start_320X; - char * stack_319X; - long v_318X; - char * addr_317X; + long val_329X; + long index_328X; + long h_327X; + long i_326X; + long table_325X; + char * addr_324X; + long v_323X; + char * addr_322X; + long i_321X; + long n_320X; + long string_319X; + long foo_318X; + long table_317X; long i_316X; - char * addr_315X; + long table_315X; char * addr_314X; - long val_313X; - long index_312X; - long h_311X; - long i_310X; - long table_309X; - char * addr_308X; - long v_307X; + long exported_bindings_313X; + long imported_bindings_312X; + long n_311X; + long symbols_310X; + long temp1_309X; + long temp0_308X; + char okayP_307X; char * addr_306X; - long i_305X; - long n_304X; - long string_303X; - long foo_302X; - long table_301X; - long i_300X; - long table_299X; - char * addr_298X; - long exported_bindings_297X; - long imported_bindings_296X; - long n_295X; - long symbols_294X; - long temp1_293X; - long temp0_292X; - char okayP_291X; - char * addr_290X; - long maybe_289X; - long v_288X; - long maybe_287X; - long i_286X; - char v_285X; - long temp1_284X; - long temp0_283X; - char v_282X; - long imported_bindings_281X; - long exported_bindings_280X; - long table_279X; - char * addr_278X; - char v_277X; - long temp1_276X; - char v_275X; - long symbol_table_274X; - { symbol_table_274X = s48_initial_symbols(); - if ((symbol_table_274X == 1)) { - v_275X = AVAILABLEp(1025); - if (v_275X) { - goto L15442;} + long maybe_305X; + long v_304X; + long maybe_303X; + long i_302X; + char v_301X; + long temp1_300X; + long temp0_299X; + char v_298X; + long imported_bindings_297X; + long exported_bindings_296X; + long table_295X; + char * addr_294X; + char v_293X; + long temp1_292X; + char v_291X; + long symbol_table_290X; + { symbol_table_290X = s48_initial_symbols(); + if ((symbol_table_290X == 1)) { + v_291X = AVAILABLEp(1025); + if (v_291X) { + goto L16090;} else { - collect_saving_temps(1, 1, &temp1_276X); - v_277X = AVAILABLEp(1025); - if (v_277X) { - goto L15442;} + collect_saving_temps(1, 1, &temp1_292X); + v_293X = AVAILABLEp(1025); + if (v_293X) { + goto L16090;} else { ps_error("Scheme48 heap overflow", 0); - goto L15442;}}} + goto L16090;}}} else { - Sthe_symbol_tableS = symbol_table_274X; - goto L15834;}} - L15442: { - addr_278X = ALLOCATE_SPACE(2, 4100); - *((long *) addr_278X) = 1048586; - table_279X = 3 + (((long) (addr_278X + 4))); + Sthe_symbol_tableS = symbol_table_290X; + goto L16482;}} + L16090: { + addr_294X = ALLOCATE_SPACE(2, 4100); + *((long *) addr_294X) = 1048586; + table_295X = 3 + (((long) (addr_294X + 4))); arg0K0 = 0; - goto L15517;} - L15834: { - exported_bindings_280X = s48_initial_exported_bindings(); - imported_bindings_281X = s48_initial_imported_bindings(); - v_282X = AVAILABLEp(2050); - if (v_282X) { + goto L16165;} + L16482: { + exported_bindings_296X = s48_initial_exported_bindings(); + imported_bindings_297X = s48_initial_imported_bindings(); + v_298X = AVAILABLEp(2050); + if (v_298X) { arg2K0 = 1; - arg0K1 = imported_bindings_281X; - arg0K2 = exported_bindings_280X; - goto L14420;} + arg0K1 = imported_bindings_297X; + arg0K2 = exported_bindings_296X; + goto L15062;} else { - temp0_283X = collect_saving_temps(imported_bindings_281X, exported_bindings_280X, &temp1_284X); - v_285X = AVAILABLEp(2050); - if (v_285X) { + temp0_299X = collect_saving_temps(imported_bindings_297X, exported_bindings_296X, &temp1_300X); + v_301X = AVAILABLEp(2050); + if (v_301X) { arg2K0 = 1; - arg0K1 = temp0_283X; - arg0K2 = temp1_284X; - goto L14420;} + arg0K1 = temp0_299X; + arg0K2 = temp1_300X; + goto L15062;} else { arg2K0 = 0; - arg0K1 = temp0_283X; - arg0K2 = temp1_284X; - goto L14420;}}} - L15517: { - i_286X = arg0K0; - if ((1024 == i_286X)) { - Sthe_symbol_tableS = table_279X; - maybe_287X = s48_find_all(1); - if ((maybe_287X == 1)) { - collect_saving_temps(0, 0, &v_288X); - maybe_289X = s48_find_all(1); - if ((maybe_289X == 1)) { + arg0K1 = temp0_299X; + arg0K2 = temp1_300X; + goto L15062;}}} + L16165: { + i_302X = arg0K0; + if ((1024 == i_302X)) { + Sthe_symbol_tableS = table_295X; + maybe_303X = s48_find_all(1); + if ((maybe_303X == 1)) { + collect_saving_temps(0, 0, &v_304X); + maybe_305X = s48_find_all(1); + if ((maybe_305X == 1)) { ps_error("insufficient heap space to build symbol table", 0); - arg0K0 = maybe_289X; - goto L15471;} + arg0K0 = maybe_305X; + goto L16119;} else { - arg0K0 = maybe_289X; - goto L15471;}} + arg0K0 = maybe_305X; + goto L16119;}} else { - arg0K0 = maybe_287X; - goto L15471;}} + arg0K0 = maybe_303X; + goto L16119;}} else { - addr_290X = (((char *) (-3 + table_279X))) + (((i_286X)<<2)); - S48_WRITE_BARRIER(table_279X, addr_290X, 1); - *((long *) addr_290X) = 1; - arg0K0 = (1 + i_286X); - goto L15517;}} - L14420: { - okayP_291X = arg2K0; - temp0_292X = arg0K1; - temp1_293X = arg0K2; - if (okayP_291X) { - arg0K0 = temp0_292X; - arg0K1 = temp1_293X; - goto L14381;} + addr_306X = (((char *) (-3 + table_295X))) + (((i_302X)<<2)); + S48_WRITE_BARRIER(table_295X, addr_306X, 1); + *((long *) addr_306X) = 1; + arg0K0 = (1 + i_302X); + goto L16165;}} + L15062: { + okayP_307X = arg2K0; + temp0_308X = arg0K1; + temp1_309X = arg0K2; + if (okayP_307X) { + arg0K0 = temp0_308X; + arg0K1 = temp1_309X; + goto L15023;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = temp0_292X; - arg0K1 = temp1_293X; - goto L14381;}} - L15471: { - symbols_294X = arg0K0; - n_295X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + symbols_294X))) + -4))))>>8))))>>2); + arg0K0 = temp0_308X; + arg0K1 = temp1_309X; + goto L15023;}} + L16119: { + symbols_310X = arg0K0; + n_311X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + symbols_310X))) + -4))))>>8))))>>2); arg0K0 = 0; - goto L15538;} - L14381: { - imported_bindings_296X = arg0K0; - exported_bindings_297X = arg0K1; - if ((1 == imported_bindings_296X)) { - addr_298X = ALLOCATE_SPACE(2, 4100); - *((long *) addr_298X) = 1048586; - table_299X = 3 + (((long) (addr_298X + 4))); + goto L16186;} + L15023: { + imported_bindings_312X = arg0K0; + exported_bindings_313X = arg0K1; + if ((1 == imported_bindings_312X)) { + addr_314X = ALLOCATE_SPACE(2, 4100); + *((long *) addr_314X) = 1048586; + table_315X = 3 + (((long) (addr_314X + 4))); arg0K0 = 0; - goto L14482;} + goto L15124;} else { - arg0K0 = imported_bindings_296X; - goto L14396;}} - L15538: { - i_300X = arg0K0; - if ((i_300X == n_295X)) { - goto L15834;} + arg0K0 = imported_bindings_312X; + goto L15038;}} + L16186: { + i_316X = arg0K0; + if ((i_316X == n_311X)) { + goto L16482;} else { - table_301X = Sthe_symbol_tableS; - foo_302X = *((long *) ((((char *) (-3 + symbols_294X))) + (((i_300X)<<2)))); - string_303X = *((long *) (((char *) (-3 + foo_302X)))); - n_304X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_303X))) + -4))))>>8)); + table_317X = Sthe_symbol_tableS; + foo_318X = *((long *) ((((char *) (-3 + symbols_310X))) + (((i_316X)<<2)))); + string_319X = *((long *) (((char *) (-3 + foo_318X)))); + n_320X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_319X))) + -4))))>>8)); arg0K0 = 0; arg0K1 = 0; - goto L13005;}} - L14482: { - i_305X = arg0K0; - if ((1024 == i_305X)) { - arg0K0 = table_299X; - goto L14396;} + goto L13647;}} + L15124: { + i_321X = arg0K0; + if ((1024 == i_321X)) { + arg0K0 = table_315X; + goto L15038;} else { - addr_306X = (((char *) (-3 + table_299X))) + (((i_305X)<<2)); - S48_WRITE_BARRIER(table_299X, addr_306X, 1); - *((long *) addr_306X) = 1; - arg0K0 = (1 + i_305X); - goto L14482;}} - L14396: { - v_307X = arg0K0; - Simported_bindingsS = v_307X; - if ((1 == exported_bindings_297X)) { - addr_308X = ALLOCATE_SPACE(2, 4100); - *((long *) addr_308X) = 1048586; - table_309X = 3 + (((long) (addr_308X + 4))); + addr_322X = (((char *) (-3 + table_315X))) + (((i_321X)<<2)); + S48_WRITE_BARRIER(table_315X, addr_322X, 1); + *((long *) addr_322X) = 1; + arg0K0 = (1 + i_321X); + goto L15124;}} + L15038: { + v_323X = arg0K0; + Simported_bindingsS = v_323X; + if ((1 == exported_bindings_313X)) { + addr_324X = ALLOCATE_SPACE(2, 4100); + *((long *) addr_324X) = 1048586; + table_325X = 3 + (((long) (addr_324X + 4))); arg0K0 = 0; - goto L14459;} + goto L15101;} else { - arg0K0 = exported_bindings_297X; - goto L14409;}} - L13005: { - i_310X = arg0K0; - h_311X = arg0K1; - if ((i_310X < n_304X)) { - arg0K0 = (1 + i_310X); - arg0K1 = (h_311X + (((*((unsigned char *) ((((char *) (-3 + string_303X))) + i_310X)))))); - goto L13005;} + arg0K0 = exported_bindings_313X; + goto L15051;}} + L13647: { + i_326X = arg0K0; + h_327X = arg0K1; + if ((i_326X < n_320X)) { + arg0K0 = (1 + i_326X); + arg0K1 = (h_327X + (((*((unsigned char *) ((((char *) (-3 + string_319X))) + i_326X)))))); + goto L13647;} else { - index_312X = 1023 & h_311X; - val_313X = *((long *) ((((char *) (-3 + table_301X))) + (((index_312X)<<2)))); - addr_314X = (((char *) (-3 + foo_302X))) + 4; - S48_WRITE_BARRIER(foo_302X, addr_314X, val_313X); - *((long *) addr_314X) = val_313X; - addr_315X = (((char *) (-3 + table_301X))) + (((index_312X)<<2)); - S48_WRITE_BARRIER(table_301X, addr_315X, foo_302X); - *((long *) addr_315X) = foo_302X; - arg0K0 = (1 + i_300X); - goto L15538;}} - L14459: { - i_316X = arg0K0; - if ((1024 == i_316X)) { - arg0K0 = table_309X; - goto L14409;} - else { - addr_317X = (((char *) (-3 + table_309X))) + (((i_316X)<<2)); - S48_WRITE_BARRIER(table_309X, addr_317X, 1); - *((long *) addr_317X) = 1; + index_328X = 1023 & h_327X; + val_329X = *((long *) ((((char *) (-3 + table_317X))) + (((index_328X)<<2)))); + addr_330X = (((char *) (-3 + foo_318X))) + 4; + S48_WRITE_BARRIER(foo_318X, addr_330X, val_329X); + *((long *) addr_330X) = val_329X; + addr_331X = (((char *) (-3 + table_317X))) + (((index_328X)<<2)); + S48_WRITE_BARRIER(table_317X, addr_331X, foo_318X); + *((long *) addr_331X) = foo_318X; arg0K0 = (1 + i_316X); - goto L14459;}} - L14409: { - v_318X = arg0K0; - Sexported_bindingsS = v_318X; - if ((stack_size_273X < 8131)) { - stack_319X = (char *)malloc(32524); - if ((stack_319X == NULL)) { - ps_error("out of memory, unable to continue", 0); - arg1K0 = stack_319X; - arg0K1 = 8131; - goto L14928;} - else { - arg1K0 = stack_319X; - arg0K1 = 8131; - goto L14928;}} + goto L16186;}} + L15101: { + i_332X = arg0K0; + if ((1024 == i_332X)) { + arg0K0 = table_325X; + goto L15051;} else { - arg1K0 = stack_begin_272X; - arg0K1 = stack_size_273X; - goto L14928;}} - L14928: { - start_320X = arg1K0; - size_321X = arg0K1; - Sstack_beginS = start_320X; - Sstack_endS = (start_320X + (((size_321X)<<2))); + addr_333X = (((char *) (-3 + table_325X))) + (((i_332X)<<2)); + S48_WRITE_BARRIER(table_325X, addr_333X, 1); + *((long *) addr_333X) = 1; + arg0K0 = (1 + i_332X); + goto L15101;}} + L15051: { + v_334X = arg0K0; + Sexported_bindingsS = v_334X; + if ((stack_size_289X < 8131)) { + stack_335X = (char *)malloc(32524); + if ((stack_335X == NULL)) { + ps_error("out of memory, unable to continue", 0); + arg1K0 = stack_335X; + arg0K1 = 8131; + goto L15576;} + else { + arg1K0 = stack_335X; + arg0K1 = 8131; + goto L15576;}} + else { + arg1K0 = stack_begin_288X; + arg0K1 = stack_size_289X; + goto L15576;}} + L15576: { + start_336X = arg1K0; + size_337X = arg0K1; + Sstack_beginS = start_336X; + Sstack_endS = (start_336X + (((size_337X)<<2))); Sstack_limitS = ((Sstack_beginS) + 524); SstackS = ((Sstack_endS) + -4); ScontS = 1; SenvS = 17; - arg1K0 = start_320X; - goto L14960;} - L14960: { - a_322X = arg1K0; - if ((a_322X == (Sstack_endS))) { - v_323X = AVAILABLEp(5); - if (v_323X) { - goto L14977;} + arg1K0 = start_336X; + goto L15608;} + L15608: { + a_338X = arg1K0; + if ((a_338X == (Sstack_endS))) { + v_339X = AVAILABLEp(5); + if (v_339X) { + goto L15625;} else { - collect_saving_temps(1, 1, &temp1_324X); - v_325X = AVAILABLEp(5); - if (v_325X) { - goto L14977;} + collect_saving_temps(1, 1, &temp1_340X); + v_341X = AVAILABLEp(5); + if (v_341X) { + goto L15625;} else { ps_error("Scheme48 heap overflow", 0); - goto L14977;}}} + goto L15625;}}} else { - *((long *) a_322X) = 252645135; - arg1K0 = (a_322X + 4); - goto L14960;}} - L14977: { - addr_326X = ALLOCATE_SPACE(17, 6); - *((long *) addr_326X) = 582; - addr_327X = ALLOCATE_SPACE(11, 12); - *((long *) addr_327X) = 2094; - temp_328X = 3 + (((long) (addr_327X + 4))); - code_329X = 3 + (((long) (addr_326X + 4))); - addr_330X = ((char *) (-3 + temp_328X)); - S48_WRITE_BARRIER(temp_328X, addr_330X, code_329X); - *((long *) addr_330X) = code_329X; - *((unsigned char *) (((char *) (-3 + code_329X)))) = 23; - *((unsigned char *) ((((char *) (-3 + code_329X))) + 1)) = 31; + *((long *) a_338X) = 252645135; + arg1K0 = (a_338X + 4); + goto L15608;}} + L15625: { + addr_342X = ALLOCATE_SPACE(18, 6); + *((long *) addr_342X) = 586; + addr_343X = ALLOCATE_SPACE(12, 12); + *((long *) addr_343X) = 2098; + temp_344X = 3 + (((long) (addr_343X + 4))); + code_345X = 3 + (((long) (addr_342X + 4))); + addr_346X = ((char *) (-3 + temp_344X)); + S48_WRITE_BARRIER(temp_344X, addr_346X, code_345X); + *((long *) addr_346X) = code_345X; + *((unsigned char *) (((char *) (-3 + code_345X)))) = 23; + *((unsigned char *) ((((char *) (-3 + code_345X))) + 1)) = 31; SstackS = ((SstackS) + -20); - *((long *) ((SstackS) + 4)) = 4262; - cont_331X = 3 + (((long) ((SstackS) + 8))); - *((long *) ((((char *) (-3 + cont_331X))) + 4)) = 0; - *((long *) ((((char *) (-3 + cont_331X))) + 8)) = temp_328X; - *((long *) ((((char *) (-3 + cont_331X))) + 12)) = (SenvS); - *((long *) (((char *) (-3 + cont_331X)))) = (ScontS); - ScontS = cont_331X; + *((long *) ((SstackS) + 4)) = 4266; + cont_347X = 3 + (((long) ((SstackS) + 8))); + *((long *) ((((char *) (-3 + cont_347X))) + 4)) = 0; + *((long *) ((((char *) (-3 + cont_347X))) + 8)) = temp_344X; + *((long *) ((((char *) (-3 + cont_347X))) + 12)) = (SenvS); + *((long *) (((char *) (-3 + cont_347X)))) = (ScontS); + ScontS = cont_347X; Sbottom_of_stackS = (ScontS); - v_332X = AVAILABLEp(5); - if (v_332X) { - goto L15156;} + v_348X = AVAILABLEp(5); + if (v_348X) { + goto L15804;} else { - collect_saving_temps(1, 1, &temp1_333X); - v_334X = AVAILABLEp(5); - if (v_334X) { - goto L15156;} + collect_saving_temps(1, 1, &temp1_349X); + v_350X = AVAILABLEp(5); + if (v_350X) { + goto L15804;} else { ps_error("Scheme48 heap overflow", 0); - goto L15156;}}} - L15156: { - addr_335X = ALLOCATE_SPACE(17, 6); - *((long *) addr_335X) = 582; - addr_336X = ALLOCATE_SPACE(11, 12); - *((long *) addr_336X) = 2094; - temp_337X = 3 + (((long) (addr_336X + 4))); - code_338X = 3 + (((long) (addr_335X + 4))); - addr_339X = ((char *) (-3 + temp_337X)); - S48_WRITE_BARRIER(temp_337X, addr_339X, code_338X); - *((long *) addr_339X) = code_338X; - *((unsigned char *) (((char *) (-3 + code_338X)))) = 34; - *((unsigned char *) ((((char *) (-3 + code_338X))) + 1)) = 140; - Sinterrupt_templateS = temp_337X; - addr_340X = ALLOCATE_SPACE(17, 6); - *((long *) addr_340X) = 582; - addr_341X = ALLOCATE_SPACE(11, 12); - *((long *) addr_341X) = 2094; - temp_342X = 3 + (((long) (addr_341X + 4))); - code_343X = 3 + (((long) (addr_340X + 4))); - addr_344X = ((char *) (-3 + temp_342X)); - S48_WRITE_BARRIER(temp_342X, addr_344X, code_343X); - *((long *) addr_344X) = code_343X; - *((unsigned char *) (((char *) (-3 + code_343X)))) = 137; - *((unsigned char *) ((((char *) (-3 + code_343X))) + 1)) = 123; - Sexception_templateS = temp_342X; + goto L15804;}}} + L15804: { + addr_351X = ALLOCATE_SPACE(18, 6); + *((long *) addr_351X) = 586; + addr_352X = ALLOCATE_SPACE(12, 12); + *((long *) addr_352X) = 2098; + temp_353X = 3 + (((long) (addr_352X + 4))); + code_354X = 3 + (((long) (addr_351X + 4))); + addr_355X = ((char *) (-3 + temp_353X)); + S48_WRITE_BARRIER(temp_353X, addr_355X, code_354X); + *((long *) addr_355X) = code_354X; + *((unsigned char *) (((char *) (-3 + code_354X)))) = 34; + *((unsigned char *) ((((char *) (-3 + code_354X))) + 1)) = 142; + Sinterrupt_templateS = temp_353X; + addr_356X = ALLOCATE_SPACE(18, 6); + *((long *) addr_356X) = 586; + addr_357X = ALLOCATE_SPACE(12, 12); + *((long *) addr_357X) = 2098; + temp_358X = 3 + (((long) (addr_357X + 4))); + code_359X = 3 + (((long) (addr_356X + 4))); + addr_360X = ((char *) (-3 + temp_358X)); + S48_WRITE_BARRIER(temp_358X, addr_360X, code_359X); + *((long *) addr_360X) = code_359X; + *((unsigned char *) (((char *) (-3 + code_359X)))) = 139; + *((unsigned char *) ((((char *) (-3 + code_359X))) + 1)) = 125; + Sexception_templateS = temp_358X; return;} } -long s48_restart(long proc_345X, long nargs_346X) +long s48_restart(long proc_361X, long nargs_362X) { char * arg1K1; char * arg1K0; @@ -1886,6 +1969,8 @@ long s48_restart(long proc_345X, long nargs_346X) long get_current_port0_return_value; int copy_continuation_from_heapB_return_tag; long copy_continuation_from_heapB0_return_value; + int collect_saving_temp_return_tag; + long collect_saving_temp0_return_value; int copy_listS_return_tag; long copy_listS0_return_value; int pop_args_GlistS_return_tag; @@ -1903,1157 +1988,1191 @@ long s48_restart(long proc_345X, long nargs_346X) int check_events_return_tag; char check_events0_return_value; int loseD0_return_tag; - long status_347X; - long list_348X; - long marker_349X; - long cont_350X; - long list_351X; - long length_352X; - long start_353X; - long count_354X; - long env_355X; - long cont_356X; - long key_357X; - long reason_358X; - long env_359X; - long key_360X; - long reason_361X; - long key_362X; - long list_363X; - long count_364X; - long wants_stack_args_365X; - long stack_arg_count_366X; - long list_args_367X; - long list_arg_count_368X; - char *message_369X; - long pc_1284X; - long tem_1283X; - long cont_1282X; - long i_1281X; - long string_1280X; - char * addr_1279X; - long len_1278X; - long len_1277X; - long x_1276X; - char *string_1275X; - char move_slowP_1274X; - long slow_1273X; - long len_1272X; - long fast_1271X; - long v_1270X; - char *v_1269X; - long v_1268X; - long v_1267X; - long obj_1266X; - long env_1265X; - long thread_1264X; - long v_1263X; - long new_cont_1262X; - char * top_1261X; - char * addr_1260X; - long x_1259X; - char * addr_1258X; - long a_1257X; - long last_1256X; - long l_1255X; - long x_1254X; - char * addr_1253X; - long a_1252X; - long list_1251X; - long temp_1250X; - char okayP_1249X; - char v_1248X; - long temp1_1247X; - long temp0_1246X; - char v_1245X; - long space_1244X; - long x_1243X; - char * addr_1242X; - long a_1241X; - long count_1240X; - long args_1239X; - long start_1238X; - long temp_1237X; - char okayP_1236X; - char v_1235X; - long temp1_1234X; - long temp0_1233X; - char v_1232X; - long space_1231X; - long env_1230X; - long cont_1229X; - char * addr_1228X; - long new_1227X; - long p_1226X; - long env_1225X; - long top_1224X; - char * addr_1223X; - long new_1222X; - char * data_addr_1221X; - char * addr_1220X; - long header_1219X; - long new_1218X; - char * data_addr_1217X; - char * addr_1216X; - long header_1215X; - long p_1214X; - long previous_1213X; - long cont_1212X; - long end_1211X; - long v_1210X; - long p_1209X; - char * arg_1208X; - char * loc_1207X; - long stob_1206X; - char * top_1205X; - long arg_count_1204X; - long i_1203X; - char * p_1202X; - long v_1201X; - long l_1200X; - long i_1199X; - long key_1198X; - char okayP_1197X; - long list_1196X; - char v_1195X; - long temp1_1194X; - char v_1193X; - long space_1192X; - long x_1191X; - long v_1190X; - long x_1189X; - long v_1188X; - long count_1187X; - long x_1186X; - long v_1185X; - long status_1184X; - long channel_1183X; - long type_1182X; - char v_1181X; - long template_1180X; - char not_firstP_1179X; - long cont_1178X; - char not_firstP_1177X; - FILE * out_1176X; - long current_template_1175X; - long why_1174X; - long x_1173X; - long x_1172X; - long x_1171X; - char * addr_1170X; - long status_1169X; - char pendingP_1168X; - char eofP_1167X; - long got_1166X; - long length_1165X; - long v_1164X; - long obj_1163X; - long reason_1162X; - long status_1161X; - long v_1160X; - long v_1159X; - long key_1158X; - char okayP_1157X; - char v_1156X; - char * addr_1155X; - long value_1154X; - long offset_1153X; - long i_1152X; + long status_363X; + long list_364X; + long marker_365X; + long cont_366X; + long value_367X; + long list_368X; + long length_369X; + long start_370X; + long count_371X; + long env_372X; + long cont_373X; + long key_374X; + long reason_375X; + long env_376X; + long key_377X; + long reason_378X; + long key_379X; + long list_380X; + long count_381X; + long wants_stack_args_382X; + long stack_arg_count_383X; + long list_args_384X; + long list_arg_count_385X; + char *message_386X; + long pc_1334X; + long tem_1333X; + long cont_1332X; + long i_1331X; + long string_1330X; + char * addr_1329X; + long len_1328X; + long len_1327X; + long x_1326X; + char *string_1325X; + char move_slowP_1324X; + long slow_1323X; + long len_1322X; + long fast_1321X; + long v_1320X; + char *v_1319X; + long v_1318X; + long v_1317X; + long obj_1316X; + long env_1315X; + long thread_1314X; + long v_1313X; + long new_cont_1312X; + char * top_1311X; + long v_1310X; + long value_1309X; + char * addr_1308X; + long x_1307X; + char * addr_1306X; + long a_1305X; + long last_1304X; + long l_1303X; + long x_1302X; + char * addr_1301X; + long a_1300X; + long list_1299X; + long temp_1298X; + char okayP_1297X; + char v_1296X; + long temp1_1295X; + long temp0_1294X; + char v_1293X; + long space_1292X; + long x_1291X; + char * addr_1290X; + long a_1289X; + long count_1288X; + long args_1287X; + long start_1286X; + long temp_1285X; + char okayP_1284X; + char v_1283X; + long temp1_1282X; + long temp0_1281X; + char v_1280X; + long space_1279X; + long env_1278X; + long cont_1277X; + char * addr_1276X; + long new_1275X; + long p_1274X; + long env_1273X; + long top_1272X; + char * addr_1271X; + long new_1270X; + char * data_addr_1269X; + char * addr_1268X; + long header_1267X; + long new_1266X; + char * data_addr_1265X; + char * addr_1264X; + long header_1263X; + long p_1262X; + long previous_1261X; + long cont_1260X; + long end_1259X; + long v_1258X; + long p_1257X; + char * arg_1256X; + char * loc_1255X; + long stob_1254X; + char * top_1253X; + long arg_count_1252X; + long i_1251X; + char * p_1250X; + long v_1249X; + long l_1248X; + long i_1247X; + long key_1246X; + char okayP_1245X; + long list_1244X; + char v_1243X; + long temp1_1242X; + char v_1241X; + long space_1240X; + long x_1239X; + long v_1238X; + long x_1237X; + long v_1236X; + long count_1235X; + long x_1234X; + long interrupt_bit_1233X; + long status_1232X; + long channel_1231X; + long type_1230X; + char v_1229X; + long template_1228X; + char not_firstP_1227X; + long cont_1226X; + char not_firstP_1225X; + FILE * out_1224X; + long current_template_1223X; + long why_1222X; + long x_1221X; + long x_1220X; + long x_1219X; + char * addr_1218X; + long status_1217X; + char pendingP_1216X; + char eofP_1215X; + long got_1214X; + long length_1213X; + long v_1212X; + long obj_1211X; + long reason_1210X; + long status_1209X; + long v_1208X; + long v_1207X; + long key_1206X; + char okayP_1205X; + char v_1204X; + char * addr_1203X; + long value_1202X; + long offset_1201X; + long i_1200X; + long count_1199X; + long y_1198X; + char * addr_1197X; + long val_1196X; + char * addr_1195X; + long value_1194X; + long len_1193X; + long s2_1192X; + long foo_1191X; + long previous_foo_1190X; + long val_1189X; + char * addr_1188X; + char * addr_1187X; + long val_1186X; + long x_1185X; + char * addr_1184X; + long status_1183X; + char pendingP_1182X; + long got_1181X; + long length_1180X; + long count_1179X; + long start_1178X; + char waitP_1177X; + long x_1176X; + long status_1175X; + long channel_1174X; + long v_1173X; + long v_1172X; + long v_1171X; + long reason_1170X; + long channel_1169X; + long index_1168X; + long val_1167X; + long final_stack_arg_count_1166X; + char v_1165X; + long temp1_1164X; + char v_1163X; + long space_1162X; + long stack_arg_count_1161X; + long stack_slots_1160X; + long x_1159X; + char x_1158X; + long channel_1157X; + long x_1156X; + char x_1155X; + long channel_1154X; + long obj_1153X; + long arg_count_1152X; long count_1151X; - long y_1150X; - char * addr_1149X; - long val_1148X; - char * addr_1147X; - long value_1146X; - long len_1145X; - long s2_1144X; - long foo_1143X; - long previous_foo_1142X; - long val_1141X; - long x_1140X; - char * addr_1139X; - long status_1138X; - char pendingP_1137X; - long got_1136X; - long length_1135X; - long count_1134X; - long start_1133X; - char waitP_1132X; - long x_1131X; + long i_1150X; + long env_1149X; + long value_1148X; + char *v_1147X; + long y_1146X; + long i_1145X; + long l_1144X; + long bucket_1143X; + long index_1142X; + long h_1141X; + long i_1140X; + long v_1139X; + long v_1138X; + long x_1137X; + long status_1136X; + long reason_1135X; + long status_1134X; + long undumpable_count_1133X; + long undumpables_1132X; + long status_1131X; long status_1130X; - long channel_1129X; + long resume_proc_1129X; long v_1128X; - long v_1127X; - long v_1126X; - long reason_1125X; - long channel_1124X; - long index_1123X; + long n_1127X; + char * addr_1126X; + long prev_1125X; + long ch_1124X; + long val_1123X; long val_1122X; - long final_stack_arg_count_1121X; - char v_1120X; - long temp1_1119X; - char v_1118X; - long space_1117X; - long stack_arg_count_1116X; - long stack_slots_1115X; - char x_1114X; - long channel_1113X; - long obj_1112X; - long arg_count_1111X; - long count_1110X; - long i_1109X; - long env_1108X; - long value_1107X; - char *v_1106X; - long y_1105X; - long i_1104X; - long l_1103X; - long bucket_1102X; - long index_1101X; - long h_1100X; - long i_1099X; - long v_1098X; - long v_1097X; - long x_1096X; - long status_1095X; - long reason_1094X; - long v_1093X; - long reason_1092X; - long x_1091X; - long obj_1090X; - long v_1089X; - long v_1088X; - long len_1087X; - long s2_1086X; - char * addr_1085X; - long x_1084X; - char * addr_1083X; - long foo_1082X; - long rest_list_1081X; - long i_1080X; - long n_1079X; - long args_1078X; - long skip_1077X; - long template_1076X; - long stack_arg_count_1075X; - long skip_1074X; - long skip_1073X; - long template_1072X; - long stack_arg_count_1071X; - long skip_1070X; - char * addr_1069X; - long next_1068X; - long channel_1067X; - long m_1066X; - long i_1065X; - long value_1064X; - long back_1063X; - long env_1062X; - long offset_1061X; - long i_1060X; - long x_1059X; - char * addr_1058X; - long a_1057X; - long env_1056X; - long v_1055X; - long p_1054X; - long key_1053X; - long string_1052X; - char * addr_1051X; - long len_1050X; - long n_1049X; - long table_1048X; - long x_1047X; - long arg2_1046X; - long key_1045X; - char temp_1044X; - char minutesP_1043X; - long status_1042X; - long status_1041X; - long undumpable_count_1040X; - long undumpables_1039X; - long status_1038X; - long status_1037X; - long status_1036X; - long status_1035X; - FILE * port_1034X; - char x_1033X; - long comment_string_1032X; - long obj_1031X; - long arg3_1030X; - long arg2_1029X; - long key_1028X; - long x_1027X; - char * addr_1026X; - long channel_1025X; - long res_1024X; - long i_1023X; - char * addr_1022X; - char * addr_1021X; - long val_1020X; - char v_1019X; - long channel_1018X; - long count_1017X; - long start_1016X; + long val_1121X; + long reason_1120X; + long x_1119X; + long obj_1118X; + long v_1117X; + long v_1116X; + long len_1115X; + long s2_1114X; + char * addr_1113X; + long x_1112X; + char * addr_1111X; + long foo_1110X; + long rest_list_1109X; + long i_1108X; + long n_1107X; + long args_1106X; + long skip_1105X; + long template_1104X; + long stack_arg_count_1103X; + long skip_1102X; + long skip_1101X; + long template_1100X; + long stack_arg_count_1099X; + long skip_1098X; + long x_1097X; + char * addr_1096X; + long next_1095X; + long channel_1094X; + char * addr_1093X; + long next_1092X; + long channel_1091X; + long m_1090X; + long i_1089X; + long value_1088X; + long back_1087X; + long env_1086X; + long offset_1085X; + long i_1084X; + long x_1083X; + char * addr_1082X; + long a_1081X; + long env_1080X; + long v_1079X; + long p_1078X; + long key_1077X; + long string_1076X; + char * addr_1075X; + long len_1074X; + long n_1073X; + long table_1072X; + long x_1071X; + long arg2_1070X; + long key_1069X; + char temp_1068X; + char minutesP_1067X; + long status_1066X; + long v_1065X; + char v_1064X; + long status_1063X; + long status_1062X; + FILE * port_1061X; + char x_1060X; + long comment_string_1059X; + long obj_1058X; + long arg3_1057X; + long arg2_1056X; + long key_1055X; + long x_1054X; + char * addr_1053X; + long channel_1052X; + long res_1051X; + long i_1050X; + char * addr_1049X; + long next_1048X; + long channel_1047X; + char * addr_1046X; + long next_1045X; + long channel_1044X; + long n_1043X; + char * addr_1042X; + long head_1041X; + long x_1040X; + long status_1039X; + char readyP_1038X; + long channel_1037X; + long obj_1036X; + long key_1035X; + char x_1034X; + char inputP_1033X; + char v_1032X; + long channel_1031X; + long count_1030X; + long start_1029X; + long obj_1028X; + long arg4_1027X; + long arg3_1026X; + long arg2_1025X; + long key_1024X; + long arg5_1023X; + long arg4_1022X; + long arg3_1021X; + long arg2_1020X; + long key_1019X; + long x_1018X; + long status_1017X; + long channel_1016X; long obj_1015X; - long arg4_1014X; - long arg3_1013X; + long key_1014X; + long mode_1013X; long arg2_1012X; long key_1011X; - long arg5_1010X; - long arg4_1009X; - long arg3_1008X; - long arg2_1007X; - long key_1006X; - long x_1005X; - long status_1004X; - long channel_1003X; - long obj_1002X; - long key_1001X; - long mode_1000X; - long arg2_999X; - long key_998X; - long bucket_997X; - long index_996X; - long h_995X; - long i_994X; - long i_993X; - long i_992X; - char * addr_991X; - long i_990X; - long i_989X; - long i_988X; - long c_987X; - long b_986X; - long c_985X; + long bucket_1010X; + long index_1009X; + long h_1008X; + long i_1007X; + long i_1006X; + long i_1005X; + char * addr_1004X; + long i_1003X; + long i_1002X; + long i_1001X; + long c_1000X; + long b_999X; + long c_998X; + long b_997X; + char x_996X; + long c_995X; + long b_994X; + long c_993X; + long mid_c_992X; + long v_991X; + long v_990X; + long lo_c_989X; + long hi_b_988X; + long hi_a_987X; + long lo_b_986X; + long lo_a_985X; long b_984X; - char x_983X; - long c_982X; - long b_981X; - long c_980X; - long mid_c_979X; - long v_978X; - long v_977X; - long lo_c_976X; - long hi_b_975X; - long hi_a_974X; - long lo_b_973X; - long lo_a_972X; - long b_971X; - long v_970X; - long v_969X; - long args_968X; - long next_967X; - long next_op_966X; - long cont_965X; - long index_964X; - long length_963X; - long wants_stack_args_962X; - long skip_961X; - long skip_960X; - long stack_space_959X; - long protocol_958X; - long index_957X; - long length_956X; - long wants_stack_args_955X; - long skip_954X; - long skip_953X; - long stack_space_952X; - long protocol_951X; - long n_950X; - long tem_949X; - long stack_arg_count_948X; - long v_947X; - long v_946X; - long key_945X; - long start_i_944X; - long temp_943X; - char okayP_942X; - long key_941X; - char okayP_940X; - long obj_939X; - long obj_938X; - long type_937X; - long thing_936X; - long stuff_935X; - char * addr_934X; - long val_933X; - long x_932X; - long i_931X; - long b_930X; - long p_929X; - long port_928X; - long Kchar_927X; - long x_926X; - long i_925X; - long b_924X; - long p_923X; - long p_922X; - long port_921X; - char * addr_920X; - long val_919X; - long x_918X; - long i_917X; - long b_916X; - long p_915X; - long p_914X; - long port_913X; - long list_912X; - long head_911X; - char move_slowP_910X; - long slow_909X; - long list_908X; - long n_907X; - long arg2_906X; - long val_905X; - long mseconds_904X; - long seconds_903X; - long option_902X; - long key_901X; - char okayP_900X; - long result_899X; - char * args_898X; - long name_897X; - long proc_896X; - long rest_list_895X; + long v_983X; + long v_982X; + long args_981X; + long next_980X; + long next_op_979X; + long cont_978X; + long index_977X; + long length_976X; + long wants_stack_args_975X; + long skip_974X; + long skip_973X; + long stack_space_972X; + long protocol_971X; + long index_970X; + long length_969X; + long wants_stack_args_968X; + long skip_967X; + long skip_966X; + long stack_space_965X; + long protocol_964X; + long n_963X; + long tem_962X; + long stack_arg_count_961X; + long v_960X; + long v_959X; + long key_958X; + long start_i_957X; + long temp_956X; + char okayP_955X; + long key_954X; + char okayP_953X; + long obj_952X; + long obj_951X; + long type_950X; + long thing_949X; + long stuff_948X; + char * addr_947X; + long val_946X; + long x_945X; + long i_944X; + long b_943X; + long p_942X; + long port_941X; + long Kchar_940X; + long x_939X; + long i_938X; + long b_937X; + long p_936X; + long p_935X; + long port_934X; + char * addr_933X; + long val_932X; + long x_931X; + long i_930X; + long b_929X; + long p_928X; + long p_927X; + long port_926X; + long list_925X; + long head_924X; + char move_slowP_923X; + long slow_922X; + long list_921X; + long n_920X; + long arg2_919X; + long val_918X; + long mseconds_917X; + long seconds_916X; + long option_915X; + long key_914X; + char okayP_913X; + long result_912X; + char * args_911X; + long name_910X; + long proc_909X; + long rest_list_908X; + long x_907X; + long tem_906X; + long pc_905X; + long v_904X; + long vector_903X; + long type_902X; + char firstP_901X; + long v_900X; + long vector_899X; + char firstP_898X; + long x_897X; + char * addr_896X; + long b_895X; long x_894X; - long tem_893X; - long pc_892X; - long v_891X; - long value_890X; - long vector_889X; - long type_888X; - char firstP_887X; - long v_886X; - long vector_885X; - char firstP_884X; - long x_883X; - char * addr_882X; - long b_881X; - long x_880X; - char * addr_879X; - long proc_878X; - long stob_877X; - long h_876X; - long i_875X; - long key_874X; - char okayP_873X; - long y_872X; + char * addr_893X; + long proc_892X; + long stob_891X; + long h_890X; + long i_889X; + long key_888X; + char okayP_887X; + char inputP_886X; + long key_885X; + char okayP_884X; + long key_883X; + char okayP_882X; + long key_881X; + char okayP_880X; + long key_879X; + char okayP_878X; + long key_877X; + char okayP_876X; + long val_875X; + char * addr_874X; + char * addr_873X; + long val_872X; long n_871X; - char * addr_870X; - long prev_869X; - long ch_868X; - long val_867X; - long key_866X; - char okayP_865X; - long key_864X; - char okayP_863X; - long key_862X; - char okayP_861X; - long key_860X; - char okayP_859X; - long val_858X; - char * addr_857X; - char * addr_856X; - long val_855X; - long n_854X; - long string_853X; - long table_852X; - long obj_851X; - long string_850X; - char * addr_849X; - long len_848X; - long vector_847X; - char * addr_846X; - long value_845X; - char * addr_844X; - long len_843X; - long init_842X; - char okayP_841X; - long rest_list_840X; - long stack_nargs_839X; - long new_838X; - char * addr_837X; - long len_836X; - long type_835X; - long new_834X; - char * addr_833X; - long len_832X; - long type_831X; - long value_830X; - long val_829X; - long val_828X; - long val_827X; - long val_826X; - long r_825X; - long n_824X; - long a_823X; - long a_822X; - long val_821X; - long val_820X; - long val_819X; - long val_818X; - long val_817X; - long a_816X; - long a_815X; - long val_814X; - long val_813X; - long delta_812X; - long delta_811X; - long offset_810X; - long key_809X; - char okayP_808X; - char v_807X; - long tem_806X; - long key_805X; - char okayP_804X; + long string_870X; + long table_869X; + long obj_868X; + long string_867X; + char * addr_866X; + long len_865X; + long vector_864X; + char * addr_863X; + long value_862X; + char * addr_861X; + long len_860X; + long init_859X; + char okayP_858X; + long rest_list_857X; + long stack_nargs_856X; + long new_855X; + char * addr_854X; + long len_853X; + long type_852X; + long new_851X; + char * addr_850X; + long len_849X; + long type_848X; + long value_847X; + long val_846X; + long val_845X; + long val_844X; + long val_843X; + long r_842X; + long n_841X; + long a_840X; + long a_839X; + long val_838X; + long val_837X; + long val_836X; + long val_835X; + long val_834X; + long a_833X; + long a_832X; + long val_831X; + long val_830X; + long delta_829X; + long delta_828X; + long offset_827X; + long key_826X; + char okayP_825X; + char v_824X; + long tem_823X; + long key_822X; + char okayP_821X; + long list_arg_count_820X; + long list_args_819X; + long stack_nargs_818X; + long obj_817X; + char * addr_816X; + long list_args_815X; + long follower_814X; + long list_813X; + long args_812X; + long list_arg_count_811X; + char okayP_810X; + long stack_nargs_809X; + long list_args_808X; + long total_arg_count_807X; + long code_806X; + long obj_805X; + long obj_804X; long list_arg_count_803X; long list_args_802X; - long stack_nargs_801X; + long stack_arg_count_801X; long obj_800X; - char * addr_799X; - long list_args_798X; - long follower_797X; - long list_796X; - long args_795X; - long list_arg_count_794X; - char okayP_793X; - long stack_nargs_792X; - long list_args_791X; - long total_arg_count_790X; + char * arg_799X; + char * loc_798X; + long args_797X; + long v_796X; + long v_795X; + long v_794X; + long list_arg_count_793X; + long list_args_792X; + long stack_arg_count_791X; + long exception_790X; long code_789X; - long obj_788X; - long obj_787X; - long list_arg_count_786X; - long list_args_785X; - long stack_arg_count_784X; - long obj_783X; - char * arg_782X; - char * loc_781X; - long args_780X; - long v_779X; - long v_778X; - long v_777X; - long list_arg_count_776X; - long list_args_775X; - long stack_arg_count_774X; - long exception_773X; - long code_772X; - long stack_arg_count_771X; - char v_770X; - long key_769X; - char okayP_768X; - long key_767X; - char okayP_766X; - char * addr_765X; - long value_764X; - long v_763X; - long new_env_762X; - char * addr_761X; - long len_760X; - char v_759X; - long temp1_758X; - long temp0_757X; - char v_756X; - long env_755X; - char v_754X; - long temp1_753X; - char v_752X; - long space_751X; - char * addr_750X; - long value_749X; - long index_748X; - long i_747X; - long env_746X; - long i_745X; - long env_744X; - long i_743X; - long env_742X; - long obj_741X; - long opcode_740X; - long nargs_739X; - FILE * out_738X; - long x_737X; - long v_736X; - long v_735X; - long v_734X; - long v_733X; - long v_732X; - long v_731X; - long v_730X; - long count_729X; - long to_index_728X; - long from_index_727X; - long arg5_726X; - long arg4_725X; - long arg3_724X; - long arg2_723X; - char * addr_722X; - long len_721X; - long value_720X; - long index_719X; - long arg4_718X; - long arg3_717X; - long arg2_716X; - long len_715X; - long index_714X; - long arg3_713X; - long arg2_712X; - long list_711X; - long thing_710X; - char v_709X; - long temp1_708X; - char v_707X; - long space_706X; - long len_705X; + long stack_arg_count_788X; + char v_787X; + long key_786X; + char okayP_785X; + long key_784X; + char okayP_783X; + char * addr_782X; + long value_781X; + long v_780X; + long new_env_779X; + char * addr_778X; + long len_777X; + char v_776X; + long temp1_775X; + long temp0_774X; + char v_773X; + long env_772X; + char v_771X; + long temp1_770X; + char v_769X; + long space_768X; + char * addr_767X; + long value_766X; + long index_765X; + long i_764X; + long env_763X; + long i_762X; + long env_761X; + long i_760X; + long env_759X; + long obj_758X; + long opcode_757X; + long nargs_756X; + FILE * out_755X; + long x_754X; + long v_753X; + long v_752X; + long v_751X; + long v_750X; + long v_749X; + long v_748X; + long v_747X; + long count_746X; + long to_index_745X; + long from_index_744X; + long arg5_743X; + long arg4_742X; + long arg3_741X; + long arg2_740X; + char * addr_739X; + long len_738X; + long value_737X; + long index_736X; + long arg4_735X; + long arg3_734X; + long arg2_733X; + long len_732X; + long index_731X; + long arg3_730X; + long arg2_729X; + long list_728X; + long thing_727X; + char v_726X; + long temp1_725X; + char v_724X; + long space_723X; + long len_722X; + long x_721X; + long obj_720X; + long arg2_719X; + long x_718X; + long arg2_717X; + long status_716X; + long value_715X; + long key_714X; + long arg2_713X; + long mseconds_712X; + long seconds_711X; + long mseconds_710X; + long seconds_709X; + long x_708X; + long other_707X; + long option_706X; + long arg2_705X; long x_704X; - long obj_703X; - long arg2_702X; - long x_701X; - long arg2_700X; - long status_699X; - long value_698X; - long key_697X; - long arg2_696X; - long mseconds_695X; - long seconds_694X; - long mseconds_693X; - long seconds_692X; - long x_691X; - long other_690X; - long option_689X; - long arg2_688X; - long x_687X; - long arg2_686X; - char v_685X; - long temp1_684X; - char v_683X; - long rest_list_682X; - long p_681X; - long nargs_680X; + long arg2_703X; + char v_702X; + long temp1_701X; + char v_700X; + long rest_list_699X; + long p_698X; + long nargs_697X; + long x_696X; + long arg2_695X; + long p_694X; + long p_693X; + long p_692X; + long old_691X; + long temp_690X; + long obj_689X; + long p_688X; + long template_687X; + long p_686X; + long temp_685X; + long obj_684X; + long x_683X; + long type_682X; + long x_681X; + long bytes_680X; long x_679X; - long arg2_678X; - long p_677X; - long p_676X; - long p_675X; - long old_674X; - long temp_673X; - long obj_672X; - long p_671X; - long template_670X; - long p_669X; - long temp_668X; - long obj_667X; - long x_666X; - long type_665X; - long x_664X; - long bytes_663X; - long x_662X; - long other_661X; - long key_660X; - long arg2_659X; - char v_658X; - long temp1_657X; - char v_656X; - long n_655X; + long other_678X; + long key_677X; + long arg2_676X; + char v_675X; + long temp1_674X; + char v_673X; + long n_672X; + long x_671X; + long obj_670X; + long v_669X; + char v_668X; + long temp1_667X; + char v_666X; + long x_665X; + char v_664X; + long temp1_663X; + char v_662X; + long space_661X; + char temp_660X; + long channel_659X; + long obj_658X; + char v_657X; + long temp1_656X; + char v_655X; long x_654X; - long obj_653X; - long v_652X; - char v_651X; - long temp1_650X; + long arg2_653X; + char v_652X; + long temp1_651X; + char v_650X; char v_649X; - long x_648X; + long temp1_648X; char v_647X; - long temp1_646X; - char v_645X; - long space_644X; - char * addr_643X; - long next_642X; - long channel_641X; - long n_640X; - char * addr_639X; - long head_638X; - long channel_637X; - long obj_636X; - char v_635X; - long temp1_634X; + char v_646X; + long temp1_645X; + char v_644X; + char v_643X; + long temp1_642X; + char v_641X; + long x_640X; + long x_639X; + long x_638X; + long arg2_637X; + long descriptor_636X; + long x_635X; + long obj_634X; char v_633X; - char v_632X; - long temp1_631X; - char v_630X; - char v_629X; - long temp1_628X; - char v_627X; - char v_626X; - long temp1_625X; - char v_624X; - long x_623X; - long x_622X; - long x_621X; - long arg2_620X; - long descriptor_619X; - long x_618X; - long obj_617X; - char v_616X; - long temp1_615X; - char v_614X; - long len_613X; - char Kchar_612X; - long index_611X; - long arg3_610X; - long arg2_609X; - long len_608X; - long index_607X; - long arg2_606X; - long obj_605X; - char v_604X; - long temp1_603X; - char v_602X; - long size_601X; - char init_600X; - long len_599X; - long arg2_598X; - long len_597X; - long Kchar_596X; - long index_595X; - long arg3_594X; - long arg2_593X; - long len_592X; + long temp1_632X; + char v_631X; + long len_630X; + char Kchar_629X; + long index_628X; + long arg3_627X; + long arg2_626X; + long len_625X; + long index_624X; + long arg2_623X; + long obj_622X; + char v_621X; + long temp1_620X; + char v_619X; + long size_618X; + char init_617X; + long len_616X; + long arg2_615X; + long len_614X; + long Kchar_613X; + long index_612X; + long arg3_611X; + long arg2_610X; + long len_609X; + long index_608X; + long arg2_607X; + long obj_606X; + char v_605X; + long temp1_604X; + char v_603X; + long size_602X; + long init_601X; + long len_600X; + long arg2_599X; + char * addr_598X; + long index_597X; + long len_596X; + long type_595X; + long value_594X; + long stob_593X; + long arg2_592X; long index_591X; - long arg2_590X; - long obj_589X; - char v_588X; - long temp1_587X; + long len_590X; + long type_589X; + long index_588X; + long stob_587X; char v_586X; - long size_585X; - long init_584X; - long len_583X; - long arg2_582X; - char * addr_581X; - long index_580X; - long len_579X; - long type_578X; - long value_577X; - long stob_576X; - long arg2_575X; - long index_574X; - long len_573X; + long temp1_585X; + long temp0_584X; + char v_583X; + long size_582X; + long len_581X; + long type_580X; + long init_579X; + long len_578X; + char * addr_577X; + long type_576X; + long offset_575X; + long value_574X; + long stob_573X; long type_572X; - long index_571X; + long offset_571X; long stob_570X; char v_569X; long temp1_568X; - long temp0_567X; - char v_566X; - long size_565X; - long len_564X; - long type_563X; - long init_562X; - long len_561X; - char * addr_560X; + char v_567X; + long space_566X; + long len_565X; + char v_564X; + long temp1_563X; + char v_562X; + long space_561X; + long len_560X; long type_559X; - long offset_558X; - long value_557X; - long stob_556X; - long type_555X; - long offset_554X; - long stob_553X; - char v_552X; - long temp1_551X; - char v_550X; - long space_549X; - long len_548X; - char v_547X; - long temp1_546X; - char v_545X; - long space_544X; - long len_543X; - long type_542X; - long stob_541X; - long type_540X; - long x_539X; + long stob_558X; + long type_557X; + long x_556X; + long x_555X; + long x_554X; + long x_553X; + long arg2_552X; + long x_551X; + long arg2_550X; + long x_549X; + long x_548X; + long result_547X; + long x_546X; + long x_545X; + long count_544X; + long value_543X; + long y_542X; + long x_541X; + long x_540X; + long arg2_539X; long x_538X; - long x_537X; + long arg2_537X; long x_536X; long arg2_535X; long x_534X; - long arg2_533X; - long x_532X; + long x_533X; + long arg2_532X; long x_531X; - long result_530X; + long arg2_530X; long x_529X; - long x_528X; - long count_527X; - long value_526X; - long y_525X; + long arg2_528X; + long n_527X; + long n_526X; + long x_525X; long x_524X; long x_523X; - long arg2_522X; + long x_522X; long x_521X; - long arg2_520X; + long x_520X; long x_519X; - long arg2_518X; + long x_518X; long x_517X; long x_516X; - long arg2_515X; + long x_515X; long x_514X; - long arg2_513X; + long x_513X; long x_512X; - long arg2_511X; - long n_510X; - long n_509X; - long x_508X; - long x_507X; + long a_511X; + long y_510X; + long x_509X; + long b_508X; + long a_507X; long x_506X; - long x_505X; + long arg2_505X; long x_504X; - long x_503X; + long arg2_503X; long x_502X; - long x_501X; + long arg2_501X; long x_500X; - long x_499X; + long arg2_499X; long x_498X; - long x_497X; + long arg2_497X; long x_496X; - long x_495X; - long a_494X; - long y_493X; + long arg2_495X; + long b_494X; + long a_493X; long x_492X; - long b_491X; - long a_490X; - long x_489X; - long arg2_488X; - long x_487X; - long arg2_486X; + long arg2_491X; + long z_490X; + long y_489X; + long x_488X; + long b_487X; + long a_486X; long x_485X; long arg2_484X; - long x_483X; - long arg2_482X; + long z_483X; + long y_482X; long x_481X; - long arg2_480X; + long x_480X; long x_479X; - long arg2_478X; - long b_477X; - long a_476X; - long x_475X; - long arg2_474X; - long z_473X; - long y_472X; - long x_471X; - long b_470X; - long a_469X; - long x_468X; - long arg2_467X; - long z_466X; - long y_465X; - long x_464X; - long x_463X; - long x_462X; - long x_461X; - long n_460X; - long n_459X; - long n_458X; - long n_457X; - long x_456X; - long x_455X; - long arg2_454X; - long rest_list_453X; - long x_452X; - long rest_list_451X; - long stack_nargs_450X; - long arg0_449X; - long arg1_448X; - long rest_list_447X; - long arg0_446X; - long stack_nargs_445X; - long index_444X; - long val_443X; - long max_442X; - long p_441X; - char v_440X; - long temp1_439X; - char v_438X; - long space_437X; - long space_436X; - long index_435X; - long v_434X; - char v_433X; - long temp1_432X; - char v_431X; - long space_430X; - long code_429X; - long tem_428X; - long stack_nargs_427X; - long p_426X; - long obj_425X; - long consumer_424X; - long cont_423X; - long rest_list_422X; - long proc_421X; - long stack_nargs_420X; - long args_419X; - long length_418X; - char okayP_417X; - long list_args_416X; - long stob_415X; - char * top_of_args_414X; - long nargs_413X; - long obj_412X; - long stack_arg_count_411X; - char v_410X; - long temp1_409X; - char v_408X; - long space_407X; - long code_406X; - long template_405X; - long obj_404X; - long stack_arg_count_403X; - long cont_402X; - char v_401X; - long temp1_400X; - char v_399X; - long space_398X; - char v_397X; - long temp1_396X; - char v_395X; - long space_394X; - long total_count_393X; - long p_392X; - long v_391X; - char * addr_390X; - long val_389X; - long location_388X; - long location_387X; - long env_386X; - long back_385X; - long env_384X; - long back_383X; - long env_382X; - long back_381X; - long count_380X; - char * code_pointer_379X; - long code_378X; - char * addr_377X; - long proc_376X; - long temp_375X; - char okayP_374X; - char v_373X; - long temp1_372X; - long temp0_371X; - char v_370X; - { v_370X = AVAILABLEp(2); - if (v_370X) { + long x_478X; + long n_477X; + long n_476X; + long n_475X; + long n_474X; + long x_473X; + long x_472X; + long arg2_471X; + long rest_list_470X; + long x_469X; + long rest_list_468X; + long stack_nargs_467X; + long arg0_466X; + long arg1_465X; + long rest_list_464X; + long arg0_463X; + long stack_nargs_462X; + long index_461X; + long val_460X; + long max_459X; + long p_458X; + char v_457X; + long temp1_456X; + char v_455X; + long space_454X; + long space_453X; + long index_452X; + long v_451X; + char v_450X; + long temp1_449X; + char v_448X; + long space_447X; + long code_446X; + long tem_445X; + long stack_nargs_444X; + long p_443X; + long obj_442X; + long consumer_441X; + long cont_440X; + long rest_list_439X; + long proc_438X; + long stack_nargs_437X; + long args_436X; + long length_435X; + char okayP_434X; + long list_args_433X; + long stob_432X; + char * top_of_args_431X; + long nargs_430X; + long obj_429X; + long stack_arg_count_428X; + char v_427X; + long temp1_426X; + char v_425X; + long space_424X; + long code_423X; + long template_422X; + long obj_421X; + long stack_arg_count_420X; + long cont_419X; + char v_418X; + long temp1_417X; + char v_416X; + long space_415X; + char v_414X; + long temp1_413X; + char v_412X; + long space_411X; + long total_count_410X; + long p_409X; + long v_408X; + char * addr_407X; + long val_406X; + long location_405X; + long location_404X; + long env_403X; + long back_402X; + long env_401X; + long back_400X; + long env_399X; + long back_398X; + long count_397X; + char * code_pointer_396X; + long code_395X; + char * addr_394X; + long proc_393X; + long temp_392X; + char okayP_391X; + char v_390X; + long temp1_389X; + long temp0_388X; + char v_387X; + { v_387X = AVAILABLEp(2); + if (v_387X) { arg2K0 = 1; - arg0K1 = proc_345X; - goto L19375;} + arg0K1 = proc_361X; + goto L20030;} else { - temp0_371X = collect_saving_temps(proc_345X, 1, &temp1_372X); - v_373X = AVAILABLEp(2); - if (v_373X) { + temp0_388X = collect_saving_temps(proc_361X, 1, &temp1_389X); + v_390X = AVAILABLEp(2); + if (v_390X) { arg2K0 = 1; - arg0K1 = temp0_371X; - goto L19375;} + arg0K1 = temp0_388X; + goto L20030;} else { arg2K0 = 0; - arg0K1 = temp0_371X; - goto L19375;}}} - L19375: { - okayP_374X = arg2K0; - temp_375X = arg0K1; - if (okayP_374X) { - arg0K0 = temp_375X; - goto L19346;} + arg0K1 = temp0_388X; + goto L20030;}}} + L20030: { + okayP_391X = arg2K0; + temp_392X = arg0K1; + if (okayP_391X) { + arg0K0 = temp_392X; + goto L20001;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = temp_375X; - goto L19346;}} - L19346: { - proc_376X = arg0K0; - addr_377X = ALLOCATE_SPACE(17, 6); - *((long *) addr_377X) = 582; - code_378X = 3 + (((long) (addr_377X + 4))); - *((unsigned char *) (((char *) (-3 + code_378X)))) = 24; - *((unsigned char *) ((((char *) (-3 + code_378X))) + 1)) = nargs_346X; - Scode_pointerS = (((char *) (-3 + code_378X))); - SvalS = proc_376X; + arg0K0 = temp_392X; + goto L20001;}} + L20001: { + proc_393X = arg0K0; + addr_394X = ALLOCATE_SPACE(18, 6); + *((long *) addr_394X) = 586; + code_395X = 3 + (((long) (addr_394X + 4))); + *((unsigned char *) (((char *) (-3 + code_395X)))) = 24; + *((unsigned char *) ((((char *) (-3 + code_395X))) + 1)) = nargs_362X; + Scode_pointerS = (((char *) (-3 + code_395X))); + SvalS = proc_393X; arg1K0 = (Scode_pointerS); - goto L18438;} - L18438: { - code_pointer_379X = arg1K0; - switch ((*((unsigned char *) code_pointer_379X))) { + goto L19093;} + L19093: { + code_pointer_396X = arg1K0; + switch ((*((unsigned char *) code_pointer_396X))) { case 0 : - case 145 : { + case 147 : { push_exception_continuationB(15, 1); arg0K0 = 0; - goto L16665;} + goto L17320;} break; case 1 : { - count_380X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); + count_397X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); *((long *) (SstackS)) = (SenvS); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (1034 + (((count_380X)<<10))); + *((long *) (SstackS)) = (1034 + (((count_397X)<<10))); SstackS = ((SstackS) + -4); SenvS = (3 + (((long) ((SstackS) + 8)))); Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 2 : { SvalS = (*((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))))); Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 3 : { SvalS = (*((long *) ((((char *) (-3 + (StemplateS)))) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))))); Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 4 : { - back_381X = *((unsigned char *) ((Scode_pointerS) + 1)); - env_382X = SenvS; - arg0K0 = env_382X; - arg0K1 = back_381X; - goto L23824;} + back_398X = *((unsigned char *) ((Scode_pointerS) + 1)); + env_399X = SenvS; + arg0K0 = env_399X; + arg0K1 = back_398X; + goto L24496;} break; case 5 : { SvalS = (*((long *) ((((char *) (-3 + (SenvS)))) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))))); if ((529 == (SvalS))) { push_exception_continuationB(0, 2); arg0K0 = 0; - goto L16665;} + goto L17320;} else { Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 6 : { SvalS = (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + (SenvS))))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))))); if ((529 == (SvalS))) { push_exception_continuationB(0, 2); arg0K0 = 0; - goto L16665;} + goto L17320;} else { Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 7 : { SvalS = (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SenvS)))))))))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))))); if ((529 == (SvalS))) { push_exception_continuationB(0, 2); arg0K0 = 0; - goto L16665;} + goto L17320;} else { Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 8 : { - back_383X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); - env_384X = SenvS; - arg0K0 = env_384X; - arg0K1 = back_383X; - goto L20247;} + back_400X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); + env_401X = SenvS; + arg0K0 = env_401X; + arg0K1 = back_400X; + goto L20911;} break; case 9 : { - back_385X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); - env_386X = SenvS; - arg0K0 = env_386X; - arg0K1 = back_385X; - goto L20185;} + back_402X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); + env_403X = SenvS; + arg0K0 = env_403X; + arg0K1 = back_402X; + goto L20849;} break; case 10 : { - location_387X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); - SvalS = (*((long *) ((((char *) (-3 + location_387X))) + 4))); + location_404X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); + SvalS = (*((long *) ((((char *) (-3 + location_404X))) + 4))); if ((17 == (255 & (SvalS)))) { push_exception_continuationB(1, 3); - *((long *) (SstackS)) = location_387X; + *((long *) (SstackS)) = location_404X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} else { Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 11 : { - location_388X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); - if ((273 == (*((long *) ((((char *) (-3 + location_388X))) + 4))))) { + location_405X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); + if ((273 == (*((long *) ((((char *) (-3 + location_405X))) + 4))))) { push_exception_continuationB(1, 3); - *((long *) (SstackS)) = location_388X; + *((long *) (SstackS)) = location_405X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - val_389X = SvalS; - addr_390X = (((char *) (-3 + location_388X))) + 4; - S48_WRITE_BARRIER(location_388X, addr_390X, val_389X); - *((long *) addr_390X) = val_389X; + val_406X = SvalS; + addr_407X = (((char *) (-3 + location_405X))) + 4; + S48_WRITE_BARRIER(location_405X, addr_407X, val_406X); + *((long *) addr_407X) = val_406X; SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 12 : { - v_391X = *((unsigned char *) ((Scode_pointerS) + 3)); - if ((0 == v_391X)) { - p_392X = SenvS; - if ((3 == (3 & p_392X))) { - if ((p_392X < (((long) (Sstack_beginS))))) { + v_408X = *((unsigned char *) ((Scode_pointerS) + 3)); + if ((0 == v_408X)) { + p_409X = SenvS; + if ((3 == (3 & p_409X))) { + if ((p_409X < (((long) (Sstack_beginS))))) { arg0K0 = 0; - goto L20964;} + goto L21628;} else { - if (((((long) (Sstack_endS))) < p_392X)) { + if (((((long) (Sstack_endS))) < p_409X)) { arg0K0 = 0; - goto L20964;} + goto L21628;} else { arg0K0 = ((Sstack_endS) - (Sstack_beginS)); - goto L20964;}}} + goto L21628;}}} else { arg0K0 = 0; - goto L20964;}} + goto L21628;}} else { arg0K0 = (SvalS); - goto L20971;}} + goto L21635;}} break; case 13 : { - total_count_393X = *((unsigned char *) ((Scode_pointerS) + 2)); - space_394X = 1 + total_count_393X; - v_395X = AVAILABLEp(space_394X); - if (v_395X) { - goto L20766;} + total_count_410X = *((unsigned char *) ((Scode_pointerS) + 2)); + space_411X = 1 + total_count_410X; + v_412X = AVAILABLEp(space_411X); + if (v_412X) { + goto L21430;} else { - collect_saving_temps(1, 1, &temp1_396X); - v_397X = AVAILABLEp(space_394X); - if (v_397X) { - goto L20766;} + collect_saving_temps(1, 1, &temp1_413X); + v_414X = AVAILABLEp(space_411X); + if (v_414X) { + goto L21430;} else { ps_error("Scheme48 heap overflow", 0); - goto L20766;}}} + goto L21430;}}} break; case 14 : { *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 15 : { SvalS = (*((long *) ((((char *) (-3 + (SenvS)))) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))))); if ((529 == (SvalS))) { push_exception_continuationB(0, 3); arg0K0 = 0; - goto L16665;} + goto L17320;} else { *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 16 : { *((long *) (SstackS)) = (SvalS); @@ -3062,758 +3181,610 @@ long s48_restart(long proc_345X, long nargs_346X) if ((529 == (SvalS))) { push_exception_continuationB(0, 3); arg0K0 = 0; - goto L16665;} + goto L17320;} else { Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 17 : { SstackS = ((SstackS) + 4); SvalS = (*((long *) (SstackS))); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 18 : { SvalS = (*((long *) ((SstackS) + (4 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))); Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 19 : { *((long *) ((SstackS) + (4 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))))) = (SvalS); Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 20 : { push_continuationB(((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))), (*((unsigned char *) ((Scode_pointerS) + 3)))); Scode_pointerS = ((Scode_pointerS) + 4); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 21 : { push_continuationB(((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))), (((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4))))); Scode_pointerS = ((Scode_pointerS) + 5); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 22 : { - space_398X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); - v_399X = AVAILABLEp(space_398X); - if (v_399X) { + space_415X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); + v_416X = AVAILABLEp(space_415X); + if (v_416X) { arg2K0 = 1; arg0K1 = 0; - goto L20692;} + goto L21356;} else { - collect_saving_temps(1, 1, &temp1_400X); - v_401X = AVAILABLEp(space_398X); - if (v_401X) { + collect_saving_temps(1, 1, &temp1_417X); + v_418X = AVAILABLEp(space_415X); + if (v_418X) { arg2K0 = 1; arg0K1 = 0; - goto L20692;} + goto L21356;} else { arg2K0 = 0; arg0K1 = 0; - goto L20692;}}} + goto L21356;}}} break; case 23 : { - cont_402X = *((long *) (((char *) (-3 + (Sbottom_of_stackS))))); - if ((3 == (3 & cont_402X))) { - if ((9 == (31 & ((((*((long *) ((((char *) (-3 + cont_402X))) + -4))))>>2))))) { - if ((3 == (3 & cont_402X))) { - if ((9 == (31 & ((((*((long *) ((((char *) (-3 + cont_402X))) + -4))))>>2))))) { - merged_arg0K0 = cont_402X; + cont_419X = *((long *) (((char *) (-3 + (Sbottom_of_stackS))))); + if ((3 == (3 & cont_419X))) { + if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_419X))) + -4))))>>2))))) { + if ((3 == (3 & cont_419X))) { + if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_419X))) + -4))))>>2))))) { + merged_arg0K0 = cont_419X; copy_continuation_from_heapB_return_tag = 0; goto copy_continuation_from_heapB; copy_continuation_from_heapB_return_0: - goto L19847;} + goto L20502;} else { - goto L19882;}} + goto L20539;}} else { - goto L19882;}} + goto L20539;}} else { - goto L19848;}} + goto L20503;}} else { - goto L19848;}} + goto L20503;}} break; case 24 : { - stack_arg_count_403X = *((unsigned char *) ((Scode_pointerS) + 1)); - obj_404X = SvalS; - if ((3 == (3 & obj_404X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_404X))) + -4))))>>2))))) { - template_405X = *((long *) (((char *) (-3 + (SvalS))))); - code_406X = *((long *) (((char *) (-3 + template_405X)))); - if ((stack_arg_count_403X == (*((unsigned char *) ((((char *) (-3 + code_406X))) + 1))))) { - StemplateS = template_405X; + stack_arg_count_420X = *((unsigned char *) ((Scode_pointerS) + 1)); + obj_421X = SvalS; + if ((3 == (3 & obj_421X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_421X))) + -4))))>>2))))) { + template_422X = *((long *) (((char *) (-3 + (SvalS))))); + code_423X = *((long *) (((char *) (-3 + template_422X)))); + if ((stack_arg_count_420X == (*((unsigned char *) ((((char *) (-3 + code_423X))) + 1))))) { + StemplateS = template_422X; SenvS = (*((long *) ((((char *) (-3 + (SvalS)))) + 4))); - Scode_pointerS = ((((char *) (-3 + code_406X))) + 2); + Scode_pointerS = ((((char *) (-3 + code_423X))) + 2); if (((SstackS) < (Sstack_limitS))) { - space_407X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); - v_408X = AVAILABLEp(space_407X); - if (v_408X) { + space_424X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); + v_425X = AVAILABLEp(space_424X); + if (v_425X) { arg2K0 = 1; arg0K1 = 0; - goto L19208;} + goto L19863;} else { - collect_saving_temps(1, 1, &temp1_409X); - v_410X = AVAILABLEp(space_407X); - if (v_410X) { + collect_saving_temps(1, 1, &temp1_426X); + v_427X = AVAILABLEp(space_424X); + if (v_427X) { arg2K0 = 1; arg0K1 = 0; - goto L19208;} + goto L19863;} else { arg2K0 = 0; arg0K1 = 0; - goto L19208;}}} + goto L19863;}}} else { - goto L19120;}} + goto L19775;}} else { - arg0K0 = stack_arg_count_403X; - goto L16066;}} + arg0K0 = stack_arg_count_420X; + goto L16721;}} else { arg0K0 = 3; - arg0K1 = stack_arg_count_403X; + arg0K1 = stack_arg_count_420X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { arg0K0 = 3; - arg0K1 = stack_arg_count_403X; + arg0K1 = stack_arg_count_420X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} break; case 25 : { - stack_arg_count_411X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); - obj_412X = SvalS; - if ((3 == (3 & obj_412X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_412X))) + -4))))>>2))))) { - arg0K0 = stack_arg_count_411X; - goto L16066;} + stack_arg_count_428X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))); + obj_429X = SvalS; + if ((3 == (3 & obj_429X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_429X))) + -4))))>>2))))) { + arg0K0 = stack_arg_count_428X; + goto L16721;} else { arg0K0 = 3; - arg0K1 = stack_arg_count_411X; + arg0K1 = stack_arg_count_428X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { arg0K0 = 3; - arg0K1 = stack_arg_count_411X; + arg0K1 = stack_arg_count_428X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} break; case 26 : { - nargs_413X = *((unsigned char *) ((Scode_pointerS) + 1)); - top_of_args_414X = SstackS; - stob_415X = ScontS; - arg1K0 = ((((char *) (-3 + stob_415X))) + -8); - arg1K1 = (top_of_args_414X + (((nargs_413X)<<2))); - goto L17628;} + nargs_430X = *((unsigned char *) ((Scode_pointerS) + 1)); + top_of_args_431X = SstackS; + stob_432X = ScontS; + arg1K0 = ((((char *) (-3 + stob_432X))) + -8); + arg1K1 = (top_of_args_431X + (((nargs_430X)<<2))); + goto L18283;} break; case 27 : { SstackS = ((SstackS) + 4); - list_args_416X = *((long *) (SstackS)); - merged_arg0K0 = list_args_416X; + list_args_433X = *((long *) (SstackS)); + merged_arg0K0 = list_args_433X; okay_argument_list_return_tag = 0; goto okay_argument_list; okay_argument_list_return_0: - okayP_417X = okay_argument_list0_return_value; - length_418X = okay_argument_list1_return_value; - if (okayP_417X) { + okayP_434X = okay_argument_list0_return_value; + length_435X = okay_argument_list1_return_value; + if (okayP_434X) { arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))); - arg0K1 = list_args_416X; - arg0K2 = length_418X; - goto L17666;} + arg0K1 = list_args_433X; + arg0K2 = length_435X; + goto L18321;} else { - *((long *) (SstackS)) = list_args_416X; + *((long *) (SstackS)) = list_args_433X; SstackS = ((SstackS) + -4); merged_arg0K0 = 25; merged_arg0K1 = (1 + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))); pop_args_GlistS_return_tag = 0; goto pop_args_GlistS; pop_args_GlistS_return_0: - args_419X = pop_args_GlistS0_return_value; + args_436X = pop_args_GlistS0_return_value; push_exception_continuationB(5, 0); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = args_419X; + *((long *) (SstackS)) = args_436X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 28 : { SstackS = ((SstackS) + 4); SstackS = ((SstackS) + 4); - stack_nargs_420X = (((*((long *) (SstackS))))>>2); - proc_421X = *((long *) ((SstackS) + (4 + (((stack_nargs_420X)<<2))))); - *((long *) ((SstackS) + (4 + (((stack_nargs_420X)<<2))))) = 1; + stack_nargs_437X = (((*((long *) (SstackS))))>>2); + proc_438X = *((long *) ((SstackS) + (4 + (((stack_nargs_437X)<<2))))); + *((long *) ((SstackS) + (4 + (((stack_nargs_437X)<<2))))) = 1; SstackS = ((SstackS) + 4); - rest_list_422X = *((long *) (SstackS)); - if ((25 == rest_list_422X)) { + rest_list_439X = *((long *) (SstackS)); + if ((25 == rest_list_439X)) { SstackS = ((SstackS) + 4); arg0K0 = (*((long *) (SstackS))); - arg0K1 = (-2 + stack_nargs_420X); - goto L11273;} + arg0K1 = (-2 + stack_nargs_437X); + goto L11915;} else { - if ((25 == (*((long *) ((((char *) (-3 + rest_list_422X))) + 4))))) { - arg0K0 = (*((long *) (((char *) (-3 + rest_list_422X))))); - arg0K1 = (-1 + stack_nargs_420X); - goto L11273;} + if ((25 == (*((long *) ((((char *) (-3 + rest_list_439X))) + 4))))) { + arg0K0 = (*((long *) (((char *) (-3 + rest_list_439X))))); + arg0K1 = (-1 + stack_nargs_437X); + goto L11915;} else { - arg0K0 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + rest_list_422X))) + 4)))))) + 4))); - arg0K1 = rest_list_422X; - goto L11314;}}} + arg0K0 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + rest_list_439X))) + 4)))))) + 4))); + arg0K1 = rest_list_439X; + goto L11956;}}} break; case 29 : { SstackS = ((SstackS) + 4); - cont_423X = *((long *) (SstackS)); - if ((3 == (3 & cont_423X))) { - if ((9 == (31 & ((((*((long *) ((((char *) (-3 + cont_423X))) + -4))))>>2))))) { - merged_arg0K0 = cont_423X; + cont_440X = *((long *) (SstackS)); + if ((3 == (3 & cont_440X))) { + if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_440X))) + -4))))>>2))))) { + merged_arg0K0 = cont_440X; copy_continuation_from_heapB_return_tag = 1; goto copy_continuation_from_heapB; copy_continuation_from_heapB_return_1: - goto L17571;} + goto L18226;} else { - goto L17578;}} + goto L18233;}} else { - goto L17578;}} + goto L18233;}} break; case 30 : { SstackS = ((SstackS) + 4); - consumer_424X = *((long *) (SstackS)); + consumer_441X = *((long *) (SstackS)); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); - SvalS = consumer_424X; - obj_425X = SvalS; - if ((3 == (3 & obj_425X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_425X))) + -4))))>>2))))) { + SvalS = consumer_441X; + obj_442X = SvalS; + if ((3 == (3 & obj_442X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_442X))) + -4))))>>2))))) { arg0K0 = 1; - goto L16066;} + goto L16721;} else { arg0K0 = 3; arg0K1 = 1; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { arg0K0 = 3; arg0K1 = 1; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} break; case 31 : { pop_continuationB_return_tag = 0; goto pop_continuationB; pop_continuationB_return_0: arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 32 : { arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))); arg0K1 = 25; arg0K2 = 0; - goto L20427;} + goto L21091;} break; case 33 : { SstackS = ((SstackS) + 4); - p_426X = *((long *) (SstackS)); + p_443X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - stack_nargs_427X = (((*((long *) (SstackS))))>>2); + stack_nargs_444X = (((*((long *) (SstackS))))>>2); SstackS = ((SstackS) + 4); - arg0K0 = stack_nargs_427X; + arg0K0 = stack_nargs_444X; arg0K1 = (*((long *) (SstackS))); - arg0K2 = ((((p_426X)>>2)) - stack_nargs_427X); - goto L20427;} + arg0K2 = ((((p_443X)>>2)) - stack_nargs_444X); + goto L21091;} break; case 34 : { Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 35 : { - tem_428X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); - StemplateS = tem_428X; - Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_428X)))))))); + tem_445X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); + StemplateS = tem_445X; + Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_445X)))))))); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 36 : { - code_429X = *((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))))))))); - if ((0 == (*((unsigned char *) ((((char *) (-3 + code_429X))) + 1))))) { + code_446X = *((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))))))))); + if ((0 == (*((unsigned char *) ((((char *) (-3 + code_446X))) + 1))))) { if (((SstackS) < (Sstack_limitS))) { - space_430X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); - v_431X = AVAILABLEp(space_430X); - if (v_431X) { + space_447X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); + v_448X = AVAILABLEp(space_447X); + if (v_448X) { arg2K0 = 1; arg0K1 = 0; - goto L18944;} + goto L19599;} else { - collect_saving_temps(1, 1, &temp1_432X); - v_433X = AVAILABLEp(space_430X); - if (v_433X) { + collect_saving_temps(1, 1, &temp1_449X); + v_450X = AVAILABLEp(space_447X); + if (v_450X) { arg2K0 = 1; arg0K1 = 0; - goto L18944;} + goto L19599;} else { arg2K0 = 0; arg0K1 = 0; - goto L18944;}}} + goto L19599;}}} else { - goto L18817;}} + goto L19472;}} else { - v_434X = *((unsigned char *) ((((char *) (-3 + code_429X))) + 1)); - if ((66 == v_434X)) { - if ((0 == (*((unsigned char *) ((((char *) (-3 + code_429X))) + (-3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_429X))) + -4))))>>8)))))))) { - index_435X = -2 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_429X))) + -4))))>>8)); - space_436X = ((((*((unsigned char *) ((((char *) (-3 + code_429X))) + index_435X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_429X))) + (1 + index_435X)))); - if ((space_436X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { - goto L18817;} + v_451X = *((unsigned char *) ((((char *) (-3 + code_446X))) + 1)); + if ((66 == v_451X)) { + if ((0 == (*((unsigned char *) ((((char *) (-3 + code_446X))) + (-3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_446X))) + -4))))>>8)))))))) { + index_452X = -2 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_446X))) + -4))))>>8)); + space_453X = ((((*((unsigned char *) ((((char *) (-3 + code_446X))) + index_452X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_446X))) + (1 + index_452X)))); + if ((space_453X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { + goto L19472;} else { - space_437X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); - v_438X = AVAILABLEp(space_437X); - if (v_438X) { + space_454X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); + v_455X = AVAILABLEp(space_454X); + if (v_455X) { arg2K0 = 1; arg0K1 = 0; - goto L19000;} + goto L19655;} else { - collect_saving_temps(1, 1, &temp1_439X); - v_440X = AVAILABLEp(space_437X); - if (v_440X) { + collect_saving_temps(1, 1, &temp1_456X); + v_457X = AVAILABLEp(space_454X); + if (v_457X) { arg2K0 = 1; arg0K1 = 0; - goto L19000;} + goto L19655;} else { arg2K0 = 0; arg0K1 = 0; - goto L19000;}}}} + goto L19655;}}}} else { - goto L18862;}} + goto L19517;}} else { - goto L18862;}}} + goto L19517;}}} break; case 37 : { if ((1 == (SvalS))) { Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} break; case 38 : { Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 39 : { if ((0 == (3 & (SvalS)))) { - p_441X = SvalS; - max_442X = *((unsigned char *) ((Scode_pointerS) + 1)); - val_443X = ((p_441X)>>2); - if ((val_443X < 0)) { - goto L18718;} + p_458X = SvalS; + max_459X = *((unsigned char *) ((Scode_pointerS) + 1)); + val_460X = ((p_458X)>>2); + if ((val_460X < 0)) { + goto L19373;} else { - if ((val_443X < max_442X)) { - index_444X = 1 + (((val_443X)<<1)); - arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + index_444X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_444X))))); - goto L18720;} + if ((val_460X < max_459X)) { + index_461X = 1 + (((val_460X)<<1)); + arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + index_461X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_461X))))); + goto L19375;} else { - goto L18718;}}} + goto L19373;}}} else { push_exception_continuationB(5, 0); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 40 : { - stack_nargs_445X = (((*((long *) ((SstackS) + 4))))>>2); - if ((0 == stack_nargs_445X)) { - arg0_446X = *((long *) ((SstackS) + 12)); - rest_list_447X = *((long *) ((SstackS) + 8)); - *((long *) (SstackS)) = arg0_446X; + stack_nargs_462X = (((*((long *) ((SstackS) + 4))))>>2); + if ((0 == stack_nargs_462X)) { + arg0_463X = *((long *) ((SstackS) + 12)); + rest_list_464X = *((long *) ((SstackS) + 8)); + *((long *) (SstackS)) = arg0_463X; SstackS = ((SstackS) + -4); - SvalS = (*((long *) (((char *) (-3 + rest_list_447X))))); - goto L19750;} + SvalS = (*((long *) (((char *) (-3 + rest_list_464X))))); + goto L20405;} else { - arg1_448X = *((long *) ((SstackS) + (4 + (((stack_nargs_445X)<<2))))); - arg0_449X = *((long *) ((SstackS) + (8 + (((stack_nargs_445X)<<2))))); - *((long *) ((SstackS) + (8 + (((stack_nargs_445X)<<2))))) = 1; - *((long *) ((SstackS) + 4)) = (-4 + (((stack_nargs_445X)<<2))); - *((long *) (SstackS)) = arg0_449X; + arg1_465X = *((long *) ((SstackS) + (4 + (((stack_nargs_462X)<<2))))); + arg0_466X = *((long *) ((SstackS) + (8 + (((stack_nargs_462X)<<2))))); + *((long *) ((SstackS) + (8 + (((stack_nargs_462X)<<2))))) = 1; + *((long *) ((SstackS) + 4)) = (-4 + (((stack_nargs_462X)<<2))); + *((long *) (SstackS)) = arg0_466X; SstackS = ((SstackS) + -4); - SvalS = arg1_448X; - goto L19750;}} + SvalS = arg1_465X; + goto L20405;}} break; case 41 : { - stack_nargs_450X = (((*((long *) ((SstackS) + 4))))>>2); - if ((stack_nargs_450X == 0)) { - rest_list_451X = *((long *) ((SstackS) + 8)); - if ((25 == (*((long *) ((((char *) (-3 + rest_list_451X))) + 4))))) { + stack_nargs_467X = (((*((long *) ((SstackS) + 4))))>>2); + if ((stack_nargs_467X == 0)) { + rest_list_468X = *((long *) ((SstackS) + 8)); + if ((25 == (*((long *) ((((char *) (-3 + rest_list_468X))) + 4))))) { arg0K0 = 1; - goto L18616;} + goto L19271;} else { - *((long *) ((SstackS) + 8)) = (*((long *) ((((char *) (-3 + rest_list_451X))) + 4))); + *((long *) ((SstackS) + 8)) = (*((long *) ((((char *) (-3 + rest_list_468X))) + 4))); *((long *) ((SstackS) + 12)) = (SvalS); arg0K0 = -2; - goto L18616;}} + goto L19271;}} else { - if ((stack_nargs_450X == 1)) { + if ((stack_nargs_467X == 1)) { if ((25 == (*((long *) ((SstackS) + 8))))) { arg0K0 = 1; - goto L18616;} + goto L19271;} else { *((long *) ((SstackS) + 4)) = 0; *((long *) ((SstackS) + 12)) = (SvalS); arg0K0 = -2; - goto L18616;}} + goto L19271;}} else { - *((long *) ((SstackS) + (8 + (((stack_nargs_450X)<<2))))) = (SvalS); + *((long *) ((SstackS) + (8 + (((stack_nargs_467X)<<2))))) = (SvalS); arg0K0 = -2; - goto L18616;}}} + goto L19271;}}} break; case 42 : { if ((1 == (SvalS))) { Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - x_452X = (((*((long *) ((SstackS) + 4))))>>2); - if ((x_452X == 0)) { - rest_list_453X = *((long *) ((SstackS) + 8)); - if ((25 == (*((long *) ((((char *) (-3 + rest_list_453X))) + 4))))) { + x_469X = (((*((long *) ((SstackS) + 4))))>>2); + if ((x_469X == 0)) { + rest_list_470X = *((long *) ((SstackS) + 8)); + if ((25 == (*((long *) ((((char *) (-3 + rest_list_470X))) + 4))))) { arg0K0 = 1; - goto L19641;} + goto L20296;} else { - *((long *) ((SstackS) + 8)) = (*((long *) ((((char *) (-3 + rest_list_453X))) + 4))); - *((long *) ((SstackS) + 12)) = (*((long *) (((char *) (-3 + rest_list_453X))))); + *((long *) ((SstackS) + 8)) = (*((long *) ((((char *) (-3 + rest_list_470X))) + 4))); + *((long *) ((SstackS) + 12)) = (*((long *) (((char *) (-3 + rest_list_470X))))); arg0K0 = -2; - goto L19641;}} + goto L20296;}} else { - if ((x_452X == 1)) { + if ((x_469X == 1)) { if ((25 == (*((long *) ((SstackS) + 8))))) { arg0K0 = 1; - goto L19641;} + goto L20296;} else { *((long *) ((SstackS) + 4)) = 0; arg0K0 = -2; - goto L19641;}} + goto L20296;}} else { arg0K0 = -2; - goto L19641;}}}} + goto L20296;}}}} break; case 43 : { SstackS = ((SstackS) + 4); - arg2_454X = *((long *) (SstackS)); - x_455X = SvalS; - if ((arg2_454X == x_455X)) { + arg2_471X = *((long *) (SstackS)); + x_472X = SvalS; + if ((arg2_471X == x_472X)) { arg0K0 = 5; - goto L38026;} + goto L39115;} else { arg0K0 = 1; - goto L38026;}} + goto L39115;}} break; case 44 : { - x_456X = SvalS; - if ((0 == (3 & x_456X))) { + x_473X = SvalS; + if ((0 == (3 & x_473X))) { arg0K0 = 5; - goto L38038;} + goto L39127;} else { - if ((3 == (3 & x_456X))) { - if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_456X))) + -4))))>>2))))) { + if ((3 == (3 & x_473X))) { + if ((20 == (31 & ((((*((long *) ((((char *) (-3 + x_473X))) + -4))))>>2))))) { arg0K0 = 5; - goto L38038;} + goto L39127;} else { - goto L10622;}} + goto L11262;}} else { - goto L10622;}}} + goto L11262;}}} break; case 45 : { - n_457X = SvalS; - if ((0 == (3 & n_457X))) { - goto L28391;} + n_474X = SvalS; + if ((0 == (3 & n_474X))) { + goto L29202;} else { - if ((3 == (3 & n_457X))) { - if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_457X))) + -4))))>>2))))) { - goto L28391;} + if ((3 == (3 & n_474X))) { + if ((20 == (31 & ((((*((long *) ((((char *) (-3 + n_474X))) + -4))))>>2))))) { + goto L29202;} else { - goto L28392;}} + goto L29203;}} else { - goto L28392;}}} + goto L29203;}}} break; case 46 : { - n_458X = SvalS; - if ((0 == (3 & n_458X))) { - goto L28548;} + n_475X = SvalS; + if ((0 == (3 & n_475X))) { + goto L29359;} else { - if ((3 == (3 & n_458X))) { - if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_458X))) + -4))))>>2))))) { - goto L28548;} + if ((3 == (3 & n_475X))) { + if ((20 == (31 & ((((*((long *) ((((char *) (-3 + n_475X))) + -4))))>>2))))) { + goto L29359;} else { - goto L28523;}} + goto L29334;}} else { - goto L28523;}}} + goto L29334;}}} break; case 47 : { - n_459X = SvalS; - if ((0 == (3 & n_459X))) { - goto L28747;} + n_476X = SvalS; + if ((0 == (3 & n_476X))) { + goto L29558;} else { - if ((3 == (3 & n_459X))) { - if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_459X))) + -4))))>>2))))) { - goto L28747;} + if ((3 == (3 & n_476X))) { + if ((20 == (31 & ((((*((long *) ((((char *) (-3 + n_476X))) + -4))))>>2))))) { + goto L29558;} else { - goto L28722;}} + goto L29533;}} else { - goto L28722;}}} + goto L29533;}}} break; case 48 : { - n_460X = SvalS; - if ((0 == (3 & n_460X))) { - goto L28946;} + n_477X = SvalS; + if ((0 == (3 & n_477X))) { + goto L29757;} else { - if ((3 == (3 & n_460X))) { - if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_460X))) + -4))))>>2))))) { - goto L28946;} + if ((3 == (3 & n_477X))) { + if ((20 == (31 & ((((*((long *) ((((char *) (-3 + n_477X))) + -4))))>>2))))) { + goto L29757;} else { - goto L28921;}} + goto L29732;}} else { - goto L28921;}}} + goto L29732;}}} break; case 49 : { - x_461X = SvalS; - if ((0 == (3 & x_461X))) { + x_478X = SvalS; + if ((0 == (3 & x_478X))) { SvalS = 5; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_461X; + *((long *) (SstackS)) = x_478X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 50 : { - x_462X = SvalS; + x_479X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_462X; + *((long *) (SstackS)) = x_479X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 51 : { - x_463X = SvalS; + x_480X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_463X; + *((long *) (SstackS)) = x_480X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 52 : { SstackS = ((SstackS) + 4); - x_464X = *((long *) (SstackS)); - y_465X = SvalS; - if ((0 == (3 & (x_464X | y_465X)))) { - z_466X = (((x_464X)>>2)) + (((y_465X)>>2)); - if ((536870911 < z_466X)) { + x_481X = *((long *) (SstackS)); + y_482X = SvalS; + if ((0 == (3 & (x_481X | y_482X)))) { + z_483X = (((x_481X)>>2)) + (((y_482X)>>2)); + if ((536870911 < z_483X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_464X; + *((long *) (SstackS)) = x_481X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_465X; + *((long *) (SstackS)) = y_482X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - if ((z_466X < -536870912)) { + if ((z_483X < -536870912)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_464X; + *((long *) (SstackS)) = x_481X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_465X; + *((long *) (SstackS)) = y_482X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - SvalS = (((z_466X)<<2)); + SvalS = (((z_483X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}}} + goto L19093;}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_464X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_465X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} - break; - case 53 : { - SstackS = ((SstackS) + 4); - arg2_467X = *((long *) (SstackS)); - x_468X = SvalS; - if ((0 == (3 & (arg2_467X | x_468X)))) { - a_469X = ((arg2_467X)>>2); - b_470X = ((x_468X)>>2); - if ((a_469X < 0)) { - arg0K0 = (0 - a_469X); - goto L6775;} - else { - arg0K0 = a_469X; - goto L6775;}} - else { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_467X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_468X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} - break; - case 54 : { - SstackS = ((SstackS) + 4); - x_471X = *((long *) (SstackS)); - y_472X = SvalS; - if ((0 == (3 & (x_471X | y_472X)))) { - z_473X = (((x_471X)>>2)) - (((y_472X)>>2)); - if ((536870911 < z_473X)) { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_471X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_472X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - else { - if ((z_473X < -536870912)) { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_471X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_472X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - else { - SvalS = (((z_473X)<<2)); - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;}}} - else { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_471X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_472X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} - break; - case 55 : { - SstackS = ((SstackS) + 4); - arg2_474X = *((long *) (SstackS)); - x_475X = SvalS; - if ((0 == (3 & (arg2_474X | x_475X)))) { - if ((0 == x_475X)) { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_474X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_475X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - else { - a_476X = ((arg2_474X)>>2); - b_477X = ((x_475X)>>2); - if ((a_476X < 0)) { - arg0K0 = (0 - a_476X); - goto L7056;} - else { - arg0K0 = a_476X; - goto L7056;}}} - else { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_474X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_475X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} - break; - case 56 : { - SstackS = ((SstackS) + 4); - arg2_478X = *((long *) (SstackS)); - x_479X = SvalS; - if ((0 == (3 & (arg2_478X | x_479X)))) { - if ((arg2_478X == x_479X)) { - arg0K0 = 5; - goto L31744;} - else { - arg0K0 = 1; - goto L31744;}} - else { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_478X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_479X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} - break; - case 57 : { - SstackS = ((SstackS) + 4); - arg2_480X = *((long *) (SstackS)); - x_481X = SvalS; - if ((0 == (3 & (arg2_480X | x_481X)))) { - if ((arg2_480X < x_481X)) { - arg0K0 = 5; - goto L31822;} - else { - arg0K0 = 1; - goto L31822;}} - else { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_480X; - SstackS = ((SstackS) + -4); *((long *) (SstackS)) = x_481X; SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} - break; - case 58 : { - SstackS = ((SstackS) + 4); - arg2_482X = *((long *) (SstackS)); - x_483X = SvalS; - if ((0 == (3 & (arg2_482X | x_483X)))) { - if ((x_483X < arg2_482X)) { - arg0K0 = 5; - goto L31900;} - else { - arg0K0 = 1; - goto L31900;}} - else { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_482X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_483X; + *((long *) (SstackS)) = y_482X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; - case 59 : { + case 53 : { SstackS = ((SstackS) + 4); arg2_484X = *((long *) (SstackS)); x_485X = SvalS; if ((0 == (3 & (arg2_484X | x_485X)))) { - if ((x_485X < arg2_484X)) { - arg0K0 = 1; - goto L31978;} + a_486X = ((arg2_484X)>>2); + b_487X = ((x_485X)>>2); + if ((a_486X < 0)) { + arg0K0 = (0 - a_486X); + goto L6998;} else { - arg0K0 = 5; - goto L31978;}} + arg0K0 = a_486X; + goto L6998;}} else { push_exception_continuationB(5, 1); *((long *) (SstackS)) = arg2_484X; @@ -3821,3489 +3792,3666 @@ long s48_restart(long proc_345X, long nargs_346X) *((long *) (SstackS)) = x_485X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} + break; + case 54 : { + SstackS = ((SstackS) + 4); + x_488X = *((long *) (SstackS)); + y_489X = SvalS; + if ((0 == (3 & (x_488X | y_489X)))) { + z_490X = (((x_488X)>>2)) - (((y_489X)>>2)); + if ((536870911 < z_490X)) { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = x_488X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = y_489X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + else { + if ((z_490X < -536870912)) { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = x_488X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = y_489X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + else { + SvalS = (((z_490X)<<2)); + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;}}} + else { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = x_488X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = y_489X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + break; + case 55 : { + SstackS = ((SstackS) + 4); + arg2_491X = *((long *) (SstackS)); + x_492X = SvalS; + if ((0 == (3 & (arg2_491X | x_492X)))) { + if ((0 == x_492X)) { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_491X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_492X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + else { + a_493X = ((arg2_491X)>>2); + b_494X = ((x_492X)>>2); + if ((a_493X < 0)) { + arg0K0 = (0 - a_493X); + goto L7279;} + else { + arg0K0 = a_493X; + goto L7279;}}} + else { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_491X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_492X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + break; + case 56 : { + SstackS = ((SstackS) + 4); + arg2_495X = *((long *) (SstackS)); + x_496X = SvalS; + if ((0 == (3 & (arg2_495X | x_496X)))) { + if ((arg2_495X == x_496X)) { + arg0K0 = 5; + goto L32718;} + else { + arg0K0 = 1; + goto L32718;}} + else { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_495X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_496X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + break; + case 57 : { + SstackS = ((SstackS) + 4); + arg2_497X = *((long *) (SstackS)); + x_498X = SvalS; + if ((0 == (3 & (arg2_497X | x_498X)))) { + if ((arg2_497X < x_498X)) { + arg0K0 = 5; + goto L32796;} + else { + arg0K0 = 1; + goto L32796;}} + else { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_497X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_498X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + break; + case 58 : { + SstackS = ((SstackS) + 4); + arg2_499X = *((long *) (SstackS)); + x_500X = SvalS; + if ((0 == (3 & (arg2_499X | x_500X)))) { + if ((x_500X < arg2_499X)) { + arg0K0 = 5; + goto L32874;} + else { + arg0K0 = 1; + goto L32874;}} + else { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_499X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_500X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + break; + case 59 : { + SstackS = ((SstackS) + 4); + arg2_501X = *((long *) (SstackS)); + x_502X = SvalS; + if ((0 == (3 & (arg2_501X | x_502X)))) { + if ((x_502X < arg2_501X)) { + arg0K0 = 1; + goto L32952;} + else { + arg0K0 = 5; + goto L32952;}} + else { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_501X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_502X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} break; case 60 : { SstackS = ((SstackS) + 4); - arg2_486X = *((long *) (SstackS)); - x_487X = SvalS; - if ((0 == (3 & (arg2_486X | x_487X)))) { - if ((arg2_486X < x_487X)) { + arg2_503X = *((long *) (SstackS)); + x_504X = SvalS; + if ((0 == (3 & (arg2_503X | x_504X)))) { + if ((arg2_503X < x_504X)) { arg0K0 = 1; - goto L32056;} + goto L33030;} else { arg0K0 = 5; - goto L32056;}} + goto L33030;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_486X; + *((long *) (SstackS)) = arg2_503X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_487X; + *((long *) (SstackS)) = x_504X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 61 : { SstackS = ((SstackS) + 4); - arg2_488X = *((long *) (SstackS)); - x_489X = SvalS; - if ((0 == (3 & (arg2_488X | x_489X)))) { - if ((0 == x_489X)) { + arg2_505X = *((long *) (SstackS)); + x_506X = SvalS; + if ((0 == (3 & (arg2_505X | x_506X)))) { + if ((0 == x_506X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_488X; + *((long *) (SstackS)) = arg2_505X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_489X; + *((long *) (SstackS)) = x_506X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - a_490X = ((arg2_488X)>>2); - b_491X = ((x_489X)>>2); - if ((a_490X < 0)) { - arg0K0 = (0 - a_490X); - goto L7233;} + a_507X = ((arg2_505X)>>2); + b_508X = ((x_506X)>>2); + if ((a_507X < 0)) { + arg0K0 = (0 - a_507X); + goto L7456;} else { - arg0K0 = a_490X; - goto L7233;}}} + arg0K0 = a_507X; + goto L7456;}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_488X; + *((long *) (SstackS)) = arg2_505X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_489X; + *((long *) (SstackS)) = x_506X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 62 : { SstackS = ((SstackS) + 4); - x_492X = *((long *) (SstackS)); - y_493X = SvalS; - if ((0 == (3 & (x_492X | y_493X)))) { - if ((0 == y_493X)) { + x_509X = *((long *) (SstackS)); + y_510X = SvalS; + if ((0 == (3 & (x_509X | y_510X)))) { + if ((0 == y_510X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_492X; + *((long *) (SstackS)) = x_509X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_493X; + *((long *) (SstackS)) = y_510X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - a_494X = ((x_492X)>>2); - if ((a_494X < 0)) { - arg0K0 = (0 - a_494X); - goto L25338;} + a_511X = ((x_509X)>>2); + if ((a_511X < 0)) { + arg0K0 = (0 - a_511X); + goto L26010;} else { - arg0K0 = a_494X; - goto L25338;}}} + arg0K0 = a_511X; + goto L26010;}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_492X; + *((long *) (SstackS)) = x_509X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_493X; + *((long *) (SstackS)) = y_510X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 63 : { - x_495X = SvalS; - if ((0 == (3 & x_495X))) { - SvalS = x_495X; + x_512X = SvalS; + if ((0 == (3 & x_512X))) { + SvalS = x_512X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_495X; + *((long *) (SstackS)) = x_512X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 64 : { - x_496X = SvalS; - if ((0 == (3 & x_496X))) { - SvalS = x_496X; + x_513X = SvalS; + if ((0 == (3 & x_513X))) { + SvalS = x_513X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_496X; + *((long *) (SstackS)) = x_513X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 65 : { - x_497X = SvalS; - if ((0 == (3 & x_497X))) { + x_514X = SvalS; + if ((0 == (3 & x_514X))) { SvalS = 4; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_497X; + *((long *) (SstackS)) = x_514X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 66 : { - x_498X = SvalS; - if ((0 == (3 & x_498X))) { - SvalS = x_498X; + x_515X = SvalS; + if ((0 == (3 & x_515X))) { + SvalS = x_515X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_498X; + *((long *) (SstackS)) = x_515X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 67 : { - x_499X = SvalS; - if ((0 == (3 & x_499X))) { + x_516X = SvalS; + if ((0 == (3 & x_516X))) { SvalS = 0; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_499X; + *((long *) (SstackS)) = x_516X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 68 : { - x_500X = SvalS; + x_517X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_500X; + *((long *) (SstackS)) = x_517X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 69 : { - x_501X = SvalS; + x_518X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_501X; + *((long *) (SstackS)) = x_518X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 70 : { - x_502X = SvalS; + x_519X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_502X; + *((long *) (SstackS)) = x_519X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 71 : { - x_503X = SvalS; + x_520X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_503X; + *((long *) (SstackS)) = x_520X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 72 : { - x_504X = SvalS; + x_521X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_504X; + *((long *) (SstackS)) = x_521X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 73 : { - x_505X = SvalS; + x_522X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_505X; + *((long *) (SstackS)) = x_522X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 74 : { - x_506X = SvalS; + x_523X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_506X; + *((long *) (SstackS)) = x_523X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 75 : { - x_507X = SvalS; + x_524X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_507X; + *((long *) (SstackS)) = x_524X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; case 76 : { - x_508X = SvalS; - if ((0 == (3 & x_508X))) { - if ((x_508X < 0)) { - goto L38295;} + x_525X = SvalS; + if ((0 == (3 & x_525X))) { + if ((x_525X < 0)) { + goto L39384;} else { SvalS = 0; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} else { - goto L38295;}} + goto L39384;}} break; case 77 : { - n_509X = SvalS; - if ((0 == (3 & n_509X))) { - n_510X = ((n_509X)>>2); - if ((n_510X < 0)) { - arg0K0 = (0 - n_510X); - goto L25624;} + n_526X = SvalS; + if ((0 == (3 & n_526X))) { + n_527X = ((n_526X)>>2); + if ((n_527X < 0)) { + arg0K0 = (0 - n_527X); + goto L26296;} else { - arg0K0 = n_510X; - goto L25624;}} + arg0K0 = n_527X; + goto L26296;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = n_509X; + *((long *) (SstackS)) = n_526X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 78 : { SstackS = ((SstackS) + 4); - arg2_511X = *((long *) (SstackS)); - x_512X = SvalS; + arg2_528X = *((long *) (SstackS)); + x_529X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_511X; + *((long *) (SstackS)) = arg2_528X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_512X; + *((long *) (SstackS)) = x_529X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} break; case 79 : { SstackS = ((SstackS) + 4); - arg2_513X = *((long *) (SstackS)); - x_514X = SvalS; + arg2_530X = *((long *) (SstackS)); + x_531X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_513X; + *((long *) (SstackS)) = arg2_530X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_514X; + *((long *) (SstackS)) = x_531X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} break; case 80 : { SstackS = ((SstackS) + 4); - arg2_515X = *((long *) (SstackS)); - x_516X = SvalS; + arg2_532X = *((long *) (SstackS)); + x_533X = SvalS; push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_515X; + *((long *) (SstackS)) = arg2_532X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_516X; + *((long *) (SstackS)) = x_533X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} break; case 81 : { - x_517X = SvalS; - if ((0 == (3 & x_517X))) { - SvalS = (~ (3 | x_517X)); + x_534X = SvalS; + if ((0 == (3 & x_534X))) { + SvalS = (~ (3 | x_534X)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_517X; + *((long *) (SstackS)) = x_534X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 82 : { SstackS = ((SstackS) + 4); - arg2_518X = *((long *) (SstackS)); - x_519X = SvalS; - if ((0 == (3 & (arg2_518X | x_519X)))) { - SvalS = (arg2_518X & x_519X); + arg2_535X = *((long *) (SstackS)); + x_536X = SvalS; + if ((0 == (3 & (arg2_535X | x_536X)))) { + SvalS = (arg2_535X & x_536X); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_518X; + *((long *) (SstackS)) = arg2_535X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_519X; + *((long *) (SstackS)) = x_536X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 83 : { SstackS = ((SstackS) + 4); - arg2_520X = *((long *) (SstackS)); - x_521X = SvalS; - if ((0 == (3 & (arg2_520X | x_521X)))) { - SvalS = (arg2_520X | x_521X); + arg2_537X = *((long *) (SstackS)); + x_538X = SvalS; + if ((0 == (3 & (arg2_537X | x_538X)))) { + SvalS = (arg2_537X | x_538X); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_520X; + *((long *) (SstackS)) = arg2_537X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_521X; + *((long *) (SstackS)) = x_538X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 84 : { SstackS = ((SstackS) + 4); - arg2_522X = *((long *) (SstackS)); - x_523X = SvalS; - if ((0 == (3 & (arg2_522X | x_523X)))) { - SvalS = (arg2_522X ^ x_523X); + arg2_539X = *((long *) (SstackS)); + x_540X = SvalS; + if ((0 == (3 & (arg2_539X | x_540X)))) { + SvalS = (arg2_539X ^ x_540X); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_522X; + *((long *) (SstackS)) = arg2_539X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_523X; + *((long *) (SstackS)) = x_540X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 85 : { SstackS = ((SstackS) + 4); - x_524X = *((long *) (SstackS)); - y_525X = SvalS; - if ((0 == (3 & (x_524X | y_525X)))) { - value_526X = ((x_524X)>>2); - count_527X = ((y_525X)>>2); - if ((count_527X < 0)) { - PS_SHIFT_RIGHT(value_526X, (0 - count_527X), x_528X) - SvalS = (((x_528X)<<2)); + x_541X = *((long *) (SstackS)); + y_542X = SvalS; + if ((0 == (3 & (x_541X | y_542X)))) { + value_543X = ((x_541X)>>2); + count_544X = ((y_542X)>>2); + if ((count_544X < 0)) { + PS_SHIFT_RIGHT(value_543X, (0 - count_544X), x_545X) + SvalS = (((x_545X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - PS_SHIFT_LEFT(value_526X, count_527X, x_529X) - result_530X = (((((x_529X)<<2)))>>2); - PS_SHIFT_RIGHT(result_530X, count_527X, x_531X) - if ((value_526X == x_531X)) { - if ((value_526X < 0)) { - if ((result_530X < 0)) { - goto L25903;} + PS_SHIFT_LEFT(value_543X, count_544X, x_546X) + result_547X = (((((x_546X)<<2)))>>2); + PS_SHIFT_RIGHT(result_547X, count_544X, x_548X) + if ((value_543X == x_548X)) { + if ((value_543X < 0)) { + if ((result_547X < 0)) { + goto L26575;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_524X; + *((long *) (SstackS)) = x_541X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_525X; + *((long *) (SstackS)) = y_542X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} else { - if ((result_530X < 0)) { + if ((result_547X < 0)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_524X; + *((long *) (SstackS)) = x_541X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_525X; + *((long *) (SstackS)) = y_542X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - goto L25903;}}} + goto L26575;}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_524X; + *((long *) (SstackS)) = x_541X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_525X; + *((long *) (SstackS)) = y_542X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}} + goto L17320;}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_524X; + *((long *) (SstackS)) = x_541X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = y_525X; + *((long *) (SstackS)) = y_542X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 86 : { - x_532X = SvalS; - if ((9 == (255 & x_532X))) { + x_549X = SvalS; + if ((9 == (255 & x_549X))) { arg0K0 = 5; - goto L38383;} + goto L39472;} else { arg0K0 = 1; - goto L38383;}} + goto L39472;}} break; case 87 : { SstackS = ((SstackS) + 4); - arg2_533X = *((long *) (SstackS)); - if ((9 == (255 & arg2_533X))) { + arg2_550X = *((long *) (SstackS)); + if ((9 == (255 & arg2_550X))) { if ((9 == (255 & (SvalS)))) { - x_534X = SvalS; - if ((arg2_533X == x_534X)) { + x_551X = SvalS; + if ((arg2_550X == x_551X)) { arg0K0 = 5; - goto L28166;} + goto L28977;} else { arg0K0 = 1; - goto L28166;}} + goto L28977;}} else { - goto L28139;}} + goto L28950;}} else { - goto L28139;}} + goto L28950;}} break; case 88 : { SstackS = ((SstackS) + 4); - arg2_535X = *((long *) (SstackS)); - if ((9 == (255 & arg2_535X))) { + arg2_552X = *((long *) (SstackS)); + if ((9 == (255 & arg2_552X))) { if ((9 == (255 & (SvalS)))) { - x_536X = SvalS; - if ((arg2_535X < x_536X)) { + x_553X = SvalS; + if ((arg2_552X < x_553X)) { arg0K0 = 5; - goto L28076;} + goto L28887;} else { arg0K0 = 1; - goto L28076;}} + goto L28887;}} else { - goto L28049;}} + goto L28860;}} else { - goto L28049;}} + goto L28860;}} break; case 89 : { if ((9 == (255 & (SvalS)))) { SvalS = (((((((((SvalS))>>8)))))<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 90 : { if ((0 == (3 & (SvalS)))) { - x_537X = (((SvalS))>>2); - if ((255 < x_537X)) { - goto L32748;} + x_554X = (((SvalS))>>2); + if ((255 < x_554X)) { + goto L33722;} else { - if ((x_537X < 0)) { - goto L32748;} + if ((x_554X < 0)) { + goto L33722;} else { - SvalS = (9 + (((((x_537X)))<<8))); + SvalS = (9 + (((((x_554X)))<<8))); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}}} + goto L19093;}}} else { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; case 91 : { - x_538X = SvalS; - if ((21 == x_538X)) { + x_555X = SvalS; + if ((21 == x_555X)) { arg0K0 = 5; - goto L38412;} + goto L39501;} else { arg0K0 = 1; - goto L38412;}} + goto L39501;}} break; case 92 : { - x_539X = SvalS; - type_540X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((3 == (3 & x_539X))) { - if (((31 & ((((*((long *) ((((char *) (-3 + x_539X))) + -4))))>>2))) == type_540X)) { + x_556X = SvalS; + type_557X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((3 == (3 & x_556X))) { + if (((31 & ((((*((long *) ((((char *) (-3 + x_556X))) + -4))))>>2))) == type_557X)) { arg0K0 = 5; - goto L38426;} + goto L39515;} else { arg0K0 = 1; - goto L38426;}} + goto L39515;}} else { arg0K0 = 1; - goto L38426;}} + goto L39515;}} break; case 93 : { - stob_541X = SvalS; - type_542X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((3 == (3 & stob_541X))) { - if (((31 & ((((*((long *) ((((char *) (-3 + stob_541X))) + -4))))>>2))) == type_542X)) { - SvalS = (-4 & (3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_541X))) + -4))))>>8)))); + stob_558X = SvalS; + type_559X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((3 == (3 & stob_558X))) { + if (((31 & ((((*((long *) ((((char *) (-3 + stob_558X))) + -4))))>>2))) == type_559X)) { + SvalS = (-4 & (3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_558X))) + -4))))>>8)))); Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L21229;}} + goto L21893;}} else { - goto L21229;}} + goto L21893;}} break; case 94 : { - len_543X = *((unsigned char *) ((Scode_pointerS) + 1)); - space_544X = 4 + (((len_543X)<<2)); - v_545X = AVAILABLEp(space_544X); - if (v_545X) { - goto L21301;} + len_560X = *((unsigned char *) ((Scode_pointerS) + 1)); + space_561X = 4 + (((len_560X)<<2)); + v_562X = AVAILABLEp(space_561X); + if (v_562X) { + goto L21965;} else { - collect_saving_temps(1, 1, &temp1_546X); - v_547X = AVAILABLEp(space_544X); - if (v_547X) { - goto L21301;} + collect_saving_temps(1, 1, &temp1_563X); + v_564X = AVAILABLEp(space_561X); + if (v_564X) { + goto L21965;} else { ps_error("Scheme48 heap overflow", 0); - goto L21301;}}} + goto L21965;}}} break; case 95 : { SstackS = ((SstackS) + 4); - len_548X = (((*((long *) (SstackS))))>>2); - space_549X = 4 + (((len_548X)<<2)); - v_550X = AVAILABLEp(space_549X); - if (v_550X) { - goto L21483;} + len_565X = (((*((long *) (SstackS))))>>2); + space_566X = 4 + (((len_565X)<<2)); + v_567X = AVAILABLEp(space_566X); + if (v_567X) { + goto L22147;} else { - collect_saving_temps(1, 1, &temp1_551X); - v_552X = AVAILABLEp(space_549X); - if (v_552X) { - goto L21483;} + collect_saving_temps(1, 1, &temp1_568X); + v_569X = AVAILABLEp(space_566X); + if (v_569X) { + goto L22147;} else { ps_error("Scheme48 heap overflow", 0); - goto L21483;}}} + goto L22147;}}} break; case 96 : { - stob_553X = SvalS; - offset_554X = *((unsigned char *) ((Scode_pointerS) + 2)); - type_555X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((3 == (3 & stob_553X))) { - if (((31 & ((((*((long *) ((((char *) (-3 + stob_553X))) + -4))))>>2))) == type_555X)) { - SvalS = (*((long *) ((((char *) (-3 + stob_553X))) + (((offset_554X)<<2))))); + stob_570X = SvalS; + offset_571X = *((unsigned char *) ((Scode_pointerS) + 2)); + type_572X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((3 == (3 & stob_570X))) { + if (((31 & ((((*((long *) ((((char *) (-3 + stob_570X))) + -4))))>>2))) == type_572X)) { + SvalS = (*((long *) ((((char *) (-3 + stob_570X))) + (((offset_571X)<<2))))); Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L21693;}} + goto L22357;}} else { - goto L21693;}} + goto L22357;}} break; case 97 : { SstackS = ((SstackS) + 4); - stob_556X = *((long *) (SstackS)); - value_557X = SvalS; - offset_558X = *((unsigned char *) ((Scode_pointerS) + 2)); - type_559X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((3 == (3 & stob_556X))) { - if (((31 & ((((*((long *) ((((char *) (-3 + stob_556X))) + -4))))>>2))) == type_559X)) { - if ((3 == (3 & stob_556X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_556X))) + -4)))))) { - addr_560X = (((char *) (-3 + stob_556X))) + (((offset_558X)<<2)); - S48_WRITE_BARRIER(stob_556X, addr_560X, value_557X); - *((long *) addr_560X) = value_557X; + stob_573X = *((long *) (SstackS)); + value_574X = SvalS; + offset_575X = *((unsigned char *) ((Scode_pointerS) + 2)); + type_576X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((3 == (3 & stob_573X))) { + if (((31 & ((((*((long *) ((((char *) (-3 + stob_573X))) + -4))))>>2))) == type_576X)) { + if ((3 == (3 & stob_573X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_573X))) + -4)))))) { + addr_577X = (((char *) (-3 + stob_573X))) + (((offset_575X)<<2)); + S48_WRITE_BARRIER(stob_573X, addr_577X, value_574X); + *((long *) addr_577X) = value_574X; SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L21796;}} + goto L22460;}} else { - goto L21796;}} + goto L22460;}} else { - goto L21796;}} + goto L22460;}} else { - goto L21796;}} + goto L22460;}} break; case 98 : { SstackS = ((SstackS) + 4); - len_561X = *((long *) (SstackS)); - init_562X = SvalS; - type_563X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((0 == (3 & len_561X))) { - len_564X = ((len_561X)>>2); - size_565X = 1 + len_564X; - if ((len_564X < 0)) { - goto L21981;} + len_578X = *((long *) (SstackS)); + init_579X = SvalS; + type_580X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((0 == (3 & len_578X))) { + len_581X = ((len_578X)>>2); + size_582X = 1 + len_581X; + if ((len_581X < 0)) { + goto L22645;} else { - if ((4194305 < size_565X)) { - goto L21981;} + if ((4194305 < size_582X)) { + goto L22645;} else { - v_566X = AVAILABLEp(size_565X); - if (v_566X) { + v_583X = AVAILABLEp(size_582X); + if (v_583X) { arg2K0 = 1; - arg0K1 = init_562X; - goto L21999;} + arg0K1 = init_579X; + goto L22663;} else { - temp0_567X = collect_saving_temps(init_562X, 1, &temp1_568X); - v_569X = AVAILABLEp(size_565X); - if (v_569X) { + temp0_584X = collect_saving_temps(init_579X, 1, &temp1_585X); + v_586X = AVAILABLEp(size_582X); + if (v_586X) { arg2K0 = 1; - arg0K1 = temp0_567X; - goto L21999;} + arg0K1 = temp0_584X; + goto L22663;} else { arg2K0 = 0; - arg0K1 = temp0_567X; - goto L21999;}}}}} + arg0K1 = temp0_584X; + goto L22663;}}}}} else { push_exception_continuationB(5, 2); - *((long *) (SstackS)) = (((type_563X)<<2)); + *((long *) (SstackS)) = (((type_580X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = len_561X; + *((long *) (SstackS)) = len_578X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = init_562X; + *((long *) (SstackS)) = init_579X; SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;}} + goto L17320;}} break; case 99 : { SstackS = ((SstackS) + 4); - stob_570X = *((long *) (SstackS)); - index_571X = SvalS; - type_572X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((0 == (3 & index_571X))) { - if ((3 == (3 & stob_570X))) { - if (((31 & ((((*((long *) ((((char *) (-3 + stob_570X))) + -4))))>>2))) == type_572X)) { - len_573X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_570X))) + -4))))>>8))))>>2); - index_574X = ((index_571X)>>2); - if ((index_574X < 0)) { - goto L22277;} + stob_587X = *((long *) (SstackS)); + index_588X = SvalS; + type_589X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((0 == (3 & index_588X))) { + if ((3 == (3 & stob_587X))) { + if (((31 & ((((*((long *) ((((char *) (-3 + stob_587X))) + -4))))>>2))) == type_589X)) { + len_590X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_587X))) + -4))))>>8))))>>2); + index_591X = ((index_588X)>>2); + if ((index_591X < 0)) { + goto L22941;} else { - if ((index_574X < len_573X)) { - SvalS = (*((long *) ((((char *) (-3 + stob_570X))) + (-4 & index_571X)))); + if ((index_591X < len_590X)) { + SvalS = (*((long *) ((((char *) (-3 + stob_587X))) + (-4 & index_588X)))); Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L22277;}}} + goto L22941;}}} else { - goto L22254;}} + goto L22918;}} else { - goto L22254;}} + goto L22918;}} else { - goto L22254;}} + goto L22918;}} break; case 100 : { SstackS = ((SstackS) + 4); - arg2_575X = *((long *) (SstackS)); + arg2_592X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - stob_576X = *((long *) (SstackS)); - value_577X = SvalS; - type_578X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((0 == (3 & arg2_575X))) { - if ((3 == (3 & stob_576X))) { - if (((31 & ((((*((long *) ((((char *) (-3 + stob_576X))) + -4))))>>2))) == type_578X)) { - if ((3 == (3 & stob_576X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_576X))) + -4)))))) { - len_579X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_576X))) + -4))))>>8))))>>2); - index_580X = ((arg2_575X)>>2); - if ((index_580X < 0)) { - goto L22517;} + stob_593X = *((long *) (SstackS)); + value_594X = SvalS; + type_595X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((0 == (3 & arg2_592X))) { + if ((3 == (3 & stob_593X))) { + if (((31 & ((((*((long *) ((((char *) (-3 + stob_593X))) + -4))))>>2))) == type_595X)) { + if ((3 == (3 & stob_593X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_593X))) + -4)))))) { + len_596X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_593X))) + -4))))>>8))))>>2); + index_597X = ((arg2_592X)>>2); + if ((index_597X < 0)) { + goto L23181;} else { - if ((index_580X < len_579X)) { - addr_581X = (((char *) (-3 + stob_576X))) + (-4 & arg2_575X); - S48_WRITE_BARRIER(stob_576X, addr_581X, value_577X); - *((long *) addr_581X) = value_577X; + if ((index_597X < len_596X)) { + addr_598X = (((char *) (-3 + stob_593X))) + (-4 & arg2_592X); + S48_WRITE_BARRIER(stob_593X, addr_598X, value_594X); + *((long *) addr_598X) = value_594X; SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L22517;}}} + goto L23181;}}} else { - goto L22492;}} + goto L23156;}} else { - goto L22492;}} + goto L23156;}} else { - goto L22492;}} + goto L23156;}} else { - goto L22492;}} + goto L23156;}} else { - goto L22492;}} + goto L23156;}} break; case 101 : { SstackS = ((SstackS) + 4); - arg2_582X = *((long *) (SstackS)); - if ((0 == (3 & (arg2_582X | (SvalS))))) { - len_583X = ((arg2_582X)>>2); - init_584X = (((SvalS))>>2); - size_585X = 1 + ((((3 + len_583X))>>2)); - if ((len_583X < 0)) { - goto L26074;} + arg2_599X = *((long *) (SstackS)); + if ((0 == (3 & (arg2_599X | (SvalS))))) { + len_600X = ((arg2_599X)>>2); + init_601X = (((SvalS))>>2); + size_602X = 1 + ((((3 + len_600X))>>2)); + if ((len_600X < 0)) { + goto L26746;} else { - if ((4194305 < size_585X)) { - goto L26074;} + if ((4194305 < size_602X)) { + goto L26746;} else { - v_586X = AVAILABLEp(size_585X); - if (v_586X) { - goto L26166;} + v_603X = AVAILABLEp(size_602X); + if (v_603X) { + goto L26838;} else { - collect_saving_temps(1, 1, &temp1_587X); - v_588X = AVAILABLEp(size_585X); - if (v_588X) { - goto L26166;} + collect_saving_temps(1, 1, &temp1_604X); + v_605X = AVAILABLEp(size_602X); + if (v_605X) { + goto L26838;} else { push_exception_continuationB(8, 1); - *((long *) (SstackS)) = (((len_583X)<<2)); + *((long *) (SstackS)) = (((len_600X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((init_584X)<<2)); + *((long *) (SstackS)) = (((init_601X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}}}} + goto L17320;}}}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_582X; + *((long *) (SstackS)) = arg2_599X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; case 102 : { - obj_589X = SvalS; - if ((3 == (3 & obj_589X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_589X))) + -4))))>>2))))) { + obj_606X = SvalS; + if ((3 == (3 & obj_606X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + obj_606X))) + -4))))>>2))))) { SvalS = (((((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)))<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L36239;}} + goto L37292;}} else { - goto L36239;}} + goto L37292;}} break; case 103 : { SstackS = ((SstackS) + 4); - arg2_590X = *((long *) (SstackS)); - if ((3 == (3 & arg2_590X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_590X))) + -4))))>>2))))) { + arg2_607X = *((long *) (SstackS)); + if ((3 == (3 & arg2_607X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_607X))) + -4))))>>2))))) { if ((0 == (3 & (SvalS)))) { - index_591X = (((SvalS))>>2); - len_592X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_590X))) + -4))))>>8); - if ((index_591X < 0)) { - goto L32854;} + index_608X = (((SvalS))>>2); + len_609X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_607X))) + -4))))>>8); + if ((index_608X < 0)) { + goto L33828;} else { - if ((index_591X < len_592X)) { - SvalS = ((((*((unsigned char *) ((((char *) (-3 + arg2_590X))) + index_591X))))<<2)); + if ((index_608X < len_609X)) { + SvalS = ((((*((unsigned char *) ((((char *) (-3 + arg2_607X))) + index_608X))))<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L32854;}}} + goto L33828;}}} else { - goto L35818;}} + goto L36868;}} else { - goto L35818;}} + goto L36868;}} else { - goto L35818;}} + goto L36868;}} break; case 104 : { SstackS = ((SstackS) + 4); - arg2_593X = *((long *) (SstackS)); + arg2_610X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg3_594X = *((long *) (SstackS)); - if ((3 == (3 & arg3_594X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_594X))) + -4))))>>2))))) { - if ((0 == (3 & (arg2_593X | (SvalS))))) { - index_595X = ((arg2_593X)>>2); - Kchar_596X = (((SvalS))>>2); - if ((3 == (3 & arg3_594X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_594X))) + -4)))))) { - len_597X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_594X))) + -4))))>>8); - if ((index_595X < 0)) { - goto L29802;} + arg3_611X = *((long *) (SstackS)); + if ((3 == (3 & arg3_611X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg3_611X))) + -4))))>>2))))) { + if ((0 == (3 & (arg2_610X | (SvalS))))) { + index_612X = ((arg2_610X)>>2); + Kchar_613X = (((SvalS))>>2); + if ((3 == (3 & arg3_611X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_611X))) + -4)))))) { + len_614X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_611X))) + -4))))>>8); + if ((index_612X < 0)) { + goto L30738;} else { - if ((index_595X < len_597X)) { - *((unsigned char *) ((((char *) (-3 + arg3_594X))) + index_595X)) = Kchar_596X; + if ((index_612X < len_614X)) { + *((unsigned char *) ((((char *) (-3 + arg3_611X))) + index_612X)) = Kchar_613X; SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L29802;}}} + goto L30738;}}} else { - goto L29781;}} + goto L30717;}} else { - goto L29781;}} + goto L30717;}} else { - goto L34230;}} + goto L35280;}} else { - goto L34230;}} + goto L35280;}} else { - goto L34230;}} + goto L35280;}} break; case 105 : { SstackS = ((SstackS) + 4); - arg2_598X = *((long *) (SstackS)); - if ((0 == (3 & arg2_598X))) { + arg2_615X = *((long *) (SstackS)); + if ((0 == (3 & arg2_615X))) { if ((9 == (255 & (SvalS)))) { - len_599X = ((arg2_598X)>>2); - init_600X = ((((SvalS))>>8)); - size_601X = 1 + ((((4 + len_599X))>>2)); - if ((len_599X < 0)) { - goto L26308;} + len_616X = ((arg2_615X)>>2); + init_617X = ((((SvalS))>>8)); + size_618X = 1 + ((((4 + len_616X))>>2)); + if ((len_616X < 0)) { + goto L26980;} else { - if ((4194305 < size_601X)) { - goto L26308;} + if ((4194305 < size_618X)) { + goto L26980;} else { - v_602X = AVAILABLEp(size_601X); - if (v_602X) { - goto L26400;} + v_619X = AVAILABLEp(size_618X); + if (v_619X) { + goto L27072;} else { - collect_saving_temps(1, 1, &temp1_603X); - v_604X = AVAILABLEp(size_601X); - if (v_604X) { - goto L26400;} + collect_saving_temps(1, 1, &temp1_620X); + v_621X = AVAILABLEp(size_618X); + if (v_621X) { + goto L27072;} else { push_exception_continuationB(8, 1); - *((long *) (SstackS)) = (((len_599X)<<2)); + *((long *) (SstackS)) = (((len_616X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (9 + ((((init_600X))<<8))); + *((long *) (SstackS)) = (9 + ((((init_617X))<<8))); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}}}} + goto L17320;}}}}} else { - goto L32935;}} + goto L33909;}} else { - goto L32935;}} + goto L33909;}} break; case 106 : { - obj_605X = SvalS; - if ((3 == (3 & obj_605X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_605X))) + -4))))>>2))))) { + obj_622X = SvalS; + if ((3 == (3 & obj_622X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_622X))) + -4))))>>2))))) { SvalS = (-4 + (((((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)))<<2))); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L36289;}} + goto L37342;}} else { - goto L36289;}} + goto L37342;}} break; case 107 : { SstackS = ((SstackS) + 4); - arg2_606X = *((long *) (SstackS)); - if ((3 == (3 & arg2_606X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_606X))) + -4))))>>2))))) { + arg2_623X = *((long *) (SstackS)); + if ((3 == (3 & arg2_623X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_623X))) + -4))))>>2))))) { if ((0 == (3 & (SvalS)))) { - index_607X = (((SvalS))>>2); - len_608X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_606X))) + -4))))>>8)); - if ((index_607X < 0)) { - goto L32998;} + index_624X = (((SvalS))>>2); + len_625X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_623X))) + -4))))>>8)); + if ((index_624X < 0)) { + goto L33972;} else { - if ((index_607X < len_608X)) { - SvalS = (9 + ((((((*((unsigned char *) ((((char *) (-3 + arg2_606X))) + index_607X))))))<<8))); + if ((index_624X < len_625X)) { + SvalS = (9 + ((((((*((unsigned char *) ((((char *) (-3 + arg2_623X))) + index_624X))))))<<8))); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L32998;}}} + goto L33972;}}} else { - goto L35914;}} + goto L36964;}} else { - goto L35914;}} + goto L36964;}} else { - goto L35914;}} + goto L36964;}} break; case 108 : { SstackS = ((SstackS) + 4); - arg2_609X = *((long *) (SstackS)); + arg2_626X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg3_610X = *((long *) (SstackS)); - if ((3 == (3 & arg3_610X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_610X))) + -4))))>>2))))) { - if ((0 == (3 & arg2_609X))) { + arg3_627X = *((long *) (SstackS)); + if ((3 == (3 & arg3_627X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_627X))) + -4))))>>2))))) { + if ((0 == (3 & arg2_626X))) { if ((9 == (255 & (SvalS)))) { - index_611X = ((arg2_609X)>>2); - Kchar_612X = ((((SvalS))>>8)); - if ((3 == (3 & arg3_610X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_610X))) + -4)))))) { - len_613X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_610X))) + -4))))>>8)); - if ((index_611X < 0)) { - goto L29957;} + index_628X = ((arg2_626X)>>2); + Kchar_629X = ((((SvalS))>>8)); + if ((3 == (3 & arg3_627X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_627X))) + -4)))))) { + len_630X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_627X))) + -4))))>>8)); + if ((index_628X < 0)) { + goto L30893;} else { - if ((index_611X < len_613X)) { - *((unsigned char *) ((((char *) (-3 + arg3_610X))) + index_611X)) = (Kchar_612X); + if ((index_628X < len_630X)) { + *((unsigned char *) ((((char *) (-3 + arg3_627X))) + index_628X)) = (Kchar_629X); SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L29957;}}} + goto L30893;}}} else { - goto L29936;}} + goto L30872;}} else { - goto L29936;}} + goto L30872;}} else { - goto L34356;}} + goto L35406;}} else { - goto L34356;}} + goto L35406;}} else { - goto L34356;}} + goto L35406;}} else { - goto L34356;}} + goto L35406;}} break; case 109 : { - v_614X = AVAILABLEp(3); - if (v_614X) { - goto L24478;} + v_631X = AVAILABLEp(3); + if (v_631X) { + goto L25150;} else { - collect_saving_temps(1, 1, &temp1_615X); - v_616X = AVAILABLEp(3); - if (v_616X) { - goto L24478;} + collect_saving_temps(1, 1, &temp1_632X); + v_633X = AVAILABLEp(3); + if (v_633X) { + goto L25150;} else { ps_error("Scheme48 heap overflow", 0); - goto L24478;}}} + goto L25150;}}} break; case 110 : { - obj_617X = SvalS; - if ((3 == (3 & obj_617X))) { - if ((4 == (31 & ((((*((long *) ((((char *) (-3 + obj_617X))) + -4))))>>2))))) { - x_618X = SvalS; - descriptor_619X = *((long *) ((((char *) (-3 + x_618X))) + 4)); - if ((17 == (255 & descriptor_619X))) { - if ((529 == (*((long *) ((((char *) (-3 + x_618X))) + 4))))) { + obj_634X = SvalS; + if ((3 == (3 & obj_634X))) { + if ((4 == (31 & ((((*((long *) ((((char *) (-3 + obj_634X))) + -4))))>>2))))) { + x_635X = SvalS; + descriptor_636X = *((long *) ((((char *) (-3 + x_635X))) + 4)); + if ((17 == (255 & descriptor_636X))) { + if ((529 == (*((long *) ((((char *) (-3 + x_635X))) + 4))))) { arg0K0 = 5; - goto L33976;} + goto L34953;} else { arg0K0 = 1; - goto L33976;}} + goto L34953;}} else { arg0K0 = 5; - goto L33976;}} + goto L34953;}} else { - goto L33957;}} + goto L34934;}} else { - goto L33957;}} + goto L34934;}} break; case 111 : { SstackS = ((SstackS) + 4); - arg2_620X = *((long *) (SstackS)); - if ((3 == (3 & arg2_620X))) { - if ((4 == (31 & ((((*((long *) ((((char *) (-3 + arg2_620X))) + -4))))>>2))))) { - x_621X = SvalS; - if ((1 == x_621X)) { - goto L29544;} + arg2_637X = *((long *) (SstackS)); + if ((3 == (3 & arg2_637X))) { + if ((4 == (31 & ((((*((long *) ((((char *) (-3 + arg2_637X))) + -4))))>>2))))) { + x_638X = SvalS; + if ((1 == x_638X)) { + goto L30480;} else { - if ((5 == x_621X)) { - goto L29544;} + if ((5 == x_638X)) { + goto L30480;} else { - goto L29551;}}} + goto L30487;}}} else { - goto L29551;}} + goto L30487;}} else { - goto L29551;}} + goto L30487;}} break; case 112 : { - x_622X = SvalS; - if ((3 == (3 & x_622X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + x_622X))) + -4)))))) { + x_639X = SvalS; + if ((3 == (3 & x_639X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + x_639X))) + -4)))))) { arg0K0 = 1; - goto L38498;} + goto L39587;} else { arg0K0 = 5; - goto L38498;}} + goto L39587;}} else { arg0K0 = 5; - goto L38498;}} + goto L39587;}} break; case 113 : { - x_623X = SvalS; - if ((3 == (3 & x_623X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + x_623X))) + -4)))))) { - *((long *) ((((char *) (-3 + x_623X))) + -4)) = (128 | (*((long *) ((((char *) (-3 + x_623X))) + -4)))); - goto L33080;} + x_640X = SvalS; + if ((3 == (3 & x_640X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + x_640X))) + -4)))))) { + *((long *) ((((char *) (-3 + x_640X))) + -4)) = (128 | (*((long *) ((((char *) (-3 + x_640X))) + -4)))); + goto L34054;} else { - goto L33080;}} + goto L34054;}} else { - goto L33080;}} + goto L34054;}} break; case 114 : { - v_624X = AVAILABLEp(72); - if (v_624X) { + v_641X = AVAILABLEp(72); + if (v_641X) { arg2K0 = 1; arg0K1 = 0; - goto L33131;} + goto L34105;} else { - collect_saving_temps(1, 1, &temp1_625X); - v_626X = AVAILABLEp(72); - if (v_626X) { + collect_saving_temps(1, 1, &temp1_642X); + v_643X = AVAILABLEp(72); + if (v_643X) { arg2K0 = 1; arg0K1 = 0; - goto L33131;} + goto L34105;} else { arg2K0 = 0; arg0K1 = 0; - goto L33131;}}} + goto L34105;}}} break; case 115 : { - v_627X = AVAILABLEp(66); - if (v_627X) { + v_644X = AVAILABLEp(66); + if (v_644X) { arg2K0 = 1; arg0K1 = 0; - goto L34474;} + goto L35524;} else { - collect_saving_temps(1, 1, &temp1_628X); - v_629X = AVAILABLEp(66); - if (v_629X) { + collect_saving_temps(1, 1, &temp1_645X); + v_646X = AVAILABLEp(66); + if (v_646X) { arg2K0 = 1; arg0K1 = 0; - goto L34474;} + goto L35524;} else { arg2K0 = 0; arg0K1 = 0; - goto L34474;}}} + goto L35524;}}} break; case 116 : { - v_630X = AVAILABLEp(66); - if (v_630X) { + v_647X = AVAILABLEp(66); + if (v_647X) { arg2K0 = 1; arg0K1 = 0; - goto L37343;} + goto L38430;} else { - collect_saving_temps(1, 1, &temp1_631X); - v_632X = AVAILABLEp(66); - if (v_632X) { + collect_saving_temps(1, 1, &temp1_648X); + v_649X = AVAILABLEp(66); + if (v_649X) { arg2K0 = 1; arg0K1 = 0; - goto L37343;} + goto L38430;} else { arg2K0 = 0; arg0K1 = 0; - goto L37343;}}} + goto L38430;}}} break; case 117 : { - v_633X = AVAILABLEp(66); - if (v_633X) { + v_650X = AVAILABLEp(66); + if (v_650X) { arg2K0 = 1; arg0K1 = 0; - goto L37603;} + goto L38690;} else { - collect_saving_temps(1, 1, &temp1_634X); - v_635X = AVAILABLEp(66); - if (v_635X) { + collect_saving_temps(1, 1, &temp1_651X); + v_652X = AVAILABLEp(66); + if (v_652X) { arg2K0 = 1; arg0K1 = 0; - goto L37603;} + goto L38690;} else { arg2K0 = 0; arg0K1 = 0; - goto L37603;}}} + goto L38690;}}} break; case 118 : { - obj_636X = SvalS; - if ((3 == (3 & obj_636X))) { - if ((5 == (31 & ((((*((long *) ((((char *) (-3 + obj_636X))) + -4))))>>2))))) { - channel_637X = SvalS; - head_638X = Spending_channels_headS; - if ((1 == head_638X)) { - addr_639X = (((char *) (-3 + channel_637X))) + 16; - S48_WRITE_BARRIER(channel_637X, addr_639X, 1); - *((long *) addr_639X) = 1; - n_640X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_637X))) + 8))))>>2))); - arg0K0 = (((n_640X)<<2)); - goto L33202;} + SstackS = ((SstackS) + 4); + arg2_653X = *((long *) (SstackS)); + if ((3 == (3 & arg2_653X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + arg2_653X))) + -4))))>>2))))) { + x_654X = SvalS; + if ((1 == x_654X)) { + goto L28629;} else { - if ((channel_637X == head_638X)) { - channel_641X = Spending_channels_headS; - next_642X = *((long *) ((((char *) (-3 + channel_641X))) + 12)); - Spending_channels_headS = next_642X; - addr_643X = (((char *) (-3 + channel_641X))) + 12; - S48_WRITE_BARRIER(channel_641X, addr_643X, 1); - *((long *) addr_643X) = 1; - if ((1 == next_642X)) { - Spending_channels_tailS = 1; - goto L8173;} - else { - goto L8173;}} + if ((5 == x_654X)) { + goto L28629;} else { - arg0K0 = (*((long *) ((((char *) (-3 + head_638X))) + 12))); - arg0K1 = head_638X; - goto L8179;}}} + goto L28636;}}} else { - goto L33185;}} + goto L28636;}} else { - goto L33185;}} + goto L28636;}} break; case 119 : { - space_644X = 3 * (Snumber_of_channelsS); - v_645X = AVAILABLEp(space_644X); - if (v_645X) { - goto L14777;} + v_655X = AVAILABLEp(66); + if (v_655X) { + arg2K0 = 1; + arg0K1 = 0; + goto L35009;} else { - collect_saving_temps(1, 1, &temp1_646X); - v_647X = AVAILABLEp(space_644X); - if (v_647X) { - goto L14777;} + collect_saving_temps(1, 1, &temp1_656X); + v_657X = AVAILABLEp(66); + if (v_657X) { + arg2K0 = 1; + arg0K1 = 0; + goto L35009;} else { - ps_error("Scheme48 heap overflow", 0); - goto L14777;}}} + arg2K0 = 0; + arg0K1 = 0; + goto L35009;}}} break; case 120 : { + obj_658X = SvalS; + if ((3 == (3 & obj_658X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_658X))) + -4))))>>2))))) { + channel_659X = SvalS; + temp_660X = 4 == (*((long *) (((char *) (-3 + channel_659X))))); + if (temp_660X) { + arg2K0 = temp_660X; + goto L8509;} + else { + arg2K0 = (12 == (*((long *) (((char *) (-3 + channel_659X)))))); + goto L8509;}} + else { + goto L34159;}} + else { + goto L34159;}} + break; + case 121 : { + space_661X = 3 * (Snumber_of_channelsS); + v_662X = AVAILABLEp(space_661X); + if (v_662X) { + goto L15425;} + else { + collect_saving_temps(1, 1, &temp1_663X); + v_664X = AVAILABLEp(space_661X); + if (v_664X) { + goto L15425;} + else { + ps_error("Scheme48 heap overflow", 0); + goto L15425;}}} + break; + case 122 : { SvalS = 529; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; - case 121 : { + case 123 : { SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; - case 122 : { - x_648X = SvalS; + case 124 : { + x_665X = SvalS; push_exception_continuationB(16, 1); - *((long *) (SstackS)) = x_648X; + *((long *) (SstackS)) = x_665X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} break; - case 123 : { + case 125 : { SvalS = 1; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; - case 124 : { + case 126 : { SvalS = 21; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; - case 125 : { - v_649X = AVAILABLEp(66); - if (v_649X) { + case 127 : { + v_666X = AVAILABLEp(66); + if (v_666X) { arg2K0 = 1; arg0K1 = 0; - goto L34575;} + goto L35625;} else { - collect_saving_temps(1, 1, &temp1_650X); - v_651X = AVAILABLEp(66); - if (v_651X) { + collect_saving_temps(1, 1, &temp1_667X); + v_668X = AVAILABLEp(66); + if (v_668X) { arg2K0 = 1; arg0K1 = 0; - goto L34575;} + goto L35625;} else { arg2K0 = 0; arg0K1 = 0; - goto L34575;}}} - break; - case 126 : { - SvalS = 13; - collect_saving_temps(0, 0, &v_652X); - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - break; - case 127 : { - obj_653X = SvalS; - if ((3 == (3 & obj_653X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_653X))) + -4))))>>2))))) { - x_654X = SvalS; - n_655X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_654X))) + -4))))>>8)); - arg0K0 = 0; - arg0K1 = 0; - goto L35407;} - else { - goto L35384;}} - else { - goto L35384;}} + goto L35625;}}} break; case 128 : { - v_656X = AVAILABLEp(6); - if (v_656X) { - goto L38564;} - else { - collect_saving_temps(1, 1, &temp1_657X); - v_658X = AVAILABLEp(6); - if (v_658X) { - goto L38564;} - else { - ps_error("Scheme48 heap overflow", 0); - goto L38564;}}} + SvalS = 13; + collect_saving_temps(0, 0, &v_669X); + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} break; case 129 : { + obj_670X = SvalS; + if ((3 == (3 & obj_670X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_670X))) + -4))))>>2))))) { + x_671X = SvalS; + n_672X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_671X))) + -4))))>>8)); + arg0K0 = 0; + arg0K1 = 0; + goto L36457;} + else { + goto L36434;}} + else { + goto L36434;}} + break; + case 130 : { + v_673X = AVAILABLEp(6); + if (v_673X) { + goto L39657;} + else { + collect_saving_temps(1, 1, &temp1_674X); + v_675X = AVAILABLEp(6); + if (v_675X) { + goto L39657;} + else { + ps_error("Scheme48 heap overflow", 0); + goto L39657;}}} + break; + case 131 : { SstackS = ((SstackS) + 4); - arg2_659X = *((long *) (SstackS)); - if ((0 == (3 & arg2_659X))) { - key_660X = ((arg2_659X)>>2); - other_661X = SvalS; - if ((5 == key_660X)) { - SvalS = (-4 & other_661X); + arg2_676X = *((long *) (SstackS)); + if ((0 == (3 & arg2_676X))) { + key_677X = ((arg2_676X)>>2); + other_678X = SvalS; + if ((5 == key_677X)) { + SvalS = (-4 & other_678X); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((0 == key_660X)) { - x_662X = s48_available(); - SvalS = (((x_662X)<<2)); + if ((0 == key_677X)) { + x_679X = s48_available(); + SvalS = (((x_679X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((1 == key_660X)) { - bytes_663X = s48_heap_size(); - SvalS = (-4 & (3 + bytes_663X)); + if ((1 == key_677X)) { + bytes_680X = s48_heap_size(); + SvalS = (-4 & (3 + bytes_680X)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((2 == key_660X)) { + if ((2 == key_677X)) { SvalS = (((((Sstack_endS) - (Sstack_beginS)))<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((3 == key_660X)) { - x_664X = s48_gc_count(); - SvalS = (((x_664X)<<2)); + if ((3 == key_677X)) { + x_681X = s48_gc_count(); + SvalS = (((x_681X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((4 == key_660X)) { + if ((4 == key_677X)) { push_exception_continuationB(15, 1); - *((long *) (SstackS)) = (((key_660X)<<2)); + *((long *) (SstackS)) = (((key_677X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = other_661X; + *((long *) (SstackS)) = other_678X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { push_exception_continuationB(18, 1); - *((long *) (SstackS)) = (((key_660X)<<2)); + *((long *) (SstackS)) = (((key_677X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = other_661X; + *((long *) (SstackS)) = other_678X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}}}}}} + goto L17320;}}}}}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_659X; + *((long *) (SstackS)) = arg2_676X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; - case 130 : { + case 132 : { if ((0 == (3 & (SvalS)))) { - type_665X = (((SvalS))>>2); + type_682X = (((SvalS))>>2); arg2K0 = 1; - goto L33293;} + goto L34267;} else { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} break; - case 131 : { - x_666X = SvalS; + case 133 : { + x_683X = SvalS; arg2K0 = 1; - arg0K1 = x_666X; - goto L38614;} + arg0K1 = x_683X; + goto L39707;} break; - case 132 : { + case 134 : { SvalS = (Scurrent_threadS); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; - case 133 : { + case 135 : { Scurrent_threadS = (SvalS); SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; - case 134 : { + case 136 : { SvalS = (Ssession_dataS); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; - case 135 : { + case 137 : { Ssession_dataS = (SvalS); SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - break; - case 136 : { - obj_667X = SvalS; - if ((3 == (3 & obj_667X))) { - if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_667X))) + -4))))>>2))))) { - if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 160)) { - goto L20570;} - else { - temp_668X = Sexception_handlersS; - Sexception_handlersS = (SvalS); - SvalS = temp_668X; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;}} - else { - goto L20570;}} - else { - goto L20570;}} - break; - case 137 : { - SstackS = ((SstackS) + 4); - p_669X = *((long *) (SstackS)); - SstackS = ((SstackS) + 4); - template_670X = *((long *) (SstackS)); - SstackS = ((SstackS) + 4); - SstackS = ((SstackS) + 4); - p_671X = *((long *) (SstackS)); - StemplateS = template_670X; - Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + template_670X)))))))) + ((((((((((p_669X)>>2)) + (((p_671X)>>2))))<<2)))>>2))); - arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} break; case 138 : { - obj_672X = SvalS; - if ((3 == (3 & obj_672X))) { - if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_672X))) + -4))))>>2))))) { - if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 5)) { - goto L19494;} + obj_684X = SvalS; + if ((3 == (3 & obj_684X))) { + if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_684X))) + -4))))>>2))))) { + if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 162)) { + goto L21234;} else { - temp_673X = Sinterrupt_handlersS; - Sinterrupt_handlersS = (SvalS); - SvalS = temp_673X; + temp_685X = Sexception_handlersS; + Sexception_handlersS = (SvalS); + SvalS = temp_685X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} else { - goto L19494;}} + goto L21234;}} else { - goto L19494;}} + goto L21234;}} break; case 139 : { - old_674X = Senabled_interruptsS; - p_675X = SvalS; - Senabled_interruptsS = (((p_675X)>>2)); - if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { - s48_Spending_interruptPS = 0; - if ((s48_Spending_eventsPS)) { - s48_Spending_interruptPS = 1; - goto L38655;} - else { - goto L38655;}} - else { - s48_Spending_interruptPS = 1; - goto L38655;}} + SstackS = ((SstackS) + 4); + p_686X = *((long *) (SstackS)); + SstackS = ((SstackS) + 4); + template_687X = *((long *) (SstackS)); + SstackS = ((SstackS) + 4); + SstackS = ((SstackS) + 4); + p_688X = *((long *) (SstackS)); + StemplateS = template_687X; + Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + template_687X)))))))) + ((((((((((p_686X)>>2)) + (((p_688X)>>2))))<<2)))>>2))); + arg1K0 = (Scode_pointerS); + goto L19093;} break; case 140 : { - SstackS = ((SstackS) + 4); - p_676X = *((long *) (SstackS)); - Senabled_interruptsS = (((p_676X)>>2)); + obj_689X = SvalS; + if ((3 == (3 & obj_689X))) { + if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_689X))) + -4))))>>2))))) { + if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 6)) { + goto L20149;} + else { + temp_690X = Sinterrupt_handlersS; + Sinterrupt_handlersS = (SvalS); + SvalS = temp_690X; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;}} + else { + goto L20149;}} + else { + goto L20149;}} + break; + case 141 : { + old_691X = Senabled_interruptsS; + p_692X = SvalS; + Senabled_interruptsS = (((p_692X)>>2)); if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { s48_Spending_interruptPS = 0; if ((s48_Spending_eventsPS)) { s48_Spending_interruptPS = 1; - goto L18452;} + goto L39748;} else { - goto L18452;}} + goto L39748;}} else { s48_Spending_interruptPS = 1; - goto L18452;}} + goto L39748;}} break; - case 141 : { + case 142 : { + SstackS = ((SstackS) + 4); + p_693X = *((long *) (SstackS)); + Senabled_interruptsS = (((p_693X)>>2)); + if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { + s48_Spending_interruptPS = 0; + if ((s48_Spending_eventsPS)) { + s48_Spending_interruptPS = 1; + goto L19107;} + else { + goto L19107;}} + else { + s48_Spending_interruptPS = 1; + goto L19107;}} + break; + case 143 : { if ((0 == (3 & (SvalS)))) { - p_677X = SvalS; + p_694X = SvalS; Spending_interruptsS = (-2 & (Spending_interruptsS)); if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { s48_Spending_interruptPS = 0; if ((s48_Spending_eventsPS)) { s48_Spending_interruptPS = 1; - goto L37163;} + goto L38250;} else { - goto L37163;}} + goto L38250;}} else { s48_Spending_interruptPS = 1; - goto L37163;}} + goto L38250;}} else { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} - break; - case 142 : { - SstackS = ((SstackS) + 4); - arg2_678X = *((long *) (SstackS)); - if ((0 == (3 & arg2_678X))) { - x_679X = SvalS; - if ((1 == x_679X)) { - goto L34103;} - else { - if ((5 == x_679X)) { - goto L34103;} - else { - goto L34108;}}} - else { - goto L34108;}} - break; - case 143 : { - SstackS = ((SstackS) + 4); - nargs_680X = (((*((long *) (SstackS))))>>2); - SstackS = ((SstackS) + 4); - p_681X = *((long *) (SstackS)); - SstackS = ((SstackS) + 4); - rest_list_682X = *((long *) (SstackS)); - if ((12 < nargs_680X)) { - push_exception_continuationB(20, (1 + (*((long *) ((SstackS) + (-4 & p_681X)))))); - *((long *) (SstackS)) = nargs_680X; - SstackS = ((SstackS) + -4); - arg0K0 = 1; - goto L16665;} - else { - arg0K0 = rest_list_682X; - goto L22787;}} + goto L17320;}} break; case 144 : { - v_683X = AVAILABLEp(5); - if (v_683X) { + SstackS = ((SstackS) + 4); + arg2_695X = *((long *) (SstackS)); + if ((0 == (3 & arg2_695X))) { + x_696X = SvalS; + if ((1 == x_696X)) { + goto L35153;} + else { + if ((5 == x_696X)) { + goto L35153;} + else { + goto L35158;}}} + else { + goto L35158;}} + break; + case 145 : { + SstackS = ((SstackS) + 4); + nargs_697X = (((*((long *) (SstackS))))>>2); + SstackS = ((SstackS) + 4); + p_698X = *((long *) (SstackS)); + SstackS = ((SstackS) + 4); + rest_list_699X = *((long *) (SstackS)); + if ((14 < nargs_697X)) { + push_exception_continuationB(20, 1); + *((long *) (SstackS)) = (*((long *) ((SstackS) + (-4 & p_698X)))); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = nargs_697X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + else { + arg0K0 = rest_list_699X; + goto L23453;}} + break; + case 146 : { + v_700X = AVAILABLEp(5); + if (v_700X) { arg2K0 = 1; arg0K1 = 0; - goto L33402;} + goto L34376;} else { - collect_saving_temps(1, 1, &temp1_684X); - v_685X = AVAILABLEp(5); - if (v_685X) { + collect_saving_temps(1, 1, &temp1_701X); + v_702X = AVAILABLEp(5); + if (v_702X) { arg2K0 = 1; arg0K1 = 0; - goto L33402;} + goto L34376;} else { arg2K0 = 0; arg0K1 = 0; - goto L33402;}}} - break; - case 146 : { - SstackS = ((SstackS) + 4); - arg2_686X = *((long *) (SstackS)); - if ((3 == (3 & arg2_686X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_686X))) + -4))))>>2))))) { - x_687X = SvalS; - if ((1 == x_687X)) { - goto L23905;} - else { - if ((5 == x_687X)) { - goto L23905;} - else { - goto L23910;}}} - else { - goto L23910;}} - else { - goto L23910;}} - break; - case 147 : { - SstackS = ((SstackS) + 4); - arg2_688X = *((long *) (SstackS)); - if ((0 == (3 & arg2_688X))) { - option_689X = ((arg2_688X)>>2); - other_690X = SvalS; - if ((2 == option_689X)) { - x_691X = CHEAP_TIME(); - SvalS = (((x_691X)<<2)); - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - else { - if ((0 == option_689X)) { - seconds_692X = s48_run_time(&mseconds_693X); - arg0K0 = option_689X; - arg0K1 = seconds_692X; - arg0K2 = mseconds_693X; - goto L35318;} - else { - if ((1 == option_689X)) { - seconds_694X = s48_real_time(&mseconds_695X); - arg0K0 = option_689X; - arg0K1 = seconds_694X; - arg0K2 = mseconds_695X; - goto L35318;} - else { - push_exception_continuationB(18, 1); - *((long *) (SstackS)) = (((option_689X)<<2)); - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = other_690X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}}}} - else { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_688X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (SvalS); - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} + goto L34376;}}} break; case 148 : { SstackS = ((SstackS) + 4); - arg2_696X = *((long *) (SstackS)); - if ((0 == (3 & arg2_696X))) { - key_697X = ((arg2_696X)>>2); - value_698X = SvalS; - status_699X = s48_extended_vm(key_697X, value_698X); - if ((0 == status_699X)) { - SvalS = (s48_Sextension_valueS); + arg2_703X = *((long *) (SstackS)); + if ((3 == (3 & arg2_703X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_703X))) + -4))))>>2))))) { + x_704X = SvalS; + if ((1 == x_704X)) { + goto L24577;} + else { + if ((5 == x_704X)) { + goto L24577;} + else { + goto L24582;}}} + else { + goto L24582;}} + else { + goto L24582;}} + break; + case 149 : { + SstackS = ((SstackS) + 4); + arg2_705X = *((long *) (SstackS)); + if ((0 == (3 & arg2_705X))) { + option_706X = ((arg2_705X)>>2); + other_707X = SvalS; + if ((2 == option_706X)) { + x_708X = CHEAP_TIME(); + SvalS = (((x_708X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((1 == status_699X)) { - push_exception_continuationB(23, 1); - *((long *) (SstackS)) = (((key_697X)<<2)); - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = value_698X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} + if ((0 == option_706X)) { + seconds_709X = s48_run_time(&mseconds_710X); + arg0K0 = option_706X; + arg0K1 = seconds_709X; + arg0K2 = mseconds_710X; + goto L36368;} else { - push_exception_continuationB(24, 1); - *((long *) (SstackS)) = (((key_697X)<<2)); - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = value_698X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}}} + if ((1 == option_706X)) { + seconds_711X = s48_real_time(&mseconds_712X); + arg0K0 = option_706X; + arg0K1 = seconds_711X; + arg0K2 = mseconds_712X; + goto L36368;} + else { + push_exception_continuationB(18, 1); + *((long *) (SstackS)) = (((option_706X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = other_707X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_696X; + *((long *) (SstackS)) = arg2_705X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} break; - case 149 : { + case 150 : { SstackS = ((SstackS) + 4); - arg2_700X = *((long *) (SstackS)); - x_701X = SvalS; + arg2_713X = *((long *) (SstackS)); + if ((0 == (3 & arg2_713X))) { + key_714X = ((arg2_713X)>>2); + value_715X = SvalS; + status_716X = s48_extended_vm(key_714X, value_715X); + if ((0 == status_716X)) { + SvalS = (s48_Sextension_valueS); + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + else { + if ((1 == status_716X)) { + push_exception_continuationB(23, 1); + *((long *) (SstackS)) = (((key_714X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = value_715X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + else { + push_exception_continuationB(24, 1); + *((long *) (SstackS)) = (((key_714X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = value_715X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}}} + else { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_713X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (SvalS); + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + break; + case 151 : { + SstackS = ((SstackS) + 4); + arg2_717X = *((long *) (SstackS)); + x_718X = SvalS; Senabled_interruptsS = -1; if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { s48_Spending_interruptPS = 0; if ((s48_Spending_eventsPS)) { s48_Spending_interruptPS = 1; - goto L38715;} + goto L39808;} else { - goto L38715;}} + goto L39808;}} else { s48_Spending_interruptPS = 1; - goto L38715;}} - break; - case 150 : { - SstackS = ((SstackS) + 4); - arg2_702X = *((long *) (SstackS)); - if ((3 == (3 & arg2_702X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_702X))) + -4))))>>2))))) { - obj_703X = SvalS; - if ((3 == (3 & obj_703X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_703X))) + -4))))>>2))))) { - x_704X = SvalS; - len_705X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_702X))) + -4))))>>8); - if ((len_705X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_704X))) + -4))))>>8)))) { - if (((!memcmp((void *)(((char *) (-3 + x_704X))), (void *)(((char *) (-3 + arg2_702X))),len_705X)))) { - arg0K0 = 5; - goto L27842;} - else { - arg0K0 = 1; - goto L27842;}} - else { - arg0K0 = 1; - goto L27842;}} - else { - goto L27809;}} - else { - goto L27809;}} - else { - goto L27809;}} - else { - goto L27809;}} - break; - case 151 : { - space_706X = 1 + ((((4 + ((((SvalS))>>2))))>>2)); - v_707X = AVAILABLEp(space_706X); - if (v_707X) { - goto L33611;} - else { - collect_saving_temps(1, 1, &temp1_708X); - v_709X = AVAILABLEp(space_706X); - if (v_709X) { - goto L33611;} - else { - ps_error("Scheme48 heap overflow", 0); - goto L33611;}}} + goto L39808;}} break; case 152 : { SstackS = ((SstackS) + 4); - thing_710X = *((long *) (SstackS)); - list_711X = SvalS; - arg0K0 = list_711X; - arg0K1 = list_711X; - arg2K2 = 1; - goto L29199;} + arg2_719X = *((long *) (SstackS)); + if ((3 == (3 & arg2_719X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_719X))) + -4))))>>2))))) { + obj_720X = SvalS; + if ((3 == (3 & obj_720X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_720X))) + -4))))>>2))))) { + x_721X = SvalS; + len_722X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_719X))) + -4))))>>8); + if ((len_722X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_721X))) + -4))))>>8)))) { + if (((!memcmp((void *)(((char *) (-3 + x_721X))), (void *)(((char *) (-3 + arg2_719X))),len_722X)))) { + arg0K0 = 5; + goto L28527;} + else { + arg0K0 = 1; + goto L28527;}} + else { + arg0K0 = 1; + goto L28527;}} + else { + goto L28494;}} + else { + goto L28494;}} + else { + goto L28494;}} + else { + goto L28494;}} break; case 153 : { + space_723X = 1 + ((((4 + ((((SvalS))>>2))))>>2)); + v_724X = AVAILABLEp(space_723X); + if (v_724X) { + goto L34585;} + else { + collect_saving_temps(1, 1, &temp1_725X); + v_726X = AVAILABLEp(space_723X); + if (v_726X) { + goto L34585;} + else { + ps_error("Scheme48 heap overflow", 0); + goto L34585;}}} + break; + case 154 : { SstackS = ((SstackS) + 4); - arg2_712X = *((long *) (SstackS)); + thing_727X = *((long *) (SstackS)); + list_728X = SvalS; + arg0K0 = list_728X; + arg0K1 = list_728X; + arg2K2 = 1; + goto L30135;} + break; + case 155 : { SstackS = ((SstackS) + 4); - arg3_713X = *((long *) (SstackS)); + arg2_729X = *((long *) (SstackS)); + SstackS = ((SstackS) + 4); + arg3_730X = *((long *) (SstackS)); if ((0 == (3 & (SvalS)))) { - index_714X = (((SvalS))>>2); - if ((3 == (3 & arg3_713X))) { - if ((8 == (31 & ((((*((long *) ((((char *) (-3 + arg3_713X))) + -4))))>>2))))) { - if ((arg2_712X == (*((long *) (((char *) (-3 + arg3_713X))))))) { - len_715X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_713X))) + -4))))>>8))))>>2); - if ((index_714X < 0)) { - goto L27515;} + index_731X = (((SvalS))>>2); + if ((3 == (3 & arg3_730X))) { + if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg3_730X))) + -4))))>>2))))) { + if ((arg2_729X == (*((long *) (((char *) (-3 + arg3_730X))))))) { + len_732X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_730X))) + -4))))>>8))))>>2); + if ((index_731X < 0)) { + goto L28200;} else { - if ((index_714X < len_715X)) { - SvalS = (*((long *) ((((char *) (-3 + arg3_713X))) + (((index_714X)<<2))))); + if ((index_731X < len_732X)) { + SvalS = (*((long *) ((((char *) (-3 + arg3_730X))) + (((index_731X)<<2))))); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L27515;}}} + goto L28200;}}} else { - goto L27535;}} + goto L28220;}} else { - goto L27535;}} + goto L28220;}} else { - goto L27535;}} + goto L28220;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg3_713X; + *((long *) (SstackS)) = arg3_730X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_712X; + *((long *) (SstackS)) = arg2_729X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;}} + goto L17320;}} break; - case 154 : { + case 156 : { SstackS = ((SstackS) + 4); - arg2_716X = *((long *) (SstackS)); + arg2_733X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg3_717X = *((long *) (SstackS)); + arg3_734X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg4_718X = *((long *) (SstackS)); - if ((0 == (3 & arg2_716X))) { - index_719X = ((arg2_716X)>>2); - value_720X = SvalS; - if ((3 == (3 & arg4_718X))) { - if ((8 == (31 & ((((*((long *) ((((char *) (-3 + arg4_718X))) + -4))))>>2))))) { - if ((arg3_717X == (*((long *) (((char *) (-3 + arg4_718X))))))) { - if ((3 == (3 & arg4_718X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_718X))) + -4)))))) { - len_721X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_718X))) + -4))))>>8))))>>2); - if ((index_719X < 0)) { - goto L30704;} + arg4_735X = *((long *) (SstackS)); + if ((0 == (3 & arg2_733X))) { + index_736X = ((arg2_733X)>>2); + value_737X = SvalS; + if ((3 == (3 & arg4_735X))) { + if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg4_735X))) + -4))))>>2))))) { + if ((arg3_734X == (*((long *) (((char *) (-3 + arg4_735X))))))) { + if ((3 == (3 & arg4_735X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_735X))) + -4)))))) { + len_738X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_735X))) + -4))))>>8))))>>2); + if ((index_736X < 0)) { + goto L31678;} else { - if ((index_719X < len_721X)) { - addr_722X = (((char *) (-3 + arg4_718X))) + (((index_719X)<<2)); - S48_WRITE_BARRIER(arg4_718X, addr_722X, value_720X); - *((long *) addr_722X) = value_720X; + if ((index_736X < len_738X)) { + addr_739X = (((char *) (-3 + arg4_735X))) + (((index_736X)<<2)); + S48_WRITE_BARRIER(arg4_735X, addr_739X, value_737X); + *((long *) addr_739X) = value_737X; SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L30704;}}} + goto L31678;}}} else { - goto L30726;}} + goto L31700;}} else { - goto L30726;}} + goto L31700;}} else { - goto L30726;}} + goto L31700;}} else { - goto L30726;}} + goto L31700;}} else { - goto L30726;}} + goto L31700;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg4_718X; + *((long *) (SstackS)) = arg4_735X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg3_717X; + *((long *) (SstackS)) = arg3_734X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_716X; + *((long *) (SstackS)) = arg2_733X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 4; - goto L16665;}} + goto L17320;}} break; - case 155 : { + case 157 : { SstackS = ((SstackS) + 4); - arg2_723X = *((long *) (SstackS)); + arg2_740X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg3_724X = *((long *) (SstackS)); + arg3_741X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg4_725X = *((long *) (SstackS)); + arg4_742X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg5_726X = *((long *) (SstackS)); - if ((0 == (3 & ((arg4_725X | arg2_723X) | (SvalS))))) { - from_index_727X = ((arg4_725X)>>2); - to_index_728X = ((arg2_723X)>>2); - count_729X = (((SvalS))>>2); - if ((3 == (3 & arg5_726X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg5_726X))) + -4))))>>2))))) { - goto L30955;} + arg5_743X = *((long *) (SstackS)); + if ((0 == (3 & ((arg4_742X | arg2_740X) | (SvalS))))) { + from_index_744X = ((arg4_742X)>>2); + to_index_745X = ((arg2_740X)>>2); + count_746X = (((SvalS))>>2); + if ((3 == (3 & arg5_743X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_743X))) + -4))))>>2))))) { + goto L31929;} else { - goto L30950;}} + goto L31924;}} else { - goto L30950;}} + goto L31924;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg5_726X; + *((long *) (SstackS)) = arg5_743X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg4_725X; + *((long *) (SstackS)) = arg4_742X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg3_724X; + *((long *) (SstackS)) = arg3_741X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_723X; + *((long *) (SstackS)) = arg2_740X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 5; - goto L16665;}} + goto L17320;}} break; - case 156 : { - v_730X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((0 == v_730X)) { + case 158 : { + v_747X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((0 == v_747X)) { arg0K0 = (SvalS); - goto L23037;} + goto L23709;} else { merged_arg0K0 = 0; get_current_port_return_tag = 0; goto get_current_port; get_current_port_return_0: - v_731X = get_current_port0_return_value; - arg0K0 = v_731X; - goto L23037;}} + v_748X = get_current_port0_return_value; + arg0K0 = v_748X; + goto L23709;}} break; - case 157 : { - v_732X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((0 == v_732X)) { + case 159 : { + v_749X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((0 == v_749X)) { arg0K0 = (SvalS); - goto L23257;} + goto L23929;} else { merged_arg0K0 = 0; get_current_port_return_tag = 1; goto get_current_port; get_current_port_return_1: - v_733X = get_current_port0_return_value; - arg0K0 = v_733X; - goto L23257;}} + v_750X = get_current_port0_return_value; + arg0K0 = v_750X; + goto L23929;}} break; - case 158 : { - v_734X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((0 == v_734X)) { - v_735X = SvalS; + case 160 : { + v_751X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((0 == v_751X)) { + v_752X = SvalS; SstackS = ((SstackS) + 4); arg0K0 = (*((long *) (SstackS))); - arg0K1 = v_735X; - goto L23470;} + arg0K1 = v_752X; + goto L24142;} else { merged_arg0K0 = 4; get_current_port_return_tag = 2; goto get_current_port; get_current_port_return_2: - v_736X = get_current_port0_return_value; + v_753X = get_current_port0_return_value; arg0K0 = (SvalS); - arg0K1 = v_736X; - goto L23470;}} + arg0K1 = v_753X; + goto L24142;}} break; - case 159 : { - x_737X = SvalS; - out_738X = stderr; - arg0K0 = x_737X; - goto L29452;} + case 161 : { + x_754X = SvalS; + out_755X = stderr; + arg0K0 = x_754X; + goto L30388;} break; }} - L16665: { - nargs_739X = arg0K0; - opcode_740X = (((*((long *) ((SstackS) + (8 + (((nargs_739X)<<2)))))))>>2); - obj_741X = Sexception_handlersS; - if ((3 == (3 & obj_741X))) { - if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_741X))) + -4))))>>2))))) { - goto L16724;} + L17320: { + nargs_756X = arg0K0; + opcode_757X = (((*((long *) ((SstackS) + (8 + (((nargs_756X)<<2)))))))>>2); + obj_758X = Sexception_handlersS; + if ((3 == (3 & obj_758X))) { + if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_758X))) + -4))))>>2))))) { + goto L17379;} else { - goto L16797;}} + goto L17452;}} else { - goto L16797;}} - L23824: { - env_742X = arg0K0; - i_743X = arg0K1; - if ((0 == i_743X)) { - SvalS = (*((long *) ((((char *) (-3 + env_742X))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2))))); + goto L17452;}} + L24496: { + env_759X = arg0K0; + i_760X = arg0K1; + if ((0 == i_760X)) { + SvalS = (*((long *) ((((char *) (-3 + env_759X))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2))))); if ((529 == (SvalS))) { push_exception_continuationB(0, 3); arg0K0 = 0; - goto L16665;} + goto L17320;} else { Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} else { - arg0K0 = (*((long *) (((char *) (-3 + env_742X))))); - arg0K1 = (-1 + i_743X); - goto L23824;}} - L20247: { - env_744X = arg0K0; - i_745X = arg0K1; - if ((0 == i_745X)) { - SvalS = (*((long *) ((((char *) (-3 + env_744X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2))))); + arg0K0 = (*((long *) (((char *) (-3 + env_759X))))); + arg0K1 = (-1 + i_760X); + goto L24496;}} + L20911: { + env_761X = arg0K0; + i_762X = arg0K1; + if ((0 == i_762X)) { + SvalS = (*((long *) ((((char *) (-3 + env_761X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2))))); if ((529 == (SvalS))) { push_exception_continuationB(0, 5); arg0K0 = 0; - goto L16665;} + goto L17320;} else { Scode_pointerS = ((Scode_pointerS) + 5); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} else { - arg0K0 = (*((long *) (((char *) (-3 + env_744X))))); - arg0K1 = (-1 + i_745X); - goto L20247;}} - L20185: { - env_746X = arg0K0; - i_747X = arg0K1; - if ((0 == i_747X)) { - index_748X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4))); - value_749X = SvalS; - addr_750X = (((char *) (-3 + env_746X))) + (((index_748X)<<2)); - S48_WRITE_BARRIER(env_746X, addr_750X, value_749X); - *((long *) addr_750X) = value_749X; + arg0K0 = (*((long *) (((char *) (-3 + env_761X))))); + arg0K1 = (-1 + i_762X); + goto L20911;}} + L20849: { + env_763X = arg0K0; + i_764X = arg0K1; + if ((0 == i_764X)) { + index_765X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4))); + value_766X = SvalS; + addr_767X = (((char *) (-3 + env_763X))) + (((index_765X)<<2)); + S48_WRITE_BARRIER(env_763X, addr_767X, value_766X); + *((long *) addr_767X) = value_766X; SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 5); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - arg0K0 = (*((long *) (((char *) (-3 + env_746X))))); - arg0K1 = (-1 + i_747X); - goto L20185;}} - L20964: { - space_751X = arg0K0; - v_752X = AVAILABLEp(space_751X); - if (v_752X) { + arg0K0 = (*((long *) (((char *) (-3 + env_763X))))); + arg0K1 = (-1 + i_764X); + goto L20849;}} + L21628: { + space_768X = arg0K0; + v_769X = AVAILABLEp(space_768X); + if (v_769X) { arg2K0 = 1; arg0K1 = 0; - goto L21038;} + goto L21702;} else { - collect_saving_temps(1, 1, &temp1_753X); - v_754X = AVAILABLEp(space_751X); - if (v_754X) { + collect_saving_temps(1, 1, &temp1_770X); + v_771X = AVAILABLEp(space_768X); + if (v_771X) { arg2K0 = 1; arg0K1 = 0; - goto L21038;} + goto L21702;} else { arg2K0 = 0; arg0K1 = 0; - goto L21038;}}} - L20971: { - env_755X = arg0K0; - v_756X = AVAILABLEp(3); - if (v_756X) { + goto L21702;}}} + L21635: { + env_772X = arg0K0; + v_773X = AVAILABLEp(3); + if (v_773X) { arg2K0 = 1; - arg0K1 = env_755X; - goto L20996;} + arg0K1 = env_772X; + goto L21660;} else { - temp0_757X = collect_saving_temps(env_755X, 1, &temp1_758X); - v_759X = AVAILABLEp(3); - if (v_759X) { + temp0_774X = collect_saving_temps(env_772X, 1, &temp1_775X); + v_776X = AVAILABLEp(3); + if (v_776X) { arg2K0 = 1; - arg0K1 = temp0_757X; - goto L20996;} + arg0K1 = temp0_774X; + goto L21660;} else { arg2K0 = 0; - arg0K1 = temp0_757X; - goto L20996;}}} - L20766: { - len_760X = ((total_count_393X)<<2); - addr_761X = ALLOCATE_SPACE(2, (4 + len_760X)); - *((long *) addr_761X) = (10 + (((len_760X)<<8))); - new_env_762X = 3 + (((long) (addr_761X + 4))); - v_763X = *((unsigned char *) ((Scode_pointerS) + 1)); - if ((0 == v_763X)) { + arg0K1 = temp0_774X; + goto L21660;}}} + L21430: { + len_777X = ((total_count_410X)<<2); + addr_778X = ALLOCATE_SPACE(2, (4 + len_777X)); + *((long *) addr_778X) = (10 + (((len_777X)<<8))); + new_env_779X = 3 + (((long) (addr_778X + 4))); + v_780X = *((unsigned char *) ((Scode_pointerS) + 1)); + if ((0 == v_780X)) { arg0K0 = 0; - goto L20780;} + goto L21444;} else { - value_764X = SvalS; - addr_765X = ((char *) (-3 + new_env_762X)); - S48_WRITE_BARRIER(new_env_762X, addr_765X, value_764X); - *((long *) addr_765X) = value_764X; + value_781X = SvalS; + addr_782X = ((char *) (-3 + new_env_779X)); + S48_WRITE_BARRIER(new_env_779X, addr_782X, value_781X); + *((long *) addr_782X) = value_781X; arg0K0 = 1; - goto L20780;}} - L20692: { - okayP_766X = arg2K0; - key_767X = arg0K1; - if (okayP_766X) { - arg0K0 = key_767X; - goto L20680;} + goto L21444;}} + L21356: { + okayP_783X = arg2K0; + key_784X = arg0K1; + if (okayP_783X) { + arg0K0 = key_784X; + goto L21344;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_767X; - goto L20680;}} - L19847: { + arg0K0 = key_784X; + goto L21344;}} + L20502: { Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L19882: { + goto L19093;} + L20539: { SstackS = ((((char *) (-3 + (Sbottom_of_stackS)))) + -8); - *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = cont_402X; + *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = cont_419X; ScontS = (Sbottom_of_stackS); - goto L19847;} - L19848: { - if ((1 == cont_402X)) { + goto L20502;} + L20503: { + if ((1 == cont_419X)) { if ((0 == (3 & (SvalS)))) { s48_Scallback_return_stack_blockS = 1; + SstackS = ((((char *) (-3 + (Sbottom_of_stackS)))) + -8); + *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = 1; + ScontS = (Sbottom_of_stackS); return ((((SvalS))>>2));} else { - goto L19863;}} + goto L20520;}} else { - goto L19863;}} - L19208: { - okayP_768X = arg2K0; - key_769X = arg0K1; - if (okayP_768X) { - arg0K0 = key_769X; - goto L19163;} + goto L20520;}} + L19863: { + okayP_785X = arg2K0; + key_786X = arg0K1; + if (okayP_785X) { + arg0K0 = key_786X; + goto L19818;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_769X; - goto L19163;}} - L19120: { + arg0K0 = key_786X; + goto L19818;}} + L19775: { if ((s48_Spending_interruptPS)) { if ((s48_Spending_eventsPS)) { s48_Spending_eventsPS = 0; check_events_return_tag = 0; goto check_events; check_events_return_0: - v_770X = check_events0_return_value; - if (v_770X) { - arg0K0 = stack_arg_count_403X; - goto L16894;} + v_787X = check_events0_return_value; + if (v_787X) { + arg0K0 = stack_arg_count_420X; + goto L17549;} else { - goto L19124;}} + goto L19779;}} else { - arg0K0 = stack_arg_count_403X; - goto L16894;}} + arg0K0 = stack_arg_count_420X; + goto L17549;}} else { - goto L19124;}} - L16066: { - stack_arg_count_771X = arg0K0; - code_772X = *((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SvalS)))))))))); - arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_772X))) + 1))); + goto L19779;}} + L16721: { + stack_arg_count_788X = arg0K0; + code_789X = *((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SvalS)))))))))); + arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_789X))) + 1))); arg0K1 = 64; - goto L16080;} - L17161: { - exception_773X = arg0K0; - stack_arg_count_774X = arg0K1; - list_args_775X = arg0K2; - list_arg_count_776X = arg0K3; + goto L16735;} + L17816: { + exception_790X = arg0K0; + stack_arg_count_791X = arg0K1; + list_args_792X = arg0K2; + list_arg_count_793X = arg0K3; if (((StemplateS) == (SvalS))) { if ((0 < (Slosing_opcodeS))) { ps_error("wrong number of arguments to exception handler", 1, (Slosing_opcodeS)); - return v_777X;} + return v_794X;} else { ps_error("wrong number of arguments to interrupt handler", 1, (0 - (Slosing_opcodeS))); - return v_778X;}} + return v_795X;}} else { - merged_arg0K0 = list_args_775X; - merged_arg0K1 = list_arg_count_776X; + merged_arg0K0 = list_args_792X; + merged_arg0K1 = list_arg_count_793X; copy_listS_return_tag = 0; goto copy_listS; copy_listS_return_0: - v_779X = copy_listS0_return_value; - merged_arg0K0 = v_779X; - merged_arg0K1 = stack_arg_count_774X; + v_796X = copy_listS0_return_value; + merged_arg0K0 = v_796X; + merged_arg0K1 = stack_arg_count_791X; pop_args_GlistS_return_tag = 1; goto pop_args_GlistS; pop_args_GlistS_return_1: - args_780X = pop_args_GlistS0_return_value; - push_exception_continuationB(exception_773X, 0); + args_797X = pop_args_GlistS0_return_value; + push_exception_continuationB(exception_790X, 0); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = args_780X; + *((long *) (SstackS)) = args_797X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} - L17628: { - loc_781X = arg1K0; - arg_782X = arg1K1; - if ((top_of_args_414X < arg_782X)) { - *((long *) loc_781X) = (*((long *) arg_782X)); - arg1K0 = (loc_781X + -4); - arg1K1 = (arg_782X + -4); - goto L17628;} + goto L17320;}} + L18283: { + loc_798X = arg1K0; + arg_799X = arg1K1; + if ((top_of_args_431X < arg_799X)) { + *((long *) loc_798X) = (*((long *) arg_799X)); + arg1K0 = (loc_798X + -4); + arg1K1 = (arg_799X + -4); + goto L18283;} else { - SstackS = loc_781X; - obj_783X = SvalS; - if ((3 == (3 & obj_783X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_783X))) + -4))))>>2))))) { - arg0K0 = nargs_413X; - goto L16066;} + SstackS = loc_798X; + obj_800X = SvalS; + if ((3 == (3 & obj_800X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_800X))) + -4))))>>2))))) { + arg0K0 = nargs_430X; + goto L16721;} else { arg0K0 = 3; - arg0K1 = nargs_413X; + arg0K1 = nargs_430X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { arg0K0 = 3; - arg0K1 = nargs_413X; + arg0K1 = nargs_430X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}}} - L17666: { - stack_arg_count_784X = arg0K0; - list_args_785X = arg0K1; - list_arg_count_786X = arg0K2; - if ((0 == list_arg_count_786X)) { - obj_787X = SvalS; - if ((3 == (3 & obj_787X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_787X))) + -4))))>>2))))) { - arg0K0 = stack_arg_count_784X; - goto L16066;} + goto L17816;}}} + L18321: { + stack_arg_count_801X = arg0K0; + list_args_802X = arg0K1; + list_arg_count_803X = arg0K2; + if ((0 == list_arg_count_803X)) { + obj_804X = SvalS; + if ((3 == (3 & obj_804X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_804X))) + -4))))>>2))))) { + arg0K0 = stack_arg_count_801X; + goto L16721;} else { arg0K0 = 3; - arg0K1 = stack_arg_count_784X; + arg0K1 = stack_arg_count_801X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { arg0K0 = 3; - arg0K1 = stack_arg_count_784X; + arg0K1 = stack_arg_count_801X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { - obj_788X = SvalS; - if ((3 == (3 & obj_788X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_788X))) + -4))))>>2))))) { - code_789X = *((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SvalS)))))))))); - total_arg_count_790X = stack_arg_count_784X + list_arg_count_786X; - arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_789X))) + 1))); + obj_805X = SvalS; + if ((3 == (3 & obj_805X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_805X))) + -4))))>>2))))) { + code_806X = *((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SvalS)))))))))); + total_arg_count_807X = stack_arg_count_801X + list_arg_count_803X; + arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_806X))) + 1))); arg0K1 = 64; - goto L16357;} + goto L17012;} else { arg0K0 = 3; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;}} + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;}} else { arg0K0 = 3; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;}}} - L11273: { - list_args_791X = arg0K0; - stack_nargs_792X = arg0K1; - merged_arg0K0 = list_args_791X; + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;}}} + L11915: { + list_args_808X = arg0K0; + stack_nargs_809X = arg0K1; + merged_arg0K0 = list_args_808X; okay_argument_list_return_tag = 1; goto okay_argument_list; okay_argument_list_return_1: - okayP_793X = okay_argument_list0_return_value; - list_arg_count_794X = okay_argument_list1_return_value; - if (okayP_793X) { - SvalS = proc_421X; - arg0K0 = stack_nargs_792X; - arg0K1 = list_args_791X; - arg0K2 = list_arg_count_794X; - goto L17666;} + okayP_810X = okay_argument_list0_return_value; + list_arg_count_811X = okay_argument_list1_return_value; + if (okayP_810X) { + SvalS = proc_438X; + arg0K0 = stack_nargs_809X; + arg0K1 = list_args_808X; + arg0K2 = list_arg_count_811X; + goto L18321;} else { - *((long *) (SstackS)) = list_args_791X; + *((long *) (SstackS)) = list_args_808X; SstackS = ((SstackS) + -4); merged_arg0K0 = 25; - merged_arg0K1 = (1 + stack_nargs_792X); + merged_arg0K1 = (1 + stack_nargs_809X); pop_args_GlistS_return_tag = 2; goto pop_args_GlistS; pop_args_GlistS_return_2: - args_795X = pop_args_GlistS0_return_value; + args_812X = pop_args_GlistS0_return_value; SstackS = ((SstackS) + 4); push_exception_continuationB(5, 0); - *((long *) (SstackS)) = proc_421X; + *((long *) (SstackS)) = proc_438X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = args_795X; + *((long *) (SstackS)) = args_812X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} - L11314: { - list_796X = arg0K0; - follower_797X = arg0K1; - if ((25 == list_796X)) { - list_args_798X = *((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + follower_797X))) + 4))))))); - addr_799X = (((char *) (-3 + follower_797X))) + 4; - S48_WRITE_BARRIER(follower_797X, addr_799X, list_args_798X); - *((long *) addr_799X) = list_args_798X; - arg0K0 = rest_list_422X; - arg0K1 = (-1 + stack_nargs_420X); - goto L11273;} + goto L17320;}} + L11956: { + list_813X = arg0K0; + follower_814X = arg0K1; + if ((25 == list_813X)) { + list_args_815X = *((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + follower_814X))) + 4))))))); + addr_816X = (((char *) (-3 + follower_814X))) + 4; + S48_WRITE_BARRIER(follower_814X, addr_816X, list_args_815X); + *((long *) addr_816X) = list_args_815X; + arg0K0 = rest_list_439X; + arg0K1 = (-1 + stack_nargs_437X); + goto L11915;} else { - arg0K0 = (*((long *) ((((char *) (-3 + list_796X))) + 4))); - arg0K1 = (*((long *) ((((char *) (-3 + follower_797X))) + 4))); - goto L11314;}} - L17571: { - obj_800X = SvalS; - if ((3 == (3 & obj_800X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_800X))) + -4))))>>2))))) { + arg0K0 = (*((long *) ((((char *) (-3 + list_813X))) + 4))); + arg0K1 = (*((long *) ((((char *) (-3 + follower_814X))) + 4))); + goto L11956;}} + L18226: { + obj_817X = SvalS; + if ((3 == (3 & obj_817X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_817X))) + -4))))>>2))))) { arg0K0 = 0; - goto L16066;} + goto L16721;} else { arg0K0 = 3; arg0K1 = 0; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { arg0K0 = 3; arg0K1 = 0; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} - L17578: { + goto L17816;}} + L18233: { SstackS = ((((char *) (-3 + (Sbottom_of_stackS)))) + -8); - *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = cont_423X; + *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = cont_440X; ScontS = (Sbottom_of_stackS); - goto L17571;} - L20427: { - stack_nargs_801X = arg0K0; - list_args_802X = arg0K1; - list_arg_count_803X = arg0K2; - if ((1 == stack_nargs_801X)) { + goto L18226;} + L21091: { + stack_nargs_818X = arg0K0; + list_args_819X = arg0K1; + list_arg_count_820X = arg0K2; + if ((1 == stack_nargs_818X)) { SstackS = ((SstackS) + 4); SvalS = (*((long *) (SstackS))); pop_continuationB_return_tag = 1; goto pop_continuationB; pop_continuationB_return_1: arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { if (((ScontS) == (Sbottom_of_stackS))) { arg0K0 = (*((long *) (((char *) (-3 + (Sbottom_of_stackS)))))); - goto L20438;} + goto L21102;} else { arg0K0 = (ScontS); - goto L20438;}}} - L18944: { - okayP_804X = arg2K0; - key_805X = arg0K1; - if (okayP_804X) { - arg0K0 = key_805X; - goto L18932;} + goto L21102;}}} + L19599: { + okayP_821X = arg2K0; + key_822X = arg0K1; + if (okayP_821X) { + arg0K0 = key_822X; + goto L19587;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_805X; - goto L18932;}} - L18817: { - tem_806X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); - StemplateS = tem_806X; - Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_806X)))))))) + 2); + arg0K0 = key_822X; + goto L19587;}} + L19472: { + tem_823X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); + StemplateS = tem_823X; + Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_823X)))))))) + 2); if ((s48_Spending_interruptPS)) { if ((s48_Spending_eventsPS)) { s48_Spending_eventsPS = 0; check_events_return_tag = 1; goto check_events; check_events_return_1: - v_807X = check_events0_return_value; - if (v_807X) { - goto L18826;} + v_824X = check_events0_return_value; + if (v_824X) { + goto L19481;} else { - goto L18829;}} + goto L19484;}} else { - goto L18826;}} + goto L19481;}} else { - goto L18829;}} - L19000: { - okayP_808X = arg2K0; - key_809X = arg0K1; - if (okayP_808X) { - arg0K0 = key_809X; - goto L18987;} + goto L19484;}} + L19655: { + okayP_825X = arg2K0; + key_826X = arg0K1; + if (okayP_825X) { + arg0K0 = key_826X; + goto L19642;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_809X; - goto L18987;}} - L18862: { + arg0K0 = key_826X; + goto L19642;}} + L19517: { push_exception_continuationB(5, 4); *((long *) (SstackS)) = (*((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))))); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L18718: { - arg0K0 = (2 + (((max_442X)<<1))); - goto L18720;} - L18720: { - offset_810X = arg0K0; - Scode_pointerS = ((Scode_pointerS) + offset_810X); + goto L17320;} + L19373: { + arg0K0 = (2 + (((max_459X)<<1))); + goto L19375;} + L19375: { + offset_827X = arg0K0; + Scode_pointerS = ((Scode_pointerS) + offset_827X); arg1K0 = (Scode_pointerS); - goto L18438;} - L19750: { + goto L19093;} + L20405: { Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L18616: { - delta_811X = arg0K0; - Scode_pointerS = ((Scode_pointerS) + delta_811X); + goto L19093;} + L19271: { + delta_828X = arg0K0; + Scode_pointerS = ((Scode_pointerS) + delta_828X); arg1K0 = (Scode_pointerS); - goto L18438;} - L19641: { - delta_812X = arg0K0; - Scode_pointerS = ((Scode_pointerS) + delta_812X); + goto L19093;} + L20296: { + delta_829X = arg0K0; + Scode_pointerS = ((Scode_pointerS) + delta_829X); arg1K0 = (Scode_pointerS); - goto L18438;} - L38026: { - val_813X = arg0K0; - SvalS = val_813X; + goto L19093;} + L39115: { + val_830X = arg0K0; + SvalS = val_830X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L38038: { - val_814X = arg0K0; - SvalS = val_814X; + goto L19093;} + L39127: { + val_831X = arg0K0; + SvalS = val_831X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L10622: { - if ((3 == (3 & x_456X))) { - if ((7 == (31 & ((((*((long *) ((((char *) (-3 + x_456X))) + -4))))>>2))))) { + goto L19093;} + L11262: { + if ((3 == (3 & x_473X))) { + if ((8 == (31 & ((((*((long *) ((((char *) (-3 + x_473X))) + -4))))>>2))))) { arg0K0 = 5; - goto L38038;} + goto L39127;} else { - goto L10628;}} + goto L11268;}} else { - goto L10628;}} - L28391: { + goto L11268;}} + L29202: { SvalS = 5; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28392: { - if ((3 == (3 & n_457X))) { - if ((10 == (31 & ((((*((long *) ((((char *) (-3 + n_457X))) + -4))))>>2))))) { + goto L19093;} + L29203: { + if ((3 == (3 & n_474X))) { + if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_474X))) + -4))))>>2))))) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = n_457X; + *((long *) (SstackS)) = n_474X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} else { - goto L28396;}} + goto L29207;}} else { - goto L28396;}} - L28548: { + goto L29207;}} + L29359: { SvalS = 5; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28523: { - if ((3 == (3 & n_458X))) { - if ((7 == (31 & ((((*((long *) ((((char *) (-3 + n_458X))) + -4))))>>2))))) { - goto L28548;} + goto L19093;} + L29334: { + if ((3 == (3 & n_475X))) { + if ((8 == (31 & ((((*((long *) ((((char *) (-3 + n_475X))) + -4))))>>2))))) { + goto L29359;} else { - goto L28537;}} + goto L29348;}} else { - goto L28537;}} - L28747: { + goto L29348;}} + L29558: { SvalS = 5; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28722: { - if ((3 == (3 & n_459X))) { - if ((7 == (31 & ((((*((long *) ((((char *) (-3 + n_459X))) + -4))))>>2))))) { - goto L28747;} + goto L19093;} + L29533: { + if ((3 == (3 & n_476X))) { + if ((8 == (31 & ((((*((long *) ((((char *) (-3 + n_476X))) + -4))))>>2))))) { + goto L29558;} else { - goto L28736;}} + goto L29547;}} else { - goto L28736;}} - L28946: { + goto L29547;}} + L29757: { SvalS = 5; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28921: { - if ((3 == (3 & n_460X))) { - if ((7 == (31 & ((((*((long *) ((((char *) (-3 + n_460X))) + -4))))>>2))))) { - goto L28946;} + goto L19093;} + L29732: { + if ((3 == (3 & n_477X))) { + if ((8 == (31 & ((((*((long *) ((((char *) (-3 + n_477X))) + -4))))>>2))))) { + goto L29757;} else { - goto L28935;}} + goto L29746;}} else { - goto L28935;}} - L6775: { - a_815X = arg0K0; - if ((b_470X < 0)) { - arg0K0 = (0 - b_470X); - goto L6779;} + goto L29746;}} + L6998: { + a_832X = arg0K0; + if ((b_487X < 0)) { + arg0K0 = (0 - b_487X); + goto L7002;} else { - arg0K0 = b_470X; - goto L6779;}} - L7056: { - a_816X = arg0K0; - if ((b_477X < 0)) { - arg0K0 = (0 - b_477X); - goto L7060;} + arg0K0 = b_487X; + goto L7002;}} + L7279: { + a_833X = arg0K0; + if ((b_494X < 0)) { + arg0K0 = (0 - b_494X); + goto L7283;} else { - arg0K0 = b_477X; - goto L7060;}} - L31744: { - val_817X = arg0K0; - SvalS = val_817X; + arg0K0 = b_494X; + goto L7283;}} + L32718: { + val_834X = arg0K0; + SvalS = val_834X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L31822: { - val_818X = arg0K0; - SvalS = val_818X; + goto L19093;} + L32796: { + val_835X = arg0K0; + SvalS = val_835X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L31900: { - val_819X = arg0K0; - SvalS = val_819X; + goto L19093;} + L32874: { + val_836X = arg0K0; + SvalS = val_836X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L31978: { - val_820X = arg0K0; - SvalS = val_820X; + goto L19093;} + L32952: { + val_837X = arg0K0; + SvalS = val_837X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L32056: { - val_821X = arg0K0; - SvalS = val_821X; + goto L19093;} + L33030: { + val_838X = arg0K0; + SvalS = val_838X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L7233: { - a_822X = arg0K0; - if ((b_491X < 0)) { - arg0K0 = (0 - b_491X); - goto L7237;} + goto L19093;} + L7456: { + a_839X = arg0K0; + if ((b_508X < 0)) { + arg0K0 = (0 - b_508X); + goto L7460;} else { - arg0K0 = b_491X; - goto L7237;}} - L25338: { - a_823X = arg0K0; - n_824X = ((y_493X)>>2); - if ((n_824X < 0)) { - arg0K0 = (0 - n_824X); - goto L25340;} + arg0K0 = b_508X; + goto L7460;}} + L26010: { + a_840X = arg0K0; + n_841X = ((y_510X)>>2); + if ((n_841X < 0)) { + arg0K0 = (0 - n_841X); + goto L26012;} else { - arg0K0 = n_824X; - goto L25340;}} - L38295: { + arg0K0 = n_841X; + goto L26012;}} + L39384: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = x_508X; + *((long *) (SstackS)) = x_525X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L25624: { - r_825X = arg0K0; - if ((536870911 < r_825X)) { + goto L17320;} + L26296: { + r_842X = arg0K0; + if ((536870911 < r_842X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = n_509X; + *((long *) (SstackS)) = n_526X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} else { - SvalS = (((r_825X)<<2)); + SvalS = (((r_842X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L25903: { - SvalS = (((result_530X)<<2)); + goto L19093;}} + L26575: { + SvalS = (((result_547X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L38383: { - val_826X = arg0K0; - SvalS = val_826X; + goto L19093;} + L39472: { + val_843X = arg0K0; + SvalS = val_843X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28166: { - val_827X = arg0K0; - SvalS = val_827X; + goto L19093;} + L28977: { + val_844X = arg0K0; + SvalS = val_844X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28139: { + goto L19093;} + L28950: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_533X; + *((long *) (SstackS)) = arg2_550X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L28076: { - val_828X = arg0K0; - SvalS = val_828X; + goto L17320;} + L28887: { + val_845X = arg0K0; + SvalS = val_845X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28049: { + goto L19093;} + L28860: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_535X; + *((long *) (SstackS)) = arg2_552X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L32748: { + goto L17320;} + L33722: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = (((x_537X)<<2)); + *((long *) (SstackS)) = (((x_554X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L38412: { - val_829X = arg0K0; - SvalS = val_829X; + goto L17320;} + L39501: { + val_846X = arg0K0; + SvalS = val_846X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L38426: { - value_830X = arg0K0; - SvalS = value_830X; + goto L19093;} + L39515: { + value_847X = arg0K0; + SvalS = value_847X; Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} - L21229: { + goto L19093;} + L21893: { push_exception_continuationB(5, 2); - *((long *) (SstackS)) = stob_541X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((type_542X)<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - L21301: { - type_831X = *((unsigned char *) ((Scode_pointerS) + 2)); - len_832X = ((len_543X)<<2); - addr_833X = ALLOCATE_SPACE(type_831X, (4 + len_832X)); - *((long *) addr_833X) = (2 + (((((((len_832X)<<6)) + type_831X))<<2))); - new_834X = 3 + (((long) (addr_833X + 4))); - if ((len_543X < 1)) { - goto L21336;} - else { - *((long *) ((((char *) (-3 + new_834X))) + (-4 + (((len_543X)<<2))))) = (SvalS); - arg0K0 = (-2 + len_543X); - goto L21320;}} - L21483: { - type_835X = *((unsigned char *) ((Scode_pointerS) + 1)); - len_836X = ((len_548X)<<2); - addr_837X = ALLOCATE_SPACE(type_835X, (4 + len_836X)); - *((long *) addr_837X) = (2 + (((((((len_836X)<<6)) + type_835X))<<2))); - new_838X = 3 + (((long) (addr_837X + 4))); - SstackS = ((SstackS) + 4); - stack_nargs_839X = (((*((long *) (SstackS))))>>2); - SstackS = ((SstackS) + 4); - rest_list_840X = *((long *) (SstackS)); - arg0K0 = (-1 + stack_nargs_839X); - goto L21505;} - L21693: { - push_exception_continuationB(5, 3); - *((long *) (SstackS)) = stob_553X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((type_555X)<<2)); - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((offset_554X)<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 3; - goto L16665;} - L21796: { - push_exception_continuationB(5, 3); - *((long *) (SstackS)) = stob_556X; + *((long *) (SstackS)) = stob_558X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (((type_559X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((offset_558X)<<2)); + arg0K0 = 2; + goto L17320;} + L21965: { + type_848X = *((unsigned char *) ((Scode_pointerS) + 2)); + len_849X = ((len_560X)<<2); + addr_850X = ALLOCATE_SPACE(type_848X, (4 + len_849X)); + *((long *) addr_850X) = (2 + (((((((len_849X)<<6)) + type_848X))<<2))); + new_851X = 3 + (((long) (addr_850X + 4))); + if ((len_560X < 1)) { + goto L22000;} + else { + *((long *) ((((char *) (-3 + new_851X))) + (-4 + (((len_560X)<<2))))) = (SvalS); + arg0K0 = (-2 + len_560X); + goto L21984;}} + L22147: { + type_852X = *((unsigned char *) ((Scode_pointerS) + 1)); + len_853X = ((len_565X)<<2); + addr_854X = ALLOCATE_SPACE(type_852X, (4 + len_853X)); + *((long *) addr_854X) = (2 + (((((((len_853X)<<6)) + type_852X))<<2))); + new_855X = 3 + (((long) (addr_854X + 4))); + SstackS = ((SstackS) + 4); + stack_nargs_856X = (((*((long *) (SstackS))))>>2); + SstackS = ((SstackS) + 4); + rest_list_857X = *((long *) (SstackS)); + arg0K0 = (-1 + stack_nargs_856X); + goto L22169;} + L22357: { + push_exception_continuationB(5, 3); + *((long *) (SstackS)) = stob_570X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = value_557X; + *((long *) (SstackS)) = (((type_572X)<<2)); SstackS = ((SstackS) + -4); - arg0K0 = 4; - goto L16665;} - L21981: { - push_exception_continuationB(5, 2); - *((long *) (SstackS)) = (((type_563X)<<2)); - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((len_564X)<<2)); - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = init_562X; + *((long *) (SstackS)) = (((offset_571X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L21999: { - okayP_841X = arg2K0; - init_842X = arg0K1; - if (okayP_841X) { - len_843X = ((len_564X)<<2); - addr_844X = ALLOCATE_SPACE(type_563X, (4 + len_843X)); - *((long *) addr_844X) = (2 + (((((((len_843X)<<6)) + type_563X))<<2))); - value_845X = 3 + (((long) (addr_844X + 4))); - arg0K0 = (-1 + len_564X); - goto L22028;} + goto L17320;} + L22460: { + push_exception_continuationB(5, 3); + *((long *) (SstackS)) = stob_573X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((type_576X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((offset_575X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = value_574X; + SstackS = ((SstackS) + -4); + arg0K0 = 4; + goto L17320;} + L22645: { + push_exception_continuationB(5, 2); + *((long *) (SstackS)) = (((type_580X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((len_581X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = init_579X; + SstackS = ((SstackS) + -4); + arg0K0 = 3; + goto L17320;} + L22663: { + okayP_858X = arg2K0; + init_859X = arg0K1; + if (okayP_858X) { + len_860X = ((len_581X)<<2); + addr_861X = ALLOCATE_SPACE(type_580X, (4 + len_860X)); + *((long *) addr_861X) = (2 + (((((((len_860X)<<6)) + type_580X))<<2))); + value_862X = 3 + (((long) (addr_861X + 4))); + arg0K0 = (-1 + len_581X); + goto L22692;} else { push_exception_continuationB(8, 2); - *((long *) (SstackS)) = (((type_563X)<<2)); + *((long *) (SstackS)) = (((type_580X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((len_564X)<<2)); + *((long *) (SstackS)) = (((len_581X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = init_842X; + *((long *) (SstackS)) = init_859X; SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;}} - L22277: { + goto L17320;}} + L22941: { push_exception_continuationB(7, 2); - *((long *) (SstackS)) = stob_570X; + *((long *) (SstackS)) = stob_587X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((type_572X)<<2)); + *((long *) (SstackS)) = (((type_589X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = index_571X; + *((long *) (SstackS)) = index_588X; SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L22254: { + goto L17320;} + L22918: { push_exception_continuationB(5, 2); - *((long *) (SstackS)) = stob_570X; + *((long *) (SstackS)) = stob_587X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((type_572X)<<2)); + *((long *) (SstackS)) = (((type_589X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = index_571X; + *((long *) (SstackS)) = index_588X; SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L22517: { + goto L17320;} + L23181: { push_exception_continuationB(7, 2); - *((long *) (SstackS)) = stob_576X; + *((long *) (SstackS)) = stob_593X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((type_578X)<<2)); + *((long *) (SstackS)) = (((type_595X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_575X; + *((long *) (SstackS)) = arg2_592X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = value_577X; + *((long *) (SstackS)) = value_594X; SstackS = ((SstackS) + -4); arg0K0 = 4; - goto L16665;} - L22492: { + goto L17320;} + L23156: { push_exception_continuationB(5, 2); - *((long *) (SstackS)) = stob_576X; + *((long *) (SstackS)) = stob_593X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((type_578X)<<2)); + *((long *) (SstackS)) = (((type_595X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_575X; + *((long *) (SstackS)) = arg2_592X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = value_577X; + *((long *) (SstackS)) = value_594X; SstackS = ((SstackS) + -4); arg0K0 = 4; - goto L16665;} - L26074: { + goto L17320;} + L26746: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = (((len_583X)<<2)); + *((long *) (SstackS)) = (((len_600X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((init_584X)<<2)); + *((long *) (SstackS)) = (((init_601X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L26166: { - addr_846X = ALLOCATE_SPACE(17, (4 + len_583X)); - *((long *) addr_846X) = (70 + (((len_583X)<<8))); - vector_847X = 3 + (((long) (addr_846X + 4))); - arg0K0 = (-1 + len_583X); - goto L26115;} - L36239: { + goto L17320;} + L26838: { + addr_863X = ALLOCATE_SPACE(18, (4 + len_600X)); + *((long *) addr_863X) = (74 + (((len_600X)<<8))); + vector_864X = 3 + (((long) (addr_863X + 4))); + arg0K0 = (-1 + len_600X); + goto L26787;} + L37292: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L32854: { + goto L17320;} + L33828: { push_exception_continuationB(7, 1); - *((long *) (SstackS)) = arg2_590X; + *((long *) (SstackS)) = arg2_607X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_591X)<<2)); + *((long *) (SstackS)) = (((index_608X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L35818: { + goto L17320;} + L36868: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_590X; + *((long *) (SstackS)) = arg2_607X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L29802: { + goto L17320;} + L30738: { push_exception_continuationB(7, 1); - *((long *) (SstackS)) = arg3_594X; + *((long *) (SstackS)) = arg3_611X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_595X)<<2)); + *((long *) (SstackS)) = (((index_612X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((Kchar_596X)<<2)); + *((long *) (SstackS)) = (((Kchar_613X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L29781: { + goto L17320;} + L30717: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg3_594X; + *((long *) (SstackS)) = arg3_611X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_595X)<<2)); + *((long *) (SstackS)) = (((index_612X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((Kchar_596X)<<2)); + *((long *) (SstackS)) = (((Kchar_613X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L34230: { + goto L17320;} + L35280: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg3_594X; + *((long *) (SstackS)) = arg3_611X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_593X; + *((long *) (SstackS)) = arg2_610X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L26308: { + goto L17320;} + L26980: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = (((len_599X)<<2)); + *((long *) (SstackS)) = (((len_616X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (9 + ((((init_600X))<<8))); + *((long *) (SstackS)) = (9 + ((((init_617X))<<8))); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L26400: { - len_848X = 1 + len_599X; - addr_849X = ALLOCATE_SPACE(16, (4 + len_848X)); - *((long *) addr_849X) = (66 + (((len_848X)<<8))); - string_850X = 3 + (((long) (addr_849X + 4))); - *((unsigned char *) ((((char *) (-3 + string_850X))) + len_599X)) = 0; - arg0K0 = (-1 + len_599X); - goto L26349;} - L32935: { + goto L17320;} + L27072: { + len_865X = 1 + len_616X; + addr_866X = ALLOCATE_SPACE(17, (4 + len_865X)); + *((long *) addr_866X) = (70 + (((len_865X)<<8))); + string_867X = 3 + (((long) (addr_866X + 4))); + *((unsigned char *) ((((char *) (-3 + string_867X))) + len_616X)) = 0; + arg0K0 = (-1 + len_616X); + goto L27021;} + L33909: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_598X; + *((long *) (SstackS)) = arg2_615X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L36289: { + goto L17320;} + L37342: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L32998: { + goto L17320;} + L33972: { push_exception_continuationB(7, 1); - *((long *) (SstackS)) = arg2_606X; + *((long *) (SstackS)) = arg2_623X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_607X)<<2)); + *((long *) (SstackS)) = (((index_624X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L35914: { + goto L17320;} + L36964: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_606X; + *((long *) (SstackS)) = arg2_623X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L29957: { + goto L17320;} + L30893: { push_exception_continuationB(7, 1); - *((long *) (SstackS)) = arg3_610X; + *((long *) (SstackS)) = arg3_627X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_611X)<<2)); + *((long *) (SstackS)) = (((index_628X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (9 + ((((Kchar_612X))<<8))); + *((long *) (SstackS)) = (9 + ((((Kchar_629X))<<8))); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L29936: { + goto L17320;} + L30872: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg3_610X; + *((long *) (SstackS)) = arg3_627X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_611X)<<2)); + *((long *) (SstackS)) = (((index_628X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (9 + ((((Kchar_612X))<<8))); + *((long *) (SstackS)) = (9 + ((((Kchar_629X))<<8))); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L34356: { + goto L17320;} + L35406: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg3_610X; + *((long *) (SstackS)) = arg3_627X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_609X; + *((long *) (SstackS)) = arg2_626X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L24478: { - obj_851X = SvalS; - if ((3 == (3 & obj_851X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_851X))) + -4))))>>2))))) { - table_852X = Sthe_symbol_tableS; - string_853X = SvalS; - n_854X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_853X))) + -4))))>>8)); + goto L17320;} + L25150: { + obj_868X = SvalS; + if ((3 == (3 & obj_868X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_868X))) + -4))))>>2))))) { + table_869X = Sthe_symbol_tableS; + string_870X = SvalS; + n_871X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_870X))) + -4))))>>8)); arg0K0 = 0; arg0K1 = 0; - goto L13333;} + goto L13975;} else { - goto L24488;}} + goto L25160;}} else { - goto L24488;}} - L33976: { - val_855X = arg0K0; - SvalS = val_855X; + goto L25160;}} + L34953: { + val_872X = arg0K0; + SvalS = val_872X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L33957: { + goto L19093;} + L34934: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L29544: { + goto L17320;} + L30480: { if ((1 == (SvalS))) { - addr_856X = (((char *) (-3 + arg2_620X))) + 4; - S48_WRITE_BARRIER(arg2_620X, addr_856X, 273); - *((long *) addr_856X) = 273; - goto L29550;} + addr_873X = (((char *) (-3 + arg2_637X))) + 4; + S48_WRITE_BARRIER(arg2_637X, addr_873X, 273); + *((long *) addr_873X) = 273; + goto L30486;} else { - if ((17 == (255 & (*((long *) ((((char *) (-3 + arg2_620X))) + 4)))))) { - addr_857X = (((char *) (-3 + arg2_620X))) + 4; - S48_WRITE_BARRIER(arg2_620X, addr_857X, 529); - *((long *) addr_857X) = 529; - goto L29550;} + if ((17 == (255 & (*((long *) ((((char *) (-3 + arg2_637X))) + 4)))))) { + addr_874X = (((char *) (-3 + arg2_637X))) + 4; + S48_WRITE_BARRIER(arg2_637X, addr_874X, 529); + *((long *) addr_874X) = 529; + goto L30486;} else { - goto L29550;}}} - L29551: { + goto L30486;}}} + L30487: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_620X; + *((long *) (SstackS)) = arg2_637X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L38498: { - val_858X = arg0K0; - SvalS = val_858X; + goto L17320;} + L39587: { + val_875X = arg0K0; + SvalS = val_875X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L33080: { - SvalS = x_623X; + goto L19093;} + L34054: { + SvalS = x_640X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L33131: { - okayP_859X = arg2K0; - key_860X = arg0K1; - if (okayP_859X) { - arg0K0 = key_860X; - goto L33097;} + goto L19093;} + L34105: { + okayP_876X = arg2K0; + key_877X = arg0K1; + if (okayP_876X) { + arg0K0 = key_877X; + goto L34071;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_860X; - goto L33097;}} - L34474: { - okayP_861X = arg2K0; - key_862X = arg0K1; - if (okayP_861X) { - arg0K0 = key_862X; - goto L34456;} + arg0K0 = key_877X; + goto L34071;}} + L35524: { + okayP_878X = arg2K0; + key_879X = arg0K1; + if (okayP_878X) { + arg0K0 = key_879X; + goto L35506;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_862X; - goto L34456;}} - L37343: { - okayP_863X = arg2K0; - key_864X = arg0K1; - if (okayP_863X) { - arg0K0 = key_864X; - goto L37273;} + arg0K0 = key_879X; + goto L35506;}} + L38430: { + okayP_880X = arg2K0; + key_881X = arg0K1; + if (okayP_880X) { + arg0K0 = key_881X; + goto L38360;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_864X; - goto L37273;}} - L37603: { - okayP_865X = arg2K0; - key_866X = arg0K1; - if (okayP_865X) { - arg0K0 = key_866X; - goto L37545;} + arg0K0 = key_881X; + goto L38360;}} + L38690: { + okayP_882X = arg2K0; + key_883X = arg0K1; + if (okayP_882X) { + arg0K0 = key_883X; + goto L38632;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_866X; - goto L37545;}} - L33202: { - val_867X = arg0K0; - SvalS = val_867X; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - L8173: { - arg0K0 = (*((long *) ((((char *) (-3 + channel_637X))) + 16))); - goto L33202;} - L8179: { - ch_868X = arg0K0; - prev_869X = arg0K1; - if ((1 == ch_868X)) { - addr_870X = (((char *) (-3 + channel_637X))) + 16; - S48_WRITE_BARRIER(channel_637X, addr_870X, 1); - *((long *) addr_870X) = 1; - n_871X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_637X))) + 8))))>>2))); - arg0K0 = (((n_871X)<<2)); - goto L33202;} + arg0K0 = key_883X; + goto L38632;}} + L28629: { + if ((1 == (SvalS))) { + arg2K0 = 0; + goto L28633;} else { - if ((ch_868X == channel_637X)) { - y_872X = Spending_channels_tailS; - if ((ch_868X == y_872X)) { - Spending_channels_tailS = prev_869X; - goto L8203;} - else { - goto L8203;}} - else { - arg0K0 = (*((long *) ((((char *) (-3 + ch_868X))) + 12))); - arg0K1 = ch_868X; - goto L8179;}}} - L33185: { + arg2K0 = 1; + goto L28633;}} + L28636: { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_653X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (SvalS); + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + L35009: { + okayP_884X = arg2K0; + key_885X = arg0K1; + if (okayP_884X) { + arg0K0 = key_885X; + goto L34991;} + else { + ps_error("Scheme48 heap overflow", 0); + arg0K0 = key_885X; + goto L34991;}} + L8509: { + inputP_886X = arg2K0; + if (inputP_886X) { + arg0K0 = (Spending_input_channels_headS); + goto L8517;} + else { + arg0K0 = (Spending_output_channels_headS); + goto L8517;}} + L34159: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L14777: { + goto L17320;} + L15425: { arg0K0 = (-1 + (Snumber_of_channelsS)); arg0K1 = 25; - goto L14784;} - L34575: { - okayP_873X = arg2K0; - key_874X = arg0K1; - if (okayP_873X) { - arg0K0 = key_874X; - goto L34529;} + goto L15432;} + L35625: { + okayP_887X = arg2K0; + key_888X = arg0K1; + if (okayP_887X) { + arg0K0 = key_888X; + goto L35579;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_874X; - goto L34529;}} - L35407: { - i_875X = arg0K0; - h_876X = arg0K1; - if ((i_875X < n_655X)) { - arg0K0 = (1 + i_875X); - arg0K1 = (h_876X + (((*((unsigned char *) ((((char *) (-3 + x_654X))) + i_875X)))))); - goto L35407;} + arg0K0 = key_888X; + goto L35579;}} + L36457: { + i_889X = arg0K0; + h_890X = arg0K1; + if ((i_889X < n_672X)) { + arg0K0 = (1 + i_889X); + arg0K1 = (h_890X + (((*((unsigned char *) ((((char *) (-3 + x_671X))) + i_889X)))))); + goto L36457;} else { - SvalS = (((h_876X)<<2)); + SvalS = (((h_890X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L35384: { + goto L19093;}} + L36434: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L38564: { + goto L17320;} + L39657: { SstackS = ((SstackS) + 4); - stob_877X = *((long *) (SstackS)); - proc_878X = SvalS; - if ((3 == (3 & stob_877X))) { - if ((3 == (3 & proc_878X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_878X))) + -4))))>>2))))) { - addr_879X = ALLOCATE_SPACE(0, 12); - *((long *) addr_879X) = 2050; - x_880X = 3 + (((long) (addr_879X + 4))); - *((long *) (((char *) (-3 + x_880X)))) = stob_877X; - *((long *) ((((char *) (-3 + x_880X))) + 4)) = proc_878X; - b_881X = Sfinalizer_alistS; - addr_882X = ALLOCATE_SPACE(0, 12); - *((long *) addr_882X) = 2050; - x_883X = 3 + (((long) (addr_882X + 4))); - *((long *) (((char *) (-3 + x_883X)))) = x_880X; - *((long *) ((((char *) (-3 + x_883X))) + 4)) = b_881X; - Sfinalizer_alistS = x_883X; + stob_891X = *((long *) (SstackS)); + proc_892X = SvalS; + if ((3 == (3 & stob_891X))) { + if ((3 == (3 & proc_892X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_892X))) + -4))))>>2))))) { + addr_893X = ALLOCATE_SPACE(0, 12); + *((long *) addr_893X) = 2050; + x_894X = 3 + (((long) (addr_893X + 4))); + *((long *) (((char *) (-3 + x_894X)))) = stob_891X; + *((long *) ((((char *) (-3 + x_894X))) + 4)) = proc_892X; + b_895X = Sfinalizer_alistS; + addr_896X = ALLOCATE_SPACE(0, 12); + *((long *) addr_896X) = 2050; + x_897X = 3 + (((long) (addr_896X + 4))); + *((long *) (((char *) (-3 + x_897X)))) = x_894X; + *((long *) ((((char *) (-3 + x_897X))) + 4)) = b_895X; + Sfinalizer_alistS = x_897X; SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - goto L30563;}} + goto L31537;}} else { - goto L30563;}} + goto L31537;}} else { - goto L30563;}} - L33293: { - firstP_884X = arg2K0; - vector_885X = s48_find_all(type_665X); - if ((1 == vector_885X)) { - if (firstP_884X) { - collect_saving_temps(0, 0, &v_886X); + goto L31537;}} + L34267: { + firstP_898X = arg2K0; + vector_899X = s48_find_all(type_682X); + if ((1 == vector_899X)) { + if (firstP_898X) { + collect_saving_temps(0, 0, &v_900X); arg2K0 = 0; - goto L33293;} + goto L34267;} else { push_exception_continuationB(8, 1); - *((long *) (SstackS)) = (((type_665X)<<2)); + *((long *) (SstackS)) = (((type_682X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} else { - SvalS = vector_885X; + SvalS = vector_899X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L38614: { - firstP_887X = arg2K0; - type_888X = arg0K1; - vector_889X = s48_find_all_records(type_888X); - if ((1 == vector_889X)) { - if (firstP_887X) { - value_890X = collect_saving_temps(type_888X, 0, &v_891X); + goto L19093;}} + L39707: { + firstP_901X = arg2K0; + type_902X = arg0K1; + vector_903X = s48_find_all_records(type_902X); + if ((1 == vector_903X)) { + if (firstP_901X) { + merged_arg0K0 = type_902X; + collect_saving_temp_return_tag = 0; + goto collect_saving_temp; + collect_saving_temp_return_0: + v_904X = collect_saving_temp0_return_value; arg2K0 = 0; - arg0K1 = value_890X; - goto L38614;} + arg0K1 = v_904X; + goto L39707;} else { push_exception_continuationB(8, 1); - *((long *) (SstackS)) = type_888X; + *((long *) (SstackS)) = type_902X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;}} + goto L17320;}} else { - SvalS = vector_889X; + SvalS = vector_903X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L20570: { + goto L19093;}} + L21234: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L19494: { + goto L17320;} + L20149: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L38655: { - SvalS = (((old_674X)<<2)); + goto L17320;} + L39748: { + SvalS = (((old_691X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L18452: { + goto L19093;} + L19107: { SstackS = ((SstackS) + 4); - pc_892X = *((long *) (SstackS)); + pc_905X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - tem_893X = *((long *) (SstackS)); - StemplateS = tem_893X; - Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_893X)))))))) + (((pc_892X)>>2))); + tem_906X = *((long *) (SstackS)); + StemplateS = tem_906X; + Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_906X)))))))) + (((pc_905X)>>2))); SstackS = ((SstackS) + 4); SvalS = (*((long *) (SstackS))); arg1K0 = (Scode_pointerS); - goto L18438;} - L37163: { - x_894X = s48_schedule_alarm_interrupt((((p_677X)>>2))); - SvalS = (((x_894X)<<2)); + goto L19093;} + L38250: { + x_907X = s48_schedule_alarm_interrupt((((p_694X)>>2))); + SvalS = (((x_907X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L34103: { + goto L19093;} + L35153: { if ((1 == (SvalS))) { arg2K0 = 0; - goto L34107;} + goto L35157;} else { arg2K0 = 1; - goto L34107;}} - L34108: { + goto L35157;}} + L35158: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_678X; + *((long *) (SstackS)) = arg2_695X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L22787: { - rest_list_895X = arg0K0; - if ((25 == rest_list_895X)) { - proc_896X = *((long *) ((SstackS) + (((nargs_680X)<<2)))); - name_897X = *((long *) ((SstackS) + (-4 + (((nargs_680X)<<2))))); - args_898X = (SstackS) + 4; - *((long *) (SstackS)) = (10 + (((nargs_680X)<<10))); + goto L17320;} + L23453: { + rest_list_908X = arg0K0; + if ((25 == rest_list_908X)) { + proc_909X = *((long *) ((SstackS) + (((nargs_697X)<<2)))); + name_910X = *((long *) ((SstackS) + (-4 + (((nargs_697X)<<2))))); + args_911X = (SstackS) + 4; + *((long *) (SstackS)) = (10 + (((nargs_697X)<<10))); SstackS = ((SstackS) + -4); - if ((3 == (3 & name_897X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + name_897X))) + -4))))>>2))))) { - if ((3 == (3 & proc_896X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + proc_896X))) + -4))))>>2))))) { - if ((4 == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proc_896X))) + -4))))>>8)))) { - result_899X = s48_external_call(proc_896X, name_897X, (-2 + nargs_680X), args_898X); + if ((3 == (3 & name_910X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + name_910X))) + -4))))>>2))))) { + if ((3 == (3 & proc_909X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + proc_909X))) + -4))))>>2))))) { + if ((4 == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proc_909X))) + -4))))>>8)))) { + result_912X = s48_external_call(proc_909X, name_910X, (-2 + nargs_697X), args_911X); if ((Sexternal_exceptionPS)) { Sexternal_exceptionPS = 0; arg0K0 = (Sexternal_exception_nargsS); - goto L16665;} + goto L17320;} else { - SvalS = result_899X; + SvalS = result_912X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;}} else { - goto L22847;}} + goto L23513;}} else { - goto L22847;}} + goto L23513;}} else { - goto L22847;}} + goto L23513;}} else { - goto L22847;}} + goto L23513;}} else { - goto L22847;}} + goto L23513;}} else { - *((long *) (SstackS)) = (*((long *) (((char *) (-3 + rest_list_895X))))); + *((long *) (SstackS)) = (*((long *) (((char *) (-3 + rest_list_908X))))); SstackS = ((SstackS) + -4); - arg0K0 = (*((long *) ((((char *) (-3 + rest_list_895X))) + 4))); - goto L22787;}} - L33402: { - okayP_900X = arg2K0; - key_901X = arg0K1; - if (okayP_900X) { - arg0K0 = key_901X; - goto L33368;} + arg0K0 = (*((long *) ((((char *) (-3 + rest_list_908X))) + 4))); + goto L23453;}} + L34376: { + okayP_913X = arg2K0; + key_914X = arg0K1; + if (okayP_913X) { + arg0K0 = key_914X; + goto L34342;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_901X; - goto L33368;}} - L23905: { + arg0K0 = key_914X; + goto L34342;}} + L24577: { if ((1 == (SvalS))) { arg0K0 = (Sexported_bindingsS); - goto L23938;} + goto L24610;} else { arg0K0 = (Simported_bindingsS); - goto L23938;}} - L23910: { + goto L24610;}} + L24582: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_686X; + *((long *) (SstackS)) = arg2_703X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L35318: { - option_902X = arg0K0; - seconds_903X = arg0K1; - mseconds_904X = arg0K2; - if ((536869 < seconds_903X)) { + goto L17320;} + L36368: { + option_915X = arg0K0; + seconds_916X = arg0K1; + mseconds_917X = arg0K2; + if ((536869 < seconds_916X)) { push_exception_continuationB(6, 1); - *((long *) (SstackS)) = (((option_902X)<<2)); + *((long *) (SstackS)) = (((option_915X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((seconds_903X)<<2)); + *((long *) (SstackS)) = (((seconds_916X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mseconds_904X)<<2)); + *((long *) (SstackS)) = (((mseconds_917X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} + goto L17320;} else { - SvalS = (((((1000 * seconds_903X) + mseconds_904X))<<2)); + SvalS = (((((1000 * seconds_916X) + mseconds_917X))<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L38715: { - s48_Scallback_return_stack_blockS = arg2_700X; - return x_701X;} - L27842: { - val_905X = arg0K0; - SvalS = val_905X; + goto L19093;}} + L39808: { + s48_Scallback_return_stack_blockS = arg2_717X; + return x_718X;} + L28527: { + val_918X = arg0K0; + SvalS = val_918X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L27809: { + goto L19093;} + L28494: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_702X; + *((long *) (SstackS)) = arg2_719X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L33611: { + goto L17320;} + L34585: { SstackS = ((SstackS) + 4); - arg2_906X = *((long *) (SstackS)); + arg2_919X = *((long *) (SstackS)); if ((0 == (3 & (SvalS)))) { - n_907X = (((SvalS))>>2); - if ((3 == (3 & arg2_906X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + arg2_906X))) + -4))))>>2))))) { - goto L27369;} + n_920X = (((SvalS))>>2); + if ((3 == (3 & arg2_919X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + arg2_919X))) + -4))))>>2))))) { + goto L28054;} else { - goto L27321;}} + goto L28006;}} else { - goto L27321;}} + goto L28006;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_906X; + *((long *) (SstackS)) = arg2_919X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} - L29199: { - list_908X = arg0K0; - slow_909X = arg0K1; - move_slowP_910X = arg2K2; - if ((25 == list_908X)) { + goto L17320;}} + L30135: { + list_921X = arg0K0; + slow_922X = arg0K1; + move_slowP_923X = arg2K2; + if ((25 == list_921X)) { SvalS = 1; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((3 == (3 & list_908X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + list_908X))) + -4))))>>2))))) { - head_911X = *((long *) (((char *) (-3 + list_908X)))); - if ((3 == (3 & head_911X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + head_911X))) + -4))))>>2))))) { - if (((*((long *) (((char *) (-3 + head_911X))))) == thing_710X)) { - SvalS = head_911X; + if ((3 == (3 & list_921X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + list_921X))) + -4))))>>2))))) { + head_924X = *((long *) (((char *) (-3 + list_921X)))); + if ((3 == (3 & head_924X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + head_924X))) + -4))))>>2))))) { + if (((*((long *) (((char *) (-3 + head_924X))))) == thing_727X)) { + SvalS = head_924X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - list_912X = *((long *) ((((char *) (-3 + list_908X))) + 4)); - if ((list_912X == slow_909X)) { + list_925X = *((long *) ((((char *) (-3 + list_921X))) + 4)); + if ((list_925X == slow_922X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = thing_710X; + *((long *) (SstackS)) = thing_727X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = list_711X; + *((long *) (SstackS)) = list_728X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - if (move_slowP_910X) { - arg0K0 = list_912X; - arg0K1 = (*((long *) ((((char *) (-3 + slow_909X))) + 4))); + if (move_slowP_923X) { + arg0K0 = list_925X; + arg0K1 = (*((long *) ((((char *) (-3 + slow_922X))) + 4))); arg2K2 = 0; - goto L29199;} + goto L30135;} else { - arg0K0 = list_912X; - arg0K1 = slow_909X; + arg0K0 = list_925X; + arg0K1 = slow_922X; arg2K2 = 1; - goto L29199;}}}} + goto L30135;}}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = thing_710X; + *((long *) (SstackS)) = thing_727X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = list_711X; + *((long *) (SstackS)) = list_728X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = thing_710X; + *((long *) (SstackS)) = thing_727X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = list_711X; + *((long *) (SstackS)) = list_728X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = thing_710X; + *((long *) (SstackS)) = thing_727X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = list_711X; + *((long *) (SstackS)) = list_728X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = thing_710X; + *((long *) (SstackS)) = thing_727X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = list_711X; + *((long *) (SstackS)) = list_728X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}} - L27515: { + goto L17320;}}} + L28200: { push_exception_continuationB(7, 1); - *((long *) (SstackS)) = arg3_713X; + *((long *) (SstackS)) = arg3_730X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_712X; + *((long *) (SstackS)) = arg2_729X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_714X)<<2)); + *((long *) (SstackS)) = (((index_731X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L27535: { + goto L17320;} + L28220: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg3_713X; + *((long *) (SstackS)) = arg3_730X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_712X; + *((long *) (SstackS)) = arg2_729X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_714X)<<2)); + *((long *) (SstackS)) = (((index_731X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;} - L30704: { + goto L17320;} + L31678: { push_exception_continuationB(7, 1); - *((long *) (SstackS)) = arg4_718X; + *((long *) (SstackS)) = arg4_735X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg3_717X; + *((long *) (SstackS)) = arg3_734X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_719X)<<2)); + *((long *) (SstackS)) = (((index_736X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = value_720X; + *((long *) (SstackS)) = value_737X; SstackS = ((SstackS) + -4); arg0K0 = 4; - goto L16665;} - L30726: { + goto L17320;} + L31700: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg4_718X; + *((long *) (SstackS)) = arg4_735X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg3_717X; + *((long *) (SstackS)) = arg3_734X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((index_719X)<<2)); + *((long *) (SstackS)) = (((index_736X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = value_720X; + *((long *) (SstackS)) = value_737X; SstackS = ((SstackS) + -4); arg0K0 = 4; - goto L16665;} - L30955: { - if ((3 == (3 & arg5_726X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg5_726X))) + -4))))>>2))))) { - goto L30968;} + goto L17320;} + L31929: { + if ((3 == (3 & arg5_743X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_743X))) + -4))))>>2))))) { + goto L31942;} else { - goto L30963;}} + goto L31937;}} else { - goto L30963;}} - L30950: { - if ((3 == (3 & arg5_726X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_726X))) + -4))))>>2))))) { - goto L30955;} + goto L31937;}} + L31924: { + if ((3 == (3 & arg5_743X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg5_743X))) + -4))))>>2))))) { + goto L31929;} else { - goto L31022;}} + goto L31996;}} else { - goto L31022;}} - L23037: { - port_913X = arg0K0; - if ((3 == (3 & port_913X))) { - if ((6 == (31 & ((((*((long *) ((((char *) (-3 + port_913X))) + -4))))>>2))))) { - if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_913X))) + 4))))>>2))))) { - goto L23097;} + goto L31996;}} + L23709: { + port_926X = arg0K0; + if ((3 == (3 & port_926X))) { + if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_926X))) + -4))))>>2))))) { + if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_926X))) + 4))))>>2))))) { + goto L23769;} else { - p_914X = *((long *) ((((char *) (-3 + port_913X))) + 24)); - p_915X = *((long *) ((((char *) (-3 + port_913X))) + 28)); - b_916X = *((long *) ((((char *) (-3 + port_913X))) + 20)); - i_917X = ((p_914X)>>2); - x_918X = *((long *) ((((char *) (-3 + port_913X))) + 12)); - if ((5 == x_918X)) { - goto L23077;} + p_927X = *((long *) ((((char *) (-3 + port_926X))) + 24)); + p_928X = *((long *) ((((char *) (-3 + port_926X))) + 28)); + b_929X = *((long *) ((((char *) (-3 + port_926X))) + 20)); + i_930X = ((p_927X)>>2); + x_931X = *((long *) ((((char *) (-3 + port_926X))) + 12)); + if ((5 == x_931X)) { + goto L23749;} else { - if ((i_917X == (((p_915X)>>2)))) { - goto L23077;} + if ((i_930X == (((p_928X)>>2)))) { + goto L23749;} else { - val_919X = 4 + (((i_917X)<<2)); - addr_920X = (((char *) (-3 + port_913X))) + 24; - S48_WRITE_BARRIER(port_913X, addr_920X, val_919X); - *((long *) addr_920X) = val_919X; - SvalS = (9 + ((((((*((unsigned char *) ((((char *) (-3 + b_916X))) + i_917X))))))<<8))); + val_932X = 4 + (((i_930X)<<2)); + addr_933X = (((char *) (-3 + port_926X))) + 24; + S48_WRITE_BARRIER(port_926X, addr_933X, val_932X); + *((long *) addr_933X) = val_932X; + SvalS = (9 + ((((((*((unsigned char *) ((((char *) (-3 + b_929X))) + i_930X))))))<<8))); Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;}}}} + goto L19093;}}}} else { - goto L23097;}} + goto L23769;}} else { - goto L23097;}} - L23257: { - port_921X = arg0K0; - if ((3 == (3 & port_921X))) { - if ((6 == (31 & ((((*((long *) ((((char *) (-3 + port_921X))) + -4))))>>2))))) { - if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_921X))) + 4))))>>2))))) { - goto L23317;} + goto L23769;}} + L23929: { + port_934X = arg0K0; + if ((3 == (3 & port_934X))) { + if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_934X))) + -4))))>>2))))) { + if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_934X))) + 4))))>>2))))) { + goto L23989;} else { - p_922X = *((long *) ((((char *) (-3 + port_921X))) + 24)); - p_923X = *((long *) ((((char *) (-3 + port_921X))) + 28)); - b_924X = *((long *) ((((char *) (-3 + port_921X))) + 20)); - i_925X = ((p_922X)>>2); - x_926X = *((long *) ((((char *) (-3 + port_921X))) + 12)); - if ((5 == x_926X)) { - goto L23297;} + p_935X = *((long *) ((((char *) (-3 + port_934X))) + 24)); + p_936X = *((long *) ((((char *) (-3 + port_934X))) + 28)); + b_937X = *((long *) ((((char *) (-3 + port_934X))) + 20)); + i_938X = ((p_935X)>>2); + x_939X = *((long *) ((((char *) (-3 + port_934X))) + 12)); + if ((5 == x_939X)) { + goto L23969;} else { - if ((i_925X == (((p_923X)>>2)))) { - goto L23297;} + if ((i_938X == (((p_936X)>>2)))) { + goto L23969;} else { - SvalS = (9 + ((((((*((unsigned char *) ((((char *) (-3 + b_924X))) + i_925X))))))<<8))); + SvalS = (9 + ((((((*((unsigned char *) ((((char *) (-3 + b_937X))) + i_938X))))))<<8))); Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;}}}} + goto L19093;}}}} else { - goto L23317;}} + goto L23989;}} else { - goto L23317;}} - L23470: { - Kchar_927X = arg0K0; - port_928X = arg0K1; - if ((9 == (255 & Kchar_927X))) { - if ((3 == (3 & port_928X))) { - if ((6 == (31 & ((((*((long *) ((((char *) (-3 + port_928X))) + -4))))>>2))))) { - if ((0 == (8 & ((((*((long *) ((((char *) (-3 + port_928X))) + 4))))>>2))))) { - goto L23531;} + goto L23989;}} + L24142: { + Kchar_940X = arg0K0; + port_941X = arg0K1; + if ((9 == (255 & Kchar_940X))) { + if ((3 == (3 & port_941X))) { + if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_941X))) + -4))))>>2))))) { + if ((0 == (8 & ((((*((long *) ((((char *) (-3 + port_941X))) + 4))))>>2))))) { + goto L24203;} else { - p_929X = *((long *) ((((char *) (-3 + port_928X))) + 24)); - b_930X = *((long *) ((((char *) (-3 + port_928X))) + 20)); - i_931X = ((p_929X)>>2); - x_932X = *((long *) ((((char *) (-3 + port_928X))) + 12)); - if ((5 == x_932X)) { - goto L23513;} + p_942X = *((long *) ((((char *) (-3 + port_941X))) + 24)); + b_943X = *((long *) ((((char *) (-3 + port_941X))) + 20)); + i_944X = ((p_942X)>>2); + x_945X = *((long *) ((((char *) (-3 + port_941X))) + 12)); + if ((5 == x_945X)) { + goto L24185;} else { - if ((i_931X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + b_930X))) + -4))))>>8)))) { - goto L23513;} + if ((i_944X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + b_943X))) + -4))))>>8)))) { + goto L24185;} else { - val_933X = 4 + (((i_931X)<<2)); - addr_934X = (((char *) (-3 + port_928X))) + 24; - S48_WRITE_BARRIER(port_928X, addr_934X, val_933X); - *((long *) addr_934X) = val_933X; - *((unsigned char *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + port_928X))) + 20)))))) + i_931X)) = (((((Kchar_927X)>>8)))); + val_946X = 4 + (((i_944X)<<2)); + addr_947X = (((char *) (-3 + port_941X))) + 24; + S48_WRITE_BARRIER(port_941X, addr_947X, val_946X); + *((long *) addr_947X) = val_946X; + *((unsigned char *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + port_941X))) + 20)))))) + i_944X)) = (((((Kchar_940X)>>8)))); SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;}}}} + goto L19093;}}}} else { - goto L23531;}} + goto L24203;}} else { - goto L23531;}} + goto L24203;}} else { - goto L23531;}} - L29452: { - stuff_935X = arg0K0; - if ((3 == (3 & stuff_935X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + stuff_935X))) + -4))))>>2))))) { - thing_936X = *((long *) (((char *) (-3 + stuff_935X)))); - if ((0 == (3 & thing_936X))) { - ps_write_integer((((thing_936X)>>2)), out_738X); - goto L29458;} + goto L24203;}} + L30388: { + stuff_948X = arg0K0; + if ((3 == (3 & stuff_948X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + stuff_948X))) + -4))))>>2))))) { + thing_949X = *((long *) (((char *) (-3 + stuff_948X)))); + if ((0 == (3 & thing_949X))) { + ps_write_integer((((thing_949X)>>2)), out_755X); + goto L30394;} else { - if ((9 == (255 & thing_936X))) { - ps_write_string("#\\", out_738X); + if ((9 == (255 & thing_949X))) { + ps_write_string("#\\", out_755X); { long ignoreXX; - PS_WRITE_CHAR(((((thing_936X)>>8))), out_738X, ignoreXX) } - goto L29458;} + PS_WRITE_CHAR(((((thing_949X)>>8))), out_755X, ignoreXX) } + goto L30394;} else { - if ((3 == (3 & thing_936X))) { - if ((8 == (31 & ((((*((long *) ((((char *) (-3 + thing_936X))) + -4))))>>2))))) { - if ((0 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thing_936X))) + -4))))>>8))))>>2)))) { - type_937X = *((long *) (((char *) (-3 + thing_936X)))); - if ((3 == (3 & type_937X))) { - if ((8 == (31 & ((((*((long *) ((((char *) (-3 + type_937X))) + -4))))>>2))))) { - if ((2 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + type_937X))) + -4))))>>8))))>>2)))) { - obj_938X = *((long *) ((((char *) (-3 + type_937X))) + 8)); - if ((3 == (3 & obj_938X))) { - if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_938X))) + -4))))>>2))))) { - ps_write_string("#{", out_738X); - ps_write_string((((char *)(((char *) (-3 + (*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + thing_936X)))))))) + 8))))))))))))), out_738X); + if ((3 == (3 & thing_949X))) { + if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thing_949X))) + -4))))>>2))))) { + if ((0 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thing_949X))) + -4))))>>8))))>>2)))) { + type_950X = *((long *) (((char *) (-3 + thing_949X)))); + if ((3 == (3 & type_950X))) { + if ((9 == (31 & ((((*((long *) ((((char *) (-3 + type_950X))) + -4))))>>2))))) { + if ((2 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + type_950X))) + -4))))>>8))))>>2)))) { + obj_951X = *((long *) ((((char *) (-3 + type_950X))) + 8)); + if ((3 == (3 & obj_951X))) { + if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_951X))) + -4))))>>2))))) { + ps_write_string("#{", out_755X); + ps_write_string((((char *)(((char *) (-3 + (*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + thing_949X)))))))) + 8))))))))))))), out_755X); { long ignoreXX; - PS_WRITE_CHAR(125, out_738X, ignoreXX) } - goto L29458;} + PS_WRITE_CHAR(125, out_755X, ignoreXX) } + goto L30394;} else { - goto L11650;}} + goto L12292;}} else { - goto L11650;}} + goto L12292;}} else { - goto L11650;}} + goto L12292;}} else { - goto L11650;}} + goto L12292;}} else { - goto L11650;}} + goto L12292;}} else { - goto L11650;}} + goto L12292;}} else { - goto L11650;}} + goto L12292;}} else { - goto L11650;}}}} + goto L12292;}}}} else { - goto L29443;}} + goto L30379;}} else { - goto L29443;}} - L16724: { - SvalS = (*((long *) ((((char *) (-3 + (Sexception_handlersS)))) + (((opcode_740X)<<2))))); - obj_939X = SvalS; - if ((3 == (3 & obj_939X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_939X))) + -4))))>>2))))) { - goto L16741;} + goto L30379;}} + L17379: { + SvalS = (*((long *) ((((char *) (-3 + (Sexception_handlersS)))) + (((opcode_757X)<<2))))); + obj_952X = SvalS; + if ((3 == (3 & obj_952X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_952X))) + -4))))>>2))))) { + goto L17396;} else { - goto L16811;}} + goto L17466;}} else { - goto L16811;}} - L16797: { + goto L17466;}} + L17452: { merged_arg3K0 = "exception-handlers is not a vector"; loseD0_return_tag = 0; goto loseD0; loseD0_return_0: - goto L16724;} - L21038: { - okayP_940X = arg2K0; - key_941X = arg0K1; - if (okayP_940X) { - arg0K0 = key_941X; - goto L20966;} + goto L17379;} + L21702: { + okayP_953X = arg2K0; + key_954X = arg0K1; + if (okayP_953X) { + arg0K0 = key_954X; + goto L21630;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_941X; - goto L20966;}} - L20996: { - okayP_942X = arg2K0; - temp_943X = arg0K1; - if (okayP_942X) { - arg0K0 = temp_943X; - goto L20977;} + arg0K0 = key_954X; + goto L21630;}} + L21660: { + okayP_955X = arg2K0; + temp_956X = arg0K1; + if (okayP_955X) { + arg0K0 = temp_956X; + goto L21641;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = temp_943X; - goto L20977;}} - L20780: { - start_i_944X = arg0K0; - arg0K0 = start_i_944X; + arg0K0 = temp_956X; + goto L21641;}} + L21444: { + start_i_957X = arg0K0; + arg0K0 = start_i_957X; arg0K1 = 2; arg0K2 = (SenvS); - goto L20788;} - L20680: { - key_945X = arg0K0; + goto L21452;} + L21344: { + key_958X = arg0K0; if ((1 == (ScontS))) { arg0K0 = 1; - goto L20684;} + goto L21348;} else { - merged_arg0K0 = key_945X; + merged_arg0K0 = key_958X; merged_arg0K1 = 2; really_preserve_continuation_return_tag = 0; goto really_preserve_continuation; really_preserve_continuation_return_0: - v_946X = really_preserve_continuation0_return_value; - arg0K0 = v_946X; - goto L20684;}} - L19863: { + v_959X = really_preserve_continuation0_return_value; + arg0K0 = v_959X; + goto L21348;}} + L20520: { SstackS = ((((char *) (-3 + (Sbottom_of_stackS)))) + -8); *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = 1; ScontS = (Sbottom_of_stackS); push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = cont_402X; + *((long *) (SstackS)) = cont_419X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L19163: { - v_947X = arg0K0; - merged_arg0K0 = v_947X; + goto L17320;} + L19818: { + v_960X = arg0K0; + merged_arg0K0 = v_960X; copy_stack_into_heap_return_tag = 0; goto copy_stack_into_heap; copy_stack_into_heap_return_0: if (((SstackS) < (Sstack_limitS))) { ps_error("Couldn't get default procedure space (how can this happen?)", 0); - goto L19120;} + goto L19775;} else { - goto L19120;}} - L16894: { - stack_arg_count_948X = arg0K0; + goto L19775;}} + L17549: { + stack_arg_count_961X = arg0K0; *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (StemplateS); @@ -7312,2186 +7460,2422 @@ long s48_restart(long proc_345X, long nargs_346X) SstackS = ((SstackS) + -4); *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); SstackS = ((SstackS) + -4); - tem_949X = Sinterrupt_templateS; - StemplateS = tem_949X; - Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_949X)))))))); - push_continuationB((Scode_pointerS), (4 + stack_arg_count_948X)); - n_950X = (Spending_interruptsS) & (Senabled_interruptsS); + tem_962X = Sinterrupt_templateS; + StemplateS = tem_962X; + Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_962X)))))))); + push_continuationB((Scode_pointerS), (4 + stack_arg_count_961X)); + n_963X = (Spending_interruptsS) & (Senabled_interruptsS); arg0K0 = 0; arg0K1 = 1; - goto L16999;} - L19124: { + goto L17654;} + L19779: { arg1K0 = (Scode_pointerS); - goto L18438;} - L16080: { - protocol_951X = arg0K0; - stack_space_952X = arg0K1; - if ((68 == protocol_951X)) { - if ((stack_arg_count_771X < 3)) { - skip_953X = *((unsigned char *) ((((char *) (-3 + code_772X))) + (2 + stack_arg_count_771X))); - if ((0 == skip_953X)) { + goto L19093;} + L16735: { + protocol_964X = arg0K0; + stack_space_965X = arg0K1; + if ((68 == protocol_964X)) { + if ((stack_arg_count_788X < 3)) { + skip_966X = *((unsigned char *) ((((char *) (-3 + code_789X))) + (2 + stack_arg_count_788X))); + if ((0 == skip_966X)) { arg0K0 = 4; - arg0K1 = stack_arg_count_771X; + arg0K1 = stack_arg_count_788X; arg0K2 = 25; arg0K3 = 0; - goto L17161;} + goto L17816;} else { - arg0K0 = skip_953X; - arg0K1 = stack_arg_count_771X; - goto L16084;}} + arg0K0 = skip_966X; + arg0K1 = stack_arg_count_788X; + goto L16739;}} else { - skip_954X = *((unsigned char *) ((((char *) (-3 + code_772X))) + 5)); - if ((0 == skip_954X)) { + skip_967X = *((unsigned char *) ((((char *) (-3 + code_789X))) + 5)); + if ((0 == skip_967X)) { arg0K0 = 4; - arg0K1 = stack_arg_count_771X; + arg0K1 = stack_arg_count_788X; arg0K2 = 25; arg0K3 = 0; - goto L17161;} + goto L17816;} else { - arg0K0 = skip_954X; - goto L16107;}}} + arg0K0 = skip_967X; + goto L16762;}}} else { - if ((67 == protocol_951X)) { - if ((stack_arg_count_771X < (*((unsigned char *) ((((char *) (-3 + code_772X))) + 2))))) { + if ((67 == protocol_964X)) { + if ((stack_arg_count_788X < (*((unsigned char *) ((((char *) (-3 + code_789X))) + 2))))) { arg0K0 = 4; - arg0K1 = stack_arg_count_771X; + arg0K1 = stack_arg_count_788X; arg0K2 = 25; arg0K3 = 0; - goto L17161;} + goto L17816;} else { arg0K0 = 3; - goto L16107;}} + goto L16762;}} else { - if ((65 == protocol_951X)) { - wants_stack_args_955X = ((((*((unsigned char *) ((((char *) (-3 + code_772X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_772X))) + 3))); - if ((stack_arg_count_771X < wants_stack_args_955X)) { + if ((65 == protocol_964X)) { + wants_stack_args_968X = ((((*((unsigned char *) ((((char *) (-3 + code_789X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_789X))) + 3))); + if ((stack_arg_count_788X < wants_stack_args_968X)) { arg0K0 = 4; - arg0K1 = stack_arg_count_771X; + arg0K1 = stack_arg_count_788X; arg0K2 = 25; arg0K3 = 0; - goto L17161;} + goto L17816;} else { - merged_arg0K0 = wants_stack_args_955X; - merged_arg0K1 = stack_arg_count_771X; + merged_arg0K0 = wants_stack_args_968X; + merged_arg0K1 = stack_arg_count_788X; merged_arg0K2 = 25; merged_arg0K3 = 0; rest_list_setup_return_tag = 0; goto rest_list_setup; rest_list_setup_return_0: arg0K0 = 4; - arg0K1 = (1 + wants_stack_args_955X); - goto L16084;}} + arg0K1 = (1 + wants_stack_args_968X); + goto L16739;}} else { - if ((63 < protocol_951X)) { - if ((64 == protocol_951X)) { - if (((((((*((unsigned char *) ((((char *) (-3 + code_772X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_772X))) + 3)))) == stack_arg_count_771X)) { + if ((63 < protocol_964X)) { + if ((64 == protocol_964X)) { + if (((((((*((unsigned char *) ((((char *) (-3 + code_789X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_789X))) + 3)))) == stack_arg_count_788X)) { arg0K0 = 4; - arg0K1 = stack_arg_count_771X; - goto L16084;} + arg0K1 = stack_arg_count_788X; + goto L16739;} else { arg0K0 = 4; - arg0K1 = stack_arg_count_771X; + arg0K1 = stack_arg_count_788X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}} + goto L17816;}} else { - if ((66 == protocol_951X)) { - length_956X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + code_772X))) + -4))))>>8); - index_957X = -2 + length_956X; - arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_772X))) + (-3 + length_956X)))); - arg0K1 = (((((*((unsigned char *) ((((char *) (-3 + code_772X))) + index_957X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_772X))) + (1 + index_957X))))); - goto L16080;} + if ((66 == protocol_964X)) { + length_969X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + code_789X))) + -4))))>>8); + index_970X = -2 + length_969X; + arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_789X))) + (-3 + length_969X)))); + arg0K1 = (((((*((unsigned char *) ((((char *) (-3 + code_789X))) + index_970X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_789X))) + (1 + index_970X))))); + goto L16735;} else { - ps_error("unknown protocol", 1, protocol_951X); + ps_error("unknown protocol", 1, protocol_964X); arg0K0 = 4; - arg0K1 = stack_arg_count_771X; + arg0K1 = stack_arg_count_788X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}}} + goto L17816;}}} else { - if ((protocol_951X == stack_arg_count_771X)) { + if ((protocol_964X == stack_arg_count_788X)) { arg0K0 = 2; - arg0K1 = stack_arg_count_771X; - goto L16084;} + arg0K1 = stack_arg_count_788X; + goto L16739;} else { arg0K0 = 4; - arg0K1 = stack_arg_count_771X; + arg0K1 = stack_arg_count_788X; arg0K2 = 25; arg0K3 = 0; - goto L17161;}}}}}} - L16357: { - protocol_958X = arg0K0; - stack_space_959X = arg0K1; - if ((68 == protocol_958X)) { - if ((total_arg_count_790X < 3)) { - skip_960X = *((unsigned char *) ((((char *) (-3 + code_789X))) + (2 + total_arg_count_790X))); - if ((0 == skip_960X)) { + goto L17816;}}}}}} + L17012: { + protocol_971X = arg0K0; + stack_space_972X = arg0K1; + if ((68 == protocol_971X)) { + if ((total_arg_count_807X < 3)) { + skip_973X = *((unsigned char *) ((((char *) (-3 + code_806X))) + (2 + total_arg_count_807X))); + if ((0 == skip_973X)) { arg0K0 = 4; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;} + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;} else { - merged_arg0K0 = list_args_785X; - merged_arg0K1 = list_arg_count_786X; + merged_arg0K0 = list_args_802X; + merged_arg0K1 = list_arg_count_803X; push_list_return_tag = 0; goto push_list; push_list_return_0: - arg0K0 = skip_960X; - arg0K1 = total_arg_count_790X; - goto L16361;}} + arg0K0 = skip_973X; + arg0K1 = total_arg_count_807X; + goto L17016;}} else { - skip_961X = *((unsigned char *) ((((char *) (-3 + code_789X))) + 5)); - if ((0 == skip_961X)) { + skip_974X = *((unsigned char *) ((((char *) (-3 + code_806X))) + 5)); + if ((0 == skip_974X)) { arg0K0 = 4; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;} + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;} else { - arg0K0 = skip_961X; - goto L16386;}}} + arg0K0 = skip_974X; + goto L17041;}}} else { - if ((67 == protocol_958X)) { - if ((total_arg_count_790X < (*((unsigned char *) ((((char *) (-3 + code_789X))) + 2))))) { + if ((67 == protocol_971X)) { + if ((total_arg_count_807X < (*((unsigned char *) ((((char *) (-3 + code_806X))) + 2))))) { arg0K0 = 4; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;} + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;} else { arg0K0 = 3; - goto L16386;}} + goto L17041;}} else { - if ((63 < protocol_958X)) { - if ((65 == protocol_958X)) { - wants_stack_args_962X = ((((*((unsigned char *) ((((char *) (-3 + code_789X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_789X))) + 3))); - if ((total_arg_count_790X < wants_stack_args_962X)) { + if ((63 < protocol_971X)) { + if ((65 == protocol_971X)) { + wants_stack_args_975X = ((((*((unsigned char *) ((((char *) (-3 + code_806X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_806X))) + 3))); + if ((total_arg_count_807X < wants_stack_args_975X)) { arg0K0 = 4; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;} + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;} else { - merged_arg0K0 = wants_stack_args_962X; - merged_arg0K1 = stack_arg_count_784X; - merged_arg0K2 = list_args_785X; - merged_arg0K3 = list_arg_count_786X; + merged_arg0K0 = wants_stack_args_975X; + merged_arg0K1 = stack_arg_count_801X; + merged_arg0K2 = list_args_802X; + merged_arg0K3 = list_arg_count_803X; rest_list_setup_return_tag = 1; goto rest_list_setup; rest_list_setup_return_1: arg0K0 = 4; - arg0K1 = (1 + wants_stack_args_962X); - goto L16361;}} + arg0K1 = (1 + wants_stack_args_975X); + goto L17016;}} else { - if ((64 == protocol_958X)) { - if (((((((*((unsigned char *) ((((char *) (-3 + code_789X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_789X))) + 3)))) == total_arg_count_790X)) { - merged_arg0K0 = list_args_785X; - merged_arg0K1 = list_arg_count_786X; + if ((64 == protocol_971X)) { + if (((((((*((unsigned char *) ((((char *) (-3 + code_806X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_806X))) + 3)))) == total_arg_count_807X)) { + merged_arg0K0 = list_args_802X; + merged_arg0K1 = list_arg_count_803X; push_list_return_tag = 1; goto push_list; push_list_return_1: arg0K0 = 4; - arg0K1 = total_arg_count_790X; - goto L16361;} + arg0K1 = total_arg_count_807X; + goto L17016;} else { arg0K0 = 4; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;}} + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;}} else { - if ((66 == protocol_958X)) { - length_963X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + code_789X))) + -4))))>>8); - index_964X = -2 + length_963X; - arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_789X))) + (-3 + length_963X)))); - arg0K1 = (((((*((unsigned char *) ((((char *) (-3 + code_789X))) + index_964X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_789X))) + (1 + index_964X))))); - goto L16357;} + if ((66 == protocol_971X)) { + length_976X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + code_806X))) + -4))))>>8); + index_977X = -2 + length_976X; + arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_806X))) + (-3 + length_976X)))); + arg0K1 = (((((*((unsigned char *) ((((char *) (-3 + code_806X))) + index_977X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_806X))) + (1 + index_977X))))); + goto L17012;} else { - ps_error("unknown protocol", 1, protocol_958X); + ps_error("unknown protocol", 1, protocol_971X); arg0K0 = 4; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;}}}} + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;}}}} else { - if ((protocol_958X == total_arg_count_790X)) { - merged_arg0K0 = list_args_785X; - merged_arg0K1 = list_arg_count_786X; + if ((protocol_971X == total_arg_count_807X)) { + merged_arg0K0 = list_args_802X; + merged_arg0K1 = list_arg_count_803X; push_list_return_tag = 2; goto push_list; push_list_return_2: arg0K0 = 2; - arg0K1 = total_arg_count_790X; - goto L16361;} + arg0K1 = total_arg_count_807X; + goto L17016;} else { arg0K0 = 4; - arg0K1 = stack_arg_count_784X; - arg0K2 = list_args_785X; - arg0K3 = list_arg_count_786X; - goto L17161;}}}}} - L20438: { - cont_965X = arg0K0; - if ((3 == (3 & cont_965X))) { - if ((9 == (31 & ((((*((long *) ((((char *) (-3 + cont_965X))) + -4))))>>2))))) { - next_op_966X = *((unsigned char *) ((((char *) (-3 + (*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + cont_965X))) + 8))))))))))) + ((((*((long *) ((((char *) (-3 + cont_965X))) + 4))))>>2)))); - if ((34 == next_op_966X)) { + arg0K1 = stack_arg_count_801X; + arg0K2 = list_args_802X; + arg0K3 = list_arg_count_803X; + goto L17816;}}}}} + L21102: { + cont_978X = arg0K0; + if ((3 == (3 & cont_978X))) { + if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_978X))) + -4))))>>2))))) { + next_op_979X = *((unsigned char *) ((((char *) (-3 + (*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + cont_978X))) + 8))))))))))) + ((((*((long *) ((((char *) (-3 + cont_978X))) + 4))))>>2)))); + if ((34 == next_op_979X)) { pop_continuationB_return_tag = 2; goto pop_continuationB; pop_continuationB_return_2: arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if ((30 == next_op_966X)) { - next_967X = *((long *) (((char *) (-3 + (ScontS))))); + if ((30 == next_op_979X)) { + next_980X = *((long *) (((char *) (-3 + (ScontS))))); if (((ScontS) == (Sbottom_of_stackS))) { - *((long *) (((char *) (-3 + (ScontS))))) = (*((long *) (((char *) (-3 + next_967X))))); - goto L19282;} + *((long *) (((char *) (-3 + (ScontS))))) = (*((long *) (((char *) (-3 + next_980X))))); + goto L19937;} else { - ScontS = next_967X; - goto L19282;}} + ScontS = next_980X; + goto L19937;}} else { - merged_arg0K0 = list_args_802X; - merged_arg0K1 = stack_nargs_801X; + merged_arg0K0 = list_args_819X; + merged_arg0K1 = stack_nargs_818X; pop_args_GlistS_return_tag = 3; goto pop_args_GlistS; pop_args_GlistS_return_3: - args_968X = pop_args_GlistS0_return_value; + args_981X = pop_args_GlistS0_return_value; push_exception_continuationB(4, 0); *((long *) (SstackS)) = 1; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = args_968X; + *((long *) (SstackS)) = args_981X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}} + goto L17320;}}} else { - goto L20444;}} + goto L21108;}} else { - goto L20444;}} - L18932: { - v_969X = arg0K0; - merged_arg0K0 = v_969X; + goto L21108;}} + L19587: { + v_982X = arg0K0; + merged_arg0K0 = v_982X; copy_stack_into_heap_return_tag = 1; goto copy_stack_into_heap; copy_stack_into_heap_return_1: if (((SstackS) < (Sstack_limitS))) { ps_error("Couldn't get default procedure space (how can this happen?)", 0); - goto L18817;} + goto L19472;} else { - goto L18817;}} - L18826: { + goto L19472;}} + L19481: { arg0K0 = (*((unsigned char *) ((Scode_pointerS) + 3))); - goto L16894;} - L18829: { + goto L17549;} + L19484: { arg1K0 = (Scode_pointerS); - goto L18438;} - L18987: { - v_970X = arg0K0; - merged_arg0K0 = v_970X; + goto L19093;} + L19642: { + v_983X = arg0K0; + merged_arg0K0 = v_983X; copy_stack_into_heap_return_tag = 2; goto copy_stack_into_heap; copy_stack_into_heap_return_2: - if ((space_436X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { - goto L18817;} + if ((space_453X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { + goto L19472;} else { ps_error("VM's stack is too small (how can this happen?)", 0); - goto L18817;}} - L10628: { - if ((3 == (3 & x_456X))) { - if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_456X))) + -4))))>>2))))) { + goto L19472;}} + L11268: { + if ((3 == (3 & x_473X))) { + if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_473X))) + -4))))>>2))))) { arg0K0 = 5; - goto L38038;} + goto L39127;} else { - goto L10634;}} + goto L11274;}} else { - goto L10634;}} - L28396: { + goto L11274;}} + L29207: { SvalS = 1; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L28537: { - if ((3 == (3 & n_458X))) { - if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_458X))) + -4))))>>2))))) { - goto L28548;} + goto L19093;} + L29348: { + if ((3 == (3 & n_475X))) { + if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_475X))) + -4))))>>2))))) { + goto L29359;} else { - goto L28549;}} + goto L29360;}} else { - goto L28549;}} - L28736: { - if ((3 == (3 & n_459X))) { - if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_459X))) + -4))))>>2))))) { - goto L28747;} + goto L29360;}} + L29547: { + if ((3 == (3 & n_476X))) { + if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_476X))) + -4))))>>2))))) { + goto L29558;} else { - goto L28748;}} + goto L29559;}} else { - goto L28748;}} - L28935: { - if ((3 == (3 & n_460X))) { - if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_460X))) + -4))))>>2))))) { - goto L28946;} + goto L29559;}} + L29746: { + if ((3 == (3 & n_477X))) { + if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_477X))) + -4))))>>2))))) { + goto L29757;} else { - goto L28947;}} + goto L29758;}} else { - goto L28947;}} - L6779: { - b_971X = arg0K0; - lo_a_972X = 65535 & a_815X; - lo_b_973X = 65535 & b_971X; - hi_a_974X = 65535 & (((a_815X)>>16)); - hi_b_975X = 65535 & (((b_971X)>>16)); - lo_c_976X = SMALL_MULTIPLY(lo_a_972X, lo_b_973X); - v_977X = SMALL_MULTIPLY(lo_b_973X, hi_a_974X); - v_978X = SMALL_MULTIPLY(lo_a_972X, hi_b_975X); - mid_c_979X = v_978X + v_977X; - c_980X = lo_c_976X + (((mid_c_979X)<<16)); - if ((0 < hi_a_974X)) { - if ((0 < hi_b_975X)) { + goto L29758;}} + L7002: { + b_984X = arg0K0; + lo_a_985X = 65535 & a_832X; + lo_b_986X = 65535 & b_984X; + hi_a_987X = 65535 & (((a_832X)>>16)); + hi_b_988X = 65535 & (((b_984X)>>16)); + lo_c_989X = SMALL_MULTIPLY(lo_a_985X, lo_b_986X); + v_990X = SMALL_MULTIPLY(lo_b_986X, hi_a_987X); + v_991X = SMALL_MULTIPLY(lo_a_985X, hi_b_988X); + mid_c_992X = v_991X + v_990X; + c_993X = lo_c_989X + (((mid_c_992X)<<16)); + if ((0 < hi_a_987X)) { + if ((0 < hi_b_988X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_467X; + *((long *) (SstackS)) = arg2_484X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_468X; + *((long *) (SstackS)) = x_485X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - goto L6821;}} + goto L7044;}} else { - goto L6821;}} - L7060: { - b_981X = arg0K0; - c_982X = a_816X / b_981X; - x_983X = 0 == (a_816X % b_981X); - if (x_983X) { - if ((a_476X < 0)) { - if ((b_477X < 0)) { - goto L7115;} + goto L7044;}} + L7283: { + b_994X = arg0K0; + c_995X = a_833X / b_994X; + x_996X = 0 == (a_833X % b_994X); + if (x_996X) { + if ((a_493X < 0)) { + if ((b_494X < 0)) { + goto L7338;} else { - goto L7114;}} + goto L7337;}} else { - if ((b_477X < 0)) { - goto L7114;} + if ((b_494X < 0)) { + goto L7337;} else { - goto L7115;}}} + goto L7338;}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_474X; + *((long *) (SstackS)) = arg2_491X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_475X; + *((long *) (SstackS)) = x_492X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} - L7237: { - b_984X = arg0K0; - c_985X = a_822X / b_984X; - if ((a_490X < 0)) { - if ((b_491X < 0)) { - goto L7283;} + goto L17320;}} + L7460: { + b_997X = arg0K0; + c_998X = a_839X / b_997X; + if ((a_507X < 0)) { + if ((b_508X < 0)) { + goto L7506;} else { - goto L7282;}} + goto L7505;}} else { - if ((b_491X < 0)) { - goto L7282;} + if ((b_508X < 0)) { + goto L7505;} else { - goto L7283;}}} - L25340: { - b_986X = arg0K0; - c_987X = a_823X % b_986X; - if ((a_494X < 0)) { - arg0K0 = (0 - c_987X); - goto L25344;} + goto L7506;}}} + L26012: { + b_999X = arg0K0; + c_1000X = a_840X % b_999X; + if ((a_511X < 0)) { + arg0K0 = (0 - c_1000X); + goto L26016;} else { - arg0K0 = c_987X; - goto L25344;}} - L21336: { - SvalS = new_834X; + arg0K0 = c_1000X; + goto L26016;}} + L22000: { + SvalS = new_851X; Scode_pointerS = ((Scode_pointerS) + 3); arg1K0 = (Scode_pointerS); - goto L18438;} - L21320: { - i_988X = arg0K0; - if ((i_988X < 0)) { - goto L21336;} + goto L19093;} + L21984: { + i_1001X = arg0K0; + if ((i_1001X < 0)) { + goto L22000;} else { SstackS = ((SstackS) + 4); - *((long *) ((((char *) (-3 + new_834X))) + (((i_988X)<<2)))) = (*((long *) (SstackS))); - arg0K0 = (-1 + i_988X); - goto L21320;}} - L21505: { - i_989X = arg0K0; - if ((i_989X < 0)) { - arg0K0 = stack_nargs_839X; - arg0K1 = rest_list_840X; - goto L21523;} + *((long *) ((((char *) (-3 + new_851X))) + (((i_1001X)<<2)))) = (*((long *) (SstackS))); + arg0K0 = (-1 + i_1001X); + goto L21984;}} + L22169: { + i_1002X = arg0K0; + if ((i_1002X < 0)) { + arg0K0 = stack_nargs_856X; + arg0K1 = rest_list_857X; + goto L22187;} else { SstackS = ((SstackS) + 4); - *((long *) ((((char *) (-3 + new_838X))) + (((i_989X)<<2)))) = (*((long *) (SstackS))); - arg0K0 = (-1 + i_989X); - goto L21505;}} - L22028: { - i_990X = arg0K0; - if ((i_990X < 0)) { - SvalS = value_845X; + *((long *) ((((char *) (-3 + new_855X))) + (((i_1002X)<<2)))) = (*((long *) (SstackS))); + arg0K0 = (-1 + i_1002X); + goto L22169;}} + L22692: { + i_1003X = arg0K0; + if ((i_1003X < 0)) { + SvalS = value_862X; Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - addr_991X = (((char *) (-3 + value_845X))) + (((i_990X)<<2)); - S48_WRITE_BARRIER(value_845X, addr_991X, init_842X); - *((long *) addr_991X) = init_842X; - arg0K0 = (-1 + i_990X); - goto L22028;}} - L26115: { - i_992X = arg0K0; - if ((i_992X < 0)) { - SvalS = vector_847X; + addr_1004X = (((char *) (-3 + value_862X))) + (((i_1003X)<<2)); + S48_WRITE_BARRIER(value_862X, addr_1004X, init_859X); + *((long *) addr_1004X) = init_859X; + arg0K0 = (-1 + i_1003X); + goto L22692;}} + L26787: { + i_1005X = arg0K0; + if ((i_1005X < 0)) { + SvalS = vector_864X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - *((unsigned char *) ((((char *) (-3 + vector_847X))) + i_992X)) = init_584X; - arg0K0 = (-1 + i_992X); - goto L26115;}} - L26349: { - i_993X = arg0K0; - if ((i_993X < 0)) { - SvalS = string_850X; + *((unsigned char *) ((((char *) (-3 + vector_864X))) + i_1005X)) = init_601X; + arg0K0 = (-1 + i_1005X); + goto L26787;}} + L27021: { + i_1006X = arg0K0; + if ((i_1006X < 0)) { + SvalS = string_867X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - *((unsigned char *) ((((char *) (-3 + string_850X))) + i_993X)) = (init_600X); - arg0K0 = (-1 + i_993X); - goto L26349;}} - L13333: { - i_994X = arg0K0; - h_995X = arg0K1; - if ((i_994X < n_854X)) { - arg0K0 = (1 + i_994X); - arg0K1 = (h_995X + (((*((unsigned char *) ((((char *) (-3 + string_853X))) + i_994X)))))); - goto L13333;} + *((unsigned char *) ((((char *) (-3 + string_867X))) + i_1006X)) = (init_617X); + arg0K0 = (-1 + i_1006X); + goto L27021;}} + L13975: { + i_1007X = arg0K0; + h_1008X = arg0K1; + if ((i_1007X < n_871X)) { + arg0K0 = (1 + i_1007X); + arg0K1 = (h_1008X + (((*((unsigned char *) ((((char *) (-3 + string_870X))) + i_1007X)))))); + goto L13975;} else { - index_996X = 1023 & h_995X; - bucket_997X = *((long *) ((((char *) (-3 + table_852X))) + (((index_996X)<<2)))); - arg0K0 = bucket_997X; - goto L13301;}} - L24488: { + index_1009X = 1023 & h_1008X; + bucket_1010X = *((long *) ((((char *) (-3 + table_869X))) + (((index_1009X)<<2)))); + arg0K0 = bucket_1010X; + goto L13943;}} + L25160: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L29550: { + goto L17320;} + L30486: { SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L33097: { - key_998X = arg0K0; + goto L19093;} + L34071: { + key_1011X = arg0K0; SstackS = ((SstackS) + 4); - arg2_999X = *((long *) (SstackS)); + arg2_1012X = *((long *) (SstackS)); if ((0 == (3 & (SvalS)))) { - mode_1000X = (((SvalS))>>2); - if ((1 == mode_1000X)) { - goto L26773;} + mode_1013X = (((SvalS))>>2); + if ((1 == mode_1013X)) { + goto L27449;} else { - if ((2 == mode_1000X)) { - goto L26773;} + if ((2 == mode_1013X)) { + goto L27449;} else { - if ((3 == mode_1000X)) { - goto L26773;} + if ((3 == mode_1013X)) { + goto L27449;} else { - if ((4 == mode_1000X)) { - goto L26773;} + if ((4 == mode_1013X)) { + goto L27449;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_999X; + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); + *((long *) (SstackS)) = (((mode_1013X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}}}} + goto L17320;}}}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_999X; + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} - L34456: { - key_1001X = arg0K0; - obj_1002X = SvalS; - if ((3 == (3 & obj_1002X))) { - if ((5 == (31 & ((((*((long *) ((((char *) (-3 + obj_1002X))) + -4))))>>2))))) { - channel_1003X = SvalS; - if ((0 == (*((long *) (((char *) (-3 + channel_1003X))))))) { + goto L17320;}} + L35506: { + key_1014X = arg0K0; + obj_1015X = SvalS; + if ((3 == (3 & obj_1015X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1015X))) + -4))))>>2))))) { + channel_1016X = SvalS; + if ((0 == (*((long *) (((char *) (-3 + channel_1016X))))))) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = channel_1003X; + *((long *) (SstackS)) = channel_1016X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} else { - status_1004X = close_channelB(channel_1003X); - if ((status_1004X == NO_ERRORS)) { + status_1017X = close_channelB(channel_1016X); + if ((status_1017X == NO_ERRORS)) { SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { push_exception_continuationB(25, 1); - *((long *) (SstackS)) = channel_1003X; + *((long *) (SstackS)) = (((status_1017X)<<2)); SstackS = ((SstackS) + -4); - merged_arg0K0 = status_1004X; - merged_arg0K1 = key_1001X; + *((long *) (SstackS)) = channel_1016X; + SstackS = ((SstackS) + -4); + merged_arg0K0 = status_1017X; + merged_arg0K1 = key_1014X; get_error_string_return_tag = 0; goto get_error_string; get_error_string_return_0: - x_1005X = get_error_string0_return_value; - *((long *) (SstackS)) = x_1005X; + x_1018X = get_error_string0_return_value; + *((long *) (SstackS)) = x_1018X; SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}}} + arg0K0 = 3; + goto L17320;}}} else { - goto L34464;}} + goto L35514;}} else { - goto L34464;}} - L37273: { - key_1006X = arg0K0; + goto L35514;}} + L38360: { + key_1019X = arg0K0; SstackS = ((SstackS) + 4); - arg2_1007X = *((long *) (SstackS)); + arg2_1020X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg3_1008X = *((long *) (SstackS)); + arg3_1021X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg4_1009X = *((long *) (SstackS)); + arg4_1022X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg5_1010X = *((long *) (SstackS)); - if ((0 == (3 & (arg4_1009X | arg3_1008X)))) { - if ((1 == arg2_1007X)) { - goto L37305;} + arg5_1023X = *((long *) (SstackS)); + if ((0 == (3 & (arg4_1022X | arg3_1021X)))) { + if ((1 == arg2_1020X)) { + goto L38392;} else { - if ((5 == arg2_1007X)) { - goto L37305;} + if ((5 == arg2_1020X)) { + goto L38392;} else { - goto L37325;}}} + goto L38412;}}} else { - goto L37325;}} - L37545: { - key_1011X = arg0K0; + goto L38412;}} + L38632: { + key_1024X = arg0K0; SstackS = ((SstackS) + 4); - arg2_1012X = *((long *) (SstackS)); + arg2_1025X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg3_1013X = *((long *) (SstackS)); + arg3_1026X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg4_1014X = *((long *) (SstackS)); - if ((0 == (3 & (arg3_1013X | arg2_1012X)))) { - obj_1015X = SvalS; - if ((3 == (3 & obj_1015X))) { - if ((5 == (31 & ((((*((long *) ((((char *) (-3 + obj_1015X))) + -4))))>>2))))) { - start_1016X = ((arg3_1013X)>>2); - count_1017X = ((arg2_1012X)>>2); - channel_1018X = SvalS; - v_1019X = 8 == (*((long *) (((char *) (-3 + channel_1018X))))); - if (v_1019X) { - if ((3 == (3 & arg4_1014X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1014X))) + -4))))>>2))))) { - goto L36856;} + arg4_1027X = *((long *) (SstackS)); + if ((0 == (3 & (arg3_1026X | arg2_1025X)))) { + obj_1028X = SvalS; + if ((3 == (3 & obj_1028X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1028X))) + -4))))>>2))))) { + start_1029X = ((arg3_1026X)>>2); + count_1030X = ((arg2_1025X)>>2); + channel_1031X = SvalS; + v_1032X = 8 == (*((long *) (((char *) (-3 + channel_1031X))))); + if (v_1032X) { + if ((3 == (3 & arg4_1027X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1027X))) + -4))))>>2))))) { + goto L37934;} else { - goto L36848;}} + goto L37926;}} else { - goto L36848;}} + goto L37926;}} else { arg0K0 = 5; - goto L36739;}} + goto L37809;}} else { - goto L37587;}} + goto L38674;}} else { - goto L37587;}} + goto L38674;}} else { - goto L37587;}} - L8203: { - val_1020X = *((long *) ((((char *) (-3 + ch_868X))) + 12)); - addr_1021X = (((char *) (-3 + prev_869X))) + 12; - S48_WRITE_BARRIER(prev_869X, addr_1021X, val_1020X); - *((long *) addr_1021X) = val_1020X; - addr_1022X = (((char *) (-3 + ch_868X))) + 12; - S48_WRITE_BARRIER(ch_868X, addr_1022X, 1); - *((long *) addr_1022X) = 1; - arg0K0 = (*((long *) ((((char *) (-3 + ch_868X))) + 16))); - goto L33202;} - L14784: { - i_1023X = arg0K0; - res_1024X = arg0K1; - if ((-1 == i_1023X)) { - SvalS = res_1024X; + goto L38674;}} + L28633: { + inputP_1033X = arg2K0; + x_1034X = ps_add_pending_fd(((((*((long *) ((((char *) (-3 + arg2_653X))) + 8))))>>2)), inputP_1033X); + if (x_1034X) { + arg0K0 = 5; + goto L28669;} + else { + arg0K0 = 1; + goto L28669;}} + L34991: { + key_1035X = arg0K0; + obj_1036X = SvalS; + if ((3 == (3 & obj_1036X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1036X))) + -4))))>>2))))) { + channel_1037X = SvalS; + if ((0 == (*((long *) (((char *) (-3 + channel_1037X))))))) { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = channel_1037X; + SstackS = ((SstackS) + -4); + arg0K0 = 1; + goto L17320;} + else { + readyP_1038X = ps_check_fd(((((*((long *) ((((char *) (-3 + channel_1037X))) + 8))))>>2)), (4 == (*((long *) (((char *) (-3 + channel_1037X)))))), &status_1039X); + if ((status_1039X == NO_ERRORS)) { + if (readyP_1038X) { + arg0K0 = 5; + goto L30072;} + else { + arg0K0 = 1; + goto L30072;}} + else { + push_exception_continuationB(25, 1); + *((long *) (SstackS)) = (((status_1039X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = channel_1037X; + SstackS = ((SstackS) + -4); + merged_arg0K0 = status_1039X; + merged_arg0K1 = key_1035X; + get_error_string_return_tag = 1; + goto get_error_string; + get_error_string_return_1: + x_1040X = get_error_string0_return_value; + *((long *) (SstackS)) = x_1040X; + SstackS = ((SstackS) + -4); + arg0K0 = 3; + goto L17320;}}} + else { + goto L34999;}} + else { + goto L34999;}} + L8517: { + head_1041X = arg0K0; + if ((1 == head_1041X)) { + addr_1042X = (((char *) (-3 + channel_659X))) + 16; + S48_WRITE_BARRIER(channel_659X, addr_1042X, 1); + *((long *) addr_1042X) = 1; + n_1043X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_659X))) + 8))))>>2))); + arg0K0 = (((n_1043X)<<2)); + goto L34176;} + else { + if ((channel_659X == head_1041X)) { + if (inputP_886X) { + channel_1044X = Spending_input_channels_headS; + next_1045X = *((long *) ((((char *) (-3 + channel_1044X))) + 12)); + Spending_input_channels_headS = next_1045X; + addr_1046X = (((char *) (-3 + channel_1044X))) + 12; + S48_WRITE_BARRIER(channel_1044X, addr_1046X, 1); + *((long *) addr_1046X) = 1; + if ((1 == next_1045X)) { + Spending_input_channels_tailS = 1; + goto L8539;} + else { + goto L8539;}} + else { + channel_1047X = Spending_output_channels_headS; + next_1048X = *((long *) ((((char *) (-3 + channel_1047X))) + 12)); + Spending_output_channels_headS = next_1048X; + addr_1049X = (((char *) (-3 + channel_1047X))) + 12; + S48_WRITE_BARRIER(channel_1047X, addr_1049X, 1); + *((long *) addr_1049X) = 1; + if ((1 == next_1048X)) { + Spending_output_channels_tailS = 1; + goto L8550;} + else { + goto L8550;}}} + else { + arg0K0 = (*((long *) ((((char *) (-3 + head_1041X))) + 12))); + arg0K1 = head_1041X; + goto L8566;}}} + L15432: { + i_1050X = arg0K0; + res_1051X = arg0K1; + if ((-1 == i_1050X)) { + SvalS = res_1051X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - channel_1025X = *((Svm_channelsS) + i_1023X); - if ((3 == (3 & channel_1025X))) { - if ((5 == (31 & ((((*((long *) ((((char *) (-3 + channel_1025X))) + -4))))>>2))))) { - addr_1026X = ALLOCATE_SPACE(0, 12); - *((long *) addr_1026X) = 2050; - x_1027X = 3 + (((long) (addr_1026X + 4))); - *((long *) (((char *) (-3 + x_1027X)))) = channel_1025X; - *((long *) ((((char *) (-3 + x_1027X))) + 4)) = res_1024X; - arg0K0 = x_1027X; - goto L14798;} + channel_1052X = *((Svm_channelsS) + i_1050X); + if ((3 == (3 & channel_1052X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_1052X))) + -4))))>>2))))) { + addr_1053X = ALLOCATE_SPACE(0, 12); + *((long *) addr_1053X) = 2050; + x_1054X = 3 + (((long) (addr_1053X + 4))); + *((long *) (((char *) (-3 + x_1054X)))) = channel_1052X; + *((long *) ((((char *) (-3 + x_1054X))) + 4)) = res_1051X; + arg0K0 = x_1054X; + goto L15446;} else { - arg0K0 = res_1024X; - goto L14798;}} + arg0K0 = res_1051X; + goto L15446;}} else { - arg0K0 = res_1024X; - goto L14798;}}} - L34529: { - key_1028X = arg0K0; + arg0K0 = res_1051X; + goto L15446;}}} + L35579: { + key_1055X = arg0K0; SstackS = ((SstackS) + 4); - arg2_1029X = *((long *) (SstackS)); + arg2_1056X = *((long *) (SstackS)); SstackS = ((SstackS) + 4); - arg3_1030X = *((long *) (SstackS)); - if ((3 == (3 & arg3_1030X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1030X))) + -4))))>>2))))) { - obj_1031X = SvalS; - if ((3 == (3 & obj_1031X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1031X))) + -4))))>>2))))) { - comment_string_1032X = SvalS; - x_1033X = s48_image_writing_okayP(); - if (x_1033X) { - port_1034X = ps_open_output_file((((char *)(((char *) (-3 + arg3_1030X))))), &status_1035X); - if ((status_1035X == NO_ERRORS)) { - status_1036X = ps_write_string((((char *)(((char *) (-3 + comment_string_1032X))))), port_1034X); - if ((status_1036X == NO_ERRORS)) { - status_1037X = s48_write_image(arg2_1029X, port_1034X); - if ((status_1037X == NO_ERRORS)) { - status_1038X = ps_close(port_1034X); - if ((status_1038X == NO_ERRORS)) { - undumpables_1039X = s48_undumpable_records(&undumpable_count_1040X); - if ((0 == undumpable_count_1040X)) { - SvalS = 13; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - else { - push_exception_continuationB(26, 1); - *((long *) (SstackS)) = arg3_1030X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_1029X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = comment_string_1032X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = undumpables_1039X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((undumpable_count_1040X)<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 5; - goto L16665;}} - else { - arg0K0 = 25; - arg0K1 = status_1038X; - goto L30184;}} + arg3_1057X = *((long *) (SstackS)); + if ((3 == (3 & arg3_1057X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1057X))) + -4))))>>2))))) { + obj_1058X = SvalS; + if ((3 == (3 & obj_1058X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_1058X))) + -4))))>>2))))) { + comment_string_1059X = SvalS; + x_1060X = s48_image_writing_okayP(); + if (x_1060X) { + port_1061X = ps_open_output_file((((char *)(((char *) (-3 + arg3_1057X))))), &status_1062X); + if ((status_1062X == NO_ERRORS)) { + status_1063X = ps_write_string((((char *)(((char *) (-3 + comment_string_1059X))))), port_1061X); + if ((status_1063X == NO_ERRORS)) { + v_1064X = s48_newspaceLoldspaceP(); + if (v_1064X) { + merged_arg0K0 = arg2_1056X; + collect_saving_temp_return_tag = 1; + goto collect_saving_temp; + collect_saving_temp_return_1: + v_1065X = collect_saving_temp0_return_value; + arg0K0 = v_1065X; + goto L31214;} else { - status_1041X = ps_close(port_1034X); - if ((status_1041X == NO_ERRORS)) { - arg0K0 = 25; - arg0K1 = status_1037X; - goto L30184;} - else { - ps_write_string("Unable to close image file", (stderr)); - { long ignoreXX; - PS_WRITE_CHAR(10, (stderr), ignoreXX) } - arg0K0 = 25; - arg0K1 = status_1037X; - goto L30184;}}} + arg0K0 = arg2_1056X; + goto L31214;}} else { - status_1042X = ps_close(port_1034X); - if ((status_1042X == NO_ERRORS)) { + status_1066X = ps_close(port_1061X); + if ((status_1066X == NO_ERRORS)) { arg0K0 = 25; - arg0K1 = status_1036X; - goto L30184;} + arg0K1 = status_1063X; + goto L31133;} else { ps_write_string("Unable to close image file", (stderr)); { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } arg0K0 = 25; - arg0K1 = status_1036X; - goto L30184;}}} + arg0K1 = status_1063X; + goto L31133;}}} else { arg0K0 = 10; - arg0K1 = status_1035X; - goto L30184;}} + arg0K1 = status_1062X; + goto L31133;}} else { push_exception_continuationB(15, 1); - *((long *) (SstackS)) = arg3_1030X; + *((long *) (SstackS)) = arg3_1057X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_1029X; + *((long *) (SstackS)) = arg2_1056X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = comment_string_1032X; + *((long *) (SstackS)) = comment_string_1059X; SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16665;}} + goto L17320;}} else { - goto L34561;}} + goto L35611;}} else { - goto L34561;}} + goto L35611;}} else { - goto L34561;}} + goto L35611;}} else { - goto L34561;}} - L30563: { + goto L35611;}} + L31537: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = stob_877X; + *((long *) (SstackS)) = stob_891X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = proc_878X; + *((long *) (SstackS)) = proc_892X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L34107: { - minutesP_1043X = arg2K0; + goto L17320;} + L35157: { + minutesP_1067X = arg2K0; if ((s48_Spending_interruptPS)) { if ((s48_Spending_eventsPS)) { s48_Spending_eventsPS = 0; check_events_return_tag = 2; goto check_events; check_events_return_2: - temp_1044X = check_events0_return_value; - if (temp_1044X) { - goto L34133;} + temp_1068X = check_events0_return_value; + if (temp_1068X) { + goto L35183;} else { - goto L34138;}} + goto L35188;}} else { - goto L34133;}} + goto L35183;}} else { - goto L34138;}} - L22847: { + goto L35188;}} + L23513: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = proc_896X; + *((long *) (SstackS)) = proc_909X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = name_897X; + *((long *) (SstackS)) = name_910X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L33368: { - key_1045X = arg0K0; + goto L17320;} + L34342: { + key_1069X = arg0K0; SstackS = ((SstackS) + 4); - arg2_1046X = *((long *) (SstackS)); - if ((3 == (3 & arg2_1046X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1046X))) + -4))))>>2))))) { - x_1047X = SvalS; - if ((1 == x_1047X)) { - goto L33385;} + arg2_1070X = *((long *) (SstackS)); + if ((3 == (3 & arg2_1070X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1070X))) + -4))))>>2))))) { + x_1071X = SvalS; + if ((1 == x_1071X)) { + goto L34359;} else { - if ((5 == x_1047X)) { - goto L33385;} + if ((5 == x_1071X)) { + goto L34359;} else { - goto L33390;}}} + goto L34364;}}} else { - goto L33390;}} + goto L34364;}} else { - goto L33390;}} - L23938: { - table_1048X = arg0K0; - n_1049X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_686X))) + -4))))>>8)); + goto L34364;}} + L24610: { + table_1072X = arg0K0; + n_1073X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_703X))) + -4))))>>8)); arg0K0 = 0; arg0K1 = 0; - goto L12880;} - L27369: { - len_1050X = 1 + n_907X; - addr_1051X = ALLOCATE_SPACE(16, (4 + len_1050X)); - *((long *) addr_1051X) = (66 + (((len_1050X)<<8))); - string_1052X = 3 + (((long) (addr_1051X + 4))); - *((unsigned char *) ((((char *) (-3 + string_1052X))) + n_907X)) = 0; - arg0K0 = arg2_906X; - arg0K1 = (-1 + n_907X); - goto L27346;} - L27321: { - if ((25 == arg2_906X)) { - goto L27369;} + goto L13522;} + L28054: { + len_1074X = 1 + n_920X; + addr_1075X = ALLOCATE_SPACE(17, (4 + len_1074X)); + *((long *) addr_1075X) = (70 + (((len_1074X)<<8))); + string_1076X = 3 + (((long) (addr_1075X + 4))); + *((unsigned char *) ((((char *) (-3 + string_1076X))) + n_920X)) = 0; + arg0K0 = arg2_919X; + arg0K1 = (-1 + n_920X); + goto L28031;} + L28006: { + if ((25 == arg2_919X)) { + goto L28054;} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_906X; + *((long *) (SstackS)) = arg2_919X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((n_907X)<<2)); + *((long *) (SstackS)) = (((n_920X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} - L30968: { - if ((from_index_727X < 0)) { - goto L31022;} + goto L17320;}} + L31942: { + if ((from_index_744X < 0)) { + goto L31996;} else { - if ((to_index_728X < 0)) { - goto L31022;} + if ((to_index_745X < 0)) { + goto L31996;} else { - if ((count_729X < 0)) { - goto L31022;} + if ((count_746X < 0)) { + goto L31996;} else { - if ((3 == (3 & arg5_726X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg5_726X))) + -4))))>>2))))) { - arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_726X))) + -4))))>>8))); - goto L30989;} + if ((3 == (3 & arg5_743X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_743X))) + -4))))>>2))))) { + arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_743X))) + -4))))>>8))); + goto L31963;} else { - goto L30985;}} + goto L31959;}} else { - goto L30985;}}}}} - L30963: { - if ((3 == (3 & arg5_726X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_726X))) + -4))))>>2))))) { - goto L30968;} + goto L31959;}}}}} + L31937: { + if ((3 == (3 & arg5_743X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg5_743X))) + -4))))>>2))))) { + goto L31942;} else { - goto L31022;}} + goto L31996;}} else { - goto L31022;}} - L31022: { + goto L31996;}} + L31996: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg5_726X; + *((long *) (SstackS)) = arg5_743X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((from_index_727X)<<2)); + *((long *) (SstackS)) = (((from_index_744X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg3_724X; + *((long *) (SstackS)) = arg3_741X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((to_index_728X)<<2)); + *((long *) (SstackS)) = (((to_index_745X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((count_729X)<<2)); + *((long *) (SstackS)) = (((count_746X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 5; - goto L16665;} - L23097: { + goto L17320;} + L23769: { push_exception_continuationB(5, 2); - *((long *) (SstackS)) = port_913X; + *((long *) (SstackS)) = port_926X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L23077: { + goto L17320;} + L23749: { push_exception_continuationB(14, 2); - *((long *) (SstackS)) = port_913X; + *((long *) (SstackS)) = port_926X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L23317: { + goto L17320;} + L23989: { push_exception_continuationB(5, 2); - *((long *) (SstackS)) = port_921X; + *((long *) (SstackS)) = port_934X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L23297: { + goto L17320;} + L23969: { push_exception_continuationB(14, 2); - *((long *) (SstackS)) = port_921X; + *((long *) (SstackS)) = port_934X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L23531: { + goto L17320;} + L24203: { push_exception_continuationB(5, 2); - *((long *) (SstackS)) = Kchar_927X; + *((long *) (SstackS)) = Kchar_940X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = port_928X; + *((long *) (SstackS)) = port_941X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L23513: { + goto L17320;} + L24185: { push_exception_continuationB(14, 2); - *((long *) (SstackS)) = Kchar_927X; + *((long *) (SstackS)) = Kchar_940X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = port_928X; + *((long *) (SstackS)) = port_941X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L29458: { - arg0K0 = (*((long *) ((((char *) (-3 + stuff_935X))) + 4))); - goto L29452;} - L11650: { - if ((3 == (3 & thing_936X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + thing_936X))) + -4))))>>2))))) { - arg3K0 = (((char *)(((char *) (-3 + thing_936X))))); - goto L11692;} + goto L17320;} + L30394: { + arg0K0 = (*((long *) ((((char *) (-3 + stuff_948X))) + 4))); + goto L30388;} + L12292: { + if ((3 == (3 & thing_949X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + thing_949X))) + -4))))>>2))))) { + arg3K0 = (((char *)(((char *) (-3 + thing_949X))))); + goto L12334;} else { - goto L11658;}} + goto L12300;}} else { - goto L11658;}} - L29443: { + goto L12300;}} + L30379: { { long ignoreXX; - PS_WRITE_CHAR(10, out_738X, ignoreXX) } + PS_WRITE_CHAR(10, out_755X, ignoreXX) } SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L16741: { + goto L19093;} + L17396: { StemplateS = (SvalS); - Slosing_opcodeS = opcode_740X; - arg0K0 = (2 + nargs_739X); - goto L16066;} - L16811: { + Slosing_opcodeS = opcode_757X; + arg0K0 = (2 + nargs_756X); + goto L16721;} + L17466: { merged_arg3K0 = "exception handler is not a closure"; loseD0_return_tag = 1; goto loseD0; loseD0_return_1: - goto L16741;} - L20966: { - key_1053X = arg0K0; - p_1054X = SenvS; - if ((3 == (3 & p_1054X))) { - if ((p_1054X < (((long) (Sstack_beginS))))) { - goto L21061;} + goto L17396;} + L21630: { + key_1077X = arg0K0; + p_1078X = SenvS; + if ((3 == (3 & p_1078X))) { + if ((p_1078X < (((long) (Sstack_beginS))))) { + goto L21725;} else { - if (((((long) (Sstack_endS))) < p_1054X)) { - goto L21061;} + if (((((long) (Sstack_endS))) < p_1078X)) { + goto L21725;} else { merged_arg0K0 = (SenvS); merged_arg0K1 = (ScontS); - merged_arg0K2 = key_1053X; + merged_arg0K2 = key_1077X; merged_arg0K3 = 0; save_env_in_heap_return_tag = 0; goto save_env_in_heap; save_env_in_heap_return_0: - v_1055X = save_env_in_heap0_return_value; - SenvS = v_1055X; - goto L21061;}}} + v_1079X = save_env_in_heap0_return_value; + SenvS = v_1079X; + goto L21725;}}} else { - goto L21061;}} - L20977: { - env_1056X = arg0K0; - a_1057X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); - addr_1058X = ALLOCATE_SPACE(3, 12); - *((long *) addr_1058X) = 2062; - x_1059X = 3 + (((long) (addr_1058X + 4))); - *((long *) (((char *) (-3 + x_1059X)))) = a_1057X; - *((long *) ((((char *) (-3 + x_1059X))) + 4)) = env_1056X; - if ((3 == (3 & x_1059X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1059X))) + -4)))))) { - *((long *) ((((char *) (-3 + x_1059X))) + -4)) = (128 | (*((long *) ((((char *) (-3 + x_1059X))) + -4)))); - arg0K0 = x_1059X; - goto L20985;} + goto L21725;}} + L21641: { + env_1080X = arg0K0; + a_1081X = *((long *) ((((char *) (-3 + (StemplateS)))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))); + addr_1082X = ALLOCATE_SPACE(3, 12); + *((long *) addr_1082X) = 2062; + x_1083X = 3 + (((long) (addr_1082X + 4))); + *((long *) (((char *) (-3 + x_1083X)))) = a_1081X; + *((long *) ((((char *) (-3 + x_1083X))) + 4)) = env_1080X; + if ((3 == (3 & x_1083X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1083X))) + -4)))))) { + *((long *) ((((char *) (-3 + x_1083X))) + -4)) = (128 | (*((long *) ((((char *) (-3 + x_1083X))) + -4)))); + arg0K0 = x_1083X; + goto L21649;} else { - arg0K0 = x_1059X; - goto L20985;}} + arg0K0 = x_1083X; + goto L21649;}} else { - arg0K0 = x_1059X; - goto L20985;}} - L20788: { - i_1060X = arg0K0; - offset_1061X = arg0K1; - env_1062X = arg0K2; - if ((i_1060X == total_count_393X)) { - SvalS = new_env_762X; - Scode_pointerS = ((Scode_pointerS) + (1 + offset_1061X)); + arg0K0 = x_1083X; + goto L21649;}} + L21452: { + i_1084X = arg0K0; + offset_1085X = arg0K1; + env_1086X = arg0K2; + if ((i_1084X == total_count_410X)) { + SvalS = new_env_779X; + Scode_pointerS = ((Scode_pointerS) + (1 + offset_1085X)); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - back_1063X = *((unsigned char *) ((Scode_pointerS) + (1 + offset_1061X))); - arg0K0 = env_1062X; - arg0K1 = back_1063X; - goto L20884;}} - L20684: { - value_1064X = arg0K0; - SvalS = value_1064X; + back_1087X = *((unsigned char *) ((Scode_pointerS) + (1 + offset_1085X))); + arg0K0 = env_1086X; + arg0K1 = back_1087X; + goto L21548;}} + L21348: { + value_1088X = arg0K0; + SvalS = value_1088X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L16999: { - i_1065X = arg0K0; - m_1066X = arg0K1; - if ((0 == (n_950X & m_1066X))) { - arg0K0 = (1 + i_1065X); - arg0K1 = (((m_1066X)<<1)); - goto L16999;} + goto L19093;} + L17654: { + i_1089X = arg0K0; + m_1090X = arg0K1; + if ((0 == (n_963X & m_1090X))) { + arg0K0 = (1 + i_1089X); + arg0K1 = (((m_1090X)<<1)); + goto L17654;} else { - Spending_interruptsS = ((Spending_interruptsS) & (~ m_1066X)); - if ((i_1065X == 0)) { + Spending_interruptsS = ((Spending_interruptsS) & (~ m_1090X)); + if ((i_1089X == 0)) { *((long *) (SstackS)) = (Sinterrupted_templateS); SstackS = ((SstackS) + -4); Sinterrupted_templateS = 1; *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16918;} + goto L17573;} else { - if ((i_1065X == 2)) { + if ((i_1089X == 2)) { *((long *) (SstackS)) = (Sfinalize_theseS); SstackS = ((SstackS) + -4); Sfinalize_theseS = 25; *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16918;} + goto L17573;} else { - if ((i_1065X == 3)) { - channel_1067X = Spending_channels_headS; - next_1068X = *((long *) ((((char *) (-3 + channel_1067X))) + 12)); - Spending_channels_headS = next_1068X; - addr_1069X = (((char *) (-3 + channel_1067X))) + 12; - S48_WRITE_BARRIER(channel_1067X, addr_1069X, 1); - *((long *) addr_1069X) = 1; - if ((1 == next_1068X)) { - Spending_channels_tailS = 1; - arg0K0 = channel_1067X; - goto L8364;} + if ((i_1089X == 3)) { + channel_1091X = Spending_input_channels_headS; + next_1092X = *((long *) ((((char *) (-3 + channel_1091X))) + 12)); + Spending_input_channels_headS = next_1092X; + addr_1093X = (((char *) (-3 + channel_1091X))) + 12; + S48_WRITE_BARRIER(channel_1091X, addr_1093X, 1); + *((long *) addr_1093X) = 1; + if ((1 == next_1092X)) { + Spending_input_channels_tailS = 1; + arg0K0 = channel_1091X; + goto L8820;} else { - arg0K0 = channel_1067X; - goto L8364;}} + arg0K0 = channel_1091X; + goto L8820;}} else { - if ((i_1065X == 4)) { - *((long *) (SstackS)) = (Sos_signal_typeS); - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (Sos_signal_argumentS); - SstackS = ((SstackS) + -4); - Sos_signal_typeS = 1; - Sos_signal_argumentS = 1; - *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 3; - goto L16918;} + if ((i_1089X == 4)) { + channel_1094X = Spending_output_channels_headS; + next_1095X = *((long *) ((((char *) (-3 + channel_1094X))) + 12)); + Spending_output_channels_headS = next_1095X; + addr_1096X = (((char *) (-3 + channel_1094X))) + 12; + S48_WRITE_BARRIER(channel_1094X, addr_1096X, 1); + *((long *) addr_1096X) = 1; + if ((1 == next_1095X)) { + Spending_output_channels_tailS = 1; + arg0K0 = channel_1094X; + goto L8848;} + else { + arg0K0 = channel_1094X; + goto L8848;}} else { - *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 1; - goto L16918;}}}}}} - L16084: { - skip_1070X = arg0K0; - stack_arg_count_1071X = arg0K1; - template_1072X = *((long *) (((char *) (-3 + (SvalS))))); - StemplateS = template_1072X; - Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + template_1072X)))))))) + skip_1070X); + if ((i_1089X == 5)) { + *((long *) (SstackS)) = (*((long *) (((char *) (-3 + (Sos_signal_listS)))))); + SstackS = ((SstackS) + -4); + Sos_signal_listS = (*((long *) ((((char *) (-3 + (Sos_signal_listS)))) + 4))); + x_1097X = Sos_signal_listS; + if ((25 == x_1097X)) { + goto L8895;} + else { + Spending_interruptsS = (32 | (Spending_interruptsS)); + if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { + s48_Spending_interruptPS = 0; + if ((s48_Spending_eventsPS)) { + s48_Spending_interruptPS = 1; + goto L8895;} + else { + goto L8895;}} + else { + s48_Spending_interruptPS = 1; + goto L8895;}}} + else { + *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); + SstackS = ((SstackS) + -4); + arg0K0 = 1; + goto L17573;}}}}}}} + L16739: { + skip_1098X = arg0K0; + stack_arg_count_1099X = arg0K1; + template_1100X = *((long *) (((char *) (-3 + (SvalS))))); + StemplateS = template_1100X; + Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + template_1100X)))))))) + skip_1098X); SenvS = (*((long *) ((((char *) (-3 + (SvalS)))) + 4))); - arg0K0 = stack_space_952X; - arg0K1 = stack_arg_count_1071X; - goto L15974;} - L16107: { - skip_1073X = arg0K0; + arg0K0 = stack_space_965X; + arg0K1 = stack_arg_count_1099X; + goto L16629;} + L16762: { + skip_1101X = arg0K0; *((long *) (SstackS)) = 25; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((stack_arg_count_771X)<<2)); + *((long *) (SstackS)) = (((stack_arg_count_788X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((stack_arg_count_771X)<<2)); + *((long *) (SstackS)) = (((stack_arg_count_788X)<<2)); SstackS = ((SstackS) + -4); - arg0K0 = skip_1073X; - arg0K1 = (3 + stack_arg_count_771X); - goto L16084;} - L16361: { - skip_1074X = arg0K0; - stack_arg_count_1075X = arg0K1; - template_1076X = *((long *) (((char *) (-3 + (SvalS))))); - StemplateS = template_1076X; - Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + template_1076X)))))))) + skip_1074X); + arg0K0 = skip_1101X; + arg0K1 = (3 + stack_arg_count_788X); + goto L16739;} + L17016: { + skip_1102X = arg0K0; + stack_arg_count_1103X = arg0K1; + template_1104X = *((long *) (((char *) (-3 + (SvalS))))); + StemplateS = template_1104X; + Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + template_1104X)))))))) + skip_1102X); SenvS = (*((long *) ((((char *) (-3 + (SvalS)))) + 4))); - arg0K0 = stack_space_959X; - arg0K1 = stack_arg_count_1075X; - goto L15974;} - L16386: { - skip_1077X = arg0K0; - if ((total_arg_count_790X < 3)) { - arg0K0 = total_arg_count_790X; - goto L16394;} + arg0K0 = stack_space_972X; + arg0K1 = stack_arg_count_1103X; + goto L16629;} + L17041: { + skip_1105X = arg0K0; + if ((total_arg_count_807X < 3)) { + arg0K0 = total_arg_count_807X; + goto L17049;} else { - if ((2 < stack_arg_count_784X)) { - arg0K0 = stack_arg_count_784X; - goto L16394;} + if ((2 < stack_arg_count_801X)) { + arg0K0 = stack_arg_count_801X; + goto L17049;} else { arg0K0 = 2; - goto L16394;}}} - L19282: { - SvalS = (*((long *) ((((char *) (-3 + cont_965X))) + 16))); - arg0K0 = stack_nargs_801X; - arg0K1 = list_args_802X; - arg0K2 = list_arg_count_803X; - goto L17666;} - L20444: { - merged_arg0K0 = list_args_802X; - merged_arg0K1 = stack_nargs_801X; + goto L17049;}}} + L19937: { + SvalS = (*((long *) ((((char *) (-3 + cont_978X))) + 16))); + arg0K0 = stack_nargs_818X; + arg0K1 = list_args_819X; + arg0K2 = list_arg_count_820X; + goto L18321;} + L21108: { + merged_arg0K0 = list_args_819X; + merged_arg0K1 = stack_nargs_818X; pop_args_GlistS_return_tag = 4; goto pop_args_GlistS; pop_args_GlistS_return_4: - args_1078X = pop_args_GlistS0_return_value; + args_1106X = pop_args_GlistS0_return_value; push_exception_continuationB(4, 0); *((long *) (SstackS)) = 1; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = args_1078X; + *((long *) (SstackS)) = args_1106X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} - L10634: { - if ((3 == (3 & x_456X))) { - if ((10 == (31 & ((((*((long *) ((((char *) (-3 + x_456X))) + -4))))>>2))))) { + goto L17320;} + L11274: { + if ((3 == (3 & x_473X))) { + if ((11 == (31 & ((((*((long *) ((((char *) (-3 + x_473X))) + -4))))>>2))))) { arg0K0 = 5; - goto L38038;} + goto L39127;} else { arg0K0 = 1; - goto L38038;}} + goto L39127;}} else { arg0K0 = 1; - goto L38038;}} - L28549: { - if ((3 == (3 & n_458X))) { - if ((10 == (31 & ((((*((long *) ((((char *) (-3 + n_458X))) + -4))))>>2))))) { + goto L39127;}} + L29360: { + if ((3 == (3 & n_475X))) { + if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_475X))) + -4))))>>2))))) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = n_458X; + *((long *) (SstackS)) = n_475X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} else { - goto L28553;}} + goto L29364;}} else { - goto L28553;}} - L28748: { - if ((3 == (3 & n_459X))) { - if ((10 == (31 & ((((*((long *) ((((char *) (-3 + n_459X))) + -4))))>>2))))) { + goto L29364;}} + L29559: { + if ((3 == (3 & n_476X))) { + if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_476X))) + -4))))>>2))))) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = n_459X; + *((long *) (SstackS)) = n_476X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} else { - goto L28752;}} + goto L29563;}} else { - goto L28752;}} - L28947: { - if ((3 == (3 & n_460X))) { - if ((10 == (31 & ((((*((long *) ((((char *) (-3 + n_460X))) + -4))))>>2))))) { + goto L29563;}} + L29758: { + if ((3 == (3 & n_477X))) { + if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_477X))) + -4))))>>2))))) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = n_460X; + *((long *) (SstackS)) = n_477X; SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} + goto L17320;} else { - goto L28951;}} + goto L29762;}} else { - goto L28951;}} - L6821: { - if ((536870911 < lo_c_976X)) { + goto L29762;}} + L7044: { + if ((536870911 < lo_c_989X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_467X; + *((long *) (SstackS)) = arg2_484X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_468X; + *((long *) (SstackS)) = x_485X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - if ((lo_c_976X < 0)) { + if ((lo_c_989X < 0)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_467X; + *((long *) (SstackS)) = arg2_484X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_468X; + *((long *) (SstackS)) = x_485X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - if ((8192 < mid_c_979X)) { + if ((8192 < mid_c_992X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_467X; + *((long *) (SstackS)) = arg2_484X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_468X; + *((long *) (SstackS)) = x_485X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - if ((a_469X < 0)) { - if ((b_470X < 0)) { - goto L6848;} + if ((a_486X < 0)) { + if ((b_487X < 0)) { + goto L7071;} else { - goto L6855;}} + goto L7078;}} else { - if ((b_470X < 0)) { - goto L6855;} + if ((b_487X < 0)) { + goto L7078;} else { - goto L6848;}}}}}} - L7115: { - if ((536870911 < c_982X)) { + goto L7071;}}}}}} + L7338: { + if ((536870911 < c_995X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_474X; + *((long *) (SstackS)) = arg2_491X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_475X; + *((long *) (SstackS)) = x_492X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - SvalS = (((c_982X)<<2)); + SvalS = (((c_995X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L7114: { - SvalS = ((((0 - c_982X))<<2)); + goto L19093;}} + L7337: { + SvalS = ((((0 - c_995X))<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L7283: { - if ((536870911 < c_985X)) { + goto L19093;} + L7506: { + if ((536870911 < c_998X)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_488X; + *((long *) (SstackS)) = arg2_505X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_489X; + *((long *) (SstackS)) = x_506X; SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - SvalS = (((c_985X)<<2)); + SvalS = (((c_998X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L7282: { - SvalS = ((((0 - c_985X))<<2)); + goto L19093;}} + L7505: { + SvalS = ((((0 - c_998X))<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L25344: { - n_1079X = arg0K0; - SvalS = (((n_1079X)<<2)); + goto L19093;} + L26016: { + n_1107X = arg0K0; + SvalS = (((n_1107X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L21523: { - i_1080X = arg0K0; - rest_list_1081X = arg0K1; - if ((25 == rest_list_1081X)) { - SvalS = new_838X; + goto L19093;} + L22187: { + i_1108X = arg0K0; + rest_list_1109X = arg0K1; + if ((25 == rest_list_1109X)) { + SvalS = new_855X; Scode_pointerS = ((Scode_pointerS) + 2); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - *((long *) ((((char *) (-3 + new_838X))) + (((i_1080X)<<2)))) = (*((long *) (((char *) (-3 + rest_list_1081X))))); - arg0K0 = (1 + i_1080X); - arg0K1 = (*((long *) ((((char *) (-3 + rest_list_1081X))) + 4))); - goto L21523;}} - L13301: { - foo_1082X = arg0K0; - if ((1 == foo_1082X)) { - addr_1083X = ALLOCATE_SPACE(1, 12); - *((long *) addr_1083X) = 2054; - x_1084X = 3 + (((long) (addr_1083X + 4))); - *((long *) (((char *) (-3 + x_1084X)))) = string_853X; - *((long *) ((((char *) (-3 + x_1084X))) + 4)) = bucket_997X; - addr_1085X = (((char *) (-3 + table_852X))) + (((index_996X)<<2)); - S48_WRITE_BARRIER(table_852X, addr_1085X, x_1084X); - *((long *) addr_1085X) = x_1084X; - arg0K0 = x_1084X; - goto L24529;} + *((long *) ((((char *) (-3 + new_855X))) + (((i_1108X)<<2)))) = (*((long *) (((char *) (-3 + rest_list_1109X))))); + arg0K0 = (1 + i_1108X); + arg0K1 = (*((long *) ((((char *) (-3 + rest_list_1109X))) + 4))); + goto L22187;}} + L13943: { + foo_1110X = arg0K0; + if ((1 == foo_1110X)) { + addr_1111X = ALLOCATE_SPACE(1, 12); + *((long *) addr_1111X) = 2054; + x_1112X = 3 + (((long) (addr_1111X + 4))); + *((long *) (((char *) (-3 + x_1112X)))) = string_870X; + *((long *) ((((char *) (-3 + x_1112X))) + 4)) = bucket_1010X; + addr_1113X = (((char *) (-3 + table_869X))) + (((index_1009X)<<2)); + S48_WRITE_BARRIER(table_869X, addr_1113X, x_1112X); + *((long *) addr_1113X) = x_1112X; + arg0K0 = x_1112X; + goto L25201;} else { - s2_1086X = *((long *) (((char *) (-3 + foo_1082X)))); - len_1087X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_853X))) + -4))))>>8); - if ((len_1087X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_1086X))) + -4))))>>8)))) { - if (((!memcmp((void *)(((char *) (-3 + s2_1086X))), (void *)(((char *) (-3 + string_853X))),len_1087X)))) { - arg0K0 = foo_1082X; - goto L24529;} + s2_1114X = *((long *) (((char *) (-3 + foo_1110X)))); + len_1115X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_870X))) + -4))))>>8); + if ((len_1115X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_1114X))) + -4))))>>8)))) { + if (((!memcmp((void *)(((char *) (-3 + s2_1114X))), (void *)(((char *) (-3 + string_870X))),len_1115X)))) { + arg0K0 = foo_1110X; + goto L25201;} else { - goto L13317;}} + goto L13959;}} else { - goto L13317;}}} - L26773: { - if ((0 == (3 & arg2_999X))) { - if (((((arg2_999X)>>2)) < 0)) { + goto L13959;}}} + L27449: { + if ((0 == (3 & arg2_1012X))) { + if (((((arg2_1012X)>>2)) < 0)) { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_999X; + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); + *((long *) (SstackS)) = (((mode_1013X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - arg0K0 = (((arg2_999X)>>2)); - goto L26593;}} + arg0K0 = (((arg2_1012X)>>2)); + goto L27269;}} else { - if ((3 == (3 & arg2_999X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_999X))) + -4))))>>2))))) { - if ((1 == mode_1000X)) { - goto L26651;} + if ((3 == (3 & arg2_1012X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1012X))) + -4))))>>2))))) { + if ((1 == mode_1013X)) { + goto L27327;} else { - if ((3 == mode_1000X)) { - goto L26651;} + if ((3 == mode_1013X)) { + goto L27327;} else { - v_1088X = ps_open_fd((((char *)(((char *) (-3 + arg2_999X))))), 0, &v_1089X); - arg0K0 = v_1088X; - arg0K1 = v_1089X; - goto L26664;}}} + v_1116X = ps_open_fd((((char *)(((char *) (-3 + arg2_1012X))))), 0, &v_1117X); + arg0K0 = v_1116X; + arg0K1 = v_1117X; + goto L27340;}}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_999X; + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); + *((long *) (SstackS)) = (((mode_1013X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} + goto L17320;}} else { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_999X; + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); + *((long *) (SstackS)) = (((mode_1013X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}}} - L34464: { + goto L17320;}}} + L35514: { push_exception_continuationB(5, 1); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 1; - goto L16665;} - L37305: { - obj_1090X = SvalS; - if ((3 == (3 & obj_1090X))) { - if ((5 == (31 & ((((*((long *) ((((char *) (-3 + obj_1090X))) + -4))))>>2))))) { - x_1091X = SvalS; - if ((1 == arg2_1007X)) { + goto L17320;} + L38392: { + obj_1118X = SvalS; + if ((3 == (3 & obj_1118X))) { + if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1118X))) + -4))))>>2))))) { + x_1119X = SvalS; + if ((1 == arg2_1020X)) { arg2K0 = 0; - goto L37322;} + goto L38409;} else { arg2K0 = 1; - goto L37322;}} + goto L38409;}} else { - goto L37325;}} + goto L38412;}} else { - goto L37325;}} - L37325: { + goto L38412;}} + L38412: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg5_1010X; + *((long *) (SstackS)) = arg5_1023X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg4_1009X; + *((long *) (SstackS)) = arg4_1022X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg3_1008X; + *((long *) (SstackS)) = arg3_1021X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_1007X; + *((long *) (SstackS)) = arg2_1020X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 5; - goto L16665;} - L36856: { - if ((3 == (3 & arg4_1014X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1014X))) + -4))))>>2))))) { - arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1014X))) + -4))))>>8))); - goto L36868;} + goto L17320;} + L37934: { + if ((3 == (3 & arg4_1027X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1027X))) + -4))))>>2))))) { + arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1027X))) + -4))))>>8))); + goto L37946;} else { - goto L36864;}} + goto L37942;}} else { - goto L36864;}} - L36848: { - if ((3 == (3 & arg4_1014X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1014X))) + -4))))>>2))))) { - goto L36856;} + goto L37942;}} + L37926: { + if ((3 == (3 & arg4_1027X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1027X))) + -4))))>>2))))) { + goto L37934;} else { arg0K0 = 5; - goto L36739;}} + goto L37809;}} else { arg0K0 = 5; - goto L36739;}} - L36739: { - reason_1092X = arg0K0; - push_exception_continuationB(reason_1092X, 1); - *((long *) (SstackS)) = arg4_1014X; + goto L37809;}} + L37809: { + reason_1120X = arg0K0; + push_exception_continuationB(reason_1120X, 1); + *((long *) (SstackS)) = arg4_1027X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((start_1016X)<<2)); + *((long *) (SstackS)) = (((start_1029X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((count_1017X)<<2)); + *((long *) (SstackS)) = (((count_1030X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = channel_1018X; + *((long *) (SstackS)) = channel_1031X; SstackS = ((SstackS) + -4); arg0K0 = 4; - goto L16665;} - L37587: { + goto L17320;} + L38674: { push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg4_1014X; + *((long *) (SstackS)) = arg4_1027X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg3_1013X; + *((long *) (SstackS)) = arg3_1026X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_1012X; + *((long *) (SstackS)) = arg2_1025X; SstackS = ((SstackS) + -4); *((long *) (SstackS)) = (SvalS); SstackS = ((SstackS) + -4); arg0K0 = 4; - goto L16665;} - L14798: { - v_1093X = arg0K0; - arg0K0 = (-1 + i_1023X); - arg0K1 = v_1093X; - goto L14784;} - L30184: { - reason_1094X = arg0K0; - status_1095X = arg0K1; - push_exception_continuationB(reason_1094X, 1); - *((long *) (SstackS)) = arg3_1030X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_1029X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = comment_string_1032X; - SstackS = ((SstackS) + -4); - merged_arg0K0 = status_1095X; - merged_arg0K1 = key_1028X; - get_error_string_return_tag = 1; - goto get_error_string; - get_error_string_return_1: - x_1096X = get_error_string0_return_value; - *((long *) (SstackS)) = x_1096X; - SstackS = ((SstackS) + -4); - arg0K0 = 4; - goto L16665;} - L34561: { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg3_1030X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = arg2_1029X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (SvalS); - SstackS = ((SstackS) + -4); - arg0K0 = 3; - goto L16665;} - L34133: { - SvalS = 13; + goto L17320;} + L28669: { + val_1121X = arg0K0; + SvalS = val_1121X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L34138: { - if ((0 == (Spending_interruptsS))) { - s48_wait_for_event((((arg2_678X)>>2)), minutesP_1043X); - goto L34133;} - else { - goto L34133;}} - L33385: { - if ((1 == (SvalS))) { - v_1097X = Hlookup2102((Sexported_bindingsS), arg2_1046X, key_1045X); - arg0K0 = v_1097X; - goto L33442;} - else { - v_1098X = Hlookup2083((Simported_bindingsS), arg2_1046X, key_1045X); - arg0K0 = v_1098X; - goto L33442;}} - L33390: { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_1046X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (SvalS); - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - L12880: { - i_1099X = arg0K0; - h_1100X = arg0K1; - if ((i_1099X < n_1049X)) { - arg0K0 = (1 + i_1099X); - arg0K1 = (h_1100X + (((*((unsigned char *) ((((char *) (-3 + arg2_686X))) + i_1099X)))))); - goto L12880;} - else { - index_1101X = 1023 & h_1100X; - bucket_1102X = *((long *) ((((char *) (-3 + table_1048X))) + (((index_1101X)<<2)))); - arg0K0 = 1; - arg0K1 = bucket_1102X; - goto L12844;}} - L27346: { - l_1103X = arg0K0; - i_1104X = arg0K1; - if ((i_1104X < 0)) { - SvalS = string_1052X; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - else { - *((unsigned char *) ((((char *) (-3 + string_1052X))) + i_1104X)) = ((((((*((long *) (((char *) (-3 + l_1103X))))))>>8)))); - arg0K0 = (*((long *) ((((char *) (-3 + l_1103X))) + 4))); - arg0K1 = (-1 + i_1104X); - goto L27346;}} - L30989: { - y_1105X = arg0K0; - if ((y_1105X < (from_index_727X + count_729X))) { - goto L31022;} - else { - if ((3 == (3 & arg3_724X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_724X))) + -4))))>>2))))) { - arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_724X))) + -4))))>>8))); - goto L31004;} - else { - goto L31000;}} - else { - goto L31000;}}} - L30985: { - arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_726X))) + -4))))>>8)); - goto L30989;} - L11692: { - v_1106X = arg3K0; - ps_write_string(v_1106X, out_738X); - goto L29458;} - L11658: { - if ((3 == (3 & thing_936X))) { - if ((1 == (31 & ((((*((long *) ((((char *) (-3 + thing_936X))) + -4))))>>2))))) { - arg3K0 = (((char *)(((char *) (-3 + (*((long *) (((char *) (-3 + thing_936X)))))))))); - goto L11692;} - else { - goto L11666;}} - else { - goto L11666;}} - L21061: { - arg0K0 = (SenvS); - goto L20971;} - L20985: { - value_1107X = arg0K0; - SvalS = value_1107X; - Scode_pointerS = ((Scode_pointerS) + 4); - arg1K0 = (Scode_pointerS); - goto L18438;} - L20884: { - env_1108X = arg0K0; - i_1109X = arg0K1; - if ((0 == i_1109X)) { - count_1110X = *((unsigned char *) ((Scode_pointerS) + (2 + offset_1061X))); - arg0K0 = count_1110X; - arg0K1 = i_1060X; - arg0K2 = (2 + offset_1061X); - goto L20805;} - else { - arg0K0 = (*((long *) (((char *) (-3 + env_1108X))))); - arg0K1 = (-1 + i_1109X); - goto L20884;}} - L16918: { - arg_count_1111X = arg0K0; - obj_1112X = Sinterrupt_handlersS; - if ((3 == (3 & obj_1112X))) { - if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1112X))) + -4))))>>2))))) { - goto L16932;} - else { - goto L17012;}} - else { - goto L17012;}} - L8364: { - channel_1113X = arg0K0; - x_1114X = 1 == (Spending_channels_headS); - if (x_1114X) { - goto L8378;} - else { - Spending_interruptsS = (8 | (Spending_interruptsS)); - if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { - s48_Spending_interruptPS = 0; - if ((s48_Spending_eventsPS)) { - s48_Spending_interruptPS = 1; - goto L8378;} - else { - goto L8378;}} - else { - s48_Spending_interruptPS = 1; - goto L8378;}}} - L15974: { - stack_slots_1115X = arg0K0; - stack_arg_count_1116X = arg0K1; - if ((stack_slots_1115X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { - goto L15976;} - else { - space_1117X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); - v_1118X = AVAILABLEp(space_1117X); - if (v_1118X) { - arg2K0 = 1; - arg0K1 = 0; - goto L16033;} - else { - collect_saving_temps(1, 1, &temp1_1119X); - v_1120X = AVAILABLEp(space_1117X); - if (v_1120X) { - arg2K0 = 1; - arg0K1 = 0; - goto L16033;} - else { - arg2K0 = 0; - arg0K1 = 0; - goto L16033;}}}} - L16394: { - final_stack_arg_count_1121X = arg0K0; - if ((stack_arg_count_784X < final_stack_arg_count_1121X)) { - arg0K0 = final_stack_arg_count_1121X; - goto L16398;} - else { - arg0K0 = stack_arg_count_784X; - goto L16398;}} - L28553: { - SvalS = 1; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - L28752: { - SvalS = 1; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - L28951: { - SvalS = 1; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;} - L6848: { - if ((536870911 < c_980X)) { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_467X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_468X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - else { - SvalS = (((c_980X)<<2)); - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;}} - L6855: { - if ((536870912 < c_980X)) { - push_exception_continuationB(5, 1); - *((long *) (SstackS)) = arg2_467X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_468X; - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - else { - SvalS = ((((0 - c_980X))<<2)); - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;}} - L24529: { + goto L19093;} + L30072: { val_1122X = arg0K0; SvalS = val_1122X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L13317: { - arg0K0 = (*((long *) ((((char *) (-3 + foo_1082X))) + 4))); - goto L13301;} - L26593: { - index_1123X = arg0K0; - channel_1124X = make_registered_channel(mode_1000X, arg2_999X, index_1123X, key_998X, &reason_1125X); - if ((1 == channel_1124X)) { - if ((3 == (3 & arg2_999X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_999X))) + -4))))>>2))))) { - if ((1 == mode_1000X)) { - goto L26708;} - else { - if ((3 == mode_1000X)) { - goto L26708;} - else { - v_1126X = ps_close_fd(index_1123X); - arg0K0 = v_1126X; - goto L26703;}}} - else { - push_exception_continuationB(reason_1125X, 1); - *((long *) (SstackS)) = arg2_999X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} - else { - push_exception_continuationB(reason_1125X, 1); - *((long *) (SstackS)) = arg2_999X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;}} + goto L19093;} + L34999: { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = (SvalS); + SstackS = ((SstackS) + -4); + arg0K0 = 1; + goto L17320;} + L34176: { + val_1123X = arg0K0; + SvalS = val_1123X; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + L8539: { + if ((1 == (Spending_input_channels_headS))) { + Spending_interruptsS = (-9 & (Spending_interruptsS)); + goto L8560;} else { - SvalS = channel_1124X; - Scode_pointerS = ((Scode_pointerS) + 1); - arg1K0 = (Scode_pointerS); - goto L18438;}} - L26651: { - v_1127X = ps_open_fd((((char *)(((char *) (-3 + arg2_999X))))), 1, &v_1128X); - arg0K0 = v_1127X; + goto L8560;}} + L8550: { + if ((1 == (Spending_output_channels_headS))) { + Spending_interruptsS = (-17 & (Spending_interruptsS)); + goto L8560;} + else { + goto L8560;}} + L8566: { + ch_1124X = arg0K0; + prev_1125X = arg0K1; + if ((1 == ch_1124X)) { + addr_1126X = (((char *) (-3 + channel_659X))) + 16; + S48_WRITE_BARRIER(channel_659X, addr_1126X, 1); + *((long *) addr_1126X) = 1; + n_1127X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_659X))) + 8))))>>2))); + arg0K0 = (((n_1127X)<<2)); + goto L34176;} + else { + if ((ch_1124X == channel_659X)) { + if (inputP_886X) { + if ((ch_1124X == (Spending_input_channels_tailS))) { + Spending_input_channels_tailS = prev_1125X; + goto L8597;} + else { + goto L8597;}} + else { + if ((ch_1124X == (Spending_output_channels_tailS))) { + Spending_output_channels_tailS = prev_1125X; + goto L8597;} + else { + goto L8597;}}} + else { + arg0K0 = (*((long *) ((((char *) (-3 + ch_1124X))) + 12))); + arg0K1 = ch_1124X; + goto L8566;}}} + L15446: { + v_1128X = arg0K0; + arg0K0 = (-1 + i_1050X); arg0K1 = v_1128X; - goto L26664;} - L26664: { - channel_1129X = arg0K0; - status_1130X = arg0K1; + goto L15432;} + L31214: { + resume_proc_1129X = arg0K0; + status_1130X = s48_write_image(resume_proc_1129X, port_1061X); if ((status_1130X == NO_ERRORS)) { - arg0K0 = channel_1129X; - goto L26593;} - else { - if ((status_1130X == ENOENT)) { - push_exception_continuationB(10, 1); - *((long *) (SstackS)) = arg2_999X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); - SstackS = ((SstackS) + -4); - arg0K0 = 2; - goto L16665;} - else { - push_exception_continuationB(25, 1); - *((long *) (SstackS)) = arg2_999X; - SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); - SstackS = ((SstackS) + -4); - merged_arg0K0 = status_1130X; - merged_arg0K1 = key_998X; - get_error_string_return_tag = 2; - goto get_error_string; - get_error_string_return_2: - x_1131X = get_error_string0_return_value; - *((long *) (SstackS)) = x_1131X; - SstackS = ((SstackS) + -4); - arg0K0 = 3; - goto L16665;}}} - L37322: { - waitP_1132X = arg2K0; - start_1133X = ((arg4_1009X)>>2); - count_1134X = ((arg3_1008X)>>2); - if ((4 == (*((long *) (((char *) (-3 + x_1091X))))))) { - if ((3 == (3 & arg5_1010X))) { - if ((0 == (128 & (*((long *) ((((char *) (-3 + arg5_1010X))) + -4)))))) { - if ((3 == (3 & arg5_1010X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1010X))) + -4))))>>2))))) { - goto L36458;} - else { - goto L36450;}} - else { - goto L36450;}} - else { - arg0K0 = 5; - goto L36341;}} - else { - arg0K0 = 5; - goto L36341;}} - else { - arg0K0 = 5; - goto L36341;}} - L36868: { - length_1135X = arg0K0; - if ((length_1135X < (start_1016X + count_1017X))) { - arg0K0 = 7; - goto L36739;} - else { - got_1136X = ps_write_fd(((((*((long *) ((((char *) (-3 + channel_1018X))) + 8))))>>2)), ((((char *) (-3 + arg4_1014X))) + start_1016X), count_1017X, &pendingP_1137X, &status_1138X); - if ((status_1138X == NO_ERRORS)) { - if (pendingP_1137X) { - addr_1139X = (((char *) (-3 + channel_1018X))) + 16; - S48_WRITE_BARRIER(channel_1018X, addr_1139X, 5); - *((long *) addr_1139X) = 5; - s48_Spending_interruptPS = 0; - Senabled_interruptsS = 0; - arg0K0 = 13; - goto L36739;} - else { - SvalS = (((got_1136X)<<2)); + status_1131X = ps_close(port_1061X); + if ((status_1131X == NO_ERRORS)) { + undumpables_1132X = s48_undumpable_records(&undumpable_count_1133X); + if ((0 == undumpable_count_1133X)) { + SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} + goto L19093;} + else { + push_exception_continuationB(26, 1); + *((long *) (SstackS)) = arg3_1057X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = resume_proc_1129X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = comment_string_1059X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = undumpables_1132X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((undumpable_count_1133X)<<2)); + SstackS = ((SstackS) + -4); + arg0K0 = 5; + goto L17320;}} + else { + arg0K0 = 25; + arg0K1 = status_1131X; + goto L31133;}} + else { + status_1134X = ps_close(port_1061X); + if ((status_1134X == NO_ERRORS)) { + arg0K0 = 25; + arg0K1 = status_1130X; + goto L31133;} + else { + ps_write_string("Unable to close image file", (stderr)); + { long ignoreXX; + PS_WRITE_CHAR(10, (stderr), ignoreXX) } + arg0K0 = 25; + arg0K1 = status_1130X; + goto L31133;}}} + L31133: { + reason_1135X = arg0K0; + status_1136X = arg0K1; + push_exception_continuationB(reason_1135X, 1); + *((long *) (SstackS)) = (((status_1136X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = arg3_1057X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = arg2_1056X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = comment_string_1059X; + SstackS = ((SstackS) + -4); + merged_arg0K0 = status_1136X; + merged_arg0K1 = key_1055X; + get_error_string_return_tag = 2; + goto get_error_string; + get_error_string_return_2: + x_1137X = get_error_string0_return_value; + *((long *) (SstackS)) = x_1137X; + SstackS = ((SstackS) + -4); + arg0K0 = 5; + goto L17320;} + L35611: { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg3_1057X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = arg2_1056X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (SvalS); + SstackS = ((SstackS) + -4); + arg0K0 = 3; + goto L17320;} + L35183: { + SvalS = 13; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + L35188: { + if ((0 == (Spending_interruptsS))) { + s48_wait_for_event((((arg2_695X)>>2)), minutesP_1067X); + goto L35183;} + else { + goto L35183;}} + L34359: { + if ((1 == (SvalS))) { + v_1138X = Hlookup2142((Sexported_bindingsS), arg2_1070X, key_1069X); + arg0K0 = v_1138X; + goto L34416;} + else { + v_1139X = Hlookup2123((Simported_bindingsS), arg2_1070X, key_1069X); + arg0K0 = v_1139X; + goto L34416;}} + L34364: { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_1070X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (SvalS); + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + L13522: { + i_1140X = arg0K0; + h_1141X = arg0K1; + if ((i_1140X < n_1073X)) { + arg0K0 = (1 + i_1140X); + arg0K1 = (h_1141X + (((*((unsigned char *) ((((char *) (-3 + arg2_703X))) + i_1140X)))))); + goto L13522;} + else { + index_1142X = 1023 & h_1141X; + bucket_1143X = *((long *) ((((char *) (-3 + table_1072X))) + (((index_1142X)<<2)))); + arg0K0 = 1; + arg0K1 = bucket_1143X; + goto L13486;}} + L28031: { + l_1144X = arg0K0; + i_1145X = arg0K1; + if ((i_1145X < 0)) { + SvalS = string_1076X; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + else { + *((unsigned char *) ((((char *) (-3 + string_1076X))) + i_1145X)) = ((((((*((long *) (((char *) (-3 + l_1144X))))))>>8)))); + arg0K0 = (*((long *) ((((char *) (-3 + l_1144X))) + 4))); + arg0K1 = (-1 + i_1145X); + goto L28031;}} + L31963: { + y_1146X = arg0K0; + if ((y_1146X < (from_index_744X + count_746X))) { + goto L31996;} + else { + if ((3 == (3 & arg3_741X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_741X))) + -4))))>>2))))) { + arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_741X))) + -4))))>>8))); + goto L31978;} + else { + goto L31974;}} + else { + goto L31974;}}} + L31959: { + arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_743X))) + -4))))>>8)); + goto L31963;} + L12334: { + v_1147X = arg3K0; + ps_write_string(v_1147X, out_755X); + goto L30394;} + L12300: { + if ((3 == (3 & thing_949X))) { + if ((1 == (31 & ((((*((long *) ((((char *) (-3 + thing_949X))) + -4))))>>2))))) { + arg3K0 = (((char *)(((char *) (-3 + (*((long *) (((char *) (-3 + thing_949X)))))))))); + goto L12334;} + else { + goto L12308;}} + else { + goto L12308;}} + L21725: { + arg0K0 = (SenvS); + goto L21635;} + L21649: { + value_1148X = arg0K0; + SvalS = value_1148X; + Scode_pointerS = ((Scode_pointerS) + 4); + arg1K0 = (Scode_pointerS); + goto L19093;} + L21548: { + env_1149X = arg0K0; + i_1150X = arg0K1; + if ((0 == i_1150X)) { + count_1151X = *((unsigned char *) ((Scode_pointerS) + (2 + offset_1085X))); + arg0K0 = count_1151X; + arg0K1 = i_1084X; + arg0K2 = (2 + offset_1085X); + goto L21469;} + else { + arg0K0 = (*((long *) (((char *) (-3 + env_1149X))))); + arg0K1 = (-1 + i_1150X); + goto L21548;}} + L17573: { + arg_count_1152X = arg0K0; + obj_1153X = Sinterrupt_handlersS; + if ((3 == (3 & obj_1153X))) { + if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1153X))) + -4))))>>2))))) { + goto L17587;} + else { + goto L17667;}} + else { + goto L17667;}} + L8820: { + channel_1154X = arg0K0; + x_1155X = 1 == (Spending_input_channels_headS); + if (x_1155X) { + goto L8834;} + else { + PS_SHIFT_LEFT(1, i_1089X, x_1156X) + Spending_interruptsS = ((Spending_interruptsS) | x_1156X); + if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { + s48_Spending_interruptPS = 0; + if ((s48_Spending_eventsPS)) { + s48_Spending_interruptPS = 1; + goto L8834;} + else { + goto L8834;}} + else { + s48_Spending_interruptPS = 1; + goto L8834;}}} + L8848: { + channel_1157X = arg0K0; + x_1158X = 1 == (Spending_output_channels_headS); + if (x_1158X) { + goto L8862;} + else { + PS_SHIFT_LEFT(1, i_1089X, x_1159X) + Spending_interruptsS = ((Spending_interruptsS) | x_1159X); + if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { + s48_Spending_interruptPS = 0; + if ((s48_Spending_eventsPS)) { + s48_Spending_interruptPS = 1; + goto L8862;} + else { + goto L8862;}} + else { + s48_Spending_interruptPS = 1; + goto L8862;}}} + L8895: { + *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17573;} + L16629: { + stack_slots_1160X = arg0K0; + stack_arg_count_1161X = arg0K1; + if ((stack_slots_1160X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { + goto L16631;} + else { + space_1162X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); + v_1163X = AVAILABLEp(space_1162X); + if (v_1163X) { + arg2K0 = 1; + arg0K1 = 0; + goto L16688;} + else { + collect_saving_temps(1, 1, &temp1_1164X); + v_1165X = AVAILABLEp(space_1162X); + if (v_1165X) { + arg2K0 = 1; + arg0K1 = 0; + goto L16688;} + else { + arg2K0 = 0; + arg0K1 = 0; + goto L16688;}}}} + L17049: { + final_stack_arg_count_1166X = arg0K0; + if ((stack_arg_count_801X < final_stack_arg_count_1166X)) { + arg0K0 = final_stack_arg_count_1166X; + goto L17053;} + else { + arg0K0 = stack_arg_count_801X; + goto L17053;}} + L29364: { + SvalS = 1; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + L29563: { + SvalS = 1; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + L29762: { + SvalS = 1; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + L7071: { + if ((536870911 < c_993X)) { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_484X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_485X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + else { + SvalS = (((c_993X)<<2)); + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;}} + L7078: { + if ((536870912 < c_993X)) { + push_exception_continuationB(5, 1); + *((long *) (SstackS)) = arg2_484X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = x_485X; + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} + else { + SvalS = ((((0 - c_993X))<<2)); + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;}} + L25201: { + val_1167X = arg0K0; + SvalS = val_1167X; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;} + L13959: { + arg0K0 = (*((long *) ((((char *) (-3 + foo_1110X))) + 4))); + goto L13943;} + L27269: { + index_1168X = arg0K0; + channel_1169X = make_registered_channel(mode_1013X, arg2_1012X, index_1168X, key_1011X, &reason_1170X); + if ((1 == channel_1169X)) { + if ((3 == (3 & arg2_1012X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1012X))) + -4))))>>2))))) { + if ((1 == mode_1013X)) { + goto L27384;} + else { + if ((3 == mode_1013X)) { + goto L27384;} + else { + v_1171X = ps_close_fd(index_1168X); + arg0K0 = v_1171X; + goto L27379;}}} + else { + push_exception_continuationB(reason_1170X, 1); + *((long *) (SstackS)) = arg2_1012X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((mode_1013X)<<2)); + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + else { + push_exception_continuationB(reason_1170X, 1); + *((long *) (SstackS)) = arg2_1012X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((mode_1013X)<<2)); + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;}} + else { + SvalS = channel_1169X; + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;}} + L27327: { + v_1172X = ps_open_fd((((char *)(((char *) (-3 + arg2_1012X))))), 1, &v_1173X); + arg0K0 = v_1172X; + arg0K1 = v_1173X; + goto L27340;} + L27340: { + channel_1174X = arg0K0; + status_1175X = arg0K1; + if ((status_1175X == NO_ERRORS)) { + arg0K0 = channel_1174X; + goto L27269;} + else { + if ((status_1175X == ENOENT)) { + push_exception_continuationB(10, 1); + *((long *) (SstackS)) = arg2_1012X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((mode_1013X)<<2)); + SstackS = ((SstackS) + -4); + arg0K0 = 2; + goto L17320;} else { push_exception_continuationB(25, 1); - *((long *) (SstackS)) = arg4_1014X; + *((long *) (SstackS)) = (((status_1175X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((start_1016X)<<2)); + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((count_1017X)<<2)); + *((long *) (SstackS)) = (((mode_1013X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = channel_1018X; - SstackS = ((SstackS) + -4); - merged_arg0K0 = status_1138X; + merged_arg0K0 = status_1175X; merged_arg0K1 = key_1011X; get_error_string_return_tag = 3; goto get_error_string; get_error_string_return_3: - x_1140X = get_error_string0_return_value; - *((long *) (SstackS)) = x_1140X; + x_1176X = get_error_string0_return_value; + *((long *) (SstackS)) = x_1176X; SstackS = ((SstackS) + -4); + arg0K0 = 4; + goto L17320;}}} + L38409: { + waitP_1177X = arg2K0; + start_1178X = ((arg4_1022X)>>2); + count_1179X = ((arg3_1021X)>>2); + if ((4 == (*((long *) (((char *) (-3 + x_1119X))))))) { + if ((3 == (3 & arg5_1023X))) { + if ((0 == (128 & (*((long *) ((((char *) (-3 + arg5_1023X))) + -4)))))) { + if ((3 == (3 & arg5_1023X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1023X))) + -4))))>>2))))) { + goto L37519;} + else { + goto L37511;}} + else { + goto L37511;}} + else { + arg0K0 = 5; + goto L37394;}} + else { arg0K0 = 5; - goto L16665;}}} - L36864: { - arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1014X))) + -4))))>>8)); - goto L36868;} - L33442: { - val_1141X = arg0K0; - SvalS = val_1141X; + goto L37394;}} + else { + arg0K0 = 5; + goto L37394;}} + L37946: { + length_1180X = arg0K0; + if ((length_1180X < (start_1029X + count_1030X))) { + arg0K0 = 7; + goto L37809;} + else { + got_1181X = ps_write_fd(((((*((long *) ((((char *) (-3 + channel_1031X))) + 8))))>>2)), ((((char *) (-3 + arg4_1027X))) + start_1029X), count_1030X, &pendingP_1182X, &status_1183X); + if ((status_1183X == NO_ERRORS)) { + if (pendingP_1182X) { + addr_1184X = (((char *) (-3 + channel_1031X))) + 16; + S48_WRITE_BARRIER(channel_1031X, addr_1184X, 5); + *((long *) addr_1184X) = 5; + s48_Spending_interruptPS = 0; + Senabled_interruptsS = 0; + arg0K0 = 13; + goto L37809;} + else { + SvalS = (((got_1181X)<<2)); + Scode_pointerS = ((Scode_pointerS) + 1); + arg1K0 = (Scode_pointerS); + goto L19093;}} + else { + push_exception_continuationB(25, 1); + *((long *) (SstackS)) = (((status_1183X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = arg4_1027X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((start_1029X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (((count_1030X)<<2)); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = channel_1031X; + SstackS = ((SstackS) + -4); + merged_arg0K0 = status_1183X; + merged_arg0K1 = key_1024X; + get_error_string_return_tag = 4; + goto get_error_string; + get_error_string_return_4: + x_1185X = get_error_string0_return_value; + *((long *) (SstackS)) = x_1185X; + SstackS = ((SstackS) + -4); + arg0K0 = 6; + goto L17320;}}} + L37942: { + arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1027X))) + -4))))>>8)); + goto L37946;} + L8560: { + arg0K0 = (*((long *) ((((char *) (-3 + channel_659X))) + 16))); + goto L34176;} + L8597: { + val_1186X = *((long *) ((((char *) (-3 + ch_1124X))) + 12)); + addr_1187X = (((char *) (-3 + prev_1125X))) + 12; + S48_WRITE_BARRIER(prev_1125X, addr_1187X, val_1186X); + *((long *) addr_1187X) = val_1186X; + addr_1188X = (((char *) (-3 + ch_1124X))) + 12; + S48_WRITE_BARRIER(ch_1124X, addr_1188X, 1); + *((long *) addr_1188X) = 1; + arg0K0 = (*((long *) ((((char *) (-3 + ch_1124X))) + 16))); + goto L34176;} + L34416: { + val_1189X = arg0K0; + SvalS = val_1189X; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L12844: { - previous_foo_1142X = arg0K0; - foo_1143X = arg0K1; - if ((1 == foo_1143X)) { - goto L23940;} + goto L19093;} + L13486: { + previous_foo_1190X = arg0K0; + foo_1191X = arg0K1; + if ((1 == foo_1191X)) { + goto L24612;} else { - s2_1144X = *((long *) (((char *) (-3 + foo_1143X)))); - len_1145X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_686X))) + -4))))>>8); - if ((len_1145X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_1144X))) + -4))))>>8)))) { - if (((!memcmp((void *)(((char *) (-3 + s2_1144X))), (void *)(((char *) (-3 + arg2_686X))),len_1145X)))) { - if ((1 == previous_foo_1142X)) { - value_1146X = *((long *) ((((char *) (-3 + foo_1143X))) + 12)); - addr_1147X = (((char *) (-3 + table_1048X))) + (((index_1101X)<<2)); - S48_WRITE_BARRIER(table_1048X, addr_1147X, value_1146X); - *((long *) addr_1147X) = value_1146X; - goto L23940;} + s2_1192X = *((long *) (((char *) (-3 + foo_1191X)))); + len_1193X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_703X))) + -4))))>>8); + if ((len_1193X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_1192X))) + -4))))>>8)))) { + if (((!memcmp((void *)(((char *) (-3 + s2_1192X))), (void *)(((char *) (-3 + arg2_703X))),len_1193X)))) { + if ((1 == previous_foo_1190X)) { + value_1194X = *((long *) ((((char *) (-3 + foo_1191X))) + 12)); + addr_1195X = (((char *) (-3 + table_1072X))) + (((index_1142X)<<2)); + S48_WRITE_BARRIER(table_1072X, addr_1195X, value_1194X); + *((long *) addr_1195X) = value_1194X; + goto L24612;} else { - val_1148X = *((long *) ((((char *) (-3 + foo_1143X))) + 12)); - addr_1149X = (((char *) (-3 + previous_foo_1142X))) + 12; - S48_WRITE_BARRIER(previous_foo_1142X, addr_1149X, val_1148X); - *((long *) addr_1149X) = val_1148X; - goto L23940;}} + val_1196X = *((long *) ((((char *) (-3 + foo_1191X))) + 12)); + addr_1197X = (((char *) (-3 + previous_foo_1190X))) + 12; + S48_WRITE_BARRIER(previous_foo_1190X, addr_1197X, val_1196X); + *((long *) addr_1197X) = val_1196X; + goto L24612;}} else { - goto L12906;}} + goto L13548;}} else { - goto L12906;}}} - L31004: { - y_1150X = arg0K0; - if ((y_1150X < (to_index_728X + count_729X))) { - goto L31022;} + goto L13548;}}} + L31978: { + y_1198X = arg0K0; + if ((y_1198X < (to_index_745X + count_746X))) { + goto L31996;} else { - memcpy((void *)((((char *) (-3 + arg3_724X))) + to_index_728X), (void *)((((char *) (-3 + arg5_726X))) + from_index_727X),count_729X); + memcpy((void *)((((char *) (-3 + arg3_741X))) + to_index_745X), (void *)((((char *) (-3 + arg5_743X))) + from_index_744X),count_746X); SvalS = 13; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}} - L31000: { - arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_724X))) + -4))))>>8)); - goto L31004;} - L11666: { - if ((1 == thing_936X)) { - goto L11669;} + goto L19093;}} + L31974: { + arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_741X))) + -4))))>>8)); + goto L31978;} + L12308: { + if ((1 == thing_949X)) { + goto L12311;} else { - if ((5 == thing_936X)) { - goto L11669;} + if ((5 == thing_949X)) { + goto L12311;} else { - if ((25 == thing_936X)) { + if ((25 == thing_949X)) { arg3K0 = "()"; - goto L11692;} + goto L12334;} else { - if ((3 == (3 & thing_936X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + thing_936X))) + -4))))>>2))))) { + if ((3 == (3 & thing_949X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + thing_949X))) + -4))))>>2))))) { arg3K0 = "(...)"; - goto L11692;} + goto L12334;} else { - goto L11682;}} + goto L12324;}} else { - goto L11682;}}}}} - L20805: { - count_1151X = arg0K0; - i_1152X = arg0K1; - offset_1153X = arg0K2; - if ((0 == count_1151X)) { - arg0K0 = i_1152X; - arg0K1 = offset_1153X; - arg0K2 = env_1108X; - goto L20788;} + goto L12324;}}}}} + L21469: { + count_1199X = arg0K0; + i_1200X = arg0K1; + offset_1201X = arg0K2; + if ((0 == count_1199X)) { + arg0K0 = i_1200X; + arg0K1 = offset_1201X; + arg0K2 = env_1149X; + goto L21452;} else { - value_1154X = *((long *) ((((char *) (-3 + env_1108X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1153X)))))<<2)))); - addr_1155X = (((char *) (-3 + new_env_762X))) + (((i_1152X)<<2)); - S48_WRITE_BARRIER(new_env_762X, addr_1155X, value_1154X); - *((long *) addr_1155X) = value_1154X; - arg0K0 = (-1 + count_1151X); - arg0K1 = (1 + i_1152X); - arg0K2 = (1 + offset_1153X); - goto L20805;}} - L16932: { + value_1202X = *((long *) ((((char *) (-3 + env_1149X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1201X)))))<<2)))); + addr_1203X = (((char *) (-3 + new_env_779X))) + (((i_1200X)<<2)); + S48_WRITE_BARRIER(new_env_779X, addr_1203X, value_1202X); + *((long *) addr_1203X) = value_1202X; + arg0K0 = (-1 + count_1199X); + arg0K1 = (1 + i_1200X); + arg0K2 = (1 + offset_1201X); + goto L21469;}} + L17587: { Senabled_interruptsS = 0; if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { s48_Spending_interruptPS = 0; if ((s48_Spending_eventsPS)) { s48_Spending_interruptPS = 1; - goto L16934;} + goto L17589;} else { - goto L16934;}} + goto L17589;}} else { s48_Spending_interruptPS = 1; - goto L16934;}} - L17012: { + goto L17589;}} + L17667: { ps_error("interrupt handler is not a vector", 0); - goto L16932;} - L8378: { - *((long *) (SstackS)) = channel_1113X; + goto L17587;} + L8834: { + *((long *) (SstackS)) = channel_1154X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (*((long *) ((((char *) (-3 + channel_1113X))) + 16))); + *((long *) (SstackS)) = (*((long *) ((((char *) (-3 + channel_1154X))) + 16))); SstackS = ((SstackS) + -4); *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); SstackS = ((SstackS) + -4); arg0K0 = 3; - goto L16918;} - L15976: { + goto L17573;} + L8862: { + *((long *) (SstackS)) = channel_1157X; + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = (*((long *) ((((char *) (-3 + channel_1157X))) + 16))); + SstackS = ((SstackS) + -4); + *((long *) (SstackS)) = ((((Senabled_interruptsS))<<2)); + SstackS = ((SstackS) + -4); + arg0K0 = 3; + goto L17573;} + L16631: { if ((s48_Spending_interruptPS)) { if ((s48_Spending_eventsPS)) { s48_Spending_eventsPS = 0; check_events_return_tag = 3; goto check_events; check_events_return_3: - v_1156X = check_events0_return_value; - if (v_1156X) { - arg0K0 = stack_arg_count_1116X; - goto L16894;} + v_1204X = check_events0_return_value; + if (v_1204X) { + arg0K0 = stack_arg_count_1161X; + goto L17549;} else { - goto L15980;}} + goto L16635;}} else { - arg0K0 = stack_arg_count_1116X; - goto L16894;}} + arg0K0 = stack_arg_count_1161X; + goto L17549;}} else { - goto L15980;}} - L16033: { - okayP_1157X = arg2K0; - key_1158X = arg0K1; - if (okayP_1157X) { - arg0K0 = key_1158X; - goto L15987;} + goto L16635;}} + L16688: { + okayP_1205X = arg2K0; + key_1206X = arg0K1; + if (okayP_1205X) { + arg0K0 = key_1206X; + goto L16642;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_1158X; - goto L15987;}} - L16398: { - v_1159X = arg0K0; - merged_arg0K0 = v_1159X; - merged_arg0K1 = stack_arg_count_784X; - merged_arg0K2 = list_args_785X; - merged_arg0K3 = list_arg_count_786X; + arg0K0 = key_1206X; + goto L16642;}} + L17053: { + v_1207X = arg0K0; + merged_arg0K0 = v_1207X; + merged_arg0K1 = stack_arg_count_801X; + merged_arg0K2 = list_args_802X; + merged_arg0K3 = list_arg_count_803X; rest_list_setup_return_tag = 2; goto rest_list_setup; rest_list_setup_return_2: - *((long *) (SstackS)) = (((final_stack_arg_count_1121X)<<2)); + *((long *) (SstackS)) = (((final_stack_arg_count_1166X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((total_arg_count_790X)<<2)); + *((long *) (SstackS)) = (((total_arg_count_807X)<<2)); SstackS = ((SstackS) + -4); - arg0K0 = skip_1077X; - arg0K1 = (3 + final_stack_arg_count_1121X); - goto L16361;} - L26708: { - v_1160X = ps_close_fd(index_1123X); - arg0K0 = v_1160X; - goto L26703;} - L26703: { - status_1161X = arg0K0; - if ((status_1161X == NO_ERRORS)) { - push_exception_continuationB(reason_1125X, 1); - *((long *) (SstackS)) = arg2_999X; + arg0K0 = skip_1105X; + arg0K1 = (3 + final_stack_arg_count_1166X); + goto L17016;} + L27384: { + v_1208X = ps_close_fd(index_1168X); + arg0K0 = v_1208X; + goto L27379;} + L27379: { + status_1209X = arg0K0; + if ((status_1209X == NO_ERRORS)) { + push_exception_continuationB(reason_1170X, 1); + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); + *((long *) (SstackS)) = (((mode_1013X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;} + goto L17320;} else { - channel_close_error(status_1161X, index_1123X, arg2_999X); - push_exception_continuationB(reason_1125X, 1); - *((long *) (SstackS)) = arg2_999X; + channel_close_error(status_1209X, index_1168X, arg2_1012X); + push_exception_continuationB(reason_1170X, 1); + *((long *) (SstackS)) = arg2_1012X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((mode_1000X)<<2)); + *((long *) (SstackS)) = (((mode_1013X)<<2)); SstackS = ((SstackS) + -4); arg0K0 = 2; - goto L16665;}} - L36458: { - if ((3 == (3 & arg5_1010X))) { - if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1010X))) + -4))))>>2))))) { - arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1010X))) + -4))))>>8))); - goto L36470;} + goto L17320;}} + L37519: { + if ((3 == (3 & arg5_1023X))) { + if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1023X))) + -4))))>>2))))) { + arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1023X))) + -4))))>>8))); + goto L37531;} else { - goto L36466;}} + goto L37527;}} else { - goto L36466;}} - L36450: { - if ((3 == (3 & arg5_1010X))) { - if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1010X))) + -4))))>>2))))) { - goto L36458;} + goto L37527;}} + L37511: { + if ((3 == (3 & arg5_1023X))) { + if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1023X))) + -4))))>>2))))) { + goto L37519;} else { arg0K0 = 5; - goto L36341;}} + goto L37394;}} else { arg0K0 = 5; - goto L36341;}} - L36341: { - reason_1162X = arg0K0; - push_exception_continuationB(reason_1162X, 1); - *((long *) (SstackS)) = arg5_1010X; + goto L37394;}} + L37394: { + reason_1210X = arg0K0; + push_exception_continuationB(reason_1210X, 1); + *((long *) (SstackS)) = arg5_1023X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((start_1133X)<<2)); + *((long *) (SstackS)) = (((start_1178X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((count_1134X)<<2)); + *((long *) (SstackS)) = (((count_1179X)<<2)); SstackS = ((SstackS) + -4); - if (waitP_1132X) { + if (waitP_1177X) { arg0K0 = 5; - goto L36356;} + goto L37409;} else { arg0K0 = 1; - goto L36356;}} - L23940: { + goto L37409;}} + L24612: { Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} - L12906: { - arg0K0 = foo_1143X; - arg0K1 = (*((long *) ((((char *) (-3 + foo_1143X))) + 12))); - goto L12844;} - L11669: { - if ((1 == thing_936X)) { + goto L19093;} + L13548: { + arg0K0 = foo_1191X; + arg0K1 = (*((long *) ((((char *) (-3 + foo_1191X))) + 12))); + goto L13486;} + L12311: { + if ((1 == thing_949X)) { arg3K0 = "#f"; - goto L11692;} + goto L12334;} else { arg3K0 = "#t"; - goto L11692;}} - L11682: { - if ((3 == (3 & thing_936X))) { - if ((2 == (31 & ((((*((long *) ((((char *) (-3 + thing_936X))) + -4))))>>2))))) { + goto L12334;}} + L12324: { + if ((3 == (3 & thing_949X))) { + if ((2 == (31 & ((((*((long *) ((((char *) (-3 + thing_949X))) + -4))))>>2))))) { arg3K0 = "#(...)"; - goto L11692;} + goto L12334;} else { - goto L11686;}} + goto L12328;}} else { - goto L11686;}} - L16934: { - SvalS = (*((long *) ((((char *) (-3 + (Sinterrupt_handlersS)))) + (((i_1065X)<<2))))); - obj_1163X = SvalS; - if ((3 == (3 & obj_1163X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1163X))) + -4))))>>2))))) { - goto L16951;} + goto L12328;}} + L17589: { + SvalS = (*((long *) ((((char *) (-3 + (Sinterrupt_handlersS)))) + (((i_1089X)<<2))))); + obj_1211X = SvalS; + if ((3 == (3 & obj_1211X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1211X))) + -4))))>>2))))) { + goto L17606;} else { - goto L17037;}} + goto L17692;}} else { - goto L17037;}} - L15980: { + goto L17692;}} + L16635: { arg1K0 = (Scode_pointerS); - goto L18438;} - L15987: { - v_1164X = arg0K0; - merged_arg0K0 = v_1164X; + goto L19093;} + L16642: { + v_1212X = arg0K0; + merged_arg0K0 = v_1212X; copy_stack_into_heap_return_tag = 3; goto copy_stack_into_heap; copy_stack_into_heap_return_3: - if ((stack_slots_1115X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { - goto L15976;} + if ((stack_slots_1160X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { + goto L16631;} else { ps_error("VM's stack is too small (how can this happen?)", 0); - goto L15976;}} - L36470: { - length_1165X = arg0K0; - if ((length_1165X < (start_1133X + count_1134X))) { + goto L16631;}} + L37531: { + length_1213X = arg0K0; + if ((length_1213X < (start_1178X + count_1179X))) { arg0K0 = 7; - goto L36341;} + goto L37394;} else { - got_1166X = ps_read_fd(((((*((long *) ((((char *) (-3 + x_1091X))) + 8))))>>2)), ((((char *) (-3 + arg5_1010X))) + start_1133X), count_1134X, waitP_1132X, &eofP_1167X, &pendingP_1168X, &status_1169X); - if ((status_1169X == NO_ERRORS)) { - if (eofP_1167X) { + got_1214X = ps_read_fd(((((*((long *) ((((char *) (-3 + x_1119X))) + 8))))>>2)), ((((char *) (-3 + arg5_1023X))) + start_1178X), count_1179X, waitP_1177X, &eofP_1215X, &pendingP_1216X, &status_1217X); + if ((status_1217X == NO_ERRORS)) { + if (eofP_1215X) { SvalS = 21; Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;} + goto L19093;} else { - if (pendingP_1168X) { - addr_1170X = (((char *) (-3 + x_1091X))) + 16; - S48_WRITE_BARRIER(x_1091X, addr_1170X, 5); - *((long *) addr_1170X) = 5; + if (pendingP_1216X) { + addr_1218X = (((char *) (-3 + x_1119X))) + 16; + S48_WRITE_BARRIER(x_1119X, addr_1218X, 5); + *((long *) addr_1218X) = 5; s48_Spending_interruptPS = 0; Senabled_interruptsS = 0; arg0K0 = 13; - goto L36341;} + goto L37394;} else { - SvalS = (((got_1166X)<<2)); + SvalS = (((got_1214X)<<2)); Scode_pointerS = ((Scode_pointerS) + 1); arg1K0 = (Scode_pointerS); - goto L18438;}}} + goto L19093;}}} else { push_exception_continuationB(25, 1); - *((long *) (SstackS)) = arg5_1010X; + *((long *) (SstackS)) = (((status_1217X)<<2)); SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((start_1133X)<<2)); + *((long *) (SstackS)) = arg5_1023X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = (((count_1134X)<<2)); + *((long *) (SstackS)) = (((start_1178X)<<2)); SstackS = ((SstackS) + -4); - if (waitP_1132X) { + *((long *) (SstackS)) = (((count_1179X)<<2)); + SstackS = ((SstackS) + -4); + if (waitP_1177X) { arg0K0 = 5; - goto L36393;} + goto L37450;} else { arg0K0 = 1; - goto L36393;}}}} - L36466: { - arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1010X))) + -4))))>>8)); - goto L36470;} - L36356: { - x_1171X = arg0K0; - *((long *) (SstackS)) = x_1171X; + goto L37450;}}}} + L37527: { + arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg5_1023X))) + -4))))>>8)); + goto L37531;} + L37409: { + x_1219X = arg0K0; + *((long *) (SstackS)) = x_1219X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_1091X; + *((long *) (SstackS)) = x_1119X; SstackS = ((SstackS) + -4); arg0K0 = 5; - goto L16665;} - L11686: { - if ((3 == (3 & thing_936X))) { - if ((3 == (31 & ((((*((long *) ((((char *) (-3 + thing_936X))) + -4))))>>2))))) { + goto L17320;} + L12328: { + if ((3 == (3 & thing_949X))) { + if ((3 == (31 & ((((*((long *) ((((char *) (-3 + thing_949X))) + -4))))>>2))))) { arg3K0 = "#{procedure}"; - goto L11692;} + goto L12334;} else { arg3K0 = "???"; - goto L11692;}} + goto L12334;}} else { arg3K0 = "???"; - goto L11692;}} - L16951: { + goto L12334;}} + L17606: { StemplateS = (SvalS); - Slosing_opcodeS = (0 - i_1065X); - arg0K0 = arg_count_1111X; - goto L16066;} - L17037: { - ps_error("interrupt handler is not a closure", 1, i_1065X); - goto L16951;} - L36393: { - x_1172X = arg0K0; - *((long *) (SstackS)) = x_1172X; + Slosing_opcodeS = (0 - i_1089X); + arg0K0 = arg_count_1152X; + goto L16721;} + L17692: { + ps_error("interrupt handler is not a closure", 1, i_1089X); + goto L17606;} + L37450: { + x_1220X = arg0K0; + *((long *) (SstackS)) = x_1220X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_1091X; + *((long *) (SstackS)) = x_1119X; SstackS = ((SstackS) + -4); - merged_arg0K0 = status_1169X; - merged_arg0K1 = key_1006X; - get_error_string_return_tag = 4; + merged_arg0K0 = status_1217X; + merged_arg0K1 = key_1019X; + get_error_string_return_tag = 5; goto get_error_string; - get_error_string_return_4: - x_1173X = get_error_string0_return_value; - *((long *) (SstackS)) = x_1173X; + get_error_string_return_5: + x_1221X = get_error_string0_return_value; + *((long *) (SstackS)) = x_1221X; SstackS = ((SstackS) + -4); - arg0K0 = 6; - goto L16665;} + arg0K0 = 7; + goto L17320;} loseD0: { - message_369X = merged_arg3K0;{ - why_1174X = (((*((long *) ((SstackS) + (4 + (((nargs_739X)<<2)))))))>>2); + message_386X = merged_arg3K0;{ + why_1222X = (((*((long *) ((SstackS) + (4 + (((nargs_756X)<<2)))))))>>2); ps_write_string("Template UIDs: ", (stderr)); - current_template_1175X = StemplateS; - out_1176X = stderr; - if ((0 == (3 & (*((long *) ((((char *) (-3 + current_template_1175X))) + 4)))))) { - if ((current_template_1175X == (*((long *) ((((char *) (-3 + (Sbottom_of_stackS)))) + 8))))) { + current_template_1223X = StemplateS; + out_1224X = stderr; + if ((0 == (3 & (*((long *) ((((char *) (-3 + current_template_1223X))) + 4)))))) { + if ((current_template_1223X == (*((long *) ((((char *) (-3 + (Sbottom_of_stackS)))) + 8))))) { arg2K0 = 0; - goto L10518;} + goto L11158;} else { - ps_write_integer(((((*((long *) ((((char *) (-3 + current_template_1175X))) + 4))))>>2)), out_1176X); + ps_write_integer(((((*((long *) ((((char *) (-3 + current_template_1223X))) + 4))))>>2)), out_1224X); arg2K0 = 1; - goto L10518;}} + goto L11158;}} else { arg2K0 = 0; - goto L10518;}} - L10518: { - not_firstP_1177X = arg2K0; + goto L11158;}} + L11158: { + not_firstP_1225X = arg2K0; arg0K0 = (ScontS); - arg2K1 = not_firstP_1177X; - goto L10525;} - L10525: { - cont_1178X = arg0K0; - not_firstP_1179X = arg2K1; - if ((3 == (3 & cont_1178X))) { - if ((9 == (31 & ((((*((long *) ((((char *) (-3 + cont_1178X))) + -4))))>>2))))) { - template_1180X = *((long *) ((((char *) (-3 + cont_1178X))) + 8)); - if ((0 == (3 & (*((long *) ((((char *) (-3 + template_1180X))) + 4)))))) { - if ((template_1180X == (*((long *) ((((char *) (-3 + (Sbottom_of_stackS)))) + 8))))) { - arg2K0 = not_firstP_1179X; - goto L10534;} + arg2K1 = not_firstP_1225X; + goto L11165;} + L11165: { + cont_1226X = arg0K0; + not_firstP_1227X = arg2K1; + if ((3 == (3 & cont_1226X))) { + if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1226X))) + -4))))>>2))))) { + template_1228X = *((long *) ((((char *) (-3 + cont_1226X))) + 8)); + if ((0 == (3 & (*((long *) ((((char *) (-3 + template_1228X))) + 4)))))) { + if ((template_1228X == (*((long *) ((((char *) (-3 + (Sbottom_of_stackS)))) + 8))))) { + arg2K0 = not_firstP_1227X; + goto L11174;} else { - if (not_firstP_1179X) { - ps_write_string(" <- ", out_1176X); - goto L10573;} + if (not_firstP_1227X) { + ps_write_string(" <- ", out_1224X); + goto L11213;} else { - goto L10573;}}} + goto L11213;}}} else { - arg2K0 = not_firstP_1179X; - goto L10534;}} + arg2K0 = not_firstP_1227X; + goto L11174;}} else { - goto L16684;}} + goto L17339;}} else { - goto L16684;}} - L10534: { - v_1181X = arg2K0; - arg0K0 = (*((long *) (((char *) (-3 + cont_1178X))))); - arg2K1 = v_1181X; - goto L10525;} - L10573: { - ps_write_integer(((((*((long *) ((((char *) (-3 + template_1180X))) + 4))))>>2)), out_1176X); + goto L17339;}} + L11174: { + v_1229X = arg2K0; + arg0K0 = (*((long *) (((char *) (-3 + cont_1226X))))); + arg2K1 = v_1229X; + goto L11165;} + L11213: { + ps_write_integer(((((*((long *) ((((char *) (-3 + template_1228X))) + 4))))>>2)), out_1224X); arg2K0 = 1; - goto L10534;} - L16684: { + goto L11174;} + L17339: { { long ignoreXX; PS_WRITE_CHAR(10, (stderr), ignoreXX) } - if ((why_1174X == 1)) { - if ((0 == (3 & (*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (((nargs_739X)<<2))))))))))))) { - ps_error(message_369X, 3, opcode_740X, why_1174X, ((((*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (((nargs_739X)<<2)))))))))))>>2))); + if ((why_1222X == 1)) { + if ((0 == (3 & (*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (((nargs_756X)<<2))))))))))))) { + ps_error(message_386X, 3, opcode_757X, why_1222X, ((((*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (((nargs_756X)<<2)))))))))))>>2))); goto loseD0_return;} else { - goto L16708;}} + goto L17363;}} else { - goto L16708;}} - L16708: { - ps_error(message_369X, 2, opcode_740X, why_1174X); + goto L17363;}} + L17363: { + ps_error(message_386X, 2, opcode_757X, why_1222X); goto loseD0_return;} loseD0_return: switch (loseD0_return_tag) { @@ -9500,71 +9884,76 @@ long s48_restart(long proc_345X, long nargs_346X) }} check_events: { -{ goto L39788;} - L39788: { - type_1182X = s48_get_next_event(&channel_1183X, &status_1184X); - if ((type_1182X == ALARM_EVENT)) { +{ goto L40893;} + L40893: { + type_1230X = s48_get_next_event(&channel_1231X, &status_1232X); + if ((type_1230X == ALARM_EVENT)) { if ((1 == (Sinterrupted_templateS))) { Sinterrupted_templateS = (StemplateS); arg0K0 = 1; - goto L15869;} + goto L16517;} else { arg0K0 = 1; - goto L15869;}} + goto L16517;}} else { - if ((type_1182X == KEYBOARD_INTERRUPT_EVENT)) { + if ((type_1230X == KEYBOARD_INTERRUPT_EVENT)) { arg0K0 = 2; - goto L15869;} + goto L16517;} else { - if ((type_1182X == IO_COMPLETION_EVENT)) { - enqueue_channelB(channel_1183X, status_1184X); + if ((type_1230X == IO_READ_COMPLETION_EVENT)) { + enqueue_input_channelB(channel_1231X, status_1232X); arg0K0 = 8; - goto L15869;} + goto L16517;} else { - if ((type_1182X == OS_SIGNAL_EVENT)) { + if ((type_1230X == IO_WRITE_COMPLETION_EVENT)) { + enqueue_output_channelB(channel_1231X, status_1232X); arg0K0 = 16; - goto L15869;} + goto L16517;} else { - if ((type_1182X == NO_EVENT)) { - arg0K0 = 0; - goto L15869;} + if ((type_1230X == OS_SIGNAL_EVENT)) { + arg0K0 = 32; + goto L16517;} else { - if ((type_1182X == ERROR_EVENT)) { - ps_write_string("OS error while getting event", (stderr)); - { long ignoreXX; - PS_WRITE_CHAR(10, (stderr), ignoreXX) } - ps_write_string((ps_error_string(status_1184X)), (stderr)); - { long ignoreXX; - PS_WRITE_CHAR(10, (stderr), ignoreXX) } + if ((type_1230X == NO_EVENT)) { arg0K0 = 0; - goto L15869;} + goto L16517;} else { - ps_write_string("unknown type of event", (stderr)); - { long ignoreXX; - PS_WRITE_CHAR(10, (stderr), ignoreXX) } - arg0K0 = 0; - goto L15869;}}}}}}} - L15869: { - v_1185X = arg0K0; - Spending_interruptsS = (v_1185X | (Spending_interruptsS)); - if ((type_1182X == NO_EVENT)) { + if ((type_1230X == ERROR_EVENT)) { + ps_write_string("OS error while getting event", (stderr)); + { long ignoreXX; + PS_WRITE_CHAR(10, (stderr), ignoreXX) } + ps_write_string((ps_error_string(status_1232X)), (stderr)); + { long ignoreXX; + PS_WRITE_CHAR(10, (stderr), ignoreXX) } + arg0K0 = 0; + goto L16517;} + else { + ps_write_string("unknown type of event", (stderr)); + { long ignoreXX; + PS_WRITE_CHAR(10, (stderr), ignoreXX) } + arg0K0 = 0; + goto L16517;}}}}}}}} + L16517: { + interrupt_bit_1233X = arg0K0; + Spending_interruptsS = ((Spending_interruptsS) | interrupt_bit_1233X); + if ((type_1230X == NO_EVENT)) { if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) { s48_Spending_interruptPS = 0; if ((s48_Spending_eventsPS)) { s48_Spending_interruptPS = 1; - goto L15896;} + goto L16547;} else { - goto L15896;}} + goto L16547;}} else { s48_Spending_interruptPS = 1; - goto L15896;}} + goto L16547;}} else { - goto L39788;}} - L15896: { + goto L40893;}} + L16547: { if ((s48_Spending_interruptPS)) { if ((s48_Spending_eventsPS)) { s48_Spending_eventsPS = 0; - goto L39788;} + goto L40893;} else { check_events0_return_value = 1; goto check_events_return;}} @@ -9580,52 +9969,52 @@ long s48_restart(long proc_345X, long nargs_346X) }} rest_list_setup: { - wants_stack_args_365X = merged_arg0K0; - stack_arg_count_366X = merged_arg0K1; - list_args_367X = merged_arg0K2; - list_arg_count_368X = merged_arg0K3;{ - if ((stack_arg_count_366X == wants_stack_args_365X)) { - merged_arg0K0 = list_args_367X; - merged_arg0K1 = list_arg_count_368X; + wants_stack_args_382X = merged_arg0K0; + stack_arg_count_383X = merged_arg0K1; + list_args_384X = merged_arg0K2; + list_arg_count_385X = merged_arg0K3;{ + if ((stack_arg_count_383X == wants_stack_args_382X)) { + merged_arg0K0 = list_args_384X; + merged_arg0K1 = list_arg_count_385X; copy_listS_return_tag = 1; goto copy_listS; copy_listS_return_1: - x_1186X = copy_listS0_return_value; - *((long *) (SstackS)) = x_1186X; + x_1234X = copy_listS0_return_value; + *((long *) (SstackS)) = x_1234X; SstackS = ((SstackS) + -4); goto rest_list_setup_return;} else { - if ((stack_arg_count_366X < wants_stack_args_365X)) { - count_1187X = wants_stack_args_365X - stack_arg_count_366X; - merged_arg0K0 = list_args_367X; - merged_arg0K1 = count_1187X; + if ((stack_arg_count_383X < wants_stack_args_382X)) { + count_1235X = wants_stack_args_382X - stack_arg_count_383X; + merged_arg0K0 = list_args_384X; + merged_arg0K1 = count_1235X; push_list_return_tag = 3; goto push_list; push_list_return_3: - v_1188X = push_list0_return_value; - merged_arg0K0 = v_1188X; - merged_arg0K1 = (list_arg_count_368X - count_1187X); + v_1236X = push_list0_return_value; + merged_arg0K0 = v_1236X; + merged_arg0K1 = (list_arg_count_385X - count_1235X); copy_listS_return_tag = 2; goto copy_listS; copy_listS_return_2: - x_1189X = copy_listS0_return_value; - *((long *) (SstackS)) = x_1189X; + x_1237X = copy_listS0_return_value; + *((long *) (SstackS)) = x_1237X; SstackS = ((SstackS) + -4); goto rest_list_setup_return;} else { - merged_arg0K0 = list_args_367X; - merged_arg0K1 = list_arg_count_368X; + merged_arg0K0 = list_args_384X; + merged_arg0K1 = list_arg_count_385X; copy_listS_return_tag = 3; goto copy_listS; copy_listS_return_3: - v_1190X = copy_listS0_return_value; - merged_arg0K0 = v_1190X; - merged_arg0K1 = (stack_arg_count_366X - wants_stack_args_365X); + v_1238X = copy_listS0_return_value; + merged_arg0K0 = v_1238X; + merged_arg0K1 = (stack_arg_count_383X - wants_stack_args_382X); pop_args_GlistS_return_tag = 5; goto pop_args_GlistS; pop_args_GlistS_return_5: - x_1191X = pop_args_GlistS0_return_value; - *((long *) (SstackS)) = x_1191X; + x_1239X = pop_args_GlistS0_return_value; + *((long *) (SstackS)) = x_1239X; SstackS = ((SstackS) + -4); goto rest_list_setup_return;}}} rest_list_setup_return: @@ -9636,69 +10025,69 @@ long s48_restart(long proc_345X, long nargs_346X) }} push_list: { - list_363X = merged_arg0K0; - count_364X = merged_arg0K1;{ - *((long *) (SstackS)) = list_363X; + list_380X = merged_arg0K0; + count_381X = merged_arg0K1;{ + *((long *) (SstackS)) = list_380X; SstackS = ((SstackS) + -4); - if ((count_364X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { - goto L15285;} + if ((count_381X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { + goto L15933;} else { - space_1192X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); - v_1193X = AVAILABLEp(space_1192X); - if (v_1193X) { + space_1240X = 1 + (((((Sstack_endS) - (SstackS)))>>2)); + v_1241X = AVAILABLEp(space_1240X); + if (v_1241X) { arg2K0 = 1; arg0K1 = 0; - goto L15369;} + goto L16017;} else { - collect_saving_temps(1, 1, &temp1_1194X); - v_1195X = AVAILABLEp(space_1192X); - if (v_1195X) { + collect_saving_temps(1, 1, &temp1_1242X); + v_1243X = AVAILABLEp(space_1240X); + if (v_1243X) { arg2K0 = 1; arg0K1 = 0; - goto L15369;} + goto L16017;} else { arg2K0 = 0; arg0K1 = 0; - goto L15369;}}}} - L15285: { + goto L16017;}}}} + L15933: { SstackS = ((SstackS) + 4); - list_1196X = *((long *) (SstackS)); - arg0K0 = count_364X; - arg0K1 = list_1196X; - goto L15294;} - L15369: { - okayP_1197X = arg2K0; - key_1198X = arg0K1; - if (okayP_1197X) { - arg0K0 = key_1198X; - goto L15320;} + list_1244X = *((long *) (SstackS)); + arg0K0 = count_381X; + arg0K1 = list_1244X; + goto L15942;} + L16017: { + okayP_1245X = arg2K0; + key_1246X = arg0K1; + if (okayP_1245X) { + arg0K0 = key_1246X; + goto L15968;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_1198X; - goto L15320;}} - L15294: { - i_1199X = arg0K0; - l_1200X = arg0K1; - if ((0 < i_1199X)) { - *((long *) (SstackS)) = (*((long *) (((char *) (-3 + l_1200X))))); + arg0K0 = key_1246X; + goto L15968;}} + L15942: { + i_1247X = arg0K0; + l_1248X = arg0K1; + if ((0 < i_1247X)) { + *((long *) (SstackS)) = (*((long *) (((char *) (-3 + l_1248X))))); SstackS = ((SstackS) + -4); - arg0K0 = (-1 + i_1199X); - arg0K1 = (*((long *) ((((char *) (-3 + l_1200X))) + 4))); - goto L15294;} + arg0K0 = (-1 + i_1247X); + arg0K1 = (*((long *) ((((char *) (-3 + l_1248X))) + 4))); + goto L15942;} else { - push_list0_return_value = l_1200X; + push_list0_return_value = l_1248X; goto push_list_return;}} - L15320: { - v_1201X = arg0K0; - merged_arg0K0 = v_1201X; + L15968: { + v_1249X = arg0K0; + merged_arg0K0 = v_1249X; copy_stack_into_heap_return_tag = 4; goto copy_stack_into_heap; copy_stack_into_heap_return_4: - if ((count_364X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { - goto L15285;} + if ((count_381X < (64 + (((((SstackS) - (Sstack_limitS)))>>2))))) { + goto L15933;} else { ps_error("VM's stack is too small (how can this happen?)", 0); - goto L15285;}} + goto L15933;}} push_list_return: switch (push_list_return_tag) { case 0: goto push_list_return_0; @@ -9708,51 +10097,51 @@ long s48_restart(long proc_345X, long nargs_346X) }} copy_stack_into_heap: { - key_362X = merged_arg0K0;{ + key_379X = merged_arg0K0;{ arg1K0 = ((SstackS) + 4); arg0K1 = 0; - goto L13514;} - L13514: { - p_1202X = arg1K0; - i_1203X = arg0K1; - if ((2 == (3 & (*((long *) p_1202X))))) { - if ((22 == (*((long *) p_1202X)))) { - arg0K0 = (-1 + i_1203X); - goto L13501;} + goto L14156;} + L14156: { + p_1250X = arg1K0; + i_1251X = arg0K1; + if ((2 == (3 & (*((long *) p_1250X))))) { + if ((26 == (*((long *) p_1250X)))) { + arg0K0 = (-1 + i_1251X); + goto L14143;} else { - arg0K0 = i_1203X; - goto L13501;}} + arg0K0 = i_1251X; + goto L14143;}} else { - arg1K0 = (p_1202X + 4); - arg0K1 = (1 + i_1203X); - goto L13514;}} - L13501: { - arg_count_1204X = arg0K0; - top_1205X = SstackS; + arg1K0 = (p_1250X + 4); + arg0K1 = (1 + i_1251X); + goto L14156;}} + L14143: { + arg_count_1252X = arg0K0; + top_1253X = SstackS; if ((1 == (ScontS))) { - goto L13506;} + goto L14148;} else { - merged_arg0K0 = key_362X; + merged_arg0K0 = key_379X; merged_arg0K1 = 1; really_preserve_continuation_return_tag = 1; goto really_preserve_continuation; really_preserve_continuation_return_1: - goto L13506;}} - L13506: { - stob_1206X = ScontS; - arg1K0 = ((((char *) (-3 + stob_1206X))) + -8); - arg1K1 = (top_1205X + (((arg_count_1204X)<<2))); - goto L13539;} - L13539: { - loc_1207X = arg1K0; - arg_1208X = arg1K1; - if ((top_1205X < arg_1208X)) { - *((long *) loc_1207X) = (*((long *) arg_1208X)); - arg1K0 = (loc_1207X + -4); - arg1K1 = (arg_1208X + -4); - goto L13539;} + goto L14148;}} + L14148: { + stob_1254X = ScontS; + arg1K0 = ((((char *) (-3 + stob_1254X))) + -8); + arg1K1 = (top_1253X + (((arg_count_1252X)<<2))); + goto L14181;} + L14181: { + loc_1255X = arg1K0; + arg_1256X = arg1K1; + if ((top_1253X < arg_1256X)) { + *((long *) loc_1255X) = (*((long *) arg_1256X)); + arg1K0 = (loc_1255X + -4); + arg1K1 = (arg_1256X + -4); + goto L14181;} else { - SstackS = loc_1207X; + SstackS = loc_1255X; goto copy_stack_into_heap_return;}} copy_stack_into_heap_return: switch (copy_stack_into_heap_return_tag) { @@ -9764,71 +10153,71 @@ long s48_restart(long proc_345X, long nargs_346X) }} really_preserve_continuation: { - key_360X = merged_arg0K0; - reason_361X = merged_arg0K1;{ - p_1209X = SenvS; - if ((3 == (3 & p_1209X))) { - if ((p_1209X < (((long) (Sstack_beginS))))) { - goto L12690;} + key_377X = merged_arg0K0; + reason_378X = merged_arg0K1;{ + p_1257X = SenvS; + if ((3 == (3 & p_1257X))) { + if ((p_1257X < (((long) (Sstack_beginS))))) { + goto L13332;} else { - if (((((long) (Sstack_endS))) < p_1209X)) { - goto L12690;} + if (((((long) (Sstack_endS))) < p_1257X)) { + goto L13332;} else { merged_arg0K0 = (SenvS); merged_arg0K1 = (ScontS); - merged_arg0K2 = key_360X; - merged_arg0K3 = reason_361X; + merged_arg0K2 = key_377X; + merged_arg0K3 = reason_378X; save_env_in_heap_return_tag = 1; goto save_env_in_heap; save_env_in_heap_return_1: - v_1210X = save_env_in_heap0_return_value; - SenvS = v_1210X; - goto L12690;}}} + v_1258X = save_env_in_heap0_return_value; + SenvS = v_1258X; + goto L13332;}}} else { - goto L12690;}} - L12690: { - end_1211X = *((long *) (((char *) (-3 + (Sbottom_of_stackS))))); + goto L13332;}} + L13332: { + end_1259X = *((long *) (((char *) (-3 + (Sbottom_of_stackS))))); arg0K0 = (ScontS); arg0K1 = (Sbottom_of_stackS); - goto L12643;} - L12643: { - cont_1212X = arg0K0; - previous_1213X = arg0K1; - if ((cont_1212X == (Sbottom_of_stackS))) { - *((long *) (((char *) (-3 + previous_1213X)))) = end_1211X; + goto L13285;} + L13285: { + cont_1260X = arg0K0; + previous_1261X = arg0K1; + if ((cont_1260X == (Sbottom_of_stackS))) { + *((long *) (((char *) (-3 + previous_1261X)))) = end_1259X; ScontS = (Sbottom_of_stackS); really_preserve_continuation0_return_value = (*((long *) (((char *) (-3 + (Sbottom_of_stackS)))))); goto really_preserve_continuation_return;} else { - p_1214X = *((long *) ((((char *) (-3 + cont_1212X))) + 12)); - if ((3 == (3 & p_1214X))) { - if ((p_1214X < (((long) (Sstack_beginS))))) { - goto L12661;} + p_1262X = *((long *) ((((char *) (-3 + cont_1260X))) + 12)); + if ((3 == (3 & p_1262X))) { + if ((p_1262X < (((long) (Sstack_beginS))))) { + goto L13303;} else { - if (((((long) (Sstack_endS))) < p_1214X)) { - goto L12661;} + if (((((long) (Sstack_endS))) < p_1262X)) { + goto L13303;} else { - merged_arg0K0 = (*((long *) ((((char *) (-3 + cont_1212X))) + 12))); - merged_arg0K1 = cont_1212X; - merged_arg0K2 = key_360X; - merged_arg0K3 = reason_361X; + merged_arg0K0 = (*((long *) ((((char *) (-3 + cont_1260X))) + 12))); + merged_arg0K1 = cont_1260X; + merged_arg0K2 = key_377X; + merged_arg0K3 = reason_378X; save_env_in_heap_return_tag = 2; goto save_env_in_heap; save_env_in_heap_return_2: - goto L12661;}}} + goto L13303;}}} else { - goto L12661;}}} - L12661: { - header_1215X = *((long *) ((((char *) (-3 + cont_1212X))) + -4)); - addr_1216X = ALLOCATE_SPACE((31 & (((header_1215X)>>2))), (4 + ((long)(((unsigned long)header_1215X)>>8)))); - data_addr_1217X = addr_1216X + 4; - *((long *) addr_1216X) = header_1215X; - memcpy((void *)data_addr_1217X, (void *)(((char *) (-3 + cont_1212X))),((long)(((unsigned long)header_1215X)>>8))); - new_1218X = 3 + (((long) data_addr_1217X)); - *((long *) (((char *) (-3 + previous_1213X)))) = new_1218X; - arg0K0 = (*((long *) (((char *) (-3 + new_1218X))))); - arg0K1 = new_1218X; - goto L12643;} + goto L13303;}}} + L13303: { + header_1263X = *((long *) ((((char *) (-3 + cont_1260X))) + -4)); + addr_1264X = ALLOCATE_SPACE((31 & (((header_1263X)>>2))), (4 + ((long)(((unsigned long)header_1263X)>>8)))); + data_addr_1265X = addr_1264X + 4; + *((long *) addr_1264X) = header_1263X; + memcpy((void *)data_addr_1265X, (void *)(((char *) (-3 + cont_1260X))),((long)(((unsigned long)header_1263X)>>8))); + new_1266X = 3 + (((long) data_addr_1265X)); + *((long *) (((char *) (-3 + previous_1261X)))) = new_1266X; + arg0K0 = (*((long *) (((char *) (-3 + new_1266X))))); + arg0K1 = new_1266X; + goto L13285;} really_preserve_continuation_return: switch (really_preserve_continuation_return_tag) { case 0: goto really_preserve_continuation_return_0; @@ -9836,18 +10225,18 @@ long s48_restart(long proc_345X, long nargs_346X) }} copy_env: { - env_359X = merged_arg0K0;{ - header_1219X = *((long *) ((((char *) (-3 + env_359X))) + -4)); - addr_1220X = ALLOCATE_SPACE((31 & (((header_1219X)>>2))), (4 + ((long)(((unsigned long)header_1219X)>>8)))); - data_addr_1221X = addr_1220X + 4; - *((long *) addr_1220X) = header_1219X; - memcpy((void *)data_addr_1221X, (void *)(((char *) (-3 + env_359X))),((long)(((unsigned long)header_1219X)>>8))); - new_1222X = 3 + (((long) data_addr_1221X)); - addr_1223X = ((char *) (-3 + env_359X)); - S48_WRITE_BARRIER(env_359X, addr_1223X, 22); - *((long *) addr_1223X) = 22; - *((long *) ((((char *) (-3 + env_359X))) + -4)) = new_1222X; - copy_env0_return_value = new_1222X; + env_376X = merged_arg0K0;{ + header_1267X = *((long *) ((((char *) (-3 + env_376X))) + -4)); + addr_1268X = ALLOCATE_SPACE((31 & (((header_1267X)>>2))), (4 + ((long)(((unsigned long)header_1267X)>>8)))); + data_addr_1269X = addr_1268X + 4; + *((long *) addr_1268X) = header_1267X; + memcpy((void *)data_addr_1269X, (void *)(((char *) (-3 + env_376X))),((long)(((unsigned long)header_1267X)>>8))); + new_1270X = 3 + (((long) data_addr_1269X)); + addr_1271X = ((char *) (-3 + env_376X)); + S48_WRITE_BARRIER(env_376X, addr_1271X, 26); + *((long *) addr_1271X) = 26; + *((long *) ((((char *) (-3 + env_376X))) + -4)) = new_1270X; + copy_env0_return_value = new_1270X; goto copy_env_return;} copy_env_return: switch (copy_env_return_tag) { @@ -9856,59 +10245,59 @@ long s48_restart(long proc_345X, long nargs_346X) }} save_env_in_heap: { - env_355X = merged_arg0K0; - cont_356X = merged_arg0K1; - key_357X = merged_arg0K2; - reason_358X = merged_arg0K3;{ - merged_arg0K0 = env_355X; - merged_arg0K1 = key_357X; - merged_arg0K2 = reason_358X; + env_372X = merged_arg0K0; + cont_373X = merged_arg0K1; + key_374X = merged_arg0K2; + reason_375X = merged_arg0K3;{ + merged_arg0K0 = env_372X; + merged_arg0K1 = key_374X; + merged_arg0K2 = reason_375X; copy_env_return_tag = 0; goto copy_env; copy_env_return_0: - top_1224X = copy_env0_return_value; - arg0K0 = top_1224X; - goto L11922;} - L11922: { - env_1225X = arg0K0; - p_1226X = *((long *) (((char *) (-3 + env_1225X)))); - if ((3 == (3 & p_1226X))) { - if ((p_1226X < (((long) (Sstack_beginS))))) { - goto L11941;} + top_1272X = copy_env0_return_value; + arg0K0 = top_1272X; + goto L12564;} + L12564: { + env_1273X = arg0K0; + p_1274X = *((long *) (((char *) (-3 + env_1273X)))); + if ((3 == (3 & p_1274X))) { + if ((p_1274X < (((long) (Sstack_beginS))))) { + goto L12583;} else { - if (((((long) (Sstack_endS))) < p_1226X)) { - goto L11941;} + if (((((long) (Sstack_endS))) < p_1274X)) { + goto L12583;} else { - merged_arg0K0 = (*((long *) (((char *) (-3 + env_1225X))))); - merged_arg0K1 = key_357X; - merged_arg0K2 = reason_358X; + merged_arg0K0 = (*((long *) (((char *) (-3 + env_1273X))))); + merged_arg0K1 = key_374X; + merged_arg0K2 = reason_375X; copy_env_return_tag = 1; goto copy_env; copy_env_return_1: - new_1227X = copy_env0_return_value; - addr_1228X = ((char *) (-3 + env_1225X)); - S48_WRITE_BARRIER(env_1225X, addr_1228X, new_1227X); - *((long *) addr_1228X) = new_1227X; - arg0K0 = new_1227X; - goto L11922;}}} + new_1275X = copy_env0_return_value; + addr_1276X = ((char *) (-3 + env_1273X)); + S48_WRITE_BARRIER(env_1273X, addr_1276X, new_1275X); + *((long *) addr_1276X) = new_1275X; + arg0K0 = new_1275X; + goto L12564;}}} else { - goto L11941;}} - L11941: { - arg0K0 = cont_356X; - goto L11945;} - L11945: { - cont_1229X = arg0K0; - env_1230X = *((long *) ((((char *) (-3 + cont_1229X))) + 12)); - if ((3 == (3 & env_1230X))) { - if ((3 == (3 & (*((long *) ((((char *) (-3 + env_1230X))) + -4)))))) { - *((long *) ((((char *) (-3 + cont_1229X))) + 12)) = (*((long *) ((((char *) (-3 + env_1230X))) + -4))); - arg0K0 = (*((long *) (((char *) (-3 + cont_1229X))))); - goto L11945;} + goto L12583;}} + L12583: { + arg0K0 = cont_373X; + goto L12587;} + L12587: { + cont_1277X = arg0K0; + env_1278X = *((long *) ((((char *) (-3 + cont_1277X))) + 12)); + if ((3 == (3 & env_1278X))) { + if ((3 == (3 & (*((long *) ((((char *) (-3 + env_1278X))) + -4)))))) { + *((long *) ((((char *) (-3 + cont_1277X))) + 12)) = (*((long *) ((((char *) (-3 + env_1278X))) + -4))); + arg0K0 = (*((long *) (((char *) (-3 + cont_1277X))))); + goto L12587;} else { - save_env_in_heap0_return_value = top_1224X; + save_env_in_heap0_return_value = top_1272X; goto save_env_in_heap_return;}} else { - save_env_in_heap0_return_value = top_1224X; + save_env_in_heap0_return_value = top_1272X; goto save_env_in_heap_return;}} save_env_in_heap_return: switch (save_env_in_heap_return_tag) { @@ -9918,57 +10307,57 @@ long s48_restart(long proc_345X, long nargs_346X) }} pop_args_GlistS: { - start_353X = merged_arg0K0; - count_354X = merged_arg0K1;{ - space_1231X = 3 * count_354X; - v_1232X = AVAILABLEp(space_1231X); - if (v_1232X) { + start_370X = merged_arg0K0; + count_371X = merged_arg0K1;{ + space_1279X = 3 * count_371X; + v_1280X = AVAILABLEp(space_1279X); + if (v_1280X) { arg2K0 = 1; - arg0K1 = start_353X; - goto L14260;} + arg0K1 = start_370X; + goto L14902;} else { - temp0_1233X = collect_saving_temps(start_353X, 1, &temp1_1234X); - v_1235X = AVAILABLEp(space_1231X); - if (v_1235X) { + temp0_1281X = collect_saving_temps(start_370X, 1, &temp1_1282X); + v_1283X = AVAILABLEp(space_1279X); + if (v_1283X) { arg2K0 = 1; - arg0K1 = temp0_1233X; - goto L14260;} + arg0K1 = temp0_1281X; + goto L14902;} else { arg2K0 = 0; - arg0K1 = temp0_1233X; - goto L14260;}}} - L14260: { - okayP_1236X = arg2K0; - temp_1237X = arg0K1; - if (okayP_1236X) { - arg0K0 = temp_1237X; - goto L14234;} + arg0K1 = temp0_1281X; + goto L14902;}}} + L14902: { + okayP_1284X = arg2K0; + temp_1285X = arg0K1; + if (okayP_1284X) { + arg0K0 = temp_1285X; + goto L14876;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = temp_1237X; - goto L14234;}} - L14234: { - start_1238X = arg0K0; - arg0K0 = start_1238X; - arg0K1 = count_354X; - goto L14243;} - L14243: { - args_1239X = arg0K0; - count_1240X = arg0K1; - if ((0 == count_1240X)) { - pop_args_GlistS0_return_value = args_1239X; + arg0K0 = temp_1285X; + goto L14876;}} + L14876: { + start_1286X = arg0K0; + arg0K0 = start_1286X; + arg0K1 = count_371X; + goto L14885;} + L14885: { + args_1287X = arg0K0; + count_1288X = arg0K1; + if ((0 == count_1288X)) { + pop_args_GlistS0_return_value = args_1287X; goto pop_args_GlistS_return;} else { SstackS = ((SstackS) + 4); - a_1241X = *((long *) (SstackS)); - addr_1242X = ALLOCATE_SPACE(0, 12); - *((long *) addr_1242X) = 2050; - x_1243X = 3 + (((long) (addr_1242X + 4))); - *((long *) (((char *) (-3 + x_1243X)))) = a_1241X; - *((long *) ((((char *) (-3 + x_1243X))) + 4)) = args_1239X; - arg0K0 = x_1243X; - arg0K1 = (-1 + count_1240X); - goto L14243;}} + a_1289X = *((long *) (SstackS)); + addr_1290X = ALLOCATE_SPACE(0, 12); + *((long *) addr_1290X) = 2050; + x_1291X = 3 + (((long) (addr_1290X + 4))); + *((long *) (((char *) (-3 + x_1291X)))) = a_1289X; + *((long *) ((((char *) (-3 + x_1291X))) + 4)) = args_1287X; + arg0K0 = x_1291X; + arg0K1 = (-1 + count_1288X); + goto L14885;}} pop_args_GlistS_return: switch (pop_args_GlistS_return_tag) { case 0: goto pop_args_GlistS_return_0; @@ -9980,69 +10369,69 @@ long s48_restart(long proc_345X, long nargs_346X) }} copy_listS: { - list_351X = merged_arg0K0; - length_352X = merged_arg0K1;{ - if ((0 == length_352X)) { + list_368X = merged_arg0K0; + length_369X = merged_arg0K1;{ + if ((0 == length_369X)) { copy_listS0_return_value = 25; goto copy_listS_return;} else { - space_1244X = 3 * length_352X; - v_1245X = AVAILABLEp(space_1244X); - if (v_1245X) { + space_1292X = 3 * length_369X; + v_1293X = AVAILABLEp(space_1292X); + if (v_1293X) { arg2K0 = 1; - arg0K1 = list_351X; - goto L14139;} + arg0K1 = list_368X; + goto L14781;} else { - temp0_1246X = collect_saving_temps(list_351X, 1, &temp1_1247X); - v_1248X = AVAILABLEp(space_1244X); - if (v_1248X) { + temp0_1294X = collect_saving_temps(list_368X, 1, &temp1_1295X); + v_1296X = AVAILABLEp(space_1292X); + if (v_1296X) { arg2K0 = 1; - arg0K1 = temp0_1246X; - goto L14139;} + arg0K1 = temp0_1294X; + goto L14781;} else { arg2K0 = 0; - arg0K1 = temp0_1246X; - goto L14139;}}}} - L14139: { - okayP_1249X = arg2K0; - temp_1250X = arg0K1; - if (okayP_1249X) { - arg0K0 = temp_1250X; - goto L14097;} + arg0K1 = temp0_1294X; + goto L14781;}}}} + L14781: { + okayP_1297X = arg2K0; + temp_1298X = arg0K1; + if (okayP_1297X) { + arg0K0 = temp_1298X; + goto L14739;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = temp_1250X; - goto L14097;}} - L14097: { - list_1251X = arg0K0; - a_1252X = *((long *) (((char *) (-3 + list_1251X)))); - addr_1253X = ALLOCATE_SPACE(0, 12); - *((long *) addr_1253X) = 2050; - x_1254X = 3 + (((long) (addr_1253X + 4))); - *((long *) (((char *) (-3 + x_1254X)))) = a_1252X; - *((long *) ((((char *) (-3 + x_1254X))) + 4)) = 25; - arg0K0 = (*((long *) ((((char *) (-3 + list_1251X))) + 4))); - arg0K1 = x_1254X; - goto L14112;} - L14112: { - l_1255X = arg0K0; - last_1256X = arg0K1; - if ((25 == l_1255X)) { - copy_listS0_return_value = x_1254X; + arg0K0 = temp_1298X; + goto L14739;}} + L14739: { + list_1299X = arg0K0; + a_1300X = *((long *) (((char *) (-3 + list_1299X)))); + addr_1301X = ALLOCATE_SPACE(0, 12); + *((long *) addr_1301X) = 2050; + x_1302X = 3 + (((long) (addr_1301X + 4))); + *((long *) (((char *) (-3 + x_1302X)))) = a_1300X; + *((long *) ((((char *) (-3 + x_1302X))) + 4)) = 25; + arg0K0 = (*((long *) ((((char *) (-3 + list_1299X))) + 4))); + arg0K1 = x_1302X; + goto L14754;} + L14754: { + l_1303X = arg0K0; + last_1304X = arg0K1; + if ((25 == l_1303X)) { + copy_listS0_return_value = x_1302X; goto copy_listS_return;} else { - a_1257X = *((long *) (((char *) (-3 + l_1255X)))); - addr_1258X = ALLOCATE_SPACE(0, 12); - *((long *) addr_1258X) = 2050; - x_1259X = 3 + (((long) (addr_1258X + 4))); - *((long *) (((char *) (-3 + x_1259X)))) = a_1257X; - *((long *) ((((char *) (-3 + x_1259X))) + 4)) = 25; - addr_1260X = (((char *) (-3 + last_1256X))) + 4; - S48_WRITE_BARRIER(last_1256X, addr_1260X, x_1259X); - *((long *) addr_1260X) = x_1259X; - arg0K0 = (*((long *) ((((char *) (-3 + l_1255X))) + 4))); - arg0K1 = x_1259X; - goto L14112;}} + a_1305X = *((long *) (((char *) (-3 + l_1303X)))); + addr_1306X = ALLOCATE_SPACE(0, 12); + *((long *) addr_1306X) = 2050; + x_1307X = 3 + (((long) (addr_1306X + 4))); + *((long *) (((char *) (-3 + x_1307X)))) = a_1305X; + *((long *) ((((char *) (-3 + x_1307X))) + 4)) = 25; + addr_1308X = (((char *) (-3 + last_1304X))) + 4; + S48_WRITE_BARRIER(last_1304X, addr_1308X, x_1307X); + *((long *) addr_1308X) = x_1307X; + arg0K0 = (*((long *) ((((char *) (-3 + l_1303X))) + 4))); + arg0K1 = x_1307X; + goto L14754;}} copy_listS_return: switch (copy_listS_return_tag) { case 0: goto copy_listS_return_0; @@ -10051,17 +10440,28 @@ long s48_restart(long proc_345X, long nargs_346X) default: goto copy_listS_return_3; }} + collect_saving_temp: { + value_367X = merged_arg0K0;{ + value_1309X = collect_saving_temps(value_367X, 0, &v_1310X); + collect_saving_temp0_return_value = value_1309X; + goto collect_saving_temp_return;} + collect_saving_temp_return: + switch (collect_saving_temp_return_tag) { + case 0: goto collect_saving_temp_return_0; + default: goto collect_saving_temp_return_1; + }} + copy_continuation_from_heapB: { - cont_350X = merged_arg0K0;{ - top_1261X = (((char *) (-3 + (Sbottom_of_stackS)))) + (-8 - (-4 & (3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_350X))) + -4))))>>8))))); - new_cont_1262X = 3 + (((long) (top_1261X + 4))); - SstackS = (top_1261X + -4); - ScontS = new_cont_1262X; - v_1263X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_350X))) + -4))))>>8))))>>2); - memcpy((void *)top_1261X, (void *)((((char *) (-3 + cont_350X))) + -4),(4 + (((v_1263X)<<2)))); - *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = (*((long *) (((char *) (-3 + new_cont_1262X))))); - *((long *) (((char *) (-3 + new_cont_1262X)))) = (Sbottom_of_stackS); - copy_continuation_from_heapB0_return_value = new_cont_1262X; + cont_366X = merged_arg0K0;{ + top_1311X = (((char *) (-3 + (Sbottom_of_stackS)))) + (-8 - (-4 & (3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_366X))) + -4))))>>8))))); + new_cont_1312X = 3 + (((long) (top_1311X + 4))); + SstackS = (top_1311X + -4); + ScontS = new_cont_1312X; + v_1313X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_366X))) + -4))))>>8))))>>2); + memcpy((void *)top_1311X, (void *)((((char *) (-3 + cont_366X))) + -4),(4 + (((v_1313X)<<2)))); + *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = (*((long *) (((char *) (-3 + new_cont_1312X))))); + *((long *) (((char *) (-3 + new_cont_1312X)))) = (Sbottom_of_stackS); + copy_continuation_from_heapB0_return_value = new_cont_1312X; goto copy_continuation_from_heapB_return;} copy_continuation_from_heapB_return: switch (copy_continuation_from_heapB_return_tag) { @@ -10070,60 +10470,60 @@ long s48_restart(long proc_345X, long nargs_346X) }} get_current_port: { - marker_349X = merged_arg0K0;{ - thread_1264X = Scurrent_threadS; - if ((3 == (3 & thread_1264X))) { - if ((8 == (31 & ((((*((long *) ((((char *) (-3 + thread_1264X))) + -4))))>>2))))) { - if ((1 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thread_1264X))) + -4))))>>8))))>>2)))) { - arg0K0 = (*((long *) ((((char *) (-3 + thread_1264X))) + 4))); - goto L10214;} + marker_365X = merged_arg0K0;{ + thread_1314X = Scurrent_threadS; + if ((3 == (3 & thread_1314X))) { + if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thread_1314X))) + -4))))>>2))))) { + if ((1 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thread_1314X))) + -4))))>>8))))>>2)))) { + arg0K0 = (*((long *) ((((char *) (-3 + thread_1314X))) + 4))); + goto L10854;} else { - goto L10264;}} + goto L10904;}} else { - goto L10264;}} + goto L10904;}} else { - goto L10264;}} - L10214: { - env_1265X = arg0K0; - if ((3 == (3 & env_1265X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + env_1265X))) + -4))))>>2))))) { - obj_1266X = *((long *) (((char *) (-3 + env_1265X)))); - if ((3 == (3 & obj_1266X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + obj_1266X))) + -4))))>>2))))) { - if ((marker_349X == (*((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + env_1265X)))))))))))) { - get_current_port0_return_value = (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + env_1265X)))))))) + 4))); + goto L10904;}} + L10854: { + env_1315X = arg0K0; + if ((3 == (3 & env_1315X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + env_1315X))) + -4))))>>2))))) { + obj_1316X = *((long *) (((char *) (-3 + env_1315X)))); + if ((3 == (3 & obj_1316X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + obj_1316X))) + -4))))>>2))))) { + if ((marker_365X == (*((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + env_1315X)))))))))))) { + get_current_port0_return_value = (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + env_1315X)))))))) + 4))); goto get_current_port_return;} else { - arg0K0 = (*((long *) ((((char *) (-3 + env_1265X))) + 4))); - goto L10214;}} + arg0K0 = (*((long *) ((((char *) (-3 + env_1315X))) + 4))); + goto L10854;}} else { - goto L10286;}} + goto L10926;}} else { - goto L10286;}} + goto L10926;}} else { - goto L10286;}} + goto L10926;}} else { - goto L10286;}} - L10264: { + goto L10926;}} + L10904: { ps_error("current thread is not a record", 0); - get_current_port0_return_value = v_1267X; + get_current_port0_return_value = v_1317X; goto get_current_port_return;} - L10286: { - if ((25 == env_1265X)) { - if (((((marker_349X)>>2)) == 1)) { + L10926: { + if ((25 == env_1315X)) { + if (((((marker_365X)>>2)) == 1)) { arg3K0 = "dynamic environment doesn't have current-output-port"; - goto L10240;} + goto L10880;} else { arg3K0 = "dynamic environment doesn't have current-input-port"; - goto L10240;}} + goto L10880;}} else { ps_error("dynamic environment is not a proper list", 0); - get_current_port0_return_value = v_1268X; + get_current_port0_return_value = v_1318X; goto get_current_port_return;}} - L10240: { - v_1269X = arg3K0; - ps_error(v_1269X, 0); - get_current_port0_return_value = v_1270X; + L10880: { + v_1319X = arg3K0; + ps_error(v_1319X, 0); + get_current_port0_return_value = v_1320X; goto get_current_port_return;} get_current_port_return: switch (get_current_port_return_tag) { @@ -10133,41 +10533,41 @@ long s48_restart(long proc_345X, long nargs_346X) }} okay_argument_list: { - list_348X = merged_arg0K0;{ - arg0K0 = list_348X; + list_364X = merged_arg0K0;{ + arg0K0 = list_364X; arg0K1 = 0; - arg0K2 = list_348X; + arg0K2 = list_364X; arg2K3 = 0; - goto L10081;} - L10081: { - fast_1271X = arg0K0; - len_1272X = arg0K1; - slow_1273X = arg0K2; - move_slowP_1274X = arg2K3; - if ((25 == fast_1271X)) { + goto L10721;} + L10721: { + fast_1321X = arg0K0; + len_1322X = arg0K1; + slow_1323X = arg0K2; + move_slowP_1324X = arg2K3; + if ((25 == fast_1321X)) { okay_argument_list0_return_value = 1; - okay_argument_list1_return_value = len_1272X; + okay_argument_list1_return_value = len_1322X; goto okay_argument_list_return;} else { - if ((3 == (3 & fast_1271X))) { - if ((0 == (31 & ((((*((long *) ((((char *) (-3 + fast_1271X))) + -4))))>>2))))) { - if (move_slowP_1274X) { - if ((fast_1271X == slow_1273X)) { + if ((3 == (3 & fast_1321X))) { + if ((0 == (31 & ((((*((long *) ((((char *) (-3 + fast_1321X))) + -4))))>>2))))) { + if (move_slowP_1324X) { + if ((fast_1321X == slow_1323X)) { okay_argument_list0_return_value = 0; okay_argument_list1_return_value = 0; goto okay_argument_list_return;} else { - arg0K0 = (*((long *) ((((char *) (-3 + fast_1271X))) + 4))); - arg0K1 = (1 + len_1272X); - arg0K2 = (*((long *) ((((char *) (-3 + slow_1273X))) + 4))); + arg0K0 = (*((long *) ((((char *) (-3 + fast_1321X))) + 4))); + arg0K1 = (1 + len_1322X); + arg0K2 = (*((long *) ((((char *) (-3 + slow_1323X))) + 4))); arg2K3 = 0; - goto L10081;}} + goto L10721;}} else { - arg0K0 = (*((long *) ((((char *) (-3 + fast_1271X))) + 4))); - arg0K1 = (1 + len_1272X); - arg0K2 = slow_1273X; + arg0K0 = (*((long *) ((((char *) (-3 + fast_1321X))) + 4))); + arg0K1 = (1 + len_1322X); + arg0K2 = slow_1323X; arg2K3 = 1; - goto L10081;}} + goto L10721;}} else { okay_argument_list0_return_value = 0; okay_argument_list1_return_value = 0; @@ -10183,51 +10583,52 @@ long s48_restart(long proc_345X, long nargs_346X) }} get_error_string: { - status_347X = merged_arg0K0;{ - string_1275X = ps_error_string(status_347X); - x_1276X = strlen((char *) string_1275X); - if ((x_1276X < 256)) { - arg0K0 = x_1276X; - goto L9589;} + status_363X = merged_arg0K0;{ + string_1325X = ps_error_string(status_363X); + x_1326X = strlen((char *) string_1325X); + if ((x_1326X < 256)) { + arg0K0 = x_1326X; + goto L10228;} else { arg0K0 = 256; - goto L9589;}} - L9589: { - len_1277X = arg0K0; - len_1278X = 1 + len_1277X; - addr_1279X = ALLOCATE_SPACE(16, (4 + len_1278X)); - *((long *) addr_1279X) = (66 + (((len_1278X)<<8))); - string_1280X = 3 + (((long) (addr_1279X + 4))); - *((unsigned char *) ((((char *) (-3 + string_1280X))) + len_1277X)) = 0; + goto L10228;}} + L10228: { + len_1327X = arg0K0; + len_1328X = 1 + len_1327X; + addr_1329X = ALLOCATE_SPACE(17, (4 + len_1328X)); + *((long *) addr_1329X) = (70 + (((len_1328X)<<8))); + string_1330X = 3 + (((long) (addr_1329X + 4))); + *((unsigned char *) ((((char *) (-3 + string_1330X))) + len_1327X)) = 0; arg0K0 = 0; - goto L9599;} - L9599: { - i_1281X = arg0K0; - if ((i_1281X == len_1277X)) { - get_error_string0_return_value = string_1280X; + goto L10238;} + L10238: { + i_1331X = arg0K0; + if ((i_1331X == len_1327X)) { + get_error_string0_return_value = string_1330X; goto get_error_string_return;} else { - *((unsigned char *) ((((char *) (-3 + string_1280X))) + i_1281X)) = ((*(string_1275X + i_1281X))); - arg0K0 = (1 + i_1281X); - goto L9599;}} + *((unsigned char *) ((((char *) (-3 + string_1330X))) + i_1331X)) = ((*(string_1325X + i_1331X))); + arg0K0 = (1 + i_1331X); + goto L10238;}} get_error_string_return: switch (get_error_string_return_tag) { case 0: goto get_error_string_return_0; case 1: goto get_error_string_return_1; case 2: goto get_error_string_return_2; case 3: goto get_error_string_return_3; - default: goto get_error_string_return_4; + case 4: goto get_error_string_return_4; + default: goto get_error_string_return_5; }} pop_continuationB: { -{ cont_1282X = ScontS; - tem_1283X = *((long *) ((((char *) (-3 + cont_1282X))) + 8)); - pc_1284X = *((long *) ((((char *) (-3 + cont_1282X))) + 4)); - StemplateS = tem_1283X; - Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_1283X)))))))) + (((pc_1284X)>>2))); - SenvS = (*((long *) ((((char *) (-3 + cont_1282X))) + 12))); - ScontS = (*((long *) (((char *) (-3 + cont_1282X))))); - SstackS = ((((char *) (-3 + cont_1282X))) + 12); +{ cont_1332X = ScontS; + tem_1333X = *((long *) ((((char *) (-3 + cont_1332X))) + 8)); + pc_1334X = *((long *) ((((char *) (-3 + cont_1332X))) + 4)); + StemplateS = tem_1333X; + Scode_pointerS = ((((char *) (-3 + (*((long *) (((char *) (-3 + tem_1333X)))))))) + (((pc_1334X)>>2))); + SenvS = (*((long *) ((((char *) (-3 + cont_1332X))) + 12))); + ScontS = (*((long *) (((char *) (-3 + cont_1332X))))); + SstackS = ((((char *) (-3 + cont_1332X))) + 12); goto pop_continuationB_return;} pop_continuationB_return: switch (pop_continuationB_return_tag) { @@ -10237,67 +10638,67 @@ long s48_restart(long proc_345X, long nargs_346X) }} } -long s48_call_startup_procedure(char **startup_vector_1285X, long startup_vector_length_1286X) +long s48_call_startup_procedure(char **startup_vector_1335X, long startup_vector_length_1336X) { char arg2K0; long arg0K1; long arg0K0; - long v_1335X; - long x_1334X; - long x_1333X; - char * addr_1332X; - long b_1331X; - long channel_1330X; - long x_1329X; - char * addr_1328X; - long b_1327X; - long channel_1326X; - long x_1325X; - char * addr_1324X; - long b_1323X; - long channel_1322X; - long key_1321X; - long key_1320X; - char okayP_1319X; - char v_1318X; - long temp1_1317X; - char v_1316X; - long space_1315X; - long i_1314X; - long length_1313X; - long *v_1312X; - long v_1311X; - long v_1310X; - long y_1309X; - long x_1308X; - long v_1307X; - long x_1306X; - long y_1305X; - char * addr_1304X; - long value_1303X; - long x_1302X; - long y_1301X; - long i_1300X; - long vector_1299X; - char * addr_1298X; - long len_1297X; - long key_1296X; - long key_1295X; - char okayP_1294X; - char v_1293X; - long temp1_1292X; - char v_1291X; - long space_1290X; - long size_1289X; - long i_1288X; - long tem_1287X; + long v_1385X; + long x_1384X; + long x_1383X; + char * addr_1382X; + long b_1381X; + long channel_1380X; + long x_1379X; + char * addr_1378X; + long b_1377X; + long channel_1376X; + long x_1375X; + char * addr_1374X; + long b_1373X; + long channel_1372X; + long key_1371X; + long key_1370X; + char okayP_1369X; + char v_1368X; + long temp1_1367X; + char v_1366X; + long space_1365X; + long i_1364X; + long length_1363X; + long *v_1362X; + long v_1361X; + long v_1360X; + long y_1359X; + long x_1358X; + long v_1357X; + long x_1356X; + long y_1355X; + char * addr_1354X; + long value_1353X; + long x_1352X; + long y_1351X; + long i_1350X; + long vector_1349X; + char * addr_1348X; + long len_1347X; + long key_1346X; + long key_1345X; + char okayP_1344X; + char v_1343X; + long temp1_1342X; + char v_1341X; + long space_1340X; + long size_1339X; + long i_1338X; + long tem_1337X; { SstackS = ((((char *) (-3 + (Sbottom_of_stackS)))) + -8); *((long *) (((char *) (-3 + (Sbottom_of_stackS))))) = 1; ScontS = (Sbottom_of_stackS); SenvS = 13; - tem_1287X = Sinterrupt_templateS; - StemplateS = tem_1287X; - Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_1287X)))))))); + tem_1337X = Sinterrupt_templateS; + StemplateS = tem_1337X; + Scode_pointerS = (((char *) (-3 + (*((long *) (((char *) (-3 + tem_1337X)))))))); SvalS = 13; Scurrent_threadS = 25; Ssession_dataS = 25; @@ -10311,203 +10712,206 @@ long s48_call_startup_procedure(char **startup_vector_1285X, long startup_vector Sinterrupted_templateS = 1; arg0K0 = 0; arg0K1 = 0; - goto L15603;} - L15603: { - i_1288X = arg0K0; - size_1289X = arg0K1; - if ((i_1288X == startup_vector_length_1286X)) { - space_1290X = 1 + (size_1289X + startup_vector_length_1286X); - v_1291X = AVAILABLEp(space_1290X); - if (v_1291X) { + goto L16251;} + L16251: { + i_1338X = arg0K0; + size_1339X = arg0K1; + if ((i_1338X == startup_vector_length_1336X)) { + space_1340X = 1 + (size_1339X + startup_vector_length_1336X); + v_1341X = AVAILABLEp(space_1340X); + if (v_1341X) { arg2K0 = 1; arg0K1 = 0; - goto L15640;} + goto L16288;} else { - collect_saving_temps(1, 1, &temp1_1292X); - v_1293X = AVAILABLEp(space_1290X); - if (v_1293X) { + collect_saving_temps(1, 1, &temp1_1342X); + v_1343X = AVAILABLEp(space_1340X); + if (v_1343X) { arg2K0 = 1; arg0K1 = 0; - goto L15640;} + goto L16288;} else { arg2K0 = 0; arg0K1 = 0; - goto L15640;}}} + goto L16288;}}} else { - arg0K0 = (1 + i_1288X); - arg0K1 = (1 + (size_1289X + ((((4 + (strlen((char *) (*(startup_vector_1285X + i_1288X))))))>>2)))); - goto L15603;}} - L15640: { - okayP_1294X = arg2K0; - key_1295X = arg0K1; - if (okayP_1294X) { - arg0K0 = key_1295X; - goto L15618;} + arg0K0 = (1 + i_1338X); + arg0K1 = (1 + (size_1339X + ((((4 + (strlen((char *) (*(startup_vector_1335X + i_1338X))))))>>2)))); + goto L16251;}} + L16288: { + okayP_1344X = arg2K0; + key_1345X = arg0K1; + if (okayP_1344X) { + arg0K0 = key_1345X; + goto L16266;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_1295X; - goto L15618;}} - L15618: { - key_1296X = arg0K0; - len_1297X = ((startup_vector_length_1286X)<<2); - addr_1298X = ALLOCATE_SPACE(2, (4 + len_1297X)); - *((long *) addr_1298X) = (10 + (((len_1297X)<<8))); - vector_1299X = 3 + (((long) (addr_1298X + 4))); + arg0K0 = key_1345X; + goto L16266;}} + L16266: { + key_1346X = arg0K0; + len_1347X = ((startup_vector_length_1336X)<<2); + addr_1348X = ALLOCATE_SPACE(2, (4 + len_1347X)); + *((long *) addr_1348X) = (10 + (((len_1347X)<<8))); + vector_1349X = 3 + (((long) (addr_1348X + 4))); arg0K0 = 0; - goto L15676;} - L15676: { - i_1300X = arg0K0; - if ((i_1300X == startup_vector_length_1286X)) { - *((long *) (SstackS)) = vector_1299X; + goto L16324;} + L16324: { + i_1350X = arg0K0; + if ((i_1350X == startup_vector_length_1336X)) { + *((long *) (SstackS)) = vector_1349X; SstackS = ((SstackS) + -4); - y_1301X = fileno((stderr)); - x_1302X = fileno((stdout)); - if ((x_1302X < y_1301X)) { - arg0K0 = y_1301X; - goto L14512;} + y_1351X = fileno((stderr)); + x_1352X = fileno((stdout)); + if ((x_1352X < y_1351X)) { + arg0K0 = y_1351X; + goto L15154;} else { - arg0K0 = x_1302X; - goto L14512;}} + arg0K0 = x_1352X; + goto L15154;}} else { - value_1303X = enter_string((*(startup_vector_1285X + i_1300X)), key_1296X); - addr_1304X = (((char *) (-3 + vector_1299X))) + (((i_1300X)<<2)); - S48_WRITE_BARRIER(vector_1299X, addr_1304X, value_1303X); - *((long *) addr_1304X) = value_1303X; - arg0K0 = (1 + i_1300X); - goto L15676;}} - L14512: { - y_1305X = arg0K0; - x_1306X = fileno((stdin)); - if ((x_1306X < y_1305X)) { - arg0K0 = y_1305X; - goto L14514;} + value_1353X = enter_string((*(startup_vector_1335X + i_1350X)), key_1346X); + addr_1354X = (((char *) (-3 + vector_1349X))) + (((i_1350X)<<2)); + S48_WRITE_BARRIER(vector_1349X, addr_1354X, value_1353X); + *((long *) addr_1354X) = value_1353X; + arg0K0 = (1 + i_1350X); + goto L16324;}} + L15154: { + y_1355X = arg0K0; + x_1356X = fileno((stdin)); + if ((x_1356X < y_1355X)) { + arg0K0 = y_1355X; + goto L15156;} else { - arg0K0 = x_1306X; - goto L14514;}} - L14514: { - v_1307X = arg0K0; - x_1308X = Snumber_of_channelsS; - y_1309X = 1 + v_1307X; - if ((x_1308X < y_1309X)) { - arg0K0 = y_1309X; - goto L14516;} + arg0K0 = x_1356X; + goto L15156;}} + L15156: { + v_1357X = arg0K0; + x_1358X = Snumber_of_channelsS; + y_1359X = 1 + v_1357X; + if ((x_1358X < y_1359X)) { + arg0K0 = y_1359X; + goto L15158;} else { - arg0K0 = x_1308X; - goto L14516;}} - L14516: { - v_1310X = arg0K0; - Snumber_of_channelsS = v_1310X; - v_1311X = fileno((stdin)); + arg0K0 = x_1358X; + goto L15158;}} + L15158: { + v_1360X = arg0K0; + Snumber_of_channelsS = v_1360X; + v_1361X = fileno((stdin)); Svm_channelsS = ((long*)malloc(sizeof(long) * (Snumber_of_channelsS))); - Spending_channels_headS = 1; - Spending_channels_tailS = 1; + Spending_input_channels_headS = 1; + Spending_input_channels_tailS = 1; + Spending_output_channels_headS = 1; + Spending_output_channels_tailS = 1; if ((NULL == (Svm_channelsS))) { ps_error("out of memory, unable to continue", 0); - goto L14538;} + goto L15186;} else { - goto L14538;}} - L14538: { - v_1312X = Svm_channelsS; - length_1313X = Snumber_of_channelsS; + goto L15186;}} + L15186: { + v_1362X = Svm_channelsS; + length_1363X = Snumber_of_channelsS; arg0K0 = 0; - goto L14586;} - L14586: { - i_1314X = arg0K0; - if ((i_1314X < length_1313X)) { - *(v_1312X + i_1314X) = 1; - arg0K0 = (1 + i_1314X); - goto L14586;} + goto L15234;} + L15234: { + i_1364X = arg0K0; + if ((i_1364X < length_1363X)) { + *(v_1362X + i_1364X) = 1; + arg0K0 = (1 + i_1364X); + goto L15234;} else { - space_1315X = 3 * (7 + ((((4 + (strlen((char *) "standard output"))))>>2))); - v_1316X = AVAILABLEp(space_1315X); - if (v_1316X) { + space_1365X = 3 * (7 + ((((4 + (strlen((char *) "standard output"))))>>2))); + v_1366X = AVAILABLEp(space_1365X); + if (v_1366X) { arg2K0 = 1; arg0K1 = 0; - goto L14600;} + goto L15248;} else { - collect_saving_temps(1, 1, &temp1_1317X); - v_1318X = AVAILABLEp(space_1315X); - if (v_1318X) { + collect_saving_temps(1, 1, &temp1_1367X); + v_1368X = AVAILABLEp(space_1365X); + if (v_1368X) { arg2K0 = 1; arg0K1 = 0; - goto L14600;} + goto L15248;} else { arg2K0 = 0; arg0K1 = 0; - goto L14600;}}}} - L14600: { - okayP_1319X = arg2K0; - key_1320X = arg0K1; - if (okayP_1319X) { - arg0K0 = key_1320X; - goto L14544;} + goto L15248;}}}} + L15248: { + okayP_1369X = arg2K0; + key_1370X = arg0K1; + if (okayP_1369X) { + arg0K0 = key_1370X; + goto L15192;} else { ps_error("Scheme48 heap overflow", 0); - arg0K0 = key_1320X; - goto L14544;}} - L14544: { - key_1321X = arg0K0; - channel_1322X = fileno((stdin)); - b_1323X = enter_string("standard input", key_1321X); - addr_1324X = ALLOCATE_SPACE(5, 24); - *((long *) addr_1324X) = 5142; - x_1325X = 3 + (((long) (addr_1324X + 4))); - *((long *) (((char *) (-3 + x_1325X)))) = 4; - *((long *) ((((char *) (-3 + x_1325X))) + 4)) = b_1323X; - *((long *) ((((char *) (-3 + x_1325X))) + 8)) = (((channel_1322X)<<2)); - *((long *) ((((char *) (-3 + x_1325X))) + 12)) = 1; - *((long *) ((((char *) (-3 + x_1325X))) + 16)) = 1; - *((Svm_channelsS) + channel_1322X) = x_1325X; - channel_1326X = fileno((stderr)); - b_1327X = enter_string("standard error", key_1321X); - addr_1328X = ALLOCATE_SPACE(5, 24); - *((long *) addr_1328X) = 5142; - x_1329X = 3 + (((long) (addr_1328X + 4))); - *((long *) (((char *) (-3 + x_1329X)))) = 8; - *((long *) ((((char *) (-3 + x_1329X))) + 4)) = b_1327X; - *((long *) ((((char *) (-3 + x_1329X))) + 8)) = (((channel_1326X)<<2)); - *((long *) ((((char *) (-3 + x_1329X))) + 12)) = 1; - *((long *) ((((char *) (-3 + x_1329X))) + 16)) = 1; - *((Svm_channelsS) + channel_1326X) = x_1329X; - channel_1330X = fileno((stdout)); - b_1331X = enter_string("standard output", key_1321X); - addr_1332X = ALLOCATE_SPACE(5, 24); - *((long *) addr_1332X) = 5142; - x_1333X = 3 + (((long) (addr_1332X + 4))); - *((long *) (((char *) (-3 + x_1333X)))) = 8; - *((long *) ((((char *) (-3 + x_1333X))) + 4)) = b_1331X; - *((long *) ((((char *) (-3 + x_1333X))) + 8)) = (((channel_1330X)<<2)); - *((long *) ((((char *) (-3 + x_1333X))) + 12)) = 1; - *((long *) ((((char *) (-3 + x_1333X))) + 16)) = 1; - *((Svm_channelsS) + channel_1330X) = x_1333X; - *((long *) (SstackS)) = x_1325X; + arg0K0 = key_1370X; + goto L15192;}} + L15192: { + key_1371X = arg0K0; + channel_1372X = fileno((stdin)); + b_1373X = enter_string("standard input", key_1371X); + addr_1374X = ALLOCATE_SPACE(6, 24); + *((long *) addr_1374X) = 5146; + x_1375X = 3 + (((long) (addr_1374X + 4))); + *((long *) (((char *) (-3 + x_1375X)))) = 4; + *((long *) ((((char *) (-3 + x_1375X))) + 4)) = b_1373X; + *((long *) ((((char *) (-3 + x_1375X))) + 8)) = (((channel_1372X)<<2)); + *((long *) ((((char *) (-3 + x_1375X))) + 12)) = 1; + *((long *) ((((char *) (-3 + x_1375X))) + 16)) = 1; + *((Svm_channelsS) + channel_1372X) = x_1375X; + channel_1376X = fileno((stderr)); + b_1377X = enter_string("standard error", key_1371X); + addr_1378X = ALLOCATE_SPACE(6, 24); + *((long *) addr_1378X) = 5146; + x_1379X = 3 + (((long) (addr_1378X + 4))); + *((long *) (((char *) (-3 + x_1379X)))) = 8; + *((long *) ((((char *) (-3 + x_1379X))) + 4)) = b_1377X; + *((long *) ((((char *) (-3 + x_1379X))) + 8)) = (((channel_1376X)<<2)); + *((long *) ((((char *) (-3 + x_1379X))) + 12)) = 1; + *((long *) ((((char *) (-3 + x_1379X))) + 16)) = 1; + *((Svm_channelsS) + channel_1376X) = x_1379X; + channel_1380X = fileno((stdout)); + b_1381X = enter_string("standard output", key_1371X); + addr_1382X = ALLOCATE_SPACE(6, 24); + *((long *) addr_1382X) = 5146; + x_1383X = 3 + (((long) (addr_1382X + 4))); + *((long *) (((char *) (-3 + x_1383X)))) = 8; + *((long *) ((((char *) (-3 + x_1383X))) + 4)) = b_1381X; + *((long *) ((((char *) (-3 + x_1383X))) + 8)) = (((channel_1380X)<<2)); + *((long *) ((((char *) (-3 + x_1383X))) + 12)) = 1; + *((long *) ((((char *) (-3 + x_1383X))) + 16)) = 1; + *((Svm_channelsS) + channel_1380X) = x_1383X; + *((long *) (SstackS)) = x_1375X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_1333X; + *((long *) (SstackS)) = x_1383X; SstackS = ((SstackS) + -4); - *((long *) (SstackS)) = x_1329X; + *((long *) (SstackS)) = x_1379X; SstackS = ((SstackS) + -4); - x_1334X = s48_resumer_records(); - *((long *) (SstackS)) = x_1334X; + x_1384X = s48_resumer_records(); + *((long *) (SstackS)) = x_1384X; SstackS = ((SstackS) + -4); s48_initialization_completeB(); - v_1335X = s48_startup_procedure(); - return s48_restart(v_1335X, 5);} + v_1385X = s48_startup_procedure(); + return s48_restart(v_1385X, 5);} }void s48_init(void) { Snumber_of_channelsS = 100; -Spending_channels_headS = 1; -Spending_channels_tailS = 1; +Spending_input_channels_headS = 1; +Spending_input_channels_tailS = 1; +Spending_output_channels_headS = 1; +Spending_output_channels_tailS = 1; Sstack_warningPS = 1; Slosing_opcodeS = 0; -Sos_signal_typeS = 1; -Sos_signal_argumentS = 1; +Sos_signal_listS = 25; Sexternal_exceptionPS = 0; Sexternal_root_stackS = NULL; Sexternal_root_stack_baseS = NULL; Spermanent_external_rootsS = NULL; -Sgc_root_procS = HtopD8861; -Spost_gc_cleanupS = HtopD8854; +Sgc_root_procS = HtopD9001; +Spost_gc_cleanupS = HtopD8994; s48_Scallback_return_stack_blockS = 1; s48_Spending_eventsPS = 0; } diff --git a/c/scheme48vm.h b/c/scheme48vm.h index 70ea4cf..6068ecf 100644 --- a/c/scheme48vm.h +++ b/c/scheme48vm.h @@ -23,7 +23,7 @@ extern char s48_Spending_eventsPS; extern char s48_Spending_interruptPS; extern void s48_disable_interruptsB(void); extern void s48_enable_interruptsB(void); -extern void s48_set_os_signal(s48_value type, s48_value argument); +extern void s48_set_os_signals(s48_value list); /* imported and exported bindings */ extern void s48_define_exported_binding(char *, s48_value); @@ -56,6 +56,6 @@ extern s48_value s48_add_channel(s48_value, s48_value, long); extern s48_value s48_allocate_stob(long type, long size); extern void s48_push_gc_rootsB(char *, long); extern char s48_pop_gc_rootsB(void); -extern char * s48_set_gc_roots_baseB(void); -extern char s48_release_gc_roots_baseB(char *); +extern char * s48_set_gc_roots_baseB(char **); +extern char s48_release_gc_roots_baseB(char *, char*); extern void s48_register_gc_rootB(char *marker); diff --git a/c/srfi/srfi-27.c b/c/srfi/srfi-27.c new file mode 100644 index 0000000..77c83e7 --- /dev/null +++ b/c/srfi/srfi-27.c @@ -0,0 +1,243 @@ +/* 54-BIT (double) IMPLEMENTATION IN C OF THE "MRG32K3A" GENERATOR + =============================================================== + + Sebastian.Egner@philips.com, Mar-2002, in ANSI-C and Scheme 48 0.57 + + This code is a C-implementation of Pierre L'Ecuyer's MRG32k3a generator. + The code uses (double)-arithmetics, assuming that it covers the range + {-2^53..2^53-1} exactly (!). The code of the generator is based on the + L'Ecuyer's own implementation of the generator. Please refer to the + file 'mrg32k3a.scm' for more information about the method. + + The method provides the following functions via the C/Scheme + interface of Scheme 48 0.57 to 'mrg32k3a-b.scm': + + s48_value mrg32k3a_pack_state1(s48_value state); + s48_value mrg32k3a_unpack_state1(s48_value state); + s48_value mrg32k3a_random_range(); + s48_value mrg32k3a_random_integer(s48_value state, s48_value range); + s48_value mrg32k3a_random_real(s48_value state); + + As Scheme48 FIXNUMs cannot cover the range {0..m1-1}, we break up + all values x in the state into x0+x1*w, where w = 2^16 = 65536. + The procedures in Scheme correct for that. + + compile this file with: + gcc -c -I $SCHEME48 mrg32k3a-b.c + + history of this file: + SE, 18-Mar-2002: initial version + SE, 22-Mar-2002: interface changed + SE, 25-Mar-2002: tested with Scheme 48 0.57 in c/srfi-27 + SE, 27-Mar-2002: cleaned + SE, 13-May-2002: bug found by Shiro Kawai removed +*/ + +#include "scheme48.h" /* $SCHEME48/c/scheme48.h */ +#include + +#ifndef NULL + #define NULL 0 +#endif +/* maximum value for random_integer: min(S48_MAX_FIXNUM_VALUE, m1) */ +#define m_max (((long)1 << 29) - 1) + +/* The Generator + ============= +*/ + +/* moduli of the components */ +#define m1 4294967087.0 +#define m2 4294944443.0 + +/* representation of the state in C */ +typedef struct { + double + x10, x11, x12, + x20, x21, x22; +} state_t; + +/* recursion coefficients of the components */ +#define a12 1403580.0 +#define a13n 810728.0 +#define a21 527612.0 +#define a23n 1370589.0 + +/* normalization factor 1/(m1 + 1) */ +#define norm 2.328306549295728e-10 + + +/* the actual generator */ + +static double mrg32k3a(state_t *s) { /* (double), in {0..m1-1} */ + double x10, x20, y; + long k10, k20; + +/* #define debug 1 */ + +#if defined(debug) + printf( + "state = {%g %g %g %g %g %g};\n", + s->x10, s->x11, s->x12, + s->x20, s->x21, s->x22 + ); +#endif + + /* component 1 */ + x10 = a12*(s->x11) - a13n*(s->x12); + k10 = x10 / m1; + x10 -= k10 * m1; + if (x10 < 0.0) + x10 += m1; + s->x12 = s->x11; + s->x11 = s->x10; + s->x10 = x10; + + /* component 2 */ + x20 = a21*(s->x20) - a23n*(s->x22); + k20 = x20 / m2; + x20 -= k20 * m2; + if (x20 < 0.0) + x20 += m2; + s->x22 = s->x21; + s->x21 = s->x20; + s->x20 = x20; + + /* combination of component */ + y = x10 - x20; + if (y < 0.0) + y += m1; + return y; +} + +/* Exported Interface + ================== +*/ + +s48_value mrg32k3a_pack_state1(s48_value state) { + s48_value result; + state_t s; + S48_DECLARE_GC_PROTECT(1); + + S48_GC_PROTECT_1(state); /* s48_extract_integer may GC */ + + result = S48_MAKE_VALUE(state_t); + + +#define REF(i) (double)s48_extract_integer(S48_VECTOR_REF(state, (long)(i))) + + /* copy the numbers from state into s */ + s.x10 = REF( 0) + 65536.0 * REF( 1); + s.x11 = REF( 2) + 65536.0 * REF( 3); + s.x12 = REF( 4) + 65536.0 * REF( 5); + s.x20 = REF( 6) + 65536.0 * REF( 7); + s.x21 = REF( 8) + 65536.0 * REF( 9); + s.x22 = REF(10) + 65536.0 * REF(11); + +#undef REF + + S48_GC_UNPROTECT(); + + /* box s into a Scheme object */ + result = S48_MAKE_VALUE(state_t); + S48_SET_VALUE(result, state_t, s); + return result; +} + +s48_value mrg32k3a_unpack_state1(s48_value state) { + s48_value result = S48_UNSPECIFIC; + state_t s; + + S48_DECLARE_GC_PROTECT(1); + S48_GC_PROTECT_1(result); + + /* unbox s from the Scheme object */ + s = S48_EXTRACT_VALUE(state, state_t); + + /* make and fill a Scheme vector with the numbers */ + result = s48_make_vector((long)12, S48_FALSE); + +#define SET(i, x) { \ + long x1 = (long)((x) / 65536.0); \ + long x0 = (long)((x) - 65536.0 * (double)x1); \ + S48_VECTOR_SET(result, (long)(i+0), s48_enter_integer(x0)); \ + S48_VECTOR_SET(result, (long)(i+1), s48_enter_integer(x1)); } + + SET( 0, s.x10); + SET( 2, s.x11); + SET( 4, s.x12); + SET( 6, s.x20); + SET( 8, s.x21); + SET(10, s.x22); + +#undef SET + + S48_GC_UNPROTECT(); + + return result; +} + +s48_value mrg32k3a_random_range(void) { + return s48_enter_fixnum(m_max); +} + +s48_value mrg32k3a_random_integer(s48_value state, s48_value range) { + long result; + state_t s; + long n; + double x, q, qn, xq; + + s = S48_EXTRACT_VALUE(state, state_t); + n = s48_extract_integer(range); + if (!( ((long)1 <= n) && (n <= m_max) )) + s48_raise_range_error(n, (long)1, m_max); + + /* generate result in {0..n-1} using the rejection method */ + q = (double)( (unsigned long)(m1 / (double)n) ); + qn = q * n; + do { + x = mrg32k3a(&s); + } while (x >= qn); + xq = x / q; + + /* check the range */ + if (!( (0.0 <= xq) && (xq < (double)m_max) )) + s48_raise_range_error((long)xq, (long)0, m_max); + + /* return result */ + result = (long)xq; + S48_SET_VALUE(state, state_t, s); + return s48_enter_fixnum(result); +} + +s48_value mrg32k3a_random_real(s48_value state) { + state_t s; + double x; + + s = S48_EXTRACT_VALUE(state, state_t); + x = (mrg32k3a(&s) + 1.0) * norm; + S48_SET_VALUE(state, state_t, s); + return s48_enter_double(x); +} + +/* Kludge for scsh */ +static s48_value current_time(void){ + struct timeval tv; + gettimeofday(&tv, NULL); + return s48_enter_integer(tv.tv_sec); +} + + +/* Exporting the C values to Scheme + ================================ +*/ + +void s48_init_srfi_27(void) { + S48_EXPORT_FUNCTION(mrg32k3a_pack_state1); + S48_EXPORT_FUNCTION(mrg32k3a_unpack_state1); + S48_EXPORT_FUNCTION(mrg32k3a_random_range); + S48_EXPORT_FUNCTION(mrg32k3a_random_integer); + S48_EXPORT_FUNCTION(mrg32k3a_random_real); + S48_EXPORT_FUNCTION(current_time); +} + diff --git a/c/sysdep.h.in b/c/sysdep.h.in deleted file mode 100644 index 5cbb90e..0000000 --- a/c/sysdep.h.in +++ /dev/null @@ -1,99 +0,0 @@ -/* c/sysdep.h.in. Generated automatically from configure.in by autoheader. */ - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define if you need to in order for stat and other things to work. */ -#undef _POSIX_SOURCE - -/* Define as the return type of signal handlers (int or void). */ -#undef RETSIGTYPE - -/* - * HAVE_SIGACTION is defined iff sigaction() is available. - */ -#undef HAVE_SIGACTION - -/* - * HAVE_STRERROR is defined iff the standard libraries provide strerror(). - */ -#undef HAVE_STRERROR - -/* - * NLIST_HAS_N_NAME is defined iff a struct nlist has an n_name member. - * If it doesn't then we assume it has an n_un member which, in turn, - * has an n_name member. - */ -#undef NLIST_HAS_N_NAME - -/* - * USCORE is defined iff C externals are prepended with an underscore. - */ -#undef USCORE - -/* Define if you have the chroot function. */ -#undef HAVE_CHROOT - -/* Define if you have the dlopen function. */ -#undef HAVE_DLOPEN - -/* Define if you have the ftime function. */ -#undef HAVE_FTIME - -/* Define if you have the gettimeofday function. */ -#undef HAVE_GETTIMEOFDAY - -/* Define if you have the nlist function. */ -#undef HAVE_NLIST - -/* Define if you have the select function. */ -#undef HAVE_SELECT - -/* Define if you have the setitimer function. */ -#undef HAVE_SETITIMER - -/* Define if you have the sigaction function. */ -#undef HAVE_SIGACTION - -/* Define if you have the socket function. */ -#undef HAVE_SOCKET - -/* Define if you have the header file. */ -#undef HAVE_LIBGEN_H - -/* Define if you have the header file. */ -#undef HAVE_POSIX_TIME_H - -/* Define if you have the header file. */ -#undef HAVE_SYS_SELECT_H - -/* Define if you have the header file. */ -#undef HAVE_SYS_TIMEB_H - -/* Define if you have the dl library (-ldl). */ -#undef HAVE_LIBDL - -/* Define if you have the elf library (-lelf). */ -#undef HAVE_LIBELF - -/* Define if you have the gen library (-lgen). */ -#undef HAVE_LIBGEN - -/* Define if you have the m library (-lm). */ -#undef HAVE_LIBM - -/* Define if you have the mld library (-lmld). */ -#undef HAVE_LIBMLD - -/* Define if you have the nsl library (-lnsl). */ -#undef HAVE_LIBNSL - -/* Define if you have the socket library (-lsocket). */ -#undef HAVE_LIBSOCKET - -/* Define if you have the sun library (-lsun). */ -#undef HAVE_LIBSUN - -#include "fake/sigact.h" -#include "fake/strerror.h" -#include "fake/sys-select.h" diff --git a/c/unix/dynamo-test.c b/c/unix/dynamo-test.c new file mode 100644 index 0000000..70beb8b --- /dev/null +++ b/c/unix/dynamo-test.c @@ -0,0 +1,40 @@ + +/* + * A simple test file for dynamic loading, dynamic name lookup, and + * old-style external calls. + */ + +#include +#include "scheme48.h" + +/* + * These should only be called on characters or other immediates. + */ + +s48_value +s48_dynamo_test(s48_value arg0, s48_value arg1, s48_value arg2) +{ + int i; + + s48_value vector = s48_make_vector(3, S48_FALSE); + + S48_VECTOR_SET(vector, 0, arg0); + S48_VECTOR_SET(vector, 1, arg1); + S48_VECTOR_SET(vector, 2, arg2); + + return vector; +} + +s48_value +s48_old_dynamo_test(long nargs, s48_value args[]) +{ + int i; + + s48_value vector = s48_make_vector(nargs, S48_FALSE); + + for (i = 0; i < nargs; i++) + S48_VECTOR_SET(vector, i, args[i]); + + return vector; +} + diff --git a/c/unix/dynamo.c b/c/unix/dynamo.c index 937688b..1231513 100644 --- a/c/unix/dynamo.c +++ b/c/unix/dynamo.c @@ -7,8 +7,12 @@ #include #include "sysdep.h" #include "scheme48.h" -#include +#if defined(HAVE_DLOPEN) +#include +#else +#include "../fake/dlfcn.h" +#endif #if defined(RTLD_NOW) #define DLOPEN_MODE RTLD_NOW diff --git a/c/unix/event.c b/c/unix/event.c index 79b16b9..9d98ccf 100644 --- a/c/unix/event.c +++ b/c/unix/event.c @@ -13,16 +13,31 @@ #include "c-mods.h" #include "scheme48vm.h" #include "event.h" +#include "../scsh/scsh_aux.h" +#include "../scsh/signals1.h" /* turning interrupts and I/O readiness into events */ +sigset_t full_sigset; -#define block_interrupts() -#define allow_interrupts() +#define block_interrupts(){sigprocmask (SIG_BLOCK, &full_sigset, 0);} +#define allow_interrupts(){sigprocmask (SIG_UNBLOCK, &full_sigset, 0);} static void when_keyboard_interrupt(); static void when_alarm_interrupt(); static void when_sigpipe_interrupt(); + +/* JMG:*/ +static void when_scsh_interrupt(); +/* JMG: for scsh */ +#define INTERRUPT_QUEUE_LENGTH 32 + +static int interrupt_queue [INTERRUPT_QUEUE_LENGTH]; +static int next_interrupt = 0; +static int s48_os_signal_pending(void); +static bool s48_os_signal_happend(void); + + bool s48_setcatcher(int signum, void (*catcher)(int)); void s48_start_alarm_interrupts(void); @@ -38,6 +53,47 @@ s48_sysdep_init(void) errno); exit(1); } + + sigfillset (&full_sigset); + + /* JMG: for scsh */ + s48_setcatcher(SIGCHLD, when_scsh_interrupt); + s48_setcatcher(SIGCONT, when_scsh_interrupt); + s48_setcatcher(SIGHUP, when_scsh_interrupt); + s48_setcatcher(SIGQUIT, when_scsh_interrupt); + s48_setcatcher(SIGTERM, when_scsh_interrupt); + s48_setcatcher(SIGTSTP, when_scsh_interrupt); + s48_setcatcher(SIGUSR1, when_scsh_interrupt); + s48_setcatcher(SIGUSR2, when_scsh_interrupt); +#ifdef SIGINFO + s48_setcatcher(SIGINFO, when_scsh_interrupt); +#endif +#ifdef SIGIO + s48_setcatcher(SIGIO, when_scsh_interrupt); +#endif +#if defined SIGPOLL && ((defined SIGIO && SIGPOLL != SIGIO) || \ + !defined SIGIO) + s48_setcatcher(SIGPOLL, when_scsh_interrupt); +#endif +#ifdef SIGPROF + s48_setcatcher(SIGPROF, when_scsh_interrupt); +#endif +#ifdef SIGPWR + s48_setcatcher(SIGPWR, when_scsh_interrupt); +#endif +#ifdef SIGVTALRM + s48_setcatcher(SIGVTALRM, when_scsh_interrupt); +#endif +#ifdef SIGWINCH + s48_setcatcher(SIGWINCH, when_scsh_interrupt); +#endif +#ifdef SIGXCPU + s48_setcatcher(SIGXCPU, when_scsh_interrupt); +#endif +#ifdef SIGXFSZ + s48_setcatcher(SIGXFSZ, when_scsh_interrupt); +#endif + s48_start_alarm_interrupts(); } @@ -51,15 +107,21 @@ s48_setcatcher(int signum, void (*catcher)(int)) { struct sigaction sa; - if (sigaction(signum, (struct sigaction *)NULL, &sa) != 0) - return (FALSE); - if (sa.sa_handler == SIG_IGN) - return (TRUE); + if (sigaction(signum, (struct sigaction *)NULL, &sa) != 0){ + fprintf(stderr, "Failed to get sigaction for signal %d\n", signum); + exit(1); + } + /* JMG: what's the point of not setting the handler in this case? + if (sa.sa_handler == SIG_IGN) + return (TRUE);*/ sa.sa_handler = catcher; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; - if (sigaction(signum, &sa, (struct sigaction *)NULL) != 0) - return (FALSE); + if (sigaction(signum, &sa, (struct sigaction *)NULL) != 0){ + fprintf(stderr, "Failed to define handler for signal %d\n", signum); + exit(1); + } + return (TRUE); } @@ -106,6 +168,8 @@ when_alarm_interrupt(int ign) return; } + + #define USEC_PER_POLL (1000000 / POLLS_PER_SECOND) /* delta is in ticks, 0 cancels current alarm */ @@ -222,7 +286,7 @@ s48_stop_alarm_interrupts(void) * (queue-ready-ports) * (set! *poll-time* (+ *time* *poll-interval*)))) * (cond ((not (queue-empty? ready-ports)) - * (values (enum event-type i/o-completion) + * (values (enum event-type i/o-{read/write}-completion) * (dequeue! ready-ports))) * ((>= *current_time* *alarm-time*) * (set! *alarm-time* max-integer) @@ -237,9 +301,20 @@ s48_stop_alarm_interrupts(void) * (values (enum event-type no-event) #f)))))) */ -static bool there_are_ready_ports(void); -static int next_ready_port(void); -static int queue_ready_ports(bool wait, long seconds, long ticks); +#define FD_QUIESCENT 0 /* idle */ +#define FD_READY 1 /* I/O ready to be performed */ +#define FD_PENDING 2 /* waiting */ + +typedef struct fd_struct { + int fd, /* file descriptor */ + status; /* one of the FD_* constants */ + bool is_input; /* iff input */ + struct fd_struct *next; /* next on same queue */ +} fd_struct; + +static bool there_are_ready_ports(void); +static fd_struct *next_ready_fd_struct(void); +static int queue_ready_ports(bool wait, long seconds, long ticks); int s48_get_next_event(long *ready_fd, long *status) @@ -249,6 +324,8 @@ s48_get_next_event(long *ready_fd, long *status) */ int io_poll_status; + fd_struct *f; + /* fprintf(stderr, "[poll at %d (waiting for %d)]\n", s48_current_time, alarm_time); */ @@ -269,21 +346,25 @@ s48_get_next_event(long *ready_fd, long *status) } } if (there_are_ready_ports()) { - *ready_fd = next_ready_port(); + f = next_ready_fd_struct(); + *ready_fd = f->fd; *status = 0; /* chars read or written */ /* fprintf(stderr, "[i/o completion]\n"); */ - return (IO_COMPLETION_EVENT); + if (f->is_input) + return (IO_READ_COMPLETION_EVENT); + else + return (IO_WRITE_COMPLETION_EVENT); } if (alarm_time != -1 && s48_current_time >= alarm_time) { alarm_time = -1; /* fprintf(stderr, "[alarm]\n"); */ return (ALARM_EVENT); } - /* + block_interrupts(); + /* JMG: scsh should handle this */ if (s48_os_signal_pending()) return (OS_SIGNAL_EVENT); - */ - block_interrupts(); + if ((keyboard_interrupt_count == 0) && (alarm_time == -1 || s48_current_time < alarm_time) && (poll_time == -1 || s48_current_time < poll_time)) @@ -299,17 +380,6 @@ s48_get_next_event(long *ready_fd, long *status) * the pending ports and move any that are ready onto the other queue and * signal an event. */ -#define FD_QUIESCENT 0 /* idle */ -#define FD_READY 1 /* I/O ready to be performed */ -#define FD_PENDING 2 /* waiting */ - -typedef struct fd_struct { - int fd, /* file descriptor */ - status; /* one of the FD_* constants */ - bool is_input; /* iff input */ - struct fd_struct *next; /* next on same queue */ -} fd_struct; - /* * A queue of fd_structs is empty iff the first field is NULL. In @@ -394,14 +464,14 @@ there_are_ready_ports(void) } -static int -next_ready_port(void) +static fd_struct * +next_ready_fd_struct(void) { fd_struct *p; p = rmque(&ready.first, &ready); p->status = FD_QUIESCENT; - return (p->fd); + return (p); } @@ -508,6 +578,8 @@ s48_wait_for_event(long max_wait, bool is_minutes) } if (keyboard_interrupt_count > 0) status = NO_ERRORS; + else if (s48_os_signal_happend ()) + status = NO_ERRORS; else { status = queue_ready_ports(TRUE, seconds, ticks); if (there_are_ready_ports()) @@ -552,8 +624,9 @@ queue_ready_ports(bool wait, long seconds, long ticks) } tvp = &tv; if (wait) - if (seconds == -1) + if (seconds == -1){ tvp = NULL; + } else { tv.tv_sec = seconds; tv.tv_usec = ticks * (1000000 / TICKS_PER_SECOND); @@ -561,6 +634,9 @@ queue_ready_ports(bool wait, long seconds, long ticks) else timerclear(&tv); while(TRUE) { + if ((keyboard_interrupt_count > 0) || s48_os_signal_happend ()) + return NO_ERRORS; + /* time gap */ left = select(limfd, &reads, &writes, &alls, tvp); if (left > 0) { fdpp = &pending.first; @@ -587,3 +663,81 @@ queue_ready_ports(bool wait, long seconds, long ticks) return errno; } } + +/* + * Adds `signum' to the queue of received signals. + */ + +static void +queue_interrupt(int signum) +{ + if (next_interrupt == INTERRUPT_QUEUE_LENGTH){ + perror("Interrupt queue overflow -- report to Scheme 48 maintainers."); + exit(-1); + } + interrupt_queue[next_interrupt] = signum; + next_interrupt++; +} + +/* JMG: for scsh */ +static void when_scsh_interrupt(int signo) +{ + queue_interrupt(sig2int[signo]); + NOTE_EVENT; + return; +} + + +/* + * This procedure is called periodically by the VM . + * + * s48_set_os_signal() is a VM procedure. The two arguments are the type + * of interrupt and one other value which can be used to return whatever + * associated information is desired. The two values, along with the + * current enabled-interrupts mask, are passed to the handler for os-signal + * interrupts. + * + * A handler can be installed by doing + (set-interrupt-handler! (enum interrupt os-signal) + (lambda (type arg enabled-interrupts) + (display type) + (newline) + (display arg) + (newline) + (display enabled-interrupts) + (newline))) + * The handler is called with all interrupts disabled. They are + * reenabled when the handler returns (or if done by hand). + */ + +/* + * Returns TRUE if there is a signal to be delivered up to Scheme. + * Needs no be called with interrupts blocked. + */ + +int +s48_os_signal_pending(void) { + int i; + s48_value interrupt_list = S48_NULL; + block_interrupts(); + + if (next_interrupt == 0) { + allow_interrupts(); + return FALSE; } + else { + /* turn the queue into a scheme list and preserve the order */ + for (i = next_interrupt; i > 0 ; i--) + interrupt_list = s48_cons (s48_enter_fixnum (interrupt_queue [i - 1]), + interrupt_list); + s48_set_os_signals(interrupt_list); + + next_interrupt = 0; + allow_interrupts(); + return TRUE; } +} + +bool +s48_os_signal_happend(void) { + return (next_interrupt != 0); +} + diff --git a/c/unix/fd-io.c b/c/unix/fd-io.c index ff8df92..22c8083 100644 --- a/c/unix/fd-io.c +++ b/c/unix/fd-io.c @@ -82,6 +82,45 @@ ps_close_fd(long fd_as_long) } } +bool ps_check_fd(long fd_as_long, bool is_read, long *status) +{ + int fd = (int)fd_as_long; + int ready; + + struct timeval timeout; + fd_set fds; + + FD_ZERO(&fds); + FD_SET(fd, &fds); + timerclear(&timeout); + + *status = NO_ERRORS; + + while(TRUE) { + ready = select(fd + 1, + is_read ? &fds : NULL, + is_read ? NULL : &fds, + &fds, + &timeout); + if (ready == 0) + return FALSE; + else if (ready == 1) + return TRUE; + else if (errno != EINTR) { + *status = errno; + return FALSE; } } +} + +/* + * Return TRUE if successful, and FALSE otherwise. + */ + +bool +ps_add_pending_fd(long fd_as_long, bool is_input) +{ + return s48_add_pending_fd((int) fd_as_long, is_input); +} + long ps_read_fd(long fd_as_long, char *buffer, long max, bool waitp, bool *eofp, bool *pending, long *status) @@ -172,7 +211,7 @@ long ps_abort_fd_op(long fd_as_long) { int fd = (int)fd_as_long; - + fprintf(stderr, "aborting %d\n", fd); if (!s48_remove_fd(fd)) fprintf(stderr, "Error: ps_abort_fd_op, no pending operation on fd %d\n", fd); diff --git a/c/unix/misc.c b/c/unix/misc.c new file mode 100644 index 0000000..f8fe75e --- /dev/null +++ b/c/unix/misc.c @@ -0,0 +1,129 @@ +/* Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. + See file COPYING. */ + +#include +#include /* for getenv(), etc. (POSIX?/ANSI) */ +#include /* for strncpy(), etc. (POSIX/ANSI) */ +#include /* for getpwnam() (POSIX.1) */ +#include /* for sysconf(), etc. (POSIX.1/.2)*/ +#include +#include "sysdep.h" + + +#define TRUE (0 == 0) +#define FALSE (0 == 1) + +/* + Expanding Unix filenames + Unix Sucks + Richard Kelsey Wed Jan 17 21:40:26 EST 1990 + Later modified by others who wish to remain anonymous + + Expands initial ~ and ~/ in string `name', leaving the result in `buffer'. + `buffer_len' is the length of `buffer'. + + Note: strncpy(x, y, n) copies from y to x. +*/ + +char *s48_expand_file_name (name, buffer, buffer_len) + char *name, *buffer; + int buffer_len; +{ +#define USER_NAME_SIZE 256 + char *dir, *p, user_name[USER_NAME_SIZE]; + struct passwd *user_data; + int dir_len, i; + extern char *getenv(); + int name_len = strlen(name); + + dir = 0; + + if (name[0] == '~') { + name++; name_len--; + + if (name[0] == '/' || name[0] == 0) { + dir = getenv("HOME"); } + + else { + for (i = 0, p = name; i < name_len && *p != '/'; i++, p++) + if (i > (USER_NAME_SIZE - 2)) { + fprintf(stderr, + "\ns48_expand_file_name: user name longer than %d characters\n", + USER_NAME_SIZE - 3); + return(NULL); }; + strncpy(user_name, name, i); + user_name[i] = 0; + user_data = getpwnam(user_name); + if (!user_data) { + fprintf(stderr, "\ns48_expand_file_name: unknown user \"%s\"\n", + user_name); + return(NULL); }; + name_len -= i; + name = p; + dir = user_data->pw_dir; } } + + else if (name[0] == '$') { + name++; name_len--; + + for (i = 0, p = name; i < name_len && *p != '/'; i++, p++) + if (i > (USER_NAME_SIZE - 2)) { + fprintf(stderr, + "\ns48_expand_file_name: environment variable longer than %d characters\n", + USER_NAME_SIZE - 3); + return(NULL); }; + strncpy(user_name, name, i); + user_name[i] = 0; + + name_len -= i; + name = p; + dir = getenv(user_name); } + + if (dir) { + dir_len = strlen(dir); + if ((name_len + dir_len + 1) > buffer_len) { + fprintf(stderr, "\ns48_expand_file_name: supplied buffer is too small\n"); + return(NULL); }; + strncpy(buffer, dir, dir_len); + strncpy(buffer + dir_len, name, name_len); + buffer[name_len + dir_len] = 0; } + + else { + if ((name_len + 1) > buffer_len) { + fprintf(stderr, "\ns48_expand_file_name: supplied buffer is too small\n"); + return(NULL); }; + strncpy(buffer, name, name_len); + buffer[name_len] = 0; } + + return(buffer); +} + +/* test routine +main(argc, argv) + int argc; + char *argv[]; +{ + char buffer[32]; + s48_expand_file_name(argv[1], buffer, 32); + printf("%s\n", buffer); + return(0); +} +*/ + + +/* Driver loop for tail-recursive calls */ + +long s48_return_value; + +long +s48_run_machine(long (*proc) (void)) +{ + while (proc != 0) + proc = (long (*) (void)) (*proc)(); + return s48_return_value; +} + +unsigned char * +ps_error_string(long the_errno) +{ + return((unsigned char *)strerror(the_errno)); +} diff --git a/c/unix/socket.c b/c/unix/socket.c index b8946a4..6ea2271 100644 --- a/c/unix/socket.c +++ b/c/unix/socket.c @@ -36,9 +36,23 @@ static s48_value s48_socket(s48_value server_p), s48_value input_p), s48_get_host_name(void); +s48_value s48_add_pending_channel (s48_value channel) +{ + int socket_fd; + + S48_CHECK_CHANNEL(channel); + socket_fd = S48_UNSAFE_EXTRACT_FIXNUM(S48_UNSAFE_CHANNEL_OS_INDEX(channel)); + + if (! s48_add_pending_fd(socket_fd, 1)) /* 1 for: yes, is input */ + s48_raise_out_of_memory_error(); + + return S48_UNSPECIFIC; +} + /* * Install all exported functions in Scheme48. */ + void s48_init_socket(void) { @@ -50,6 +64,7 @@ s48_init_socket(void) S48_EXPORT_FUNCTION(s48_connect); S48_EXPORT_FUNCTION(s48_close_socket_half); S48_EXPORT_FUNCTION(s48_get_host_name); + S48_EXPORT_FUNCTION(s48_add_pending_channel); } /* @@ -235,7 +250,7 @@ s48_accept(s48_value channel) * and return #F to tell the Scheme procedure to wait. */ - if ((errno != EWOULDBLOCK) && (errno != EINTR) && (errno == EAGAIN)) + if ((errno != EWOULDBLOCK) && (errno != EINTR) && (errno != EAGAIN)) s48_raise_os_error(errno); if (! s48_add_pending_fd(socket_fd, TRUE)) diff --git a/c/unix/test.c b/c/unix/test.c new file mode 100644 index 0000000..0835635 --- /dev/null +++ b/c/unix/test.c @@ -0,0 +1,12 @@ + +#include "c/scheme48.h" + +long +frog(long arg_count, long *args) +{ + long i, res; + + for (i = 0, res = s48_enter_integer(-100); i < arg_count; res += args[i], i++); + + return res; +} diff --git a/c/write-barrier.h b/c/write-barrier.h new file mode 100644 index 0000000..721b011 --- /dev/null +++ b/c/write-barrier.h @@ -0,0 +1,2 @@ + +#define S48_WRITE_BARRIER(stob, address, value) ((void)0) diff --git a/cig/.gitignore b/cig/.gitignore new file mode 100644 index 0000000..586d7ba --- /dev/null +++ b/cig/.gitignore @@ -0,0 +1,3 @@ +cig +cig.image + diff --git a/cig/cig.scm b/cig/cig.scm new file mode 100644 index 0000000..5d46356 --- /dev/null +++ b/cig/cig.scm @@ -0,0 +1,1171 @@ +;;; This file defines the cig foreign function interface for Scheme 48. +;;; The current version is Cig 3.0. +;;; This file contains the following Scheme 48 modules: +;;; - cig-processor +;;; The code for translating DEFINE-FOREIGN forms into C stubs. +;;; - cig-standalone +;;; The S48 top-level for translating stdin->stdout. +;;; - define-foreign-syntax-support +;;; This package must be opened in the FOR-SYNTAX package, +;;; so that the DEFINE-FOREIGN macro-expander code can use it's procedures. +;;; - define-foreign-syntax +;;; This package must be opened by cig's clients, to access the +;;; DEFINE-FOREIGN and FOREIGN-INCLUDE macros. +;;; +;;; Copyright (c) 1994 by Olin Shivers. + +(define-structures ((cig-processor (export process-define-foreign-file + process-define-foreign-stream)) + (cig-standalone (export cig-standalone-toplevel)) + + ;; This must be opened in the FOR-SYNTAX package. + (define-foreign-syntax-support + (export define-foreign-expander))) + + (open scheme formats structure-refs + destructuring receiving + code-vectors) ; for making alien containers. + (access signals) ; for ERROR + (begin + (define error (structure-ref signals error)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; The general syntax of define-foreign is: +;;; (define-foreign scheme-name (c-name arg1 ... argn) [no-declare] +;;; ret1 +;;; . +;;; retn) +;;; +;;; This defines a Scheme procedure, . It takes the arguments +;;; arg1 ... argn, type-checks them, and then passes them to a C stub, +;;; df_. If the Scheme procedure is to return multiple values, the C +;;; stub also gets a return vector passed to return the extra values. The C +;;; stub rep-converts the Scheme data as specified by the i declarations, +;;; and then calls the C procedure . The C procedure is expected to +;;; return its first value () as its real value. The other return values +;;; are returned by assigning targets passed by-reference to by the +;;; stub. These return parameters are passed after the argument parameters. +;;; When returns, the C stub df_ rep-converts the C data, +;;; stuffs extra return values into the Scheme answer vector if there are any, +;;; and returns to the Scheme routine. The Scheme routine completes the +;;; rep-conversion specified by the i declarations, and return the +;;; values. +;;; +;;; An ARGi spec has the form: +;;; (rep [var]) +;;; where REP gives the representation of the value being passed (see +;;; below), and VAR is the name of the Scheme procedure's parameter (for +;;; documentation purposes, mostly). +;;; +;;; The optional symbol NO-DECLARE means "Do not place an extern declaration +;;; of the C routine in the body of the stub." This is necessary for the +;;; occasional strange ANSI C declaration that cig is incapable of generating +;;; (the only case I know of where the C procedure uses varargs, so the C +;;; declaration needs a ..., e.g., +;;; extern int open(const char *, int flags, ...); +;;; In this case, just use NO-DECLARE, and insert your own a declaration of open() +;;; outside the stub with a +;;; (foreign-source "extern int open(const char *, int flags, ...);") +;;; Ugly, yes.) +;;; +;;; The rep-conversion specs are pretty hairy and baroque. I kept throwing +;;; in machinery until I was able to handle all the Unix syscalls, so that +;;; is what drove the complexity level. See syscalls.scm for examples. + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;; The fields of a rep record for argument reps: +;;; Scheme-pred: +;;; A Scheme predicate for type-testing args. #f means no check. +;;; C-decl: +;;; A C declaration for the argument in its C representation -- +;;; the type of the value actually passed to or returned from the foreign +;;; function. This is a format string; the ~a is where the C variable goes. +;;; (format #f c-decl "") is used to compute a pure type -- e.g., for +;;; casts. +;;; C-cvtr: +;;; The Scheme->C rep-converter; a string. Applied as a C +;;; function/macro in the stub. The empty string means the null +;;; rep-conversion. +;;; Post-C: +;;; Optional post-call processing in the C stub; a string like C-cvtr. +;;; If not #f, this form will be applied in the C stub to the C argument +;;; value *after* the C call returns. It is mostly used to free a +;;; block of storage that was malloc'd by the rep converter on the +;;; way in. + +(define (argrep:c-decl i) (vector-ref i 0)) +(define (argrep:scheme-pred i) (vector-ref i 1)) +(define (argrep:c-cvtr i) (vector-ref i 2)) +(define (argrep:post-C i) (vector-ref i 3)) + + +;;; The fields of a rep record for return reps: +;;; C-decl: +;;; As above. +;;; immediate?: +;;; If the return value is to be boxed into a carrier passed in from +;;; Scheme, then this is #f. If this value is a true value, then the +;;; C value is to be rep-converted into an immediate Scheme value. +;;; In this case, the immediate? field is a string, naming the C +;;; function/macro used to do the rep-conversion. +;;; C-boxcvtr: +;;; If immediate? is false, then this value specifies the C code +;;; for rep-converting the return value into the Scheme carrier. +;;; It is a procedure, which is called on two string arguments: +;;; a C variable bound to the carrier, and a C variable bound to +;;; the C return value. The procedure returns a string which is a +;;; C statement for doing the rep-conversion. To pass a raw C value +;;; back, for instance, you would use the following box converter: +;;; (lambda (carrier c-val) (string-append carrier "=" c-val ";")) +;;; make-carrier: +;;; A procedure that when called returns a carrier. This field is only +;;; used if immediate? is #f. This field is a Scheme expression. +;;; S-cvtr +;;; This is a Scheme form that is applied to the rep-converted value passed +;;; back from the C stub. Its value is the actual return value returned to +;;; Scheme. #f means just pass a single value back as-is. This is mostly +;;; used for string hacking. This field is a Scheme expression. + +(define (retrep:c-decl i) (vector-ref i 0)) +(define (retrep:immediate i) (vector-ref i 1)) +(define (retrep:C-boxcvtr i) (vector-ref i 2)) +(define (retrep:make-carrier i) (vector-ref i 3)) +(define (retrep:s-cvtr i) (vector-ref i 4)) + +;;; Works for both argrep-info and retrep-info nodes. +(define (rep:c-decl i) (vector-ref i 0)) + +;;; The Scheme-pred field in this table is a symbol that is syntactically +;;; closed in the macro expander's environment, so the user won't lose +;;; if he should accidentally bind INTEGER? to something unusual, and +;;; then try a DEFINE-FOREIGN. + +;;; WARNING: the xxx_t are not yet adapted to the new FFI, only time_t, +;;; long and int are entered via enter/extract_integer, which converts to a +;;; bignum if appropriate. +;;; Since this requires runtime-checks it is slower than the _integer's +;;; You have to check, where more than 29 bits is required + +(define *simple-argrep-alist* '( + + (char #("char ~a" char? "s48_extract_char" #f)) + (bool #("int ~a" #f "EXTRACT_BOOLEAN" #f)) + + (integer #("int ~a" integer? "s48_extract_integer" #f)) + (short_u #("unsigned short ~a" integer? "s48_extract_fixnum" #f)) + (size_t #("size_t ~a" integer? "s48_extract_fixnum" #f)) + (mode_t #("mode_t ~a" integer? "s48_extract_fixnum" #f)) + (gid_t #("gid_t ~a" integer? "s48_extract_fixnum" #f)) + (uid_t #("uid_t ~a" integer? "s48_extract_fixnum" #f)) + (off_t #("off_t ~a" integer? "s48_extract_fixnum" #f)) + (pid_t #("pid_t ~a" integer? "s48_extract_fixnum" #f)) + (uint_t #("unsigned int ~a" integer? "s48_extract_integer" #f)) + (long #("long ~a" integer? "s48_extract_integer" #f)) + (fixnum #("int ~a" fixnum? "s48_extract_fixnum" #f)) + + ;; extensions by JMG for the new FFI + (time_t #("time_t ~a" integer? "s48_extract_integer" #f)) + (clock_t #("clock_t ~a" integer? "s48_extract_fixnum" #f)) + (ssize_t #("ssize_t ~a" integer? "s48_extract_fixnum" #f)) + + (desc #("s48_value ~a" #f "" #f)) + (string-desc #("s48_value ~a" string? "" #f)) + (char-desc #("s48_value ~a" char? "" #f)) + (integer-desc #("s48_value ~a" integer? "" #f)) + (vector-desc #("s48_value ~a" vector? "" #f)) + (pair-desc #("s48_value ~a" pair? "" #f)) + + (string #("const char *~a" string? "s48_extract_string" #f)) + + (var-string #("char *~a" string? "s48_extract_string" #f)) + + (string-copy #("char *~a" string? "scheme2c_strcpy" #f)))) + +;;; Emit C code to copy a C string into its carrier. +(define (str-and-len->carrier carrier str) + (format #f + "SetAlienVal(S48_CAR(~a),(long) ~a); S48_SET_CDR(~a,strlen_or_false(~a));" + carrier str carrier str)) + +;;; Carrier and assignment-generator for alien values: +(define (simple-assign carrier val) + (format #f "SetAlienVal(~a,(long) ~a);" carrier val)) ;;JMG: untested + +;;; Note: When MAKE-CARRIER and S-CVTR fields are taken from this table, +;;; they are symbols that are syntactically closed in the macro expander's +;;; environment by using the expander's rename procedure. This ensures that +;;; even if the user accidentally binds his own MAKE-ALIEN identifier, +;;; he won't clobber the Scheme stub's use of this MAKE-ALIEN procedure. + +(define *simple-retrep-alist* `( + + ;; All the immediate ones (we are sleazing on ints for now). + (char #("char ~a" "s48_enter_char" #f #f #f)) + (bool #("int ~a" "ENTER_BOOLEAN" #f #f #f)) ;; JMG c and bool: + ; s48 knows nothing about this I think + + (integer #("int ~a" "s48_enter_integer" #f #f #f)) + (fixnum #("int ~a" "s48_enter_fixnum" #f #f #f)) + (short_u #("unsigned short ~a" "s48_enter_fixnum" #f #f #f)) + (size_t #("size_t ~a" "s48_enter_fixnum" #f #f #f)) + (mode_t #("mode_t ~a" "s48_enter_fixnum" #f #f #f)) + (gid_t #("gid_t ~a" "s48_enter_fixnum" #f #f #f)) + (uid_t #("uid_t ~a" "s48_enter_fixnum" #f #f #f)) + (off_t #("off_t ~a" "s48_enter_fixnum" #f #f #f)) + (pid_t #("pid_t ~a" "s48_enter_fixnum" #f #f #f)) + (uint_t #("unsigned int ~a" "s48_enter_fixnum" #f #f #f)) + (long #("long ~a" "s48_enter_integer" #f #f #f)) + + ; Extension by JMG with the new FFI + (time_t #("time_t ~a" "s48_enter_integer" #f #f #f)) + (clock_t #("clock_t ~a" "s48_enter_fixnum" #f #f #f)) + (ssize_t #("ssize_t ~a" "s48_enter_fixnum" #f #f #f)) + + + (desc #("s48_value ~a" "" #f #f #f)) + (string-desc #("s48_value ~a" "" #f #f #f)) + (char-desc #("s48_value ~a" "" #f #f #f)) + (integer-desc #("s48_value ~a" "" #f #f #f)) + (vector-desc #("s48_value ~a" "" #f #f #f)) + (pair-desc #("s48_value ~a" "" #f #f #f)) + + (string #("const char *~a" #f ,str-and-len->carrier make-string-carrier + string-carrier->string)) + + (var-string #("char *~a" #f ,str-and-len->carrier make-string-carrier + string-carrier->string)) + + (string-length #("char *~a" "strlen_or_false" #f #f #f)) + + (static-string #("char *~a" #f ,str-and-len->carrier make-string-carrier + string-carrier->string-no-free)))) + +;;; String reps: +;;; ----------- +;;; - STRING-COPY +;;; Parameter only. The C routine is given a private, malloc'd C string. +;;; The string is not freed when the routine returns. +;;; +;;; - STRING +;;; Parameter: The C routine is given a C string that it should not alter +;;; or retain beyond the end of the routine. Right now, the Scheme string +;;; is copied to a malloc'd C temporary, which is freed after the routine +;;; returns. Later, we'll just pass a pointer into the actual Scheme +;;; string, as soon as Richard fixes the S48 string reps. +;;; Ret value: The C string is from malloc'd storage. Convert it to a +;;; Scheme string and free the C string. +;;; +;;; - STRING-LENGTH +;;; Return-value only. Return the length of the C string, as a fixnum. +;;; +;;; - STATIC-STRING +;;; Return-value only. The C string is not freed after converting it to +;;; to a Scheme string. +;;; +;;; - VAR-STRING +;;; Same as STRING, but C type is declared char* instead of const char*. +;;; Used to keep some broken system call include files happy. + +;;; Parameter reps: +;;; - A simple rep is simply the name of a record in the rep table. +;;; e.g., integer, string +;;; - (REP scheme-pred c-decl to-c [free?]) +;;; A detailed spec, as outlined above. SCHEME-PRED is a procedure or #f. +;;; C-DECL is a format string (or a symbol). TO-C is a format string +;;; (or a symbol). +;;; - (C type) +;;; The argument is a C value, passed with no type-checking +;;; or rep-conversion. TYPE is a format string (or a symbol). + +;;; A return-value rep is: +;;; - A simple rep, as above. +;;; - (MULTI-REP rep1 ... repn) +;;; The single value returned from the C function is rep-converted +;;; n ways, each resulting in a distinct return value from Scheme. +;;; - (TO-SCHEME rep c->scheme) +;;; Identical to REP, but use the single C->SCHEME form for the return +;;; rep-conversion in the C stub. There is no POST-SCHEME processing. This +;;; allows you to use a special rep-converter on the C side, but otherwise +;;; use all the properties of some standard rep. C->SCHEME is a string (or +;;; symbol). +;;; - (C type) +;;; Returns a raw C type. No rep-conversion. TYPE is a C type, represented +;;; as a string (or a symbol). + +;;; C Short-hand: +;;; Things that go in the C code are usually specified as strings, +;;; since C is case-sensitive, and Scheme symbols are not. However, +;;; as a convenient short-hand, symbols may also be used -- they +;;; are mapped to strings by lower-casing their print names. This +;;; applies to the TO-C part of (REP ...) and the C->SCHEME part of +;;; TO-SCHEME. +;;; +;;; Furthermore, C declarations (the TYPE part of (C ...) and the C-DECL part +;;; of (REP ...)) can be either a format string (e.g., "char ~a[]"), or a +;;; symbol (double). A symbol is converted to a string by lower-casing it, and +;;; appending " ~a", so the symbol double is just convenient short-hand for +;;; the C declaration "double ~a". +;;; +;;; Examples: (rep integer? int "EXTRACT_FIXNUM") +;;; (C char*) +;;; (C "int ~a[10]") +;;; (to-scheme integer "HackInt") +;;; +;;; These shorthand forms are not permitted in the actual rep tables; +;;; only in DEFINE-FOREIGN forms. + +;;; Note: the RENAME procedure is for use by the Scheme-stub macro expander +;;; when taking SCHEME-PRED fields from the simple-rep internal table. This +;;; way, the user's bindings of variables won't interfere with the functioning +;;; of the simple reps. When Cig's C-stub generator calls this procedure, it +;;; should just pass the identity procedure for the RENAME argument. + +(define (parameter-rep->info rep rename) + (let* ((hack (lambda (x) + (if (symbol? x) (string-append (symbol->string x) " ~a") + x))) + (do-rep (lambda (scheme-pred C-decl C-cvtr . maybe-post-C) + (vector (hack C-decl) scheme-pred (stringify C-cvtr) + (and (pair? maybe-post-C) (car maybe-post-C))))) + (you-lose (lambda () (error "Unknown parameter rep" rep)))) + + (cond ((symbol? rep) + (cond ((assq rep *simple-argrep-alist*) => + (lambda (entry) + (let* ((info (copy-vector (cadr entry))) + (scheme-pred (argrep:scheme-pred info))) + (vector-set! info 1 (and scheme-pred (rename scheme-pred))) + info))) + + (else (you-lose)))) + + ((pair? rep) + (case (car rep) + ((rep) (apply do-rep (cdr rep))) + ((C) (let* ((c-decl (hack (cadr rep))) + (c-type (format #f c-decl ""))) + (do-rep (rename 'alien?) c-decl + (format #f "(~a)AlienVal" c-type) + #f))) + (else (you-lose)))) + (else (you-lose))))) + +(define (copy-vector v) + (let* ((vlen (vector-length v)) + (v-new (make-vector vlen))) + (do ((i (- vlen 1) (- i 1))) + ((< i 0) v-new) + (vector-set! v-new i (vector-ref v i))))) + +(define (stringify x) + (if (symbol? x) + (list->string (map char-downcase (string->list (symbol->string x)))) + x)) + +;;; Fields are as follows: +;;; c-decl: 0, immediate: 1, C-boxcvtr: 2, make-carrier: 3, s-cvtr: 4 + +;;; Return a list of reps (because of MULTI-REP). +;;; The RENAME arg is for the Scheme-side macro expander, so that +;;; the make-carrier and s-cvtr fields can be syntactically closed +;;; in the expander's environment. The C-stub generator should just +;;; pass an identity procedure for RENAME. + +(define (return-rep->info rep rename) + (let* ((hack (lambda (x) + (if (symbol? x) + (string-append (symbol->string x) " ~a") + x))) + (do-rep (lambda (c-decl . to-scheme) + (list (vector (hack c-decl) (list to-scheme) '() #f)))) + (you-lose (lambda () (error "Unknown return rep" rep))) + + (infos (cond ((symbol? rep) + (cond ((assq rep *simple-retrep-alist*) => + (lambda (entry) + ;; Apply RENAME to make-carrier and s-cvtr. + (let* ((info (copy-vector (cadr entry))) + (make-carrier (retrep:make-carrier info)) + (s-cvtr (retrep:s-cvtr info))) + (vector-set! info 3 + (and make-carrier + (rename make-carrier))) + (vector-set! info 4 + (and s-cvtr (rename s-cvtr))) + (list info)))) + (else (you-lose)))) + + ((pair? rep) + (case (car rep) + ((rep) + (let ((v (apply vector rep))) + (vector-set! v 0 (hack (vector-ref v 0))) + (list v))) + ((to-scheme) ; (to-scheme rep converter) + (let* ((v (car (return-rep->info (cadr rep) rename))) + (v (copy-vector v))) + (vector-set! v 1 (stringify (caddr rep))) + (vector-set! v 2 '#f) + (vector-set! v 3 '#f) + (vector-set! v 4 '#f) + (list v))) + ((C) (list (vector (hack (cadr rep)) #f + simple-assign (rename 'make-alien) + #f))) + ((multi-rep) + (apply append (map (lambda (rep) + (return-rep->info rep rename)) + (cdr rep)))) + (else (you-lose)))) + (else (you-lose))))) + + infos)) + +;;; Return a type string for IGNORE, or a list of lists of info vectors for +;;; the standard case. + +(define (parse-return-reps reps rename) + (cond ((or (not (pair? reps)) + (not (list? reps))) + (error "Bad return rep list" reps)) + + ;; (IGNORE c-type) or IGNORE + ((and (null? (cdr reps)) + (let ((rep (car reps))) + (or (eq? rep 'ignore) + (and (pair? rep) + (eq? (car rep) 'ignore))))) + (let ((rep (car reps))) + (if (pair? rep) (cadr rep) "void ~a"))) + + (else (map (lambda (rep) (return-rep->info rep rename)) reps)))) + +(define (insert-commas lis) + (if (pair? lis) + (cdr (let rec ((lis lis)) + (if (pair? lis) + (cons ", " (cons (car lis) (rec (cdr lis)))) + '()))) + '(""))) + +(define (elts->comma-string lis) + (apply string-append (insert-commas lis))) + +(define (info->type i . maybe-outer-type) + (let ((outer-type (if (null? maybe-outer-type) "" (car maybe-outer-type)))) + (format #f (rep:c-decl i) outer-type))) + +(define (info->var-decl i var) + (format #f "~% ~a = 0;" ; statement-ize decl. + (format #f (rep:c-decl i) var))) ; decl-ize var. + +(define (make-gensym prefix i) + (lambda (x) + (set! i (+ i 1)) + (string-append prefix (number->string i)))) + +;;; This returns a list mapping each of the Scheme stub's args to +;;; it's corresponding name in the C stub (e.g., ("arg[2]" "arg[1]" "arg[0]")). +;;; If MV-RETURN? is true, we reserve arg[0] for the mv-return Scheme vec. +(define (make-stub-args nargs mv-return?) + (do ((i (if mv-return? 1 0) (+ i 1)) + (nargs nargs (- nargs 1)) + (ans '() (cons (format #f "args[~d]" i) ans))) + ((zero? nargs) ans))) + +(define (filter lis) + (if (pair? lis) + (let* ((head (car lis)) + (tail (cdr lis)) + (new-tail (filter tail))) + (if head (if (eq? tail new-tail) lis (cons head new-tail)) + new-tail)) + '())) + +(define nl (string #\newline)) +(define (separate-line stmt) (string-append " " stmt ";" nl)) + +;;; Apply a Scheme->C rep-converter to the C expression EXP. +(define (C-ize info exp) + (cond ((argrep:c-cvtr info) + => (lambda (s) + (if (string=? s "") exp + (string-append s "(" exp ")")))) + (else exp))) + +;;; Return a C statement rep-converting the C value VAL into the +;;; carrier CARRIER. Rep-conversion is determined by INFO. +(define (Scheme-ize->carrier info carrier val) + (cond ((retrep:C-boxcvtr info) + => (lambda (f) (f carrier val))) + (else (error "Rep is not carrier rep:" info)))) + +;;; Apply a C->Scheme rep-converter in the C stub to C expression EXP. +(define (Scheme-ize-exp converter exp) + (if (string=? converter "") exp + (string-append converter "(" exp ")"))) + +;;; If an arg needs post-C processing in the C stub, +;;; then we need to assign the arg's C rep to a variable. +;;; Return #f or " char *f3 = scm2c_string(arg[2]);" +(define (free-var-decl info fvar stub-arg) + (and (argrep:post-C info) + (format #f "~% ~a = ~a;" + (format #f (argrep:c-decl info) fvar) + (C-ize info stub-arg)))) + + +;;; Multiple return values happen across three boundaries: C routine -> C stub, +;;; C stub -> Scheme stub, and Scheme stub -> user. M.v. return happens +;;; across these boundaries sometimes for different reasons. If the +;;; C routine returns m.v., then everyone does. But even if the C routine +;;; returns just a single value, the C stub may rep-convert that multiple +;;; ways, and so need to pass multiple values back to the Scheme stub. + +;;; Nomenclature: if someone is returning 4 return values, let's call +;;; the first value returned the *major return value*, and the other three +;;; values the *minor return values*. + +;;; M.V. return linkages work like this: +;;; The C routine returns m.v.'s to the C stub by (1) returning the major value +;;; as the value of the C routine, and (2) assigning the minor return values +;;; to pointers passed to the C routine from the stub -- these pointer values +;;; are appended to the routine's parameter list after the actual arguments. +;;; That is, if the C routine needs to return an int, it will be passed +;;; an int*, which it assigns to return the int value. + +;;; If the Scheme stub is expecting N multiple values, it passes in +;;; a Scheme vector of size N-1 to the C stub. The C stub stashes the +;;; minor return values into this vector; the major value is passed back +;;; as the C stub's actual return value. This vector is always the last +;;; value passed to the C stub from the Scheme stub, so we can get it +;;; in the C stub by accessing arg[0] or just *arg (remember, the args +;;; get their order reversed during the Scheme/C transition when they +;;; are pushed on the Scheme48 stack, so the m.v. vector, being last, comes +;;; out first). +;;; +;;; If the major return value for the call requires a carrier structure, +;;; it is passed in the m.v. Scheme vector, in the first element of the +;;; vector. The carrier itself is returned as the C stub's major return value. + +;;; MAKE-MV-ASSIGNS produces the C code that puts the C stub's minor +;;; return values into the vector. For each value and each rep for that value: +;;; - If the value is the major return value: +;;; + if the value is immediate, it is rep-converted, and assigned to +;;; the variable ret1. +;;; + if the value is passed back in a carrier, the carrier is fetched +;;; from the m.v. vector's elt 0, and the value is rep-converted into +;;; this carrier. The carrier itself is assigned to ret1. +;;; - If the value is a minor return value: +;;; + if the value is immediate, it is rep-converts, and assigned to +;;; the appropriate slot in the m.v. vector. +;;; + if the value is passed back in a carrier, the carrier is fetched +;;; from the m.v. vector, and the value is rep-converted into the carrier. + +;;; Ugh. Nested looping in Scheme is like nested looping in assembler. +(define (make-mv-assigns c-vars info-lists) + (apply string-append + (let lp1 ((j 0) ; J is location in Scheme vec into which we store. + (c-vars c-vars) + (info-lists info-lists) + (assigns '())) + (if (pair? c-vars) + + (let ((v (car c-vars)) + (info-list (car info-lists)) + (c-vars (cdr c-vars)) + (info-lists (cdr info-lists))) + + ;; Loop over V's info elts in INFO-LIST + (let lp2 ((j j) + (info-list info-list) + (assigns assigns)) + (if (pair? info-list) + + ;; Do rep-conversion INFO. + (let ((info (car info-list)) + (info-list (cdr info-list))) + (receive (c-stmt j) + (if (null? assigns) + (make-major-retval-stmt v info) + (make-minor-retval-stmt v info j)) + (lp2 j info-list (cons c-stmt assigns)))) + + (lp1 j c-vars info-lists assigns)))) + + (reverse assigns))))) +;;; c-decl: 0, immediate: 1, C-boxcvtr: 2, make-carrier: 3, s-cvtr: 4 + +;;; Major ret value rep conversion. If immediate, just rep-convert & assign +;;; to ret1. If carrier, store into an alien struct and assign that to ret1. +;;; C-VAR should always be "r1". +(define (make-major-retval-stmt c-var info) + (cond ((retrep:immediate info) => + (lambda (cvtr) + (values (format #f "~% ret1 = ~a;" (Scheme-ize-exp cvtr c-var)) + 0))) + (else + (values (format #f "~% ret1 = S48_VECTOR_REF(mv_vec,0);~% ~a" + (Scheme-ize->carrier info "ret1" c-var)) + 1)))) + +;;; Minor ret value rep-conversion. +;;; Convert and store into minor-value vector at entry j. +(define (make-minor-retval-stmt c-var info j) + (values (cond ((retrep:immediate info) => + (lambda (cvtr) + (format #f "~% S48_VECTOR_SET(mv_vec,~d,~a);" + j (Scheme-ize-exp cvtr c-var)))) + (else + (let ((target (format #f "S48_VECTOR_REF(mv_vec,~d)" j))) + (format #f "~% ~a" + (Scheme-ize->carrier info target c-var))))) + (+ j 1))) + +(define (stmts strings) (apply string-append strings)) + +(define (make-post-C-var-list infos) + (do ((j 1 (+ j 1)) + (infos infos (cdr infos)) + (ans '() + (cons (let ((i (car infos))) + (and (argrep:post-C i) (format #f "f~d" j))) + ans))) + ((not (pair? infos)) (reverse ans)))) + + +;;; Compute the args part of function prototype. +(define (proto-args arg-decls) + (if (null? arg-decls) "void" ; echh + (elts->comma-string arg-decls))) + + +(define (define-foreign->C-stub form) + (destructure (( (#f scheme-name (c-name . params) . return-reps) form )) + (let* ((c-name (stringify c-name)) + (reps (map car params)) + (no-declare? (and (pair? return-reps) + (eq? 'no-declare (car return-reps)))) + (return-reps (if no-declare? (cdr return-reps) + return-reps)) + + (params-info (map (lambda (rep) + (parameter-rep->info rep (lambda (x) x))) + reps)) + ;; A list of lists, due to MULTI-REP. + (ret-infos1 (parse-return-reps return-reps + (lambda (x) x))) + (ignore? (string? ret-infos1)) + (gc-protected-vars (if ignore? ; maybe extended by mv_vec + '() + '("ret1"))) + + (ret-infos2 (if (not ignore?) ; Flatten them out. + (apply append ret-infos1))) + (ret-infos3 (if (not ignore?) ; A canonical representative + (map car ret-infos1))) ; per item. + + (primary-retval-info (if (not ignore?) (car ret-infos3))) + (primary-retval-decl-template + (if ignore? + ret-infos1 + (retrep:c-decl primary-retval-info))) + ;; The type of the value returned by the C routine, + ;; stored into the C stub's r1 variable. + (primary-retvar-decl (if ignore? "" + (format #f "~% ~a;" + (format #f primary-retval-decl-template + "r1")))) + (mv-return? (and (not ignore?) + (or (pair? (cdr ret-infos2)) + ;; Is major ret val non-immediate + (not (retrep:immediate + (caar ret-infos1)))))) + (gc-protected-vars (if mv-return? + (cons "mv_vec" gc-protected-vars) + gc-protected-vars)) + (gc_declare (if (> (length gc-protected-vars) 0) + (format #f "~% S48_DECLARE_GC_PROTECT(~d);" + (length gc-protected-vars)) + "")) + (gc_protect (if (> (length gc-protected-vars) 0) + (format #f "~% S48_GC_PROTECT_~d(~a);" + (length gc-protected-vars) + (if (null? (cdr gc-protected-vars)) + (car gc-protected-vars) + (string-append (car gc-protected-vars) + "," + (cadr gc-protected-vars)))) + "")) + (nargs (length reps)) + (stub-nargs (if mv-return? (+ nargs 1) nargs)) + (other-retvals (if ignore? '() (cdr ret-infos3))) + (ret-vars (map (make-gensym "r" 1) other-retvals)) + (ret-var-decls (stmts (map info->var-decl + other-retvals ret-vars))) + + ; Frank: begin + (gensym (let ((gs (make-gensym "g" 0))) + (lambda () (gs #f)))) + ; the c-stubs formal parameters are named "g1" ... "gn" + (stub-args (map (lambda (p) (gensym)) params)) + ; Frank: end + (post-C-vars (make-post-C-var-list params-info)) + (pc-var-decls (stmts (map (lambda (i v) + (if v (info->var-decl i v) "")) + params-info + post-C-vars))) + + (c-proto (proto-args (append (map info->type params-info) + (map (lambda (i) + (info->type i "*")) + other-retvals)))) + + (c-fun-decl (format #f primary-retval-decl-template + (string-append c-name "(" c-proto ")"))) + (c-fun-decl (format #f "extern ~a;" c-fun-decl)) + (c-fun-decl (if no-declare? "" c-fun-decl)) + + (pc-var-assigns (stmts (map (lambda (i fv sv) + (if fv + (format #f "~% ~a = ~a;" + fv (C-ize i sv)) + "")) + params-info + post-C-vars + stub-args))) + + (c-args (elts->comma-string (append (map (lambda (i fv sv) + (or fv (C-ize i sv))) + params-info + post-C-vars + stub-args) + (map (lambda (rv) + (string-append "&" rv)) + ret-vars)))) + (c-call (string-append c-name "(" c-args ")")) + + ;; Do the post-C-call processing in the C stub. + (post-C-val-processing + (stmts (map (lambda (v i) + (if v + (format #f "~% %a(~a);" + (argrep:post-C i) v) + "")) + post-C-vars reps))) + + + (mv-assigns (if ignore? "" + (make-mv-assigns (cons "r1" ret-vars) + ret-infos1))) + (gc_unprotect (if (> (length gc-protected-vars) 0) + "\n S48_GC_UNPROTECT();" + "")) + (return-stmt (format #f "~% return ~a;" + (if ignore? "S48_FALSE" "ret1"))) + + ;; Do the call, release the free-vars, do the mv-return + ;; assignments, then return. + (epilog (if ignore? + (string-append c-call ";" post-C-val-processing return-stmt) + (string-append gc_protect "\n r1 = " c-call ";" + post-C-val-processing + mv-assigns gc_unprotect return-stmt)))) +; (breakpoint) + (format #f cfun-boilerplate + c-name + ; Frank: begin + ; multiple values will be returned in the c-stubs last formal parameter: + ; the vector mv_vec + (let ((args (if mv-return? (append stub-args '("mv_vec")) stub-args))) + (proto-args (map (lambda (var) (string-append "s48_value " var)) args))) + ; Frank: end + c-fun-decl + (if ignore? "" ret1-decl) + gc_declare + primary-retvar-decl ret-var-decls pc-var-decls + pc-var-assigns + epilog)))) + +; Frank: begin +(define cfun-boilerplate + "s48_value df_~a(~a) +{ + ~a~a~a~a~a~a + + ~a + ~a +} + +") +; Frank: end + +(define ret1-decl + " + s48_value ret1 = S48_FALSE;") + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define cfile-header-boilerplate + "/* This is an Scheme48/C interface file, +** automatically generated by a hacked version of cig 3.0. +step 4 +*/ + +#include +#include /* For malloc. */ +#include \"libcig.h\" + +") + +; Frank: begin + +(define s48-init-boilerplate + "void s48_init_~a(void) +{~a +} +") + +(define (define-foreign-process-form form oport) + ; c-names will be the list of c-names of all define-foreign-forms + (define c-names '()) + (define init-name #f) + (define (define-foreign-process-form2 form) + (if (pair? form) + (case (car form) + + ((begin) + (if (list? (cdr form)) + (for-each (lambda (f) (define-foreign-process-form2 f)) + (cdr form)))) + + ((define-structure define-structures) + (if (and (pair? (cdr form)) + (list? (cddr form))) + (let ((clauses (cddr form))) + (for-each (lambda (clause) + (if (and (pair? clause) + (eq? 'begin (car clause))) + (define-foreign-process-form2 clause))) + clauses)))) + + ((define-foreign) + (let ((c-name (string-append "df_" (stringify (caaddr form))))) + (begin + (set! c-names (cons c-name c-names)) + (display (define-foreign->C-stub form) oport)))) + + ((foreign-init-name) + (let ((name (cdr form))) + (set! init-name (car name)))) + + ((define-stubless-foreign) + (let ((c-name (cadddr form))) + (set! c-names (cons c-name c-names)))) + + ((foreign-source) + (let ((forms (cdr form))) + (if (pair? forms) + (begin (display (car forms) oport) + (map (lambda (x) + (newline oport) + (display x oport)) + (cdr forms))))))))) + (define-foreign-process-form2 form) + (values (reverse c-names) init-name)) + +; Frank: end +(define (display-register c-names init-name oport) + (if (not init-name) + (error "no foreign-init-name statement found") + (let ((register-txt + (apply + string-append + (map (lambda (c-name) + (format #f "~% S48_EXPORT_FUNCTION(~a);" c-name)) + c-names)))) + (format oport s48-init-boilerplate init-name register-txt)))) + +(define (process-define-foreign-stream iport oport) + (display cfile-header-boilerplate oport) + (let lp ((c-names '()) (init-name #f)) + (let ((form (read iport))) + (if (eof-object? form) + (display-register c-names init-name oport) + (receive (new-c-names maybe-init-name) + (define-foreign-process-form form oport) + (let ((init-name (if maybe-init-name + (if init-name + (error "multiple foreign-init-name definitions") + maybe-init-name) + init-name))) + (lp (append c-names new-c-names) init-name))))))) + +; Frank: begin +; (process-define-foreign-file fname) scans file fname.scm and produces a c-stub for every +; scanned define-foreign form and places it in file fname.c. +(define (process-define-foreign-file fname init-name) + (call-with-input-file (string-append fname ".scm") + (lambda (iport) + (call-with-output-file (string-append fname ".c") + (lambda (oport) + (begin + (display cfile-header-boilerplate oport) + (let lp ((c-names '())) + (let ((form (read iport))) + (if (eof-object? form) + (let ((register-txt + (apply + string-append + (map (lambda (c-name) + (format #f "~% S48_EXPORT_FUNCTION(~a);" c-name)) + c-names)))) + (format oport s48-init-boilerplate init-name register-txt)) + (lp (append c-names (define-foreign-process-form form oport)))))))))))) +; Frank: end + + +(define (cig-standalone-toplevel f-and-init-name) ; ignore your args no + (process-define-foreign-stream (current-input-port) + (current-output-port)) + 0) + +;;; This section defines the Scheme-side macro processor. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; (define-syntax define-foreign define-foreign-expander) + +(define (define-foreign-expander form rename compare) + (destructure (( (#f scheme-name (c-name . params) . return-reps) form )) + (let* ((c-name (string-append "df_" (stringify c-name))) + + (reps (map car params)) + (params-info (map (lambda (rep) (parameter-rep->info rep rename)) + reps)) + + (return-reps (if (and (pair? return-reps) + (eq? 'no-declare (car return-reps))) + (cdr return-reps) + return-reps)) + (ret-infos1 (parse-return-reps return-reps rename)) + (ignore? (string? ret-infos1)) + + (ret-infos2 (if (not ignore?) + (apply append ret-infos1))) + (major-rep (and (not ignore?) (car ret-infos2))) + + ;; Does the Scheme stub return m.v.'s to the user? + (scheme-mv-return? (and (not ignore?) + (pair? (cdr ret-infos2)))) + + (carrier-vec? (or scheme-mv-return? + (and major-rep + (not (retrep:immediate major-rep))))) + + (carrier-veclen (if carrier-vec? + (- (length ret-infos2) + (if (retrep:immediate major-rep) 1 0)))) + + (%define (rename 'define)) + (%let (rename 'let)) + (%lambda (rename 'lambda)) + ; JMG: begin replaced external-lambda by import-lambda-definition + (%import-lambda-definition (rename 'import-lambda-definition)) + (%lookup-imported-binding (rename 'lookup-imported-binding)) + (%call-imported-binding (rename 'call-imported-binding)) + (%let* (rename 'let*)) + ; JMG: end + (gensym (let ((gs (make-gensym "g" -1))) + (lambda () (string->symbol (gs #f))))) + + (args (map (lambda (p) + (let ((tail (cdr p))) + (if (pair? tail) (car tail) + (gensym)))) + params)) + + (%string? (rename 'string?)) + (%char? (rename 'char?)) + (%integer? (rename 'integer?)) + (%vector? (rename 'vector?)) + (%pair? (rename 'pair?)) + (%check-arg (rename 'check-arg)) + + (rep-checker (lambda (i arg) + (cond ((argrep:scheme-pred i) => + (lambda (pred) `(,%check-arg ,pred ,arg + ,scheme-name))) + (else arg)))) + + (c-args (map rep-checker params-info args)) + (%f (rename 'f))) + + (if (not carrier-vec?) + (let* ((xcall `(,%f ,@c-args)) + (xcall (cond ((and (not ignore?) + (retrep:s-cvtr (car ret-infos2))) + => (lambda (proc) `(,proc ,xcall))) ; not hygenic + (else xcall)))) + + ; Frank: begin + ; get-external and external-call replaced: now external-lambda + ;JMG now import-lambda-definition + `(,%import-lambda-definition ,scheme-name ,args ,c-name)) + (let ((retarg1 (rename 'r1)) + (retarg2 (rename 'r2)) + (%make-vector (rename 'make-vector))) + `(,%define ,scheme-name + (,%let ((,%f (,%lookup-imported-binding ,c-name))) + (,%lambda ,args + (,%let ((,retarg2 (,%make-vector ,carrier-veclen))) + ,@(install-carriers retarg2 ret-infos2 + (rename 'vector-set!)) + (,%let ((,retarg1 (,%call-imported-binding ,%f ,@c-args ,retarg2))) + (values ,@(make-values-args retarg1 retarg2 + ret-infos2 + rename)))))))))))) +;; `(,%define ,scheme-name +;; (,%let ((,%f (,%external-lambda ,args ,c-name))) +;; (,%lambda ,args ,xcall)))) + +; (let ((retarg1 (rename 'r1)) +; (retarg2 (rename 'r2)) +; (%make-vector (rename 'make-vector))) +; `(,%define +; ,scheme-name +; (,%let* ((temp (,%lookup-imported-binding ,c-name)) +; (,%f (,%lambda ,args (,%call-imported-binding temp ,args)))) +; (,%lambda ,args +; (,%let ((,retarg2 (,%make-vector ,carrier-veclen))) +; ,@(install-carriers retarg2 ret-infos2 +; (rename 'vector-set!)) +; (,%let ((,retarg1 (,%f ,@c-args ,retarg2))) +; (values ,@(make-values-args retarg1 retarg2 +; ret-infos2 +; rename)))))))))))) +; Frank: end +(define (install-carriers carrier-vec ret-infos2 %vector-set!) + ;; Skip the major ret value if it doesn't require a carrier. + (let* ((major-rep (and (pair? ret-infos2) (car ret-infos2))) + (infos (if (and major-rep (retrep:immediate major-rep)) + (cdr ret-infos2) + ret-infos2))) + + (let lp ((ans '()) (infos infos) (i 0)) + (if (null? infos) ans + (let ((info (car infos)) + (infos (cdr infos))) + (if (retrep:immediate info) + (lp ans infos (+ i 1)) + (lp (cons `(,%vector-set! ,carrier-vec ,i + (,(retrep:make-carrier info))) + ans) + infos + (+ i 1)))))))) + +(define (c-arg i retarg1 retarg2 %vector-ref) + (if (zero? i) + retarg1 + `(,%vector-ref ,retarg2 ,(- i 1)))) + +(define (make-values-args arg1 carrier-vec infos rename) + (let ((%vector-ref (rename 'vector-ref)) + (do-arg (lambda (arg info) + (cond ((retrep:s-cvtr info) => + (lambda (cvtr) `(,cvtr ,arg))) + (else arg))))) + (if (null? infos) '() + (let lp ((ans (list (do-arg arg1 (car infos)))) + (i (if (retrep:immediate (car infos)) 0 1)) + (infos (cdr infos))) + (if (pair? infos) + (let* ((info (car infos)) + (arg `(,%vector-ref ,carrier-vec ,i))) + (lp (cons (do-arg arg info) ans) + (+ i 1) + (cdr infos))) + (reverse ans)))))) + +)) ; egakcap + + + +(define-structure define-foreign-syntax + (export (define-foreign :syntax) + (foreign-source :syntax) + (foreign-init-name :syntax) + (define-stubless-foreign :syntax)) + (open scheme external-calls structure-refs cig-aux) + (access signals) ; for ERROR + (for-syntax (open scheme define-foreign-syntax-support)) + (begin + (define error (structure-ref signals error)) + + (define-syntax define-foreign define-foreign-expander) + + ;; Ignore FOREIGN-SOURCE forms. + (define-syntax foreign-source + (syntax-rules () + ((foreign-source stuff ...) #f))) + + (define-syntax foreign-init-name + (syntax-rules () + ((foreign-init-name name) (lambda () name)))) + + (define-syntax define-stubless-foreign + (syntax-rules () + ((define-stubless-foreign bla ...) + (import-lambda-definition bla ...)))) + + (define (check-arg pred obj proc) + (if (not (pred obj)) + (error "check-arg" pred obj proc) + obj)) +)) ; egakcap + + +;;; Todo: "info" terminology is gone. Clean up. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cig/image2script b/cig/image2script new file mode 100755 index 0000000..aa71f67 --- /dev/null +++ b/cig/image2script @@ -0,0 +1,48 @@ +#!/bin/sh - + +binary=$1 +shift + +if [ `echo $binary | wc -c` -gt 28 ] ; then + echo "#!/bin/sh -" + echo exec $binary $* -i '"$0"' '"$@"' + +elif [ $# -gt 0 ] ; then + echo '#!'$binary \\ + echo $* -i + +else echo '#!'$binary -i +fi + +exec cat + + +# This program reads an S48 image from stdin and turns it into +# an executable by prepending a #! prefix. The vm and its +# args are passed to this program on the command line. +# +# If the vm binary is 27 chars or less, then we can directly +# execute the vm with one of these scripts: +# No args: +# image2script /usr/local/bin/svm +#include /* For malloc. */ +#include "libcig.h" + +s48_value df_strlen_or_false(s48_value g1) +{ + extern s48_value strlen_or_false(const char * ); + s48_value ret1 = S48_FALSE; + S48_DECLARE_GC_PROTECT(1); + s48_value r1; + + + + S48_GC_PROTECT_1(ret1); + r1 = strlen_or_false((const char * )AlienVal(g1)); + ret1 = r1; + S48_GC_UNPROTECT(); + return ret1; +} + +s48_value df_cstring_nullp(s48_value g1) +{ + extern int cstring_nullp(const char * ); + s48_value ret1 = S48_FALSE; + S48_DECLARE_GC_PROTECT(1); + int r1; + + + + S48_GC_PROTECT_1(ret1); + r1 = cstring_nullp((const char * )AlienVal(g1)); + ret1 = ENTER_BOOLEAN(r1); + S48_GC_UNPROTECT(); + return ret1; +} + +s48_value df_c2scheme_strcpy_free(s48_value g1, s48_value g2) +{ + extern int c2scheme_strcpy_free(s48_value , char* ); + s48_value ret1 = S48_FALSE; + S48_DECLARE_GC_PROTECT(1); + int r1; + + + + S48_GC_PROTECT_1(ret1); + r1 = c2scheme_strcpy_free(g1, (char* )AlienVal(g2)); + ret1 = ENTER_BOOLEAN(r1); + S48_GC_UNPROTECT(); + return ret1; +} + +s48_value df_c2scheme_strcpy(s48_value g1, s48_value g2) +{ + extern int c2scheme_strcpy(s48_value , char* ); + s48_value ret1 = S48_FALSE; + S48_DECLARE_GC_PROTECT(1); + int r1; + + + + S48_GC_PROTECT_1(ret1); + r1 = c2scheme_strcpy(g1, (char* )AlienVal(g2)); + ret1 = ENTER_BOOLEAN(r1); + S48_GC_UNPROTECT(); + return ret1; +} + +s48_value df_c_veclen(s48_value g1) +{ + extern s48_value c_veclen(long* ); + s48_value ret1 = S48_FALSE; + S48_DECLARE_GC_PROTECT(1); + s48_value r1; + + + + S48_GC_PROTECT_1(ret1); + r1 = c_veclen((long* )AlienVal(g1)); + ret1 = r1; + S48_GC_UNPROTECT(); + return ret1; +} + +s48_value df_free(s48_value g1) +{ + + + + free((void* )AlienVal(g1)); + return S48_FALSE; +} + +s48_value df_set_strvec_carriers(s48_value g1, s48_value g2) +{ + extern void set_strvec_carriers(s48_value , char** ); + + + set_strvec_carriers(g1, (char** )AlienVal(g2)); + return S48_FALSE; +} + +void s48_init_cig(void) +{ + S48_EXPORT_FUNCTION(df_strlen_or_false); + S48_EXPORT_FUNCTION(df_cstring_nullp); + S48_EXPORT_FUNCTION(df_c2scheme_strcpy_free); + S48_EXPORT_FUNCTION(df_c2scheme_strcpy); + S48_EXPORT_FUNCTION(df_c_veclen); + S48_EXPORT_FUNCTION(df_free); + S48_EXPORT_FUNCTION(df_set_strvec_carriers); +} diff --git a/cig/libcig.h b/cig/libcig.h new file mode 100644 index 0000000..9f5bb45 --- /dev/null +++ b/cig/libcig.h @@ -0,0 +1,32 @@ +#include "scheme48.h" + +/* StobData is used by fdports.c. It should be changed over to STOB_REF +** by removing the extra indirection. */ +#define StobData(x) (S48_ADDRESS_AFTER_HEADER(x, s48_value)) + +#define IsChar(x) ((((long) x) & 0xff) == S48_CHAR) +/* JMG: untested !! */ + +#define StrByte(x, i) ((i) + S48_ADDRESS_AFTER_HEADER((x), char)) +#define cig_string_body(x) (S48_ADDRESS_AFTER_HEADER((x), char)) + +#define AlienVal(x) (S48_STOB_REF((x),0)) +/* JMG: no () around this, because it's a do..while(0) */ +#define SetAlienVal(x, v) S48_STOB_SET((x), 0, (v)) + +/* JMG: some hacks to leave to old sources untouched */ +#define ENTER_BOOLEAN(x) (x ? S48_TRUE : S48_FALSE) +#define EXTRACT_BOOLEAN(x) ((x==S48_TRUE) ? 1 : 0) +/* #define ENTER_FIXNUM(x) (s48_enter_fixnum(x)) */ +/* #define SCHFALSE S48_FALSE */ + +extern char *scheme2c_strcpy(s48_value sstr); + +extern s48_value strlen_or_false(const char *s); + +extern char *copystring_or_die(const char *); +extern char *copystring(char *, const char *); + +extern s48_value strlen_or_false(const char *); + +extern void cig_check_nargs(int arity, int nargs, const char *fn); diff --git a/cig/libcig.scm b/cig/libcig.scm new file mode 100644 index 0000000..4b2e0e7 --- /dev/null +++ b/cig/libcig.scm @@ -0,0 +1,139 @@ +;;; (DEFINE-FOREIGN ...) forms are expanded by Cig into Scheme stubs. +;;; These stubs reference some support procedures to rep-convert the +;;; standard reps (e.g., string). This structure provides these support +;;; procedures. +;;; +;;; We export three kinds of things: +;;; - Type predicates that aren't in the R4RS env (e.g., FIXNUM?). +;;; - Carrier makers for making boxes to return things in. +;;; - Scheme-side rep-converters for return values. + +(define-structure cig-aux + (export cstring-null? + C->scheme-string + C->scheme-string-w/len + C->scheme-string-w/len-no-free + C-string-vec->Scheme&free + C-string-vec->Scheme ; Bogus, because clients not reentrant. + string-carrier->string + string-carrier->string-no-free + fixnum? + make-string-carrier + make-alien + alien? + ) + (open scheme code-vectors define-foreign-syntax) + + (begin + (define min-fixnum (- (expt 2 29))) + (define max-fixnum (- (expt 2 29) 1)) + (define (fixnum? x) (and (integer? x) (<= min-fixnum x max-fixnum))) + + ;; Internal utility. + (define (mapv! f v) + (let ((len (vector-length v))) + (do ((i 0 (+ i 1))) + ((= i len) v) + (vector-set! v i (f (vector-ref v i)))))) + + ;; Make a carrier for returning strings. + ;; It holds a raw C string and a fixnum giving the length of the string. + (define (make-string-carrier) (cons (make-alien) 0)) + + (define (make-alien) (make-code-vector 4 0)) + (define (alien? x) (and (code-vector? x) (= 4 (code-vector-length x)))) ; BOGUS + + +;;; C/Scheme string and vector conversion +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;; Generally speaking, in the following routines, +;;; a NULL C string param causes a function to return #f. +(foreign-init-name "cig") + +(define-foreign %cstring-length-or-false + (strlen_or_false ((C "const char * ~a") cstr)) + desc) + +(define-foreign cstring-null? + (cstring_nullp ((C "const char * ~a") cstr)) + bool) + +(define-foreign %copy-c-string&free + (c2scheme_strcpy_free (string-desc sstr) ((C char*) cstr)) + bool) + +(define-foreign %copy-c-string + (c2scheme_strcpy (string-desc sstr) ((C char*) cstr)) + bool) + +(define (C->scheme-string cstr) + (cond ((%cstring-length-or-false cstr) + => (lambda (strlen) + (let ((str (make-string strlen))) + (%copy-c-string&free str cstr) + str))) + (else #f))) + +(define (C->scheme-string-w/len cstr len) + (and (integer? len) + (let ((str (make-string len))) + (%copy-c-string&free str cstr) + str))) + +(define (C->scheme-string-w/len-no-free cstr len) + (and (integer? len) + (let ((str (make-string len))) + (%copy-c-string str cstr) + str))) + +(define (string-carrier->string carrier) + (C->scheme-string-w/len (car carrier) (cdr carrier))) + +(define (string-carrier->string-no-free carrier) + (C->scheme-string-w/len-no-free (car carrier) (cdr carrier))) + +;;; Return the length of a null-terminated C word vector. +;;; Does not count the null word as part of the length. +;;; If vector is NULL, returns #f. + +(define-foreign %c-veclen-or-false + (c_veclen ((C long*) c-vec)) + desc) ; integer or #f if arg is NULL. + +;;; CVEC is a C vector of char* strings, length VECLEN. +;;; This procedure converts a C vector of strings into a Scheme vector of +;;; strings. The C vector and its strings are all assumed to come from +;;; the malloc heap; they are returned to the heap when the rep-conversion +;;; is done. +;;; +;;; Hack: if VECLEN is #f, CVEC is assumed to be NULL terminated, and +;;; its length is calculated thusly. + +(define (C-string-vec->Scheme&free cvec veclen) + (let ((vec (make-vector (or veclen (%c-veclen-or-false cvec) 0)))) + (mapv! (lambda (ignore) (make-string-carrier)) vec) + (%set-string-vector-carriers! vec cvec) + (C-free cvec) + (mapv! string-carrier->string vec))) + +(define (C-string-vec->Scheme cvec veclen) ; No free. + (let ((vec (make-vector (or veclen (%c-veclen-or-false cvec) 0)))) + (mapv! (lambda (ignore) (make-string-carrier)) vec) + (%set-string-vector-carriers! vec cvec) + (mapv! string-carrier->string-no-free vec))) + + +(define-foreign C-free (free ((C void*) ptr)) no-declare ; for SunOS 4.x + ignore) + +(define-foreign %set-string-vector-carriers! + (set_strvec_carriers (vector-desc svec) ((C char**) cvec)) + ignore) + +)) ; egakcap + + + + + diff --git a/cig/libcig1.c b/cig/libcig1.c new file mode 100644 index 0000000..f312500 --- /dev/null +++ b/cig/libcig1.c @@ -0,0 +1,163 @@ +/* Generic routines for Scheme48/C interfacing -- mostly for converting +** strings and null-terminated vectors back and forth. +** Copyright (c) 1993 by Olin Shivers. +*/ + +#include "libcig.h" +#include +#include +#include +#include +#include + +#define Malloc(type,n) ((type *) malloc(sizeof(type)*(n))) +#define Free(p) (free((char *)(p))) + +/* (c2scheme_strcpy dest_scheme_string source_C_string) +** Copies C string's chars into Scheme string. Return #t. +** If C string is NULL, do nothing and return #f. +*/ + +int c2scheme_strcpy(s48_value sstr, const char *cstr) +{ + if( cstr ) { + strncpy( (char*) StobData(sstr), cstr, S48_STRING_LENGTH(sstr) ); + return 1; + } + else return 0; + } + + +/* Same as above, but free the C string when we are done. */ +int c2scheme_strcpy_free(s48_value sstr, const char *cstr) +{ + if( cstr ) { + strncpy( (char*) StobData(sstr), cstr, S48_STRING_LENGTH(sstr) ); + Free(cstr); + return 1; + } + else return 0; + } + +char *scheme2c_strcpy(s48_value sstr) +{ + char *result; + int slen; + + slen = S48_STRING_LENGTH(sstr); + result = Malloc(char, slen+1); + + if( result == NULL ) { + fprintf(stderr, + "Fatal error: C stub tried to copy Scheme string,\n" + "but malloc failed on arg 0x%x, errno %d.\n", + sstr, errno); + exit(-1); + } + + memcpy(result, cig_string_body(sstr), slen); + result[slen] = '\000'; + return result; + } + + +/* One arg, a zero-terminated C word vec. Returns length. +** The terminating null is not counted. Returns #f on NULL. +*/ + +s48_value c_veclen(const long *vec) +{ + const long *vptr = vec; + if( !vptr ) return S48_FALSE; + while( *vptr ) vptr++; + return s48_enter_fixnum(vptr - vec); + } + + +/* Copy string from into string to. If to is NULL, malloc a fresh string +** (if the malloc loses, return NULL). +** If from is NULL, then +** - if to is NULL, do nothing and return NULL. +** - Otherwise, deposit a single nul byte. +** Under normal conditions, this routine returns the destination string. +** +** The little boundary cases of this procedure are a study in obfuscation +** because C doesn't have a reasonable string data type. Give me a break. +*/ +char *copystring(char *to, const char *from) +{ + if( from ) { + int slen = strlen(from)+1; + if( !to && !(to = Malloc(char, slen)) ) return NULL; + else return memcpy(to, from, slen); + } + + else + return to ? *to = '\000', to : NULL; + } + +/* As in copystring, but if malloc loses, print out an error msg and croak. */ +char *copystring_or_die(const char *str ) /* Note: NULL -> NULL. */ +{ + if( str ) { + int len = strlen(str)+1; + char *new_str = Malloc(char, len); + if( ! new_str ) { + fprintf(stderr, "copystring: Malloc failed.\n"); + exit(-1); + } + return memcpy(new_str, str, len); + } + else return NULL; + } + +int cstring_nullp( const char *s ) { return ! s; } + +s48_value strlen_or_false(const char *s) +{ return s ? s48_enter_fixnum(strlen(s)) : S48_FALSE; } + + + +/* svec is a Scheme vector of C string carriers. Scan over the C strings +** in cvec, and initialise the corresponding string carriers in svec. +*/ +void set_strvec_carriers(s48_value svec, char const * const * cvec) +{ + int svec_len = S48_VECTOR_LENGTH(svec); + char const * const * cv = cvec; + int i = 0; + + /* JMG: now using normal array access, instead of pointer++ on a s48_value */ + for(; svec_len > 0; i++, cv++, svec_len-- ) { + s48_value carrier, alien; + int strl; + + /* *sv is a (cons (make-alien ) ). */ + carrier = S48_VECTOR_REF(svec,i); + alien = S48_CAR(carrier); + strl = strlen(*cv); + S48_SET_CDR(carrier, s48_enter_fixnum(strl)); + SetAlienVal(alien, (long) *cv); + } +} + +/* Helper function for arg checking. Why bother, actually? */ +void cig_check_nargs(int arity, int nargs, const char *fn) +{ + if( arity != nargs ) { + fprintf(stderr, + "Cig fatal error (%s) -- C stub expected %d arg%s, " + "but got %d.\n", + fn, arity, (arity == 1) ? "" : "s", nargs); + exit(-1); + } + } +/* void ciginit(){ */ +/* S48_EXPORT_FUNCTION (df_strlen_or_false); */ +/* S48_EXPORT_FUNCTION (df_c_veclen); */ +/* S48_EXPORT_FUNCTION (df_set_strvec_carriers); */ +/* S48_EXPORT_FUNCTION (df_c2scheme_strcpy_free); */ +/* S48_EXPORT_FUNCTION (df_cstring_nullp); */ +/* S48_EXPORT_FUNCTION (df_free); */ +/* S48_EXPORT_FUNCTION (df_c2scheme_strcpy); */ +/* } */ diff --git a/config.guess b/config.guess new file mode 100755 index 0000000..71de137 --- /dev/null +++ b/config.guess @@ -0,0 +1,1368 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-03-16' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# Please send patches to . +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + + +dummy=dummy-$$ +trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int dummy(){}" > $dummy.c + for c in cc gcc c89 ; do + ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 + if test $? = 0 ; then + CC_FOR_BUILD="$c"; break + fi + done + rm -f $dummy.c $dummy.o $dummy.rel + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 8/24/94.) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # Netbsd (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # Determine the machine/vendor (is the vendor relevant). + case "${UNAME_MACHINE}" in + amiga) machine=m68k-unknown ;; + arm32) machine=arm-unknown ;; + atari*) machine=m68k-atari ;; + sun3*) machine=m68k-sun ;; + mac68k) machine=m68k-apple ;; + macppc) machine=powerpc-apple ;; + hp3[0-9][05]) machine=m68k-hp ;; + ibmrt|romp-ibm) machine=romp-ibm ;; + *) machine=${UNAME_MACHINE}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE}" in + i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + cat <$dummy.s + .data +\$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main +main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + esac + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + arc64:OpenBSD:*:*) + echo mips64el-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hkmips:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + sun3*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy \ + && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i?86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + case "${HPUX_REV}" in + 11.[0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + esac ;; + esac + fi ;; + esac + if [ "${HP_ARCH}" = "" ]; then + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` + if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi + rm -f $dummy.c $dummy + fi ;; + esac + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i?86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + hppa*:OpenBSD:*:*) + echo hppa-unknown-openbsd + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3D:*:*:*) + echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i386-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + cat >$dummy.c < /* for printf() prototype */ +int main (int argc, char *argv[]) { +#else +int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __MIPSEB__ + printf ("%s-unknown-linux-gnu\n", argv[1]); +#endif +#ifdef __MIPSEL__ + printf ("%sel-unknown-linux-gnu\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + ;; + ppc:Linux:*:*) + # Determine Lib Version + cat >$dummy.c < +#if defined(__GLIBC__) +extern char __libc_version[]; +extern char __libc_release[]; +#endif +main(argc, argv) + int argc; + char *argv[]; +{ +#if defined(__GLIBC__) + printf("%s %s\n", __libc_version, __libc_release); +#else + printf("unknown\n"); +#endif + return 0; +} +EOF + LIBC="" + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null + if test "$?" = 0 ; then + ./$dummy | grep 1\.99 > /dev/null + if test "$?" = 0 ; then LIBC="libc1" ; fi + fi + rm -f $dummy.c $dummy + echo powerpc-unknown-linux-gnu${LIBC} + exit 0 ;; + alpha:Linux:*:*) + cat <$dummy.s + .data + \$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + .text + .globl main + .align 4 + .ent main + main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + LIBC="" + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) UNAME_MACHINE="alpha" ;; + 1-0) UNAME_MACHINE="alphaev5" ;; + 1-1) UNAME_MACHINE="alphaev56" ;; + 1-101) UNAME_MACHINE="alphapca56" ;; + 2-303) UNAME_MACHINE="alphaev6" ;; + 2-307) UNAME_MACHINE="alphaev67" ;; + esac + objdump --private-headers $dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i?86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + ld_supported_emulations=`cd /; ld --help 2>&1 \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i?86linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 + ;; + elf_i?86) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + i?86coff) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 + ;; + esac + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + case "${UNAME_MACHINE}" in + i?86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac + # Determine whether the default compiler is a.out or elf + cat >$dummy.c < +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __ELF__ +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +#else + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; +# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +# are messed up and put the nodename in both sysname and nodename. + i?86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i?86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i?86:*:5:7*) + # Fixed at (any) Pentium or better + UNAME_MACHINE=i586 + if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then + echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i?86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + i?86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + echo `uname -p`-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + if test "${UNAME_MACHINE}" = "x86pc"; then + UNAME_MACHINE=pc + fi + echo `uname -p`-${UNAME_MACHINE}-nto-qnx + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[KW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + i?86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 +rm -f $dummy.c $dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.sub b/config.sub new file mode 100755 index 0000000..9df4e53 --- /dev/null +++ b/config.sub @@ -0,0 +1,1356 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-03-09' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ + | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ + | pyramid | mn10200 | mn10300 | tron | a29k \ + | 580 | i960 | h8300 \ + | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ + | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ + | hppa64 \ + | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ + | alphaev6[78] \ + | we32k | ns16k | clipper | i370 | sh | sh[34] \ + | powerpc | powerpcle \ + | 1750a | dsp16xx | pdp10 | pdp11 \ + | mips16 | mips64 | mipsel | mips64el \ + | mips64orion | mips64orionel | mipstx39 | mipstx39el \ + | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ + | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ + | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ + | thumb | d10v | d30v | fr30 | avr | openrisc) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i[234567]86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + # FIXME: clean up the formatting here. + vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ + | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ + | xmp-* | ymp-* \ + | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ + | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ + | hppa2.0n-* | hppa64-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ + | alphaev6[78]-* \ + | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ + | clipper-* | orion-* \ + | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ + | mipstx39-* | mipstx39el-* | mcore-* \ + | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ + | [cjt]90-* \ + | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ + | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \ + | bs2000-* | tic54x-* | c54x-* | x86_64-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [cjt]90) + basic_machine=${basic_machine}-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[34567]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i[34567]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i[34567]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i[34567]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mipsel*-linux*) + basic_machine=mipsel-unknown + os=-linux-gnu + ;; + mips*-linux*) + basic_machine=mips-unknown + os=-linux-gnu + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon) + basic_machine=i686-pc + ;; + pentiumii | pentium2) + basic_machine=i686-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sparclite-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=t3e-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + mips) + if [ x$os = x-linux-gnu ]; then + basic_machine=mips-unknown + else + basic_machine=mips-mips + fi + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4) + basic_machine=sh-unknown + ;; + sparc | sparcv9) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + c4x*) + basic_machine=c4x-none + os=-coff + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i[34567]86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto*) + os=-nto-qnx + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure deleted file mode 100755 index be73f2e..0000000 --- a/configure +++ /dev/null @@ -1,1925 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.10 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.10" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LANG+set}" = set; then LANG=C; export LANG; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=c/scheme48vm.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - - oldCFLAGS="$CFLAGS" - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - ac_prog_rejected=no - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 -if test $ac_cv_prog_gcc = yes; then - GCC=yes - if test "${CFLAGS+set}" != set; then - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_gcc_g=yes -else - ac_cv_prog_gcc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6 - if test $ac_cv_prog_gcc_g = yes; then - CFLAGS="-g -O" - else - CFLAGS="-O" - fi - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - - if test "z$oldCFLAGS" = z; then - if test "z$GCC" = z; then - CFLAGS='-O' - else - CFLAGS='-O2' - fi - fi - - echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -if test -d /etc/conf/kconfig.d && - grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 -then - echo "$ac_t""yes" 1>&6 - ISC=yes # If later tests want to check for ISC. - cat >> confdefs.h <<\EOF -#define _POSIX_SOURCE 1 -EOF - - if test "$GCC" = yes; then - CC="$CC -posix" - else - CC="$CC -Xp" - fi -else - echo "$ac_t""no" 1>&6 - ISC= -fi - - # If we cannot run a trivial program, we must be cross compiling. -echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_cross=yes -else -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then - ac_cv_c_cross=no -else - ac_cv_c_cross=yes -fi -fi -rm -fr conftest* -fi - -echo "$ac_t""$ac_cv_c_cross" 1>&6 -cross_compiling=$ac_cv_c_cross - -if test "$cross_compiling" = yes; then - true -else -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then - : -fi -fi -rm -fr conftest* - if test "z$GCC" = z; then - echo $ac_n "checking -cckr""... $ac_c" 1>&6 - oldCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -cckr" - if test "$cross_compiling" = yes; then - echo "$ac_t""no" 1>&6 - CFLAGS="$oldCFLAGS" -else -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 - CFLAGS="$oldCFLAGS" -fi -fi -rm -fr conftest* - fi - - ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - for ac_prog in ginstall installbsd scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - # OSF/1 installbsd also uses dspmsg, but is usable. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_ifs" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - echo $ac_n "checking for -lm""... $ac_c" 1>&6 -ac_lib_var=`echo m'_'main | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lm $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo m | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo $ac_n "checking for -ldl""... $ac_c" 1>&6 -ac_lib_var=`echo dl'_'main | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldl $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo dl | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo $ac_n "checking for -lmld""... $ac_c" 1>&6 -ac_lib_var=`echo mld'_'main | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lmld $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo mld | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo $ac_n "checking for -lnsl""... $ac_c" 1>&6 -ac_lib_var=`echo nsl'_'main | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lnsl $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo nsl | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo $ac_n "checking for -lgen""... $ac_c" 1>&6 -ac_lib_var=`echo gen'_'main | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lgen $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo gen | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo $ac_n "checking for -lsocket""... $ac_c" 1>&6 -ac_lib_var=`echo socket'_'main | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lsocket $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo socket | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo $ac_n "checking for -lsun""... $ac_c" 1>&6 -ac_lib_var=`echo sun'_'getpwnam | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lsun $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo sun | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo $ac_n "checking for -lelf""... $ac_c" 1>&6 -ac_lib_var=`echo elf'_'main | tr './+\055' '__p_'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lelf $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo elf | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi - - echo checking for RISC/OS POSIX library lossage -if test -f /usr/posix/usr/lib/libc.a; then - LIBS="${LIBS} /usr/posix/usr/lib/libc.a" -fi - - echo $ac_n "checking for working const""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <j = 5; -} -{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; -} - -; return 0; } -EOF -if { (eval echo configure:1195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_c_const=yes -else - rm -rf conftest* - ac_cv_c_const=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_c_const" 1>&6 -if test $ac_cv_c_const = no; then - cat >> confdefs.h <<\EOF -#define const -EOF - -fi - - echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int main() { return 0; } -int t() { -int i; -; return 0; } -EOF -if { (eval echo configure:1237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_type_signal=void -else - rm -rf conftest* - ac_cv_type_signal=int -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_type_signal" 1>&6 -cat >> confdefs.h <&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1290: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -for ac_hdr in libgen.h sys/timeb.h posix/time.h -do -ac_safe=`echo "$ac_hdr" | tr './\055' '___'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | tr 'abcdefghijklmnopqrstuvwxyz./\055' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ___'` - cat >> confdefs.h <&6 -fi -done - - for ac_hdr in sys/select.h -do -ac_safe=`echo "$ac_hdr" | tr './\055' '___'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1360: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | tr 'abcdefghijklmnopqrstuvwxyz./\055' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ___'` - cat >> confdefs.h <&6 -fi -done - - for ac_func in dlopen gettimeofday ftime nlist select setitimer sigaction -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); - -int main() { return 0; } -int t() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -$ac_func(); -#endif - -; return 0; } -EOF -if { (eval echo configure:1415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" -else - rm -rf conftest* - eval "ac_cv_func_$ac_func=no" -fi -rm -f conftest* - -fi -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi -done - - for ac_func in socket chroot -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); - -int main() { return 0; } -int t() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -$ac_func(); -#endif - -; return 0; } -EOF -if { (eval echo configure:1468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" -else - rm -rf conftest* - eval "ac_cv_func_$ac_func=no" -fi -rm -f conftest* - -fi -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <&6 -fi -done - - echo $ac_n "checking for strerror""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror(); - -int main() { return 0; } -int t() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_strerror) || defined (__stub___strerror) -choke me -#else -strerror(); -#endif - -; return 0; } -EOF -if { (eval echo configure:1519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - eval "ac_cv_func_strerror=yes" -else - rm -rf conftest* - eval "ac_cv_func_strerror=no" -fi -rm -f conftest* - -fi -if eval "test \"`echo '$ac_cv_func_'strerror`\" = yes"; then - echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define HAVE_STRERROR 1 -EOF - -else - echo "$ac_t""no" 1>&6 -LIBOBJS="$LIBOBJS c/fake/strerror.o" -fi - - echo $ac_n "checking n_name""... $ac_c" 1>&6 - cat > conftest.$ac_ext < -int main() { return 0; } -int t() { -struct nlist name_list; - name_list.n_name = "foo"; -; return 0; } -EOF -if { (eval echo configure:1551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - cat >> confdefs.h <<\EOF -#define NLIST_HAS_N_NAME 1 -EOF - - echo "$ac_t""yes" 1>&6 -else - rm -rf conftest* - echo "$ac_t""no" 1>&6 -fi -rm -f conftest* - - echo $ac_n "checking __NEXT__""... $ac_c" 1>&6 - cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; }; then - rm -rf conftest* - CC="$CC -posix" - cat >> confdefs.h <<\EOF -#define HAVE_SIGACTION 1 -EOF - - echo "$ac_t""yes" 1>&6 -else - rm -rf conftest* - echo "$ac_t""no" 1>&6 -fi -rm -f conftest* - - echo $ac_n "checking underscore before symbols""... $ac_c" 1>&6 - echo 'main() { return 0; } fnord() {}' >conftest.c - if ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c ${LIBS} && - nm a.out | grep _fnord >/dev/null; then - echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define USCORE 1 -EOF - - else - echo "$ac_t""no" 1>&6 - fi - rm -f conftest.c a.out - - echo $ac_n "checking link with -rdynamic""... $ac_c" 1>&6 - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - echo "$ac_t""no" 1>&6 -else - rm -rf conftest* - echo "$ac_t""yes" 1>&6 - LDFLAGS="$LDFLAGS -rdynamic" -fi -rm -f conftest* - - - - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \ - >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -DEFS=-DHAVE_CONFIG_H - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.10" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile c/sysdep.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@CC@%$CC%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@CPP@%$CPP%g -s%@LIBOBJS@%$LIBOBJS%g - -CEOF -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust relative srcdir, etc. for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file -fi; done -rm -f conftest.subs - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' -ac_dC='\3' -ac_dD='%g' -# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='\([ ]\)%\1#\2define\3' -ac_uC=' ' -ac_uD='\4%g' -# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_eB='$%\1#\2define\3' -ac_eC=' ' -ac_eD='%g' - -CONFIG_HEADERS=${CONFIG_HEADERS-"c/sysdep.h"} -for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then - # Support "outfile[:infile]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - echo creating $ac_file - - rm -f conftest.frag conftest.in conftest.out - cp $ac_given_srcdir/$ac_file_in conftest.in - -EOF - -# Transform confdefs.h into a sed script conftest.vals that substitutes -# the proper values into config.h.in to produce config.h. And first: -# Protect against being on the right side of a sed subst in config.status. -# Protect against being in an unquoted here document in config.status. -rm -f conftest.vals -cat > conftest.hdr <<\EOF -s/[\\&%]/\\&/g -s%[\\$`]%\\&%g -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp -s%ac_d%ac_u%gp -s%ac_u%ac_e%gp -EOF -sed -n -f conftest.hdr confdefs.h > conftest.vals -rm -f conftest.hdr - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >> conftest.vals <<\EOF -s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% -EOF - -# Break up conftest.vals because some shells have a limit on -# the size of here documents, and old seds have small limits too. -# Maximum number of lines to put in a single here document. -ac_max_here_lines=12 - -rm -f conftest.tail -while : -do - ac_lines=`grep -c . conftest.vals` - # grep -c gives empty output for an empty file on some AIX systems. - if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi - # Write a limited-size here document to conftest.frag. - echo ' cat > conftest.frag <> $CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS - echo 'CEOF - sed -f conftest.frag conftest.in > conftest.out - rm -f conftest.in - mv conftest.out conftest.in -' >> $CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail - rm -f conftest.vals - mv conftest.tail conftest.vals -done -rm -f conftest.vals - -cat >> $CONFIG_STATUS <<\EOF - rm -f conftest.frag conftest.h - echo "/* $ac_file. Generated automatically by configure. */" > conftest.h - cat conftest.in >> conftest.h - rm -f conftest.in - if cmp -s $ac_file conftest.h 2>/dev/null; then - echo "$ac_file is unchanged" - rm -f conftest.h - else - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - fi - rm -f $ac_file - mv conftest.h $ac_file - fi -fi; done - - - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/configure.in b/configure.in index d7c1341..e8b9924 100644 --- a/configure.in +++ b/configure.in @@ -3,26 +3,7 @@ dnl dnl We might want AC_WORDS_BIGENDIAN in the future. dnl We might want AC_CHAR_UNSIGNED in the future. dnl -dnl The -cckr (K&R) flag is for the IRIX C compiler. If this is left -dnl out, scheme48vm.c breaks because the rather pedantic SGI compiler -dnl decides that a char is not the same thing as an unsigned char. -dnl - Bryan O'Sullivan 3/94 -dnl Note, this test didn't work correctly on Sun's which take -cckr as a -dnl synonym for -c. (HCC) -define(S48_CFLAG_CKR, [dnl - if test "z$GCC" = z; then - AC_MSG_CHECKING([-cckr]) - oldCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -cckr" - AC_TRY_RUN([int main() { return 0;}], - [AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no) - CFLAGS="$oldCFLAGS"], - [AC_MSG_RESULT(no) - CFLAGS="$oldCFLAGS"]) - fi -])dnl -dnl + define(S48_POSIX_LIBC, [dnl echo checking for RISC/OS POSIX library lossage if test -f /usr/posix/usr/lib/libc.a; then @@ -64,24 +45,254 @@ dnl define(S48_USCORE, [dnl AC_MSG_CHECKING([underscore before symbols]) echo 'main() { return 0; } fnord() {}' >conftest.c - if ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c ${LIBS} && + if ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -o a.out conftest.c ${LIBS} && nm a.out | grep _fnord >/dev/null; then AC_MSG_RESULT([yes]) - AC_DEFINE(USCORE) + AC_DEFINE(USCORE, 1, [Define to 1 if symbols start with _]) else AC_MSG_RESULT([no]) fi rm -f conftest.c a.out ])dnl dnl +dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +AC_DEFUN(SCSH_TZNAME,[ + AC_MSG_CHECKING(for tzname) + AC_CACHE_VAL(scsh_cv_tzname,[ + AC_TRY_COMPILE([#include ], + [return (int) tzname;], + scsh_cv_tzname=yes, + scsh_cv_tzname=no)]) + AC_MSG_RESULT($scsh_cv_tzname) + if test $scsh_cv_tzname = yes; then + AC_DEFINE(HAVE_TZNAME) + fi +]) + +dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +AC_DEFUN(SCSH_ELF, [ + AC_MSG_CHECKING(for ELF) + AC_CACHE_VAL(scsh_cv_elf,[ + touch conftest.c + if ${CC} -v -o a.out conftest.c 2>&1 | grep -q __ELF__ ; then + scsh_cv_elf=yes + else + scsh_cv_elf=no + fi]) + AC_MSG_RESULT($scsh_cv_elf) + if test $scsh_cv_elf = yes; then + LDFLAGS=-rdynamic + fi + rm -f conftest.c a.out +]) +dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +AC_DEFUN(SCSH_SIG_NRS, [ + AC_MSG_RESULT([defining signal constants]) + ${CC} -o scsh_aux scsh/scsh_aux.c + AC_DEFINE_UNQUOTED(SIGNR_1, `./scsh_aux 1`, [scsh interrupt for signal 1]) + AC_DEFINE_UNQUOTED(SIGNR_2, `./scsh_aux 2`, [scsh interrupt for signal 2]) + AC_DEFINE_UNQUOTED(SIGNR_3, `./scsh_aux 3`, [scsh interrupt for signal 3]) + AC_DEFINE_UNQUOTED(SIGNR_4, `./scsh_aux 4`, [scsh interrupt for signal 4]) + AC_DEFINE_UNQUOTED(SIGNR_5, `./scsh_aux 5`, [scsh interrupt for signal 5]) + AC_DEFINE_UNQUOTED(SIGNR_6, `./scsh_aux 6`, [scsh interrupt for signal 6]) + AC_DEFINE_UNQUOTED(SIGNR_7, `./scsh_aux 7`, [scsh interrupt for signal 7]) + AC_DEFINE_UNQUOTED(SIGNR_8, `./scsh_aux 8`, [scsh interrupt for signal 8]) + AC_DEFINE_UNQUOTED(SIGNR_9, `./scsh_aux 9`, [scsh interrupt for signal 9]) + AC_DEFINE_UNQUOTED(SIGNR_10, `./scsh_aux 10`, [scsh interrupt for signal 10]) + AC_DEFINE_UNQUOTED(SIGNR_11, `./scsh_aux 11`, [scsh interrupt for signal 11]) + AC_DEFINE_UNQUOTED(SIGNR_12, `./scsh_aux 12`, [scsh interrupt for signal 12]) + AC_DEFINE_UNQUOTED(SIGNR_13, `./scsh_aux 13`, [scsh interrupt for signal 13]) + AC_DEFINE_UNQUOTED(SIGNR_14, `./scsh_aux 14`, [scsh interrupt for signal 14]) + AC_DEFINE_UNQUOTED(SIGNR_15, `./scsh_aux 15`, [scsh interrupt for signal 15]) + AC_DEFINE_UNQUOTED(SIGNR_16, `./scsh_aux 16`, [scsh interrupt for signal 16]) + AC_DEFINE_UNQUOTED(SIGNR_17, `./scsh_aux 17`, [scsh interrupt for signal 17]) + AC_DEFINE_UNQUOTED(SIGNR_18, `./scsh_aux 18`, [scsh interrupt for signal 18]) + AC_DEFINE_UNQUOTED(SIGNR_19, `./scsh_aux 19`, [scsh interrupt for signal 19]) + AC_DEFINE_UNQUOTED(SIGNR_20, `./scsh_aux 20`, [scsh interrupt for signal 20]) + AC_DEFINE_UNQUOTED(SIGNR_21, `./scsh_aux 21`, [scsh interrupt for signal 21]) + AC_DEFINE_UNQUOTED(SIGNR_22, `./scsh_aux 22`, [scsh interrupt for signal 22]) + AC_DEFINE_UNQUOTED(SIGNR_23, `./scsh_aux 23`, [scsh interrupt for signal 23]) + AC_DEFINE_UNQUOTED(SIGNR_24, `./scsh_aux 24`, [scsh interrupt for signal 24]) + AC_DEFINE_UNQUOTED(SIGNR_25, `./scsh_aux 25`, [scsh interrupt for signal 25]) + AC_DEFINE_UNQUOTED(SIGNR_26, `./scsh_aux 26`, [scsh interrupt for signal 26]) + AC_DEFINE_UNQUOTED(SIGNR_27, `./scsh_aux 27`, [scsh interrupt for signal 27]) + AC_DEFINE_UNQUOTED(SIGNR_28, `./scsh_aux 28`, [scsh interrupt for signal 28]) + AC_DEFINE_UNQUOTED(SIGNR_29, `./scsh_aux 29`, [scsh interrupt for signal 29]) + AC_DEFINE_UNQUOTED(SIGNR_30, `./scsh_aux 30`, [scsh interrupt for signal 30]) + AC_DEFINE_UNQUOTED(SIGNR_31, `./scsh_aux 31`, [scsh interrupt for signal 31]) + rm -f scsh_aux scsh_aux.exe +]) +dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +AC_DEFUN(SCSH_LINUX_STATIC_DEBUG, [ + case "$host" in + *-*-linux* ) + AC_MSG_CHECKING(for broken Linux that needs -static with -g) + AC_CACHE_VAL(scsh_cv_linux_static_debug,[ + AC_TRY_LINK([], + [], + scsh_cv_linux_static_debug=no, + scsh_cv_linux_static_debug=yes)]) + AC_MSG_RESULT($scsh_cv_linux_static_debug) + if test $scsh_cv_linux_static_debug = yes; then + LDFLAGS="-static ${LDFLAGS}" + fi + ;; + esac +]) + +dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +AC_DEFUN(SCSH_CONST_SYS_ERRLIST,[ + AC_MSG_CHECKING(for const sys_errlist) + AC_CACHE_VAL(scsh_cv_const_sys_errlist,[ + AC_TRY_COMPILE([#include + #include ], + [const extern char *sys_errlist[];], + scsh_cv_const_sys_errlist=yes, + scsh_cv_const_sys_errlist=no)]) + AC_MSG_RESULT($scsh_cv_const_sys_errlist) + if test $scsh_cv_const_sys_errlist = yes; then + AC_DEFINE(HAVE_CONST_SYS_ERRLIST, 1, [const char* sys_errlist]) + fi +]) + +dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +AC_DEFUN(SCSH_SOCKLEN_T,[ + AC_MSG_CHECKING(for socklen_t) + AC_TRY_COMPILE([#include + socklen_t x; + ],[],[AC_MSG_RESULT(yes)],[ + AC_TRY_COMPILE([#include + int accept (int, struct sockaddr *, size_t *); + ],[],[ + AC_MSG_RESULT(size_t) + AC_DEFINE(socklen_t, + size_t, [Define to type of socklen_t])], [ + AC_MSG_RESULT(int) + AC_DEFINE(socklen_t,int)])]) +]) +dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- AC_INIT(c/scheme48vm.c) AC_CONFIG_HEADER(c/sysdep.h) + AC_CANONICAL_HOST S48_PROG_CC + SCSH_SIG_NRS AC_ISC_POSIX + SCSH_LINUX_STATIC_DEBUG dnl set the cross-compile flag before we try anything. AC_TRY_RUN([int main() { return 0;}], [], [], [true]) - S48_CFLAG_CKR AC_PROG_INSTALL + AC_PROG_RANLIB + AC_C_CONST + + AC_C_BIGENDIAN + if test $ac_cv_c_bigendian = no ; then + ENDIAN=little + else + ENDIAN=big + fi + + AR=${AR-"ar cq"} + TMPDIR=${TMPDIR-"/var/tmp"} + case "$host" in + ## CX/UX + m88k-harris-cxux* ) + dir=cxux + CC="cc -Xa" + CFLAGS="-O" + LDFLAGS="-O -Wl,-Bexport" + AC_DEFINE(HAVE_HARRIS, 1, [Define to 1 on m88k-harris-cxux]) + ;; + + ## DEC Ultrix + mips-dec-ultrix* ) + dir=ultrix + if test ${CC} = cc; then + LDFLAGS=-N + fi + ;; + + ## HP 9000 series 700 and 800, running HP/UX + hppa*-hp-hpux* ) + dir=hpux + LDFLAGS="-Wl,-E" + if test ${CC} = cc; then + CFLAGS="-Ae -O +Obb1800" + fi + AC_DEFINE(_HPUX_SOURCE, 1, [Define to 1 to compile on HP/UX]) + AC_DEFINE(hpux, 1, [Define to 1 on HP/UX]) + AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Define to 1 to compile on HP/UX]) + ;; + + ## IBM AIX + rs6000-ibm-aix*|powerpc-ibm-aix* ) + dir=aix + LDFLAGS="-O" + if test ${CC} = gcc; then + LDFLAGS_AIX="-Xlinker -bexport:exportlist.aix" + else + LDFLAGS_AIX="-bexport:exportlist.aix" + fi + CFLAGS="-O" + AIX_P="exportlist.aix" + ;; + + ## Linux + *-*-linux* ) + dir=linux + # gross, but needed for some older a.out systems for 0.4.x + LIBS=-lc + SCSH_ELF + ;; + + ## NetBSD and FreeBSD ( and maybe 386BSD also) + *-*-*bsd*|*-*-darwin* ) + dir=bsd + SCSH_ELF + ;; + + ## NeXT + *-next-* ) + dir=next + CC="$CC -posix" + AC_DEFINE(HAVE_SIGACTION) + ;; + + ## SGI IRIX + mips-sgi-irix* ) + dir=irix + S48_CFLAG_CKR + INSTALL='$(srcdir)/install-sh' + ;; + + ## SunOS + sparc*-sun-sunos* ) + dir=sunos + ;; + + ## Solaris - Sparc and i386 + *-*-solaris* ) + dir=solaris + AC_DEFINE(HAVE_NLIST) + ;; + + ## NT - cygwin32 + *-*-cygwin* ) + AC_DEFINE(CYGWIN, 1, [Define to 1 on cygwin]) + dir=cygwin32 + EXEEXT=".exe" + ;; + + ## Generic Configuration + * ) + dir=generic + echo "WARNING: " + echo "WARNING: Using generic configuration." + echo "WARNING: See doc/porting.txt for more information." + echo "WARNING: " + ;; +esac + (cd $srcdir/scsh && rm -rf machine && ln -s $dir machine) + AC_CHECK_LIB(m, main) AC_CHECK_LIB(dl, main) AC_CHECK_LIB(mld, main) @@ -89,27 +300,42 @@ AC_INIT(c/scheme48vm.c) AC_CHECK_LIB(gen, main) AC_CHECK_LIB(socket, main) AC_CHECK_LIB(sun, getpwnam) + AC_CHECK_LIB(c, crypt, [true], AC_CHECK_LIB(crypt, crypt)) dnl Solaris 2.3 seems to need -lelf for nlist(). (tnx Bryan O'Sullivan) AC_CHECK_LIB(elf, main) S48_POSIX_LIBC AC_CONST AC_RETSIGTYPE - AC_CHECK_HEADERS(libgen.h sys/timeb.h posix/time.h) - AC_CHECK_HEADERS(sys/select.h) - AC_CHECK_FUNCS(gettimeofday ftime nlist select setitimer sigaction) - AC_CHECK_FUNC(dlopen, AC_DEFINE(HAVE_DLOPEN), - AC_CHECK_FUNC(nlist, [LIBOBJS="$LIBOBJS c/fake/libdl1.c], - [LIBOBJS="$LIBOBJS c/fake/libdl2.c])) + AC_CHECK_HEADERS(libgen.h sys/timeb.h posix/time.h sys/select.h nlist.h) + AC_CHECK_HEADERS(sys/un.h) + AC_CHECK_HEADERS(crypt.h) + AC_CHECK_FUNCS(gettimeofday ftime nlist select setitimer sigaction vasprintf) + SCSH_SOCKLEN_T + AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_DLOPEN, + 1, [Define to 1 if the interface to the dynamic linker exists])], + [AC_CHECK_FUNC(nlist, [AC_LIBOBJ([c/fake/libdl1])], + [AC_LIBOBJ([c/fake/libdl2])])]) AC_CHECK_FUNCS(socket chroot) - AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR), - [LIBOBJS="$LIBOBJS c/fake/strerror.o"]) - AC_MSG_CHECKING([n_name]) - AC_TRY_LINK([#include ], - [struct nlist name_list; - name_list.n_name = "foo";], - AC_DEFINE(NLIST_HAS_N_NAME) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) + AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR, + 1, [Define to 1 if you have the strerror function]), + [AC_LIBOBJ([c/fake/strerror])]) + + AC_CHECK_FUNC(seteuid, [AC_DEFINE(HAVE_SETEUID, + 1, [Define to 1 if you have the seteuid function])], + [AC_CHECK_FUNC(setreuid, [AC_DEFINE(HAVE_SETREUID, + 1, [Define to 1 if you have the setreuid function])], + [AC_MSG_ERROR("Neither setegid nor setregid defined. Cannot continue.")])]) + + AC_CHECK_FUNC(setegid, [AC_DEFINE(HAVE_SETEGID, + 1, [Define to 1 if you have the setegid function])], + [AC_CHECK_FUNC(setregid, [AC_DEFINE(HAVE_SETREGID, + 1, [Define to 1 if you have the setregid function])], + [AC_MSG_ERROR("Neither setegid nor setregid defined. Cannot continue.")])]) + + + AC_CHECK_MEMBER(struct nlist.n_name, + [AC_DEFINE(NLIST_HAS_N_NAME, 1, [Define to 1 if struct nlist.n_name exists])],, + [#include ]) AC_MSG_CHECKING([__NEXT__]) AC_TRY_LINK(,[ #ifdef __NeXT__ @@ -124,7 +350,31 @@ fail AC_MSG_RESULT([no])) S48_USCORE S48_RDYNAMIC + AC_STRUCT_TIMEZONE + AC_CHECK_MEMBER(struct tm.tm_gmtoff, + AC_DEFINE(HAVE_GMTOFF, 1, [Define to 1 if struct tm has member tm_gmtoff])) + + SCSH_CONST_SYS_ERRLIST + CFLAGS1=${CFLAGS} + AC_SUBST(CFLAGS) - AC_SUBST(LIBOBJS) AC_SUBST(LDFLAGS) -AC_OUTPUT(Makefile) + + + AC_SUBST(AIX_P) + AC_SUBST(AR) + AC_SUBST(CC) + AC_SUBST(CFLAGS) + AC_SUBST(CFLAGS1) + AC_SUBST(EXEEXT) + AC_SUBST(ENDIAN) + AC_SUBST(LDFLAGS) + AC_SUBST(LDFLAGS_AIX) + AC_SUBST(LIBS) + AC_SUBST(TMPDIR) + + +AC_CONFIG_FILES(Makefile scsh/endian.scm scsh-config) +AC_CONFIG_COMMANDS([scsh-config+x],[chmod +x scsh-config]) +AC_OUTPUT + diff --git a/doc/big-scheme.txt b/doc/big-scheme.txt deleted file mode 100644 index 0f03197..0000000 --- a/doc/big-scheme.txt +++ /dev/null @@ -1,309 +0,0 @@ - - Documentation for Big Scheme - - -Big Scheme is a set of generally useful facilities. - -Easiest way to access these things: - - > ,open big-scheme - Load structure big-scheme (y/n)? y - ... - -A better way is to use the module system. - ------ - -Ascii conversions - -(CHAR->ASCII ) => -(ASCII->CHAR ) => - These are identical to CHAR->INTEGER and INTEGER->CHAR except that - they use the ASCII encoding. - ------ - -Bitwise operations - -(BITWISE-NOT ) => -(BITWISE-AND ) => -(BITWISE-IOR ) => -(BITWISE-XOR ) => - These perform various logical operations on integers on a bit-by-bit - basis, using a two's-complement representation. - -(ARITHMETIC-SHIFT ) => - Shift the integer by the given bit count, shifting left for positive - counts and right for negative ones. A two's complement - representation is used. - ------ - -Hash tables - -(MAKE-TABLE) => -(MAKE-STRING-TABLE) => - Make a new, empty table. MAKE-TABLE returns a table that uses EQ? - for comparing keys and an ad-hoc hash function. String tables uses - strings for keys. - -(MAKE-TABLE-MAKER ) => - Returns a procedure of no arguments that makes tables that use the - given comparison and hash procedures. - ( ) => - ( ) => - -(TABLE? ) => - True if is a table. - -(TABLE-REF
) => - Return the value for in
, or #F if there is none. - should be of a type appropriate for
. - -(TABLE-SET!
) => - Make be the value of in
. should be of a - type appropriate for
. - -(TABLE-WALK
) => - Apply , which must accept two arguments, to every - associated key and value in
. - ------ - -Enumerations - -(DEFINE-ENUMERATION ( ...)) *SYNTAX* - Defines to be an enumeration with components - .... Also defines -COUNT to be the number of - components. - -(ENUM ) => *SYNTAX* - Evaluates to the value of within the enumeration - . For example, if (DEFINE-ENUMERATION COLOR (GREEN - RED)), then (ENUM COLOR GREEN) is zero and (ENUM COLOR RED) is one. - The mapping from name to integer is done at macro-expansion time, so - there is no run-time overhead. - -(ENUMERAND->NAME ) => - Returns the name associated with within . - E.g. (ENUMERAND->NAME 1 COLOR) => 'RED. - -(NAME->ENUMERAND ) => - Returns the integer associated with within . - E.g. (ENUMERAND->NAME 'GREEN COLOR) => 0. - ------ - -Port extensions - -(MAKE-TRACKING-INPUT-PORT ) => -(MAKE-TRACKING-OUTPUT-PORT ) => - These return ports that keep track of the current row and column and - are otherwise identical to their arguments. - -(MAKE-STRING-INPUT-PORT ) => - Returns a port that reads characters from the supplied string. - -(CALL-WITH-STRING-OUTPUT-PORT ) => - The procedure is called on a port. When it returns, CALL-WITH-STRING- - OUTPUT-PORT returns a string containing the characters written to the port. - -(WRITE-ONE-LINE ) => - The procedure is called on an output port. Output written to that - port is copied to until characters - have been written, at which point WRITE-ONE-LINE returns. - -(CURRENT-ROW ) => or #f -(CURRENT-COLUMN ) => or #f - These return the current read or write location of the port. #F is - returned if the port does not keep track of its location. - -(FRESH-LINE ) => - Write a newline character to if its current column is not 0. - -(INPUT-PORT? ) => -(OUTPUT-PORT? ) => - These are versions of the standard Scheme predicates that answer true for - extended ports. - ------ - -Queues - -(MAKE-QUEUE) => - Returns a new, empty queue. - -(ENQUEUE! ) => - Puts on the queue. - -(DEQUEUE! ) => - Removes and returns the first element of the queue. - -(QUEUE-EMPTY? ) => - True if the queue is empty. - -(QUEUE? ) => - True if is a queue. - -(QUEUE->LIST ) => - Returns a list of the elements of the queue, in order. - -(QUEUE-LENGTH ) => - The number of elements currently on the queue. - -(DELETE-FROM-QUEUE! ) => - Removes the first occurance of from the queue, returning true if - it was found and false otherwise. - ------ - -Little utility procedures - -(ATOM? ) => - (ATOM? x) == (NOT (PAIR? x)) - -(NULL-LIST? ) => - Returns #t for the empty list, #f for a pair, and signals an error - otherwise. - -(NEQ? ) => - (NEQ? x y) is the same as (NOT (EQ? x y)). - -(N= ) => - (N= x y) is the same as (NOT (= x y)). - -(IDENTITY ) => -(NO-OP ) => - These both just return their argument. NO-OP is guaranteed not to - be compiled in-line, IDENTITY may be. - ------ - -List utilities - -(MEMQ? ) => - Returns true if is in , false otherwise. - -(ANY? ) => - Returns true if is true for any element of . - -(EVERY? ) => - Returns true if is true for every element of . - -(ANY ) -(FIRST ) - ANY returns some element of for which is true, or - #F if there are none. FIRST does the same except that it returns - the first element for which is true. - -(FILTER ) -(FILTER! ) - Returns a list containing all of the elements of for which - is true. The order of the elements is preserved. - FILTER! may reuse the storage of . - -(FILTER-MAP ) - The same as FILTER except the returned list contains the results of - applying instead of elements of . (FILTER-MAP p - l) is the same as (FILTER IDENTITY (MAP p l)). - -(PARTITION-LIST ) => -(PARTITION-LIST! ) => - The first return value contains those elements for which - is true, the second contains the remaining elements. - The order of the elements is preserved. PARTITION-LIST! may resuse - the storage of the . - -(REMOVE-DUPLICATES ) => - Returns its argument with all duplicate elements removed. The first - instance of each element is preserved. - -(DELQ ) => -(DELQ! ) => -(DELETE ) => - All three of these return with some elements removed. DELQ - removes all elements EQ? to . DELQ! does the same and may - modify the list argument. DELETE removes all elements for which - is true. Both DELQ and DELETE may reuse some of the - storage in the list argument, but won't modify it. - -(REVERSE! ) => - Destructively reverses . - -(SORT-LIST ) => -(SORT-LIST! ) => - Returns a sorted copy of . The sorting algorithm is stable. - (SORT-LIST '(6 5 1 3 2 4) <) => '(1 2 3 4 5 6) - ------ - -Additional syntax - -(DESTRUCTURE (( ) ...) ...) *SYNTAX* - The s are evaluated and their values are dissasembled - according to the corresponding patterns, with identifiers in the - patterns being bound to fresh locations holding the corresponding - part, and the body is evaluated in the extended environment. - Patterns may be any of the following: - - #f Discard the corresponding part. - Bind the to the part. - ( ...) The part must be a list at least as long as the - pattern. - ( ... . ) - The same thing, except that the final CDR of the - part is dissasembled according to . - #( ...) The part must be a vector at least as long as the - pattern. - -(RECEIVE ...) *SYNTAX* - => (CALL-WITH-VALUES (LAMBDA () ) (LAMBDA ...)) - Bind to the values returned by , and evaluate the - body in the resulting environment. - ------ - -Printing and related procedures - -(CONCATENATE-SYMBOL . ) - Returns the symbol whose name is produced by concatenating the DISPLAYed - representations of . - (CONCATENATE-SYMBOL 'abc "-" 4) => 'abc-4 - -(FORMAT . ) => or - Prints the arguments to the port as directed by the string. - should be either: - An output port. The output is written directly to the port. The result - of the call to FORMAT is undefined. - #T. The output is written to the current output port. The result of the - call to FORMAT is undefined. - #F. The output is written to a string, which is then the value returned - from the call to FORMAT. - Characters in which are not preceded by a ~ are written - directly to the output. Characters preceded by a ~ have the following - meaning (case is irrelevant; ~a and ~A have the same meaning): - ~~ prints a single ~ - ~A prints the next argument using DISPLAY - ~D prints the next argument as a decimal number - ~S prints the next argument using WRITE - ~% prints a newline character - ~& prints a NEWLINE character if the previous printed character was not one - (this is implemented using FRESH-LINE) - ~? performs a recursive call to FORMAT using the next two arguments as the - string and the list of arguments - -(ERROR . ) -(BREAKPOINT . ) - Signals an error or breakpoint condition, passing it the result of - applying FORMAT to the arguments. - -(P ) -(P ) -(PRETTY-PRINT ) - Pretty-print . The current output port is used if no port is - specified. is the starting offset. will be - pretty-printed to the right of this column. - - -Original by RK, 26 Jan 1993. -Minor changes by JAR, 5 Dec 1993. diff --git a/doc/cheat.txt b/doc/cheat.txt new file mode 100644 index 0000000..8de8a44 --- /dev/null +++ b/doc/cheat.txt @@ -0,0 +1,740 @@ +Scsh cheat sheet +Olin Shivers +November 1996 + +This cheat sheet is intentionally kept brief and minimalist. +It is intended to function as an ASCII-format reminder for the +full manual, not as the definition. It can be read using GNU Emacs's +outline mode. + +It is also not entirely up-to-date. I'd appreciate getting updates from users. +------------------------------------------------------------------------------- + +* High-level forms + +Extended process form: + (PF [REDIR1 ...]) + +Redirection: + (< [FDES] FILE-NAME) + (> [FDES] FILE-NAME) + (<< [FDES] OBJECT) + (= FDES FDES/PORT) + (- FDES/PORT) + stdports +Subforms are implicitly backquoted. + +Process form: + (| PF1 ...) ; pipeline + (|+ CONNECT-LIST PF1 ...) ; complex pipeline + (begin . BODY) ; Scheme form + (epf . EPF) ; Embedded extended process form + (PROG ARG1 ... ARGn) ; Exec a program +Subforms are implicitly backquoted. + +Using process forms in Scheme: + (exec-epf . EPF) ; Nuke the current process. + (& . EPF) ; Fork process in background. Return proc object. + (run . EPF) ; Run process. Return exit code. + + (& . EPF) = (fork (lambda () (exec-epf . EPF))) + (run . EPF) = (wait (& . EPF)) + +Interfacing to subprocess I/O: + (run/port . EPF) -> port + (run/file . EPF) -> string + (run/string . EPF) -> string + (run/strings . EPF) -> string list + (run/sexp . EPF) -> object + (run/sexps . EPF) -> list + +There are procedural equivalents for each of these, e.g., run/port* and +run/file*, that take thunk arguments for the subprocess. + +(port->string PORT) -> string + Read until EOF on PORT, return data as a string. + +(port->string-list PORT) -> string list + Repeatedly apply READ-LINE to PORT until EOF. Return list of lines read. + +(port->sexp-list PORT) -> list + Repeatedly apply READ to PORT until EOF. Return list of items read. + +(port->list READER PORT) + Repeatedly apply READER to PORT until EOF. Return list of items read. + +(reduce-port PORT READER OP . SEEDS) + Evaluate (OP (READER PORT) . SEEDS) to get a new set of seeds + (OP must return as many values as there are SEEDS). When + a port read returns EOF, the current set of seed values are + returned as multiple values. + +(run/port+proc . EPF) -> [port proc] +(run/port+proc* THUNK) -> [port proc] + +(run/collecting FDS . EPF) -> [port ...] +(run/collecting* FDS THUNK) -> [port ...] + RUN/COLLECTING implicitly backquotes FDS. + +(|| PF1 ... PFn) +(&& PF1 ... PFn) + Conditionally execute processes. + +(char-filter filter) -> procedure +(string-filter filter [buflen]) -> procedure + +* System calls + +** Errors + +(errno-error errno SYSCALL . DATA) +(with-errno-handler* HANDLER THUNK) -> value of thunk + HANDLER is called on two arguments: (HANDLER ERRNO PACKET) + where PACKET is a list of the form (ERRNO-MSG SYSCALL . DATA) + If HANDLER returns at all, the handler search continues upwards. + +(with-errno-handler HANDLER-SPEC . BODY) + HANDLER-SPEC is of the form + ((ERRNO PACKET) CLAUSE ...) + ERRNO and PACKET are variables bound to the errno error being raised. + There are two forms for handler clauses: + ((ERRNO ...) . BODY) + (else . BODY) + ERRNO are expressions evaluating to errno integers. + +** I/O +*** Port Manipulation +(close-after PORT CONSUMER) -> value(s) of consumer +(error-output-port) -> port + +(with-current-input-port port . body) -> value(s) of body +(with-current-output-port port . body) -> value(s) of body +(with-error-output-port port . body) -> value(s) of body + +(with-current-input-port* port thunk) -> value(s) of thunk +(with-current-output-port* port thunk) -> value(s) of thunk +(with-error-output-port* port thunk) -> value(s) of thunk + +(close fd/port) + +(stdports->stdio) +(stdio->stdports) + +(with-stdio-ports* thunk) -> value(s) of thunk +(with-stdio-ports . body) -> value(s) of body + +(make-string-input-port) -> port +(string-output-port-output port) -> port +(call-with-string-output-port proc) -> str + +** Port and file descriptors +(fdes->inport fd) -> port +(fdes->outport fd) -> port +(port->fdes port) -> fixnum + Increment port's revealed count. + +(port-revealed port) -> integer or #f +(release-port-handle port) +(call/fdes fd/port consumer) -> value(s) of consumer + +(move->fdes fd/port target-fd) -> port or fdes + +** Unix I/O + +(dup fd/port [newfd]) -> fd/port +(dup->inport fd/port [newfd]) -> port +(dup->outport fd/port [newfd]) -> port +(dup->fdes fd/port [newfd]) -> fd + +(file-seek fd/port offset whence) + +(open-file fname flags [perms]) -> port +(open-input-file fname [flags]) -> port +(open-output-file fname [flags perms]) -> port +(open-fdes fname flags [perms]) -> integer + +(fdes-flags fd/port) +(set-fdes-flags fd/port flags) + Only Posix flag defined is FDFLAGS/CLOSE-ON-EXEC, which you should + not ever have to use -- scsh manages this automatically. + +(fdes-status fd/port) +(set-fdes-flags fd/port flags) + + Operations allowed Flags + ------------------ ----- + Open+get+set open/append, open/non-blocking + open/async, open/fsync (non-Posix) + + Open+get open/read, open/write, open/read+write + open/access-mask + + Open only open/create, open/exclusive, + open/no-control-tty, open/truncate + +(pipe) -> [rport wport] +(read-line [fd/port retain-newline?]) -> string or eof-object + +(read-string nbytes [fd/port]) -> string or #f +(read-string! str [fd/port start end]) -> [nread or #f] +(read-string/partial nbytes [fd/port]) -> string or #f +(read-string!/partial str [fd/port start end]) -> [nread or #f] + +(write-string string [fd/port start end]) +(write-string/partial string [fd/port start end]) -> nwritten +(force-output [fd/port]) + +** File locking +(define-record lock-region + exclusive? ; write or read lock? + start ; integer: start, end & whence + end ; integer: define the region being locked. + whence ; The value of SEEK/SET, SEEK/DELTA, or SEEK/END. + proc) ; A proc object for the process locking the region. + +(make-lock-region exclusive? start len [whence]) -> lock-region + WHENCE defaults to the value of SEEK/SET. + +(lock-region fdes lock) +(lock-region/no-block fdes lock) + +(get-lock-region fdes lock) -> lock-region or #f + +(unlock-region fdes lock) + +(with-region-lock* fdes lock thunk) +(with-region-lock fdes lock body ...) Syntax + +** File system +(create-directory fname [perms override?]) +(create-fifo fname [perms override?]) +(create-hard-link oldname newname [override?]) + OVERRIDE? one of {#f, QUERY, other true value} + +(delete-directory fname) +(delete-file fname) +(delete-filesys-object fname) + +(read-symlink fname) -> string + +(rename-file old-fname new-fname [override?]) + +(set-file-mode fname/fd/port mode) +(set-file-owner fname/fd/port uid) +(set-file-group fname/fd/port gid) + +(sync-file fd/port) +(sync-file-system) + +(truncate-file fname/fd/port len) + +(file-attributes fname/fd/port [chase?]) -> file-info + +(define-record file-info + type ; {block-special, char-special, directory, + ; fifo, regular, socket, symlink} + device ; Device file resides on. + inode ; File's inode. + mode ; File's permission bits. + nlinks ; Number of hard links to this file. + uid ; Owner of file. + gid ; File's group id. + size ; Size of file, in bytes. + atime ; Last access time. + mtime ; Last status-change time. + ctime) ; Creation time. + +Derived procedures: + file-type type + file-inode inode + file-mode mode + file-nlinks nlinks + file-owner uid + file-group gid + file-size size + file-last-access atime + file-last-mod mtime + file-last-status-change ctime + +(file-not-readable? fname) -> boolean +(file-not-writable? fname) -> boolean +(file-not-executable? fname) -> boolean + + Returns one of + #f Access permitted + SEARCH-DENIED Can't stat---a protected directory + is blocking access. + PERMISSION Permission denied. + NO-DIRECTORY Some directory doesn't exist. + NONEXISTENT File doesn't exist. + +(file-readable? fname) -> boolean +(file-writable? fname) -> boolean +(file-executable? fname) -> boolean + +(file-not-exists? fname [chase?]) -> boolean + #f Exists. + SEARCH-DENIED Some protected directory + is blocking the search. + #t Doesn't exist. + +(file-exists? fname [chase?]) -> boolean + +(directory-files [dir dotfiles?]) -> string list +(glob pat1 ...) -> string list +(glob-quote string) -> string +(file-match root dot-files? pat1 ...) -> string list + +(create-temp-file [prefix]) -> string +(temp-file-iterate maker [template]) -> [object ...] + TEMPLATE defaults to the value of *TEMP-FILE-TEMPLATE*. + +(temp-file-channel) -> [inport outport] + +** Processes +(exec prog arg1 ...) +(exec-path prog arg1 ...) +(exec/env prog env arg1 ...) +(exec-path/env prog env arg1 ...) + +(%exec prog arglist env) +(exec-path-search fname pathlist) -> string + +(exit [status]) +(%exit [status]) + +(suspend) + +(fork [thunk]) -> proc or #d +(%fork [thunk]) -> proc or #f + +(fork/pipe [thunk]) -> proc or #f +(%fork/pipe [thunk]) -> proc or #f + +(fork/pipe+ conns [thunk]) proc or #f +(%fork/pipe+ conns [thunk]) proc or #f + +(wait proc/pid [flags]) -> status [proc] + +(call-terminally thunk) + +** Process state + +(umask) -> fixnum +(set-umask perms) +(with-umask* perms thunk) -> values of thunk +(with-umask perms . body) -> values of body + +(chdir [fname]) +(cwd) -> string +(with-cwd* fname thunk) -> value(s) of thunk +(with-cwd fname . body) -> value(s) of body + +(pid) -> fixnum +(parent-pid) -> fixnum +(process-group) -> fixnum +(set-process-group [proc/pid] pgrp) + +(user-login-name) -> string +(user-uid) -> fixnum +(user-effective-uid) -> fixnum +(user-gid) -> fixnum +(user-effective-gid) -> fixnum +(user-supplementary-gids) -> fixnum list +(set-uid uid) +(set-gid gid) + +(process-times) -> [ucpu scpu uchildren schildren] + +** User and group db access + +(user-info uid-or-name) -> user-info + +(define-record user-info + name + uid + gid + home-dir + shell) + +(->uid uid/name) -> fixnum +(->username uid/name) -> string + +(group-info gid-or-name) -> record + +(define-record group-info + name + gid + members) ; List of uids + +(->gid gid/name) -> fixnum +(->group gid/name) -> string + +** Accessing command-line arguments + +command-line-arguments + Does not include program name + +(command-line) -> string list + Includes program name in list. + +(arg arglist n [default]) -> string +(arg* arglist n [default-thunk]) -> string +(argv n [default]) -> string + ARG is 1-based access to ARGLIST + ARGV is 0-based access to prog + args + +** System parameters + +(system-name) -> string + +** Signal system + +(signal-process proc/pid sig) +(signal-procgroup prgrp sig) +(pause-until-interrupt) +(sleep secs) + +Non-signal S48 interrupts +------------------------- +interrupt/memory-shortage + +Posix signals with S48 interrupts +------------------------------ +signal/alrm interrupt/alrm (aka interrupt/alarm) +signal/int interrupt/int (aka interrupt/int) +signal/chld interrupt/chld +signal/cont interrupt/cont +signal/hup interrupt/hup +signal/quit interrupt/quit +signal/term interrupt/term +signal/tstp interrupt/tstp +signal/usr1 interrupt/usr1 +signal/usr2 interrupt/usr2 + +signal/info interrupt/info Non-Posix +signal/io interrupt/io Non-Posix +signal/poll interrupt/poll Non-Posix +signal/prof interrupt/prof Non-Posix +signal/pwr interrupt/pwr Non-Posix +signal/urg interrupt/urg Non-Posix +signal/vtalrm interrupt/vtalrm Non-Posix +signal/winch interrupt/winch Non-Posix +signal/xcpu interrupt/xcpu Non-Posix +signal/xfsz interrupt/xfsz Non-Posix + +Synchronous and uncatchable signals +----------------------------------- +signal/stop Uncatchable Posix +signal/kill Uncatchable Posix + +signal/abrt Synchronous Posix +signal/fpe Synchronous Posix +signal/ill Synchronous Posix +signal/pipe Synchronous Posix +signal/segv Synchronous Posix +signal/ttin Synchronous Posix +signal/ttou Synchronous Posix + +signal/bus Synchronous BSD + SVR4 +signal/emt Synchronous BSD + SVR4 +signal/iot Synchronous BSD + SVR4 +signal/sys Synchronous BSD + SVR4 +signal/trap Synchronous BSD + SVR4 + +** Interrupt handlers +(signal->interrupt sig) -> interrupt +(interrupt-set integer1 ...) -> integer + +(enabled-interrupts) -> integer +(set-enabled-interrupts! integer) -> integer + +(with-enabled-interrupts interrupt-set body ...) Syntax +(with-enabled-interrupts* interrupt-set thunk) + +(set-interrupt-handler! interrupt handler) -> old-handler +(interrupt-handler interrupt) -> handler + HANDLER is #f (ignored), #t (default), or (lambda (enabled-ints) ...) proc. + +** Time + +(define-record date + seconds minute hour month-day month year + tz-name tz-secs summer? + week-day year-day) + +(make-date sec min hour mday month year [tz-name tz-secs summer? wday yday]) + +(time+ticks) +(ticks/sec) + +(date [time tz]) +(time [date]) + +(date->string date) +(format-date fmt date) + +** Environment variables + +(setenv var val) +(getenv var) -> string + +(env->alist) -> string->string alist +(alist->env alist) + +(alist-delete key alist) -> alist +(alist-update key val alist) -> alist +(alist-compress alist) -> alist + +(with-env* env-alist-delta thunk) -> value(s) of thunk +(with-total-env* env-alist thunk) -> value(s) of thunk + +(with-env env-alist-delta . body) -> value(s) of body +(with-total-env env-alist . body) -> value(s) of body + +(add-before elt before list) -> list +(add-after elt after list) -> list + +** $USER $HOME, and $PATH + +home-directory +exec-path-list + +* Networking + +** High Level Socket Routines + +*** clients +(socket-connect protocol-family/internet socket-type name port) -> socket +(socket-connect protocol-family/unix socket-type pathname) -> socket + +*** server +(bind-listen-accept-loop protocol-family/internet proc port) -> does-not-return +(bind-listen-accept-loop protocol-family/unix proc pathname) -> does-not-return + +proc is a procedure of two arguments: a socket and a socket-address + +** Sockets +(create-socket protocol-family type [protocol]) -> socket +(create-socket-pair type) -> [socket1 socket2] +(close-socket socket) -> undefined + +protocol-family/unix +protocol-family/internet + +socket-type/stream +socket-type/datagram + +for protocol see protocol-info + +(define-record socket family inport outport) + +** Socket Addresses +(define-record socket-address family) + +(unix-address->socket-address pathname) -> socket-address +(internet-address->socket-address host-address service-port)-> socket-address + +internet-address/any +internet-address/loopback +internet-address/broadcast + +(socket-address->unix-address socket-address) -> pathname +(socket-address->internet-address socket-address) -> + [host-address service-port] + +** Low Level Socket Routines + +(connect-socket socket socket-address) -> undefined +(bind-socket socket socket-address) -> undefined +(listen-socket socket backlog) -> undefined +(accept-connection socket) -> [new-socket socket-address] + +(socket-local-address socket) -> socket-address +(socket-remote-address socket) -> socket-address + +(shutdown-socket socket how-to) -> undefined +how-to: +shutdown/receives +shutdown/sends +shutdown/sends+receives + +** Socket Specific I/O +see read-string/write-string for info on arguments + +(receive-message socket length [flags]) -> + [string-or-#f socket-address] +(receive-message! socket string [start] [end] [flags]) -> + [count-or-#f socket-address] +(receive-message/partial socket length [flags]) -> + [string-or-#f socket-address] +(receive-message!/partial socket string [start] [end] [flags]) -> + [count-or-#f socket-address] + +(send-message socket string [start] [end] [flags] [socket-address] -> + undefined +(send-message/partial socket string [start] [end] [flags] [socket-address]) -> + count + +** Socket Options +(socket-option socket level option) -> value +(set-socket-option socket level option value) -> undefined + +boolean: +socket/debug +socket/accept-connect +socket/reuse-address +socket/keep-alive +socket/dont-route +socket/broadcast +socket/use-loop-back +socket/oob-inline +socket/use-privileged +socket/cant-signal +tcp/no-delay + +value: +socket/send-buffer +socket/receive-buffer +socket/send-low-water +socket/receive-low-water +socket/error +socket/type +ip/time-to-live +tcp/max-segment + +socket/linger is #f or integer seconds + +real number with microsecond resolution: +socket/send-timeout +socket/receive-timeout + + +** Database-information entries + +(host-info name-or-socket-address) -> host-info +(network-info name-or-socket-address) -> network-info +(service-info name-or-number [protocol-name]) -> service-info +(protocol-info name-or-number) -> protocol-info + +(define-record host-info name aliases addresses) +(define-record network-info name aliases net) +(define-record service-info name aliases port protocol) +(define-record protocol-info name aliases number) + +* String manipulation + +** Regular expressions + +(string-match regexp string [start]) -> match or false +(regexp-match? obj) -> boolean +(match:start match [match-number]) -> fixnum +(match:end match [match-number]) -> fixnum +(match:substring match [match-number]) -> string +(make-regexp str) -> re +(regexp? obj) -> boolean +(regexp-exec regexp str [start]) -> match or false +(regexp-quote str) -> string + +** Other string manipulation facilities + +(index string char [start]) -> fixnum or false +(rindex string char [start]) -> fixnum or false + +(substitute-env-vars fname) -> string + +** Manipulating file-names + +** Record I/O and field parsing + +(read-delimited char-set [port]) -> string or eof +(read-delimited! char-set buf [port start end]) -> nchars or #f or eof + +((record-reader [delims elide-delims? handle-delim]) [port]) -> string or eof + HANDLE-DELIM one of {trim, split, concat} + +(read-paragraph [port delimiter?]) + +** Parsing fields + +(field-splitter [regexp num-fields]) -> parser +(infix-splitter [delim num-fields handle-delim]) -> parser +(suffix-splitter [delim num-fields handle-delim]) -> parser +(sloppy-suffix-splitter [delim num-fields handle-delim]) -> parser + Where (parser string [start]) + HANDLE-DELIM one of {trim, concat, split} + +(join-strings strings [delimiter grammar]) + GRAMMAR one of {infix, suffix} + +** Field readers + +(field-reader [field-parser record-reader]) + +* Awk + +(awk [] + + . + . + ) + +* Miscellaneous routines + +** Integer bitwise ops + +(arithmetic-shift i j) -> integer +(bitwise-and i j) -> integer +(bitwise-ior i j) -> integer +(bitwise-not i) -> integer +(bitwise-xor i j) -> integer + +** ASCII encoding + +(char->ascii \character) -> integer +(ascii->char \integer) -> character + +** Top level + +(repl) + +* Running scsh + +scsh [meta-arg] [switch1 ...] [end-option arg1 ...] + meta-arg: \ + + switch: -e Top-level entry point + -o Open structure in current package. + -m Switch to package. + -n Switch to new package. + + -lm Load module into config package. + -l Load file into current package. + -dm Do script module. + -ds Do script. + + end-option: -s