Warning: this is a htmlized version!
The original is across this link.
#######
#
# E-scripts on functional languages.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/a/e/fl.e>
#           or at <http://angg.twu.net/e/fl.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/a/.emacs[.html]>,
#                 <http://angg.twu.net/a/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######





#####
#
# potato hugs98 on slink
# 99nov27
#
#####

rm -Rv /usr/src/hugs98-98.199911/
pdsc $SDEBIAN/dists/potato/main/source/interpreters/hugs98_98.199911-1.dsc
cd /usr/src/hugs98-98.199911/
debian/rules binary	|& tee odrb

mv -v /usr/src/hugs_98*.deb /usr/src/.debs/
apt-update
apti hugs

# (find-vldifile "hugs.list")
# (find-fline "/usr/doc/hugs/")




#####
#
# potato hugs-doc on slink
# 99nov27
#
#####

rm -Rv /usr/src/hugs-doc-98.199909/
pdsc $SDEBIAN/dists/potato/main/source/doc/hugs-doc_98.199909-1.dsc
cd /usr/src/hugs-doc-98.199909/
debian/rules binary	|& tee odrb

mv -v /usr/src/hugs-doc*.deb /usr/src/.debs/
apt-update
apti hugs-doc-98.199909

# (find-vldifile "hugs-doc.list")
# (find-fline "/usr/doc/hugs-doc/")



####
#
# Haskore
# 99nov27 / 00feb01
#
####

rm -Rv /usr/src/haskore/
mkdir /usr/src/haskore/
cd /usr/src/haskore/
unzip $S/http/www.haskell.org/haskore/Haskore.zip

cd /usr/src/haskore/Src/
hugs +98 HaskoreExamples.lhs


# The fix below does not work.
# (find-fline "$MAIL" "Haskore on a SuSe 6.3")

cat >> Basics.lhs <<'---'

\begin{verbatim}

> instance Show (a -> b) where
>   showsPrec _ _ = showString " << Function >> "

\end{verbatim}
---





# (find-fline "/usr/src/haskore/Src/Basics.lhs")
# (find-fline "/usr/src/haskore/Src/Basics.lhs" 172)


hugs /usr/src/hugs/lib/Haskore/demos/HaskoreExamples.lhs

hugs /usr/src/hugs/lib/Haskore/src/TestHaskore.lhs
hugs /usr/src/hugs/lib/Haskore/demos/ChildSong6.lhs

hugs /usr/src/hugs/lib/Haskore/demos/ChildSong6.lhs <<'---'
testLinux childSong6
:q
---







############
#
# Hugs June98 (1.4+)
#
############

cd /usr/src/
rm -Rv hugs*
tar -xvzf /snarf/ftp/haskell.org/pub/haskell/hugs/June98/hugs-June98-source.tgz
cd /usr/src/hugs/
mkdir tmp

cd /usr/src/hugs/src/unix
# ./configure --prefix=/usr/src/hugs/tmp	|& tee /usr/src/hugs/oc
./configure --prefix=/usr	|& tee /usr/src/hugs/oc
cd ..
make install	|& tee /usr/src/hugs/omi

#
# cgi demos:
#
rm -Rv /var/www/hugs
mkdir /var/www/hugs
cd /usr/src/hugs/demos/cgi/
cp -iv * /var/www/hugs
# (find-node "(gawk)One-liners")
# (find-node "(gawk)String Functions" "gsub")
for i in *.cgi; do
  cat $i \
  | awk 'NR == 1 { print "#! /usr/bin/runhugs +l" }
         NR > 1 { gsub(/\/homes\/systems\/hcompile\/cgi-bin\//,
		       "/var/www/hugs/");
		  print }' \
  > /var/www/hugs/$i 
done
for i in *.hs; do
  cat $i \
  | awk '{ gsub(/\/homes\/systems\/hcompile\/cgi-bin\//, "/var/www/hugs/");
           gsub(/http:\/\/www.haskell.org\/cgi-bin\/counter.cgi/,
		"counter.cgi");
	   print }' \
  > /var/www/hugs/$i 
done
chmod 755 /var/www/hugs/*.cgi
chown edrx:edrx /var/www/hugs/*.cgi



#
# etc:
#
cd /var/www/hugs/
lynx http://127.0.0.1/hugs/
edrxnetscape http://127.0.0.1/hugs/
mycat /var/www/hugs/*.cgi

# (find-hugsfile "src/unix/README")
# (find-hugsfile "src/unix/INSTALL" "Optional Features")
# (find-hugsfile "src/unix/configure.in")




############
#
# Hugs June98 (1.4+) - trying to debianize
#
############

cd /usr/src/
rm -Rv hugs*
tar -xvzf /snarf/ftp/haskell.org/pub/haskell/hugs/June98/hugs-June98-source.tgz
mv hugs hugs-1.4
cd /usr/src/hugs-1.4/
dh_make

mkdir tmp

cd /usr/src/hugs/src/unix
./configure --prefix=/usr/src/hugs/tmp	|& tee /usr/src/hugs/oc
cd ..
make install	|& tee /usr/src/hugs/omi





############
#
# Hugs 1.4
#
############

cd /usr/src/
rm -Rv hugs/
tar -xvzf /snarf/ftp/haskell.org/pub/haskell/hugs/BETA/hugs.tar.gz
#
cd /usr/src/hugs/docs/
ln -s haskell-report-1.4-html report
tar -xvzf /snarf/ftp/haskell.org/pub/report/haskell-report-1.4-sources.tar.gz
ln -s haskell-report-1.4-sources hrsrc
#
cd /usr/src/hugs/src/unix
# cp -iv /home/root/config.cache .
# 
# Take care with old config.cache's... I was keeping one that said I
# didn't have X, and so I wasn't getting the Xlib plugin to compile...
#
# (find-hugsfile "src/unix/configure.in" 365)
echo -n > MkXlib
./configure --prefix=/usr	\
	    --with-foobar	\
            --with-plugins --with-readline \
	    --enable-TREX --enable-internal-prims |& tee oc
cd ..
#
# (find-hugsfile "src/builtin.c" 1069)
ln -s interns.c internals.c
#
make |& tee om
make install |& tee omi




#############
#
# ghc-2.10
#
############

rm -Rv /usr/local/lib/ghc-2.10/
rm -Rv /usr/local/lib/lmlc/

cd /usr/src/
rm -Rv fptools
tar -xvzf /snarf/ftp/www.dcs.gla.ac.uk/pub/haskell/glasgow/2.10/ghc-2.10-i386-unknown-linux.tar.gz

cd /usr/src/fptools/info/ghc-2.10/
cp * /usr/info/

cd /usr/src/fptools/

# Installing
#
# make in-place |& tee omip
# export PATH=$PATH:/usr/src/fptools/bin/i386-unknown-linux/ghc-2.10
#   or:
./configure |& tee oc
make install |& tee omi

# HBC:
#
rm -Rv /usr/src/fptools/hbc/
mkdir  /usr/src/fptools/hbc/
cd     /usr/src/fptools/hbc/
tar -xvzf /snarf/ftp/ftp.cs.chalmers.se/pub/haskell/chalmers/hbc-0.9999.4.bin-i386-linuxELF.tar.gz
cd /usr/src/fptools/hbc/
#
# (find-fpfile "hbc/README")
# (find-fpfile "hbc/Makefile")
#
make BIN=i386-linuxELF install |& tee omi

# Fudgets:
#
cd /usr/src/fptools/
rm -Rv Fudgets
tar -xvzf /snarf/ftp/ftp.cs.chalmers.se/pub/haskell/chalmers/fudgets-h12.src.tar.gz
#
# (find-fudgfile "hsrc/hmklib" 10)
# (find-fudgfile "hsrc/mycpp.Linux" 4)
# HBC=hbcmakehbc -> HBC=/usr/src/fptools/Fudgets/bin/hbcmakehbc
# cpp -> gcc -E
#
# (find-fudgfile "/usr/local/bin/hbcmake")
# (find-fudgfile "/usr/local/bin/hbcmake" "$LMLMK $rtflags")
#
cd /usr/src/fptools/Fudgets/
make install |& tee omi
l /usr/src/fptools/Fudgets/omi

l /usr/src/fptools/{oc,omi,hbc/omi,Fudgets/omi}



# (find-fudgfile "omi")
# (find-fudgfile "hsrc/Makefile" "objects:")
# (find-fudgfile "hsrc/hmklib")
# (find-fudgfile "/usr/local/bin/hbcmake")
# (find-fudgfile "hsrc/Makefile")

# (find-fudgfile "hsrc/internals/Tree234.hs")

# (find-fudgfile "hsrc/Makefile" "$(FLIB):")
# (find-fudgfile "hsrc/mklibs")
# (find-fudgfile "hsrc/mkar.Linux")



# (find-fudgfile "hsrc/Makefile" "all:")

# (find-fudgfile "Makefile" "fudgets:")
# (find-fudgfile "bin/hbcmakehbc")

# (find-fudgfile "README")
# (find-fudgfile "HowToCompile" "bin/ghcmake")
# (find-fudgfile "HowToCompile" "just do")
# (find-fudgfile "bin/ghcmake")
# (find-fudgfile "bin/ghcxmake")
# (find-fudgfile "bin/ghcgrep")

# setenv GHCROOT /usr/src/fptools/lib/i386-unknown-linux/ghc-2.10
# 







# Happy binaries:
#
cd /usr/src/
tar -xvzf /snarf/ftp/ftp.dcs.gla.ac.uk/pub/haskell/happy/happy-1.5-i386-unknown-linux.tar.gz
cd /usr/src/fptools/
./configure |& tee och
make install |& tee omih

# We need this to recompile sources.
#
cd /usr/src/fptools/mk/
cp config.mk.in config.mk




# Ghc, from the sources:
#
cd /usr/src/
tar -xvzf /snarf/ftp/ftp.dcs.gla.ac.uk/pub/haskell/glasgow/3.01/ghc-3.01-src.tar.gz
cd /usr/src/fptools/
./configure |& tee ocgs
make boot |& tee ombgs
make |& tee omgs

# Happy, from the sources:
#
cd /usr/src/
tar -xvzf /snarf/ftp/ftp.dcs.gla.ac.uk/pub/haskell/happy/happy-1.5-src.tar.gz
cd /usr/src/fptools/
./configure |& tee ochs

cd /usr/src/fptools/happy/src/
make |& tee om




make install |& tee omih

tar -tvzf /snarf/ftp/ftp.dcs.gla.ac.uk/pub/haskell/happy/happy-1.5-src.tar.gz

cd /usr/src/fptools/

# Testing ghc
#
cd ~/HUGS/
cat > hello.hs <<'EOF'
main = putStr "Hello, fpworld!\n"
EOF
ghc -v -o hello hello.hs |& tee og
./hello

# (find-node "(installing)Top")
# (find-node "(installing)installing_4.1")
# (find-node "(installing)GHC_test")
# (find-node "(installing)installing_6.3" "gmake")
# (find-node "(libs)Top")
# (find-node "(user)Top")


tar -tvzf /snarf/ftp/ftp.dcs.gla.ac.uk/pub/haskell/happy/happy-1.5-src.tar.gz
tar -tvzf /snarf/ftp/ftp.dcs.gla.ac.uk/pub/haskell/happy/happy-1.5-i386-unknown-linux.tar.gz





#############
#
# Normaliser
#
#############

cd /usr/src/
rm -Rv Normaliser-2.2/
tar -xvzf /snarf/ftp/ftp.logique.jussieu.fr/pub/distrib/raffalli/Normaliser-2.2.tar.gz
cd /usr/src/Normaliser-2.2/Src/
make |& tee om

# Depends on ocaml




#############
#
# caml-light
#
#############

rpm -iv /snarf/ftp/ftp.inria.fr/lang/caml-light/caml-light-0.73-1.src.rpm
cd /usr/src/redhat/SPECS/
rpm -bb caml-light-0.73-1.spec |& tee orbb-caml





#############
#
# ocaml-1.05
#
#############

cd /usr/src/
rm -Rv ocaml-1.05/
tar -xvzf /snarf/ftp/ftp.inria.fr/lang/caml-light/ocaml-1.05.tar.gz
cd /usr/src/ocaml-1.05/
cp -iv /home/root/config.cache .
./configure |& tee oc
make world |& tee omw

# ocamlrun asks for ld-linux.so.2 ...





##############
#
# OSC (sisal)
#
##############

cd /usr/src/
rm -Rv OSC/
tar -xvzf /snarf/ftp/sisal.llnl.gov/pub/sisal/OSC-13.0.3.tar.gz
# O original é .Z
cd /usr/src/OSC/
echo '\n14\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' | \
  sinstall |& tee osi
make all |& tee oma




##########
#
# HOL doc
#
##########

rm -Rv /c5/usr/src/hol/
rm /usr/src/hol
ln -s /c5/usr/src/hol /usr/src/hol
cd /c5/usr/src/
tar -xvzf /snarf/ftp/lal.cs.byu.edu/pub/hol/holdoc.tar.gz
cd /usr/src/hol/




#########
#
# nhc 13
#
#########

cd /usr/src/
rm -Rv nhc13
tar -xvzf /snarf/ftp/ftp.chalmers.se/pub/haskell/nhc/nhc13.tar.gz

cd /usr/src/
rm -Rv nhcmake
tar -xvzf /snarf/ftp/ftp.chalmers.se/pub/haskell/nhc/nhcmake06.tar.Z
cd /usr/src/nhcmake/


cd /usr/src/nhc13/




###############
#
# hbc 0.9999.4
#
###############

cd /usr/src/
rm -Rv hbc
mkdir hbc
cd /usr/src/hbc/
tar -xvzf /snarf/ftp/ftp.cs.chalmers.se/pub/haskell/chalmers/hbc-0.9999.4.src.tar.gz
tar -xvzf /snarf/ftp/ftp.cs.chalmers.se/pub/haskell/chalmers/hbc-0.9999.4.bin-i386-linuxELF.tar.gz

cd /usr/src/hbc/
find -name '*.[ch]' > .files.ch

# (find-hbcfile "README" 40)

cd /usr/src/hbc/src/
rm config.status
#
./configure <<EOF
m_80386
linux
gcc
n
y
n
y
y
n
n
/usr/src/hbc/bin
/usr/src/hbc/lmlc
/usr/local/man/man1
EOF
#
make universe |& tee ../omu

# (find-hbcfile "src/bin/mycc")

for i in lmlc hbc lmlmake hbcmake hp2ps addsign hbcaddsign hbcgrep
do ln -v -s /usr/src/hbc/bin-i386-linuxELF/exe/$i /usr/bin/$i
done

for i in lmlc hbc lmlmake hbcmake hp2ps addsign hbcaddsign hbcgrep
do rm /usr/bin/$i
done




#############
#
# Otter
#
###########

cd /usr/src/
rm -Rv otter-3.0.4
tar -xvZf /snarf/ftp/info.mcs.anl.gov/pub/Otter/otter.tar.Z
cd /usr/src/otter-3.0.4/
cd /usr/src/otter-3.0.4/source/
make |& tee om

ln -s /usr/src/otter-3.0.4/source/otter /usr/bin/otter

cd /usr/src/otter-3.0.4/examples/
Run_all auto
Run_all fringe
Run_all kalman
Run_all misc
# two_inv takes a lot of time (8'30") to complete.
# Run_all program
Run_all wos


cd ~/OTTER/
otter < ~/OTTER/foo.in

# (find-fline "~/OTTER/foo.in")





#######
#
# Hugs: prettyprinting
#
#######


# (find-hugsfile "lib/hugs/Pretty.lhs")
# (find-hugsfile "demos/Literate.lhs")
# (find-hugsfile "demos/cgi/")
# (find-hugsfile "demos/cgi/Pretty.hs")
# (find-hugsfile "demos/cgi/PrettyHTML.hs")
# (find-fline "~/HUGS/mypretty.hs")

psne http://www.cs.chalmers.se/~rjmh/Papers/pretty.ps
gv /snarf/http/www.cs.chalmers.se/~rjmh/Papers/pretty.ps &

1 2 3
    4 5
  6 7 8

t :: Int -> Doc

t n = int (show n)

t 1 <+> t 2 <+> (t 3 $$ (t 4 <+> t 5)) where t = int





#######
#
# HaskellDB
#
#######

# (find-fline "/snarf/http/haskell.systemsz.cs.yale.edu/haskellDB/download/core.zip")
lynx /snarf/http/haskell.systemsz.cs.yale.edu/haskellDB/index.html




#######
#
# entre (interpreter)
#
#######

http://www.cit.gu.edu.au/~arock/entre/entre.html
http://www.cit.gu.edu.au/~arock/entre/

lynx /snarf/http/www.cit.gu.edu.au/~arock/entre/entre.html



ftp://haskell.org/pub/haskell/hugs/June98/index.html
ftp://haskell.org/pub/haskell/hugs/June98/hugs-June98-source.tgz

# (find-fline "$SDEBIAN/dists/slink/non-free/source/devel/hugs_1.4.199801-1.diff.gz")



#######
#
# Haskore
#
#######

# (find-fline "/usr/include/linux/soundcard.h")
# (find-fline "/usr/src/hugs/lib/Haskore/")

# (find-fline "/usr/include/midi.h")

find /usr/src/hugs/ | grep asko

# (find-fline "/usr/src/hugs/lib/Haskore/demos/")
# (find-fline "/usr/src/hugs/lib/Haskore/demos/ChildSong6.lhs")
# (find-fline "/usr/src/hugs/lib/Haskore/demos/HaskoreExamples.lhs")
hugs /usr/src/hugs/lib/Haskore/demos/HaskoreExamples.lhs

hugs /usr/src/hugs/lib/Haskore/src/TestHaskore.lhs
hugs /usr/src/hugs/lib/Haskore/demos/ChildSong6.lhs

hugs /usr/src/hugs/lib/Haskore/demos/ChildSong6.lhs <<'---'
testLinux childSong6
:q
---


# (find-fline "/usr/src/hugs/lib/Haskore/src/TestHaskore.lhs")
# (find-fline "/usr/src/hugs/lib/Haskore/demos/ChildSong6.lhs")




#####
#
# Haskore (slink)
# 99nov27
#
#####

#  «haskore_slink»

# (find-vldifile "hugs.list")
# (find-fline "/usr/doc/hugs/")

# (find-vldifile "hugs.list" "/usr/share/hugs/lib/Haskore/")

# (find-fline "/usr/share/hugs/lib/hugs/Haskore.hs")
# (find-fline "/usr/share/hugs/lib/Haskore/")
# (find-fline "/usr/share/hugs/lib/Haskore/demos/")
# (find-fline "/usr/share/hugs/lib/Haskore/src/")
# (find-fline "~/s")

strace-to ~/s \
  hugs /usr/share/hugs/lib/Haskore/demos/ChildSong6.lhs






#######
#
# Lixos?
#
#######

# (find-fline "/usr/src/hugs/lib/Prelude.hs" "instance Monad IO where")
lynx /usr/src/hugs/docs/report/io-13.html

hugs <<'---'
:type filter isAscii "foo"
:q
---

hugs <<'---'
:type filter isAscii "foo"
:type readFile "input-file"
:type writeFile "output-file" (filter isAscii "str")
:type readFile "a" >>= \s -> writeFile "b" s >> putStr "ok"
:q
---

  readFile "a" >>= \s -> writeFile "b" s >> putStr "ok"	:: IO ()
  readFile "a" >>= \s -> writeFile "b" s		:: IO ()
  readFile "a"                                          :: IO S
  readFile                                              :: S -> IO S
           "a"                                          :: S

		         ========= ===
		         ============= =
  ======== ===      =    ===============
  ============ === =====================    ====== ====
  ====================================== == ===========
  =====================================================
  readFile "a" >>= \s -> writeFile "b" s >> putStr "ok"




#######
#
# Parsers
#
#######

gv /snarf/http/www.cs.chalmers.se/~rjmh/Papers/arrows.ps &
gv /snarf/http/www.cs.chalmers.se/~rjmh/Papers/pretty.ps &

# (find-hugsfile "lib/Prelude.hs" "-- Monad classes")
# (find-fline "~/CRIM/005ideas" "MonadPlus")
# (find-hugsfile "lib/Prelude.hs" "-- Lists")
# (find-hugsfile "lib/Prelude.hs" "instance Monad [ ] where")

    (>>)   :: m a -> m b -> m b
    p >> q  = p >>= \ _ -> q

instance Monad [ ] where
    (x:xs) >>= f  =  f x ++ (xs >>= f)
    []     >>= f  =  []
    return x      =  [x]

-- [a1, a2, a3] >>= f   =   f a1 ++ f a2 ++ f a3
-- [a1, a2] >> [b1, b2, b3]   =   [b1, b2, b3, b1, b2, b3]
 



instance MonadZero [ ] where
    zero = []

instance MonadPlus [ ] where
    []     ++ ys = ys
    (x:xs) ++ ys = x : (xs ++ ys)




#######
#
# runhugs
#
#######

# (find-esfile "perl1.e" "lasagna")
# (find-hugsfile "demos/cgi/")
# (find-hugsfile "src/")
# (find-hugsfile "src/runhugs.c")

cat > /tmp/h <<'---'; runhugs /tmp/h
main = putStr "foo";
---
runhugs /tmp/h

function rhugs () {
  cat > ${TMPHUGSFILE:-/tmp/h}
  runhugs ${TMPHUGSFILE:-/tmp/h}
}

rhugs <<'---'
main = putStr "foo";
---

rhugs <<'---'
main = do {
	putStr (show "foo");
	putStr (show [1, 2]);
}
---


rhugs <<'///'
-- lmatch :: String -> String -> Bool
lmatch "" s = True
lmatch (c:cs) (c':cs') = if (c == c') then (lmatch cs cs') else False
lmatch _ _ = False
main = putStr (show (lmatch "foo" "foobar"))
///

rhugs <<'///'
a = 2 *
    3 + 4 * 5
main = putStr (show a)
///




#######
#
# haskell-mode
#
#######

# (find-fline "/snarf/http/www.haskell.org/haskell-mode/haskell-mode.tar.gz")
# (find-enode "Top")
# (find-elnode "Top" "\nLoading\n")
# (find-node "(elisp)How Programs Do Loading")

(setq load-path (append load-path '("/usr/src/haskell-mode")))

rm -Rv /usr/src/haskell-mode/
mkdir  /usr/src/haskell-mode/
cd     /usr/src/haskell-mode/
tar -xvzf /snarf/http/www.haskell.org/haskell-mode/haskell-mode.tar.gz

# (code-c-d "hmode" "/usr/src/haskell-mode/")
# (find-hmodefile "")
# (find-hmodefile "haskell-mode.el")

# load-path
("/usr/lib/emacs/site-lisp/w3" "/usr/share/emacs19/site-lisp/mew" "/etc/emacs19" "/etc/emacs" "/usr/local/share/emacs/19.34/site-lisp" "/usr/local/share/emacs/site-lisp" "/usr/share/emacs/19.34/site-lisp" "/usr/share/emacs/site-lisp" "/usr/share/emacs/19.34/lisp")




###############
#
# hbc 0.9999.4
#
###############

cd /usr/src/
rm -Rv hbc
mkdir hbc
cd /usr/src/hbc/
tar -xvzf /snarf/ftp/ftp.cs.chalmers.se/pub/haskell/chalmers/hbc-0.9999.4.src.tar.gz
tar -xvzf /snarf/ftp/ftp.cs.chalmers.se/pub/haskell/chalmers/hbc-0.9999.4.bin-i386-linuxELF.tar.gz

cd /usr/src/hbc/
find -name '*.[ch]' > .files.ch

# (find-hbcfile "README" 40)

cd /usr/src/hbc/src/
rm config.status
#
./configure <<EOF
m_80386
linux
gcc
n
y
n
y
y
n
n
/usr/src/hbc/bin
/usr/src/hbc/lmlc
/usr/local/man/man1
EOF
#
make universe |& tee ../omu

# (find-hbcfile "src/bin/mycc")




for i in lmlc hbc lmlmake hbcmake hp2ps addsign hbcaddsign hbcgrep
do ln -v -s /usr/src/hbc/bin-i386-linuxELF/exe/$i /usr/bin/$i
done

for i in lmlc hbc lmlmake hbcmake hp2ps addsign hbcaddsign hbcgrep
do rm /usr/bin/$i
done




#############
#
# Otter
#
###########

cd /usr/src/
rm -Rv otter-3.0.4
tar -xvZf /snarf/ftp/info.mcs.anl.gov/pub/Otter/otter.tar.Z
cd /usr/src/otter-3.0.4/
cd /usr/src/otter-3.0.4/source/
make |& tee om

ln -s /usr/src/otter-3.0.4/source/otter /usr/bin/otter

cd /usr/src/otter-3.0.4/examples/
Run_all auto
Run_all fringe
Run_all kalman
Run_all misc
# two_inv takes a lot of time (8'30") to complete.
# Run_all program
Run_all wos


cd ~/OTTER/
otter < ~/OTTER/foo.in

# (find-fline "~/OTTER/foo.in")



#######
#
# LL(1) parser
#
#######

# (find-fline "$S/http/www.cs.uu.nl/groups/ST/Software/Parse/UU_Parsing.tar.gz"
)



######
#
# JPEG spec: paper + gofer program
#
######

psne http://www.cs.uu.nl/people/jeroen/article/jpeg/jpeg.ps.gz
psne http://www.cs.uu.nl/people/jeroen/article/jpeg/jpeg.gs





######
#
# TkHaskell (old)
#
######

psne http://www.dcs.gla.ac.uk/~nww/TkHaskell/TkHaskellManual.ps.gz
psne http://www.dcs.gla.ac.uk/~nww/TkHaskell/examples.tar.gz

gv /snarf/http/www.dcs.gla.ac.uk/~nww/TkHaskell/TkHaskellManual.ps &
cd /snarf/http/www.dcs.gla.ac.uk/~nww/TkHaskell/

tar -tvzf /snarf/http/www.dcs.gla.ac.uk/~nww/TkHaskell/examples.tar.gz
cd /snarf/http/www.cs.uu.nl/people/jeroen/article/jpeg/

#
# Etc:
#

http://www.cs.ucc.ie/~dornan/TkHaskell.tar.gz
http://www.informatik.uni-ulm.de/abt/pm/ftp/tkgofer.html
ftp://ftp.informatik.uni-ulm.de/pub/PM/TkGofer2.0/tkgofer2.0.tar.gz
http://www.cse.ogi.edu/~nday/Tools/hpp/hpp.html
http://www.cse.ogi.edu/~nday/Tools/Fuss/fuss.html
http://www.cse.ogi.edu/~jl/jokes.html

http://haskell.systemsz.cs.yale.edu/haskellscript/




######
#
# Scheme standard
#
######

xdvi $S/http/www.neci.nj.nec.com/homepages/kelsey/r5rs.dvi

dpkg -i ~/HASH/r5rs-doc
# (find-vldifile "r5rs-doc.list")
# (find-node "(r5rs)Top")


cd $S/http/www.neci.nj.nec.com/homepages/kelsey/

ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/misc/scheme_1.faq
ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/misc/scheme_2.faq

# (find-fline
  "$S/ftp/ftp.cs.indiana.edu/pub/scheme-repository/doc/misc/scheme_1.faq")
# (find-fline
  "$S/ftp/ftp.cs.indiana.edu/pub/scheme-repository/doc/misc/scheme_2.faq")




cd /tmp
cp /snarf/http/www.neci.nj.nec.com/homepages/kelsey/r5rs.dvi .
make -f ~/LATEX/Makefile r5rs.pdf

lynx $S/http/www.cs.indiana.edu/scheme-repository/doc.standards.html




######
#
# sml-nj
#
######

# (find-fline "/usr/doc/sml-nj/")
# (find-vldifile "sml-nj.list")

# (find-fline "/usr/doc/sml-nj/examples/")

# slinkb2:
apt-get install sml-nj

pdsc /debian/dists/slink/main/source/devel/sml-nj_110-4.dsc



# (find-smlsfile ".files.exit")

#
dpkg --purge sml-nj
cd /usr/src/sml-nj-110/
debian/rules binary	|& tee odrb
# (find-smlsfile "odrb" "Go for it")
# (find-smlsfile "odrb" "make[1]: Leaving directory `/6usrc/sml-nj-110/src/runtime/objs")
# (find-smlsfile "odrb" "[Loading")
# (find-smlsfile "config/install.sh" "# build the run-time system")
# (find-smlsfile "config/install.sh" "# boot the base SML system")
# (find-smlsfile "config/install.sh" "<<")
# (find-node "(bash)Bash Conditional Expressions")
# (find-smlsfile "odrb")
# (find-smlsfile "src/runtime/objs/mk.x86-linux")



rm -Rv ~/SML/
mkdir ~/SML/
cp -iv /usr/doc/sml-nj/examples/calc/* ~/SML/
# (find-fline "~/SML/")
# (find-fline "~/SML/sources.cm")

cd ~/SML/
cat > sources.cm <<'---'
Group
is
cml.cm
/usr/lib/sml-nj/src/eXene/lib/sources.cm
/usr/lib/sml-nj/src/eXene/widgets/sources.cm
acc.sml
calc.sml
main.sml
---
# CM.make ();
sml-cm





find * -type f			> .files
agrep -l exit $(<.files)	|& tee .files.exit
agrep -v sml.bin .files.exit	|& tee .files.exit-
agrep exit $(<.files.exit-)	|& tee ~/o

# (find-fline "~/o")
# (find-smlsfile "src/runtime/c-libs/posix-process/cfun-list.h" "exit")

psner -nc -np -k -A htm,html -l 200 http://cm.bell-labs.com/cm/cs/what/smlnj/doc/index.html
OS.Process.exit(OS.Process.success);





# glimpse'ing sml-nj
#
cd /usr/src/sml-nj-110/
# perl -nle 'm/.*\.(.*)/ && print $1' < .files | sort | uniq |& tee ~/o
# for i in $(<~/o); do file $(grep '\.'$i'$' .files); done |& tee ~/o2

perl -nle 'm/.*\.(5|burg|c|cfg|cm|debian|doc|dot|fol|grm|h|html|info|ins|l|lex|mldoc|nw|p|pl|sc|sh|sml|template|tex|toc|y)$/ && print $_' \
  < .files > .files.toglimpse
glimpseindex -H . -F < .files.toglimpse







######
#
# hol90.10
#
######

#  «building_hol»

rm -Rv /usr/src/hol90.10/
cd /usr/src/
tar -xvzf $S/http/www.ftp.cl.cam.ac.uk/ftp/hvg/hol90/hol90.10.tar.gz
cd /usr/src/hol90.10/

# (find-holfile "src/INSTALL.txt" "symbolic link")
cd /usr/src/hol90.10/bin/njsml.1xx/
rm -fv sml
ln -s /usr/bin/sml .

# (find-holfile "src/INSTALL.txt" "ML-Lex")
# (find-holfile "src/Makefiles/njsml.1xx" "LEX")
##LEX=/usr/groups/theory/njml/working/bin/ml-lex
##YAK=/usr/groups/theory/njml/working/bin/ml-yacc
#LEX=/usr/bin/ml-lex
#YAK=/usr/bin/ml-yacc

cd /usr/src/hol90.10/src/
BUILD |& tee ../ob

# Silly test:
cd /usr/src/hol90.10/bin/
echo | hol90

ln -s /usr/src/hol90.10/bin/hol90 /usr/local/bin/



# glimpse'ing HOL
#
cd /usr/src/hol90.10/
# perl -nle 'm/.*\.(.*)/ && print $1' < .files | sort | uniq |& tee ~/o
# for i in $(<~/o); do file $(grep '\.'$i'$' .files); done |& tee ~/o2

perl -nle 'm/.*\.(c|desc|doc|el|h|help|hol_lib|holsig|html|jrh|lex|lib|msg|news|release|sig|sml|stable|sty|taken|template|tex|thms|txt|yak)$/ && print $_' \
  < .files > .files.toglimpse
glimpseindex -H . -F < .files.toglimpse





######
#
# hol info
#
######

# Some HOL pages:
lynx $S/http/lal.cs.byu.edu/lal/hol-documentation.html
lynx $S/http/www.cl.cam.ac.uk/Research/HVG/FTP/FTP.html

# Automated reasoning systems:
lynx $S/http/www.cl.cam.ac.uk/users/jrh/ar.html






# (find-fline "/usr/src/hol90.10/src/INSTALL.txt")
# (find-fline "/usr/src/hol90.10/src/Makefiles/")
# (find-fline "/usr/src/hol90.10/src/Makefiles/")


lynx /usr/src/hol90.10/doc/manual.html




######
#
# haskell-mode
#
######

pdsc $SDEBIAN/dists/potato/main/source/devel/haskell-mode_1.2-1.dsc
cd /usr/src/haskell-mode-1.2/
debian/rules binary	|& tee odrb

cd /usr/src/
mv -v haskell-mode*.deb .debs

cd /usr/src/.debs/
dpkg-scanpackages . /dev/null | tee Packages
apt-get update

apt-get install haskell-mode

# (find-vldifile "haskell-mode.list")







#####
#
# Isabelle
#
#####

rm -Rv /usr/src/Isabelle98-1/
cd /usr/src/
tar -xvzf $S/http/www.cl.cam.ac.uk/Research/HVG/Isabelle/dist/Isabelle98-1.tar.gz

cd /usr/src/Isabelle98-1/
cat >> etc/settings <<'---'
ML_HOME=/usr/lib/sml-nj
---

cd /usr/src/Isabelle98-1/
./configure	|& tee oc

cd /usr/src/Isabelle98-1/
./build		|& tee ob

# (code-c-d "isa" "/usr/src/Isabelle98-1/")
# (find-isafile "")
# (find-isafile "ob")
# (find-isafile "src/Pure/")
# (find-isafile "INSTALL")
# (find-isafile "etc/settings")
# (find-isafile "heaps/smlnj-110/log/Pure")


Unable to locate /usr/bin/.arch-n-opsys
Please check your ML_HOME setting!



# (find-vldifile "sml-nj.list")
# (find-fline "/usr/doc/sml-nj/")
# (find-fline "/usr/lib/sml-nj/")



######
#
# TkHol
#
######

cd /usr/src/
rm -Rv TkHol.0.3c/
tar -xvzf $S/ftp/ftp.cl.cam.ac.uk/hvg/contrib/TkHol/TkHol.0.3c.WithoutTclTkExpect.tar.gz
cd /usr/src/TkHol.0.3c/

patch tksml/configure <<'---'
113a114,116
> #Edrx
> if false; then
> 
181a185,187
> 
> #Edrx
> fi
---
# (find-tkholfile "tksml/configure" "Edrx")

# (find-fline "~/TCL/patchTkHol")
~/TCL/patchTkHol $(find * | grep Make) |& tee op

cd /usr/src/TkHol.0.3c/
EXPECTK=/usr/bin/expectk5.28 HOL90_ROOT_DIR=/usr/src/hol90.10 \
  ./configure |& tee oc

# (find-tkholfile "oc")
# (find-tkholfile "configure" "hol90 root installation directory")

make |& tee om
# (find-tkholfile "om" "Error")
# (find-tkholfile "hol90/holplus/")
# (find-tkholfile "hol90/holplus/holplus_lib.sml")

# (find-holfile "src/portableML/njsml.1xx.sml" "fun open_out")

smlglimpse -w IO
smlglimpse open_out






#
# Lixos?
#

cd /usr/src/
rm -Rv tcl7.4/
rm -Rv tk4.0/
rm -Rv expect*
rm -Rv TkHol.0.3c/

rm -Rv /usr/src/TkHol.0.3c/
cd /usr/src/
tar -xvzf $S/ftp/ftp.cl.cam.ac.uk/hvg/contrib/TkHol/TkHol.0.3c.WithoutTclTkExpect.tar.gz
cd /usr/src/TkHol.0.3c/

# (find-tkholfile "")
# (find-tkholfile "configure")
# (find-tkholfile "tksml/configure" "We need Tk version = 4.0")

cd /usr/src/TkHol.0.3c/
ln -s $S/ftp/ftp.cl.cam.ac.uk/hvg/contrib/TkHol/tcl7.4.tar.gz .
ln -s $S/ftp/ftp.cl.cam.ac.uk/hvg/contrib/TkHol/tk4.0.tar.gz .
ln -s $S/ftp/ftp.cl.cam.ac.uk/hvg/contrib/TkHol/expect-5.18.tar.gz .
./configure	|& tee oc
make expectk	|& tee ome

cd /usr/src/TkHol.0.3c/
./configure |& tee oc



# bash -v ...

strace-to ~/s ./configure |& tee oc


cd /usr/src/TkHol.0.3c/tksml/
cp configure configure0
perl -nle 's/4\.0/4.2/g; s/7\.4/8.0/g; s/5\.18/5\.28/; print $_' \
  < configure0 > configure
chmod 777 configure


# (find-tkholfile "")
# (find-node "(bash)Bash Conditional Expressions")


# (find-fline "/usr/doc/tcl8.0/changelog.gz" "version 7.4,")
# (find-fline "/usr/doc/tk8.0/changelog.gz" "Release 4.0,")
# (find-fline "/usr/doc/expect5.24/changelog.gz")
# (find-fline "/usr/doc/expect5.24/HISTORY.gz")
# (find-fline "/usr/doc/expect5.24/")

#
# docs:
#
cd /usr/src/TkHol.0.3c/
cd doc/Tutorial/
make tutorial.ps |& tee om
#
cd /usr/src/TkHol.0.3c/
cd doc/paper1/
make paper.dvi |& tee om





#######
#
# Hugs (potato: 199806)
#
#######

pdsc $SDEBIAN/dists/potato/non-free/source/interpreters/hugs_1.4.199806-4.dsc
cd /usr/src/hugs-1.4.199806/
debian/rules binary	|& tee odrb

mv -v /usr/src/hugs*.deb /usr/src/.debs/

apt-update

apti hugs hugs-doc

# (find-hugsfile "odrb")

# (find-fline "/usr/doc/hugs/")
# (find-fline "/usr/doc/hugs-doc/")
# (find-vldifile "hugs.list")
# (find-vldifile "hugs-doc.list")


gzip -cd < $SDEBIAN/dists/potato/non-free/source/interpreters/hugs_1.4.199806-4.diff.gz | grep -n '^+++ '






######
#
# TclHaskell (sep/99)
#
######

rm -Rv /usr/src/TclHaskell/
cd /usr/src/
tar -xvzf $S/http/www.dcs.gla.ac.uk/~meurig/TclHaskell/TclHaskell.tar.gz
cd /usr/src/TclHaskell/

cd src/
make XINC=/usr/X11R6/include XLIB=/usr/X11R6/lib \
  TclPrim.so |& tee om

cd /usr/src/TclHaskell/demo/
expect -c '
  spawn /usr/local/bin/hugs -P[join {
    /usr/src/TclHaskell/src
    /usr/local/share/hugs/lib
    /usr/local/share/hugs/lib/hugs
    /usr/local/share/hugs/lib/exts
  } ":"] Demo.hs
  expect "Main>"
  send "main\n"
  interact
'

# (find-THfile "")
# (find-THfile "Readme.txt" "TclPrim.so")
# (find-THfile "src/")
# (find-THfile "src/makefile")
# (find-THfile "bin/tclexe")
# (find-THfile "demo/")
# (find-THfile "doc/")

lynx /usr/src/TclHaskell/doc/usermanual.html

(export TK_LIBRARY=/usr/lib/tk8.0/
 export TCL_LIBRARY=/usr/lib/tcl8.0/
 hugs)


# (code-c-d "TH" "/usr/src/TclHaskell/")
# (find-THfile "")
# (find-THfile "src/" "makefile")





#####
#
# Hugs98-May1999
#
#####

#  «hugs99-may99»

# (code-c-d "hugs" "/usr/src/Hugs98/")
# (find-hugsfile "")
# (find-hugsfile "Install")

rm -fv /usr/local/bin/{hugs,runhugs}
rm -Rv /usr/local/share/hugs/
rm -Rv /usr/src/Hugs98/

cd /usr/src/
tar -xvzf $S/http/www.cse.ogi.edu/~mpj/Hugs98/Hugs98-May1999.tar.gz
cd /usr/src/Hugs98/

cd /usr/src/Hugs98/src/unix
./configure --prefix=/usr/local	|& tee oc
cd ..
make install			|& tee omi

cd /usr/src/Hugs98/
make clean			|& tee omc





#####
#
# Typing Haskell in Haskell
#
#####

# Needs hugs99-may99.

gv $S/http/www.cse.ogi.edu/~mpj/thih/thihA4.ps

rm -Rv /usr/src/thih-Sep-1-1999/
cd /usr/src/
tar -xvzf $S/http/www.cse.ogi.edu/~mpj/thih/thih-Sep-1-1999.tar.gz
cd /usr/src/thih-Sep-1-1999/

# (find-fline "/usr/src/thih-Sep-1-1999/")
# (find-fline "/usr/src/thih-Sep-1-1999/Readme" "Simple example")
expect -c '
  spawn /usr/local/bin/hugs
  expect "Prelude>"
  send ":l SourcePrelude\n"
  interact
'





#####
#
# ocaml-2.02 (potato, on slink)
# 99oct08
#
#####

#  «ocaml»
# (code-c-d "oc" "/usr/src/ocaml-2.02/")

pdsc $SDEBIAN/dists/potato/non-free/source/devel/ocaml_2.02-5.dsc
cd /usr/src/ocaml-2.02/
debian/rules binary	|& tee odrb

mv -v /usr/src/ocaml*deb /usr/src/.debs/
apt-update

# (find-ocfile "README" "http://")