• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KarpelesLab / goro / 25339530035
13%

Build:
DEFAULT BRANCH: master
Ran 04 May 2026 07:43PM UTC
Jobs 1
Files 398
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 May 2026 07:41PM UTC coverage: 8.438% (+0.2%) from 8.284%
25339530035

push

github

MagicalTux
vm: native try/catch (no finally yet)

Adds Function.TryHandlers + CatchClause as static metadata
attached to each compiled function. The dispatcher's outer
loop catches PhpThrow and scans handlers for one whose
[Start, End) range covers the failing PC; for each catch
clause it checks the exception class against the declared
type list and binds the exception variable to the local
slot. Forward iteration finds the innermost handler first
(nested tries register inner-then-outer).

Out of scope for this round:
- finally clauses (try with finally still falls back via
  ErrUnsupported)
- the special pass-through behaviour for return/break/
  continue inside a try with finally

The dispatch loop has been split into runUntilError (the
inner switch) and exec (the outer wrapper that handles
try-handler dispatch). Errors from any opcode bubble up
through runUntilError; the outer wrapper either catches
the exception via dispatchTryHandler or propagates it.

Tests cover: no-throw try, single catch, type-mismatch
falling through to outer, nested try, catch without var,
exception in catch body propagating to outer, multiple
catch clauses (second matches), and union-type catches
(`catch (A | B \$e)`). Still zero new phpt regressions
under GORO_VM=1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

106 of 186 new or added lines in 6 files covered. (56.99%)

2 existing lines in 1 file now uncovered.

9665 of 114543 relevant lines covered (8.44%)

966.62 hits per line

Uncovered Changes

Lines Coverage ∆ File
60
61.72
0.52% core/vm/vm.go
10
76.19
core/vm/vmcompiler/emit_try.go
9
80.0
core/vm/ops_try.go
1
75.0
2.17% core/compiler/vmaccess.go

Coverage Regressions

Lines Coverage ∆ File
2
61.72
0.52% core/vm/vm.go
Jobs
ID Job ID Ran Files Coverage
1 25339530035.1 04 May 2026 07:43PM UTC 398
8.44
GitHub Action Run
Source Files on build 25339530035
  • Tree
  • List 398
  • Changed 16
  • Source Changed 5
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25339530035
  • c81a25b7 on github
  • Prev Build on master (#25337647438)
  • Next Build on master (#25339931361)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc