mirror of
https://github.com/engineer-man/piston.git
synced 2025-06-08 03:06:26 +02:00
add piston nix pkg for ghc-haskell
This commit is contained in:
parent
61bac60830
commit
2bc7155895
8 changed files with 38 additions and 36 deletions
19
packages/haskell/9.0.1/build.sh
vendored
19
packages/haskell/9.0.1/build.sh
vendored
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
PREFIX=$(realpath $(dirname $0))
|
|
||||||
|
|
||||||
mkdir -p build
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# Platform specific because a true source compile would require GHC to be installed already on the latest
|
|
||||||
curl -L "https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb10-linux.tar.xz" -o ghc.tar.xz
|
|
||||||
tar xf ghc.tar.xz --strip-components=1
|
|
||||||
rm ghc.tar.xz
|
|
||||||
|
|
||||||
./configure --prefix="$PREFIX"
|
|
||||||
make install -j$(nproc)
|
|
||||||
|
|
||||||
cd ../
|
|
||||||
|
|
||||||
rm -rf build
|
|
6
packages/haskell/9.0.1/compile
vendored
6
packages/haskell/9.0.1/compile
vendored
|
@ -1,6 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Compile haskell file(s)
|
|
||||||
rename 's/$/\.hs/' "$@" # Add .hs extension
|
|
||||||
ghc -dynamic -v0 -o out *.hs
|
|
||||||
chmod +x out
|
|
1
packages/haskell/9.0.1/environment
vendored
1
packages/haskell/9.0.1/environment
vendored
|
@ -1 +0,0 @@
|
||||||
export PATH=$PWD/bin:$PATH
|
|
5
packages/haskell/9.0.1/metadata.json
vendored
5
packages/haskell/9.0.1/metadata.json
vendored
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"language": "haskell",
|
|
||||||
"version": "9.0.1",
|
|
||||||
"aliases": ["haskell", "hs"]
|
|
||||||
}
|
|
4
packages/haskell/9.0.1/run
vendored
4
packages/haskell/9.0.1/run
vendored
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
shift # Filename is only used to compile
|
|
||||||
./out "$@"
|
|
1
packages/haskell/9.0.1/test.hs
vendored
1
packages/haskell/9.0.1/test.hs
vendored
|
@ -1 +0,0 @@
|
||||||
main = putStrLn "OK"
|
|
|
@ -42,4 +42,5 @@ args: {
|
||||||
"jelly" = import ./jelly.nix args;
|
"jelly" = import ./jelly.nix args;
|
||||||
"openjdk-java" = import ./openjdk-java.nix args;
|
"openjdk-java" = import ./openjdk-java.nix args;
|
||||||
"iverilog" = import ./iverilog.nix args;
|
"iverilog" = import ./iverilog.nix args;
|
||||||
|
"ghc-haskell" = import ./ghc-haskell.nix args;
|
||||||
}
|
}
|
||||||
|
|
37
runtimes/ghc-haskell.nix
Normal file
37
runtimes/ghc-haskell.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{pkgs, piston, ...}:
|
||||||
|
let
|
||||||
|
pkg = pkgs.haskell.compiler.ghcHEAD;
|
||||||
|
in piston.mkRuntime {
|
||||||
|
language = "haskell";
|
||||||
|
version = pkg.version;
|
||||||
|
runtime = "ghc";
|
||||||
|
|
||||||
|
aliases = [
|
||||||
|
"hs"
|
||||||
|
];
|
||||||
|
|
||||||
|
compile = ''
|
||||||
|
rename 's/$/\.hs/' "$@" # Add .hs extension
|
||||||
|
${pkg}/bin/ghc -dynamic -v0 -o out *.hs
|
||||||
|
chmod +x out
|
||||||
|
'';
|
||||||
|
|
||||||
|
run = ''
|
||||||
|
shift # Filename is only used to compile
|
||||||
|
./out "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
tests = [
|
||||||
|
(piston.mkTest {
|
||||||
|
files = {
|
||||||
|
"test.hs" = ''
|
||||||
|
main = putStrLn "OK"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
args = [];
|
||||||
|
stdin = "";
|
||||||
|
packages = [];
|
||||||
|
main = "test.hs";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue