Skip to content

Commit

Permalink
wipe bootstrap build before switching to bumped rustc
Browse files Browse the repository at this point in the history
Technically, wiping bootstrap builds can increase the build time.
But in practice, trying to manually resolve post-bump issues and
even accidentally removing the entire build directory will result
in a much greater loss of time. After all, the bootstrap build process
is not a particularly lengthy operation.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
  • Loading branch information
onur-ozkan committed Jun 3, 2024
1 parent 05965ae commit 92f85f1
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/bootstrap/bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,12 @@ def download_toolchain(self):
print('Choosing a pool size of', pool_size, 'for the unpacking of the tarballs')
p = Pool(pool_size)
try:
# FIXME: A cheap workaround for https://github.com/rust-lang/rust/issues/125578,
# remove this once the issue is closed.
bootstrap_out = self.bootstrap_out()
if os.path.exists(bootstrap_out):
shutil.rmtree(bootstrap_out)

p.map(unpack_component, tarballs_download_info)
finally:
p.close()
Expand Down Expand Up @@ -864,6 +870,16 @@ def get_string(line):
return line[start + 1:end]
return None

def bootstrap_out(self):
"""Return the path of the bootstrap build artifacts
>>> rb = RustBuild()
>>> rb.build_dir = "build"
>>> rb.bootstrap_binary() == os.path.join("build", "bootstrap")
True
"""
return os.path.join(self.build_dir, "bootstrap")

def bootstrap_binary(self):
"""Return the path of the bootstrap binary
Expand All @@ -873,7 +889,7 @@ def bootstrap_binary(self):
... "debug", "bootstrap")
True
"""
return os.path.join(self.build_dir, "bootstrap", "debug", "bootstrap")
return os.path.join(self.bootstrap_out(), "debug", "bootstrap")

def build_bootstrap(self):
"""Build bootstrap"""
Expand Down

0 comments on commit 92f85f1

Please sign in to comment.