git.delta.rocks / jrsonnet / refs/commits / b6c7886761f7

difftreelog

chore update other impls for benchmarking

lystomvoYaroslav Bolyukin2026-02-08parent: #7c5655f.patch.diff
in: master

9 files changed

modifiedflake.nixdiffbeforeafterboth
before · flake.nix
1{2  description = "Jrsonnet";3  inputs = {4    nixpkgs.url = "github:nixos/nixpkgs/release-25.11";5    rust-overlay = {6      url = "github:oxalica/rust-overlay";7      inputs.nixpkgs.follows = "nixpkgs";8    };9    flake-parts = {10      url = "github:hercules-ci/flake-parts";11      inputs.nixpkgs-lib.follows = "nixpkgs";12    };13    crane.url = "github:ipetkov/crane";14    shelly.url = "github:CertainLach/shelly";15  };16  outputs =17    inputs@{18      nixpkgs,19      flake-parts,20      rust-overlay,21      crane,22      shelly,23      ...24    }:25    flake-parts.lib.mkFlake { inherit inputs; } {26      imports = [ shelly.flakeModule ];27      systems = inputs.nixpkgs.lib.systems.flakeExposed;28      perSystem =29        {30          config,31          system,32          ...33        }:34        let35          pkgs = import nixpkgs {36            inherit system;37            overlays = [ rust-overlay.overlays.default ];38            config.allowUnsupportedSystem = true;39          };40          rust = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;41          craneLib = (crane.mkLib pkgs).overrideToolchain rust;42        in43        {44          legacyPackages = {45            jsonnetImpls = {46              go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix { };47              sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix { };48              jsonnet = pkgs.callPackage ./nix/jsonnet.nix { };49              # I didn't managed to build it, and nixpkgs version is marked as broken50              # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { };51              rsjsonnet = pkgs.callPackage ./nix/rsjsonnet.nix { };52            };53          };54          packages = rec {55            default = jrsonnet;5657            jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {58              inherit craneLib;59            };60            jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {61              inherit craneLib;62              withNightlyFeatures = true;63            };64            jrsonnet-experimental = pkgs.callPackage ./nix/jrsonnet.nix {65              inherit craneLib;66              withExperimentalFeatures = true;67            };6869            jrsonnet-release = pkgs.callPackage ./nix/jrsonnet-release.nix {70              rustPlatform = pkgs.makeRustPlatform {71                rustc = rust;72                cargo = rust;73              };74            };7576            benchmarks = pkgs.callPackage ./nix/benchmarks.nix {77              inherit (config.legacyPackages.jsonnetImpls)78                go-jsonnet79                sjsonnet80                jsonnet81                rsjsonnet82                ;83              jrsonnetVariants = [84                {85                  drv = jrsonnet.override { forBenchmarks = true; };86                  name = "";87                }88              ];89            };90            benchmarks-quick = pkgs.callPackage ./nix/benchmarks.nix {91              inherit (config.legacyPackages.jsonnetImpls)92                go-jsonnet93                sjsonnet94                jsonnet95                rsjsonnet96                ;97              quick = true;98              jrsonnetVariants = [99                {100                  drv = jrsonnet.override { forBenchmarks = true; };101                  name = "";102                }103              ];104            };105            benchmarks-against-release = pkgs.callPackage ./nix/benchmarks.nix {106              inherit (config.legacyPackages.jsonnetImpls)107                go-jsonnet108                sjsonnet109                jsonnet110                rsjsonnet111                ;112              jrsonnetVariants = [113                {114                  drv = jrsonnet.override { forBenchmarks = true; };115                  name = "current";116                }117                {118                  drv = jrsonnet-nightly.override { forBenchmarks = true; };119                  name = "current-nightly";120                }121                {122                  drv = jrsonnet-release.override { forBenchmarks = true; };123                  name = "release";124                }125              ];126            };127            benchmarks-quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {128              inherit (config.legacyPackages.jsonnetImpls)129                go-jsonnet130                sjsonnet131                jsonnet132                rsjsonnet133                ;134              quick = true;135              jrsonnetVariants = [136                {137                  drv = jrsonnet.override { forBenchmarks = true; };138                  name = "current";139                }140                {141                  drv = jrsonnet-nightly.override { forBenchmarks = true; };142                  name = "current-nightly";143                }144                {145                  drv = jrsonnet-release.override { forBenchmarks = true; };146                  name = "release";147                }148              ];149            };150          };151          shelly.shells.default = {152            factory = craneLib.devShell;153            packages =154              with pkgs;155              [156                cargo-edit157                cargo-outdated158                cargo-watch159                cargo-insta160                cargo-hack161                lld162                hyperfine163                graphviz164              ]165              ++ lib.optionals (!stdenv.isDarwin) [166                valgrind167              ];168          };169        };170    };171}
modifiednix/benchmarks.nixdiffbeforeafterboth
--- a/nix/benchmarks.nix
+++ b/nix/benchmarks.nix
@@ -7,7 +7,7 @@
   fetchFromGitHub,
   go-jsonnet,
   sjsonnet,
-  jsonnet,
+  cpp-jsonnet,
   rsjsonnet,
   hyperfine,
   quick ? false,
@@ -71,7 +71,7 @@
 
     buildInputs = [
       sjsonnet
-      jsonnet
+      cpp-jsonnet
       rsjsonnet
       go-jsonnet
 
addednix/cpp-jsonnet.nixdiffbeforeafterboth
--- /dev/null
+++ b/nix/cpp-jsonnet.nix
@@ -0,0 +1,32 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  makeWrapper,
+}:
+let
+  pname = "cpp-jsonnet";
+  version = "0.21.0";
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "google";
+    repo = "jsonnet";
+    hash = "sha256-QHp0DOu/pqcgN7di219cHzfFb7fWtdGGE6J1ZXgbOGQ=";
+  };
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  makeFlags = [
+    "jsonnet"
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp jsonnet $out/bin/jsonnet
+    wrapProgram $out/bin/jsonnet --add-flags "--max-stack 200000"
+  '';
+
+  passthru = { inherit src; };
+}
modifiednix/go-jsonnet.nixdiffbeforeafterboth
--- a/nix/go-jsonnet.nix
+++ b/nix/go-jsonnet.nix
@@ -3,26 +3,31 @@
   fetchFromGitHub,
   makeWrapper,
 }:
-buildGoModule rec {
+let
   pname = "go-jsonnet";
-  version = "0.20.0";
-
+  version = "0.21.0";
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-P69tguBrFF/CSCOfHjCfBT5710oJdhZDh3kMCbc32eE=";
+    hash = "sha256-J92xNDpCidbiSsN6NveS6BX6Tx+qDQqkgm6pjk1wBTQ=";
   };
-  vendorHash = "sha256-j1fTOUpLx34TgzW94A/BctLrg9XoTtb3cBizhVJoEEI=";
+in
+buildGoModule {
+  inherit pname version src;
 
-  buildInputs = [makeWrapper];
+  vendorHash = "sha256-Uh2rAXdye9QmmZuEqx1qeokE9Z9domyHsSFlU7YZsZw=";
+
+  buildInputs = [ makeWrapper ];
 
   postInstall = ''
     mv $out/bin/jsonnet $out/bin/go-jsonnet
     wrapProgram $out/bin/go-jsonnet --add-flags "--max-stack 200000"
   '';
 
+  passthru = { inherit src; };
+
   doCheck = false;
 
-  subPackages = ["cmd/jsonnet"];
+  subPackages = [ "cmd/jsonnet" ];
 }
modifiednix/jrsonnet-release.nixdiffbeforeafterboth
--- a/nix/jrsonnet-release.nix
+++ b/nix/jrsonnet-release.nix
@@ -16,7 +16,7 @@
     rev = "ad68a2495da324ce7a893992a6b32851849c64eb";
     hash = "sha256-N2z0JcJG6iQ+eAE1GGF+c1+T7Pti8oCgx+QWdhT+33M=";
   };
-  cargoHash = "sha256-A/sdqI51kD7Tfo9R95ep2CecaSEzSz3suhZXdND6/nQ=";
+  cargoHash = "sha256-ZHmdlqakucapzXJz6L7ZJpmvqTutelN8qkWAD4uDJr8=";
 
   cargoTestFlags = ["--package=jrsonnet --features=mimalloc,legacy-this-file"];
   cargoBuildFlags = ["--package=jrsonnet --features=mimalloc,legacy-this-file"];
modifiednix/jrsonnet.nixdiffbeforeafterboth
--- a/nix/jrsonnet.nix
+++ b/nix/jrsonnet.nix
@@ -2,7 +2,6 @@
   lib,
   craneLib,
   makeWrapper,
-  withNightlyFeatures ? false,
   withExperimentalFeatures ? false,
   forBenchmarks ? false,
 }:
@@ -15,9 +14,9 @@
         || (craneLib.filterCargoSources path type);
     };
     pname = "jrsonnet";
-    version = "current${optionalString withNightlyFeatures "-nightly"}${optionalString withExperimentalFeatures "-experimental"}";
+    version = "current${optionalString withExperimentalFeatures "-experimental"}";
 
-    cargoExtraArgs = "--locked --features=mimalloc${optionalString withNightlyFeatures ",nightly"}${optionalString withExperimentalFeatures ",experimental"}";
+    cargoExtraArgs = "--locked --features=mimalloc${optionalString withExperimentalFeatures ",experimental"}";
 
     nativeBuildInputs = [makeWrapper];
 
deletednix/jsonnet.nixdiffbeforeafterboth
--- a/nix/jsonnet.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  stdenv,
-  fetchFromGitHub,
-  makeWrapper,
-}:
-stdenv.mkDerivation rec {
-  pname = "jsonnet";
-  version = "0.20.0";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    owner = "google";
-    repo = pname;
-    hash = "sha256-FtVJE9alEl56Uik+nCpJMV5DMVVmRCnE1xMAiWdK39Y=";
-  };
-
-  makeFlags = [
-    "jsonnet"
-  ];
-
-  nativeBuildInputs = [makeWrapper];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp jsonnet $out/bin/jsonnet
-    wrapProgram $out/bin/jsonnet --add-flags "--max-stack 200000"
-  '';
-}
modifiednix/rsjsonnet.nixdiffbeforeafterboth
--- a/nix/rsjsonnet.nix
+++ b/nix/rsjsonnet.nix
@@ -5,16 +5,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "rsjsonnet";
-  version = "0.1.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "eduardosm";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-C6hZYGllKrKKMwMwss6PK2UD5Zb7bk2v8DrGpWnwP/A=";
+    hash = "sha256-Oas/fll5YerHAMI91fTEQqe6praYh4Ro8idsdvzldpA=";
   };
 
-  cargoHash = "sha256-TsUN9oUu6S1l9oTaR6nET1ZdRvMrR29bkP3VEDre8aE=";
+  cargoHash = "sha256-jH2BOvD0Iss34hODhLFHKx5pGMVtkZir7E1bYwjSa8E=";
 
   nativeBuildInputs = [makeWrapper];
 
modifiednix/sjsonnet.nixdiffbeforeafterboth
--- a/nix/sjsonnet.nix
+++ b/nix/sjsonnet.nix
@@ -5,17 +5,17 @@
 {
   stdenv,
   fetchurl,
-  jdk21_headless,
+  jdk25_headless,
   makeWrapper,
-  java ? jdk21_headless,
+  java ? jdk25_headless,
 }:
 stdenv.mkDerivation rec {
   pname = "sjsonnet";
-  version = "0.4.10";
+  version = "0.6.0";
 
   src = fetchurl {
     url = "https://github.com/databricks/${pname}/releases/download/${version}/${pname}-${version}.jar";
-    hash = "sha256-zKlmh+jXm23x78CKwna8fGHNqziWuPipSbWTPUCADrY=";
+    hash = "sha256-HQovfF/hX664apg9Pl9SdrK03b8rmZ9IjHpf7uNY8FM=";
   };
 
   unpackPhase = "true";