git.delta.rocks / jrsonnet / refs/commits / 30b370ee222a

difftreelog

fix off-by-one in std.range

Yaroslav Bolyukin2022-11-20parent: #f7dfa48.patch.diff
in: master

7 files changed

modifiedcrates/jrsonnet-evaluator/src/val.rsdiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/src/val.rs
+++ b/crates/jrsonnet-evaluator/src/val.rs
@@ -347,7 +347,7 @@
 			}
 			Self::Range(a, b) => {
 				let mut out = Vec::with_capacity(self.len());
-				for i in *a..*b {
+				for i in *a..=*b {
 					out.push(Val::Num(f64::from(i)));
 				}
 				Cc::new(out)
modifiedflake.nixdiffbeforeafterboth
--- a/flake.nix
+++ b/flake.nix
@@ -17,13 +17,29 @@
         });
       in
       rec {
+        packages = rec {
+          go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix { };
+          sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix { };
+          jsonnet = pkgs.callPackage ./nix/jsonnet.nix { };
+          # I didn't managed to build it, and nixpkgs version is marked as broken
+          # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { };
+          jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {
+            rustPlatform = pkgs.makeRustPlatform {
+              rustc = rust;
+              cargo = rust;
+            };
+          };
+
+          benchmarks = pkgs.callPackage ./nix/benchmarks.nix {
+            inherit go-jsonnet sjsonnet jsonnet jrsonnet;
+          };
+        };
         devShell = pkgs.mkShell {
           nativeBuildInputs = with pkgs;[
             rust
             cargo-edit
             lld
             hyperfine
-            go-jsonnet
             valgrind
           ];
         };
addednix/benchmarks.nixdiffbeforeafterboth
--- /dev/null
+++ b/nix/benchmarks.nix
@@ -0,0 +1,9 @@
+{ stdenv, jrsonnet, go-jsonnet, sjsonnet, jsonnet, hyperfine }:
+
+stdenv.mkDerivation {
+  name = "benchmarks";
+  __impure = true;
+  unpackPhase = "true";
+
+  installPhase = "touch $out";
+}
addednix/go-jsonnet.nixdiffbeforeafterboth
--- /dev/null
+++ b/nix/go-jsonnet.nix
@@ -0,0 +1,24 @@
+{ lib, buildGo119Module, fetchFromGitHub }:
+
+buildGo119Module rec {
+  pname = "go-jsonnet";
+  # Latest release is broken: https://github.com/google/go-jsonnet/issues/653
+  version = "b4633b66f85e069b105b1ff076d178e4354941bc";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "go-jsonnet";
+    rev = "${version}";
+    hash = "sha256-J+bGdbYo2Ch3ORYD57yJA4jiPiS8IYASZ6kJHhyaqeU=";
+  };
+
+  vendorHash = "sha256-j1fTOUpLx34TgzW94A/BctLrg9XoTtb3cBizhVJoEEI=";
+
+  postInstall = ''
+    mv $out/bin/jsonnet $out/bin/go-jsonnet
+  '';
+
+  doCheck = false;
+
+  subPackages = [ "cmd/jsonnet" ];
+}
addednix/jrsonnet.nixdiffbeforeafterboth
--- /dev/null
+++ b/nix/jrsonnet.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+let
+  jsonnet = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "google";
+    repo = "jsonnet";
+    hash = "sha256-q1MNdbyrx4vvN5woe0o90pPqaNtsZjI5RQ7KJt7rOpU=";
+  };
+in
+
+rustPlatform.buildRustPackage rec {
+  pname = "jrsonnet";
+  version = "git";
+
+  src = ./..;
+
+  cargoTestFlags = [ "--package=jrsonnet" ];
+  cargoBuildFlags = [ "--package=jrsonnet" ];
+
+  cargoLock = {
+    lockFile = ../Cargo.lock;
+  };
+}
addednix/jsonnet.nixdiffbeforeafterboth
--- /dev/null
+++ b/nix/jsonnet.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, jekyll, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "jsonnet";
+  version = "0.19.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "google";
+    repo = "jsonnet";
+    hash = "sha256-q1MNdbyrx4vvN5woe0o90pPqaNtsZjI5RQ7KJt7rOpU=";
+  };
+
+  makeFlags = [
+    "jsonnet"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp jsonnet $out/bin/jsonnet
+  '';
+}
addednix/sjsonnet.nixdiffbeforeafterboth

no changes