From b6c7886761f778a3f458b33a98bed5ace747c53c Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Sun, 08 Feb 2026 23:46:40 +0000 Subject: [PATCH] chore: update other impls for benchmarking --- --- a/flake.nix +++ b/flake.nix @@ -45,7 +45,7 @@ jsonnetImpls = { go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix { }; sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix { }; - jsonnet = pkgs.callPackage ./nix/jsonnet.nix { }; + cpp-jsonnet = pkgs.callPackage ./nix/cpp-jsonnet.nix { }; # I didn't managed to build it, and nixpkgs version is marked as broken # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { }; rsjsonnet = pkgs.callPackage ./nix/rsjsonnet.nix { }; @@ -55,11 +55,7 @@ default = jrsonnet; jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix { - inherit craneLib; - }; - jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix { inherit craneLib; - withNightlyFeatures = true; }; jrsonnet-experimental = pkgs.callPackage ./nix/jrsonnet.nix { inherit craneLib; @@ -77,7 +73,7 @@ inherit (config.legacyPackages.jsonnetImpls) go-jsonnet sjsonnet - jsonnet + cpp-jsonnet rsjsonnet ; jrsonnetVariants = [ @@ -91,7 +87,7 @@ inherit (config.legacyPackages.jsonnetImpls) go-jsonnet sjsonnet - jsonnet + cpp-jsonnet rsjsonnet ; quick = true; @@ -106,7 +102,7 @@ inherit (config.legacyPackages.jsonnetImpls) go-jsonnet sjsonnet - jsonnet + cpp-jsonnet rsjsonnet ; jrsonnetVariants = [ @@ -115,8 +111,8 @@ name = "current"; } { - drv = jrsonnet-nightly.override { forBenchmarks = true; }; - name = "current-nightly"; + drv = jrsonnet-experimental.override { forBenchmarks = true; }; + name = "current-experimental"; } { drv = jrsonnet-release.override { forBenchmarks = true; }; @@ -128,7 +124,7 @@ inherit (config.legacyPackages.jsonnetImpls) go-jsonnet sjsonnet - jsonnet + cpp-jsonnet rsjsonnet ; quick = true; @@ -138,8 +134,8 @@ name = "current"; } { - drv = jrsonnet-nightly.override { forBenchmarks = true; }; - name = "current-nightly"; + drv = jrsonnet-experimental.override { forBenchmarks = true; }; + name = "current-experimental"; } { drv = jrsonnet-release.override { forBenchmarks = true; }; --- 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 --- /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; }; +} --- 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" ]; } --- 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"]; --- 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]; --- 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" - ''; -} --- 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]; --- 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"; -- gitstuff