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-visual-basic" = import ./dotnet-sdk-visual-basic.nix args;
|
||||
"fpc-pascal" = import ./fpc-pascal.nix args;
|
||||
"brainfuck" = import ./brainfuck.nix args;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue