diff --git a/README.md b/README.md
index 60116ef2..d55e80e1 100644
--- a/README.md
+++ b/README.md
@@ -50,7 +50,7 @@ The measured values are:
All values are presented as: `median`±`median absolute deviation`.
-UPDATE: 2022-05-30
+UPDATE: 2022-09-23
# Test Cases
@@ -68,98 +68,98 @@ Supports two mode:
| Language | Time, s | Memory, MiB | Energy, J |
| :----------------------- | -----------------------: | ------------------------------------------------: | -------------------------: |
-| Racket (Syntax Objects) | 1.294±0.001 | 104.83±00.98 + 0.00±00.00 | 47.02±00.02 |
-| C++/g++ | 1.317±0.000 | 1.65±00.00 + 0.00±00.00 | 52.77±00.08 |
-| Rust | 1.589±0.001 | 2.12±00.03 + 0.00±00.00 | 63.57±00.08 |
-| D/ldc2 | 1.655±0.000 | 3.21±00.03 + 0.00±00.00 | 66.25±00.07 |
-| Java | 1.655±0.001 | 37.33±00.46 + 0.90±00.37 | 64.58±00.05 |
-| D/gdc | 1.660±0.000 | 7.49±00.02 + 0.00±00.00 | 67.55±00.71 |
-| C/clang | 1.663±0.000 | 0.69±00.03 + 0.00±00.00 | 64.54±00.06 |
-| C/gcc | 1.667±0.000 | 0.71±00.00 + 0.00±00.00 | 64.71±00.06 |
-| Kotlin/JVM | 1.677±0.006 | 40.74±00.11 + 0.42±00.16 | 65.50±00.18 |
-| C++/clang++ | 1.691±0.000 | 1.48±00.01 + 0.00±00.00 | 64.32±00.73 |
-| Zig | 1.747±0.000 | 0.70±00.00 + 0.00±00.00 | 68.20±00.38 |
-| F#/.NET Core | 1.896±0.000 | 37.86±00.09 + 0.54±00.00 | 76.35±00.41 |
-| C#/.NET Core | 1.902±0.000 | 33.85±00.29 + 0.00±00.00 | 76.27±00.19 |
-| Go | 1.904±0.000 | 2.79±00.08 + 0.00±00.00 | 72.13±00.49 |
-| OCaml | 1.912±0.000 | 2.71±00.02 + 2.30±00.03 | 85.13±00.36 |
-| Chez Scheme | 1.923±0.001 | 24.91±00.08 + 4.40±00.02 | 79.48±00.05 |
-| Nim/gcc | 1.976±0.000 | 2.02±00.02 + 0.00±00.00 | 78.82±00.74 |
-| Racket | 2.012±0.010 | 93.21±00.51 + 0.00±00.00 | 81.10±00.77 |
-| Vala/gcc | 2.090±0.001 | 4.25±00.05 + 0.00±00.00 | 77.06±00.85 |
-| Nim/clang | 2.100±0.002 | 2.43±00.05 + 0.00±00.00 | 81.52±00.15 |
-| Go/gccgo | 2.172±0.000 | 24.55±00.10 + 0.00±00.00 | 86.43±00.27 |
-| Vala/clang | 2.262±0.000 | 4.26±00.07 + 0.00±00.00 | 82.35±00.19 |
-| V/gcc | 2.340±0.000 | 0.66±00.00 + 0.00±00.00 | 87.35±00.63 |
-| Crystal | 2.384±0.000 | 3.46±00.01 + 0.00±00.00 | 95.11±00.44 |
-| MLton | 2.608±0.000 | 0.80±00.03 + 1.01±00.03 | 102.87±00.28 |
-| C#/Mono | 2.685±0.001 | 24.99±00.13 + 0.00±00.00 | 107.58±00.08 |
-| V/clang | 2.967±0.019 | 0.66±00.00 + 0.00±00.00 | 115.67±00.92 |
-| Haskell (MArray) | 3.165±0.001 | 4.18±00.04 + 3.97±00.00 | 131.78±00.77 |
-| Scala | 3.222±0.023 | 66.15±00.25 + 141.06±00.32 | 133.08±00.82 |
-| D/dmd | 3.267±0.000 | 3.76±00.01 + 0.00±00.00 | 122.89±00.09 |
-| Julia | 3.565±0.001 | 208.86±00.13 + 0.99±00.03 | 134.35±00.18 |
-| Node.js | 4.016±0.002 | 37.68±00.02 + 0.85±00.08 | 161.03±00.35 |
-| Swift | 5.415±0.000 | 13.76±00.14 + 0.00±00.00 | 200.89±02.89 |
-| Lua/luajit | 6.492±0.008 | 2.41±00.04 + 0.00±00.00 | 259.77±00.54 |
-| Ruby/truffleruby | 7.352±0.037 | 291.61±00.77 + 396.22±08.35 | 347.59±02.47 |
-| Ruby/truffleruby (--jvm) | 8.767±0.078 | 376.87±16.30 + 458.33±29.58 | 430.85±06.14 |
-| Python/pypy | 12.207±0.065 | 65.14±00.02 + 29.65±00.03 | 512.74±00.94 |
-| Haskell | 13.368±0.019 | 4.31±00.04 + 3.97±00.00 | 595.87±04.15 |
-| Ruby (--jit) | 39.635±0.156 | 270.95±00.02 + 0.02±00.00 | 1618.92±08.59 |
-| Elixir | 43.913±0.156 | 70.50±00.34 + 0.00±00.00 | 2011.98±10.43 |
-| Lua | 50.617±0.073 | 2.30±00.02 + 0.00±00.00 | 1941.25±23.16 |
-| Ruby/jruby | 78.965±0.799 | 183.82±00.75 + 83.58±00.83 | 3500.74±39.03 |
-| Ruby | 85.918±0.486 | 14.41±00.03 + 0.00±00.00 | 3615.58±32.78 |
-| Python | 185.860±1.077 | 10.63±00.00 + 0.00±00.00 | 7415.67±57.06 |
-| Tcl (FP) | 239.705±1.971 | 4.56±00.03 + 0.00±00.00 | 10232.99±120.09 |
-| Perl | 324.279±3.019 | 7.06±00.05 + 0.00±00.00 | 12967.03±121.22 |
-| Tcl (OOP) | 492.812±2.162 | 4.55±00.08 + 0.00±00.00 | 20801.83±165.07 |
+| Racket (Syntax Objects) | 1.293±0.001 | 111.65±00.71 + 0.00±00.00 | 46.98±00.02 |
+| C++/g++ | 1.317±0.000 | 1.82±00.02 + 0.00±00.00 | 52.72±00.17 |
+| Rust | 1.543±0.000 | 0.93±00.01 + 0.00±00.00 | 61.72±00.13 |
+| Java | 1.653±0.003 | 38.82±00.08 + 0.52±00.07 | 64.26±00.17 |
+| D/ldc2 | 1.659±0.002 | 3.01±00.02 + 0.00±00.00 | 66.27±00.17 |
+| D/gdc | 1.661±0.000 | 6.55±00.04 + 0.00±00.00 | 68.36±00.15 |
+| C/gcc | 1.667±0.000 | 0.88±00.01 + 0.00±00.00 | 64.53±00.04 |
+| C/clang | 1.670±0.001 | 0.89±00.01 + 0.00±00.00 | 64.75±00.07 |
+| Kotlin/JVM | 1.685±0.004 | 41.48±00.18 + 0.52±00.16 | 65.51±00.18 |
+| C++/clang++ | 1.738±0.000 | 1.65±00.03 + 0.00±00.00 | 67.30±00.08 |
+| Zig | 1.747±0.001 | 0.92±00.02 + 0.00±00.00 | 68.37±00.55 |
+| C#/.NET Core | 1.902±0.001 | 33.90±00.25 + 0.00±00.00 | 76.15±00.25 |
+| Go | 1.905±0.000 | 2.98±00.07 + 0.00±00.00 | 73.64±00.17 |
+| OCaml | 1.911±0.000 | 2.94±00.02 + 1.98±00.00 | 86.49±01.35 |
+| Chez Scheme | 1.922±0.001 | 24.78±00.04 + 4.44±00.04 | 79.39±00.12 |
+| F#/.NET Core | 1.947±0.000 | 37.85±00.03 + 0.56±00.00 | 77.86±00.20 |
+| Nim/gcc | 1.962±0.000 | 2.01±00.04 + 0.00±00.00 | 76.63±00.69 |
+| Racket | 1.986±0.019 | 92.88±00.44 + 0.00±00.00 | 80.21±01.03 |
+| Vala/gcc | 2.090±0.000 | 4.24±00.09 + 0.00±00.00 | 78.05±00.32 |
+| Nim/clang | 2.112±0.001 | 2.31±00.01 + 0.00±00.00 | 82.20±00.51 |
+| Go/gccgo | 2.176±0.001 | 24.42±00.04 + 0.00±00.00 | 85.13±00.93 |
+| Vala/clang | 2.266±0.000 | 4.32±00.08 + 0.00±00.00 | 84.95±00.07 |
+| V/gcc | 2.277±0.000 | 1.84±00.05 + 0.00±00.00 | 85.30±00.16 |
+| Crystal | 2.389±0.003 | 3.00±00.01 + 0.00±00.00 | 95.36±00.43 |
+| Julia | 2.594±0.010 | 224.45±00.16 + 0.82±00.05 | 101.61±00.91 |
+| MLton | 2.608±0.000 | 0.96±00.02 + 0.90±00.11 | 102.94±00.56 |
+| C#/Mono | 2.686±0.001 | 24.89±00.04 + 0.00±00.00 | 107.21±00.13 |
+| V/clang | 2.735±0.002 | 1.84±00.09 + 0.00±00.00 | 109.52±00.55 |
+| Scala | 3.230±0.009 | 67.12±00.09 + 140.81±00.29 | 133.10±00.69 |
+| D/dmd | 3.267±0.000 | 3.55±00.04 + 0.00±00.00 | 126.05±00.33 |
+| Haskell (MArray) | 3.847±0.001 | 5.87±00.03 + 4.72±00.00 | 154.08±00.43 |
+| Node.js | 4.154±0.004 | 40.49±00.05 + 2.16±00.09 | 165.56±00.43 |
+| Swift | 5.443±0.000 | 13.80±00.06 + 0.00±00.00 | 203.97±00.37 |
+| Lua/luajit | 6.484±0.015 | 2.50±00.03 + 0.00±00.00 | 258.91±00.55 |
+| Ruby/truffleruby | 7.494±0.115 | 297.28±00.54 + 325.55±13.94 | 359.91±05.75 |
+| Ruby/truffleruby (--jvm) | 8.155±0.067 | 352.85±06.71 + 467.10±19.50 | 392.34±02.92 |
+| Python/pypy | 12.188±0.033 | 64.54±00.19 + 30.13±00.10 | 508.85±01.68 |
+| Haskell | 15.028±0.010 | 3.85±00.03 + 7.19±00.04 | 679.80±08.07 |
+| Ruby (--jit) | 40.868±0.197 | 270.47±00.06 + 0.29±00.04 | 1629.77±07.26 |
+| Elixir | 43.616±0.243 | 71.01±00.79 + 0.00±00.00 | 1985.56±21.21 |
+| Lua | 50.967±0.319 | 2.30±00.02 + 0.00±00.00 | 1955.29±18.53 |
+| Ruby/jruby | 79.375±0.729 | 184.40±01.19 + 85.06±01.03 | 3537.33±31.99 |
+| Ruby | 86.488±0.104 | 13.93±00.05 + 0.00±00.00 | 3604.94±19.73 |
+| Python | 196.223±1.810 | 10.42±00.06 + 0.00±00.00 | 7843.33±119.79 |
+| Tcl (FP) | 270.436±1.400 | 3.93±00.09 + 0.00±00.00 | 11307.54±134.33 |
+| Perl | 327.444±1.656 | 6.86±00.09 + 0.00±00.00 | 13065.18±71.67 |
+| Tcl (OOP) | 523.177±2.973 | 3.94±00.07 + 0.00±00.00 | 22061.79±158.35 |
### mandel.b
[Mandel in Brainfuck](brainfuck/mandel.b)
-| Language | Time, s | Memory, MiB | Energy, J |
-| :----------------------- | -----------------------: | ------------------------------------------------: | ------------------------: |
-| C++/g++ | 10.461±0.014 | 1.65±00.00 + 2.34±00.05 | 429.24±01.97 |
-| Racket (Syntax Objects) | 14.090±0.116 | 105.24±00.45 + 72.57±00.64 | 563.20±06.84 |
-| C/gcc | 14.203±0.011 | 0.68±00.03 + 1.05±00.02 | 561.03±02.60 |
-| Kotlin/JVM | 14.337±0.030 | 40.77±00.09 + 1.00±00.14 | 580.64±03.91 |
-| V/gcc | 14.519±0.017 | 0.72±00.00 + 2.08±00.05 | 589.11±05.55 |
-| C++/clang++ | 14.656±0.009 | 1.50±00.02 + 2.09±00.02 | 588.07±01.37 |
-| Rust | 14.823±0.008 | 2.17±00.04 + 0.25±00.00 | 593.32±00.71 |
-| D/ldc2 | 14.864±0.019 | 3.20±00.03 + 0.77±00.00 | 598.33±02.87 |
-| D/gdc | 15.138±0.015 | 7.47±00.03 + 0.77±00.00 | 640.93±01.15 |
-| C/clang | 15.431±0.010 | 0.69±00.03 + 1.05±00.04 | 644.66±01.57 |
-| Zig | 16.222±0.009 | 0.70±00.00 + 1.61±00.01 | 669.85±04.37 |
-| Go | 17.065±0.259 | 3.34±00.11 + 1.26±00.00 | 674.90±08.80 |
-| Swift | 18.068±0.088 | 14.62±00.06 + 0.00±00.00 | 734.16±06.70 |
-| Java | 18.283±0.012 | 37.81±00.06 + 1.29±00.13 | 732.18±00.83 |
-| Vala/gcc | 18.498±0.004 | 4.09±00.05 + 2.04±00.02 | 694.48±01.06 |
-| C#/.NET Core | 18.529±0.008 | 34.13±00.07 + 0.83±00.01 | 751.34±04.79 |
-| Crystal | 19.010±0.215 | 3.46±00.01 + 0.38±00.02 | 778.36±08.01 |
-| Nim/clang | 19.309±0.305 | 2.43±00.04 + 0.57±00.00 | 784.15±16.13 |
-| Vala/clang | 19.913±0.003 | 4.08±00.02 + 2.05±00.06 | 770.85±00.76 |
-| Go/gccgo | 20.039±0.013 | 24.59±00.05 + 1.27±00.00 | 845.96±02.65 |
-| Nim/gcc | 21.108±0.569 | 1.95±00.01 + 0.51±00.00 | 854.87±21.62 |
-| Scala | 21.395±0.016 | 66.24±00.05 + 141.19±00.08 | 883.73±05.55 |
-| V/clang | 22.592±0.064 | 0.66±00.00 + 1.89±00.03 | 931.66±02.36 |
-| OCaml | 26.203±0.017 | 3.48±00.02 + 8.08±03.91 | 1247.53±12.44 |
-| Chez Scheme | 26.997±0.052 | 25.38±00.05 + 3.92±00.01 | 1180.81±03.40 |
-| C#/Mono | 31.357±0.018 | 25.04±00.06 + 0.83±00.00 | 1331.72±01.53 |
-| Node.js | 31.704±0.292 | 37.65±00.06 + 5.37±00.02 | 1317.45±17.77 |
-| Lua/luajit | 35.127±0.069 | 2.42±00.01 + 0.50±00.00 | 1408.43±04.07 |
-| Racket | 36.927±0.067 | 92.66±00.27 + 0.00±00.00 | 1636.94±08.74 |
-| D/dmd | 37.471±0.015 | 3.76±00.01 + 0.77±00.00 | 1377.33±08.82 |
-| F#/.NET Core | 38.358±0.052 | 37.99±00.04 + 2.08±00.00 | 1587.43±03.20 |
-| MLton | 44.833±0.049 | 1.59±00.04 + 4.11±00.00 | 1945.45±09.66 |
-| Python/pypy | 48.373±0.180 | 64.76±00.06 + 30.07±00.03 | 2068.90±24.04 |
-| Haskell (MArray) | 49.631±0.622 | 4.12±00.02 + 5.83±00.00 | 2120.11±20.32 |
-| Julia | 64.532±0.078 | 209.49±00.10 + 0.97±00.08 | 2486.31±13.12 |
-| Ruby/truffleruby (--jvm) | 78.552±1.319 | 398.37±13.36 + 440.08±26.60 | 3295.51±37.63 |
-| Ruby/truffleruby | 83.372±0.453 | 291.66±00.26 + 251.66±23.69 | 3567.05±19.14 |
-| Haskell | 186.042±2.425 | 4.34±00.04 + 29.24±00.00 | 8142.94±109.17 |
+| Language | Time, s | Memory, MiB | Energy, J |
+| :----------------------- | -----------------------: | ------------------------------------------------: | -----------------------: |
+| C++/g++ | 10.468±0.023 | 1.80±00.02 + 2.24±00.02 | 420.90±01.56 |
+| Racket (Syntax Objects) | 13.780±0.048 | 111.45±00.23 + 67.60±00.23 | 550.03±02.02 |
+| C/gcc | 14.200±0.006 | 0.88±00.03 + 0.87±00.03 | 560.07±04.35 |
+| Kotlin/JVM | 14.292±0.005 | 41.54±00.18 + 1.45±00.21 | 586.01±00.99 |
+| V/gcc | 14.450±0.014 | 2.22±00.05 + 0.77±00.00 | 577.29±00.51 |
+| Rust | 14.787±0.016 | 0.92±00.01 + 1.36±00.06 | 577.08±03.69 |
+| D/ldc2 | 14.924±0.016 | 2.94±00.01 + 0.88±00.02 | 595.92±00.62 |
+| C++/clang++ | 15.012±0.015 | 1.65±00.02 + 1.93±00.03 | 605.63±03.12 |
+| C/clang | 15.122±0.013 | 0.90±00.02 + 0.90±00.00 | 647.01±03.97 |
+| D/gdc | 15.238±0.081 | 6.56±00.03 + 1.46±00.03 | 636.13±04.29 |
+| Go | 16.157±0.020 | 3.20±00.28 + 1.27±00.00 | 630.11±03.88 |
+| Zig | 16.239±0.020 | 0.92±00.01 + 1.31±00.00 | 658.86±05.07 |
+| Java | 18.294±0.023 | 37.71±00.35 + 1.88±00.36 | 730.92±00.72 |
+| Vala/gcc | 18.477±0.005 | 4.20±00.03 + 1.77±00.04 | 691.66±00.34 |
+| C#/.NET Core | 18.540±0.014 | 34.15±00.06 + 0.83±00.01 | 740.52±01.15 |
+| Swift | 18.784±0.259 | 14.69±00.05 + 0.00±00.00 | 759.12±07.38 |
+| Go/gccgo | 19.905±0.008 | 24.46±00.03 + 1.27±00.00 | 832.05±07.20 |
+| Vala/clang | 20.240±0.005 | 4.20±00.06 + 1.73±00.08 | 783.19±00.73 |
+| Scala | 20.996±0.005 | 68.20±00.10 + 141.33±00.29 | 877.97±01.76 |
+| V/clang | 21.510±0.078 | 1.85±00.10 + 1.15±00.09 | 895.32±04.49 |
+| Crystal | 21.595±0.016 | 2.98±00.01 + 0.69±00.05 | 860.94±02.42 |
+| Nim/gcc | 22.723±0.079 | 1.98±00.02 + 0.52±00.00 | 924.02±07.74 |
+| Nim/clang | 25.539±0.346 | 2.26±00.01 + 0.57±00.00 | 1016.20±13.25 |
+| OCaml | 26.225±0.042 | 3.45±00.03 + 3.79±00.09 | 1240.48±07.92 |
+| Chez Scheme | 26.957±0.030 | 25.36±00.02 + 3.93±00.02 | 1185.16±06.29 |
+| Julia | 29.496±0.070 | 224.62±00.21 + 0.70±00.02 | 1123.15±08.96 |
+| Node.js | 29.634±1.152 | 40.57±00.07 + 5.37±00.00 | 1250.41±55.67 |
+| C#/Mono | 31.506±0.033 | 24.90±00.04 + 0.82±00.00 | 1336.77±01.87 |
+| Lua/luajit | 35.074±0.035 | 2.44±00.02 + 0.44±00.00 | 1399.61±01.60 |
+| Racket | 36.947±0.162 | 92.71±00.16 + 0.00±00.00 | 1628.73±10.79 |
+| Haskell (MArray) | 37.326±0.013 | 5.67±00.03 + 6.11±00.00 | 1513.15±08.31 |
+| D/dmd | 37.466±0.010 | 3.45±00.03 + 1.00±00.03 | 1356.90±00.40 |
+| F#/.NET Core | 38.363±0.057 | 37.86±00.05 + 2.10±00.01 | 1573.80±03.64 |
+| MLton | 44.875±0.023 | 1.30±00.33 + 4.40±00.28 | 1941.05±19.16 |
+| Python/pypy | 48.764±0.207 | 64.23±00.13 + 30.59±00.09 | 2076.08±25.96 |
+| Ruby/truffleruby (--jvm) | 80.275±0.588 | 353.40±01.09 + 500.07±40.27 | 3327.63±27.96 |
+| Ruby/truffleruby | 81.176±0.481 | 298.34±00.74 + 257.92±09.34 | 3973.50±42.02 |
+| Haskell | 186.181±0.556 | 5.58±00.06 + 30.55±00.00 | 8151.90±99.97 |
## Base64
@@ -169,45 +169,45 @@ Testing base64 encoding/decoding of the large blob into the newly allocated buff
| Language | Time, s | Memory, MiB | Energy, J |
| :------------------------ | ----------------------: | ------------------------------------------------: | ----------------------: |
-| C/clang (aklomp) | 0.100±0.001 | 2.04±00.04 + 0.00±00.00 | 4.73±00.07 |
-| C/gcc (aklomp) | 0.101±0.000 | 2.09±00.02 + 0.00±00.00 | 4.80±00.05 |
-| Rust | 0.969±0.000 | 2.58±00.03 + 0.01±00.00 | 39.56±00.22 |
-| V/clang | 0.995±0.001 | 1.91±00.02 + 0.00±00.00 | 37.66±00.14 |
-| C/clang | 0.997±0.000 | 2.01±00.04 + 0.00±00.00 | 37.14±00.36 |
-| C/gcc | 1.012±0.000 | 2.05±00.04 + 0.00±00.00 | 37.95±00.09 |
-| Nim/clang | 1.024±0.001 | 2.82±00.03 + 4.44±00.00 | 41.08±00.18 |
-| D/ldc2 | 1.074±0.003 | 3.58±00.03 + 3.58±00.00 | 45.02±00.50 |
-| Nim/gcc | 1.081±0.002 | 2.31±00.03 + 4.44±00.06 | 42.48±00.56 |
-| V/gcc | 1.092±0.000 | 1.63±00.01 + 0.44±00.04 | 42.03±00.17 |
-| Crystal | 1.154±0.002 | 3.95±00.01 + 1.17±00.02 | 51.11±00.15 |
-| Ruby (--jit) | 1.326±0.001 | 271.35±00.02 + 66.67±00.01 | 52.24±00.23 |
-| Ruby | 1.336±0.002 | 14.83±00.01 + 58.68±00.04 | 52.41±00.27 |
-| Java | 1.511±0.008 | 38.37±00.06 + 258.46±28.01 | 61.39±00.49 |
-| Scala | 1.562±0.005 | 64.37±00.18 + 315.74±04.03 | 67.26±01.06 |
-| Vala/gcc | 1.563±0.001 | 5.49±00.03 + 0.44±00.08 | 61.08±00.51 |
-| Vala/clang | 1.563±0.001 | 5.60±00.04 + 0.30±00.03 | 60.93±00.56 |
-| Kotlin/JVM | 1.635±0.007 | 40.46±00.12 + 263.10±18.51 | 69.46±01.12 |
-| C++/clang++ (libcrypto) | 1.725±0.005 | 4.46±00.05 + 0.68±00.06 | 68.58±00.43 |
-| C++/g++ (libcrypto) | 1.726±0.004 | 5.12±00.09 + 0.68±00.06 | 68.44±00.24 |
-| Perl (MIME::Base64) | 1.779±0.014 | 14.86±00.04 + 0.07±00.00 | 70.08±00.39 |
-| Go | 1.852±0.001 | 4.07±00.06 + 4.57±00.38 | 78.91±00.38 |
-| PHP | 2.015±0.022 | 17.09±00.09 + 0.00±00.00 | 81.94±00.93 |
-| Python | 2.115±0.002 | 10.41±00.06 + 0.18±00.00 | 78.44±00.28 |
-| Node.js | 2.234±0.003 | 36.96±00.03 + 39.88±00.01 | 90.04±00.67 |
-| D/gdc | 2.645±0.001 | 7.62±00.02 + 3.91±00.00 | 114.17±00.89 |
-| D/dmd | 2.736±0.001 | 4.04±00.02 + 3.36±00.00 | 118.22±00.86 |
-| Zig | 3.062±0.001 | 1.47±00.01 + 0.31±00.00 | 122.30±00.82 |
-| F#/.NET Core | 3.130±0.065 | 38.63±00.03 + 18.63±01.03 | 117.75±01.18 |
-| Python/pypy | 3.580±0.002 | 65.49±00.10 + 30.62±00.15 | 155.88±01.19 |
-| Go/gccgo | 3.716±0.007 | 25.42±00.09 + 7.60±00.21 | 167.47±00.66 |
-| C#/.NET Core | 3.748±0.081 | 34.49±00.06 + 20.71±03.36 | 137.05±01.81 |
-| Tcl | 3.993±0.005 | 5.09±00.02 + 0.16±00.00 | 160.32±00.37 |
-| C#/Mono | 4.698±0.019 | 25.75±00.07 + 18.71±00.09 | 194.78±00.66 |
-| Ruby/truffleruby (--jvm) | 5.090±0.008 | 343.44±03.17 + 242.66±37.11 | 247.93±01.44 |
-| Julia | 5.095±0.007 | 228.19±00.26 + 62.22±00.04 | 190.73±02.14 |
-| Ruby/jruby | 10.597±0.088 | 182.58±00.94 + 77.53±03.02 | 422.40±02.95 |
-| Perl (MIME::Base64::Perl) | 13.988±0.057 | 16.16±00.09 + 0.22±00.03 | 575.68±03.73 |
-| Ruby/truffleruby | 17.438±0.022 | 281.42±00.63 + 235.47±06.16 | 701.31±05.07 |
+| C/gcc (aklomp) | 0.101±0.000 | 2.10±00.02 + 0.00±00.00 | 4.83±00.05 |
+| C/clang (aklomp) | 0.101±0.000 | 2.16±00.01 + 0.00±00.00 | 4.81±00.05 |
+| Rust | 0.970±0.000 | 2.38±00.03 + 0.12±00.01 | 39.54±00.34 |
+| C/clang | 0.997±0.000 | 2.09±00.02 + 0.00±00.00 | 37.34±00.26 |
+| C/gcc | 1.010±0.000 | 2.11±00.03 + 0.00±00.00 | 37.86±00.12 |
+| D/ldc2 | 1.042±0.001 | 3.09±00.04 + 3.96±00.01 | 43.46±00.77 |
+| Nim/gcc | 1.081±0.001 | 1.63±00.05 + 5.39±00.05 | 42.90±00.19 |
+| Nim/clang | 1.094±0.001 | 1.90±00.04 + 5.29±00.03 | 43.77±00.20 |
+| V/clang | 1.160±0.007 | 2.36±00.03 + 1.29±00.15 | 47.30±00.49 |
+| Crystal | 1.181±0.002 | 3.49±00.04 + 1.45±00.01 | 52.75±00.34 |
+| V/gcc | 1.205±0.003 | 2.37±00.03 + 1.24±00.03 | 49.50±00.32 |
+| Ruby (--jit) | 1.384±0.001 | 270.92±00.07 + 67.47±00.05 | 53.89±00.29 |
+| Ruby | 1.389±0.001 | 14.63±00.02 + 58.67±00.03 | 53.74±00.10 |
+| Java | 1.520±0.012 | 39.39±00.04 + 262.48±23.42 | 62.01±00.87 |
+| Scala | 1.603±0.003 | 65.19±00.12 + 326.86±15.35 | 68.76±00.66 |
+| Kotlin/JVM | 1.635±0.002 | 42.55±00.07 + 249.61±00.86 | 69.68±00.77 |
+| Vala/gcc | 1.643±0.001 | 5.46±00.04 + 0.19±00.04 | 63.47±00.70 |
+| Vala/clang | 1.643±0.001 | 5.46±00.04 + 0.22±00.05 | 62.97±00.40 |
+| C++/clang++ (libcrypto) | 1.715±0.002 | 5.10±00.11 + 0.65±00.03 | 69.12±00.99 |
+| C++/g++ (libcrypto) | 1.715±0.004 | 5.64±00.07 + 0.66±00.03 | 69.34±00.49 |
+| Node.js | 1.743±0.006 | 40.76±00.04 + 38.86±00.02 | 70.15±00.65 |
+| Perl (MIME::Base64) | 1.791±0.000 | 14.70±00.08 + 0.16±00.03 | 70.22±00.07 |
+| Go | 1.875±0.002 | 4.22±00.05 + 3.92±00.05 | 80.99±00.49 |
+| PHP | 2.093±0.017 | 17.79±00.03 + 0.00±00.00 | 84.17±00.78 |
+| D/gdc | 2.442±0.003 | 7.52±00.07 + 3.35±00.00 | 108.08±00.52 |
+| D/dmd | 2.739±0.001 | 3.60±00.12 + 3.85±00.05 | 119.70±00.68 |
+| Python | 2.837±0.002 | 10.36±00.03 + 0.55±00.06 | 112.86±00.30 |
+| Zig | 3.067±0.002 | 1.45±00.04 + 0.00±00.00 | 122.43±00.62 |
+| F#/.NET Core | 3.202±0.052 | 38.62±00.06 + 18.68±00.71 | 120.67±01.23 |
+| Python/pypy | 3.581±0.002 | 64.67±00.11 + 31.23±00.04 | 156.54±00.94 |
+| Tcl | 3.685±0.078 | 5.12±00.06 + 0.00±00.00 | 149.06±01.75 |
+| Go/gccgo | 3.720±0.002 | 25.62±00.20 + 7.71±00.17 | 168.84±00.90 |
+| C#/.NET Core | 3.726±0.053 | 34.67±00.08 + 19.67±01.47 | 137.24±01.33 |
+| C#/Mono | 4.692±0.014 | 25.71±00.08 + 18.74±00.03 | 193.29±01.07 |
+| Julia | 5.023±0.004 | 244.56±00.09 + 42.28±00.09 | 188.22±02.10 |
+| Ruby/truffleruby (--jvm) | 5.072±0.012 | 347.27±07.42 + 168.12±27.78 | 234.49±01.53 |
+| Ruby/jruby | 10.519±0.026 | 182.81±02.29 + 80.63±02.65 | 420.63±01.57 |
+| Perl (MIME::Base64::Perl) | 13.790±0.053 | 16.12±00.07 + 0.31±00.04 | 573.08±04.60 |
+| Ruby/truffleruby | 16.232±0.006 | 295.77±00.95 + 232.04±04.13 | 647.25±03.84 |
## Json
@@ -228,80 +228,80 @@ have some inaccuracies in number parsing:
| Language | Time, s | Memory, MiB | Energy, J |
| :---------------------------------- | ----------------------: | -------------------------------------------------: | -----------------------: |
-| C++/g++ (simdjson On-Demand) | 0.067±0.000 | 113.45±00.09 + 59.81±00.00 | 2.78±00.03 |
-| C++/clang++ (simdjson On-Demand) | 0.068±0.000 | 112.55±00.07 + 60.36±00.06 | 2.83±00.01 |
-| C++/clang++ (DAW JSON Link NoCheck) | 0.077±0.000 | 112.44±00.03 + 0.00±00.00 | 3.14±00.01 |
-| C++/g++ (DAW JSON Link NoCheck) | 0.079±0.000 | 113.19±00.03 + 0.00±00.00 | 3.16±00.02 |
-| C++/g++ (DAW JSON Link) | 0.087±0.000 | 113.22±00.07 + 0.00±00.00 | 3.58±00.03 |
-| C++/clang++ (DAW JSON Link) | 0.089±0.000 | 112.44±00.02 + 0.00±00.00 | 3.67±00.04 |
-| Rust (Serde Custom) | 0.107±0.000 | 111.99±00.05 + 0.00±00.00 | 4.56±00.02 |
-| Rust (Serde Typed) | 0.112±0.000 | 111.97±00.07 + 12.03±00.00 | 4.72±00.01 |
-| C++/g++ (gason) | 0.133±0.000 | 113.14±00.05 + 96.80±00.06 | 5.28±00.03 |
-| C++/clang++ (simdjson DOM) | 0.136±0.001 | 112.48±00.03 + 177.15±00.06 | 5.79±00.03 |
-| C++/g++ (simdjson DOM) | 0.138±0.000 | 113.01±00.09 + 176.39±00.19 | 5.88±00.01 |
-| D/ldc2 (Mir Asdf DOM) | 0.146±0.000 | 112.73±00.04 + 61.27±00.03 | 6.09±00.02 |
-| C++/clang++ (gason) | 0.149±0.000 | 112.48±00.03 + 96.97±00.06 | 6.02±00.01 |
-| C++/g++ (RapidJSON) | 0.167±0.000 | 113.26±00.05 + 126.54±00.42 | 6.93±00.04 |
-| C++/clang++ (RapidJSON) | 0.221±0.000 | 112.45±00.00 + 129.02±00.04 | 8.98±00.04 |
-| D/ldc2 (Mir Amazon's Ion DOM) | 0.231±0.000 | 112.72±00.05 + 80.80±00.00 | 9.50±00.02 |
-| C++/g++ (RapidJSON Precise) | 0.246±0.000 | 113.24±00.03 + 128.82±00.06 | 10.41±00.10 |
-| C++/g++ (Boost.JSON) | 0.394±0.000 | 113.22±00.03 + 435.88±00.04 | 16.44±00.13 |
-| Nim/clang (jsony) | 0.399±0.000 | 112.16±00.02 + 42.34±00.03 | 16.95±00.22 |
-| C++/g++ (RapidJSON SAX) | 0.404±0.001 | 112.96±00.04 + 0.00±00.00 | 16.68±00.07 |
-| C++/clang++ (RapidJSON Precise) | 0.410±0.000 | 112.47±00.03 + 129.01±00.02 | 16.63±00.05 |
-| C++/clang++ (Boost.JSON) | 0.413±0.000 | 112.44±00.00 + 436.25±00.06 | 17.23±00.20 |
-| Nim/gcc (jsony) | 0.422±0.000 | 111.72±00.03 + 42.28±00.00 | 18.09±00.12 |
-| C++/g++ (RapidJSON SAX Precise) | 0.450±0.001 | 112.96±00.01 + 0.00±00.00 | 19.34±00.09 |
-| C++/clang++ (RapidJSON SAX) | 0.496±0.000 | 194.69±00.00 + 0.00±00.00 | 19.89±00.05 |
-| Go (jsoniter) | 0.519±0.002 | 230.86±00.02 + 1.07±00.04 | 21.80±00.07 |
-| Node.js | 0.548±0.003 | 147.87±00.07 + 188.65±00.28 | 25.00±00.14 |
-| Java (DSL-JSON) | 0.621±0.015 | 258.17±00.07 + 138.46±00.77 | 32.18±00.99 |
-| Rust (Serde Untyped) | 0.633±0.001 | 111.90±00.03 + 840.05±00.03 | 25.50±00.07 |
-| V/clang | 0.635±0.001 | 111.23±00.05 + 496.21±00.00 | 26.63±00.29 |
-| V/gcc | 0.635±0.001 | 111.25±00.02 + 496.12±00.03 | 26.51±00.25 |
-| C++/clang++ (RapidJSON SAX Precise) | 0.658±0.001 | 194.71±00.03 + 0.00±00.00 | 26.74±00.12 |
-| Python/pypy | 0.678±0.001 | 285.59±00.03 + 124.88±00.00 | 29.23±00.13 |
-| Crystal (Pull) | 0.688±0.002 | 113.86±00.02 + 18.18±00.02 | 30.53±00.29 |
-| Crystal (Schema) | 0.694±0.002 | 113.84±00.00 + 48.57±00.04 | 30.58±00.36 |
-| Julia (JSON3) | 0.744±0.004 | 378.93±00.36 + 378.85±00.20 | 30.54±00.32 |
-| C#/.NET Core (System.Text.Json) | 0.759±0.002 | 479.31±00.03 + 138.58±00.03 | 33.20±00.31 |
-| Zig | 0.769±0.001 | 110.75±00.01 + 12.18±00.00 | 30.36±00.06 |
-| Perl (Cpanel::JSON::XS) | 0.833±0.005 | 125.42±00.05 + 402.78±00.06 | 34.78±00.29 |
-| Go | 0.855±0.001 | 117.10±00.06 + 79.79±00.11 | 35.57±00.01 |
-| Nim/clang (Packedjson) | 0.929±0.000 | 112.50±00.02 + 294.16±00.00 | 38.21±00.10 |
-| Crystal | 0.937±0.010 | 113.88±00.01 + 392.00±00.01 | 42.07±00.33 |
-| PHP | 0.984±0.001 | 126.43±00.10 + 682.01±00.00 | 41.13±00.11 |
-| Nim/gcc (Packedjson) | 1.010±0.000 | 112.00±00.04 + 294.16±00.00 | 41.38±00.17 |
-| C++/clang++ (json-c) | 1.203±0.007 | 112.72±00.03 + 1216.17±00.04 | 50.96±00.27 |
-| C++/g++ (json-c) | 1.208±0.009 | 113.28±00.10 + 1215.96±00.03 | 50.54±00.57 |
-| Clojure | 1.217±0.014 | 450.12±06.93 + 535.88±48.40 | 64.53±00.76 |
-| C++/clang++ (Nlohmann) | 1.253±0.002 | 112.62±00.04 + 360.14±00.02 | 53.05±00.28 |
-| Go/gccgo | 1.263±0.003 | 139.06±00.07 + 83.52±00.15 | 52.29±00.14 |
-| C#/.NET Core | 1.294±0.016 | 487.04±00.06 + 294.45±00.04 | 56.51±00.63 |
-| Nim/clang | 1.315±0.002 | 112.34±00.12 + 925.29±00.10 | 54.34±00.27 |
-| Nim/gcc | 1.349±0.002 | 111.95±00.09 + 919.68±00.06 | 56.49±00.36 |
-| CPython (UltraJSON) | 1.440±0.003 | 121.97±00.01 + 543.94±02.33 | 53.47±00.22 |
-| Ruby (--jit) | 1.465±0.002 | 381.01±00.02 + 262.87±00.01 | 61.51±00.41 |
-| Ruby | 1.471±0.007 | 124.42±00.03 + 262.85±00.01 | 62.65±00.34 |
-| C++/g++ (Nlohmann) | 1.476±0.005 | 113.25±00.04 + 447.92±00.04 | 60.35±00.21 |
-| Python | 1.520±0.003 | 120.41±00.01 + 374.96±00.00 | 59.77±00.14 |
-| F#/.NET Core (System.Text.Json) | 1.802±0.005 | 486.98±00.15 + 384.58±12.24 | 79.04±00.74 |
-| Scala (uPickle) | 1.849±0.011 | 291.27±00.18 + 665.30±48.68 | 90.05±00.57 |
-| Ruby (YAJL) | 1.983±0.025 | 124.21±00.01 + 282.40±00.00 | 83.42±01.05 |
-| D/ldc2 | 2.085±0.003 | 113.15±00.02 + 680.09±00.02 | 86.06±00.41 |
-| C#/Mono | 2.293±0.021 | 252.49±00.14 + 31.58±00.02 | 96.48±01.08 |
-| Haskell | 2.688±0.004 | 115.95±00.03 + 716.91±00.26 | 108.80±00.08 |
-| Rust (jq) | 2.791±0.006 | 113.65±00.07 + 778.76±00.90 | 115.54±00.54 |
-| Ruby/jruby | 3.113±0.027 | 442.08±03.76 + 933.59±104.90 | 157.63±03.53 |
-| C++/clang++ (Boost.PropertyTree) | 3.126±0.003 | 194.87±00.02 + 1232.87±00.01 | 129.76±00.70 |
-| C++/g++ (Boost.PropertyTree) | 3.338±0.006 | 113.14±00.03 + 1440.12±00.02 | 135.06±00.77 |
-| D/gdc | 3.681±0.009 | 117.28±00.03 + 680.72±00.08 | 157.65±00.82 |
-| Vala/gcc | 3.897±0.009 | 114.69±00.01 + 940.84±00.03 | 165.64±00.87 |
-| Vala/clang | 4.031±0.009 | 114.69±00.03 + 876.74±00.02 | 170.91±00.96 |
-| D/dmd | 4.524±0.007 | 113.67±00.02 + 680.09±00.02 | 182.17±00.86 |
-| Perl (JSON::Tiny) | 9.756±0.035 | 125.79±00.04 + 528.88±00.06 | 422.50±03.92 |
-| Ruby/truffleruby (--jvm) | 16.470±0.253 | 461.41±25.16 + 2492.61±30.69 | 1069.49±16.47 |
-| Ruby/truffleruby | 22.345±0.910 | 417.31±01.29 + 2336.16±85.83 | 1080.54±36.02 |
+| C++/g++ (simdjson On-Demand) | 0.066±0.000 | 112.99±00.03 + 60.31±00.07 | 2.73±00.01 |
+| C++/clang++ (simdjson On-Demand) | 0.067±0.000 | 112.43±00.04 + 60.36±00.00 | 2.77±00.02 |
+| C++/clang++ (DAW JSON Link NoCheck) | 0.070±0.001 | 112.39±00.06 + 0.00±00.00 | 2.94±00.04 |
+| C++/g++ (DAW JSON Link NoCheck) | 0.080±0.000 | 113.28±00.02 + 0.00±00.00 | 3.23±00.03 |
+| C++/g++ (DAW JSON Link) | 0.081±0.000 | 113.21±00.08 + 0.00±00.00 | 3.41±00.02 |
+| C++/clang++ (DAW JSON Link) | 0.096±0.000 | 112.46±00.03 + 0.00±00.00 | 3.93±00.01 |
+| Rust (Serde Custom) | 0.106±0.000 | 111.64±00.02 + 0.00±00.00 | 4.42±00.04 |
+| Rust (Serde Typed) | 0.107±0.000 | 111.64±00.02 + 11.52±00.08 | 4.48±00.03 |
+| C++/g++ (gason) | 0.132±0.000 | 113.06±00.11 + 96.85±00.06 | 5.23±00.01 |
+| C++/g++ (simdjson DOM) | 0.139±0.000 | 113.21±00.24 + 175.85±00.23 | 5.92±00.03 |
+| C++/clang++ (gason) | 0.143±0.000 | 112.40±00.06 + 96.97±00.06 | 5.82±00.03 |
+| D/ldc2 (Mir Asdf DOM) | 0.145±0.000 | 112.66±00.02 + 61.26±00.01 | 6.03±00.02 |
+| C++/clang++ (simdjson DOM) | 0.146±0.000 | 112.47±00.03 + 177.15±00.00 | 6.27±00.02 |
+| C++/g++ (RapidJSON) | 0.166±0.000 | 113.32±00.02 + 127.47±00.30 | 7.05±00.07 |
+| C++/clang++ (RapidJSON) | 0.235±0.000 | 112.36±00.07 + 129.04±00.05 | 9.77±00.03 |
+| D/ldc2 (Mir Amazon's Ion DOM) | 0.236±0.000 | 112.79±00.03 + 80.70±00.00 | 9.81±00.06 |
+| C++/g++ (RapidJSON Precise) | 0.244±0.000 | 113.29±00.02 + 128.82±00.05 | 10.24±00.08 |
+| C++/clang++ (RapidJSON Precise) | 0.314±0.000 | 112.47±00.04 + 129.00±00.03 | 13.49±00.06 |
+| C++/g++ (Boost.JSON) | 0.396±0.000 | 113.32±00.04 + 435.82±00.06 | 16.56±00.02 |
+| C++/g++ (RapidJSON SAX) | 0.404±0.001 | 113.05±00.01 + 0.00±00.00 | 16.62±00.05 |
+| Nim/clang (jsony) | 0.414±0.000 | 111.40±00.04 + 42.97±00.11 | 17.73±00.19 |
+| C++/clang++ (Boost.JSON) | 0.418±0.001 | 112.46±00.05 + 436.25±00.06 | 17.59±00.14 |
+| Nim/gcc (jsony) | 0.422±0.000 | 111.10±00.04 + 42.84±00.14 | 17.75±00.15 |
+| C++/g++ (RapidJSON SAX Precise) | 0.448±0.000 | 113.07±00.01 + 0.00±00.00 | 19.27±00.06 |
+| Go (jsoniter) | 0.520±0.002 | 231.00±00.12 + 1.24±00.08 | 22.19±00.12 |
+| C++/clang++ (RapidJSON SAX) | 0.531±0.000 | 194.70±00.04 + 0.00±00.00 | 20.74±00.17 |
+| Node.js | 0.546±0.006 | 150.03±00.06 + 188.93±00.13 | 25.76±00.18 |
+| Java (DSL-JSON) | 0.619±0.012 | 259.64±00.07 + 188.73±08.78 | 31.78±00.67 |
+| V/gcc | 0.633±0.001 | 111.91±00.05 + 496.18±00.09 | 26.27±00.15 |
+| Rust (Serde Untyped) | 0.639±0.001 | 111.61±00.03 + 840.27±00.03 | 25.87±00.18 |
+| V/clang | 0.639±0.000 | 111.97±00.03 + 496.24±00.03 | 26.66±00.17 |
+| C++/clang++ (RapidJSON SAX Precise) | 0.663±0.000 | 194.66±00.03 + 0.00±00.00 | 26.73±00.14 |
+| Python/pypy | 0.671±0.002 | 284.89±00.05 + 125.41±00.04 | 29.24±00.15 |
+| Crystal (Pull) | 0.687±0.005 | 113.42±00.04 + 18.47±00.03 | 30.07±00.17 |
+| Crystal (Schema) | 0.704±0.002 | 113.40±00.02 + 48.88±00.03 | 30.82±00.16 |
+| C#/.NET Core (System.Text.Json) | 0.755±0.001 | 479.22±00.04 + 138.55±00.00 | 32.96±00.31 |
+| Zig | 0.773±0.000 | 110.75±00.01 + 11.98±00.06 | 30.65±00.20 |
+| Julia (JSON3) | 0.818±0.005 | 452.44±00.58 + 212.54±02.91 | 33.11±00.26 |
+| Perl (Cpanel::JSON::XS) | 0.834±0.009 | 125.32±00.10 + 402.87±00.02 | 34.85±00.42 |
+| Go | 0.856±0.001 | 117.22±00.02 + 79.73±00.22 | 35.32±00.31 |
+| Crystal | 0.937±0.005 | 113.52±00.08 + 392.53±00.03 | 42.18±00.34 |
+| PHP | 0.982±0.002 | 126.96±00.04 + 682.21±00.00 | 40.85±00.23 |
+| Nim/clang (Packedjson) | 0.991±0.002 | 112.15±00.02 + 294.42±00.00 | 40.83±00.21 |
+| Nim/gcc (Packedjson) | 1.010±0.001 | 111.83±00.03 + 294.42±00.00 | 41.89±00.21 |
+| C++/clang++ (json-c) | 1.194±0.007 | 112.71±00.07 + 1216.11±00.03 | 50.61±00.93 |
+| C++/g++ (json-c) | 1.198±0.006 | 113.43±00.04 + 1215.96±00.00 | 50.29±00.65 |
+| Clojure | 1.199±0.019 | 464.27±05.08 + 541.31±49.27 | 61.77±00.48 |
+| Go/gccgo | 1.259±0.003 | 138.89±00.04 + 83.65±00.10 | 53.56±00.15 |
+| C#/.NET Core | 1.283±0.013 | 486.95±00.07 + 294.45±00.04 | 55.84±00.54 |
+| C++/clang++ (Nlohmann) | 1.297±0.002 | 112.59±00.05 + 360.20±00.00 | 54.81±00.28 |
+| Nim/gcc | 1.345±0.002 | 111.87±00.04 + 919.93±00.00 | 56.30±00.21 |
+| Nim/clang | 1.351±0.004 | 112.15±00.01 + 925.03±00.00 | 55.67±00.23 |
+| Ruby (--jit) | 1.448±0.007 | 380.59±00.07 + 263.15±00.02 | 61.92±00.27 |
+| Ruby | 1.449±0.003 | 123.97±00.02 + 263.11±00.01 | 61.61±00.15 |
+| CPython (UltraJSON) | 1.454±0.003 | 122.26±00.13 + 545.52±01.28 | 54.11±00.21 |
+| C++/g++ (Nlohmann) | 1.489±0.008 | 113.32±00.03 + 447.92±00.04 | 60.89±00.57 |
+| Python | 1.524±0.002 | 120.30±00.07 + 375.25±00.03 | 60.10±00.20 |
+| F#/.NET Core (System.Text.Json) | 1.777±0.004 | 486.91±00.03 + 345.26±00.13 | 77.46±00.66 |
+| Ruby (YAJL) | 1.962±0.010 | 123.89±00.04 + 282.64±00.07 | 82.95±00.75 |
+| Scala (uPickle) | 1.997±0.014 | 292.25±00.16 + 702.97±67.44 | 97.94±00.61 |
+| D/ldc2 | 2.079±0.003 | 112.90±00.05 + 680.22±00.05 | 86.04±00.27 |
+| C#/Mono | 2.306±0.027 | 252.32±00.07 + 31.57±00.02 | 97.12±00.89 |
+| Haskell | 2.590±0.005 | 117.60±00.03 + 713.50±00.38 | 110.05±01.10 |
+| Rust (jq) | 2.804±0.003 | 113.77±00.06 + 779.44±00.39 | 116.12±00.64 |
+| Ruby/jruby | 2.998±0.038 | 442.51±05.84 + 930.50±130.38 | 151.53±02.51 |
+| C++/clang++ (Boost.PropertyTree) | 3.158±0.003 | 194.88±00.03 + 1232.84±00.06 | 131.20±00.85 |
+| C++/g++ (Boost.PropertyTree) | 3.341±0.009 | 113.17±00.03 + 1440.16±00.03 | 139.24±00.94 |
+| Vala/gcc | 3.613±0.008 | 114.75±00.06 + 940.52±00.09 | 155.10±01.78 |
+| Vala/clang | 3.613±0.014 | 114.75±00.03 + 940.56±00.09 | 153.78±01.48 |
+| D/gdc | 3.656±0.008 | 116.62±00.05 + 681.22±00.10 | 156.04±00.72 |
+| D/dmd | 4.534±0.004 | 113.23±00.04 + 680.46±00.04 | 181.45±00.78 |
+| Perl (JSON::Tiny) | 9.712±0.100 | 125.59±00.03 + 529.02±00.02 | 427.10±03.42 |
+| Ruby/truffleruby (--jvm) | 14.091±0.265 | 477.27±14.72 + 2545.17±68.47 | 912.67±20.03 |
+| Ruby/truffleruby | 24.040±0.350 | 433.56±02.08 + 2561.27±48.17 | 1194.76±20.42 |
## Matmul
@@ -309,51 +309,51 @@ Testing allocating and multiplying matrices.
[Matmul](matmul)
-| Language | Time, s | Memory, MiB | Energy, J |
-| :----------------------- | ------------------------: | ------------------------------------------------: | -------------------------: |
-| D/ldc2 (lubeck) | 0.046±0.000 | 6.57±00.04 + 54.95±00.10 | 4.66±00.03 |
-| Nim/gcc (Arraymancer) | 0.066±0.002 | 5.52±00.05 + 54.73±00.11 | 5.46±00.13 |
-| C++/clang++ (Eigen) | 0.068±0.003 | 38.90±02.59 + 51.51±02.58 | 5.53±00.15 |
-| Python (NumPy) | 0.070±0.000 | 28.41±00.12 + 54.96±00.04 | 6.49±00.04 |
-| C++/g++ (Eigen) | 0.070±0.002 | 29.55±08.72 + 60.24±08.76 | 5.13±00.13 |
-| Nim/clang (Arraymancer) | 0.072±0.001 | 6.34±00.04 + 54.76±00.08 | 6.07±00.07 |
-| Java (ND4J) | 0.081±0.005 | 104.24±01.83 + 92.25±00.16 | 6.35±00.31 |
-| Rust (ndarray) | 0.090±0.000 | 2.63±00.04 + 68.48±00.00 | 6.00±00.03 |
-| Julia (threads: 4) | 0.191±0.000 | 235.35±00.21 + 49.23±00.90 | 15.54±00.02 |
-| Julia (threads: 1) | 0.510±0.000 | 235.65±00.18 + 49.17±00.66 | 21.51±00.03 |
-| Julia (no BLAS) | 1.046±0.010 | 225.72±00.30 + 51.62±00.01 | 46.15±00.39 |
-| D/ldc2 | 1.716±0.001 | 3.52±00.03 + 70.39±00.00 | 63.31±00.11 |
-| D/gdc | 1.868±0.001 | 7.55±00.04 + 70.43±00.03 | 73.08±00.12 |
-| D/dmd | 1.875±0.002 | 3.63±00.04 + 70.41±00.00 | 71.06±00.11 |
-| C/gcc | 3.029±0.000 | 1.32±00.00 + 68.80±00.04 | 109.29±00.43 |
-| Vala/clang | 3.060±0.000 | 4.10±00.03 + 69.79±00.08 | 107.55±00.90 |
-| Rust | 3.065±0.000 | 2.45±00.05 + 68.57±00.00 | 105.15±00.17 |
-| C/clang | 3.067±0.000 | 1.38±00.01 + 68.77±00.02 | 105.98±00.38 |
-| Zig | 3.085±0.001 | 1.34±00.03 + 68.89±00.00 | 109.27±00.08 |
-| Nim/gcc | 3.088±0.001 | 2.43±00.06 + 67.19±00.67 | 111.11±00.30 |
-| Swift | 3.094±0.000 | 6.49±00.02 + 68.88±00.01 | 108.15±00.40 |
-| Java | 3.095±0.000 | 38.11±00.07 + 68.41±00.13 | 107.24±00.38 |
-| Vala/gcc | 3.125±0.001 | 4.13±00.02 + 69.79±00.07 | 114.53±00.06 |
-| Nim/clang | 3.136±0.001 | 2.88±00.04 + 70.44±00.06 | 107.79±00.13 |
-| V/gcc | 3.146±0.000 | 1.87±00.06 + 68.84±00.00 | 117.55±01.78 |
-| V/clang | 3.147±0.000 | 2.22±00.07 + 68.84±00.00 | 115.64±00.13 |
-| Go | 3.152±0.000 | 3.63±00.04 + 73.18±00.09 | 113.80±00.18 |
-| Go/gccgo | 3.159±0.000 | 24.91±00.09 + 73.53±00.12 | 112.23±00.10 |
-| Crystal | 3.161±0.001 | 4.25±00.02 + 59.67±00.03 | 115.88±00.10 |
-| Node.js | 3.213±0.001 | 41.96±00.13 + 71.22±00.19 | 129.55±00.09 |
-| Python/pypy | 3.270±0.001 | 65.78±00.05 + 68.63±00.01 | 136.14±00.12 |
-| Scala | 3.322±0.007 | 65.01±00.11 + 133.87±00.15 | 118.54±00.41 |
-| C#/.NET Core | 4.874±0.001 | 34.67±00.10 + 69.34±00.00 | 196.06±00.16 |
-| Kotlin/JVM | 6.937±0.001 | 39.71±00.10 + 68.16±00.22 | 271.50±00.34 |
-| C#/Mono | 7.413±0.001 | 25.56±00.12 + 69.54±00.03 | 299.15±00.74 |
-| Ruby/truffleruby | 14.604±1.175 | 351.93±01.70 + 465.25±18.48 | 553.17±37.67 |
-| Ruby/truffleruby (--jvm) | 21.393±0.051 | 437.31±33.21 + 961.78±75.62 | 804.61±05.21 |
-| Ruby | 180.926±2.288 | 15.46±00.03 + 68.58±00.00 | 7927.39±113.83 |
-| Ruby (--jit) | 182.285±0.371 | 272.05±00.05 + 68.84±00.00 | 7995.18±94.11 |
-| Perl | 221.133±0.748 | 9.56±00.04 + 599.55±00.02 | 9001.25±37.66 |
-| Python | 261.473±0.827 | 10.58±00.05 + 68.84±00.00 | 10445.40±55.25 |
-| Tcl | 298.785±5.053 | 7.51±00.04 + 400.15±00.03 | 12660.24±177.21 |
-| Ruby/jruby | 404.829±24.918 | 266.19±01.83 + 779.12±54.18 | 16982.36±869.82 |
+| Language | Time, s | Memory, MiB | Energy, J |
+| :----------------------- | -----------------------: | ------------------------------------------------: | -------------------------: |
+| D/ldc2 (lubeck) | 0.043±0.000 | 5.84±00.04 + 57.97±00.13 | 4.42±00.02 |
+| Nim/gcc (Arraymancer) | 0.063±0.006 | 4.69±00.01 + 58.04±00.15 | 5.21±00.52 |
+| Python (NumPy) | 0.067±0.000 | 30.06±00.12 + 58.10±00.03 | 6.29±00.03 |
+| C++/clang++ (Eigen) | 0.071±0.003 | 38.76±05.62 + 51.51±05.67 | 5.87±00.10 |
+| C++/g++ (Eigen) | 0.076±0.003 | 19.72±13.35 + 70.30±13.23 | 5.60±00.15 |
+| Java (ND4J) | 0.078±0.001 | 105.22±01.56 + 92.03±00.12 | 6.13±00.06 |
+| Nim/clang (Arraymancer) | 0.081±0.012 | 6.19±00.07 + 57.45±00.14 | 6.87±00.69 |
+| Rust (ndarray) | 0.090±0.001 | 2.24±00.04 + 68.74±00.05 | 6.11±00.07 |
+| Julia (threads: 2) | 0.101±0.000 | 265.20±00.47 + 46.43±00.13 | 5.91±00.02 |
+| Julia (threads: 1) | 0.151±0.000 | 265.55±00.25 + 45.95±00.09 | 7.30±00.08 |
+| Julia (no BLAS) | 1.041±0.012 | 243.90±00.24 + 51.54±00.04 | 46.04±00.54 |
+| D/ldc2 | 1.715±0.002 | 3.17±00.02 + 70.49±00.03 | 63.20±00.18 |
+| D/gdc | 1.870±0.002 | 6.81±00.06 + 70.97±00.03 | 73.21±00.21 |
+| D/dmd | 1.874±0.002 | 3.42±00.02 + 70.48±00.01 | 71.16±00.16 |
+| C/gcc | 3.029±0.000 | 1.50±00.02 + 68.74±00.04 | 111.52±00.91 |
+| Vala/clang | 3.060±0.001 | 3.93±00.08 + 69.88±00.07 | 105.78±00.97 |
+| C/clang | 3.062±0.000 | 1.51±00.01 + 68.73±00.03 | 104.53±00.17 |
+| Rust | 3.064±0.001 | 2.02±00.04 + 68.88±00.07 | 104.85±00.19 |
+| Zig | 3.085±0.001 | 1.40±00.02 + 68.89±00.00 | 109.21±00.14 |
+| Nim/gcc | 3.089±0.002 | 2.51±00.03 + 66.26±00.00 | 114.20±00.48 |
+| Java | 3.089±0.001 | 38.29±00.04 + 68.54±00.13 | 109.95±00.09 |
+| Swift | 3.096±0.000 | 6.55±00.03 + 68.91±00.01 | 110.89±01.35 |
+| Nim/clang | 3.121±0.001 | 2.78±00.01 + 66.00±00.00 | 107.00±00.38 |
+| Vala/gcc | 3.125±0.001 | 3.95±00.03 + 69.91±00.04 | 114.45±00.11 |
+| Go | 3.152±0.000 | 3.70±00.04 + 73.19±00.09 | 115.16±01.26 |
+| Crystal | 3.160±0.001 | 3.78±00.05 + 59.96±00.01 | 115.82±00.30 |
+| Go/gccgo | 3.160±0.001 | 24.82±00.03 + 73.40±00.05 | 112.08±00.21 |
+| V/gcc | 3.188±0.001 | 2.53±00.12 + 70.90±00.00 | 120.57±00.24 |
+| V/clang | 3.194±0.001 | 2.89±00.03 + 70.90±00.00 | 120.75±00.24 |
+| Node.js | 3.208±0.001 | 45.17±00.06 + 70.61±00.00 | 129.36±00.17 |
+| Python/pypy | 3.268±0.002 | 65.50±00.07 + 68.63±00.04 | 135.95±00.19 |
+| Scala | 3.334±0.004 | 66.21±00.12 + 147.70±00.19 | 122.19±00.14 |
+| Kotlin/JVM | 3.680±0.003 | 40.47±00.06 + 68.25±00.27 | 153.89±00.35 |
+| C#/.NET Core | 4.874±0.000 | 34.59±00.03 + 69.33±00.00 | 195.95±00.22 |
+| C#/Mono | 7.413±0.000 | 25.43±00.10 + 69.52±00.02 | 302.00±03.34 |
+| Ruby/truffleruby | 16.489±2.861 | 366.34±03.56 + 447.40±65.47 | 625.65±94.01 |
+| Ruby/truffleruby (--jvm) | 25.232±0.159 | 460.71±32.48 + 446.25±62.62 | 903.31±14.59 |
+| Ruby | 199.779±1.180 | 14.88±00.07 + 69.07±00.02 | 8676.55±45.16 |
+| Ruby (--jit) | 202.181±2.040 | 271.47±00.04 + 69.06±00.02 | 8655.57±187.67 |
+| Perl | 222.566±1.469 | 9.40±00.08 + 599.71±00.03 | 9015.71±75.12 |
+| Python | 280.771±2.283 | 10.62±00.07 + 69.09±00.06 | 11178.73±44.71 |
+| Tcl | 334.061±2.020 | 7.35±00.06 + 400.18±00.00 | 13954.09±93.63 |
+| Ruby/jruby | 389.418±5.069 | 268.52±02.25 + 709.04±17.44 | 16350.68±256.43 |
## Primes
@@ -366,26 +366,28 @@ Testing:
| Language | Time, s | Memory, MiB | Energy, J |
| :----------------------- | ---------------------: | ------------------------------------------------: | ----------------------: |
-| Zig | 0.059±0.000 | 0.75±00.00 + 49.41±00.04 | 2.44±00.01 |
-| Rust | 0.093±0.000 | 2.19±00.05 + 77.27±00.00 | 3.78±00.01 |
-| Crystal | 0.123±0.000 | 3.48±00.02 + 89.43±00.64 | 5.54±00.06 |
-| C++/g++ | 0.132±0.000 | 3.54±00.07 + 85.27±00.26 | 5.36±00.04 |
-| C++/clang++ | 0.143±0.000 | 3.08±00.08 + 75.41±00.00 | 5.63±00.05 |
-| V/clang | 0.148±0.000 | 0.72±00.00 + 262.80±00.57 | 6.15±00.06 |
-| V/gcc | 0.150±0.000 | 0.71±00.06 + 259.28±00.48 | 6.28±00.04 |
-| Java | 0.155±0.002 | 36.96±00.11 + 144.23±05.61 | 8.63±00.15 |
-| Node.js | 0.256±0.003 | 36.96±00.11 + 181.19±02.81 | 12.80±00.06 |
-| Lua/luajit | 0.337±0.001 | 2.49±00.03 + 156.75±00.38 | 12.87±00.03 |
-| Scala | 0.391±0.005 | 66.10±00.30 + 258.71±02.41 | 22.50±00.24 |
-| Julia | 0.557±0.001 | 229.65±00.18 + 366.99±02.17 | 22.00±00.09 |
-| Python/pypy | 0.880±0.002 | 64.77±00.07 + 249.36±00.15 | 34.55±00.17 |
-| Ruby (--jit) | 1.443±0.005 | 270.96±00.02 + 146.80±00.04 | 58.79±00.46 |
-| Lua | 1.480±0.005 | 2.32±00.01 + 283.97±00.87 | 57.87±00.19 |
-| Ruby/truffleruby | 1.563±0.012 | 287.18±00.42 + 334.66±24.08 | 80.19±00.54 |
-| Ruby/jruby | 1.883±0.026 | 182.58±00.29 + 370.42±55.17 | 101.51±01.01 |
-| Ruby/truffleruby (--jvm) | 1.895±0.018 | 348.72±09.17 + 526.76±97.23 | 123.08±01.27 |
-| Ruby | 2.032±0.004 | 14.36±00.02 + 146.75±00.00 | 82.09±00.60 |
-| Python | 4.806±0.058 | 10.41±00.06 + 234.92±00.64 | 190.06±02.19 |
+| Zig | 0.059±0.000 | 0.92±00.02 + 49.27±00.13 | 2.41±00.02 |
+| Rust | 0.094±0.000 | 0.93±00.01 + 78.38±00.06 | 3.79±00.02 |
+| Crystal | 0.122±0.000 | 2.99±00.05 + 90.76±00.15 | 5.52±00.01 |
+| C++/g++ | 0.132±0.000 | 3.57±00.05 + 85.38±00.39 | 5.38±00.06 |
+| C++/clang++ | 0.140±0.000 | 1.67±00.01 + 76.83±00.03 | 5.49±00.04 |
+| V/clang | 0.147±0.000 | 0.90±00.02 + 265.66±00.38 | 6.08±00.02 |
+| V/gcc | 0.150±0.000 | 0.89±00.01 + 259.63±00.45 | 6.24±00.07 |
+| Java | 0.157±0.002 | 37.73±00.17 + 153.30±04.68 | 8.82±00.11 |
+| Node.js | 0.251±0.001 | 40.02±00.08 + 176.44±00.42 | 12.63±00.08 |
+| Lua/luajit | 0.338±0.002 | 2.59±00.05 + 156.86±01.28 | 13.24±00.08 |
+| Scala | 0.360±0.004 | 67.32±00.11 + 243.01±06.35 | 18.56±00.08 |
+| Nim/clang | 0.423±0.001 | 1.94±00.01 + 1163.25±02.84 | 16.58±00.10 |
+| Nim/gcc | 0.432±0.000 | 1.67±00.06 + 1170.86±01.80 | 16.62±00.14 |
+| Julia | 0.604±0.001 | 245.48±00.27 + 376.33±00.44 | 23.40±00.14 |
+| Python/pypy | 0.882±0.001 | 63.60±00.05 + 250.82±00.53 | 34.48±00.19 |
+| Ruby/truffleruby (--jvm) | 1.396±0.036 | 348.32±03.87 + 486.92±22.89 | 91.61±02.10 |
+| Ruby (--jit) | 1.445±0.003 | 270.51±00.03 + 147.09±00.07 | 58.62±00.50 |
+| Lua | 1.483±0.005 | 2.27±00.03 + 283.81±00.55 | 57.70±00.54 |
+| Ruby/truffleruby | 1.513±0.014 | 297.33±00.99 + 420.61±05.97 | 84.26±00.90 |
+| Ruby/jruby | 1.991±0.045 | 183.52±01.96 + 523.52±28.85 | 103.87±03.74 |
+| Ruby | 2.057±0.001 | 13.89±00.04 + 147.04±00.02 | 82.72±00.75 |
+| Python | 4.979±0.045 | 10.53±00.05 + 234.86±00.90 | 193.43±02.10 |
# Tests Execution
@@ -397,46 +399,46 @@ Base Docker image: Debian GNU/Linux bookworm/sid
| Language | Version |
| ---------------- | ------------------------------- |
-| .NET Core | 6.0.203 |
-| C#/.NET Core | 4.1.0-5.22128.4 (5d10d428) |
+| .NET Core | 6.0.401 |
+| C#/.NET Core | 4.3.0-3.22415.1 (8301d484) |
| C#/Mono | 6.8.0.105 |
| Chez Scheme | 9.5.4 |
| Clojure | "1.11.1" |
-| Crystal | 1.4.1 |
-| D/dmd | v2.100.0 |
-| D/gdc | 12.1.0 |
-| D/ldc2 | 1.29.0 |
+| Crystal | 1.5.1 |
+| D/dmd | v2.100.2 |
+| D/gdc | 12.2.0 |
+| D/ldc2 | 1.30.0 |
| Elixir | 1.12.2 |
-| F#/.NET Core | 12.0.1.0 for F# 6.0 |
-| Go | go1.18.2 |
-| Go/gccgo | 12.1.0 |
-| Haskell | 9.2.3 |
-| Java | 18.0.1.1 |
-| Julia | v"1.7.3" |
-| Kotlin | 1.6.21 |
+| F#/.NET Core | 12.0.4.0 for F# 6.0 |
+| Go | go1.19.1 |
+| Go/gccgo | 12.2.0 |
+| Haskell | 9.4.2 |
+| Java | 19 |
+| Julia | v"1.8.1" |
+| Kotlin | 1.7.10 |
| Lua | 5.4.4 |
| Lua/luajit | 2.1.0-beta3 |
| MLton | 20210117 |
| Nim | 1.6.6 |
-| Node.js | v18.2.0 |
+| Node.js | v18.9.0 |
| OCaml | 4.14.0 |
| PHP | 8.1.5 |
| Perl | v5.34.0 |
-| Python | 3.10.4 |
+| Python | 3.10.7 |
| Python/pypy | 7.3.9-final0 for Python 3.9.12 |
-| Racket | "8.5" |
+| Racket | "8.6" |
| Ruby | 3.1.2p20 |
-| Ruby/jruby | 9.3.4.0 |
-| Ruby/truffleruby | 22.1.0 |
-| Rust | 1.61.0 |
-| Scala | 3.1.2 |
-| Swift | 5.6.1 |
+| Ruby/jruby | 9.3.8.0 |
+| Ruby/truffleruby | 22.2.0 |
+| Rust | 1.64.0 |
+| Scala | 3.2.0 |
+| Swift | 5.7 |
| Tcl | 8.6 |
-| V | 0.2.4 a3c0a9b |
-| Vala | 0.56.1 |
+| V | 0.3.1 993802f |
+| Vala | 0.56.3 |
| Zig | 0.9.1 |
-| clang/clang++ | 13.0.1 |
-| gcc/g++ | 12.1.0 |
+| clang/clang++ | 14.0.6 |
+| gcc/g++ | 12.2.0 |
## Using Docker
diff --git a/common/commands.mk b/common/commands.mk
index c1b56d2e..52762a6b 100644
--- a/common/commands.mk
+++ b/common/commands.mk
@@ -1,5 +1,4 @@
COMMON_FLAGS := -Wall -Wextra -pedantic -Wcast-align -O3 -march=native -flto=auto -Wa,-mbranches-within-32B-boundaries
-# COMMON_FLAGS := -g -Wall -Wextra -pedantic -Wcast-align -fsanitize=address -fsanitize=undefined
GCC_FLAGS := $(COMMON_FLAGS)
CLANG_FLAGS := $(COMMON_FLAGS)
LIBNOTIFY_FLAGS := -I../common/libnotify ../common/libnotify/target/libnotify.a
@@ -9,19 +8,19 @@ VALAC_FLAGS := --disable-assert -X -O3 -X -march=native -X -flto -X -Wa,-mbranch
V_FLAGS := -prod
ZIG_FLAGS := -O ReleaseFast
-CLANG_BUILD = clang $(CLANG_FLAGS) -std=c17 -o $@ $^ $(LIBNOTIFY_FLAGS)
-CLANG_CPP_BUILD = clang++ $(CLANG_FLAGS) -std=c++20 -stdlib=libc++ -o $@ $^ $(LIBNOTIFY_FLAGS)
+CLANG_BUILD = clang $(CLANG_FLAGS) -std=c2x -o $@ $^ $(LIBNOTIFY_FLAGS)
+CLANG_CPP_BUILD = clang++ $(CLANG_FLAGS) -std=c++2b -stdlib=libc++ -o $@ $^ $(LIBNOTIFY_FLAGS)
CRYSTAL_BUILD = crystal build --release --no-debug -o $@ $^
DMD_BUILD = dmd -of$@ -O -release -inline -boundscheck=off $^
DOTNET_BUILD = dotnet build --nologo -v q $< -c Release
DUB_BUILD = dub -q build --build=release-nobounds --compiler=ldc2 --single $^
-GCC_BUILD = gcc $(GCC_FLAGS) -std=c17 -o $@ $^ $(LIBNOTIFY_FLAGS)
-GCC_CPP_BUILD = g++ $(GCC_FLAGS) -std=c++20 -o $@ $^ $(LIBNOTIFY_FLAGS)
+GCC_BUILD = gcc $(GCC_FLAGS) -std=c2x -o $@ $^ $(LIBNOTIFY_FLAGS)
+GCC_CPP_BUILD = g++ $(GCC_FLAGS) -std=c++23 -o $@ $^ $(LIBNOTIFY_FLAGS)
GCC_GO_BUILD = gccgo $(GCC_FLAGS) -o $@ $^
GDC_BUILD = gdc -o $@ -O3 -frelease -finline -fbounds-check=off $^
GHC_BUILD = ghc -v0 -O2 -fforce-recomp -Wall $^ -o $@ -outputdir $(@D)
GO_BUILD = GO111MODULE=auto go build -o $@ $^
-JAVAC_BUILD = javac -Xlint:unchecked -d $(@D) $^
+JAVAC_BUILD = javac --release 19 -Xlint:unchecked -d $(@D) $^
KOTLINC_BUILD = kotlinc -include-runtime -jvm-target 18 -d $@ $^
LDC2_BUILD = ldc2 -of$@ -O5 -release -boundscheck=off $^
MCS_BUILD = mcs -debug- -optimize+ -out:$@ $^
@@ -31,7 +30,7 @@ NIM_GCC_BUILD = nim c -o:$@ --cc:gcc $(NIM_FLAGS) $^
RUSTC_BUILD = rustc $(RUSTC_FLAGS) -C opt-level=3 -C lto -C codegen-units=1 -C panic=abort -o $@ $^
RUST_CLIPPY = clippy-driver -o $@.clippy $^
SWIFTC_BUILD = swiftc -parse-as-library -Ounchecked -cross-module-optimization -o $@ $^
-SCALAC_BUILD = scalac -release 17 -d $@ $^
+SCALAC_BUILD = scalac -java-output-version 19 -d $@ $^
VALAC_CLANG_BUILD = valac $^ --cc=clang -D CLANG_TEST $(VALAC_FLAGS) -o $@
VALAC_GCC_BUILD = valac $^ --cc=gcc -D GCC_TEST $(VALAC_FLAGS) -o $@
V_CLANG_BUILD = v $(V_FLAGS) -cc clang -o $@ $^
diff --git a/docker/Dockerfile b/docker/Dockerfile
index af651862..9360432e 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -10,8 +10,8 @@ RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10 \
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 10 \
&& update-alternatives --install /usr/bin/gdc gdc /usr/bin/gdc-12 10 \
&& update-alternatives --install /usr/bin/gccgo gccgo /usr/bin/gccgo-12 10 \
- && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 10 \
- && update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-13 10 \
+ && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 10 \
+ && update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-14 10 \
&& nuget update -self \
&& useradd -m dev
@@ -53,30 +53,30 @@ RUN curl \
ENV PATH="/home/dev/bin/$PYPY/bin:${PATH}"
# https://www.scala-lang.org/download/
-ARG SCALA=3.1.2
+ARG SCALA=3.2.0
RUN curl -L \
https://github.com/lampepfl/dotty/releases/download/$SCALA/scala3-$SCALA.tar.gz \
| tar -xz
ENV PATH="/home/dev/bin/scala3-$SCALA/bin/:${PATH}"
# https://jdk.java.net/
-ARG JDK=18.0.1.1
+ARG JDK=19
RUN curl \
- https://download.java.net/java/GA/jdk${JDK}/65ae32619e2f40f3a9af3af1851d6e19/2/GPL/openjdk-${JDK}_linux-x64_bin.tar.gz \
+ https://download.java.net/java/GA/jdk19/877d6127e982470ba2a7faa31cc93d04/36/GPL/openjdk-19_linux-x64_bin.tar.gz \
| tar -xz
ENV PATH="/home/dev/bin/jdk-$JDK/bin:${PATH}"
# https://github.com/crystal-lang/crystal/releases
-ARG CRYSTAL=crystal-1.4.1-1
+ARG CRYSTAL=crystal-1.5.1-1
RUN curl -L \
- https://github.com/crystal-lang/crystal/releases/download/1.4.1/$CRYSTAL-linux-x86_64.tar.gz \
+ https://github.com/crystal-lang/crystal/releases/download/1.5.1/$CRYSTAL-linux-x86_64.tar.gz \
| tar -xz
ENV PATH="/home/dev/bin/$CRYSTAL/bin:${PATH}"
# https://github.com/ldc-developers/ldc/releases
-ARG LDC=ldc2-1.29.0-linux-x86_64
+ARG LDC=ldc2-1.30.0-linux-x86_64
RUN curl -L \
- https://github.com/ldc-developers/ldc/releases/download/v1.29.0/$LDC.tar.xz \
+ https://github.com/ldc-developers/ldc/releases/download/v1.30.0/$LDC.tar.xz \
| tar -xJ
ENV PATH="/home/dev/bin/$LDC/bin/:${PATH}"
@@ -89,46 +89,46 @@ ENV PATH="/home/dev/bin/$NIM/bin/:${PATH}"
# https://dlang.org/download.html
RUN curl \
- https://s3.us-west-2.amazonaws.com/downloads.dlang.org/releases/2022/dmd.2.100.0.linux.tar.xz \
+ https://s3.us-west-2.amazonaws.com/downloads.dlang.org/releases/2022/dmd.2.100.2.linux.tar.xz \
| tar -xJ
ENV PATH="/home/dev/bin/dmd2/linux/bin64/:${PATH}"
# https://www.jruby.org/download
-ARG JRUBY=9.3.4.0
+ARG JRUBY=9.3.8.0
RUN curl \
https://repo1.maven.org/maven2/org/jruby/jruby-dist/$JRUBY/jruby-dist-$JRUBY-bin.tar.gz \
| tar -xz \
&& ln -s /home/dev/bin/jruby-$JRUBY/bin/jruby /home/dev/bin/jruby
# https://julialang.org/downloads/
-ARG JULIA=julia-1.7.3
+ARG JULIA=julia-1.8.1
RUN curl \
- https://julialang-s3.julialang.org/bin/linux/x64/1.7/$JULIA-linux-x86_64.tar.gz \
+ https://julialang-s3.julialang.org/bin/linux/x64/1.8/$JULIA-linux-x86_64.tar.gz \
| tar -xz
ENV PATH="/home/dev/bin/$JULIA/bin/:${PATH}"
+# https://clojure.org/guides/install_clojure
+ARG CLOJURE=1.11.1.1165
+RUN curl \
+ https://download.clojure.org/install/linux-install-$CLOJURE.sh \
+ | bash -s -- --prefix /home/dev/
+
# https://swift.org/download/
-ARG SWIFT=swift-5.6.1-RELEASE-ubuntu20.04
+ARG SWIFT=swift-5.7-RELEASE-ubuntu20.04
RUN curl -L \
- https://swift.org/builds/swift-5.6.1-release/ubuntu2004/swift-5.6.1-RELEASE/$SWIFT.tar.gz \
- | tar -xz \
+ https://download.swift.org/swift-5.7-release/ubuntu2004/swift-5.7-RELEASE/swift-5.7-RELEASE-ubuntu20.04.tar.gz \
+ | tar -xz \
&& ln -s /home/dev/bin/$SWIFT/usr/bin/swift /home/dev/bin/swift \
&& ln -s /home/dev/bin/$SWIFT/usr/bin/swiftc /home/dev/bin/swiftc
ENV LD_LIBRARY_PATH=/home/dev/bin/$SWIFT/usr/lib/swift/linux:$LD_LIBRARY_PATH
-# https://clojure.org/guides/install_clojure
-ARG CLOJURE=1.11.1.1113
-RUN curl \
- https://download.clojure.org/install/linux-install-$CLOJURE.sh \
- | bash -s -- --prefix /home/dev/
-
ENV GHCUP_INSTALL_BASE_PREFIX="/home/dev"
RUN curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org \
| BOOTSTRAP_HASKELL_NONINTERACTIVE="y" sh
ENV PATH="/home/dev/.ghcup/bin/:${PATH}"
# https://www.haskell.org/ghc/
-ARG GHC_VER=9.2.3
+ARG GHC_VER=9.4.2
RUN ghcup install ghc $GHC_VER && ghcup set ghc $GHC_VER
# Shared packages for all Haskell code
@@ -138,26 +138,25 @@ RUN cabal update \
ENV GHC_PACKAGE_PATH="~/.cabal/store/ghc-${GHC_VER}/package.db:"
# https://github.com/graalvm/graalvm-ce-builds/releases
-ARG GRAALVM=22.1.0
+ARG GRAALVM=22.2.0
RUN curl -L \
https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-$GRAALVM/graalvm-ce-java17-linux-amd64-$GRAALVM.tar.gz \
| tar -xz \
&& ln -s /home/dev/bin/graalvm-ce-java17-$GRAALVM/bin/gu /home/dev/bin/gu
RUN gu install ruby \
&& ln -s /home/dev/bin/graalvm-ce-java17-$GRAALVM/bin/truffleruby /home/dev/bin/truffleruby
-# TODO: uncomment after truffleruby properly supports OpenSSL 3
-# RUN /home/dev/bin/graalvm-ce-java17-$GRAALVM/languages/ruby/lib/truffle/post_install_hook.sh
+RUN /home/dev/bin/graalvm-ce-java17-$GRAALVM/languages/ruby/lib/truffle/post_install_hook.sh
# https://github.com/dotnet/core/tree/main/release-notes
RUN mkdir dotnet && curl \
- https://download.visualstudio.microsoft.com/download/pr/e075dadf-22a9-482b-9387-bf8341a4f837/ab20e3e34c2c8be290d9938590f208ed/dotnet-sdk-6.0.203-linux-x64.tar.gz \
+ https://download.visualstudio.microsoft.com/download/pr/8159607a-e686-4ead-ac99-b4c97290a5fd/ec6070b1b2cc0651ebe57cf1bd411315/dotnet-sdk-6.0.401-linux-x64.tar.gz \
| tar -xz -C dotnet
ENV PATH="/home/dev/bin/dotnet:${PATH}"
ENV DOTNET_ROOT="/home/dev/bin/dotnet"
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
# https://nodejs.org/en/download/current/
-ARG NODE=v18.2.0
+ARG NODE=v18.9.0
RUN curl \
https://nodejs.org/dist/$NODE/node-$NODE-linux-x64.tar.xz \
| tar -xJ
@@ -165,7 +164,7 @@ ENV PATH="/home/dev/bin/node-$NODE-linux-x64/bin/:${PATH}"
# https://golang.org/dl/
RUN curl -L \
- https://go.dev/dl/go1.18.2.linux-amd64.tar.gz \
+ https://go.dev/dl/go1.19.1.linux-amd64.tar.gz \
| tar -xz
ENV PATH="/home/dev/bin/go/bin/:${PATH}"
@@ -179,7 +178,7 @@ RUN opam init --disable-sandboxing -n --root=/home/dev/bin/opam --compiler=ocaml
ENV PATH="/home/dev/bin/opam/ocaml-base-compiler.$OCAML/bin/:${PATH}"
# https://kotlinlang.org/docs/command-line.html
-ARG KOTLIN=1.6.21
+ARG KOTLIN=1.7.10
RUN curl -L -o kotlin-compiler-$KOTLIN.zip \
https://github.com/JetBrains/kotlin/releases/download/v$KOTLIN/kotlin-compiler-$KOTLIN.zip \
&& unzip kotlin-compiler-$KOTLIN.zip \
@@ -187,14 +186,14 @@ RUN curl -L -o kotlin-compiler-$KOTLIN.zip \
ENV PATH="/home/dev/bin/kotlinc/bin/:${PATH}"
# https://download.racket-lang.org/
-ARG RACKET=8.5
+ARG RACKET=8.6
RUN curl -o racket-$RACKET-x86_64-linux-cs.sh \
https://www.cs.utah.edu/plt/installers/$RACKET/racket-$RACKET-x86_64-linux-cs.sh \
&& sh racket-$RACKET-x86_64-linux-cs.sh --unix-style --dest /home/dev/ \
&& rm racket-$RACKET-x86_64-linux-cs.sh
# https://github.com/vlang/v/releases
-ARG VLANG=weekly.2022.21
+ARG VLANG=weekly.2022.38
RUN curl -Lo v_linux.zip \
https://github.com/vlang/v/releases/download/$VLANG/v_linux.zip \
&& unzip -q v_linux.zip \
@@ -210,7 +209,7 @@ ENV PATH="/home/dev/bin/$ZIG/:${PATH}"
# Using more stable LuaJIT, used in Alpine and other distros
# https://github.com/openresty/luajit2/tags
-RUN export VERSION=2.1-20220411 \
+RUN export VERSION=2.1-20220915 \
&& curl -L \
https://github.com/openresty/luajit2/archive/refs/tags/v$VERSION.tar.gz \
| tar -xz \
diff --git a/docker/apt.pkgs b/docker/apt.pkgs
index 8202f677..894db7b1 100644
--- a/docker/apt.pkgs
+++ b/docker/apt.pkgs
@@ -1,51 +1,49 @@
build-essential=12.9
chezscheme=9.5.4+dfsg-4
-clang-13=1:13.0.1-6
-cmake=3.23.2-1
+clang-14=1:14.0.6-2
+cmake=3.24.2-1
cpanminus=1.7046-1
-curl=7.83.1-2
+curl=7.85.0-1
elixir=1.12.2.dfsg-2.2
-gcc-12=12.1.0-2
-gccgo-12=12.1.0-2
-gdc-12=12.1.0-2
+gcc-12=12.2.0-2
+gccgo-12=12.2.0-2
+gdc-12=12.2.0-2
git=1:2.35.1-1
lbzip2=2.5-2.3
libblas-dev=3.10.1-2
-libc++-13-dev=1:13.0.1-6
-libc++abi-13-dev=1:13.0.1-6
+libc++-13-dev=1:13.0.1-7
+libc++abi-13-dev=1:13.0.1-7
libevent-dev=2.1.12-stable-5+b1
libgmp-dev=2:6.2.1+dfsg1-1
libjq-dev=1.6-2.1
libjson-c-dev=0.16-1
libjson-glib-dev=1.6.6-1
liblapack-dev=3.10.1-2
-liblua5.4-dev=5.4.4-2
-libnuma-dev=2.0.14-3
-libomp-13-dev=1:13.0.1-6
+liblua5.4-dev=5.4.4-3
+libnuma-dev=2.0.15-1
+libomp-14-dev=1:14.0.6-2
libonig-dev=6.9.8-1
-libopenblas-dev=0.3.20+ds-2
+libopenblas-dev=0.3.21+ds-2
libpcre3-dev=2:8.39-14
-libssl-dev=3.0.3-8
-libssl1.1=1.1.1o-1
+libssl-dev=3.0.5-2
libtinfo5=6.3+20220423-2
libtool=2.4.7-4
libtool-bin=2.4.7-4
-libxml2=2.9.14+dfsg-1
-locales=2.33-7
-locales-all=2.33-7
-lua5.4=5.4.4-2
+libxml2=2.9.14+dfsg-1+b1
+locales=2.34-8
+locales-all=2.34-8
+lua5.4=5.4.4-3
mono-devel=6.8.0.105+dfsg-3.2
nuget=2.8.7+md510+dhx1-1.1
opam=2.1.2-1
php=2:8.1+92
powercap-utils=0.6.0-1
-python3=3.10.4-1+b1
-python3-numpy=1:1.21.5-1
-python3-pip=22.1.1+dfsg-1
-python3-ujson=5.3.0-1
+python3=3.10.6-1
+python3-numpy=1:1.21.5-1+b1
+python3-pip=22.2+dfsg-1
+python3-ujson=5.5.0-1
tcl=8.6.11+1
tcllib=1.21+dfsg-1
-valac=0.56.1-1
-vim=2:8.2.4793-1
+valac=0.56.3-1
+vim=2:9.0.0242-1
xz-utils=5.2.5-2.1
-zlib1g=1:1.2.11.dfsg-4
diff --git a/json/Makefile b/json/Makefile
index 86f2752f..1d0947f7 100644
--- a/json/Makefile
+++ b/json/Makefile
@@ -158,12 +158,12 @@ target/json_go_gccgo: test.go | $(gofmt)
# Boost releases:
# https://www.boost.org/users/download/
-BOOST_VERSION := boost_1_79_0
+BOOST_VERSION := boost_1_80_0
boost = target/$(BOOST_VERSION)
$(boost): | target
cd target && \
curl -L \
- https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/$(BOOST_VERSION).tar.bz2 \
+ https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/$(BOOST_VERSION).tar.bz2 \
| tar -xj
nlohmann_json := target/nlohmann_json
diff --git a/matmul/java-nd4j/Maven.list b/matmul/java-nd4j/Maven.list
index 31bcfc9a..1f810d30 100644
--- a/matmul/java-nd4j/Maven.list
+++ b/matmul/java-nd4j/Maven.list
@@ -2,12 +2,12 @@
#
# lines starting with # are ignored
#
-org.nd4j:nd4j-native:1.0.0-M2
+org.nd4j:nd4j-native:1.0.0-M2.1
# Usage reference: https://deeplearning4j.konduit.ai/multi-project/explanation/configuration/backends/cpu
-org.nd4j:nd4j-native:1.0.0-M2,classifier=linux-x86_64-avx512
+org.nd4j:nd4j-native:1.0.0-M2.1,classifier=linux-x86_64-avx512
# Proper logging makes the results more stable (and faster,
# probably because less classpath checks are happening)
-org.slf4j:slf4j-api:1.7.36
-org.slf4j:slf4j-simple:1.7.36
+org.slf4j:slf4j-api:2.0.2
+org.slf4j:slf4j-simple:2.0.2
diff --git a/matmul/matmul_d_lubeck.d b/matmul/matmul_d_lubeck.d
index d665c831..534d0914 100644
--- a/matmul/matmul_d_lubeck.d
+++ b/matmul/matmul_d_lubeck.d
@@ -1,6 +1,7 @@
#!/usr/bin/env dub
/+dub.sdl:
dependency "lubeck" version="~>1.5.1"
+dependency "mir-algorithm" version="~>3.15.3"
libs "lapack" "blas"
targetPath "target"
+/
diff --git a/primes/Makefile b/primes/Makefile
index 01a1e869..d481cb90 100644
--- a/primes/Makefile
+++ b/primes/Makefile
@@ -11,7 +11,7 @@ executables := \
target/primes_zig \
target/primes_nim_clang \
target/primes_nim_gcc
-
+
artifacts := $(executables) \
target/primes_scala.jar \
target/Primes.class
diff --git a/primes/primes.nim b/primes/primes.nim
index 4ddb21b4..589ecae4 100644
--- a/primes/primes.nim
+++ b/primes/primes.nim
@@ -1,8 +1,8 @@
-import strformat, strutils, sequtils
+import deques
import net
-import tables
import posix
-import deques
+import strformat, strutils, sequtils
+import tables
const UPPER_BOUND: int = 5_000_000
@@ -11,7 +11,7 @@ const PREFIX: int = 32_338
type
NodeRef = ref Node
Node = object
- children: Table[char, NodeRef]
+ children: OrderedTable[char, NodeRef]
terminal: bool
Sieve = object
limit: int
@@ -123,7 +123,7 @@ when isMainModule:
var compiler = "Nim/clang"
when defined(gcc):
compiler = "Nim/gcc"
- notify(fmt"{compiler}\t{getpid()}")
+ notify(&"{compiler}\t{getpid()}")
let result = find(UPPER_BOUND, PREFIX)
notify("stop")
echo result