From acc5e32e53d313a890a07cb0b693ce8df5bc94ce Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sat, 30 Nov 2013 16:38:07 -0800 Subject: [PATCH] Register new snapshots --- Makefile.in | 1 + src/libextra/lib.rs | 2 - src/libextra/unicode.rs | 2 +- src/librustc/front/feature_gate.rs | 6 +-- src/librustc/lib.rs | 2 - src/librustc/lib/llvm.rs | 6 --- src/librustdoc/lib.rs | 1 - src/librustpkg/lib.rs | 1 - src/librustuv/lib.rs | 2 - src/librustuv/uvll.rs | 25 ++++-------- src/libstd/any.rs | 39 ------------------- src/libstd/lib.rs | 4 +- src/libstd/rt/mod.rs | 5 --- src/libstd/rtdeps.rs | 6 +-- src/libstd/unstable/intrinsics.rs | 4 -- src/libsyntax/lib.rs | 1 - src/snapshots.txt | 8 ++++ .../compile-fail/nolink-with-link-args.rs | 2 + 18 files changed, 23 insertions(+), 94 deletions(-) diff --git a/Makefile.in b/Makefile.in index b575312c03b..59e5301c99e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -134,6 +134,7 @@ endif # static copies of libstd and libextra. We also generate dynamic versions of all # libraries, so in the interest of space, prefer dynamic linking throughout the # compilation process. +RUSTFLAGS_STAGE0 += -Z prefer-dynamic RUSTFLAGS_STAGE1 += -Z prefer-dynamic RUSTFLAGS_STAGE2 += -Z prefer-dynamic RUSTFLAGS_STAGE3 += -Z prefer-dynamic diff --git a/src/libextra/lib.rs b/src/libextra/lib.rs index ce504d8bf6f..198362492a5 100644 --- a/src/libextra/lib.rs +++ b/src/libextra/lib.rs @@ -32,7 +32,6 @@ #[comment = "Rust extras"]; #[license = "MIT/ASL2"]; -#[crate_type = "lib"]; // NOTE: remove after stage0 snapshot #[crate_type = "rlib"]; #[crate_type = "dylib"]; @@ -40,7 +39,6 @@ #[deny(non_camel_case_types)]; #[deny(missing_doc)]; -#[allow(attribute_usage)]; // NOTE: remove after the next snapshot use std::str::{StrSlice, OwnedStr}; diff --git a/src/libextra/unicode.rs b/src/libextra/unicode.rs index cd8c9cd6ab5..094a4b02a24 100644 --- a/src/libextra/unicode.rs +++ b/src/libextra/unicode.rs @@ -161,7 +161,7 @@ pub mod libicu { use unicode::icu::*; // #[link_name = "icuuc"] - #[link_args = "-licuuc"] + #[link(name = "icuuc")] extern { pub fn u_hasBinaryProperty(c: UChar32, which: UProperty) -> UBool; pub fn u_isdigit(c: UChar32) -> UBool; diff --git a/src/librustc/front/feature_gate.rs b/src/librustc/front/feature_gate.rs index d18a8306812..868b53c2465 100644 --- a/src/librustc/front/feature_gate.rs +++ b/src/librustc/front/feature_gate.rs @@ -113,8 +113,7 @@ fn visit_view_item(&mut self, i: &ast::view_item, _: ()) { fn visit_item(&mut self, i: @ast::item, _:()) { for attr in i.attrs.iter() { - if "thread_local" == attr.name() && - cfg!(stage0, remove_this_on_next_snapshot) { // NOTE: snap rem + if "thread_local" == attr.name() { self.gate_feature("thread_local", i.span, "`#[thread_local]` is an experimental feature, and does not \ currently handle destructors. There is no corresponding \ @@ -136,8 +135,7 @@ fn visit_item(&mut self, i: @ast::item, _:()) { } ast::item_foreign_mod(..) => { - if attr::contains_name(i.attrs, "link_args") && - cfg!(stage0, remove_this_on_next_snapshot) { // NOTE: snap + if attr::contains_name(i.attrs, "link_args") { self.gate_feature("link_args", i.span, "the `link_args` attribute is not portable \ across platforms, it is recommended to \ diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index e0073e7ce12..e0d1ab2439b 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -16,11 +16,9 @@ #[comment = "The Rust compiler"]; #[license = "MIT/ASL2"]; -#[crate_type = "lib"]; // NOTE: remove after stage0 snapshot #[crate_type = "dylib"]; #[feature(macro_rules, globs, struct_variant, managed_boxes)]; -#[allow(attribute_usage)]; // NOTE: remove after the next snapshot extern mod extra; extern mod syntax; diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs index 5e5cc242358..a856c069971 100644 --- a/src/librustc/lib/llvm.rs +++ b/src/librustc/lib/llvm.rs @@ -306,13 +306,7 @@ pub mod llvm { use std::libc::{c_char, c_int, c_longlong, c_ushort, c_uint, c_ulonglong, size_t}; - #[cfg(stage0)] - #[link_args = "-lrustllvm"] - extern {} - #[cfg(not(stage0))] // if you're deleting this, put this on the block below #[link(name = "rustllvm")] - extern {} - extern { /* Create and destroy contexts. */ pub fn LLVMContextCreate() -> ContextRef; diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 7cab7846f15..10caa9e0ac4 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -16,7 +16,6 @@ #[desc = "rustdoc, the Rust documentation extractor"]; #[license = "MIT/ASL2"]; -#[crate_type = "lib"]; // NOTE: remove after stage0 snapshot #[crate_type = "dylib"]; #[feature(globs, struct_variant, managed_boxes)]; diff --git a/src/librustpkg/lib.rs b/src/librustpkg/lib.rs index 157d8ba0105..35b6cc3fe64 100644 --- a/src/librustpkg/lib.rs +++ b/src/librustpkg/lib.rs @@ -17,7 +17,6 @@ url = "https://github.com/mozilla/rust/tree/master/src/librustpkg")]; #[license = "MIT/ASL2"]; -#[crate_type = "lib"]; // NOTE: remove after stage0 snapshot #[crate_type = "dylib"]; #[feature(globs, managed_boxes)]; diff --git a/src/librustuv/lib.rs b/src/librustuv/lib.rs index a43759a6da7..ad1c53e9739 100644 --- a/src/librustuv/lib.rs +++ b/src/librustuv/lib.rs @@ -41,12 +41,10 @@ url = "https://github.com/mozilla/rust/tree/master/src/librustuv")]; #[license = "MIT/ASL2"]; -#[crate_type = "lib"]; // NOTE: remove after stage0 snapshot #[crate_type = "rlib"]; #[crate_type = "dylib"]; #[feature(macro_rules, globs)]; -#[allow(attribute_usage)]; // NOTE: remove after the next snapshot use std::cast::transmute; use std::cast; diff --git a/src/librustuv/uvll.rs b/src/librustuv/uvll.rs index ca5c75122a6..09ebd29bc22 100644 --- a/src/librustuv/uvll.rs +++ b/src/librustuv/uvll.rs @@ -524,15 +524,11 @@ pub unsafe fn guess_handle(handle: c_int) -> c_int { // second copies of everything. We obviously don't want this, so instead of // dying horribly during testing, we allow all of the test rustuv's references // to get resolved to the original rustuv crate. -#[cfg(not(test), not(stage0))] +#[cfg(not(test))] #[link(name = "uv_support", kind = "static")] #[link(name = "uv", kind = "static")] extern {} -#[cfg(not(test), stage0)] -#[link_args = "-luv -luv_support"] -extern {} - extern { fn rust_uv_loop_new() -> *c_void; @@ -722,26 +718,19 @@ pub fn uv_signal_start(h: *uv_signal_t, cb: uv_signal_cb, pub fn uv_signal_stop(handle: *uv_signal_t) -> c_int; } -// various platform libraries required by libuv -#[cfg(not(stage0), not(target_os = "android"))] +// libuv requires other native libraries on various platforms. These are all +// listed here (for each platform) + +#[cfg(not(target_os = "android"))] // apparently pthreads isn't on android? #[link(name = "pthread")] extern {} -#[cfg(stage0)] -#[link_args = "-lpthread"] -extern {} -#[cfg(target_os = "win32", not(stage0))] +#[cfg(target_os = "win32")] #[link(name = "ws2_32")] #[link(name = "psapi")] #[link(name = "iphlpapi")] extern {} -#[cfg(target_os = "win32", stage0)] -#[link_args = "-lws2_32 -lpsapi -liphlpapi"] -extern {} -#[cfg(target_os = "freebsd", not(stage0))] +#[cfg(target_os = "freebsd")] #[link(name = "kvm")] extern {} -#[cfg(target_os = "freebsd", stage0)] -#[link_args = "-lkvm"] -extern {} diff --git a/src/libstd/any.rs b/src/libstd/any.rs index 7af12bef7b5..965b9ffb95c 100644 --- a/src/libstd/any.rs +++ b/src/libstd/any.rs @@ -12,51 +12,12 @@ //! of any type. use cast::transmute; -#[cfg(stage0)] -use cmp::Eq; use option::{Option, Some, None}; -#[cfg(stage0)] -use to_bytes::{IterBytes, Cb}; use to_str::ToStr; use unstable::intrinsics; use util::Void; -#[cfg(not(stage0))] use unstable::intrinsics::TypeId; -/////////////////////////////////////////////////////////////////////////////// -// TypeId -/////////////////////////////////////////////////////////////////////////////// - -/// `TypeId` represents a globally unique identifier for a type -#[cfg(stage0)] -pub struct TypeId { - priv t: u64, -} - -#[cfg(stage0)] -impl TypeId { - /// Returns the `TypeId` of the type this generic function has been instantiated with - #[inline] - pub fn of() -> TypeId { - TypeId{ t: unsafe { intrinsics::type_id::() } } - } -} - -#[cfg(stage0)] -impl Eq for TypeId { - #[inline] - fn eq(&self, &other: &TypeId) -> bool { - self.t == other.t - } -} - -#[cfg(stage0)] -impl IterBytes for TypeId { - fn iter_bytes(&self, lsb0: bool, f: Cb) -> bool { - self.t.iter_bytes(lsb0, f) - } -} - /////////////////////////////////////////////////////////////////////////////// // Any trait /////////////////////////////////////////////////////////////////////////////// diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 296091d26e6..6fe757976f0 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -51,7 +51,6 @@ #[comment = "The Rust standard library"]; #[license = "MIT/ASL2"]; -#[crate_type = "lib"]; // NOTE: remove after stage0 snapshot #[crate_type = "rlib"]; #[crate_type = "dylib"]; @@ -59,14 +58,13 @@ html_favicon_url = "http://www.rust-lang.org/favicon.ico", html_root_url = "http://static.rust-lang.org/doc/master")]; -#[feature(macro_rules, globs, asm, managed_boxes, thread_local)]; +#[feature(macro_rules, globs, asm, managed_boxes, thread_local, link_args)]; // Don't link to std. We are std. #[no_std]; #[deny(non_camel_case_types)]; #[deny(missing_doc)]; -#[allow(attribute_usage)]; // NOTE: remove after the next snapshot // When testing libstd, bring in libuv as the I/O backend so tests can print // things and all of the std::io tests have an I/O interface to run on top diff --git a/src/libstd/rt/mod.rs b/src/libstd/rt/mod.rs index be1de6c5bdb..d1268d85a43 100644 --- a/src/libstd/rt/mod.rs +++ b/src/libstd/rt/mod.rs @@ -117,11 +117,6 @@ pub mod shouldnt_be_public { /// The coroutine task scheduler, built on the `io` event loop. pub mod sched; -#[cfg(stage0)] -pub mod io { - pub use io::stdio; -} - /// The EventLoop and internal synchronous I/O interface. pub mod rtio; diff --git a/src/libstd/rtdeps.rs b/src/libstd/rtdeps.rs index ba4f120f626..8c348d06734 100644 --- a/src/libstd/rtdeps.rs +++ b/src/libstd/rtdeps.rs @@ -9,7 +9,7 @@ // except according to those terms. //! This module contains the linkage attributes to all runtime dependencies of -//! the stndard library This varies per-platform, but these libraries are +//! the standard library This varies per-platform, but these libraries are //! necessary for running libstd. // All platforms need to link to rustrt @@ -48,7 +48,3 @@ #[link(name = "pthread")] #[link(name = "stdc++")] extern {} - -#[cfg(stage0)] -#[link_args = "-lstdc++"] -extern {} diff --git a/src/libstd/unstable/intrinsics.rs b/src/libstd/unstable/intrinsics.rs index 01b4225d70b..d3649f0285c 100644 --- a/src/libstd/unstable/intrinsics.rs +++ b/src/libstd/unstable/intrinsics.rs @@ -313,9 +313,6 @@ fn visit_leave_fn(&mut self, purity: uint, proto: uint, /// Gets an identifier which is globally unique to the specified type. This /// function will return the same value for a type regardless of whichever /// crate it is invoked in. - #[cfg(stage0)] - pub fn type_id() -> u64; - #[cfg(not(stage0))] pub fn type_id() -> TypeId; @@ -504,7 +501,6 @@ pub struct TypeId { #[cfg(not(test))] impl TypeId { /// Returns the `TypeId` of the type this generic function has been instantiated with - #[cfg(not(stage0))] pub fn of() -> TypeId { unsafe { type_id::() } } diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs index 7fd503a8d42..eafcf7c09a0 100644 --- a/src/libsyntax/lib.rs +++ b/src/libsyntax/lib.rs @@ -19,7 +19,6 @@ uuid = "9311401b-d6ea-4cd9-a1d9-61f89499c645")]; #[license = "MIT/ASL2"]; -#[crate_type = "lib"]; // NOTE: remove after stage0 snapshot #[crate_type = "dylib"]; #[feature(macro_rules, globs, managed_boxes)]; diff --git a/src/snapshots.txt b/src/snapshots.txt index f9d1d1f6cf2..e71b218394d 100644 --- a/src/snapshots.txt +++ b/src/snapshots.txt @@ -1,3 +1,11 @@ +S 2013-11-30 4252a24 + freebsd-x86_64 2e0bfc6eb0dd75b8a1ad5c9958d90f3b626650dd + linux-i386 2ea4b43fbc22c295e60874ef494dfbea1cc08a63 + linux-x86_64 757a935bfce41fdacd9429c37d2ebd9b98baee17 + macos-i386 d64f14ba746c21bd5d52deb26e79f74b219b8d3c + macos-x86_64 bc669acd847cfcdccc78f01c8dd4bfa47933b56a + winnt-i386 d5e37b109c58a8b9b60bc2e79149c15d3a399eba + S 2013-11-28 859c3ba freebsd-x86_64 4110bb67408e382623b6c55e997e2c34342dc98d linux-i386 072e638a6a11f7d00cf2c7b487162d0d2e3b5036 diff --git a/src/test/compile-fail/nolink-with-link-args.rs b/src/test/compile-fail/nolink-with-link-args.rs index 77e6432f996..a1603ee9453 100644 --- a/src/test/compile-fail/nolink-with-link-args.rs +++ b/src/test/compile-fail/nolink-with-link-args.rs @@ -14,6 +14,8 @@ So we try to compile with junk link_args and make sure they are visible in the compiler output. */ +#[feature(link_args)]; + #[link_args = "aFdEfSeVEEE"] #[nolink] extern {} -- 2.44.0