From bb2276dfdfa96bfb77e0cce381b305af94060e0d Mon Sep 17 00:00:00 2001 From: Ryan Gibb Date: Sun, 27 Sep 2026 18:02:39 +0100 Subject: [PATCH] Cargo's check removes its cargo-home once cargo has answered, so a run's out/ keeps about 0.2 MB a query rather than 12 --- eval/cargo/check.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/eval/cargo/check.py b/eval/cargo/check.py index d07cab2..a20421e 100755 --- a/eval/cargo/check.py +++ b/eval/cargo/check.py @@ -100,12 +100,17 @@ def reproduce(ans, out, manifest): if r.returncode != 0: raise Unchecked("mklock: " + r.stderr.strip()[-300:]) shutil.copy(lock, lock + ".ours") - rc, msg = cargo_lock(workdir, home, KEEP, locked=True) - if rc == 0: - return True, None, msg - shutil.copy(lock + ".ours", lock) - irc, _ = cargo_lock(workdir, home, FRESH, locked=True) - return False, irc == 0, msg + # the home is only cargo's copy of the index rows it fetched, ~13 MB a + # check, which nothing reads afterwards + try: + rc, msg = cargo_lock(workdir, home, KEEP, locked=True) + if rc == 0: + return True, None, msg + shutil.copy(lock + ".ours", lock) + irc, _ = cargo_lock(workdir, home, FRESH, locked=True) + return False, irc == 0, msg + finally: + shutil.rmtree(home, ignore_errors=True) def main(): -- 2.51.2