X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=clean%2F.local%2Fbin%2Finstall_clean.sh;h=e9be47eb0659e1d8c82ce9a7e063cc3d790fbdd7;hb=HEAD;hp=7b4617e45e26104b03017fb72d02b32cf1f27cb8;hpb=b0f816d157b400b7b3a7b93a7ce71f57b483d7a5;p=dotfiles.git diff --git a/clean/.local/bin/install_clean.sh b/clean/.local/bin/install_clean.sh index 7b4617e..e9be47e 100755 --- a/clean/.local/bin/install_clean.sh +++ b/clean/.local/bin/install_clean.sh @@ -1,125 +1,31 @@ #!/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" -CLM="https://gitlab.science.ru.nl/mlubbers/clm/builds/artifacts/master/raw/clm?job=compile" -CLM1="https://gitlab.science.ru.nl/mlubbers/clm/builds/artifacts/master/raw/clm.1?job=compile" -CLEAN_HOME="${CLEAN_HOME:-/opt/clean}" +if [ $# -ne 1 ] +then + echo "Usage: $0 [x86|x64]" + exit 1 +fi + +DISTRO="https://ftp.cs.ru.nl/Clean/builds/linux-$1/clean-bundle-complete-linux-$1-latest.tgz" +TAGS="https://gitlab.com/cloogle/periphery/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="/opt/clean-$1" echo "Cleaning up the old distro" rm -rf "$CLEAN_HOME"/* +mkdir -p "$CLEAN_HOME" echo "Downloading clean" -curl -sSL "$DISTRO" | tar -C "$CLEAN_HOME" --strip-components=1 -xz -echo "Replacing clm" -curl -sSLo "$CLEAN_HOME/bin/clm" "$CLM" +curl -ksSL "$DISTRO" | tar -C "$CLEAN_HOME" --strip-components=1 -xz echo "Installing manpages" mkdir -p ~/.local/man/man1 -curl -sSLo ~/.local/man/man1/clm.1 "$CLM1" +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 <