DyPyBench addresses the absence of a DaCapo-equivalent benchmark for Python by curating 50 open-source projects from the Awesome Python list (≥500 GitHub stars, ≤1 per category, pytest-compatible test suites), pinned to commits before January 18, 2023 . The benchmark totals 681k lines of Python code with 29,511 test cases (93% pass rate), integrated with DynaPyt v0.3.1 for one-command dynamic instrumentation and available as a Docker image on Zenodo and DockerHub for reproducibility.
On the 39 of 50 projects where PyCG succeeded (six timed out, three exceeded 60GB memory, two crashed), only 49% of dynamically observed DynaPyt edges appear in PyCG static call graphs; 59% of missing callees are built-in method calls on primitive types (e.g., str.strip), and ~12% stem from name-resolution mismatches . However, the comparison conflates PyCG soundness limits with legitimate differences in code exercised: static graphs cover all project code while dynamic graphs reflect only test-exercised paths, and 79% of static-only edges had both nodes absent from dynamic graphs. Callers show 95% agreement, narrowing the problem primarily to callee resolution rather than a fundamental unsoundness gap.
Executing DyPyBench with LExecutor instrumentation yielded 436,355 value-use events, more than double the original 214,365-event dataset, and top-1 accuracy increased monotonically with training data size . A 72-hour trace-collection limit restricted specification mining to 27 of 50 projects, yielding 16,538 call sequences (mean length 8) from which PrefixSpan extracted meaningful temporal patterns. Both applications demonstrate utility without claiming novelty of the underlying algorithms, which is appropriate for a benchmark paper.
The strongest engineering contribution is Docker-based reproducibility with pinned commits and a single-command interface—rare among academic software artifacts. Key limitations: (i) test-suite execution is not production workload, so dynamic call graphs underrepresent runtime diversity; (ii) selection from Awesome Python skews toward open-source, popular projects and excludes closed-source or niche domains; (iii) the 11-project PyCG exclusion means reported incompleteness applies only to projects where PyCG ran, potentially inflating apparent static-analysis limitations on harder cases; (iv) all three applications are from the authors' own research group (Pradel), introducing no independent validation that the benchmark serves external research needs. The central call-graph claim would be falsified if a future sounder static analyzer closed the edge gap to >90% on the same test-exercised code paths, or if DyPyBench executions could not be reproduced on fresh machines from the published Docker image.
Know what changed, what holds up, and what remains uncertain. Every Friday. No ads.