diff --git a/Makefile.in b/Makefile.in index de7ff1d6933..de30113ca4b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -139,7 +139,7 @@ endif # version-string calculation CFG_GIT_DIR := $(CFG_SRC_DIR).git -CFG_RELEASE = 0.7-pre +CFG_RELEASE = 0.7 CFG_VERSION = $(CFG_RELEASE) # windows exe's need numeric versions - don't use anything but # numbers and dots here diff --git a/RELEASES.txt b/RELEASES.txt index 9ac4d650b43..33f749d0010 100644 --- a/RELEASES.txt +++ b/RELEASES.txt @@ -1,54 +1,56 @@ Version 0.7 (July 2013) ----------------------- - * ??? changes, numerous bugfixes + * ~2000 changes, numerous bugfixes - * Syntax changes + * Language * `impl`s no longer accept a visibility qualifier. Put them on methods instead. - * `use mod` is no longer valid. - * `fail!` and `assert!` accept `~str`, `&'static str` or `fmt!`-style - argument list. - * `Encodable`, `Decodable`, `Ord`, `TotalOrd`, `TotalEq`, `DeepClone`, - `Rand`, `Zero` and `ToStr` can all be automatically derived with - `#[deriving(...)]`. - * The `Durable` trait is replaced with the `'static` bounds. - * At long last, 'argument modes' no longer exist. - * The `bytes!` macro returns a vector of bytes for string, u8, char, - and unsuffixed integer literals. - * `#[static_assert]` makes compile-time assertions about static bools. - - * Semantic changes * The borrow checker has been rewritten with flow-sensitivity, fixing many bugs and inconveniences. * The `self` parameter no longer implicitly means `&'self self`, and can be explicitly marked with a lifetime. - * Structs with the `#[packed]` attribute have byte alignment and - no padding between fields. + * Overloadable compound operators (`+=`, etc.) have been temporarily + removed due to bugs. * The `for` loop protocol now requires `for`-iterators to return `bool` so they compose better. + * The `Durable` trait is replaced with the `'static` bounds. * Trait default methods work more often. + * Structs with the `#[packed]` attribute have byte alignment and + no padding between fields. * Type parameters bound by `Copy` must now be copied explicitly with the `copy` keyword. * It is now illegal to move out of a dereferenced unsafe pointer. * `Option<~T>` is now represented as a nullable pointer. * `@mut` does dynamic borrow checks correctly. - * Macros TODO * The `main` function is only detected at the topmost level of the crate. The `#[main]` attribute is still valid anywhere. * Struct fields may no longer be mutable. Use inherited mutability. - * The `#[non_owned]` attribute makes a type that would otherwise be - `Owned`, not. TODO this may change to non_send before 0.7 - * The `#[mutable]` attribute makes a type that would otherwise be - `Const`, note. TODO this may change to non_freeze before 0.7 + * The `#[no_send]` attribute makes a type that would otherwise be + `Send`, not. + * The `#[no_freeze]` attribute makes a type that would otherwise be + `Freeze`, not. * Unbounded recursion will abort the process after reaching the limit specified by the `RUST_MAX_STACK` environment variable (default: 1GB). * The `vecs_implicitly_copyable` lint mode has been removed. Vectors are never implicitly copyable. + * `#[static_assert]` makes compile-time assertions about static bools. + * At long last, 'argument modes' no longer exist. + * The rarely used `use mod` statement no longer exists. + + * Syntax extensions + * `fail!` and `assert!` accept `~str`, `&'static str` or `fmt!`-style + argument list. + * `Encodable`, `Decodable`, `Ord`, `TotalOrd`, `TotalEq`, `DeepClone`, + `Rand`, `Zero` and `ToStr` can all be automatically derived with + `#[deriving(...)]`. + * The `bytes!` macro returns a vector of bytes for string, u8, char, + and unsuffixed integer literals. * Libraries * The `core` crate was renamed to `std`. * The `std` crate was renamed to `extra`. + * More and improved documentation. * std: `iterator` module for external iterator objects. * Many old-style (internal, higher-order function) iterators replaced by implementations of `Iterator`. @@ -91,8 +93,16 @@ Version 0.7 (July 2013) * extra: Implementation of fixed output size variations of SHA-2. * Tooling - * `unused_unsafe` lint mode for detecting unnecessary `unsafe` blocks. - * `unused_mut` lint mode for identifying unused `mut` qualifiers. + * `unused_variable` lint mode for unused variables (default: warn). + * `unused_unsafe` lint mode for detecting unnecessary `unsafe` blocks + (default: warn). + * `unused_mut` lint mode for identifying unused `mut` qualifiers + (default: warn). + * `dead_assignment` lint mode for unread variables (default: warn). + * `unnecessary_allocation` lint mode detects some heap allocations that are + immediately borrowed so could be written without allocating (default: warn). + * `missing_doc` lint mode (default: allow). + * `unreachable_code` lint mode (default: warn). * The `rusti` command has been rewritten and a number of bugs addressed. * rustc outputs in color on more terminals. * rustc accepts a `--link-args` flag to pass arguments to the linker. @@ -101,12 +111,7 @@ Version 0.7 (July 2013) dynamic borrowcheck failures for debugging. * rustdoc has a nicer stylesheet. * Various improvements to rustdoc. - * Improvements to rustpkg (see the detailed release notes) - - * Other - * More and improved library documentation. - * Various improvements on ARM and Android. - * Various improvements to MIPS backend. + * Improvements to rustpkg (see the detailed release notes). Version 0.6 (April 2013) ------------------------ diff --git a/src/compiletest/compiletest.rs b/src/compiletest/compiletest.rs index d858003c353..82206f12fae 100644 --- a/src/compiletest/compiletest.rs +++ b/src/compiletest/compiletest.rs @@ -15,8 +15,8 @@ #[no_core]; // XXX: Remove after snapshot #[no_std]; -extern mod core(name = "std", vers = "0.7-pre"); -extern mod extra(name = "extra", vers = "0.7-pre"); +extern mod core(name = "std", vers = "0.7"); +extern mod extra(name = "extra", vers = "0.7"); use core::prelude::*; use core::*; diff --git a/src/driver/driver.rs b/src/driver/driver.rs index ccedd3adbaa..0f61ede4fc5 100644 --- a/src/driver/driver.rs +++ b/src/driver/driver.rs @@ -11,7 +11,7 @@ #[no_core]; #[no_std]; -extern mod core(name = "std", vers = "0.7-pre"); +extern mod core(name = "std", vers = "0.7"); #[cfg(rustpkg)] extern mod this(name = "rustpkg"); diff --git a/src/etc/kate/rust.xml b/src/etc/kate/rust.xml index 44d0ce1a27f..63f1e50fcaf 100644 --- a/src/etc/kate/rust.xml +++ b/src/etc/kate/rust.xml @@ -7,7 +7,7 @@ ]> - + fn diff --git a/src/libextra/extra.rs b/src/libextra/extra.rs index dae1487092b..50c57b28d22 100644 --- a/src/libextra/extra.rs +++ b/src/libextra/extra.rs @@ -21,7 +21,7 @@ Rust extras are part of the standard Rust distribution. */ #[link(name = "extra", - vers = "0.7-pre", + vers = "0.7", uuid = "122bed0b-c19b-4b82-b0b7-7ae8aead7297", url = "https://github.com/mozilla/rust/tree/master/src/libextra")]; diff --git a/src/librust/rust.rs b/src/librust/rust.rs index 2380e748e30..30b980a2f85 100644 --- a/src/librust/rust.rs +++ b/src/librust/rust.rs @@ -13,7 +13,7 @@ // FIXME #2238 Make run only accept source that emits an executable #[link(name = "rust", - vers = "0.7-pre", + vers = "0.7", uuid = "4a24da33-5cc8-4037-9352-2cbe9bd9d27c", url = "https://github.com/mozilla/rust/tree/master/src/rust")]; diff --git a/src/librustc/front/std_inject.rs b/src/librustc/front/std_inject.rs index 88ed39aae54..735fe54f348 100644 --- a/src/librustc/front/std_inject.rs +++ b/src/librustc/front/std_inject.rs @@ -18,7 +18,7 @@ use syntax::codemap::dummy_sp; use syntax::codemap; use syntax::fold; -static STD_VERSION: &'static str = "0.7-pre"; +static STD_VERSION: &'static str = "0.7"; pub fn maybe_inject_libstd_ref(sess: Session, crate: @ast::crate) -> @ast::crate { diff --git a/src/librustc/front/test.rs b/src/librustc/front/test.rs index cfd4df7403f..82283625d90 100644 --- a/src/librustc/front/test.rs +++ b/src/librustc/front/test.rs @@ -271,7 +271,7 @@ mod __test { */ fn mk_std(cx: &TestCtxt) -> @ast::view_item { - let vers = ast::lit_str(@"0.7-pre"); + let vers = ast::lit_str(@"0.7"); let vers = nospan(vers); let mi = ast::meta_name_value(@"vers", vers); let mi = nospan(mi); diff --git a/src/librustc/rustc.rs b/src/librustc/rustc.rs index 9c0dfb46530..a930570dd17 100644 --- a/src/librustc/rustc.rs +++ b/src/librustc/rustc.rs @@ -9,7 +9,7 @@ // except according to those terms. #[link(name = "rustc", - vers = "0.7-pre", + vers = "0.7", uuid = "0ce89b41-2f92-459e-bbc1-8f5fe32f16cf", url = "https://github.com/mozilla/rust/tree/master/src/rustc")]; diff --git a/src/librustdoc/rustdoc.rs b/src/librustdoc/rustdoc.rs index 6d16b9759cc..3659d24a254 100644 --- a/src/librustdoc/rustdoc.rs +++ b/src/librustdoc/rustdoc.rs @@ -11,7 +11,7 @@ //! Rustdoc - The Rust documentation generator #[link(name = "rustdoc", - vers = "0.7-pre", + vers = "0.7", uuid = "f8abd014-b281-484d-a0c3-26e3de8e2412", url = "https://github.com/mozilla/rust/tree/master/src/rustdoc")]; diff --git a/src/librusti/rusti.rc b/src/librusti/rusti.rc index 5873f361ad7..240247bd6d2 100644 --- a/src/librusti/rusti.rc +++ b/src/librusti/rusti.rc @@ -44,7 +44,7 @@ */ #[link(name = "rusti", - vers = "0.7-pre", + vers = "0.7", uuid = "7fb5bf52-7d45-4fee-8325-5ad3311149fc", url = "https://github.com/mozilla/rust/tree/master/src/rusti")]; diff --git a/src/librusti/rusti.rs b/src/librusti/rusti.rs index abb0cf271ec..99281f4f586 100644 --- a/src/librusti/rusti.rs +++ b/src/librusti/rusti.rs @@ -44,7 +44,7 @@ */ #[link(name = "rusti", - vers = "0.7-pre", + vers = "0.7", uuid = "7fb5bf52-7d45-4fee-8325-5ad3311149fc", url = "https://github.com/mozilla/rust/tree/master/src/rusti")]; diff --git a/src/librustpkg/rustpkg.rs b/src/librustpkg/rustpkg.rs index d393ed69566..8ca8ae1b1ed 100644 --- a/src/librustpkg/rustpkg.rs +++ b/src/librustpkg/rustpkg.rs @@ -11,7 +11,7 @@ // rustpkg - a package manager and build system for Rust #[link(name = "rustpkg", - vers = "0.7-pre", + vers = "0.7", uuid = "25de5e6e-279e-4a20-845c-4cabae92daaf", url = "https://github.com/mozilla/rust/tree/master/src/librustpkg")]; diff --git a/src/libstd/std.rs b/src/libstd/std.rs index 13c54799fac..f0f3bcdd4e9 100644 --- a/src/libstd/std.rs +++ b/src/libstd/std.rs @@ -49,7 +49,7 @@ they contained the following prologue: #[link(name = "std", - vers = "0.7-pre", + vers = "0.7", uuid = "c70c24a7-5551-4f73-8e37-380b11d80be8", url = "https://github.com/mozilla/rust/tree/master/src/libstd")]; diff --git a/src/libsyntax/syntax.rs b/src/libsyntax/syntax.rs index 395017cef3b..830ca569455 100644 --- a/src/libsyntax/syntax.rs +++ b/src/libsyntax/syntax.rs @@ -14,7 +14,7 @@ */ #[link(name = "syntax", - vers = "0.7-pre", + vers = "0.7", uuid = "9311401b-d6ea-4cd9-a1d9-61f89499c645")]; #[license = "MIT/ASL2"]; diff --git a/src/test/run-pass/use.rs b/src/test/run-pass/use.rs index d73eb6641fa..d73abc803cd 100644 --- a/src/test/run-pass/use.rs +++ b/src/test/run-pass/use.rs @@ -13,7 +13,7 @@ #[no_std]; extern mod std; extern mod zed(name = "std"); -extern mod bar(name = "std", vers = "0.7-pre"); +extern mod bar(name = "std", vers = "0.7"); use std::str;