add piston nix pkg for brainfuck
This commit is contained in:
parent
16e4f08dfa
commit
96ffdb63dd
|
@ -1,22 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Put instructions to build your package in here
|
|
||||||
PREFIX=$(realpath $(dirname $0))
|
|
||||||
|
|
||||||
git clone https://github.com/fabianishere/brainfuck.git
|
|
||||||
|
|
||||||
cd brainfuck
|
|
||||||
git checkout 06f84462e0a96487670a4b8024e3ec531e0377ee
|
|
||||||
|
|
||||||
|
|
||||||
mkdir -p build
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX/ -DENABLE_EDITLINE=OFF
|
|
||||||
|
|
||||||
make -j$(nproc)
|
|
||||||
make install -j$(nproc)
|
|
||||||
|
|
||||||
cd ../../
|
|
||||||
rm -rf brainfuck
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Put 'export' statements here for environment variables
|
|
||||||
export PATH=$PWD/bin:$PATH
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"language": "brainfuck",
|
|
||||||
"version": "2.7.3",
|
|
||||||
"aliases": ["bf"]
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Put instructions to run the runtime
|
|
||||||
fold -w1 | brainfuck $1
|
|
|
@ -1 +0,0 @@
|
||||||
-[--->+<]>------.----.
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
{pkgs, piston, ...}:
|
||||||
|
let
|
||||||
|
# All other BF packages are either marked as broken in nix-pkgs
|
||||||
|
# or have missing functionality. Yabi isn't perfect either.
|
||||||
|
pkg = pkgs.haskellPackages.yabi;
|
||||||
|
in piston.mkRuntime {
|
||||||
|
language = "brainfuck";
|
||||||
|
version = pkg.version;
|
||||||
|
|
||||||
|
aliases = [
|
||||||
|
"bf"
|
||||||
|
"yabi"
|
||||||
|
];
|
||||||
|
|
||||||
|
run = ''
|
||||||
|
# Yabi produces messages when parsing the BF file that are sent to stderr
|
||||||
|
# Yabi will also break when trying to take more input at EOF
|
||||||
|
${pkg}/bin/yabi "$1" 2> /dev/null
|
||||||
|
'';
|
||||||
|
|
||||||
|
tests = [
|
||||||
|
# stdout test
|
||||||
|
(piston.mkTest {
|
||||||
|
files = {
|
||||||
|
"test.bf" = ''-[--->+<]>------.----.'';
|
||||||
|
};
|
||||||
|
args = [];
|
||||||
|
stdin = "";
|
||||||
|
packages = [];
|
||||||
|
main = "test.bf";
|
||||||
|
})
|
||||||
|
|
||||||
|
# stdin test
|
||||||
|
(piston.mkTest {
|
||||||
|
files = {
|
||||||
|
"test.bf" = '',.,.'';
|
||||||
|
};
|
||||||
|
args = [];
|
||||||
|
stdin = "OK";
|
||||||
|
packages = [];
|
||||||
|
main = "test.bf";
|
||||||
|
})
|
||||||
|
|
||||||
|
# bf doesn't take args test
|
||||||
|
(piston.mkTest {
|
||||||
|
files = {
|
||||||
|
"test.bf" = ''-[--->+<]>------.----.'';
|
||||||
|
};
|
||||||
|
args = ["OK"];
|
||||||
|
stdin = "";
|
||||||
|
packages = [];
|
||||||
|
main = "test.bf";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -58,4 +58,5 @@ args: {
|
||||||
"dotnet-sdk-fsharp-interactive" = import ./dotnet-sdk-fsharp-interactive.nix args;
|
"dotnet-sdk-fsharp-interactive" = import ./dotnet-sdk-fsharp-interactive.nix args;
|
||||||
"dotnet-sdk-visual-basic" = import ./dotnet-sdk-visual-basic.nix args;
|
"dotnet-sdk-visual-basic" = import ./dotnet-sdk-visual-basic.nix args;
|
||||||
"fpc-pascal" = import ./fpc-pascal.nix args;
|
"fpc-pascal" = import ./fpc-pascal.nix args;
|
||||||
|
"brainfuck" = import ./brainfuck.nix args;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue