02 April 2017

xs

System: Microsoft Windows 10 Home Edition
CPUs: Intel(R) Celeron(R) CPU N3060 @1.60GHz
64-bit Operating System, x64-based processor
Deps: frytvm-XS-c9a0b29.tar.gz, weirdx-1.0.32.tar.gz,
jre-8u121-windows-x64.exe

WSL installation of Koehler's xs.

In addition to the toolchain, window manager, X files, jre8 and WeirdX from the
previous post, add some dependencies.

root@LAPTOP-5CMN50N0:~# apt-get install autoconf g++ help2man libboost-dev libgc-dev

...

root@LAPTOP-5CMN50N0:~# apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev

...

root@LAPTOP-5CMN50N0:~#

http://pkgs.fedoraproject.org/repo/pkgs/xs/
frytvm-XS-c9a0b29.tar.gz

Extract the above download for example with 7-Zip (64-bit x64).

root@LAPTOP-5CMN50N0:~# cd /mnt/c/Users/Eric/frytvm-XS-c9a0b29
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# autoreconf -i
configure.ac:114: installing './compile'
configure.ac:45: installing './config.guess'
configure.ac:4: installing './missing'
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

CFLAGS and CXXFLAGS are "-O2 -march=i486 -mtune=i686" for i486,
"-O2 -march=i686 -mtune=i686" for i686, and "-O2 -fPIC" for x86_64.

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# CXXFLAGS="-O2 -fPIC" \
> ./configure --prefix=/usr --enable-lisptrees
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for bison... bison -y
checking for main in -lgc... yes
checking for /dev/fd filesystem... yes
checking whether #! works in shell scripts... yes
checking for getpwuid in -lsun... no
checking for initscr in -lncurses... yes
checking for readline in -lreadline... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for memory.h... (cached) yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking sys/cdefs.h usability... yes
checking sys/cdefs.h presence... yes
checking for sys/cdefs.h... yes
checking tr1/unordered_map usability... yes
checking tr1/unordered_map presence... yes
checking for tr1/unordered_map... yes
checking for an ANSI C-conforming const... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking type of array argument to getgroups... gid_t
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking whether gcc needs -traditional... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... yes
checking return type of signal handlers... void
checking for wait3 that fills in rusage... yes
checking for strerror... yes
checking for strtol... yes
checking for lstat... yes
checking for setrlimit... yes
checking for sigrelse... yes
checking for sighold... yes
checking for sigaction... yes
checking for sysconf... yes
checking for setsid... yes
checking for rlimit type ......    rlim_t
checking for files to extract signal information from... /usr/include/features.h /usr/include/signal.h /usr/include/stdc-predef.h /usr/include/time.h /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/x86_64-linux-gnu/bits/sigaction.h /usr/include/x86_64-linux-gnu/bits/sigcontext.h /usr/include/x86_64-linux-gnu/bits/siginfo.h /usr/include/x86_64-linux-gnu/bits/signum.h /usr/include/x86_64-linux-gnu/bits/sigset.h /usr/include/x86_64-linux-gnu/bits/sigstack.h /usr/include/x86_64-linux-gnu/bits/sigthread.h /usr/include/x86_64-linux-gnu/bits/types.h /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/x86_64-linux-gnu/bits/wordsize.h /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/x86_64-linux-gnu/gnu/stubs.h /usr/include/x86_64-linux-gnu/sys/cdefs.h /usr/include/x86_64-linux-gnu/sys/ucontext.h /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# make

/bin/bash ./ylwrap parse.yxx y.tab.c parse.cxx y.tab.h `echo parse.cxx | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output parse.output -- bison -y -d
updating parse.hxx
make  all-am
make[1]: Entering directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT access.o -MD -MP -MF .deps/access.Tpo -c -o
access.o access.cxx
mv -f .deps/access.Tpo .deps/access.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT closure.o -MD -MP -MF .deps/closure.Tpo -c -o closure.o closure.cxx
mv -f .deps/closure.Tpo .deps/closure.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT conv.o -MD -MP -MF .deps/conv.Tpo -c -o conv.o
conv.cxx
mv -f .deps/conv.Tpo .deps/conv.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT eval.o -MD -MP -MF .deps/eval.Tpo -c -o eval.o
eval.cxx
mv -f .deps/eval.Tpo .deps/eval.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT fd.o -MD -MP -MF .deps/fd.Tpo -c -o fd.o fd.cxx
mv -f .deps/fd.Tpo .deps/fd.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT glob.o -MD -MP -MF .deps/glob.Tpo -c -o glob.o
glob.cxx
mv -f .deps/glob.Tpo .deps/glob.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT glom.o -MD -MP -MF .deps/glom.Tpo -c -o glom.o
glom.cxx
mv -f .deps/glom.Tpo .deps/glom.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT input.o -MD -MP -MF .deps/input.Tpo -c -o input.o
input.cxx
mv -f .deps/input.Tpo .deps/input.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT heredoc.o -MD -MP -MF .deps/heredoc.Tpo -c -o
heredoc.o heredoc.cxx
mv -f .deps/heredoc.Tpo .deps/heredoc.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT list.o -MD -MP -MF .deps/list.Tpo -c -o list.o list.cxx
mv -f .deps/list.Tpo .deps/list.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT match.o -MD -MP -MF .deps/match.Tpo -c -o match.o match.cxx
mv -f .deps/match.Tpo .deps/match.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT opt.o -MD -MP -MF .deps/opt.Tpo -c -o opt.o opt.cxx
mv -f .deps/opt.Tpo .deps/opt.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-ctl.o -MD -MP -MF .deps/prim-ctl.Tpo -c -o
prim-ctl.o prim-ctl.cxx
mv -f .deps/prim-ctl.Tpo .deps/prim-ctl.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-etc.o -MD -MP -MF .deps/prim-etc.Tpo -c -o
prim-etc.o prim-etc.cxx
mv -f .deps/prim-etc.Tpo .deps/prim-etc.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-io.o -MD -MP -MF .deps/prim-io.Tpo -c -o
prim-io.o prim-io.cxx
mv -f .deps/prim-io.Tpo .deps/prim-io.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim-sys.o -MD -MP -MF .deps/prim-sys.Tpo -c -o
prim-sys.o prim-sys.cxx
mv -f .deps/prim-sys.Tpo .deps/prim-sys.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT prim.o -MD -MP -MF .deps/prim.Tpo -c -o prim.o
prim.cxx
mv -f .deps/prim.Tpo .deps/prim.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT print.o -MD -MP -MF .deps/print.Tpo -c -o print.o
print.cxx
mv -f .deps/print.Tpo .deps/print.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT proc.o -MD -MP -MF .deps/proc.Tpo -c -o proc.o
proc.cxx
mv -f .deps/proc.Tpo .deps/proc.Po
sh ./mksignal /usr/include/features.h /usr/include/signal.h /usr/include/stdc-predef.h
/usr/include/time.h /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/x86_64-
linux-gnu/bits/sigaction.h /usr/include/x86_64-linux-gnu/bits/sigcontext.h
/usr/include/x86_64-linux-gnu/bits/siginfo.h /usr/include/x86_64-linux-gnu/bits/signum.h
/usr/include/x86_64-linux-gnu/bits/sigset.h /usr/include/x86_64-linux-gnu/bits/sigstack.h
/usr/include/x86_64-linux-gnu/bits/sigthread.h /usr/include/x86_64-linux-gnu/bits/types.h
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/x86_64-linux-
gnu/bits/wordsize.h /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/x86_64-linux
-gnu/gnu/stubs.h /usr/include/x86_64-linux-gnu/sys/cdefs.h /usr/include/x86_64-linux-
gnu/sys/ucontext.h /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h  > sigmsgs.cxx
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT sigmsgs.o -MD -MP -MF .deps/sigmsgs.Tpo -c -o
sigmsgs.o sigmsgs.cxx
mv -f .deps/sigmsgs.Tpo .deps/sigmsgs.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT signal.o -MD -MP -MF .deps/signal.Tpo -c -o
signal.o signal.cxx
mv -f .deps/signal.Tpo .deps/signal.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT split.o -MD -MP -MF .deps/split.Tpo -c -o split.o
split.cxx
mv -f .deps/split.Tpo .deps/split.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT syntax.o -MD -MP -MF .deps/syntax.Tpo -c -o
syntax.o syntax.cxx
mv -f .deps/syntax.Tpo .deps/syntax.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT status.o -MD -MP -MF .deps/status.Tpo -c -o
status.o status.cxx
mv -f .deps/status.Tpo .deps/status.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT str.o -MD -MP -MF .deps/str.Tpo -c -o str.o str.cxx
mv -f .deps/str.Tpo .deps/str.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT term.o -MD -MP -MF .deps/term.Tpo -c -o term.o
term.cxx
mv -f .deps/term.Tpo .deps/term.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT token.o -MD -MP -MF .deps/token.Tpo -c -o token.o token.cxx
mv -f .deps/token.Tpo .deps/token.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT tree.o -MD -MP -MF .deps/tree.Tpo -c -o tree.o
tree.cxx
mv -f .deps/tree.Tpo .deps/tree.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.cxx
mv -f .deps/util.Tpo .deps/util.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT var.o -MD -MP -MF .deps/var.Tpo -c -o var.o var.cxx
mv -f .deps/var.Tpo .deps/var.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT version.o -MD -MP -MF .deps/version.Tpo -c -o
version.o version.cxx
mv -f .deps/version.Tpo .deps/version.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT parse.o -MD -MP -MF .deps/parse.Tpo -c -o parse.o parse.cxx
mv -f .deps/parse.Tpo .deps/parse.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT dump.o -MD -MP -MF .deps/dump.Tpo -c -o dump.o dump.cxx
mv -f .deps/dump.Tpo .deps/dump.Po
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o
main.cxx
mv -f .deps/main.Tpo .deps/main.Po
g++  -O2 -fPIC   -o xsdump access.o closure.o conv.o eval.o fd.o glob.o glom.o input.o heredoc.o list.o match.o opt.o prim-ctl.o prim-etc.o prim-io.o prim-sys.o prim.o print.o proc.o sigmsgs.o signal.o split.o syntax.o status.o str.o term.o token.o tree.o util.o var.o version.o parse.o dump.o main.o  -lreadline -lncurses -lgc
./xsdump < ./initial.xs > initial.cxx || (rm initial.cxx; false)
g++ -DHAVE_CONFIG_H -I.     -O2 -fPIC -MT initial.o -MD -MP -MF .deps/initial.Tpo -c -o
initial.o initial.cxx
mv -f .deps/initial.Tpo .deps/initial.Po
g++  -O2 -fPIC   -o xs access.o closure.o conv.o eval.o fd.o glob.o glom.o input.o heredoc.o list.o match.o opt.o prim-ctl.o prim-etc.o prim-io.o prim-sys.o prim.o print.o proc.o sigmsgs.o signal.o split.o syntax.o status.o str.o term.o token.o tree.o util.o var.o version.o parse.o initial.o main.o  -lreadline -lncurses -lgc
make[1]: Leaving directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# make install
make  install-am
make[1]: Entering directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
./xsdump < ./initial.xs > initial.cxx || (rm initial.cxx; false)
g++ -DHAVE_CONFIG_H -I.     -g -O2 -MT initial.o -MD -MP -MF .deps/initial.Tpo -c -o initial.o initial.cxx
mv -f .deps/initial.Tpo .deps/initial.Po
g++  -O2 -fPIC  -o xs access.o closure.o conv.o eval.o fd.o glob.o glom.o input.o heredoc.o list.o match.o opt.o prim-ctl.o prim-etc.o prim-io.o prim-sys.o prim.o print.o proc.o sigmsgs.o signal.o split.o syntax.o status.o str.o term.o token.o tree.o util.o var.o version.o parse.o initial.o main.o  -lreadline -lncurses -lgc
make[2]: Entering directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
 /bin/mkdir -p '/usr/bin'
  /usr/bin/install -c xs '/usr/bin'
 /bin/mkdir -p '/usr/share/man/man1'
 /usr/bin/install -c -m 644 xs.1 '/usr/share/man/man1'
make[2]: Leaving directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
make[1]: Leaving directory `/mnt/c/Users/Eric/frytvm-XS-c9a0b29'
root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29#

root@LAPTOP-5CMN50N0:/mnt/c/Users/Eric/frytvm-XS-c9a0b29# cd /usr/share/man/man1
root@LAPTOP-5CMN50N0:/usr/share/man/man1# gzip -n9 xs.1
root@LAPTOP-5CMN50N0:/usr/share/man/man1# exit

This was just a test today of the WSL (Win10 AU) compiler toolchain.

The xs(1) man page is in the sidebar.