riju/langs/clean.yaml

69 lines
1.4 KiB
YAML

id: "clean"
aliases:
- "icl"
- "clm"
- "dcl"
name: "Clean"
info:
year: 1987
desc: "General-purpose purely functional computer programming language"
ext:
- icl
- dcl
- abc
web:
wiki: "https://en.wikipedia.org/wiki/Clean_(programming_language)"
home: "https://clean.cs.ru.nl/Clean"
source: "https://gitlab.science.ru.nl/clean-compiler-and-rts/compiler"
category: general
mode: compiled
platform: []
syntax: haskell
typing: static
paradigm:
- declarative
- functional
usage: []
install:
manual: |
install -d "${pkg}/opt/clean"
install -d "${pkg}/usr/local/bin"
url="$(curl -fsSL https://clean.cs.ru.nl/Download_Clean | grep linux/clean | grep -F 64.tar.gz | grep -Eo "https://[^>]+\.tar\.gz")"
wget "${url}"
sudo mkdir /opt/clean
sudo chown riju:riju /opt/clean
tar -xf clean*_64.tar.gz -C /opt/clean --strip-components=1
pushd /opt/clean
make
popd
mv /opt/clean/* "${pkg}/opt/clean/"
sudo rmdir /opt/clean
ln -s /opt/clean/bin/clm "${pkg}/usr/local/bin/"
sleep 2
find "${pkg}/opt/clean" -name '*.o' -exec touch '{}' ';'
main: "main.icl"
template: |
module main
import StdEnv
Start world
#(console, world) = stdio world
#console = fwrites "Hello, world!\n" console
#(ok, world) = fclose console world
= world
compile: |
clm main -o main
run: |
./main