about summary refs log tree commit diff
path: root/src/etc/get-snapshot.py
AgeCommit message (Collapse)AuthorLines
2016-04-19mk: Bootstrap from stable instead of snapshotsAlex Crichton-78/+0
This commit removes all infrastructure from the repository for our so-called snapshots to instead bootstrap the compiler from stable releases. Bootstrapping from a previously stable release is a long-desired feature of distros because they're not fans of downloading binary stage0 blobs from us. Additionally, this makes our own CI easier as we can decommission all of the snapshot builders and start having a regular cadence to when we update the stage0 compiler. A new `src/etc/get-stage0.py` script was added which shares some code with `src/bootstrap/bootstrap.py` to read a new file, `src/stage0.txt`, which lists the current stage0 compiler as well as cargo that we bootstrap from. This script will download the relevant `rustc` package an unpack it into `$target/stage0` as we do today. One problem of bootstrapping from stable releases is that we're not able to compile unstable code (e.g. all the `#![feature]` directives in libcore/libstd). To overcome this we employ two strategies: * The bootstrap key of the previous compiler is hardcoded into `src/stage0.txt` (enabled as a result of #32731) and exported by the build system. This enables nightly features in the compiler we download. * The standard library and compiler are pinned to a specific stage0, which doesn't change, so we're guaranteed that we'll continue compiling as we start from a known fixed source. The process for making a release will also need to be tweaked now to continue to cadence of bootstrapping from the previous release. This process looks like: 1. Merge `beta` to `stable` 2. Produce a new stable compiler. 3. Change `master` to bootstrap from this new stable compiler. 4. Merge `master` to `beta` 5. Produce a new beta compiler 6. Change `master` to bootstrap from this new beta compiler. Step 3 above should involve very few changes as `master` was previously bootstrapping from `beta` which is the same as `stable` at that point in time. Step 6, however, is where we benefit from removing lots of `#[cfg(stage0)]` and get to use new features. This also shouldn't slow the release too much as steps 1-5 requires little work other than waiting and step 6 just needs to happen at some point during a release cycle, it's not time sensitive. Closes #29555 Closes #29557
2015-01-27Fix PEP8 in snapshot.pyRicho Healey-3/+7
2015-01-27make get-snapshot externally usableRicho Healey-16/+20
2015-01-27Fix PEP8 in get-snapshotRicho Healey-34/+34
2014-09-10Register snapshotsBrian Anderson-3/+1
2014-08-04Use mingw64 target spelling.Vadim Chugunov-1/+1
2014-05-12add shebang to scripts that have execute bit setDavid Creswick-1/+3
2014-04-22There are no 64-bit Windows snapshots yet, so we'll use 32-bit ones instead.Vadim Chugunov-1/+3
2014-02-05etc: add missing license boilerplatesAdrien Tétar-2/+9
2014-01-05Add tidy support for snapshotsCorey Richardson-34/+0
This let's us specify exactly which snapshot a given note to update after snapshot is for. Closes #2483
2013-10-04Don't fail when unpacking the windows snapshotAlex Crichton-0/+2
Newly having a third-party directory was throwing off the unpack script
2013-07-09Fix #3225: Incorporate feedback from Graydon.Felix S. Klock II-1/+12
Namely, switched in many places to using GNU make provided functions for directory listing and text processing, rather than spawning a shell process to do that work. In the process of the revision, learned about Target-specific variables, which were very applicable to INSTALL_LIB (which, on a per-recipe basis, was always receiving the same actual arguments for its first two formal parameters in every invocation). http://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html (We might be able to make use of those in future refactorings.) ---- Also adds a cleanup pass to get-snapshot.py as well, since the same problem arises when we unpack libraries from the snapshot archive into a build directory with a prior snapshot's artifacts. (I put this step into the python script rather than the makefile because I wanted to delay the cleanup pass until after we have at least successfully downloaded the tarball. That way, if the download fails, you should not destroy the previous unarchived snapshot libraries and build products.) ---- Also reverted whitespace changes to minimize diff. I plan to put them back in in a dedicated commit elsewhere.
2013-01-17Add a license check to tidy. #4018Brian Anderson-0/+1
2012-06-21Tag all remaining FIXMEs with bugs. Install rule in tidy script to enforce this.Graydon Hoare-5/+1
2012-03-28python scripts run with Python 2.4 (for RHEL5)Grahame Bowland-1/+1
2012-02-24allow snapshot to be specified in make command lineNiko Matsakis-13/+21
2012-02-13build: Start downloading FreeBSD snaps from the official serverBrian Anderson-3/+0
2012-02-13build: Temporarily retrieve FreeBSD snapshots from jyyou's serverBrian Anderson-0/+3
2011-12-13Attempt to fix windows builder.Graydon Hoare-1/+5
2011-12-13Register new snapshots and teach snapshot script to deal with extracting ↵Graydon Hoare-21/+3
new-style versioned snapshots.
2011-12-12build: Temp hack to make transition to new snapshotHaitao Li-1/+18
2011-12-07Register new snapshots (containing libcore auto-importing it now).Graydon Hoare-3/+0
2011-12-07Change snapshot script to pick up host libcore as well.Graydon Hoare-0/+3
2011-11-29fix to new model where triple is explicitNiko Matsakis-5/+5
2011-11-29update snapshot scriptsNiko Matsakis-3/+2
2011-11-29basic builds functionNiko Matsakis-2/+4
2011-10-31Register snapshotsBrian Anderson-1/+1
2011-10-31Update snapshot scripts for new stdlib nameBrian Anderson-1/+1
2011-09-29Register snapshots and finish filesystem reorgBrian Anderson-1/+1
2011-09-28Eliminate glue.o. Closes #990Brian Anderson-1/+1
2011-08-14Register new snapshotsBrian Anderson-1/+1
Use main.o from the snapshot
2011-08-14Add lib/main.o to snapshotBrian Anderson-1/+1
Snapshotting main.o is going to make it easier (I think) to convert main to use ivecs
2011-07-19Register new snapshotsBrian Anderson-1/+1
Update snapshot scripts to complete transition of intrinsics.bc to lib dir
2011-07-19Update snapshot scripts for new location of intrinsics.bcBrian Anderson-1/+1
2011-07-11Use new snapshot.Rafael Ávila de Espíndola-1/+1
2011-07-11Move llvm out of stageN/lib so that the host building stage 1+ canRafael Ávila de Espíndola-1/+1
have a newer and incompatible llvm with the bots.
2011-07-11Use new snapshot.Rafael Ávila de Espíndola-1/+1
2011-07-11Step 1/n for moving to the new type system: include intrinsics.bc in theRafael Ávila de Espíndola-1/+1
snapshot.
2011-07-07Register new snapshotsBrian Anderson-1/+1
New snapshots also include rt and rustllvm
2011-07-07Add rt and rustllvm to the snapshotBrian Anderson-1/+1
2011-07-07Use new snapshot.Rafael Ávila de Espíndola-1/+1
2011-07-07Add the static std library in the next snapshot.Rafael Ávila de Espíndola-1/+1
2011-06-29Register new snapshotsBrian Anderson-1/+1
Also finish transition of snapshot scripts for new glue.o location
2011-06-29Change snapshot logic to archive glue.o from the lib directoryBrian Anderson-1/+1
2011-06-17Register new snapshots. Update location of stage0's libstdBrian Anderson-1/+1
2011-06-17Update snapshot scripts to understand new dir layoutBrian Anderson-1/+1
2011-05-17Add mirror-all-snapshots.py script for extra crowdsourced backup power.Graydon Hoare-5/+0
2011-05-13Add support for 'T' transition snapshots, which are identical to S snapshots ↵Graydon Hoare-3/+0
except they tell the makefile to stop at stage1.
2011-05-03More python portability fixes (for windows).Graydon Hoare-1/+1
2011-05-03Attempt to use more portable pythonGraydon Hoare-18/+18