Johan Fylling
a179a24c48
v1 API
...
All packages, except for `cmd` and `internal`, have been moved into a new `v1` root package.
Old packages are kept for backwards-compatibility reasons. All contained code is replaced with simple type aliases and proxy functions to `v1` implementations.
Old packages default to the Rego v0 syntax, new `v1` packages default to the Rego v1 syntax.
Signed-off-by: Johan Fylling <johan.dev@fylling.se >
2024-12-12 15:27:34 +01:00
Teemu Koponen
c44f3d714c
ast: Generic/BeforeAfter/Var Visitor specific Walk implementations.
...
Unlike the generic Walk implementations, they don't necessitate
allocating the visitor itself from heap.
This deprecates ast.Visitor, ast.BeforeAndAfterVisitor, ast.Walk, and
ast.WalkBeforeAndAfter.
Benchmarks changed:
name old time/op new time/op delta
PartialEval/1-16 6.41µs ± 1% 6.35µs ± 1% -1.01% (p=0.001 n=10+10)
PartialEval/10-16 6.47µs ± 1% 6.37µs ± 1% -1.48% (p=0.000 n=10+10)
PartialEval/100-16 6.81µs ± 1% 6.78µs ± 1% -0.44% (p=0.041 n=9+10)
PartialEval/1000-16 6.64µs ± 2% 6.57µs ± 2% -1.02% (p=0.037 n=10+10)
PartialEvalCompile/1-16 3.08ms ± 0% 2.99ms ± 0% -2.73% (p=0.000 n=8+9)
PartialEvalCompile/10-16 4.17ms ± 0% 3.97ms ± 1% -4.67% (p=0.000 n=9+9)
PartialEvalCompile/100-16 25.1ms ± 1% 22.9ms ± 1% -8.67% (p=0.000 n=9+10)
PartialEvalCompile/1000-16 1.27s ± 2% 1.20s ± 1% -5.37% (p=0.000 n=10+9)
InliningFullScan/1000-16 5.24ms ± 1% 4.83ms ± 1% -7.75% (p=0.000 n=10+10)
InliningFullScan/10000-16 55.0ms ± 0% 51.0ms ± 1% -7.25% (p=0.000 n=9+10)
InliningFullScan/300000-16 1.59s ± 1% 1.48s ± 1% -6.63% (p=0.000 n=9+9)
name old alloc/op new alloc/op delta
Concurrency1-16 100MB ± 0% 100MB ± 0% -0.05% (p=0.000 n=10+10)
Concurrency2-16 100MB ± 0% 100MB ± 0% -0.05% (p=0.000 n=10+10)
Concurrency4-16 100MB ± 0% 100MB ± 0% -0.05% (p=0.000 n=9+10)
Concurrency8-16 100MB ± 0% 100MB ± 0% -0.05% (p=0.000 n=10+10)
Concurrency4Readers1Writer-16 100MB ± 0% 100MB ± 0% -0.05% (p=0.000 n=10+10)
Concurrency8Writers-16 100MB ± 0% 100MB ± 0% -0.05% (p=0.000 n=10+10)
PartialEvalCompile/1-16 1.31MB ± 0% 1.29MB ± 0% -1.10% (p=0.000 n=8+9)
PartialEvalCompile/10-16 1.74MB ± 0% 1.70MB ± 0% -2.42% (p=0.000 n=9+10)
PartialEvalCompile/100-16 8.90MB ± 0% 8.58MB ± 0% -3.58% (p=0.000 n=10+9)
PartialEvalCompile/1000-16 370MB ± 0% 366MB ± 0% -0.84% (p=0.000 n=9+9)
Walk/100-16 361kB ± 0% 360kB ± 0% -0.32% (p=0.000 n=10+10)
Walk/1000-16 413kB ± 0% 412kB ± 0% -0.28% (p=0.000 n=10+10)
Walk/2000-16 471kB ± 0% 470kB ± 0% -0.24% (p=0.000 n=10+10)
Walk/3000-16 527kB ± 0% 526kB ± 0% -0.22% (p=0.000 n=9+10)
InliningFullScan/1000-16 2.77MB ± 0% 2.68MB ± 0% -3.18% (p=0.000 n=9+10)
InliningFullScan/10000-16 28.2MB ± 0% 27.4MB ± 0% -3.12% (p=0.000 n=10+10)
InliningFullScan/300000-16 852MB ± 0% 825MB ± 0% -3.10% (p=0.000 n=10+9)
Signed-off-by: Teemu Koponen <koponen@styra.com >
2020-01-22 18:32:54 -05:00