When the Next Step Is Not One Step: Distribution-Aware Execution Modeling for Concurrent Go Programs

Kaviru Hapuarachchi
6/16/2026
cs.LGcs.DCcs.PL

No confident code implementation found for this paper. 2 possible matches can be shown below.

Abstract

Training a model to predict the next step in a concurrent program is harder than it looks: two runs of the same program from the same trace prefix can produce different next events, both valid, because the scheduler is nondeterministic. A model trained against a single label is learning to guess one outcome of a random process. We turn this around and use the nondeterminism as a training signal. We run each program many times, aggregate the observed next events into an empirical distribution, and fine-tune a 7B model to match that distribution with a KL objective. On 798 held-out predictions drawn from real production Go bugs (CockroachDB, Kubernetes, gRPC, etcd), fine-tuning on fewer than a thousand traces reaches 36.2% accuracy, ahead of Gemini 3.5 Flash used zero-shot (34.8%) and the same model without fine-tuning (28.6%). Distribution training matches cross-entropy on accuracy (35.8% vs. 36.2%) while reducing Expected Calibration Error from 0.205 to 0.169. We also derive a formal goroutine-leak signature for a class of select-blocked goroutines where P(GoUnblock)=0 holds by scheduler semantics, not by learning. We release the dataset, trained adapters, and all tooling.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 2 weaker matches are hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{hapuarachchi2026when,
  title  = {When the Next Step Is Not One Step: Distribution-Aware Execution Modeling for Concurrent Go Programs},
  author = {Kaviru Hapuarachchi},
  year   = {2026},
  eprint = {2606.17508},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2606.17508v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2606.17508.svg)](https://codeofpaper.com/paper/2606.17508)

Discussion