<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/fmt, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2014-05-16T06:22:06+00:00</updated>
<entry>
<title>core: Inherit the std::fmt module</title>
<updated>2014-05-16T06:22:06+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-10T20:33:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cf0619383d2ce0f7bd822f82cf487c7fa33d0b76'/>
<id>urn:sha1:cf0619383d2ce0f7bd822f82cf487c7fa33d0b76</id>
<content type='text'>
This commit moves all possible functionality from the standard library's string
formatting utilities into the core library. This is a breaking change, due to a
few tweaks in the semantics of formatting:

1. In order to break the dependency on the std::io module, a new trait,
   FormatWriter was introduced in core::fmt. This is the trait which is used
   (instead of Writer) to format data into a stream.
2. The new FormatWriter trait has one method, write(), which takes some bytes
   and can return an error, but the error contains very little information. The
   intent for this trait is for an adaptor writer to be used around the standard
   library's Writer trait.
3. The fmt::write{,ln,_unsafe} methods no longer take &amp;mut io::Writer, but
   rather &amp;mut FormatWriter. Since this trait is less common, all functions were
   removed except fmt::write, and it is not intended to be invoked directly.

The main API-breaking change here is that the fmt::Formatter structure will no
longer expose its `buf` field. All previous code writing directly to `f.buf`
using writer methods or the `write!` macro will now instead use `f` directly.

The Formatter object itself implements the `Writer` trait itself for
convenience, although it does not implement the `FormatWriter` trait. The
fallout of these changes will be in the following commits.

[breaking-change]
</content>
</entry>
<entry>
<title>auto merge of #14133 : db48x/rust/ord-for-mut-refs, r=alexcrichton</title>
<updated>2014-05-15T05:06:50+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2014-05-15T05:06:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=73a68cdba0d6e5ee28c9ef1ae80ec473f16cd9e9'/>
<id>urn:sha1:73a68cdba0d6e5ee28c9ef1ae80ec473f16cd9e9</id>
<content type='text'>
Also Show, which is useful in assertions. Fixes #14074
</content>
</entry>
<entry>
<title>define Eq,TotalEq,Ord,TotalOrd for &amp;mut T</title>
<updated>2014-05-14T07:48:02+00:00</updated>
<author>
<name>Daniel Brooks</name>
<email>db48x@db48x.net</email>
</author>
<published>2014-05-12T09:04:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9eb723d00081938ebc6306a7cb73209e45140c95'/>
<id>urn:sha1:9eb723d00081938ebc6306a7cb73209e45140c95</id>
<content type='text'>
Also Show, which is useful in assertions. Fixes #14074
</content>
</entry>
<entry>
<title>librustc: Remove all uses of `~str` from librustc.</title>
<updated>2014-05-12T18:28:57+00:00</updated>
<author>
<name>Patrick Walton</name>
<email>pcwalton@mimiga.net</email>
</author>
<published>2014-05-10T01:45:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6559a3675e021c9e8a416fc0d9ef416ddfda2f13'/>
<id>urn:sha1:6559a3675e021c9e8a416fc0d9ef416ddfda2f13</id>
<content type='text'>
</content>
</entry>
<entry>
<title>core: Remove the cast module</title>
<updated>2014-05-11T08:13:02+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-09T17:34:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f94d671bfae5d8e9a4a4add310b1c40af0ab62a6'/>
<id>urn:sha1:f94d671bfae5d8e9a4a4add310b1c40af0ab62a6</id>
<content type='text'>
This commit revisits the `cast` module in libcore and libstd, and scrutinizes
all functions inside of it. The result was to remove the `cast` module entirely,
folding all functionality into the `mem` module. Specifically, this is the fate
of each function in the `cast` module.

* transmute - This function was moved to `mem`, but it is now marked as
              #[unstable]. This is due to planned changes to the `transmute`
              function and how it can be invoked (see the #[unstable] comment).
              For more information, see RFC 5 and #12898

* transmute_copy - This function was moved to `mem`, with clarification that is
                   is not an error to invoke it with T/U that are different
                   sizes, but rather that it is strongly discouraged. This
                   function is now #[stable]

* forget - This function was moved to `mem` and marked #[stable]

* bump_box_refcount - This function was removed due to the deprecation of
                      managed boxes as well as its questionable utility.

* transmute_mut - This function was previously deprecated, and removed as part
                  of this commit.

* transmute_mut_unsafe - This function doesn't serve much of a purpose when it
                         can be achieved with an `as` in safe code, so it was
                         removed.

* transmute_lifetime - This function was removed because it is likely a strong
                       indication that code is incorrect in the first place.

* transmute_mut_lifetime - This function was removed for the same reasons as
                           `transmute_lifetime`

* copy_lifetime - This function was moved to `mem`, but it is marked
                  `#[unstable]` now due to the likelihood of being removed in
                  the future if it is found to not be very useful.

* copy_mut_lifetime - This function was also moved to `mem`, but had the same
                      treatment as `copy_lifetime`.

* copy_lifetime_vec - This function was removed because it is not used today,
                      and its existence is not necessary with DST
                      (copy_lifetime will suffice).

In summary, the cast module was stripped down to these functions, and then the
functions were moved to the `mem` module.

    transmute - #[unstable]
    transmute_copy - #[stable]
    forget - #[stable]
    copy_lifetime - #[unstable]
    copy_mut_lifetime - #[unstable]

[breaking-change]
</content>
</entry>
<entry>
<title>Register new snapshots</title>
<updated>2014-05-10T04:13:02+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-09T23:30:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3f5e3af8387deb68e116228562062384d4b9cf65'/>
<id>urn:sha1:3f5e3af8387deb68e116228562062384d4b9cf65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Extract format string parsing out of libstd</title>
<updated>2014-05-08T16:35:59+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-06T16:52:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=80487ddcadda819e709beb9b996b12d322aa11a6'/>
<id>urn:sha1:80487ddcadda819e709beb9b996b12d322aa11a6</id>
<content type='text'>
This code does not belong in libstd, and rather belongs in a dedicated crate. In
the future, the syntax::ext::format module should move to the fmt_macros crate
(hence the name of the crate), but for now the fmt_macros crate will only
contain the format string parser.

The entire fmt_macros crate is marked #[experimental] because it is not meant
for general consumption, only the format!() interface is officially supported,
not the internals.

This is a breaking change for anyone using the internals of std::fmt::parse.
Some of the flags have moved to std::fmt::rt, while the actual parsing support
has all moved to the fmt_macros library.

[breaking-change]
</content>
</entry>
<entry>
<title>core: Inherit the cell module</title>
<updated>2014-05-07T15:16:14+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-01T18:19:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f62c121eb0de35ac03a7860e6039202f2522e527'/>
<id>urn:sha1:f62c121eb0de35ac03a7860e6039202f2522e527</id>
<content type='text'>
</content>
</entry>
<entry>
<title>core: Add unwrap()/unwrap_err() methods to Result</title>
<updated>2014-05-07T15:16:14+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-01T18:12:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d4b5d82a3356630ede4ce1b436cb59760be7b703'/>
<id>urn:sha1:d4b5d82a3356630ede4ce1b436cb59760be7b703</id>
<content type='text'>
These implementations must live in libstd right now because the fmt module has
not been migrated yet. This will occur in a later PR.

Just to be clear, there are new extension traits, but they are not necessary
once the std::fmt module has migrated to libcore, which is a planned migration
in the future.
</content>
</entry>
<entry>
<title>core: Inherit the result module</title>
<updated>2014-05-07T15:16:14+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-01T18:11:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a156534a96a6c401b14c80618c247eaadf876eb7'/>
<id>urn:sha1:a156534a96a6c401b14c80618c247eaadf876eb7</id>
<content type='text'>
The unwrap()/unwrap_err() methods are temporarily removed, and will be added
back in the next commit.
</content>
</entry>
</feed>
