Skip to content

ast: Clean up code for value comparisons#8737

Merged
anderseknert merged 1 commit into
open-policy-agent:mainfrom
anderseknert:better-compare
Jun 4, 2026
Merged

ast: Clean up code for value comparisons#8737
anderseknert merged 1 commit into
open-policy-agent:mainfrom
anderseknert:better-compare

Conversation

@anderseknert
Copy link
Copy Markdown
Member

@anderseknert anderseknert commented Jun 4, 2026

The ast.Compare(any, any) function is a beast better avoided, and the any args type mean some AST values (like strings) escape to the heap when boxed.

Previous work already ensured it wasn't called too often — this just moves it further along by having all ast.Values do their own comparisons with the help of a new function to easily compare 2 different value types.

Also:

  • topdown: slightly cheaper object.union_n implementation
  • eval: remove unused expr field on evalNot
  • eval: rename fmtVarTerm -> fmtVar
  • term: remove unused termSlice type
  • builtins: cheaper Builtin.Ref()

The `ast.Compare(any, any)` function is a beast better avoided,
and the `any` args type mean some AST values (like strings)
escape to the heap when boxed.

Previous work already ensured it wasn't called too often — this
just moves it further along by having all `ast.Value`s do their
own comparisons with the help of a new function to easily compare
2 different value types.

Also:
- topdown: slightly cheaper object.union_n implementation
- eval: remove unused expr field on evalNot
- eval: rename fmtVarTerm -> fmtVar
- term: remove unused termSlice type
- builtins: cheaper Builtin.Ref()

Signed-off-by: Anders Eknert <anders.eknert@apple.com>
@anderseknert anderseknert enabled auto-merge (squash) June 4, 2026 13:04
@anderseknert anderseknert merged commit 511fe48 into open-policy-agent:main Jun 4, 2026
40 checks passed
@anderseknert anderseknert deleted the better-compare branch June 4, 2026 13:09
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 4, 2026

Benchmark Comparison ( vs )

benchmark \ host                         local:tags=opa_wasm
                                                     vs base
PartialObjectRuleCrossModule/10                            ~
PartialObjectRuleCrossModule/100                           ~
PartialObjectRuleCrossModule/1000                          ~
AciTestBuildAndEval                                        ~
AciTestOnlyEval                                            ~
ArrayIteration                                        -5.57%
SetIteration                                               ~
ObjectIteration                                            ~
StoreRefNotFound/inmem-go                                  ~
StoreRefNotFound/inmem-ast                                 ~
StoreRead                                                  ~
TrivialPolicy                                              ~
TrivialQuery                                               ~
GlobalVsLocalLookup/global_ref                             ~
GlobalVsLocalLookup/local_var                              ~
AggregatedLabels/off                                       ~
AggregatedLabels/on                                        ~
TrivialPolicyTargets/topdown                               ~
TrivialPolicyTargets/wasm                                  ~
ArrayIterationTargets/topdown                              ~
ArrayIterationTargets/wasm                                 ~
SimpleAuthzTargets/topdown                                 ~
SimpleAuthzTargets/wasm                               +2.90%
BuiltinPerformanceTargets/topdown                          ~
BuiltinPerformanceTargets/wasm                             ~
DataSizesTargets/10/topdown                                ~
DataSizesTargets/10/wasm                                   ~
DataSizesTargets/100/topdown                               ~
DataSizesTargets/100/wasm                                  ~
DataSizesTargets/1000/topdown                              ~
DataSizesTargets/1000/wasm                                 ~
PolicyComplexityTargets/10/topdown                         ~
PolicyComplexityTargets/10/wasm                            ~
PolicyComplexityTargets/100/topdown                        ~
PolicyComplexityTargets/100/wasm                           ~
PolicyComplexityTargets/1000/topdown                       ~
PolicyComplexityTargets/1000/wasm                          ~
WASMCompilationTargets/topdown                        -1.35%
WASMCompilationTargets/wasm                           +1.39%
WASMColdStartTargets/topdown                               ~
WASMColdStartTargets/wasm                             +1.59%
MemoryAllocationTargets/100/topdown                        ~
MemoryAllocationTargets/100/wasm                           ~
MemoryAllocationTargets/1000/topdown                       ~
MemoryAllocationTargets/1000/wasm                          ~
MemoryAllocationTargets/10000/topdown                      ~
MemoryAllocationTargets/10000/wasm                         ~
BundleSizeTargets/small/topdown                       -2.31%
BundleSizeTargets/small/wasm                               ~
BundleSizeTargets/medium/topdown                      -0.98%
BundleSizeTargets/medium/wasm                              ~
BundleSizeTargets/large/topdown                            ~
BundleSizeTargets/large/wasm                               ~

benchmark \ host                                                               local:tags=opa_wasm
                                                                                           vs base
SumIntArray                                                                                 +3.98%
SumFloatArray                                                                                    ~
SumIntSet                                                                                   +2.69%
SumFloatSet                                                                                      ~
BindingsAllocation/1_binding_without_hint                                                   +5.01%
BindingsAllocation/1_binding_with_hint                                                           ~
BindingsAllocation/2_bindings_without_hint                                                  +3.74%
BindingsAllocation/2_bindings_with_hint                                                          ~
BindingsAllocation/3_bindings_without_hint                                                       ~
BindingsAllocation/3_bindings_with_hint                                                          ~
BindingsAllocation/5_bindings_without_hint                                                       ~
BindingsAllocation/5_bindings_with_hint                                                          ~
BindingsAllocation/10_bindings_without_hint                                                      ~
BindingsAllocation/10_bindings_with_hint                                                         ~
BindingsAllocation/16_bindings_without_hint                                                 +3.85%
BindingsAllocation/16_bindings_with_hint                                                         ~
BindingsAllocation/20_bindings_without_hint                                                 +3.03%
BindingsAllocation/20_bindings_with_hint                                                         ~
BindingsAllocation/50_bindings_without_hint                                                 +3.36%
BindingsAllocation/50_bindings_with_hint                                                         ~
FunctionArgumentCounts/1_args                                                                    ~
FunctionArgumentCounts/2_args                                                                    ~
FunctionArgumentCounts/3_args                                                               +0.84%
FunctionArgumentCounts/5_args                                                                    ~
FunctionArgumentCounts/10_args                                                                   ~
FunctionArgumentCounts/15_args                                                                   ~
FunctionArgumentCounts/20_args                                                                   ~
BindingsArrayHashmapTransition/without_hint_transition_at_17                                     ~
BindingsArrayHashmapTransition/with_hint_starts_with_map                                         ~
VirtualCache                                                                                     ~
ComprehensionBindings/ArrayComp_1Var                                                             ~
ComprehensionBindings/ArrayComp_2Vars                                                            ~
ComprehensionBindings/ArrayComp_3Vars                                                            ~
ComprehensionBindings/SetComp_1Var                                                               ~
ComprehensionBindings/SetComp_2Vars                                                              ~
ComprehensionBindings/ObjectComp_2Vars                                                           ~
ComprehensionBindings/ObjectComp_3Vars                                                           ~
ComprehensionLargeIteration/ArrayComp_20Elements                                                 ~
ComprehensionLargeIteration/SetComp_20Elements                                                   ~
ComprehensionLargeIteration/NestedComp                                                           ~
ComprehensionOptimizationComparison/SimpleArrayComp                                              ~
ComprehensionOptimizationComparison/SimpleSetComp                                                ~
ComprehensionOptimizationComparison/SimpleObjectComp                                             ~
ComprehensionOptimizationComparison/MultiExpressionComp                                          ~
ComprehensionOptimizationComparison/NestedComprehension                                          ~
ComprehensionHighFrequency/Violations                                                            ~
ComprehensionHighFrequency/ShortLines                                                            ~
ComprehensionHighFrequency/FileStats                                                             ~
Md5                                                                                              ~
YAMLMarshal                                                                                      ~
YAMLUnmarshal                                                                               -1.30%
EnumerateComprehensions/size_1000                                                                ~
EnumerateComprehensions/size_5000                                                                ~
EnumerateComprehensions/size_10000                                                               ~
EnumerateRandomAccess                                                                            ~
FormatVarTerm                                                                                    ~
BuiltinGlobMatch/reuse-pattern=true,_pattern-count=10                                            ~
BuiltinGlobMatch/reuse-pattern=true,_pattern-count=100                                           ~
BuiltinGlobMatch/reuse-pattern=true,_pattern-count=1000                                          ~
BuiltinGlobMatch/reuse-pattern=false,_pattern-count=10                                           ~
BuiltinGlobMatch/reuse-pattern=false,_pattern-count=100                                          ~
BuiltinGlobMatch/reuse-pattern=false,_pattern-count=1000                                         ~
BuiltinGlobMatchAsync/reuse-pattern=true,_clients=100,_pattern-count=10                          ~
BuiltinGlobMatchAsync/reuse-pattern=true,_clients=100,_pattern-count=100                         ~
BuiltinGlobMatchAsync/reuse-pattern=true,_clients=100,_pattern-count=1000                        ~
BuiltinGlobMatchAsync/reuse-pattern=true,_clients=200,_pattern-count=10                          ~
BuiltinGlobMatchAsync/reuse-pattern=true,_clients=200,_pattern-count=100                         ~
BuiltinGlobMatchAsync/reuse-pattern=true,_clients=200,_pattern-count=1000                        ~
BuiltinGlobMatchAsync/reuse-pattern=false,_clients=100,_pattern-count=10                         ~
BuiltinGlobMatchAsync/reuse-pattern=false,_clients=100,_pattern-count=100                        ~
BuiltinGlobMatchAsync/reuse-pattern=false,_clients=100,_pattern-count=1000                       ~
BuiltinGlobMatchAsync/reuse-pattern=false,_clients=200,_pattern-count=10                         ~
BuiltinGlobMatchAsync/reuse-pattern=false,_clients=200,_pattern-count=100                        ~
BuiltinGlobMatchAsync/reuse-pattern=false,_clients=200,_pattern-count=1000                       ~
GraphQLSchemaIsValid/Trivial_Schema_-_string                                                     ~
GraphQLSchemaIsValid/Trivial_Schema_with_cache_-_string                                          ~
GraphQLSchemaIsValid/Schema_w/_1000_types_-_string                                               ~
GraphQLSchemaIsValid/Schema_w/_1000_types_with_cache_-_string                                    ~
GraphQLSchemaIsValid/Trivial_Schema_-_AST_object                                                 ~
GraphQLSchemaIsValid/Trivial_Schema_with_cache_-_AST_object                                      ~
GraphQLParseSchema/Trivial_Schema_-_string                                                       ~
GraphQLParseSchema/Trivial_Schema_with_cache_-_string                                      -33.98%
GraphQLParseQuery/Trivial_Query_-_string                                                         ~
GraphQLParseQuery/Trivial_Query_with_cache_-_string                                              ~
GraphQLIsValid/Trivial_Schema_-_string                                                           ~
GraphQLIsValid/Trivial_Schema_with_cache_-_string                                                ~
GraphQLIsValid/Schema_w/_1000_types_-_string                                                     ~
GraphQLIsValid/Schema_w/_1000_types_with_cache_-_string                                          ~
GraphQLParse/Trivial_Schema_-_string                                                        -0.94%
GraphQLParse/Trivial_Schema_with_cache_-_string                                             -3.17%
GraphQLParseAndVerify/Trivial_Schema_-_string                                                    ~
GraphQLParseAndVerify/Trivial_Schema_with_cache_-_string                                    +2.50%
JSONRemoveArray/size=10                                                                          ~
JSONRemoveArray/size=100                                                                         ~
JSONRemoveArray/size=1000                                                                        ~
JSONRemoveArray/size=5000                                                                        ~
JSONFilterArray/size=10                                                                     -1.20%
JSONFilterArray/size=100                                                                    -1.20%
JSONFilterArray/size=1000                                                                   -1.27%
JSONFilterArray/size=5000                                                                        ~
JSONFilterArrayIndices/size=10                                                                   ~
JSONFilterArrayIndices/size=100                                                                  ~
JSONFilterArrayIndices/size=1000                                                                 ~
JSONFilterArrayIndices/size=5000                                                                 ~
JSONPatchAddShallowScalar/object-10                                                              ~
JSONPatchAddShallowScalar/object-100                                                             ~
JSONPatchAddShallowScalar/object-1000                                                            ~
JSONPatchAddShallowScalar/object-10000                                                           ~
JSONPatchAddShallowScalar/array-10                                                               ~
JSONPatchAddShallowScalar/array-100                                                              ~
JSONPatchAddShallowScalar/array-1000                                                             ~
JSONPatchAddShallowScalar/array-10000                                                            ~
JSONPatchAddShallowScalar/set-10                                                                 ~
JSONPatchAddShallowScalar/set-100                                                                ~
JSONPatchAddShallowScalar/set-1000                                                               ~
JSONPatchAddShallowScalar/set-10000                                                              ~
JSONPatchAddShallowComposite/object-10-10                                                        ~
JSONPatchAddShallowComposite/object-10-100                                                       ~
JSONPatchAddShallowComposite/object-10-1000                                                      ~
JSONPatchAddShallowComposite/object-10-10000                                                     ~
JSONPatchAddShallowComposite/object-100-10                                                       ~
JSONPatchAddShallowComposite/object-100-100                                                      ~
JSONPatchAddShallowComposite/object-100-1000                                                     ~
JSONPatchAddShallowComposite/object-100-10000                                                    ~
JSONPatchAddShallowComposite/object-1000-10                                                      ~
JSONPatchAddShallowComposite/object-1000-100                                                     ~
JSONPatchAddShallowComposite/object-1000-1000                                                    ~
JSONPatchAddShallowComposite/object-1000-10000                                                   ~
JSONPatchAddShallowComposite/object-10000-10                                                     ~
JSONPatchAddShallowComposite/object-10000-100                                                    ~
JSONPatchAddShallowComposite/object-10000-1000                                                   ~
JSONPatchAddShallowComposite/object-10000-10000                                                  ~
JSONPatchAddShallowComposite/array-10-10                                                         ~
JSONPatchAddShallowComposite/array-10-100                                                   +2.12%
JSONPatchAddShallowComposite/array-10-1000                                                       ~
JSONPatchAddShallowComposite/array-10-10000                                                 +1.19%
JSONPatchAddShallowComposite/array-100-10                                                        ~
JSONPatchAddShallowComposite/array-100-100                                                  +1.98%
JSONPatchAddShallowComposite/array-100-1000                                                      ~
JSONPatchAddShallowComposite/array-100-10000                                                     ~
JSONPatchAddShallowComposite/array-1000-10                                                       ~
JSONPatchAddShallowComposite/array-1000-100                                                 +0.77%
JSONPatchAddShallowComposite/array-1000-1000                                                     ~
JSONPatchAddShallowComposite/array-1000-10000                                                    ~
JSONPatchAddShallowComposite/array-10000-10                                                      ~
JSONPatchAddShallowComposite/array-10000-100                                                     ~
JSONPatchAddShallowComposite/array-10000-1000                                                    ~
JSONPatchAddShallowComposite/array-10000-10000                                                   ~
JSONPatchAddShallowComposite/set-10-10                                                      -4.92%
JSONPatchAddShallowComposite/set-10-100                                                     -8.65%
JSONPatchAddShallowComposite/set-10-1000                                                    -6.31%
JSONPatchAddShallowComposite/set-10-10000                                                   -4.43%
JSONPatchAddShallowComposite/set-100-10                                                    -15.43%
JSONPatchAddShallowComposite/set-100-100                                                   -13.75%
JSONPatchAddShallowComposite/set-100-1000                                                   -8.80%
JSONPatchAddShallowComposite/set-100-10000                                                  -5.54%
JSONPatchAddShallowComposite/set-1000-10                                                   -16.60%
JSONPatchAddShallowComposite/set-1000-100                                                  -15.80%
JSONPatchAddShallowComposite/set-1000-1000                                                 -13.31%
JSONPatchAddShallowComposite/set-1000-10000                                                 -6.63%
JSONPatchAddShallowComposite/set-10000-10                                                  -14.14%
JSONPatchAddShallowComposite/set-10000-100                                                 -13.46%
JSONPatchAddShallowComposite/set-10000-1000                                                -12.41%
JSONPatchAddShallowComposite/set-10000-10000                                               -10.71%
JSONPatchAddRemove/object-10-10                                                                  ~
JSONPatchAddRemove/object-10-100                                                                 ~
JSONPatchAddRemove/object-10-1000                                                                ~
JSONPatchAddRemove/object-10-10000                                                               ~
JSONPatchAddRemove/object-100-10                                                                 ~
JSONPatchAddRemove/object-100-100                                                                ~
JSONPatchAddRemove/object-100-1000                                                          +0.79%
JSONPatchAddRemove/object-100-10000                                                              ~
JSONPatchAddRemove/object-1000-10                                                                ~
JSONPatchAddRemove/object-1000-100                                                               ~
JSONPatchAddRemove/object-1000-1000                                                              ~
JSONPatchAddRemove/object-1000-10000                                                             ~
JSONPatchAddRemove/object-10000-10                                                               ~
JSONPatchAddRemove/object-10000-100                                                              ~
JSONPatchAddRemove/object-10000-1000                                                             ~
JSONPatchAddRemove/object-10000-10000                                                            ~
JSONPatchAddRemove/array-10-10                                                                   ~
JSONPatchAddRemove/array-10-100                                                             +5.12%
JSONPatchAddRemove/array-10-1000                                                            +2.77%
JSONPatchAddRemove/array-10-10000                                                                ~
JSONPatchAddRemove/array-100-10                                                             +1.64%
JSONPatchAddRemove/array-100-100                                                            +2.75%
JSONPatchAddRemove/array-100-1000                                                           +3.23%
JSONPatchAddRemove/array-100-10000                                                               ~
JSONPatchAddRemove/array-1000-10                                                                 ~
JSONPatchAddRemove/array-1000-100                                                           +3.01%
JSONPatchAddRemove/array-1000-1000                                                          +2.98%
JSONPatchAddRemove/array-1000-10000                                                         +2.04%
JSONPatchAddRemove/array-10000-10                                                           +0.96%
JSONPatchAddRemove/array-10000-100                                                               ~
JSONPatchAddRemove/array-10000-1000                                                         +2.29%
JSONPatchAddRemove/array-10000-10000                                                        +1.76%
JSONPatchAddRemove/set-10-10                                                                     ~
JSONPatchAddRemove/set-10-100                                                                    ~
JSONPatchAddRemove/set-10-1000                                                                   ~
JSONPatchAddRemove/set-10-10000                                                                  ~
JSONPatchAddRemove/set-100-10                                                                    ~
JSONPatchAddRemove/set-100-100                                                                   ~
JSONPatchAddRemove/set-100-1000                                                                  ~
JSONPatchAddRemove/set-100-10000                                                                 ~
JSONPatchAddRemove/set-1000-10                                                                   ~
JSONPatchAddRemove/set-1000-100                                                                  ~
JSONPatchAddRemove/set-1000-1000                                                                 ~
JSONPatchAddRemove/set-1000-10000                                                                ~
JSONPatchAddRemove/set-10000-10                                                                  ~
JSONPatchAddRemove/set-10000-100                                                            +1.28%
JSONPatchAddRemove/set-10000-1000                                                                ~
JSONPatchAddRemove/set-10000-10000                                                               ~
JSONPatchReplace/10x10x10-10p                                                                    ~
JSONPatchReplace/10x10x10-100p                                                                   ~
JSONPatchReplace/10x10x10-1000p                                                                  ~
JSONPatchReplace/10x100x10-10p                                                                   ~
JSONPatchReplace/10x100x10-100p                                                                  ~
JSONPatchReplace/10x100x10-1000p                                                                 ~
JSONPatchReplace/10x1000x10-10p                                                                  ~
JSONPatchReplace/10x1000x10-100p                                                                 ~
JSONPatchReplace/10x1000x10-1000p                                                                ~
JSONPatchReplace/100x10x10-10p                                                                   ~
JSONPatchReplace/100x10x10-100p                                                                  ~
JSONPatchReplace/100x10x10-1000p                                                                 ~
JSONPatchReplace/100x100x10-10p                                                                  ~
JSONPatchReplace/100x100x10-100p                                                                 ~
JSONPatchReplace/100x100x10-1000p                                                                ~
JSONPatchReplace/100x1000x10-10p                                                                 ~
JSONPatchReplace/100x1000x10-100p                                                                ~
JSONPatchReplace/100x1000x10-1000p                                                               ~
JSONPatchReplace/1000x10x10-10p                                                                  ~
JSONPatchReplace/1000x10x10-100p                                                                 ~
JSONPatchReplace/1000x10x10-1000p                                                                ~
JSONPatchReplace/1000x100x10-10p                                                                 ~
JSONPatchReplace/1000x100x10-100p                                                                ~
JSONPatchReplace/1000x100x10-1000p                                                               ~
JSONPatchReplace/1000x1000x10-10p                                                                ~
JSONPatchReplace/1000x1000x10-100p                                                               ~
JSONPatchReplace/1000x1000x10-1000p                                                              ~
JSONPatchPathologicalNestedAddChainObject/10                                                     ~
JSONPatchPathologicalNestedAddChainObject/100                                                    ~
JSONPatchPathologicalNestedAddChainObject/500                                                    ~
JSONPatchPathologicalNestedAddChainObject/1000                                                   ~
JSONPatchPathologicalNestedAddChainObject/5000                                                   ~
JSONPatchPathologicalNestedAddChainObject/10000                                                  ~
JSONPatchPathologicalNestedAddChainArray/10                                                      ~
JSONPatchPathologicalNestedAddChainArray/100                                                     ~
JSONPatchPathologicalNestedAddChainArray/500                                                     ~
JSONPatchPathologicalNestedAddChainArray/1000                                                    ~
JSONPatchPathologicalNestedAddChainArray/5000                                                    ~
JSONPatchPathologicalNestedAddChainArray/10000                                                   ~
JSONPatchPathologicalNestedAddChainSet/10                                                  -14.22%
JSONPatchPathologicalNestedAddChainSet/100                                                 -43.81%
JSONPatchPathologicalNestedAddChainSet/500                                                 -63.85%
JSONPatchPathologicalNestedAddChainSet/1000                                                -68.46%
NumbersRange/interned                                                                            ~
NumbersRange/not_interned                                                                        ~
NumbersRangeStep/interned                                                                        ~
NumbersRangeStep/not_interned                                                                    ~
ObjectUnionN/10x10                                                                        +299.47%
ObjectUnionN/10x100                                                                       +494.35%
ObjectUnionN/10x250                                                                       +521.80%
ObjectUnionN/100x10                                                                      +5653.32%
ObjectUnionN/100x100                                                                    +10549.84%
ObjectUnionN/100x250                                                                     +9815.57%
ObjectUnionN/250x10                                                                      +9799.50%
ObjectUnionN/250x100                                                                    +20136.51%
ObjectUnionN/250x250                                                                    +18312.75%
ObjectUnionNSlow/10x10                                                                           ~
ObjectUnionNSlow/10x100                                                                          ~
ObjectUnionNSlow/10x250                                                                          ~
ObjectUnionNSlow/100x10                                                                          ~
ObjectUnionNSlow/100x100                                                                         ~
ObjectUnionNSlow/100x250                                                                         ~
ObjectUnionNSlow/250x10                                                                          ~
ObjectUnionNSlow/250x100                                                                         ~
ObjectUnionNSlow/250x250                                                                         ~
ObjectGetFound                                                                                   ~
ObjectGetNotFound                                                                                ~
BuiltinRegexMatch/reuse-pattern=true,_pattern-count=10                                           ~
BuiltinRegexMatch/reuse-pattern=true,_pattern-count=100                                          ~
BuiltinRegexMatch/reuse-pattern=true,_pattern-count=1000                                         ~
BuiltinRegexMatch/reuse-pattern=false,_pattern-count=10                                          ~
BuiltinRegexMatch/reuse-pattern=false,_pattern-count=100                                         ~
BuiltinRegexMatch/reuse-pattern=false,_pattern-count=1000                                        ~
BuiltinRegexMatchAsync/reuse-pattern=true,_clients=100,_pattern-count=10                         ~
BuiltinRegexMatchAsync/reuse-pattern=true,_clients=100,_pattern-count=100                        ~
BuiltinRegexMatchAsync/reuse-pattern=true,_clients=100,_pattern-count=1000                       ~
BuiltinRegexMatchAsync/reuse-pattern=true,_clients=200,_pattern-count=10                         ~
BuiltinRegexMatchAsync/reuse-pattern=true,_clients=200,_pattern-count=100                        ~
BuiltinRegexMatchAsync/reuse-pattern=true,_clients=200,_pattern-count=1000                       ~
BuiltinRegexMatchAsync/reuse-pattern=false,_clients=100,_pattern-count=10                        ~
BuiltinRegexMatchAsync/reuse-pattern=false,_clients=100,_pattern-count=100                       ~
BuiltinRegexMatchAsync/reuse-pattern=false,_clients=100,_pattern-count=1000                      ~
BuiltinRegexMatchAsync/reuse-pattern=false,_clients=200,_pattern-count=10                        ~
BuiltinRegexMatchAsync/reuse-pattern=false,_clients=200,_pattern-count=100                       ~
BuiltinRegexMatchAsync/reuse-pattern=false,_clients=200,_pattern-count=1000                      ~
RuleBindings/Rule_1Expr                                                                          ~
RuleBindings/Rule_2Exprs                                                                         ~
RuleBindings/Rule_3Exprs                                                                         ~
RuleBindings/Rule_5Exprs                                                                         ~
RuleBindings/Rule_10Exprs                                                                        ~
RuleWithComprehensions/Rule_WithArrayComp                                                        ~
RuleWithComprehensions/Rule_WithSetComp                                                          ~
RuleWithComprehensions/Rule_WithMultipleComps                                                    ~
ComplexRules/ProcessRequest                                                                      ~
ComplexRules/CheckPermissions                                                                    ~
ComplexRules/AnalyzeAccess                                                                       ~
SetIntersection/10x10                                                                            ~
SetIntersection/10x100                                                                           ~
SetIntersection/10x1000                                                                          ~
SetIntersection/100x10                                                                           ~
SetIntersection/100x100                                                                          ~
SetIntersection/100x1000                                                                         ~
SetIntersection/1000x10                                                                     -1.69%
SetIntersection/1000x100                                                                    -2.77%
SetIntersection/1000x1000                                                                        ~
SetIntersectionSlow/10x10                                                                        ~
SetIntersectionSlow/10x50                                                                        ~
SetIntersectionSlow/10x100                                                                       ~
SetIntersectionSlow/50x10                                                                        ~
SetIntersectionSlow/50x50                                                                        ~
SetIntersectionSlow/50x100                                                                       ~
SetIntersectionSlow/100x10                                                                       ~
SetIntersectionSlow/100x50                                                                       ~
SetIntersectionSlow/100x100                                                                      ~
SetUnion/10x10                                                                                   ~
SetUnion/10x100                                                                             -1.21%
SetUnion/10x250                                                                             -1.42%
SetUnion/100x10                                                                             -1.11%
SetUnion/100x100                                                                                 ~
SetUnion/100x250                                                                                 ~
SetUnion/250x10                                                                             -1.42%
SetUnion/250x100                                                                                 ~
SetUnion/250x250                                                                                 ~
SetUnionSlow/10x10                                                                               ~
SetUnionSlow/10x100                                                                              ~
SetUnionSlow/10x250                                                                              ~
SetUnionSlow/100x10                                                                              ~
SetUnionSlow/100x100                                                                             ~
SetUnionSlow/100x250                                                                             ~
SetUnionSlow/250x10                                                                              ~
SetUnionSlow/250x100                                                                             ~
SetUnionSlow/250x250                                                                             ~
BulkStartsWithNaive                                                                              ~
BulkStartsWithOptimized                                                                          ~
Split                                                                                            ~
Substring                                                                                        ~
IndexOf                                                                                          ~
FormatInt                                                                                        ~
SprintfSingleInteger                                                                             ~
TrimSpace/trimmable                                                                              ~
TrimSpace/not_trimmable                                                                          ~
Lower/not_lowercase                                                                              ~
Lower/lowercase                                                                                  ~
Concat/0_elements_'.'_sep                                                                        ~
Concat/1_element_'.'_sep                                                                    +3.63%
Concat/100_elements_','_sep                                                                      ~
Concat/100_elements_',_'_sep                                                                +3.59%
Concat/100_elements_blank_sep                                                                    ~
ConcatVsSprintfSimple/concat_foobar                                                         +3.63%
ConcatVsSprintfSimple/sprintf_foobar                                                             ~
SplitLenVsStringsCount/split_len                                                                 ~
SplitLenVsStringsCount/strings_count                                                             ~
BuiltinTemplateString/no_parts                                                                   ~
BuiltinTemplateString/single_string_part                                                         ~
BuiltinTemplateString/single_undefined_part                                                      ~
BuiltinTemplateString/primitives                                                                 ~
BuiltinTemplateString/collections                                                                ~
BuiltinTemplateString/multiple_outputs                                                           ~
Tokens/concurrency:_1,_JWT_count:_1                                                              ~
Tokens/concurrency:_1000,_JWT_count:_1                                                           ~
Tokens/concurrency:_1,_JWT_count:_5                                                              ~
Tokens/concurrency:_1000,_JWT_count:_5                                                           ~
Tokens/concurrency:_1,_JWT_count:_6                                                              ~
Tokens/concurrency:_1000,_JWT_count:_6                                                           ~
Tokens/concurrency:_1,_JWT_count:_10                                                             ~
Tokens/concurrency:_1000,_JWT_count:_10                                                          ~
Tokens/concurrency:_1,_JWT_count:_100                                                            ~
Tokens/concurrency:_1000,_JWT_count:_100                                                         ~
Tokens_Cache/concurrency:_1,_JWT_count:_1                                                        ~
Tokens_Cache/concurrency:_1000,_JWT_count:_1                                                     ~
Tokens_Cache/concurrency:_1,_JWT_count:_5                                                        ~
Tokens_Cache/concurrency:_1000,_JWT_count:_5                                                     ~
Tokens_Cache/concurrency:_1,_JWT_count:_6                                                        ~
Tokens_Cache/concurrency:_1000,_JWT_count:_6                                                     ~
Tokens_Cache/concurrency:_1,_JWT_count:_10                                                       ~
Tokens_Cache/concurrency:_1000,_JWT_count:_10                                                    ~
Tokens_Cache/concurrency:_1,_JWT_count:_100                                                      ~
Tokens_Cache/concurrency:_1000,_JWT_count:_100                                                   ~
ArrayIteration/10                                                                           +1.71%
ArrayIteration/100                                                                          +3.01%
ArrayIteration/1000                                                                         +4.22%
ArrayIteration/10000                                                                        +2.39%
ArrayPlugging/10                                                                                 ~
ArrayPlugging/100                                                                                ~
ArrayPlugging/1000                                                                               ~
ArrayPlugging/10000                                                                              ~
SetIteration/10                                                                                  ~
SetIteration/100                                                                            +4.48%
SetIteration/1000                                                                           +2.39%
SetIteration/10000                                                                          +3.53%
ObjectIteration/10                                                                          +1.41%
ObjectIteration/100                                                                         +2.99%
ObjectIteration/1000                                                                        +1.45%
ObjectIteration/10000                                                                       +2.32%
LargeJSON                                                                                        ~
Concurrency1                                                                                     ~
Concurrency2                                                                                     ~
Concurrency4                                                                                     ~
Concurrency8                                                                                     ~
Concurrency4Readers1Writer                                                                       ~
Concurrency8Writers                                                                              ~
VirtualDocs1x1                                                                                   ~
VirtualDocs10x1                                                                                  ~
VirtualDocs100x1                                                                                 ~
VirtualDocs1000x1                                                                                ~
VirtualDocs10x10                                                                                 ~
VirtualDocs100x10                                                                                ~
VirtualDocs1000x10                                                                               ~
VirtualDocs100x100                                                                               ~
VirtualDocs1000x100                                                                              ~
VirtualDocs1000x1000                                                                             ~
PartialEval/1                                                                                    ~
PartialEval/10                                                                                   ~
PartialEval/100                                                                                  ~
PartialEval/1000                                                                                 ~
PartialEvalCompile/1                                                                        -3.13%
PartialEvalCompile/10                                                                       -1.72%
PartialEvalCompile/100                                                                           ~
PartialEvalCompile/1000                                                                          ~
Walk/100                                                                                         ~
Walk/1000                                                                                        ~
Walk/2000                                                                                        ~
Walk/3000                                                                                        ~
ComprehensionIndexing/arrays_10                                                                  ~
ComprehensionIndexing/arrays_100                                                                 ~
ComprehensionIndexing/arrays_1000                                                                ~
ComprehensionIndexing/sets_10                                                                    ~
ComprehensionIndexing/sets_100                                                                   ~
ComprehensionIndexing/sets_1000                                                                  ~
ComprehensionIndexing/objects_10                                                                 ~
ComprehensionIndexing/objects_100                                                                ~
ComprehensionIndexing/objects_1000                                                               ~
FunctionArgumentIndex/10                                                                         ~
FunctionArgumentIndex/100                                                                        ~
FunctionArgumentIndex/1000                                                                       ~
ObjectSubset/10                                                                                  ~
ObjectSubset/100                                                                                 ~
ObjectSubset/1000                                                                                ~
ObjectSubset/10000                                                                               ~
ObjectSubsetSlow/10                                                                              ~
ObjectSubsetSlow/100                                                                             ~
ObjectSubsetSlow/1000                                                                            ~
ObjectSubsetSlow/10000                                                                           ~
Glob/10                                                                                     -2.83%
Glob/100                                                                                    -3.83%
Glob/1000                                                                                   -3.05%
MemberWithKeyFromBaseDoc                                                                         ~
ObjectGetFromBaseDoc                                                                             ~
TemplateStringVsConcatVsSprintf/templatestring                                                   ~
TemplateStringVsConcatVsSprintf/concat                                                           ~
TemplateStringVsConcatVsSprintf/sprintf                                                          ~
TemplateStringVsConcatVsSprintfLocal/interpolated                                                ~
TemplateStringVsConcatVsSprintfLocal/concated                                                    ~
TemplateStringVsConcatVsSprintfLocal/sprinted                                                    ~
TemplateStringVsSprintfNonStrings/interpolated                                                   ~
TemplateStringVsSprintfNonStrings/sprinted                                                       ~
ArrayFlattenWithAndWithoutBuiltin/array.flatten                                             -4.94%
ArrayFlattenWithAndWithoutBuiltin/array.concat                                                   ~
InliningFullScan/1000                                                                            ~
InliningFullScan/10000                                                                           ~
InliningFullScan/300000                                                                          ~
ErrorError                                                                                       ~
BiunifyArrays                                                                               +8.09%

benchmark \ host                                                                                        local:tags=opa_wasm
                                                                                                                    vs base
CapabilitiesCurrentVersion                                                                                                ~
RewriteDynamics/1                                                                                                         ~
RewriteDynamics/10                                                                                                        ~
RewriteDynamics/100                                                                                                       ~
RewriteDynamics/1000                                                                                                      ~
RewriteDynamics/10000                                                                                                     ~
RewriteDynamics/100000                                                                                                    ~
GenerateLocalVar                                                                                                          ~
ParseModuleRulesBase/1                                                                                                    ~
ParseModuleRulesBase/10                                                                                              +1.55%
ParseModuleRulesBase/100                                                                                             +2.13%
ParseModuleRulesBase/1000                                                                                                 ~
ParseStatementBasicCall                                                                                              -2.73%
ParseStatementMixedJSON                                                                                                   ~
ParseStatementSimpleArray/1                                                                                          -1.38%
ParseStatementSimpleArray/10                                                                                              ~
ParseStatementSimpleArray/100                                                                                        +4.59%
ParseStatementSimpleArray/1000                                                                                            ~
ParseStatementNestedObjects/1x1                                                                                      -1.37%
ParseStatementNestedObjects/5x1                                                                                      -1.12%
ParseStatementNestedObjects/10x1                                                                                          ~
ParseStatementNestedObjects/1x5                                                                                           ~
ParseStatementNestedObjects/1x10                                                                                          ~
ParseStatementNestedObjects/5x5                                                                                           ~
ParseSome                                                                                                                 ~
ParseEvery                                                                                                                ~
ParseDeepNesting/NestedArrays/depth-10                                                                                    ~
ParseDeepNesting/NestedArrays/depth-50                                                                                    ~
ParseDeepNesting/NestedArrays/depth-100                                                                                   ~
ParseDeepNesting/NestedArrays/depth-500                                                                                   ~
ParseDeepNesting/NestedArrays/depth-2500                                                                                  ~
ParseDeepNesting/NestedArrays/depth-12500                                                                                 ~
ParseDeepNesting/NestedObjects/depth-10                                                                                   ~
ParseDeepNesting/NestedObjects/depth-50                                                                                   ~
ParseDeepNesting/NestedObjects/depth-100                                                                                  ~
ParseDeepNesting/NestedObjects/depth-500                                                                                  ~
ParseDeepNesting/NestedObjects/depth-2500                                                                            +2.42%
ParseDeepNesting/NestedObjects/depth-12500                                                                                ~
ParseStatementNestedObjectsOrSets/1                                                                                       ~
ParseStatementNestedObjectsOrSets/5                                                                                       ~
ParseStatementNestedObjectsOrSets/10                                                                                      ~
ParseStatementNestedObjectsOrSets/15                                                                                 +1.14%
ParseStatementNestedObjectsOrSets/20                                                                                      ~
ParseVars                                                                                                                 ~
ParseBasicABACModule                                                                                                 +2.38%
ParseAnnotations                                                                                                     -1.22%
ParseManyAnnotations                                                                                                      ~
CommentString                                                                                                             ~
ExprString/simple_expr                                                                                                    ~
ExprString/negated_expr_with_with_modifier                                                                                ~
ExprString/complex_expr                                                                                                   ~
ExprAppendText/simple_expr                                                                                                ~
ExprAppendText/negated_expr_with_with_modifier                                                                            ~
ExprAppendText/complex_expr                                                                                               ~
ExprMarshalJSON/simple_expr                                                                                               ~
ExprMarshalJSON/negated_expr_with_with_modifier                                                                           ~
ExprMarshalJSON/complex_expr                                                                                              ~
RuleMarshalJSON/simple_rule                                                                                               ~
RuleMarshalJSON/rule_with_multiple_exprs                                                                                  ~
RuleMarshalJSON/rule_with_some_decl                                                                                       ~
WithMarshalJSON                                                                                                           ~
TypeName                                                                                                                  ~
ValueName                                                                                                                 ~
ObjectLookup/5                                                                                                            ~
ObjectLookup/50                                                                                                           ~
ObjectLookup/500                                                                                                          ~
ObjectLookup/5000                                                                                                         ~
ObjectGet/lookup_in_empty_object                                                                                          ~
ObjectGet/existing_interned_key                                                                                           ~
ObjectGet/existing_string_key                                                                                             ~
ObjectGet/existing_int_number_key                                                                                         ~
ObjectGet/existing_float_number_key_as_int                                                                           -2.50%
ObjectGet/existing_int_number_key_as_float                                                                                ~
ObjectGet/existing_float_key                                                                                              ~
ObjectGet/missing_string_key                                                                                         -1.13%
ObjectGet/missing_int_number_key                                                                                          ~
ObjectGet/missing_float_key                                                                                               ~
ObjectFind/5_5                                                                                                            ~
ObjectFind/5_50                                                                                                           ~
ObjectFind/5_500                                                                                                          ~
ObjectFind/5_5000                                                                                                         ~
ObjectFind/50_5                                                                                                           ~
ObjectFind/50_50                                                                                                          ~
ObjectFind/50_500                                                                                                         ~
ObjectFind/50_5000                                                                                                   +4.45%
ObjectFind/500_5                                                                                                          ~
ObjectFind/500_50                                                                                                    +2.24%
ObjectFind/500_500                                                                                                        ~
ObjectFind/500_5000                                                                                                       ~
ObjectFind/5000_5                                                                                                         ~
ObjectFind/5000_50                                                                                                   +1.75%
ObjectFind/5000_500                                                                                                  +2.91%
ObjectFind/5000_5000                                                                                                      ~
ObjectInsert/existing_key_and_value                                                                                       ~
ObjectInsert/existing_key,_new_value                                                                                 -1.94%
ObjectInsert/new_key                                                                                                      ~
ObjectInsert/new_key,_new_value                                                                                           ~
ObjectCreationAndLookup/5                                                                                            +6.75%
ObjectCreationAndLookup/50                                                                                                ~
ObjectCreationAndLookup/500                                                                                               ~
ObjectCreationAndLookup/5000                                                                                              ~
ObjectCreationAndLookup/50000                                                                                             ~
ObjectCreationAndLookup/500000                                                                                            ~
ObjectCreateWithInsertVsTermsArray/insert                                                                                 ~
ObjectCreateWithInsertVsTermsArray/terms_array                                                                            ~
LazyObjectLookup/5                                                                                                        ~
LazyObjectLookup/50                                                                                                       ~
LazyObjectLookup/500                                                                                                      ~
LazyObjectLookup/5000                                                                                                     ~
LazyObjectFind/5_5                                                                                                        ~
LazyObjectFind/5_50                                                                                                       ~
LazyObjectFind/5_500                                                                                                      ~
LazyObjectFind/5_5000                                                                                                     ~
LazyObjectFind/50_5                                                                                                       ~
LazyObjectFind/50_50                                                                                                      ~
LazyObjectFind/50_500                                                                                                     ~
LazyObjectFind/50_5000                                                                                                    ~
LazyObjectFind/500_5                                                                                                      ~
LazyObjectFind/500_50                                                                                                     ~
LazyObjectFind/500_500                                                                                                    ~
LazyObjectFind/500_5000                                                                                                   ~
LazyObjectFind/5000_5                                                                                                     ~
LazyObjectFind/5000_50                                                                                                    ~
LazyObjectFind/5000_500                                                                                                   ~
LazyObjectFind/5000_5000                                                                                                  ~
SetCreationAndLookup/5                                                                                                    ~
SetCreationAndLookup/50                                                                                                   ~
SetCreationAndLookup/500                                                                                             -1.35%
SetCreationAndLookup/5000                                                                                                 ~
SetCreationAndLookup/50000                                                                                                ~
SetCreationAndLookup/500000                                                                                          -1.54%
SetIntersection/5                                                                                                         ~
SetIntersection/50                                                                                                        ~
SetIntersection/500                                                                                                       ~
SetIntersection/5000                                                                                                      ~
SetIntersectionDifferentSize/4                                                                                            ~
SetIntersectionDifferentSize/50                                                                                           ~
SetIntersectionDifferentSize/500                                                                                          ~
SetIntersectionDifferentSize/5000                                                                                         ~
SetUnion/5                                                                                                                ~
SetUnion/50                                                                                                               ~
SetUnion/500                                                                                                              ~
SetUnion/5000                                                                                                             ~
SetUnionOverlapping/5                                                                                                     ~
SetUnionOverlapping/50                                                                                                    ~
SetUnionOverlapping/500                                                                                                   ~
SetUnionOverlapping/5000                                                                                                  ~
SetMembership/5                                                                                                           ~
SetMembership/50                                                                                                          ~
SetMembership/500                                                                                                         ~
SetMembership/5000                                                                                                   -3.41%
SetCopy                                                                                                                   ~
ObjectCopy                                                                                                                ~
ArrayCopy/5                                                                                                               ~
ArrayCopy/50                                                                                                              ~
ArrayCopy/500                                                                                                             ~
RefCopy/5                                                                                                                 ~
RefCopy/10                                                                                                                ~
RefCopy/20                                                                                                                ~
RefCopyNonGround/fully_ground                                                                                             ~
RefCopyNonGround/mixed                                                                                                    ~
RefCopyNonGround/fully_ground/Copy                                                                                        ~
RefCopyNonGround/mixed/Copy                                                                                               ~
TermHashing/10                                                                                                            ~
TermHashing/100                                                                                                           ~
TermHashing/1000                                                                                                          ~
ObjectString/5/String()                                                                                                   ~
ObjectString/5/json.Marshal                                                                                               ~
ObjectString/50/String()                                                                                                  ~
ObjectString/50/json.Marshal                                                                                              ~
ObjectString/500/String()                                                                                                 ~
ObjectString/500/json.Marshal                                                                                             ~
ObjectString/5000/String()                                                                                                ~
ObjectString/5000/json.Marshal                                                                                            ~
ObjectStringInterfaces/5/String()                                                                                         ~
ObjectStringInterfaces/5/json.Marshal                                                                                     ~
ObjectStringInterfaces/50/String()                                                                                        ~
ObjectStringInterfaces/50/json.Marshal                                                                                    ~
ObjectStringInterfaces/500/String()                                                                                       ~
ObjectStringInterfaces/500/json.Marshal                                                                                   ~
ObjectStringInterfaces/5000/String()                                                                                      ~
ObjectStringInterfaces/5000/json.Marshal                                                                                  ~
ObjectStringInterfaces/50000/String()                                                                                     ~
ObjectStringInterfaces/50000/json.Marshal                                                                                 ~
ObjectConstruction/shuffled_keys/5                                                                                        ~
ObjectConstruction/shuffled_keys/50                                                                                       ~
ObjectConstruction/shuffled_keys/500                                                                                      ~
ObjectConstruction/shuffled_keys/5000                                                                                     ~
ObjectConstruction/shuffled_keys/50000                                                                                    ~
ObjectConstruction/shuffled_keys/500000                                                                                   ~
ObjectConstruction/increasing_keys/5                                                                                      ~
ObjectConstruction/increasing_keys/50                                                                                     ~
ObjectConstruction/increasing_keys/500                                                                                    ~
ObjectConstruction/increasing_keys/5000                                                                                   ~
ObjectConstruction/increasing_keys/50000                                                                                  ~
ObjectConstruction/increasing_keys/500000                                                                                 ~
ArrayString/5/String()                                                                                               -4.84%
ArrayString/5/json.Marshal                                                                                                ~
ArrayString/50/String()                                                                                                   ~
ArrayString/50/json.Marshal                                                                                               ~
ArrayString/500/String()                                                                                                  ~
ArrayString/500/json.Marshal                                                                                              ~
ArrayString/5000/String()                                                                                                 ~
ArrayString/5000/json.Marshal                                                                                             ~
ArrayEquality/5                                                                                                           ~
ArrayEquality/50                                                                                                          ~
ArrayEquality/500                                                                                                         ~
ArrayEquality/5000                                                                                                        ~
SetString/5/String()                                                                                                      ~
SetString/50/String()                                                                                                     ~
SetString/500/String()                                                                                                    ~
SetString/5000/String()                                                                                                   ~
SetString/50000/String()                                                                                                  ~
SetMarshalJSON/5/json.Marshal                                                                                             ~
SetMarshalJSON/50/json.Marshal                                                                                            ~
SetMarshalJSON/500/json.Marshal                                                                                           ~
SetMarshalJSON/5000/json.Marshal                                                                                          ~
SetMarshalJSON/50000/json.Marshal                                                                                         ~
IsVarCompatibleString/#00                                                                                                 ~
IsVarCompatibleString/5heel                                                                                               ~
IsVarCompatibleString/__really_long_variable_name_1234567890                                                              ~
IsVarCompatibleString/_ello_                                                                                              ~
IsVarCompatibleString/h_llo                                                                                               ~
IsVarCompatibleString/hello                                                                                               ~
IsVarCompatibleString/incompatible_last_char!                                                                             ~
RefString/dot_builtin                                                                                                     ~
RefString/really_long                                                                                                -8.75%
RefString/scalars_ref                                                                                                     ~
RefString/simple_ref                                                                                                      ~
RefString/var_term                                                                                                        ~
RefString/with_escape                                                                                                     ~
InterfaceToValueInt/interned_int_value                                                                                    ~
InterfaceToValueInt/non-interned_int_value                                                                                ~
ValueToInterfaceInt                                                                                                  +6.10%
ObjectMergeWith/without_conflict                                                                                          ~
ObjectMergeWith/with_conflict                                                                                             ~
ConstantPrefix                                                                                                            ~
StringPrefix                                                                                                              ~
GroundPrefix                                                                                                              ~
Ptr/with_escape                                                                                                           ~
Ptr/without_escape                                                                                                        ~
EscapeTemplateStringStringPart/_*_100                                                                                     ~
EscapeTemplateStringStringPart/{_*_100                                                                               +8.56%
EscapeTemplateStringStringPart/\{_*_100                                                                                   ~
EscapeTemplateStringStringPart/}{_*_100                                                                              +5.55%
EscapeTemplateStringStringPart/no_curly!!!_*_100                                                                          ~
EscapeTemplateStringStringPart/{unes{caped_*_100                                                                          ~
EscapeTemplateStringStringPart/{{{{{{{{{{_*_100                                                                           ~
CountUnescapedLeftCurly/_*_100                                                                                            ~
CountUnescapedLeftCurly/{_*_100                                                                                           ~
CountUnescapedLeftCurly/\{_*_100                                                                                          ~
CountUnescapedLeftCurly/}{_*_100                                                                                     -1.53%
CountUnescapedLeftCurly/no_curly!!!_*_100                                                                                 ~
CountUnescapedLeftCurly/{unes{caped_*_100                                                                                 ~
CountUnescapedLeftCurly/{{{{{{{{{{_*_100                                                                                  ~
TemplateStringToString                                                                                                    ~
TemplateStringToStringEscapeCurlies                                                                                       ~
TemplateStringToStringEscapeControl                                                                                  +8.47%
VarVisitorWalkAnyVsSpecific/Walk                                                                                          ~
VarVisitorWalkAnyVsSpecific/WalkBody                                                                                      ~
VarSetUpdateEmpty                                                                                                    +3.93%
GenericVisitorWalkVsTypeVisitor/GenericVisitor                                                                            ~
GenericVisitorWalkVsTypeVisitor/TypeVisitor_term                                                                          ~
GenericVisitorWalkVsTypeVisitor/TypeVisitor_via_WalkRules                                                                 ~
InterningAccessValue/package_var_value                                                                                    ~
InterningAccessValue/interned_value                                                                                       ~
InterningAccessValue/object_value                                                                                         ~
InterningAccessValue/new_value                                                                                            ~
FromBuiltinNames/single_part                                                                                              ~
FromBuiltinNames/two_parts                                                                                          -56.87%
FromBuiltinNames/three_parts                                                                                              ~
FromBuiltinNames/no_match                                                                                                 ~
FromBuiltinNames/no_match_long                                                                                            ~
NoNodeTypeAllocatesOnAppend/module                                                                                   -5.22%
NoNodeTypeAllocatesOnAppend/module_annotated                                                                              ~
NoNodeTypeAllocatesOnAppend/package                                                                                  -6.11%
NoNodeTypeAllocatesOnAppend/package_with_special_chars                                                               -6.87%
NoNodeTypeAllocatesOnAppend/import                                                                                        ~
NoNodeTypeAllocatesOnAppend/head                                                                                          ~
NoNodeTypeAllocatesOnAppend/head_assign                                                                                   ~
NoNodeTypeAllocatesOnAppend/head_with_key                                                                                 ~
NoNodeTypeAllocatesOnAppend/ref_head_with_value                                                                           ~
NoNodeTypeAllocatesOnAppend/body                                                                                          ~
NoNodeTypeAllocatesOnAppend/expr                                                                                          ~
NoNodeTypeAllocatesOnAppend/with                                                                                          ~
NoNodeTypeAllocatesOnAppend/every                                                                                         ~
NoNodeTypeAllocatesOnAppend/some_decl                                                                                     ~
NoNodeTypeAllocatesOnAppend/some_in_decl                                                                                  ~
NoNodeTypeAllocatesOnAppend/and,_implicit                                                                                 ~
NoNodeTypeAllocatesOnAppend/and,_implicit,_expanded                                                                       ~
NoNodeTypeAllocatesOnAppend/and,_explicit                                                                                 ~
NoNodeTypeAllocatesOnAppend/or,_implicit                                                                                  ~
NoNodeTypeAllocatesOnAppend/or,_implicit,_expanded                                                                        ~
NoNodeTypeAllocatesOnAppend/or,_explicit                                                                                  ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/var                                                                      ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/string                                                                   ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/string_with_escapes                                                      ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/string_with_newlines                                                     ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/number                                                                   ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/boolean                                                                  ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/null                                                                     ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/array                                                                    ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/set                                                                      ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/object                                                                   ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/call                                                                     ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/template_string                                                          ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/ref                                                                      ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/object_comprehension                                                     ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/object_comprehension_infix_value                                         ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/object_comprehension_infix_key                                           ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/array_comprehension                                                      ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/array_comprehension_nested_infix_operators                               ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/array_comprehension_non-infix_head                                       ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/array_comprehension_nested_infix_with_function_call                      ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/set_comprehension                                                        ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/not                                                                      ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/not,_explicit_body,_one-line                                             ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/not,_implicit_body,_multi-line                                           ~
NoASTTypeAllocatesOnAppendToBufferOfStringLength/not,_explicit_body,_multi-line                                           ~

This comment was automatically generated by the benchmarks workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants