git.delta.rocks / jrsonnet / refs/commits / 3ab5bdb7f60f

difftreelog

ci more realworld benchmarks

yvoquykvYaroslav Bolyukin2026-05-07parent: #97dec27.patch.diff
in: master

12 files changed

modifiedflake.nixdiffbeforeafterboth
218 in218 in
219 {219 {
220 legacyPackages = {220 legacyPackages = {
221 fetchJrq = pkgs.callPackage ./nix/fetch-jrq.nix {
222 inherit (self'.packages) jrsonnet;
223 };
221 release = optionalAttrs pkgs.stdenv.hostPlatform.isLinux (224 release = optionalAttrs pkgs.stdenv.hostPlatform.isLinux (
222 {225 {
223 jrsonnet-linux-glibc = self'.packages.jrsonnet;226 jrsonnet-linux-glibc = self'.packages.jrsonnet;
254 );257 );
255 benchmarks = optionalAttrs (system == "x86_64-linux" || system == "aarch64-linux") {258 benchmarks = optionalAttrs (system == "x86_64-linux" || system == "aarch64-linux") {
256 default = pkgs.callPackage ./nix/benchmarks.nix {259 default = pkgs.callPackage ./nix/benchmarks.nix {
260 inherit (config.legacyPackages) fetchJrq;
257 inherit (config.legacyPackages.jsonnetImpls)261 inherit (config.legacyPackages.jsonnetImpls)
258 go-jsonnet262 go-jsonnet
259 sjsonnet263 sjsonnet
268 ];272 ];
269 };273 };
270 quick = pkgs.callPackage ./nix/benchmarks.nix {274 quick = pkgs.callPackage ./nix/benchmarks.nix {
275 inherit (config.legacyPackages) fetchJrq;
271 inherit (config.legacyPackages.jsonnetImpls)276 inherit (config.legacyPackages.jsonnetImpls)
272 go-jsonnet277 go-jsonnet
273 sjsonnet278 sjsonnet
283 ];288 ];
284 };289 };
285 against-release = pkgs.callPackage ./nix/benchmarks.nix {290 against-release = pkgs.callPackage ./nix/benchmarks.nix {
291 inherit (config.legacyPackages) fetchJrq;
286 inherit (config.legacyPackages.jsonnetImpls)292 inherit (config.legacyPackages.jsonnetImpls)
287 go-jsonnet293 go-jsonnet
288 sjsonnet294 sjsonnet
305 ];311 ];
306 };312 };
307 quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {313 quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {
314 inherit (config.legacyPackages) fetchJrq;
308 inherit (config.legacyPackages.jsonnetImpls)315 inherit (config.legacyPackages.jsonnetImpls)
309 go-jsonnet316 go-jsonnet
310 sjsonnet317 sjsonnet
modifiednix/benchmarks.nixdiffbeforeafterboth
1{1{
2 lib,2 lib,
3 runCommand,3 runCommand,
4 jsonnet-bundler,
5 cacert,
6 stdenv,4 stdenv,
7 fetchFromGitHub,5 fetchFromGitHub,
6 fetchJrq,
8 go-jsonnet,7 go-jsonnet,
9 sjsonnet,8 sjsonnet,
10 cpp-jsonnet,9 cpp-jsonnet,
23 rev = "bc305df3fe587960f7635f0185571500e5988475";22 rev = "bc305df3fe587960f7635f0185571500e5988475";
24 hash = "sha256-4EKB1b2o4/qtYQ+nqbbs621OJrtjApsAWEBcw5EjrYc=";23 hash = "sha256-4EKB1b2o4/qtYQ+nqbbs621OJrtjApsAWEBcw5EjrYc=";
25 };24 };
26 kubePrometheusBench =25 realworldVendor = fetchJrq {
27 let
28 src = fetchFromGitHub {
29 owner = "prometheus-operator";26 name = "realworld-vendor";
30 repo = "kube-prometheus";27 lockfile = ../tests/realworld/jsonnetfile.lock.json;
31 rev = "d3889807798d1697ea0691f10caf1b6a1997a8bd";
32 hash = "sha256-TeYWHzoZAmDp2PzT7EH8XRUcvb3tR8Qfxel7o2QBvIM=";28 vendorHash = "sha256-6tXi6bRw77YKB17PhSpJnVYQcsGOvB8sgjKIrFtrwfc=";
33 };29 };
34 in30 realworldBench = runCommand "realworld-bench" { } ''
35 runCommand "kube-prometheus-vendor"31 mkdir -p $out
36 {32 cp ${../tests/realworld}/*.jsonnet ${../tests/realworld}/*.libsonnet $out/
37 outputHash = "sha256-AGc0dHlD/Ld7I5b1+gOotzJkYrn+bB1VjISdD5NITtw=";33 cp -r ${realworldVendor} $out/vendor
38 outputHashMode = "recursive";34 '';
39 buildInputs = [ cacert ];
40 }
41 ''
42 mkdir -p $out
43 cp -r ${src}/* $out/
44 cd $out
45 chmod u+w jsonnetfile.lock.json
46 mkdir vendor
47 ${jsonnet-bundler}/bin/jb install
48 '';
4935
50 # Removes outsiders from the output36 # Removes outsiders from the output
51 # Useful when comparing performance of different jrsonnet releases37 # Useful when comparing performance of different jrsonnet releases
77 skipScala ? "",63 skipScala ? "",
78 skipCpp ? "",64 skipCpp ? "",
79 skipGo ? "",65 skipGo ? "",
80 vendor ? "",66 jpaths ? [ ],
81 }:67 }:
68 let
69 jpathArgs = concatMapStrings (p: " -J ${p}") jpaths;
70 in
82 ''71 ''
83 echo >> $out72 echo >> $out
84 echo "=== ${name}" >> $out73 echo "=== ${name}" >> $out
85 echo >> $out74 echo >> $out
86 ${optionalString (skipRustAlternative != "") ''75 ${optionalString (skipRustAlternative != "") ''
87 echo "> Note: No results for Rust (alternative), ${skipRustAlternative}" >> $out76 echo "> Note: No results for Rust (alternative), ${skipRustAlternative}" >> $out
88 echo >> $out77 echo >> $out
89 ''}78 ''}
90 ${optionalString (skipGo != "") ''79 ${optionalString (skipGo != "") ''
91 echo "> Note: No results for Go, ${skipGo}" >> $out80 echo "> Note: No results for Go, ${skipGo}" >> $out
92 echo >> $out81 echo >> $out
93 ''}82 ''}
94 ${optionalString (skipScala != "") ''83 ${optionalString (skipScala != "") ''
95 echo "> Note: No results for Scala (native)/Scala (GraalVM), ${skipScala}" >> $out84 echo "> Note: No results for Scala (native)/Scala (GraalVM), ${skipScala}" >> $out
96 echo >> $out85 echo >> $out
97 ''}86 ''}
98 ${optionalString (skipCpp != "") ''87 ${optionalString (skipCpp != "") ''
99 echo "> Note: No results for C++, ${skipCpp}" >> $out88 echo "> Note: No results for C++, ${skipCpp}" >> $out
100 echo >> $out89 echo >> $out
101 ''}90 ''}
102 ${optionalString (!omitSource) ''91 ${optionalString (!omitSource) ''
103 echo ".Source" >> $out92 echo ".Source" >> $out
104 echo "[%collapsible]" >> $out93 echo "[%collapsible]" >> $out
105 echo "====" >> $out94 echo "====" >> $out
106 echo "[source,jsonnet]" >> $out95 echo "[source,jsonnet]" >> $out
107 echo "----" >> $out96 echo "----" >> $out
108 ${optionalString pathIsGenerator "echo \"// Generator source\" >> $out"}97 ${optionalString pathIsGenerator "echo \"// Generator source\" >> $out"}
109 cat ${path} >> $out98 cat ${path} >> $out
110 echo >> $out99 echo >> $out
111 echo "----" >> $out100 echo "----" >> $out
112 echo "====" >> $out101 echo "====" >> $out
113 echo >> $out102 echo >> $out
114 ''}103 ''}
115 path=${path}104 path=${path}
116 ${optionalString pathIsGenerator ''105 ${optionalString pathIsGenerator ''
117 go-jsonnet $path > generated.jsonnet106 go-jsonnet $path > generated.jsonnet
118 path=generated.jsonnet107 path=generated.jsonnet
119 ''}108 ''}
120 hyperfine -N -w4 -m20 --output=pipe --style=basic --export-asciidoc result.adoc \109 hyperfine -N -w4 -m20 --output=pipe --style=basic --export-asciidoc result.adoc \
121 ${110 ${
122 concatStringsSep " " (111 concatStringsSep " " (
123 forEach jrsonnetVariants (112 forEach jrsonnetVariants (
124 variant:113 variant:
125 "\"${variant.drv}/bin/jrsonnet $path${optionalString (vendor != "") " -J${vendor}"}\" -n \"Rust${114 "\"${variant.drv}/bin/jrsonnet $path${jpathArgs}\" -n \"Rust${
126 if variant.name != "" then " (${variant.name})" else ""115 if variant.name != "" then " (${variant.name})" else ""
127 }\""116 }\""
128 )117 )
129 )118 )
130 } \119 } \
131 ${120 ${
132 optionalString (skipRustAlternative == "")121 optionalString (skipRustAlternative == "")
133 "\"rsjsonnet $path${122 "\"rsjsonnet $path${jpathArgs}\" -n \"Rust (alternative, rsjsonnet)\""
134 optionalString (vendor != "") " -J ${vendor}"
135 }\" -n \"Rust (alternative, rsjsonnet)\""123 } \
136 } \124 ${
137 ${125 optionalString (skipGo == "")
138 optionalString (skipGo == "")126 "\"go-jsonnet $path${jpathArgs}\" -n \"Go\""
139 "\"go-jsonnet $path${optionalString (vendor != "") " -J ${vendor}"}\" -n \"Go\""127 } \
140 } \128 ${
141 ${129 optionalString (skipScala == "")
142 optionalString (skipScala == "")130 "\"sjsonnet-native $path${jpathArgs}\" -n \"Scala (native)\""
143 "\"sjsonnet-native $path${optionalString (vendor != "") " -J ${vendor}"}\" -n \"Scala (native)\""131 } \
144 } \132 ${
145 ${133 # My aarch64-linux machine can't run graalvm image:
146 # My aarch64-linux machine can't run graalvm image:134 # The current machine does not support all of the following CPU features that are required by the image: [FP, ASIMD, CRC32, LSE].
147 # The current machine does not support all of the following CPU features that are required by the image: [FP, ASIMD, CRC32, LSE].135 optionalString (skipScala == "" && stdenv.hostPlatform.system != "aarch64-linux")
148 optionalString (skipScala == "" && stdenv.hostPlatform.system != "aarch64-linux")136 "\"sjsonnet-graalvm $path${jpathArgs}\" -n \"Scala (GraalVM)\""
149 "\"sjsonnet-graalvm $path${optionalString (vendor != "") " -J ${vendor}"}\" -n \"Scala (GraalVM)\""137 } \
150 } \138 ${optionalString (skipCpp == "")
151 ${optionalString (skipCpp == "")139 "\"jsonnet $path${jpathArgs}\" -n \"C++\""
152 "\"jsonnet $path${optionalString (vendor != "") " -J ${vendor}"}\" -n \"C++\""140 }
153 }141 cat result.adoc >> $out
154 cat result.adoc >> $out142 '';
155 '';
156 in143 in
157 ''144 ''
158 set -oux145 set -oux
159 ulimit -s unlimited146 ulimit -s unlimited
160147
161 temp=$(mktemp -d)148 temp=$(mktemp -d)
162 cd $temp149 cd $temp
163150
164 touch $out151 touch $out
165 ${optionalString (true) ''152 ${optionalString (true) ''
166 cat ${./benchmarks.adoc} >> $out153 cat ${./benchmarks.adoc} >> $out
167 echo >> $out154 echo >> $out
168155
169 echo "CPU: $(grep 'model name' /proc/cpuinfo | head -1 | cut -d: -f2 | xargs), $(grep -c '^processor' /proc/cpuinfo) threads" >> $out156 echo "CPU: $(grep 'model name' /proc/cpuinfo | head -1 | cut -d: -f2 | xargs), $(grep -c '^processor' /proc/cpuinfo) threads" >> $out
170 echo >> $out157 echo >> $out
171158
172 echo ".Tested versions" >> $out159 echo ".Tested versions" >> $out
173 echo "[%collapsible]" >> $out160 echo "[%collapsible]" >> $out
174 echo "====" >> $out161 echo "====" >> $out
175 echo "* Go: $(go-jsonnet --version)" >> $out162 echo "* Go: $(go-jsonnet --version)" >> $out
176 echo "* C++: $(jsonnet --version)" >> $out163 echo "* C++: $(jsonnet --version)" >> $out
177 echo "* Scala (native/GraalVM): $(sjsonnet-native 2>&1 | grep -oP 'Sjsonnet \S+')" >> $out164 echo "* Scala (native/GraalVM): $(sjsonnet-native 2>&1 | grep -oP 'Sjsonnet \S+')" >> $out
178 echo "* Rust (alternative): rsjsonnet ${rsjsonnet.version} (${rsjsonnet.src.rev})" >> $out165 echo "* Rust (alternative): rsjsonnet ${rsjsonnet.version} (${rsjsonnet.src.rev})" >> $out
179 ${concatStringsSep "\n" (166 ${concatStringsSep "\n" (
180 forEach jrsonnetVariants (167 forEach jrsonnetVariants (
181 variant:168 variant:
182 "echo \"* Rust${169 "echo \"* Rust${
183 if variant.name != "" then " (${variant.name})" else ""170 if variant.name != "" then " (${variant.name})" else ""
184 }: $(${variant.drv}/bin/jrsonnet --version 2>&1)\" >> $out"171 }: $(${variant.drv}/bin/jrsonnet --version 2>&1)\" >> $out"
185 )172 )
186 )}173 )}
187 echo "====" >> $out174 echo "====" >> $out
188 echo >> $out175 echo >> $out
189 ''}176 ''}
190 echo "== Real world" >> $out177 echo "== Real world" >> $out
191 ${mkBench {178 ${mkBench {
192 name = "Graalvm CI";179 name = "Graalvm CI";
193 path = "${graalvmBench}/ci.jsonnet";180 path = "${graalvmBench}/ci.jsonnet";
194 omitSource = true;181 omitSource = true;
195 skipCpp = "takes longer than a hour";182 skipCpp = "takes longer than a hour";
196 skipGo = skipSlow;183 skipGo = skipSlow;
197 }}184 }}
198 ${mkBench {185 ${mkBench {
199 name = "Kube-prometheus manifests";186 name = "Loki manifests";
187 path = "${realworldBench}/entry-loki.jsonnet";
188 jpaths = [ "${realworldBench}/vendor" ];
189 skipCpp = "too slow, takes hours, skews results";
190 skipGo = skipSlow;
191 }}
192 ${mkBench {
193 name = "Mimir manifests";
200 vendor = "${kubePrometheusBench}/vendor";194 path = "${realworldBench}/entry-mimir.jsonnet";
195 jpaths = [ "${realworldBench}/vendor" ];
196 skipCpp = "too slow, takes hours, skews results";
197 skipGo = skipSlow;
198 }}
199 ${mkBench {
200 name = "Tempo manifests";
201 path = "${realworldBench}/entry-tempo.jsonnet";
202 jpaths = [ "${realworldBench}/vendor" ];
201 path = "${kubePrometheusBench}/example.jsonnet";203 skipCpp = "too slow, takes hours, skews results";
204 skipGo = skipSlow;
205 }}
206 ${mkBench {
207 name = "GitLab runbooks dashboards";
208 path = "${realworldBench}/entry-gitlab-runbooks.jsonnet";
202 omitSource = true;209 jpaths = [
210 "${realworldBench}/vendor"
211 "${realworldBench}/vendor/runbooks/libsonnet"
212 "${realworldBench}/vendor/runbooks/dashboards"
213 "${realworldBench}/vendor/runbooks/services"
214 "${realworldBench}/vendor/runbooks/metrics-catalog"
215 ];
203 skipCpp = "too slow, takes hours, skews results";216 skipCpp = "too slow, takes hours, skews results";
204 skipGo = skipSlow;217 skipGo = skipSlow;
205 }}218 }}
206219
207 echo >> $out220 echo >> $out
208 echo "== Benchmarks from C++ jsonnet (/perf_tests)" >> $out221 echo "== Benchmarks from C++ jsonnet (/perf_tests)" >> $out
209 ${mkBench {222 ${mkBench {
210 name = "Large string join";223 name = "Large string join";
211 path = "${jsonnetBench}/perf_tests/large_string_join.jsonnet";224 path = "${jsonnetBench}/perf_tests/large_string_join.jsonnet";
212 }}225 }}
213 ${mkBench {226 ${mkBench {
214 name = "Large string template";227 name = "Large string template";
215 omitSource = true;228 omitSource = true;
216 path = "${jsonnetBench}/perf_tests/large_string_template.jsonnet";229 path = "${jsonnetBench}/perf_tests/large_string_template.jsonnet";
217 skipGo = "fails with os stack size exhausion";230 skipGo = "fails with os stack size exhausion";
218 skipCpp = "too slow, takes hours, skews results";231 skipCpp = "too slow, takes hours, skews results";
219 }}232 }}
220 ${mkBench {233 ${mkBench {
221 name = "Realistic 1";234 name = "Realistic 1";
222 path = "${jsonnetBench}/perf_tests/realistic1.jsonnet";235 path = "${jsonnetBench}/perf_tests/realistic1.jsonnet";
223 skipGo = skipSlow;236 skipGo = skipSlow;
224 skipCpp = "too slow, takes hours, skews results";237 skipCpp = "too slow, takes hours, skews results";
225 }}238 }}
226 ${mkBench {239 ${mkBench {
227 name = "Realistic 2";240 name = "Realistic 2";
228 path = "${jsonnetBench}/perf_tests/realistic2.jsonnet";241 path = "${jsonnetBench}/perf_tests/realistic2.jsonnet";
229 skipGo = skipSlow;242 skipGo = skipSlow;
230 skipCpp = "too slow, takes hours, skews results";243 skipCpp = "too slow, takes hours, skews results";
231 }}244 }}
232245
233 echo >> $out246 echo >> $out
234 echo "== Benchmarks from C++ jsonnet (/benchmarks)" >> $out247 echo "== Benchmarks from C++ jsonnet (/benchmarks)" >> $out
235 ${mkBench {248 ${mkBench {
236 name = "Tail call";249 name = "Tail call";
237 path = "${jsonnetBench}/benchmarks/bench.01.jsonnet";250 path = "${jsonnetBench}/benchmarks/bench.01.jsonnet";
238 }}251 }}
239 ${mkBench {252 ${mkBench {
240 name = "Inheritance recursion";253 name = "Inheritance recursion";
241 path = "${jsonnetBench}/benchmarks/bench.02.jsonnet";254 path = "${jsonnetBench}/benchmarks/bench.02.jsonnet";
242 skipCpp = skipSlow;255 skipCpp = skipSlow;
243 skipGo = skipSlow;256 skipGo = skipSlow;
244 }}257 }}
245 ${mkBench {258 ${mkBench {
246 name = "Simple recursive call";259 name = "Simple recursive call";
247 path = "${jsonnetBench}/benchmarks/bench.03.jsonnet";260 path = "${jsonnetBench}/benchmarks/bench.03.jsonnet";
248 skipGo = skipSlow;261 skipGo = skipSlow;
249 }}262 }}
250 ${mkBench {263 ${mkBench {
251 name = "Foldl string concat";264 name = "Foldl string concat";
252 path = "${jsonnetBench}/benchmarks/bench.04.jsonnet";265 path = "${jsonnetBench}/benchmarks/bench.04.jsonnet";
253 skipCpp = skipSlow;266 skipCpp = skipSlow;
254 }}267 }}
255 ${mkBench {268 ${mkBench {
256 name = "Array sorts";269 name = "Array sorts";
257 path = "${jsonnetBench}/benchmarks/bench.06.jsonnet";270 path = "${jsonnetBench}/benchmarks/bench.06.jsonnet";
258 skipCpp = skipSlow;271 skipCpp = skipSlow;
259 }}272 }}
260 ${mkBench {273 ${mkBench {
261 name = "Lazy array";274 name = "Lazy array";
262 path = "${jsonnetBench}/benchmarks/bench.07.jsonnet";275 path = "${jsonnetBench}/benchmarks/bench.07.jsonnet";
263 skipGo = skipSlow;276 skipGo = skipSlow;
264 }}277 }}
265 ${mkBench {278 ${mkBench {
266 name = "Inheritance function recursion";279 name = "Inheritance function recursion";
267 path = "${jsonnetBench}/benchmarks/bench.08.jsonnet";280 path = "${jsonnetBench}/benchmarks/bench.08.jsonnet";
268 skipCpp = skipSlow;281 skipCpp = skipSlow;
269 }}282 }}
270 ${mkBench {283 ${mkBench {
271 name = "String strips";284 name = "String strips";
272 path = "${jsonnetBench}/benchmarks/bench.09.jsonnet";285 path = "${jsonnetBench}/benchmarks/bench.09.jsonnet";
273 skipCpp = "too slow, takes hours, skews results";286 skipCpp = "too slow, takes hours, skews results";
274 }}287 }}
275 ${mkBench {288 ${mkBench {
276 name = "Big object";289 name = "Big object";
277 path = "${jsonnetBench}/benchmarks/gen_big_object.jsonnet";290 path = "${jsonnetBench}/benchmarks/gen_big_object.jsonnet";
278 pathIsGenerator = true;291 pathIsGenerator = true;
279 }}292 }}
280293
281 echo >> $out294 echo >> $out
282 echo "== Benchmarks from Go jsonnet (builtins)" >> $out295 echo "== Benchmarks from Go jsonnet (builtins)" >> $out
283 ${mkBench {296 ${mkBench {
284 name = "std.base64";297 name = "std.base64";
285 path = "${goJsonnetBench}/base64.jsonnet";298 path = "${goJsonnetBench}/base64.jsonnet";
286 skipRustAlternative = skipSlow;299 skipRustAlternative = skipSlow;
287 skipCpp = "too slow, takes hours, skews results";300 skipCpp = "too slow, takes hours, skews results";
288 }}301 }}
289 ${mkBench {302 ${mkBench {
290 name = "std.base64Decode";303 name = "std.base64Decode";
291 path = "${goJsonnetBench}/base64Decode.jsonnet";304 path = "${goJsonnetBench}/base64Decode.jsonnet";
292 skipRustAlternative = skipSlow;305 skipRustAlternative = skipSlow;
293 skipCpp = skipSlow;306 skipCpp = skipSlow;
294 }}307 }}
295 ${mkBench {308 ${mkBench {
296 name = "std.base64DecodeBytes";309 name = "std.base64DecodeBytes";
297 path = "${goJsonnetBench}/base64DecodeBytes.jsonnet";310 path = "${goJsonnetBench}/base64DecodeBytes.jsonnet";
298 skipRustAlternative = skipSlow;311 skipRustAlternative = skipSlow;
299 skipCpp = skipSlow;312 skipCpp = skipSlow;
300 skipGo = skipSlow;313 skipGo = skipSlow;
301 }}314 }}
302 ${mkBench {315 ${mkBench {
303 name = "std.base64 (byte array)";316 name = "std.base64 (byte array)";
304 path = "${goJsonnetBench}/base64_byte_array.jsonnet";317 path = "${goJsonnetBench}/base64_byte_array.jsonnet";
305 skipRustAlternative = skipSlow;318 skipRustAlternative = skipSlow;
306 skipCpp = skipSlow;319 skipCpp = skipSlow;
307 skipGo = skipSlow;320 skipGo = skipSlow;
308 }}321 }}
309 ${mkBench {322 ${mkBench {
310 name = "std.foldl";323 name = "std.foldl";
311 path = "${goJsonnetBench}/foldl.jsonnet";324 path = "${goJsonnetBench}/foldl.jsonnet";
312 }}325 }}
313 ${mkBench {326 ${mkBench {
314 name = "std.manifestJsonEx";327 name = "std.manifestJsonEx";
315 path = "${goJsonnetBench}/manifestJsonEx.jsonnet";328 path = "${goJsonnetBench}/manifestJsonEx.jsonnet";
316 skipCpp = skipSlow;329 skipCpp = skipSlow;
317 }}330 }}
318 ${mkBench {331 ${mkBench {
319 name = "std.manifestTomlEx";332 name = "std.manifestTomlEx";
320 path = "${goJsonnetBench}/manifestTomlEx.jsonnet";333 path = "${goJsonnetBench}/manifestTomlEx.jsonnet";
321 skipCpp = skipSlow;334 skipCpp = skipSlow;
322 }}335 }}
323 ${mkBench {336 ${mkBench {
324 name = "std.parseInt";337 name = "std.parseInt";
325 path = "${goJsonnetBench}/parseInt.jsonnet";338 path = "${goJsonnetBench}/parseInt.jsonnet";
326 skipCpp = skipSlow;339 skipCpp = skipSlow;
327 }}340 }}
328 ${mkBench {341 ${mkBench {
329 name = "std.reverse";342 name = "std.reverse";
330 path = "${goJsonnetBench}/reverse.jsonnet";343 path = "${goJsonnetBench}/reverse.jsonnet";
331 skipCpp = skipSlow;344 skipCpp = skipSlow;
332 skipGo = skipSlow;345 skipGo = skipSlow;
333 }}346 }}
334 ${mkBench {347 ${mkBench {
335 name = "std.substr";348 name = "std.substr";
336 path = "${goJsonnetBench}/substr.jsonnet";349 path = "${goJsonnetBench}/substr.jsonnet";
337 }}350 }}
338 ${mkBench {351 ${mkBench {
339 name = "Comparsion for array";352 name = "Comparsion for array";
340 path = "${goJsonnetBench}/comparison.jsonnet";353 path = "${goJsonnetBench}/comparison.jsonnet";
341 skipCpp = "too slow, takes hours, skews results";354 skipCpp = "too slow, takes hours, skews results";
342 }}355 }}
343 ${mkBench {356 ${mkBench {
344 name = "Comparsion for primitives";357 name = "Comparsion for primitives";
345 path = "${goJsonnetBench}/comparison2.jsonnet";358 path = "${goJsonnetBench}/comparison2.jsonnet";
346 skipRustAlternative = skipSlow;359 skipRustAlternative = skipSlow;
347 skipCpp = "can't run: uses up to 192GB of RAM";360 skipCpp = "can't run: uses up to 192GB of RAM";
348 skipGo = skipSlow;361 skipGo = skipSlow;
349 }}362 }}
350 '';363 '';
351}364}
352365
addednix/fetch-jrq.nixdiffbeforeafterboth

no changes

addedtests/realworld/.gitignorediffbeforeafterboth

no changes

addedtests/realworld/entry-gitlab-runbooks.jsonnetdiffbeforeafterboth

no changes

addedtests/realworld/entry-graalvm.jsonnetdiffbeforeafterboth

no changes

addedtests/realworld/entry-loki.jsonnetdiffbeforeafterboth

no changes

addedtests/realworld/entry-mimir.jsonnetdiffbeforeafterboth

no changes

addedtests/realworld/entry-tempo.jsonnetdiffbeforeafterboth

no changes

addedtests/realworld/jsonnetfile.jsondiffbeforeafterboth

no changes

addedtests/realworld/jsonnetfile.lock.jsondiffbeforeafterboth

no changes

addedtests/realworld/k.libsonnetdiffbeforeafterboth

no changes