X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=clean%2F.local%2Fbin%2Finstall_clean.sh;h=59d5e9f4cf719dfcc690f59e6b487f8aba83c732;hb=37a88a14fd119cb8ef43b2f421c268aef436e5f4;hp=acf04f0086213bf58bdb033daf9f6888cc7f25ae;hpb=7553d3a3fcf877457ea1c93d2d7ab1e3ba11487a;p=dotfiles.git diff --git a/clean/.local/bin/install_clean.sh b/clean/.local/bin/install_clean.sh index acf04f0..59d5e9f 100755 --- a/clean/.local/bin/install_clean.sh +++ b/clean/.local/bin/install_clean.sh @@ -1,4 +1,126 @@ -#!/bin/sh -mv /opt/clean /opt/clean.bak -curl ftp://ftp.cs.ru.nl/pub/Clean/builds/linux-x64/clean-bundle-complete-linux-x64-latest.tgz | tar -xz -mv clean-bundle-complete /opt/clean +#!/bin/bash +set -e + +DISTRO="https://ftp.cs.ru.nl/Clean/builds/linux-x64/clean-bundle-complete-linux-x64-latest.tgz" +TAGS="https://gitlab.science.ru.nl/cloogle/cloogle-tags/-/jobs/artifacts/master/raw/cloogletags?job=build" +CLMMAN="https://gitlab.science.ru.nl/clean-and-itasks/clm/raw/master/clm.1" +CP2CG="https://gitlab.science.ru.nl/clean-and-itasks/cleanprof2callgrind/-/jobs/artifacts/master/raw/cleanprof2callgrind?job=test" +CLEAN_HOME="${CLEAN_HOME:-/opt/clean}" + +echo "Cleaning up the old distro" +rm -rf "$CLEAN_HOME"/* +echo "Downloading clean" +curl -sSL "$DISTRO" | tar -C "$CLEAN_HOME" --strip-components=1 -xz +echo "Installing manpages" +mkdir -p ~/.local/man/man1 +curl -sSLo ~/.local/man/man1/clm.1 "$CLMMAN" +echo "Downloading cleanprof2callgrind" +curl -sSLo "$CLEAN_HOME/bin/cleanprof2callgrind" "$CP2CG" +chmod +x "$CLEAN_HOME"/bin/cleanprof2callgrind +echo "Downloading cloogletags" +curl -sSLo "$CLEAN_HOME"/bin/cloogletags "$TAGS" +chmod +x "$CLEAN_HOME"/bin/cloogletags +echo "Generating tags" +cloogletags -a -c -d "$CLEAN_HOME"/lib -o "$CLEAN_HOME"/lib/tags 2>/dev/null + +echo "Patching StdEnv for binumap" +patch /opt/clean/lib/StdEnv/StdGeneric.dcl <) + ++generic binumap a b | binumap b a :: a -> b ++derive binumap c ++derive binumap PAIR ++derive binumap EITHER ++derive binumap OBJECT ++derive binumap CONS ++derive binumap RECORD ++derive binumap FIELD ++derive binumap (->) ++ + // HACK: dictionaries for all generics. + // It works since all generic classes have only one method and do not inherit + // from other classes +EOPATCH + +patch /opt/clean/lib/StdEnv/StdGeneric.icl <)|} _ ba fr _ f = comp3 fr f ba + ++binumap{|c|} x = x ++ ++binumap{|PAIR|} fx _ fy _ (PAIR x y) = PAIR (fx x) (fy y) ++ ++binumap{|EITHER|} fl _ fr _ (LEFT x) = LEFT (fl x) ++binumap{|EITHER|} fl _ fr _ (RIGHT x) = RIGHT (fr x) ++ ++binumap{|CONS|} fx _ (CONS x) = CONS (fx x) ++ ++binumap{|RECORD|} fx _ (RECORD x) = RECORD (fx x) ++ ++binumap{|FIELD|} fx _ (FIELD x) = FIELD (fx x) ++ ++binumap{|OBJECT|} fx _ (OBJECT x) = OBJECT (fx x) ++ ++binumap{|(->)|} _ ba fr _ f = comp3 fr f ba ++ + comp3 :: !(.a -> .b) u:(.c -> .a) !(.d -> .c) -> u:(.d -> .b) + comp3 f g h + | is_id f +EOPATCH + +echo "Adding the iTasks-git environment" +patch /opt/clean/etc/IDEEnvs <