From bd8890563ef64bbb96baf5cffd727e81d90226b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophane=20Hufschmitt?= Date: Wed, 26 Jun 2024 15:29:05 +0200 Subject: [PATCH] Flatten the Nix strings on the fly Reduces the size of the generated json by ~300%, and causes a ~1.6x speedup in the Nickel evaluation time --- lib/nix-interop/derivation.ncl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/nix-interop/derivation.ncl b/lib/nix-interop/derivation.ncl index 5ff6978..d9b1717 100644 --- a/lib/nix-interop/derivation.ncl +++ b/lib/nix-interop/derivation.ncl @@ -168,7 +168,12 @@ in mk_nix_string [value] else let { fragments, .. } = std.contract.apply NixSymbolicString label value in - mk_nix_string fragments, + mk_nix_string + ( + std.array.flat_map + (fun elt => elt.fragments) + fragments + ), NixDerivation | doc m%"