Skip to content

fix(deps): update module github.com/antonmedv/expr to v1.17.8#61

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/github.com-antonmedv-expr-1.x
Open

fix(deps): update module github.com/antonmedv/expr to v1.17.8#61
renovate[bot] wants to merge 1 commit intomainfrom
renovate/github.com-antonmedv-expr-1.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 9, 2026

This PR contains the following updates:

Package Change Age Confidence
github.com/antonmedv/expr v1.15.3v1.17.8 age confidence

Release Notes

antonmedv/expr (github.com/antonmedv/expr)

v1.17.8

Compare Source

Expr is an expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`let foo = bar(); baz(foo, foo)`)

In this release:

  • New feature: added bytes literal syntax (#​894)
  • Improved performance: count comparisons to any (#​897)
  • Improved performance: added sum range optimization (#​896)
  • Improved performance: added count threshold comparisons (#​898)
  • Improved performance: optimize loop iteration with scope pool (#​908)
  • Improved performance: added fast paths for min, max, mean, and median (#​909)
  • Fixed: ctx into nested custom funcs and Env (#​883)
  • Fixed: disable check for missing predicate during parseing (#​924)
  • Fixed: detect $env() calls at compile time (#​923)
  • Fixed: bounds check to get() (#​918)
  • Fixed: validate sortBy order argument type (#​912)
  • Fixed: reduce empty array without init val (#​911)
  • Fixed: validate arg count before OpCall (#​904)
  • Fixed: correct variadic method arg type (#​889)

v1.17.7

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`let foo = bar(); baz(foo, foo)`)

This release brings new language features, performance improvements across runtime and compiler, better error
handling, and many important bug fixes.

New Features

Support for else if expressions
  • You can now chain conditional branches using else if! (#​879)
Unicode escapes in the \u{XXXXXX} format
  • String literals now support Unicode code point escapes such as \u{1F600}. (#​882)
Byte slice support in the matches operator

The matches operator now works with []byte, improving interoperability with binary data. (#​876)

Short-circuit control options

New options allow enabling or disabling short-circuiting behavior in the compiler and VM. (#​847)

Option to disable if operator

A separate DisableIfOperator option is now available. (#​881)

Performance Improvements

Runtime structure fetch improvements

Accessing struct fields at runtime is now faster. (#​833)

VM function call optimizations

Function calls inside the VM execute more efficiently. (#​832)

Type system performance boost

Large or complex type operations now run significantly faster. (#​824)

Bug Fixes

  • Guard negative forward jump offsets (#​861).
  • Prevent stack underflow in the VM (#​860).
  • Correct behavior of AsBool with nil and undefined variables (#​866).
  • Proper handling of nil arguments in variadic functions (#​868).
  • Show function name for safe calls in disassembly (#​869).
  • Limit recursion depth in built-in functions (#​870).
  • Throw an error when a predicate is missing in the parser (#​842).
  • Fixed array type resolution in conditional operator (#​865).
  • Disallow access to unexported struct fields (#​846).
  • Fixed retrieving field pointers in structs (#​843).
  • Better error position reporting in multi-line scripts (#​827).
  • Support quoting backticks inside string literals (#​820).
  • Fixed auto-dereference for maps/slices and conditionals (#​871).
  • Wrap merged optimizer results as predicates (#​864).
  • Improved missing property handling (#​854).
  • Handle invalid if conditions and detect null-byte crashes.
  • Added regression tests for several reported issues.

v1.17.6

Compare Source

What's Changed

v1.17.5

Compare Source

v1.17.4

Compare Source

  • Added check for non struct types to fetchField expr-lang#794
  • Docs: do not repeat patcher definition in ExamplePatch() expr-lang#792

v1.17.3

Compare Source

v1.17.2

Compare Source

v1.17.1

Compare Source

  • Fixed parsing of variable declaration nodes combined with sequence node in expr-lang#773

v1.17.0

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`let foo = bar(); baz(foo, foo)`)

In this release:

This release added the biggest change to the Expr language: if-else expressions and sequential expressions. #​736 e750878

if foo > 42 {
    assert(foo);
    calc(foo, foo / 2)
} else {
    calc(0, 0)
}

A sequence of expression may be separated by ; char. The last semicolon must be omitted. Expr returns the value of the
last expression in the sequence.

If-else is also expressions. Each if must have an else part. Result of if-else can be used as an expression:

let foo = if bar > 0 {
    process(bar)
} else {
    fallback()
};
foo + 42

Added:

Improvements:

Fixes:

  • Make sure get() returns nil for map[string]string on missing keys 435b79d
  • Fixed func calls with nil types value d63c3b5
  • Fixed AST printing of ops with precedence (#​678)
  • Do not optimize filter() | map() if #index is used 35bdb68
  • Separated patching phases for patchers that require multiple passes. (#​659)

v1.16.9

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

In this release:

v1.16.8

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`now() - created_at < duration("24h")`)

In this release:

  • Added checks for nil before string casts in VM (#​654)
  • Added int overflow checks. 45c1ae7
  • Improved lexer (#​653)
  • Improved error messages for index out of bounds errors. 6cf0edb
  • Fixed: invoke the Deref function as needed for the function arguments. (#​651)
  • Fixed build on 386 arch. cae6003

Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with
full support of Expr language.

Expr Pro

Expr Pro is a set of extensions for Expr for advanced use cases. It includes
expressions explanation, performance profiling, and more.

v1.16.7

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`now() - created_at < duration("24h")`)

In this release:

  • Improved now() and date() type validation
  • Updated documentation

Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with
full support of Expr language.

Expr Pro

Expr Pro is a set of extensions for Expr for advanced use cases. It includes
expressions explanation, performance profiling, and more.

v1.16.6

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`now() - created_at < duration("24h")`)

In this release:

  • Added an option to set default timezone for date() and now() builtins with expr.Timezone("Europe/Zurich")
  • Added a new timezone("UTC") builtin
  • Fixed double-escaping of keys in map printing (#​640)
  • Starting from this release, Expr has no dependencies go.mod (#​618, #​642)

Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with
full support of Expr language.

Expr Pro

Expr Pro is a set of extensions for Expr for advanced use cases. It includes
expressions explanation, performance profiling, and more.

v1.16.5

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

output, err := expr.Eval("metric > 100", map[string]any{
    "metric": 200,
})

In this release:

  • Added compiler optimization for boolean operations between all, any, none functions (#​626)
  • Added optional predicate to sum() builtin (#​592)
  • Added sum() compiler optimization c2b609e edb1b5a
  • Improved WithContext to work for methods on env struct (#​602)
  • Improved count() builtin: now predicate is optional 725b702
  • Fixed printing of combinations conditional with binary nodes 6157395
  • Fixed optional chaining to return proper nil 5804ccb

Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with
full support of Expr language.

Expr Pro

Expr Pro is a set of extensions for Expr for advanced use cases. It includes
expressions explanation, performance profiling, and more.

v1.16.4

Compare Source

This release reverts a wrong compiler optimization for all, any, one, none predicates (#​555).

The optimization contains error logic which can lead to a wrong expression.

It is highly recommended to upgrade to the latest version.

v1.16.3

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`let x = 2 + 2; x ^ x`)
output, err := expr.Run(program, env)

In this release:

  • Improved printing for maps: {(foo + bar): 42}

Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with full support of Expr language.

Expr Pro

Expr Pro is a set of extensions for Expr for advanced use cases. It includes expressions explanation, performance profiling, and more.

v1.16.2

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`now() - created_at < duration("24h")`)
output, err := expr.Run(program, env)

In this release:

  • Added spans (#​584)
  • Added support for chained comparison 1 < 2 < 3 (#​581)
  • Improved builtin int: unwraps underlying int value (#​611)
  • Improved builtin min, max, sum, mean, median (#​580, #​576)
  • Improved bools comparison to be without reflect.DeepEqual (#​585)
  • Fixed case with expr.Operator passes before expr.Env caused error (#​606)
  • Fixed -1 not in [] expressions (#​590)

Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with full support of Expr language.

Expr Pro

Expr Pro is a set of extensions for Expr for advanced use cases. It includes expressions explanation, performance profiling, and more.

v1.16.1

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

program, err := expr.Compile(`now() - created_at < duration("24h")`)
output, err := expr.Run(program, env)

In this release:

  • Fixed recursive operator overloading bug (#​548, #​554)
  • Fixed AST printing of ?.[ operator (ffaec9e)
  • Fixed string literal slicing error (#​543)
  • Compilation performance improvements (95084fb)
  • Improved functions call performance (ed89647)
  • Refactored groupBy() and sortBy() builtins (#​562)
  • Added operator overloading with expr.Function() (#​408)
  • Added concat() builtin (#​565)
  • Added reverse() builtin (#​553)
  • Added program.Locations() method (e53cefe)
  • Added optional array access array?.[42] (#​550)
  • Added compiler optimization for jump opcodes (#​545)
  • Added compiler optimization for boolean operations with all, any, one, none functions (#​555)

Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with
full support of Expr language.

Expr Pro

Expr Pro is a set of extensions for Expr for advanced use cases. It includes
expressions explanation, performance profiling, and more.

v1.16.0

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy, safety, and speed.

expr repl demo

In this release:
  • Improved VM speed by 5%-15% (#​521)
  • Improve AST printing for boolean operators
  • Improved type checker (#​527)
  • Added option to override built-ins (#​522)
  • Added method to get AST tree from program: .Node() (#​528)
  • Added new Valuer patcher (#​525)
  • Added expr.WarnOnAny() option
  • Changed expr.As*() options behavior to accept any by default
  • Fixed type checker to visit all arguments of func even if arguments count mismatch
  • Fixed type propagation in AST for any type in type checker
  • Fixed context patcher (#​526)
  • Fixed race condition in working with variables (#​523)
  • Fixed pipeline and call parsing
Addition

In addition to open-source version of Expr, we have an embeddable Expr Editor and Expr Pro packages.

v1.15.8

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy,
safety, and speed.

output, err := expr.Eval(`now() - created_at < duration("24h")`, env)

In this release

  • Added builtin functions for bit operations. (#​496)
  • Added support for raw string literals. (#​485)
    `raw string`
    
  • Fixed type checker panic on embedded pointer to struct field. (#​500)
  • Removed redundant fields from ast nodes. (#​504) (#​503)
  • Improved Language Definition documentation.
Expr Editor

The Expr Editor is an embeddable code editor written in JavaScript with
full support of Expr language.

v1.15.7

Compare Source

Expr is a Go-centric expression language designed to deliver dynamic configurations with unparalleled accuracy, safety, and speed.

In this release:
  • Fixed commutative property for comparison between a value and a pointer. (#​490)
  • Checker: forbid accessing built-ins and custom functions from $env. (#​495)
  • Enhanced the number parser to include support for parsing hexadecimal, binary, and octal literals. (#​483)
  • Added GetSource() method to vm.Program. (#​491)

v1.15.6

Compare Source

  • New module path expr-lang/epxr ⚠️
  • Added expr.WithContext() option to pass context to custom functions.
  • Added ast package comments.
  • Hidden internal fields in vm.Program.

v1.15.5

Compare Source

  • Added ceil(), floor() and round() function.
  • Fixed type checker for float arguments.

v1.15.4

Compare Source

  • Improved type checking for $env
  • Added support for floats in sort() built-in
  • Fixed: AST printing for ?? operator
  • Fixed: only emit OpEqual{Int,String} for simple types
  • Fixed: fetch without OpDeref (#​467)
  • Docs: categorize Language Definition functions (#​452)
  • Changed: ast.Node type now is not copied with ast.Patch

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Contributor Author

renovate bot commented Feb 9, 2026

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: go.sum
Command failed: go get -t ./...
go: github.com/antonmedv/expr@v1.17.8: parsing go.mod:
	module declares its path as: github.com/expr-lang/expr
	        but was required as: github.com/antonmedv/expr

@renovate renovate bot force-pushed the renovate/github.com-antonmedv-expr-1.x branch from c121233 to 7fbc508 Compare February 14, 2026 17:12
@renovate renovate bot changed the title fix(deps): update module github.com/antonmedv/expr to v1.17.7 fix(deps): update module github.com/antonmedv/expr to v1.17.8 Feb 14, 2026
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.

0 participants