str: Add method .into_owned(self) -> ~str to Str

The method .into_owned() is meant to be used as an optimization when you
need to get a ~str from a Str, but don't want to unnecessarily copy it
if it's already a ~str.

This is meant to ease functions that look like

  fn foo<S: Str>(strs: &[S])

Previously they could work with the strings as slices using .as_slice(),
but producing ~str required copying the string, even if the vector
turned out be a &[~str] already.
Replace 'blk' -> 'block' in AstBuilder.

I didn't rename variables because they are local and are not parts of
the public interfaces.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Fix calling destructor on uninitialized dynamic library crash.

A test case was also created for this situation to prevent the problem
occuring again.

A similar problem was also fixed for the symbol method.

There was some minor code cleanup.
Revert "std::rt: Use a constant 4 threads for multithreaded sched tests"

This workaround was less than ideal. A better solution is to raise the
fd limit.

This reverts commit 49b72bdd77916e27aaf95909516702c1450f11ac.
Bump fd limit on macos when running rt tests

OS X defaults the ulimit for open files to 256 for programs launched
from the Terminal (GUI apps get a higher default). Unfortunately this is
too low for the rt tests, which deliberately overcommit and create a lot
of threads (which means a lot of schedulers, and each scheduler needs at
least 2 fds).

By calling sysctl() and setrlimit() we can bump the fd limit up to the
maximum allowed (on stock OS X it's 10240).

Fixes #7772.
librustc: Introduce a new visitor type based on traits and port syntax to it.

This is preparation for removing `@fn`.

This does *not* use default methods yet, because I don't know
whether they work. If they do, a forthcoming PR will use them.

This also changes the precedence of `as`.
librustc: Disallow "unsafe" for external functions
auto merge of #8235 : pcwalton/rust/unsafe-extern-fns, r=pcwalton

r? @brson
replace all remaining `for` with `foreach` or `do`
make `for` parse as `foreach` does

Closes #6997
rm obsolete documentation on `for`

it is documented in the container/iterator tutorial, not the basic
tutorial
Merge pull request #8244 from thestinger/for

make `for` parse as `foreach` does

r=huonw, bors is acting up and this has been run through the try bots
modified logging function to truncate output and adjusted error output formatting tests to be compatible with both the new and old runtimes
fixed the buffer to make it a more reasonable size
option: mutate() and mutate_default() should return bool

Fixes #8047.
std: use ptr.offset where possible in the vec iterator.

Closes #8212.
std: add benchmark for vec.mut_iter.
Explicitly impl Clone for RWArc

RWArc had a clone() method, but it was part of impl RWArc instead of
an implementation of Clone.

Stick with the explicit implementation instead of deriving Clone so we
can have a docstring.

Fixes #8052.
Remove unused variables.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Rename sum -> _sum.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>