Skip to content
This repository was archived by the owner on Feb 1, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@

let
currentDir = builtins.toString ./.;
pnpm = pkgs.callPackage ./tools/nix/pnpm.nix { nodejs = pkgs.nodejs_20; };
pnpm = pkgs.pnpm.override {
version = "10.4.1";
hash = "sha256-S3Aoh5hplZM9QwCDawTW0CpDvHK1Lk9+k6TKYIuVkZc=";
nodejs = pkgs.nodejs_20;
};
cxxopts = pkgs.cxxopts.override { enableUnicodeHelp = false; };
antlr4 = pkgs.callPackage ./tools/nix/antlr4.nix { };
in

pkgs.mkShell {
Expand All @@ -23,11 +28,9 @@ pkgs.mkShell {
pnpm
pkgs.httpie
pkgs.llvmPackages_18.libllvm
pkgs.libffi
pkgs.libxml2
cxxopts
pkgs.antlr4_13
pkgs.antlr4_13.runtime.cpp
antlr4.antlr
antlr4.runtime.cpp
];

shellHook = ''
Expand Down
62 changes: 62 additions & 0 deletions tools/nix/antlr4.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{ stdenv
, fetchurl
, fetchFromGitHub
, jre
, cmake, ninja, pkg-config
}:
# From https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/development/tools/parsing/antlr/4.nix
let
mkAntlr = {
version, jarHash, srcHash
}: rec {
antlr = stdenv.mkDerivation {
pname = "antlr";
inherit version;
src = fetchurl {
url = "https://www.antlr.org/download/antlr-${version}-complete.jar";
hash = jarHash;
};
dontUnpack = true;
installPhase = ''
mkdir -p "$out"/{share/java,bin}
ln -s "$src" "$out/share/java/antlr-${version}-complete.jar"
echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.Tool \"\$@\"" >> "$out/bin/antlr"
echo "#! ${stdenv.shell}" >> "$out/bin/antlr-parse"
echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.gui.Interpreter \"\$@\"" >> "$out/bin/antlr-parse"
echo "#! ${stdenv.shell}" >> "$out/bin/grun"
echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' org.antlr.v4.gui.TestRig \"\$@\"" >> "$out/bin/grun"
chmod a+x "$out/bin/antlr" "$out/bin/antlr-parse" "$out/bin/grun"
ln -s "$out/bin/antlr"{,4}
ln -s "$out/bin/antlr"{,4}-parse
'';
inherit jre;
passthru = {
inherit runtime;
jarLocation = antlr.src;
};
};
runtime.cpp = stdenv.mkDerivation {
pname = "antlr-runtime-cpp";
inherit version;
src = fetchFromGitHub {
owner = "antlr";
repo = "antlr4";
rev = version;
hash = srcHash;
};
outputs = [ "out" "dev" "doc" ];
nativeBuildInputs = [ cmake ninja pkg-config ];
cmakeDir = "../runtime/Cpp";
cmakeFlags = [
"-DANTLR4_INSTALL=ON"
"-DANTLR_BUILD_CPP_TESTS=OFF"
];
};
};
in
mkAntlr {
version = "4.13.2";
jarHash = "sha256-6uLfoRmmQydERnKv9j6ew1ogGA3FuAkLemq4USXfTXY=";
srcHash = "sha256-s1yAdScMYg1wFpYNsBAtpifIhQsnSAgJg7JjPDx+htc=";
}
5 changes: 4 additions & 1 deletion tools/nix/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
let
pkgs = import ./pin-nixpkgs.nix { };
pkgs = import (fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/eb28b94bd14835836b539bc3854a6abf929876d4.tar.gz";
sha256 = "1wwr70sw70ib0qdr0cf7d9g7czlib5zm8hg8xjll7lsind6cfvwi";
}) { config = {}; overlays = []; };
in {
filc = pkgs.callPackage ./filc.nix { };
}
4 changes: 2 additions & 2 deletions tools/nix/pin-nixpkgs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

let
pinNixpkgs = import (fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/eb28b94bd14835836b539bc3854a6abf929876d4.tar.gz";
sha256 = "1wwr70sw70ib0qdr0cf7d9g7czlib5zm8hg8xjll7lsind6cfvwi";
url = "https://github.com/NixOS/nixpkgs/archive/5cb027673efd44307525d6300e0fa6309dce47d3.tar.gz";
sha256 = "0qavs0z6djxa52hnxix0ndhl39yv1k6lj7x86xpjdgr078lhcy7a";
} ) { config = {}; overlays = []; };
in pinNixpkgs
33 changes: 0 additions & 33 deletions tools/nix/pnpm.nix

This file was deleted.