<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/sys/common/libunwind.rs, 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>2016-05-09T15:22:36+00:00</updated>
<entry>
<title>rustc: Implement custom panic runtimes</title>
<updated>2016-05-09T15:22:36+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-04-08T23:18:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0ec321f7b541fcbfbf20286beb497e6d9d3352b2'/>
<id>urn:sha1:0ec321f7b541fcbfbf20286beb497e6d9d3352b2</id>
<content type='text'>
This commit is an implementation of [RFC 1513] which allows applications to
alter the behavior of panics at compile time. A new compiler flag, `-C panic`,
is added and accepts the values `unwind` or `panic`, with the default being
`unwind`. This model affects how code is generated for the local crate, skipping
generation of landing pads with `-C panic=abort`.

[RFC 1513]: https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md

Panic implementations are then provided by crates tagged with
`#![panic_runtime]` and lazily required by crates with
`#![needs_panic_runtime]`. The panic strategy (`-C panic` value) of the panic
runtime must match the final product, and if the panic strategy is not `abort`
then the entire DAG must have the same panic strategy.

With the `-C panic=abort` strategy, users can expect a stable method to disable
generation of landing pads, improving optimization in niche scenarios,
decreasing compile time, and decreasing output binary size. With the `-C
panic=unwind` strategy users can expect the existing ability to isolate failure
in Rust code from the outside world.

Organizationally, this commit dismantles the `sys_common::unwind` module in
favor of some bits moving part of it to `libpanic_unwind` and the rest into the
`panicking` module in libstd. The custom panic runtime support is pretty similar
to the custom allocator support with the only major difference being how the
panic runtime is injected (takes the `-C panic` flag into account).
</content>
</entry>
<entry>
<title>rustbuild: fix cross compilation of libstd to i686-unknown-linux-musl</title>
<updated>2016-03-06T13:19:51+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2016-03-06T13:19:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0b7fc0653bfd19f650a2fbad987b2fe03715e6b4'/>
<id>urn:sha1:0b7fc0653bfd19f650a2fbad987b2fe03715e6b4</id>
<content type='text'>
- make sure we copy the third party objects (crt*.o) to the target stage directory.
- apply the x86_64-musl logic also to the i686-musl target.
</content>
</entry>
<entry>
<title>Add the asmjs-unknown-emscripten triple. Add cfgs to libs.</title>
<updated>2016-02-06T20:56:14+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2015-11-26T19:05:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d6c0d859f6d859aa6e418b5ec58246071efbc9de'/>
<id>urn:sha1:d6c0d859f6d859aa6e418b5ec58246071efbc9de</id>
<content type='text'>
Backtraces, and the compilation of libbacktrace for asmjs, are disabled.

This port doesn't use jemalloc so, like pnacl, it disables jemalloc *for all targets*
in the configure file.

It disables stack protection.
</content>
</entry>
<entry>
<title>Auto merge of #31078 - nbaksalyar:illumos, r=alexcrichton</title>
<updated>2016-02-03T22:40:32+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2016-02-03T22:40:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e3bcddb44bc810ddf5b0443e45e42a835d17d868'/>
<id>urn:sha1:e3bcddb44bc810ddf5b0443e45e42a835d17d868</id>
<content type='text'>
This pull request adds support for [Illumos](http://illumos.org/)-based operating systems: SmartOS, OpenIndiana, and others. For now it's x86-64 only, as I'm not sure if 32-bit installations are widespread. This PR is based on #28589 by @potatosalad, and also closes #21000, #25845, and #25846.

Required changes in libc are already merged: https://github.com/rust-lang-nursery/libc/pull/138

Here's a snapshot required to build a stage0 compiler:
https://s3-eu-west-1.amazonaws.com/nbaksalyar/rustc-sunos-snapshot.tar.gz
It passes all checks from `make check`.

There are some changes I'm not quite sure about, e.g. macro usage in `src/libstd/num/f64.rs` and `DirEntry` structure in `src/libstd/sys/unix/fs.rs`, so any comments on how to rewrite it better would be greatly appreciated.

Also, LLVM configure script might need to be patched to build it successfully, or a pre-built libLLVM should be used. Some details can be found here: https://llvm.org/bugs/show_bug.cgi?id=25409

Thanks!

r? @brson
</content>
</entry>
<entry>
<title>Auto merge of #31312 - alexcrichton:no-le-in-powerpc64le, r=alexcrichton</title>
<updated>2016-02-02T17:11:48+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2016-02-02T17:11:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2dc132e4d25cf7424deddf6c33c6059d93ff5248'/>
<id>urn:sha1:2dc132e4d25cf7424deddf6c33c6059d93ff5248</id>
<content type='text'>
Currently the `mipsel-unknown-linux-gnu` target doesn't actually set the
`target_arch` value to `mipsel` but it rather uses `mips`. Alternatively the
`powerpc64le` target does indeed set the `target_arch` as `powerpc64le`,
causing a bit of inconsistency between theset two.

As these are just the same instance of one instruction set, let's use
`target_endian` to switch between them and only set the `target_arch` as one
value. This should cut down on the number of `#[cfg]` annotations necessary and
all around be a little more ergonomic.
</content>
</entry>
<entry>
<title>Remove "powerpc64le" and "mipsel" target_arch</title>
<updated>2016-02-02T04:39:07+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-01-30T21:27:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8f803c202681fa137fca691df999ac3f335d29c1'/>
<id>urn:sha1:8f803c202681fa137fca691df999ac3f335d29c1</id>
<content type='text'>
Currently the `mipsel-unknown-linux-gnu` target doesn't actually set the
`target_arch` value to `mipsel` but it rather uses `mips`. Alternatively the
`powerpc64le` target does indeed set the `target_arch` as `powerpc64le`,
causing a bit of inconsistency between theset two.

As these are just the same instance of one instruction set, let's use
`target_endian` to switch between them and only set the `target_arch` as one
value. This should cut down on the number of `#[cfg]` annotations necessary and
all around be a little more ergonomic.
</content>
</entry>
<entry>
<title>Rename sunos to solaris</title>
<updated>2016-01-31T16:01:30+00:00</updated>
<author>
<name>Nikita Baksalyar</name>
<email>nikita.baksalyar@gmail.com</email>
</author>
<published>2016-01-28T11:02:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e5da5d59f817eb6a3b78134d49b80c3ed6cb42c9'/>
<id>urn:sha1:e5da5d59f817eb6a3b78134d49b80c3ed6cb42c9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add Illumos support</title>
<updated>2016-01-31T15:57:26+00:00</updated>
<author>
<name>Nikita Baksalyar</name>
<email>nikita.baksalyar@gmail.com</email>
</author>
<published>2016-01-21T16:30:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f189d7a6937c063f9592136a39c836b17c008a93'/>
<id>urn:sha1:f189d7a6937c063f9592136a39c836b17c008a93</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add support for mips(el)-unknown-linux-musl</title>
<updated>2016-01-29T23:46:25+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2016-01-25T21:23:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7b026f0355a5394358e6a9758185db8eec850e0f'/>
<id>urn:sha1:7b026f0355a5394358e6a9758185db8eec850e0f</id>
<content type='text'>
This target covers MIPS devices that run the trunk version of OpenWRT.

The x86_64-unknown-linux-musl target always links statically to C libraries. For
the mips(el)-unknown-linux-musl target, we opt for dynamic linking (like most of
other targets do) to keep binary size down.

As for the C compiler flags used in the build system, we use the same flags used
for the mips(el)-unknown-linux-gnu target.
</content>
</entry>
<entry>
<title>Add powerpc64 and powerpc64le support</title>
<updated>2016-01-13T01:39:00+00:00</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2015-12-28T21:09:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b372910476c40584a22cd253c69106775d0c93fa'/>
<id>urn:sha1:b372910476c40584a22cd253c69106775d0c93fa</id>
<content type='text'>
This adds support for big endian and little endian PowerPC64.
make check runs clean apart from one big endian backtrace issue.
</content>
</entry>
</feed>
