Cover image

Refactor, Then Run It: SemaDiff Tests Whether Behavior Actually Changed

TL;DR for operators A commit may be labeled as a refactor and still change behavior that users can observe. For release, backport, rollback, and dataset decisions, the label matters less than whether the parent and modified versions behave differently. The existing repository may not provide a practical way to reach the changed code: in the benchmark, original callers were absent in 50% of cases. SemaDiff addresses this by creating a small caller—called a generated dependent class—that invokes stable public APIs in both versions. It then runs the same generated tests against each version and treats a divergent outcome as evidence of a semantic-changing commit, a process known as differential execution. ...

July 28, 2026 · 8 min · Zelina
Cover image

No Runtime, No Signal: Java Energy Prediction Beyond Static Metrics

TL;DR for operators A development team wants to identify energy-expensive Java methods early, without repeatedly profiling every code change on controlled hardware. Source-level features such as complexity, calls, loops, and control flow appear to offer a cheap signal because they can be extracted before the software runs. In this study, those features were almost useless without runtime evidence. When the researchers reran the same Random Forest prediction setup after removing execution time, predictive $R^2$ fell from 0.454 to 0.005. Code features that look operationally meaningful therefore provided almost no useful prediction until a timing signal was added. ...

July 27, 2026 · 9 min · Zelina