Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 18, 2025

This PR contains the following updates:

Package Change Age Confidence
github.com/expr-lang/expr v1.17.6 -> v1.17.7 age confidence

Release Notes

expr-lang/expr (github.com/expr-lang/expr)

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.

Configuration

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

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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 renovate bot enabled auto-merge (squash) December 18, 2025 01:14
@renovate renovate bot merged commit cc3bbea into main Dec 18, 2025
11 checks passed
@renovate renovate bot deleted the renovate/github.com-expr-lang-expr-1.x branch December 18, 2025 01:16
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.

1 participant