about summary refs log tree commit diff
path: root/src/etc/snapshot.py
AgeCommit message (Collapse)AuthorLines
2016-04-19mk: Bootstrap from stable instead of snapshotsAlex Crichton-304/+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
2016-01-31Rename sunos to solarisNikita Baksalyar-1/+1
2016-01-31Add Illumos supportNikita Baksalyar-0/+1
2015-07-01Add netbsd amd64 supportAlex Newman-4/+7
2015-02-11bitrig integrationDave Huseby-1/+3
2015-02-01openbsd supportSébastien Marie-1/+4
2015-01-27Fix PEP8 in snapshot.pyRicho Healey-132/+153
2014-12-19Several fixes for DragonFly (rebase)Michael Neumann-0/+3
2014-11-13src/etc/snapshot: support triples lacking a vendorCody P Schafer-1/+5
2014-11-04Implement flexible target specificationCorey Richardson-3/+2
Removes all target-specific knowledge from rustc. Some targets have changed during this, but none of these should be very visible outside of cross-compilation. The changes make our targets more consistent. iX86-unknown-linux-gnu is now only available as i686-unknown-linux-gnu. We used to accept any value of X greater than 1. i686 was released in 1995, and should encompass the bare minimum of what Rust supports on x86 CPUs. The only two windows targets are now i686-pc-windows-gnu and x86_64-pc-windows-gnu. The iOS target has been renamed from arm-apple-ios to arm-apple-darwin. A complete list of the targets we accept now: arm-apple-darwin arm-linux-androideabi arm-unknown-linux-gnueabi arm-unknown-linux-gnueabihf i686-apple-darwin i686-pc-windows-gnu i686-unknown-freebsd i686-unknown-linux-gnu mips-unknown-linux-gnu mipsel-unknown-linux-gnu x86_64-apple-darwin x86_64-unknown-freebsd x86_64-unknown-linux-gnu x86_64-pc-windows-gnu Closes #16093 [breaking-change]
2014-09-11Package rustc's mingw dependencies into Windows installer.Vadim Chugunov-3/+3
gcc, ld, ar, dlltool, windres go into $(RUST)/bin/rustlib/<triple>/bin/ platform libraries and startup objects got into $(RUST)/bin/rustlib/<triple>/lib/
2014-09-09Fix snapshot.py for win64Brian Anderson-6/+12
2014-08-11Download snapshots using HTTPSBrian Anderson-1/+1
cc #16123
2014-02-10Revert non-license changes as part of 0ebe112bAlex Crichton-113/+115
The commit accidentally modified the snapshot script which changed its behavior and is currently blocking a snapshot.
2014-02-05etc: add missing license boilerplatesAdrien Tétar-116/+122
2014-02-05etc/tidy: don't check SNAP against tripleAdrien Tétar-5/+25
2014-01-05Add tidy support for snapshotsCorey Richardson-0/+38
This let's us specify exactly which snapshot a given note to update after snapshot is for. Closes #2483
2013-12-18llvm: Disable pthread on mingwklutzy-2/+1
llvm supports both win32 native threads and pthread, but configure tries to find pthread first. This manually disables pthread to use native api. This removes libpthreads-2.dll dependency on librustc.
2013-12-06Link rustllvm statically, and distribute a static snapshotAlex Crichton-28/+4
In order to keep up to date with changes to the libraries that `llvm-config` spits out, the dependencies to the LLVM are a dynamically generated rust file. This file is now automatically updated whenever LLVM is updated to get kept up-to-date. At the same time, this cleans out some old cruft which isn't necessary in the makefiles in terms of dependencies. Closes #10745 Closes #10744
2013-11-29Statically link librustrt to libstdAlex Crichton-4/+0
This commit alters the build process of the compiler to build a static librustrt.a instead of a dynamic version. This means that we can stop distributing librustrt as well as default linking against it in the compiler. This also means that if you attempt to build rust code without libstd, it will no longer work if there are any landing pads in play. The reason for this is that LLVM and rustc will emit calls to the various upcalls in librustrt used to manage exception handling. In theory we could split librustrt into librustrt and librustupcall. We would then distribute librustupcall and link to it for all programs using landing pads, but I would rather see just one librustrt artifact and simplify the build process. The major benefit of doing this is that building a static rust library for use in embedded situations all of a sudden just became a whole lot more feasible. Closes #3361
2013-11-13be more robust when removing download artifacts and remove bogus raise statementBenjamin Peterson-2/+5
2013-10-29Move rust's uv implementation to its own crateAlex Crichton-0/+4
There are a few reasons that this is a desirable move to take: 1. Proof of concept that a third party event loop is possible 2. Clear separation of responsibility between rt::io and the uv-backend 3. Enforce in the future that the event loop is "pluggable" and replacable Here's a quick summary of the points of this pull request which make this possible: * Two new lang items were introduced: event_loop, and event_loop_factory. The idea of a "factory" is to define a function which can be called with no arguments and will return the new event loop as a trait object. This factory is emitted to the crate map when building an executable. The factory doesn't have to exist, and when it doesn't then an empty slot is in the crate map and a basic event loop with no I/O support is provided to the runtime. * When building an executable, then the rustuv crate will be linked by default (providing a default implementation of the event loop) via a similar method to injecting a dependency on libstd. This is currently the only location where the rustuv crate is ever linked. * There is a new #[no_uv] attribute (implied by #[no_std]) which denies implicitly linking to rustuv by default Closes #5019
2013-10-02Package system runtime dependencies into snapshotsVadim Chugunov-2/+27
2013-07-19mk: Remove CFG_INSTALL_SNAP logic. #2664Brian Anderson-30/+1
2013-06-30configure: Require one of wget or curl.Luqman Aden-2/+8
2013-06-20core -> extra for macJames Miller-1/+1
2013-06-20Fix update snapshot script for renameJames Miller-4/+4
2013-01-17Add a license check to tidy. #4018Brian Anderson-0/+2
2012-12-11Switch snapshots to static.rust-lang.org.Graydon Hoare-1/+1
2012-10-08Revert bogus snapshot.py changeTim Chevalier-2/+1
2012-10-08Remove extra spaces from snapshots.txtTim Chevalier-1/+2
2012-06-21Tag all remaining FIXMEs with bugs. Install rule in tidy script to enforce this.Graydon Hoare-1/+1
2012-05-31Add libsyntax to the Python script for making a snapshotKevin Cantu-5/+4
2012-05-31Rename librustsyntax to libsyntaxKevin Cantu-0/+1
Per issue #2418.
2012-04-03update make glob from .so to .dylibNiko Matsakis-1/+1
2012-03-29build: Add librustsyntax to snapshotsBrian Anderson-0/+4
2012-03-28python scripts run with Python 2.4 (for RHEL5)Grahame Bowland-5/+11
2012-01-17Python!Graydon Hoare-1/+1
2012-01-17Long line, grumble.Graydon Hoare-1/+2
2012-01-17don't leave files that will not checksum if download is interruptedGrahame Bowland-1/+7
2012-01-14build: Build libraries in the bin directory on win32Brian Anderson-5/+5
2012-01-12Revert "build: Build libraries in the bin directory on win32"Brian Anderson-5/+5
This reverts commit 23e0d16b5fd259dc252b220777f164f1e2eb9c30.
2012-01-12build: Build libraries in the bin directory on win32Brian Anderson-5/+5
2012-01-01fix link errorJyun-Yan You-1/+9
2011-12-19Remove cargo from snapshot file-list again; overestimated.Graydon Hoare-3/+0
2011-12-16Install and snapshot cargo by default.Graydon Hoare-0/+3
2011-12-16Update build machinery to build and install librustc everywhere (including ↵Graydon Hoare-0/+3
snapshots).
2011-12-13Attempt to fix windows builder.Graydon Hoare-1/+1
2011-12-12Update snapshot scripts to pick up the versioned librariesHaitao Li-9/+21
2011-12-07Change snapshot script to pick up host libcore as well.Graydon Hoare-6/+15