<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/test/run-pass/writealias.rs, branch 1.1.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.1.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.1.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2015-04-09T00:21:34+00:00</updated>
<entry>
<title>Remove pretty-expanded from failing tests</title>
<updated>2015-04-09T00:21:34+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-04-08T23:27:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ec7c800d2fc0dc5918d325ae68d88c9708d20259'/>
<id>urn:sha1:ec7c800d2fc0dc5918d325ae68d88c9708d20259</id>
<content type='text'>
This commit removes pretty-expanded from all tests that wind up calling panic!
one way or another now that its internals are unstable.
</content>
</entry>
<entry>
<title>Mass rename uint/int to usize/isize</title>
<updated>2015-03-26T19:10:22+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-03-26T00:06:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=43bfaa4a336095eb5697fb2df50909fd3c72ed14'/>
<id>urn:sha1:43bfaa4a336095eb5697fb2df50909fd3c72ed14</id>
<content type='text'>
Now that support has been removed, all lingering use cases are renamed.
</content>
</entry>
<entry>
<title>rustdoc: Replace no-pretty-expanded with pretty-expanded</title>
<updated>2015-03-23T21:40:26+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2015-03-22T20:13:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8c93a79e387f5197e8b8fe73b3d87d2b101b7c4a'/>
<id>urn:sha1:8c93a79e387f5197e8b8fe73b3d87d2b101b7c4a</id>
<content type='text'>
Now that features must be declared expanded source often does not compile.
This adds 'pretty-expanded' to a bunch of test cases that still work.
</content>
</entry>
<entry>
<title>std: Return Result from RWLock/Mutex methods</title>
<updated>2014-12-29T17:18:09+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-12-09T04:20:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=76e5ed655c762b812c3da4749a55f1bb1b52c787'/>
<id>urn:sha1:76e5ed655c762b812c3da4749a55f1bb1b52c787</id>
<content type='text'>
All of the current std::sync primitives have poisoning enable which means that
when a task fails inside of a write-access lock then all future attempts to
acquire the lock will fail. This strategy ensures that stale data whose
invariants are possibly not upheld are never viewed by other tasks to help
propagate unexpected panics (bugs in a program) among tasks.

Currently there is no way to test whether a mutex or rwlock is poisoned. One
method would be to duplicate all the methods with a sister foo_catch function,
for example. This pattern is, however, against our [error guidelines][errors].
As a result, this commit exposes the fact that a task has failed internally
through the return value of a `Result`.

[errors]: https://github.com/rust-lang/rfcs/blob/master/text/0236-error-conventions.md#do-not-provide-both-result-and-fail-variants

All methods now return a `LockResult&lt;T&gt;` or a `TryLockResult&lt;T&gt;` which
communicates whether the lock was poisoned or not. In a `LockResult`, both the
`Ok` and `Err` variants contains the `MutexGuard&lt;T&gt;` that is being returned in
order to allow access to the data if poisoning is not desired. This also means
that the lock is *always* held upon returning from `.lock()`.

A new type, `PoisonError`, was added with one method `into_guard` which can
consume the assertion that a lock is poisoned to gain access to the underlying
data.

This is a breaking change because the signatures of these methods have changed,
often incompatible ways. One major difference is that the `wait` methods on a
condition variable now consume the guard and return it in as a `LockResult` to
indicate whether the lock was poisoned while waiting. Most code can be updated
by calling `.unwrap()` on the return value of `.lock()`.

[breaking-change]
</content>
</entry>
<entry>
<title>Revise std::thread API to join by default</title>
<updated>2014-12-19T07:31:52+00:00</updated>
<author>
<name>Aaron Turon</name>
<email>aturon@mozilla.com</email>
</author>
<published>2014-12-14T08:05:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a27fbac86849e07a0a6c746869d8f78319bd3a16'/>
<id>urn:sha1:a27fbac86849e07a0a6c746869d8f78319bd3a16</id>
<content type='text'>
This commit is part of a series that introduces a `std::thread` API to
replace `std::task`.

In the new API, `spawn` returns a `JoinGuard`, which by default will
join the spawned thread when dropped. It can also be used to join
explicitly at any time, returning the thread's result. Alternatively,
the spawned thread can be explicitly detached (so no join takes place).

As part of this change, Rust processes now terminate when the main
thread exits, even if other detached threads are still running, moving
Rust closer to standard threading models. This new behavior may break code
that was relying on the previously implicit join-all.

In addition to the above, the new thread API also offers some built-in
support for building blocking abstractions in user space; see the module
doc for details.

Closes #18000

[breaking-change]
</content>
</entry>
<entry>
<title>libs: merge librustrt into libstd</title>
<updated>2014-12-19T07:31:34+00:00</updated>
<author>
<name>Aaron Turon</name>
<email>aturon@mozilla.com</email>
</author>
<published>2014-11-24T03:21:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2b3477d373603527d23cc578f3737857b7b253d7'/>
<id>urn:sha1:2b3477d373603527d23cc578f3737857b7b253d7</id>
<content type='text'>
This commit merges the `rustrt` crate into `std`, undoing part of the
facade. This merger continues the paring down of the runtime system.

Code relying on the public API of `rustrt` will break; some of this API
is now available through `std::rt`, but is likely to change and/or be
removed very soon.

[breaking-change]
</content>
</entry>
<entry>
<title>Make most of std::rt private</title>
<updated>2014-11-21T01:19:24+00:00</updated>
<author>
<name>Aaron Turon</name>
<email>aturon@mozilla.com</email>
</author>
<published>2014-11-15T00:30:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6987ad22e46f55b12d8749be7522f4578d227c62'/>
<id>urn:sha1:6987ad22e46f55b12d8749be7522f4578d227c62</id>
<content type='text'>
Previously, the entire runtime API surface was publicly exposed, but
that is neither necessary nor desirable. This commit hides most of the
module, using librustrt directly as needed. The arrangement will need to
be revisited when rustrt is pulled into std.

[breaking-change]
</content>
</entry>
<entry>
<title>Rename fail! to panic!</title>
<updated>2014-10-29T15:43:07+00:00</updated>
<author>
<name>Steve Klabnik</name>
<email>steve@steveklabnik.com</email>
</author>
<published>2014-10-09T19:17:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7828c3dd2858d8f3a0448484d8093e22719dbda0'/>
<id>urn:sha1:7828c3dd2858d8f3a0448484d8093e22719dbda0</id>
<content type='text'>
https://github.com/rust-lang/rfcs/pull/221

The current terminology of "task failure" often causes problems when
writing or speaking about code. You often want to talk about the
possibility of an operation that returns a Result "failing", but cannot
because of the ambiguity with task failure. Instead, you have to speak
of "the failing case" or "when the operation does not succeed" or other
circumlocutions.

Likewise, we use a "Failure" header in rustdoc to describe when
operations may fail the task, but it would often be helpful to separate
out a section describing the "Err-producing" case.

We have been steadily moving away from task failure and toward Result as
an error-handling mechanism, so we should optimize our terminology
accordingly: Result-producing functions should be easy to describe.

To update your code, rename any call to `fail!` to `panic!` instead.
Assuming you have not created your own macro named `panic!`, this
will work on UNIX based systems:

    grep -lZR 'fail!' . | xargs -0 -l sed -i -e 's/fail!/panic!/g'

You can of course also do this by hand.

[breaking-change]
</content>
</entry>
<entry>
<title>librustc: Forbid external crates, imports, and/or items from being</title>
<updated>2014-08-17T02:32:25+00:00</updated>
<author>
<name>Patrick Walton</name>
<email>pcwalton@mimiga.net</email>
</author>
<published>2014-08-13T03:31:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7f928d150e53b5873b4238f9e60d1aa4be9b602f'/>
<id>urn:sha1:7f928d150e53b5873b4238f9e60d1aa4be9b602f</id>
<content type='text'>
declared with the same name in the same scope.

This breaks several common patterns. First are unused imports:

    use foo::bar;
    use baz::bar;

Change this code to the following:

    use baz::bar;

Second, this patch breaks globs that import names that are shadowed by
subsequent imports. For example:

    use foo::*; // including `bar`
    use baz::bar;

Change this code to remove the glob:

    use foo::{boo, quux};
    use baz::bar;

Or qualify all uses of `bar`:

    use foo::{boo, quux};
    use baz;

    ... baz::bar ...

Finally, this patch breaks code that, at top level, explicitly imports
`std` and doesn't disable the prelude.

    extern crate std;

Because the prelude imports `std` implicitly, there is no need to
explicitly import it; just remove such directives.

The old behavior can be opted into via the `import_shadowing` feature
gate. Use of this feature gate is discouraged.

This implements RFC #116.

Closes #16464.

[breaking-change]
</content>
</entry>
<entry>
<title>test: Fix fallout of previous changes</title>
<updated>2014-06-07T05:19:57+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-06-04T07:01:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d743b8831e6dc5b390af112cc23159d667cf583b'/>
<id>urn:sha1:d743b8831e6dc5b390af112cc23159d667cf583b</id>
<content type='text'>
</content>
</entry>
</feed>
