Skip to content

unable to build havm on Archlinux

This is a bit urgent, since we can't install a new version on the PIE like this.

guinness:havm$ ./bootstrap && ./configure && make
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I build-aux
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
autoreconf: configure.ac: not using Autoheader
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:25: installing 'build-aux/install-sh'
configure.ac:25: installing 'build-aux/missing'
Makefile.am: installing './INSTALL'
doc/local.am:22: installing 'build-aux/mdate-sh'
Makefile.am:25:   'doc/local.am' included from here
doc/local.am:22: installing 'build-aux/texinfo.tex'
Makefile.am:25:   'doc/local.am' included from here
parallel-tests: installing 'build-aux/test-driver'
autoreconf: Leaving directory `.'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for ghc... ghc
checking for ghc >= 7.10... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Config.hs
config.status: creating tests/defs
make[1]: Entering directory '/home/gaby/havm/havm'
make[1]: Leaving directory '/home/gaby/havm/havm'
Updating ./doc/version.texi
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/sh /home/gaby/havm/havm/build-aux/missing makeinfo --version) >/dev/null 2>&1; then \
  for f in doc/havm.info doc/havm.info-[0-9] doc/havm.info-[0-9][0-9] doc/havm.i[0-9] doc/havm.i[0-9][0-9]; do \
    if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
  done; \
else :; fi && \
cd "$am__cwd"; \
if /bin/sh /home/gaby/havm/havm/build-aux/missing makeinfo -I./doc --no-split  -I doc -I ./doc \
 -o doc/havm.info ./doc/havm.texi; \
then \
  rc=0; \
  CDPATH="${ZSH_VERSION+.}:" && cd .; \
else \
  rc=$?; \
  CDPATH="${ZSH_VERSION+.}:" && cd . && \
  $restore $backupdir/* `echo "./doc/havm.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
/bin/sh /home/gaby/havm/havm/build-aux/missing happy src/Parse.y -o src/Parse.hs
unused terminals: 1
ghc -isrc:./src -odirsrc -hidirsrc --make -rtsopts -package base  ./src/Main.hs -o src/havm
[ 1 of 35] Compiling Config           ( src/Config.hs, src/Config.o )
[ 2 of 35] Compiling Cpu              ( src/Cpu.hs, src/Cpu.o )
[ 3 of 35] Compiling Ir               ( src/Ir.hs, src/Ir.o )
[ 4 of 35] Compiling Level            ( src/Level.hs, src/Level.o )
[ 5 of 35] Compiling Memory           ( src/Memory.hs, src/Memory.o )
[ 6 of 35] Compiling Opt              ( src/Opt.hs, src/Opt.o )
[ 7 of 35] Compiling Position         ( src/Position.hs, src/Position.o )
[ 8 of 35] Compiling Location         ( src/Location.hs, src/Location.o )
[ 9 of 35] Compiling Annotation       ( src/Annotation.hs, src/Annotation.o )
[10 of 35] Compiling Code             ( src/Code.hs, src/Code.o )
[11 of 35] Compiling Print            ( src/Print.hs, src/Print.o )
[12 of 35] Compiling Report           ( src/Report.hs, src/Report.o )
[13 of 35] Compiling Result           ( src/Result.hs, src/Result.o )
[14 of 35] Compiling StdBinop         ( src/StdBinop.hs, src/StdBinop.o )
[15 of 35] Compiling StdRelop         ( src/StdRelop.hs, src/StdRelop.o )
[16 of 35] Compiling Token            ( src/Token.hs, src/Token.o )
[17 of 35] Compiling Scan             ( src/Scan.hs, src/Scan.o )
[18 of 35] Compiling Parse            ( src/Parse.hs, src/Parse.o )
[19 of 35] Compiling VMMonad          ( src/VMMonad.hs, src/VMMonad.o )
[20 of 35] Compiling Trace            ( src/Trace.hs, src/Trace.o )
[21 of 35] Compiling RuntimeSystem    ( src/RuntimeSystem.hs, src/RuntimeSystem.o )
[22 of 35] Compiling RuntimePrint     ( src/RuntimePrint.hs, src/RuntimePrint.o )
[23 of 35] Compiling RuntimeInt       ( src/RuntimeInt.hs, src/RuntimeInt.o )
[24 of 35] Compiling RuntimeInput     ( src/RuntimeInput.hs, src/RuntimeInput.o )
[25 of 35] Compiling RuntimeCommon    ( src/RuntimeCommon.hs, src/RuntimeCommon.o )
[26 of 35] Compiling RuntimeString    ( src/RuntimeString.hs, src/RuntimeString.o )

src/RuntimeString.hs:24:8: error:
    • No instance for (Control.Monad.Fail.MonadFail Mnd)
        arising from a do statement
        with the failable pattern ‘(IntRes size2)’
    • In a stmt of a 'do' block: (IntRes size2) <- rtSize [r2]
      In the expression:
        do (IntRes size1) <- rtSize [r1]
           (IntRes size2) <- rtSize [r2]
           pointer <- mreserve $ (size1 + size2 + 1) * 4
           rtConcat' pointer str1 size1
           ....
      In an equation for ‘rtConcat’:
          rtConcat [r1@(IntRes str1), r2@(IntRes str2)]
            = do (IntRes size1) <- rtSize [r1]
                 (IntRes size2) <- rtSize [r2]
                 pointer <- mreserve $ (size1 + size2 + 1) * 4
                 ....
            where
                rtConcat' pointer string 0 = return ()
                rtConcat' pointer string size
                  = do char <- mfetch string
                       ....
   |
24 |        (IntRes size2) <- rtSize [r2]
   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
make: *** [Makefile:1422: src/havm] Error 1