Skip to content

Commit 1fefa5b

Browse files
committed
Updated release notes for 0.11.0
1 parent d2ff9d8 commit 1fefa5b

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed

RELEASES.txt

+133
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,136 @@
1+
Version 0.11 (July 2014)
2+
-------------------------
3+
4+
* ~1700 cahnges, numerous bugfixes
5+
6+
* Language
7+
* ~[T] has been removed from the language. This type is superseded by
8+
the Vec<T> type.
9+
* ~str has been removed from the language. This type is superseded by
10+
the String type.
11+
* ~T has been removed from the language. This type is superseded by the
12+
Box<T> type.
13+
* @T has been removed from the language. This type is superseded by the
14+
standard library's std::gc::Gc<T> type.
15+
* Struct fields are now all private by default.
16+
* Vector indices and shift amounts are both required to be a `uint` now
17+
instead of any integral type.
18+
* Byte character, byte string, and raw byte string literals are now all
19+
supported by prefixing the normal literal with a `b`.
20+
* Multiple ABIs are no longer allowed in an ABI string
21+
* The syntax for lifetimes on clousres/procedures has been tweaked
22+
slightly.
23+
* Floating point modulus has been removed from the language, it is still
24+
provided by a library implementation, however.
25+
* Private enum variants are now disallowed.
26+
* The `priv` keyword has been removed from the language.
27+
* A closure can no longer be invoked through a &-pointer.
28+
* The `use foo, bar, baz;` syntax has been removed from the language.
29+
* The transmute intrinsic no longer works on type parameters.
30+
* Statics now allow blocks/items in their definition.
31+
* Trait bounds are separated from objects with + instead of : now.
32+
* Mutably borrowed objects can no longer be read while they are
33+
borrowed.
34+
* The address of a static is now marked as insignificant unless the
35+
#[inline(never)] attribute is placed on a static.
36+
* The #[unsafe_destructor] attribute is now behind a feature gate.
37+
* Struct literals are no longer allowed in ambiguous positions such as
38+
if, while, match, and for..in.
39+
* Declaration of lang items and intrinsics are now feature-gated by
40+
default.
41+
* Integral literals no longer default to `int`, and floating point
42+
literals no longer default to `f64`. Literals must be suffixed with an
43+
appropriate type if inference cannot determine the type of the
44+
literal.
45+
* The Box<T> type is no longer implicitly borrowed to &mut T.
46+
* Procedures are now required to not capture borrowed references.
47+
48+
* Libraries
49+
* The standard library is now a "facade" over a number of underlying
50+
libraries. This means that development on the standard library should
51+
be speeder due to less to compile, as well as a clearer line between
52+
all dependencies.
53+
* A new library, libcore, lives under the standard library's facade
54+
which is Rust's "0-assumption" library, suitable for embedded and
55+
kernel development for example.
56+
* A regex crate has been added to the standard distribution. This crate
57+
includes statically compiled regulard expressions.
58+
* The unwrap/unwrap_err methods on Result require a Show bound for
59+
better error messages.
60+
* The return types of the std::comm primitives have been centralized
61+
around the Result type.
62+
* A number of I/O primitives have gained the ability to time out their
63+
operations.
64+
* A number of I/O primitives have gained the ability to close their
65+
reading/writing halves to cancel pending operations.
66+
* Reverse iterator methods have been removed in favor of `rev()` on
67+
their forward-iteration counterparts.
68+
* A bitflags! macro has been added to enable easy interop with C and
69+
management of bit flags.
70+
* A debug_assert! macro is now provided which is disabled when
71+
`--cfg ndebug` is passed to the compiler.
72+
* A graphviz crate has been added for creating .dot files.
73+
* The std::cast module has been migrated into std::mem.
74+
* The std::local_data api has been migrated from freestanding functions
75+
to based on methods.
76+
* The Pod trait has been renamed to Copy.
77+
* jemalloc has been added as the default allocator for types.
78+
* The api for allocating memory in rust has been modified for sized
79+
deallocation as well as using proper alignment.
80+
* Connecting a TcpStream or binding a TcpListener is now based on a
81+
string address and a u16 port. This allows connecting to a hostname as
82+
opposed to an IP.
83+
* The Reader trait now contains a core method, read_at_least(), which
84+
correctly handles many repeated 0-length reads.
85+
* The process-spawning API is now centered around a builder-style
86+
Command struct.
87+
* The :? printing qualifier has been moved from the standard library to
88+
an external libdebug crate.
89+
* Eq/Ord have been renamed to PartialEq/PartialOrd. TotalEq/TotalOrd
90+
have been renamed to Eq/Ord.
91+
* The select/plural methods have been removed from format!. The escapes
92+
for { and } have also changed from \{ and \} to {{ and }},
93+
respectively.
94+
* The TaskBuilder API has been re-worked to be a true builder, and
95+
extension traits for spawning native/green tasks have been added.
96+
97+
* Tooling
98+
* All breaking changes to the language or libraries now have their
99+
commit message annotated with `[breaking-change]` to allow for easy
100+
discovery of breaking changes.
101+
* The compiler will now try to suggest how to annotate lifetimes if a
102+
lifetime-related error occurs.
103+
* Debug info continues to be improved greatly with better support for
104+
situations such as LTO and general bug fixes.
105+
* Usage of syntax extensions when cross-compiling has been fixed.
106+
* The equivalent of ffunction-sections and fdata-sections have been
107+
enabled by default with the equivalent of --gc-sections.
108+
* The compiler is now stricter about where it will load module files
109+
from when a module is declared via `mod foo;`.
110+
* The #[phase(syntax)] attribute has been renamed to #[phase(plugin)].
111+
Syntax extensions are now discovered via a "plugin registrar" type
112+
which will be extended in the future to other various plugins.
113+
* Lints have been restructured to allow for dynamically loadable lints.
114+
* A number of rustdoc improvements:
115+
* The HTML output has been visually redesigned.
116+
* Markdown is now powered by hoedown instead of sundown.
117+
* Searching heuristics have been greatly improved.
118+
* The search index has been reduced in size by a great amount.
119+
* Cross-crate documentation via `pub use` has been greatly improved.
120+
* Primitive types are now hyperlinked and documented.
121+
* Documentation has been moved from static.rust-lang.org/doc to
122+
doc.rust-lang.org
123+
* A new sandbox, play.rust-lang.org, is available for running and
124+
sharing rust code examples on-line.
125+
* Unused attributes are now more robustly warned about.
126+
* The dead_code lint now warns about unused struct fields.
127+
* Cross-compiling to iOS is now supported.
128+
* Cross-compiling to mipsel is now supported.
129+
* Stability attributes are now inherited by default and no longer apply
130+
to intra-crate usage, only inter-crate usage.
131+
* Error message related to non-exhaustive match statements have been
132+
greatly improved.
133+
1134
Version 0.10 (April 2014)
2135
-------------------------
3136

0 commit comments

Comments
 (0)