migrate ponylang to nix
This commit is contained in:
parent
a8adca3e18
commit
dc2c5f3380
|
@ -1,27 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
PREFIX=$(realpath $(dirname $0))
|
|
||||||
|
|
||||||
# get sources - only get the latest copy of the relevant files
|
|
||||||
git clone -q https://github.com/ponylang/ponyc.git ponyc
|
|
||||||
|
|
||||||
cd ponyc
|
|
||||||
|
|
||||||
# release commit for 0.39.0
|
|
||||||
git reset --hard 85d897b978c5082a1f3264a3a9ad479446d73984
|
|
||||||
|
|
||||||
# updates all submodules recursively along their tracking branches
|
|
||||||
# i.e. https://github.com/ponylang/ponyc/blob/main/.gitmodules
|
|
||||||
git submodule update --recursive --init
|
|
||||||
|
|
||||||
# Build the vendored LLVM libraries that are included in the `lib/llvm/src`.
|
|
||||||
make libs build_flags="-j$(nproc)"
|
|
||||||
# Configure the CMake build directory.
|
|
||||||
make configure
|
|
||||||
# Will build pony and put it in `build/release`.
|
|
||||||
make build
|
|
||||||
# Install pony into `$PREFIX`.
|
|
||||||
make prefix="$PREFIX" install
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
rm -rf ponyc
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Compile pony file(s)
|
|
||||||
rename 's/$/\.pony/' "$@" # Add .pony extension
|
|
||||||
ponyc -b out
|
|
|
@ -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": "ponylang",
|
|
||||||
"version": "0.39.0",
|
|
||||||
"aliases": ["pony", "ponyc"]
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# removes the first arg from $@, which is always the filename
|
|
||||||
shift
|
|
||||||
# runs the <outfile> executable with whatever args are left in $@
|
|
||||||
./out "$@"
|
|
|
@ -1,3 +0,0 @@
|
||||||
actor Main
|
|
||||||
new create(env: Env) =>
|
|
||||||
env.out.print("OK")
|
|
|
@ -25,4 +25,5 @@ args: {
|
||||||
"racket" = import ./racket.nix args;
|
"racket" = import ./racket.nix args;
|
||||||
"powershell" = import ./powershell.nix args;
|
"powershell" = import ./powershell.nix args;
|
||||||
"prolog" = import ./prolog.nix args;
|
"prolog" = import ./prolog.nix args;
|
||||||
|
"ponylang" = import ./ponylang.nix args;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
{pkgs, piston, ...}:
|
||||||
|
let
|
||||||
|
pkg = pkgs.ponyc;
|
||||||
|
in piston.mkRuntime {
|
||||||
|
language = "ponylang";
|
||||||
|
version = pkg.version;
|
||||||
|
aliases = [
|
||||||
|
"pony"
|
||||||
|
"ponyc"
|
||||||
|
];
|
||||||
|
|
||||||
|
compile = ''
|
||||||
|
rename 's/$/.pony/' "$@" # Add .pony extension
|
||||||
|
${pkg}/bin/ponyc -b out
|
||||||
|
'';
|
||||||
|
|
||||||
|
run = ''
|
||||||
|
shift
|
||||||
|
./out "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
tests = [
|
||||||
|
(piston.mkTest {
|
||||||
|
files = {
|
||||||
|
"test.pony" = ''
|
||||||
|
actor Main
|
||||||
|
new create(env: Env) =>
|
||||||
|
env.out.print("OK")
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
args = [];
|
||||||
|
stdin = "";
|
||||||
|
packages = [];
|
||||||
|
main = "test.pony";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
Loading…
Reference in New Issue