<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/sys/common/mod.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-11-01T17:08:24+00:00</updated>
<entry>
<title>std: Move sys_common to libstd/sys_common</title>
<updated>2016-11-01T17:08:24+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2016-09-30T23:26:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ca30691813836e1c6896e5ba5d4397eb717e7270'/>
<id>urn:sha1:ca30691813836e1c6896e5ba5d4397eb717e7270</id>
<content type='text'>
Make the directory structure reflect the module structure. I've always
found the existing structure confusing.
</content>
</entry>
<entry>
<title>Move platform-specific arg handling to sys::args</title>
<updated>2016-10-02T21:52:30+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2016-09-29T22:00:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4d76ac84922bec9ea790c1394f6959ad399d7aa1'/>
<id>urn:sha1:4d76ac84922bec9ea790c1394f6959ad399d7aa1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Move platform specific memchr code into sys</title>
<updated>2016-10-01T19:33:02+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2016-09-22T00:10:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fea1bd4cdf375fa097789b2484b746cacdfddb73'/>
<id>urn:sha1:fea1bd4cdf375fa097789b2484b746cacdfddb73</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use `#[prelude_import]` in `libstd`.</title>
<updated>2016-08-24T22:12:48+00:00</updated>
<author>
<name>Jeffrey Seyfried</name>
<email>jeffrey.seyfried@gmail.com</email>
</author>
<published>2016-08-22T19:47:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9a2c8783d91624261317316f996d8d2d09b7b6a4'/>
<id>urn:sha1:9a2c8783d91624261317316f996d8d2d09b7b6a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>keep backtraces if using the old build system</title>
<updated>2016-07-27T03:33:45+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2016-07-27T03:33:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=774fbdf40deb9b257dd6aa166096fed1eeac80c2'/>
<id>urn:sha1:774fbdf40deb9b257dd6aa166096fed1eeac80c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustbuild: make backtraces (RUST_BACKTRACE) optional</title>
<updated>2016-07-26T20:21:25+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2016-07-26T20:21:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d464422c0a15b88a7f5791652ce1f881959fcc44'/>
<id>urn:sha1:d464422c0a15b88a7f5791652ce1f881959fcc44</id>
<content type='text'>
but keep them enabled by default to maintain the status quo.

When disabled shaves ~56KB off every x86_64-unknown-linux-gnu
binary.

To disable backtraces you have to use a config.toml (see
src/bootstrap/config.toml.example for details) when building rustc/std:

$ python bootstrap.py --config=config.toml
</content>
</entry>
<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>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>std: Add Instant and SystemTime to std::time</title>
<updated>2015-11-19T17:32:38+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-11-17T01:36:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c6eb8527e09bed702f30ffdc8d6e54acf9b867ca'/>
<id>urn:sha1:c6eb8527e09bed702f30ffdc8d6e54acf9b867ca</id>
<content type='text'>
This commit is an implementation of [RFC 1288][rfc] which adds two new unstable
types to the `std::time` module. The `Instant` type is used to represent
measurements of a monotonically increasing clock suitable for measuring time
withing a process for operations such as benchmarks or just the elapsed time to
do something. An `Instant` favors panicking when bugs are found as the bugs are
programmer errors rather than typical errors that can be encountered.

[rfc]: https://github.com/rust-lang/rfcs/pull/1288

The `SystemTime` type is used to represent a system timestamp and is not
monotonic. Very few guarantees are provided about this measurement of the system
clock, but a fixed point in time (`UNIX_EPOCH`) is provided to learn about the
relative distance from this point for any particular time stamp.

This PR takes the same implementation strategy as the `time` crate on crates.io,
namely:

|  Platform  |  Instant                 |  SystemTime              |
|------------|--------------------------|--------------------------|
| Windows    | QueryPerformanceCounter  | GetSystemTimeAsFileTime  |
| OSX        | mach_absolute_time       | gettimeofday             |
| Unix       | CLOCK_MONOTONIC          | CLOCK_REALTIME           |

These implementations can perhaps be refined over time, but they currently
satisfy the requirements of the `Instant` and `SystemTime` types while also
being portable across implementations and revisions of each platform.
</content>
</entry>
<entry>
<title>std: Internalize almost all of `std::rt`</title>
<updated>2015-09-11T18:19:20+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-09-08T22:53:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f4be2026dfb507e5db919cc5df8fd934e05fa0b8'/>
<id>urn:sha1:f4be2026dfb507e5db919cc5df8fd934e05fa0b8</id>
<content type='text'>
This commit does some refactoring to make almost all of the `std::rt` private.
Specifically, the following items are no longer part of its API:

* DEFAULT_ERROR_CODE
* backtrace
* unwind
* args
* at_exit
* cleanup
* heap (this is just alloc::heap)
* min_stack
* util

The module is now tagged as `#[doc(hidden)]` as the only purpose it's serve is
an entry point for the `panic!` macro via the `begin_unwind` and
`begin_unwind_fmt` reexports.
</content>
</entry>
</feed>
