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

KarpelesLab / goro / 25206536277
13%

Build:
DEFAULT BRANCH: master
Ran 01 May 2026 07:30AM UTC
Jobs 1
Files 371
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

01 May 2026 07:27AM UTC coverage: 1.954%. Remained the same
25206536277

push

github

MagicalTux
perf: cut allocs in operatorMath, add VoidRunnable for postfix ++/--

Two narrow optimizations in the hot expression path, identified by
profiling BenchmarkArithmetic.

1. operatorMath returned a freshly-allocated phpv.ZVal that was the
   .ZVal() of a phpv.Val interface intermediate. Boxing an int64 into
   the Val interface allocated 8 bytes on every arithmetic op even when
   the inner number was a small cached value. Restructure so each
   ZtInt/ZtFloat case directly returns the appropriate ZInt.ZVal()
   or ZFloat.ZVal() and skips the interface intermediate.

2. Add a phpv.VoidRunnable interface with RunVoid(Context) error and
   implement it on runOperator for postfix ++/--. RunVoid skips the
   `orig := a.Dup()` snapshot whose only purpose is feeding the
   throw-away return value when the increment is in a result-discard
   position. Wire the for-loop's third clause (r.each) to prefer
   RunVoid when the runnable supports it.

BenchmarkArithmetic     85.0M ns → 49.1M ns   (-42%)
                       1018k allocs → 619k    (-39%)
BenchmarkFunctionCalls  32.5M ns → 16.2M ns   (-50%)
                        358k allocs → 318k    (-11%)
BenchmarkArrayOps       13.3M ns → 11.0M ns   (-17%)
                        178k allocs → 138k    (-22%)
BenchmarkStringConcat   17.7M ns → 14.0M ns   (-21%)
                        158k allocs → 100k    (-37%)
BenchmarkFibonacci      26.5M ns → 24.0M ns   (-9%)

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

0 of 74 new or added lines in 2 files covered. (0.0%)

2189 of 112047 relevant lines covered (1.95%)

70.3 hits per line

Uncovered Changes

Lines Coverage ∆ File
65
0.0
0.0% core/compiler/run-operator.go
9
0.0
0.0% core/compiler/compile-for.go
Jobs
ID Job ID Ran Files Coverage
1 25206536277.1 01 May 2026 07:30AM UTC 371
1.95
GitHub Action Run
Source Files on build 25206536277
  • Tree
  • List 371
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25206536277
  • 077d1180 on github
  • Prev Build on master (#24647133032)
  • Next Build on master (#25207297956)
  • 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