Skip to content

v0.15.0 release gate: regex match operator returns false on Linux #340

@ehartford

Description

@ehartford

During the v0.15.0 Linux release gate on origin/main at 878ccb8c, with build and with build :fixpoint passed, but with build :test failed in regex behavior tests.

Host/worktree:

  • Host: Linux x86_64 (lazarus@192.168.0.115)
  • Worktree: /home/lazarus/with-release-v0.15.0
  • Commit: 878ccb8c
  • Version: v0.15.0
  • SDK: .deps/llvm-22.1.6-linux-x86_64

Failing tests:

  • test/behavior/behav_regex_language_semantics.w
  • test/behavior/behav_regex_capture_fstring.w

Observed:

  • Both fail at run stage with exit code 134.
  • LLDB/direct run shows assertion failure, not segfault.
  • behav_regex_language_semantics.w fails at line 20: assert(count == 2) after while text =~ /([a-z])(\d)/g, meaning the global match loop did not match twice.
  • behav_regex_capture_fstring.w fails at line 10: assert(got == "ERROR code=42").

Minimal probe built with the release compiler:

fn main:
    let text = "a1 b2"
    if text =~ /a1/:
        with_write("basic yes\n")
    else:
        with_write("basic no\n")
    if text =~ /([a-z])(\d)/:
        with_write("cap yes " ++ $0 ++ " " ++ $1 ++ " " ++ $2 ++ "\n")
    else:
        with_write("cap no\n")

Output:

basic no
cap no

Classification:

  • Release blocker because with build :test is a release gate in docs/with-release-runbook.md.
  • Not a stack issue.
  • Not the earlier value-locals failure; that moved forward after 5c7cc011.
  • Not the mutual-tailrec compile segfault; that moved forward after 878ccb8c.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions