Home/Developer Tools/self-repair
self-repair logo

self-repair

archived
theoxo/self-repair

Supports research on self-repair mechanisms for code generation

GraphCanon updated 2w · GitHub synced 2w

15 stars3 forksLast push 2y Python

Decision brief

Self-repair provides tools to replicate research experiments on code generation systems self-reparation techniques.

Good fit when

  • When aiming to replicate specific experimental data from the ICLR 2024 paper on self-repair in code generation
  • If your project requires evaluation of pre-existing datasets like HumanEval for new self-repair strategies

Avoid when

  • For creating entirely new datasets or conducting large-scale human studies, as this repository focuses on replicating existing experiments
  • When the internal dependencies or incomplete code functions such as exec_sample in APPS are critical for your application without modification

Observed Jul 16, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Archived (825d since push)
As of 2w
Provenance
Not a fork · Personal account
As of 2w
Security (OSV)
No criticals
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

pip install self-repair
PyPI

Similar tools

Same-category neighbours. No typed graph edges are catalogued for this tool yet.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

Source code and scripts to replicate experiments from the ICLR 2024 paper investigating whether self-repair is effective in code generation systems.

Capability facts

Languages
python

Source: github.language · Aug 5, 2026

Categories

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Python runtimePython

Source: README excerpt (regex_v1, Aug 5, 2026)

- `analysis/sample-and-estimate.py`: Python script to generate bootstrapped estimates of pass rates at various budgets.
Source link

Tags

README

[ICLR 2024]: Is Self-Repair a Silver Bullet for Code Generation?

This is is the accompanying repository for the paper Is Self-Repair a Silver Bullet for Code Generation?, presented at the Twelfth International Conference on Learning Representations (Vienna, May 2024). It contains source code used to run the experiments; the resulting data; as well as scripts to replicate the data analysis and figures from the paper.

To install the libraries needed to run the code and analysis scripts, you can use pip install -r requirements.txt.

TL;DR: Replicating the Figures

All figures in the paper can be replicated by running cd paper && make figures. This will use pre-computed results of the data analysis, and will place the figures in paper/figures/. If you instead want to do all of the data analysis from scratch, run APPS_DIR=<path to my APPS directory> cd paper && make all; note that this requires having APPS installed locally.

N.B.: This repository does not contain the data collected during the human study, due to IRB policies.

Bibtex Citation

@inproceedings{olausson2024repair,
	title        = {Is Self-Repair a Silver Bullet for Code Generation?},
	author       = {Theo X. Olausson and Jeevana Priya Inala and Chenglong Wang and Jianfeng Gao and Armando Solar-Lezama},
	year         = 2024,
	booktitle    = {International Conference on Learning Representations (ICLR)}
}

A Note on HumanEval

Note: the below only applies if you want to use this code base to run new self-repair experiments on HumanEval yourself. You do not need to worry about this if you are merely interested in replicating the figures and results from this paper.

This code base uses a modified version of HumanEval, in which it is easier to extract error messages from failed assertions. This can be downloaded from people.csail.mit.edu/theoxo/data/HumanEval_with_assertion_messages.jsonl.gz.gpg; you can then decrypt it with gpg -d using the password theoxoiclr2024 and unpack it with gunzip, after which it can be used as a drop-in replacement for HumanEval.jsonl in your local installation of HumanEval.

A Note on APPS

Note: the below only applies if you want to use this code base to run new self-repair experiments on APPS yourself. You do not need to worry about this if you are merely interested in replicating the figures and results from this paper.

Due to dependencies on an internal project, one function (exec_sample) has been left unimplemented in src/apps/apps.py. If you want to make use of the APPS part of the source code, you must implement this function; see the doc-string for pointers.

Repository Structure

  • src/: source code used to run the experiments.
    • apps/: source code for experiments on APPS.
    • humaneval/: source code for experiments on humaneval.
  • paper/: data and scripts used to analyze and plot the results of the experiments.
    • Makefile: makefile to reproduce figures (make figures), run the analysis scripts (make analysis) or both (make all)
    • analysis/sample-and-estimate.py: Python script to generate bootstrapped estimates of pass rates at various budgets.
    • data/:
      • calculate-token-counts.py: Python script to add counts for how many tokens were used to generate the programs/feedback/repairs. Used for pass@t metrics in Appendix A.
      • apps/: data from APPS experiments, with bash scripts to analyze the data and plot the results.
      • humaneval/: data from humaneval experiments, with bash scripts to analyze the data and plot the results.
    • plotting/: Python scripts to generate the types of figures used in the paper.

Data Format

The data generated by the models can be found by de-compressing the tarballs paper/data/apps/apps-data.tar.bz2 and `paper/data/hum

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.