pub use core::option; // necessary for panic!()
pub use core::clone; // deriving(Clone)
pub use core::cmp; // deriving(Eq, Ord, etc.)
- #[cfg(stage0)]
- pub use core::marker as kinds;
pub use core::marker; // deriving(Copy)
pub use core::hash; // deriving(Hash)
}
fn to_string(&self) -> String;
}
-#[cfg(stage0)]
-impl<T: fmt::Show> ToString for T {
- fn to_string(&self) -> String {
- use core::fmt::Writer;
- let mut buf = String::new();
- let _ = buf.write_fmt(format_args!("{}", self));
- buf.shrink_to_fit();
- buf
- }
-}
-
-#[cfg(not(stage0))]
impl<T: fmt::String> ToString for T {
fn to_string(&self) -> String {
use core::fmt::Writer;
}
}
-#[cfg(stage0)]
-#[experimental = "waiting on Show stability"]
-impl<T: fmt::Show> fmt::String for Vec<T> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self.as_slice(), f)
- }
-}
-
-#[cfg(not(stage0))]
#[experimental = "waiting on Show stability"]
impl<T: fmt::String> fmt::String for Vec<T> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
/// }
/// }
/// ```
-//#[deriving(Show)] NOTE(stage0): uncomment after snapshot
+#[derive(Show)]
pub enum Cow<'a, T, B: ?Sized + 'a> where B: ToOwned<T> {
/// Borrowed data.
Borrowed(&'a B),
Owned(T)
}
-//NOTE(stage0): replace with deriving(Show) after snapshot
-impl<'a, T, B: ?Sized> fmt::Show for Cow<'a, T, B> where
- B: fmt::String + ToOwned<T>,
- T: fmt::String
-{
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
#[stable]
impl<'a, T, B: ?Sized> Clone for Cow<'a, T, B> where B: ToOwned<T> {
fn clone(&self) -> Cow<'a, T, B> {
}
}
-#[cfg(stage0)]
-//NOTE(stage0): remove impl after snapshot
-impl Show for str {
- fn fmt(&self, f: &mut Formatter) -> Result {
- String::fmt(self, f)
- }
-}
-
-#[cfg(not(stage0))]
-//NOTE(stage0): remove cfg after snapshot
impl Show for str {
fn fmt(&self, f: &mut Formatter) -> Result {
try!(write!(f, "\""));
}
}
-#[cfg(stage0)]
-//NOTE(stage0): remove impl after snapshot
-impl Show for char {
- fn fmt(&self, f: &mut Formatter) -> Result {
- String::fmt(self, f)
- }
-}
-
-#[cfg(not(stage0))]
-//NOTE(stage0): remove cfg after snapshot
impl Show for char {
fn fmt(&self, f: &mut Formatter) -> Result {
use char::CharExt;
}
}
-#[cfg(stage0)]
-impl<T: Show> String for [T] {
- fn fmt(&self, f: &mut Formatter) -> Result {
- if f.flags & (1 << (rt::FlagAlternate as uint)) == 0 {
- try!(write!(f, "["));
- }
- let mut is_first = true;
- for x in self.iter() {
- if is_first {
- is_first = false;
- } else {
- try!(write!(f, ", "));
- }
- try!(write!(f, "{}", *x))
- }
- if f.flags & (1 << (rt::FlagAlternate as uint)) == 0 {
- try!(write!(f, "]"));
- }
- Ok(())
- }
-}
-#[cfg(not(stage0))]
impl<T: String> String for [T] {
fn fmt(&self, f: &mut Formatter) -> Result {
if f.flags & (1 << (rt::FlagAlternate as uint)) == 0 {
macro_rules! radix_fmt {
($T:ty as $U:ty, $fmt:ident, $S:expr) => {
- #[cfg(stage0)]
- impl fmt::Show for RadixFmt<$T, Radix> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
- }
-
- #[cfg(not(stage0))]
impl fmt::Show for RadixFmt<$T, Radix> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
try!(fmt::String::fmt(self, f));
macro_rules! show {
($T:ident with $S:expr) => {
- #[cfg(stage0)]
- impl fmt::Show for $T {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
- }
-
- #[cfg(not(stage0))]
impl fmt::Show for $T {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
try!(fmt::String::fmt(self, f));
mod std {
pub use clone;
pub use cmp;
- #[cfg(stage0)]
- pub use marker as kinds;
pub use marker;
pub use option;
pub use fmt;
#[doc(hidden)]
#[cfg(not(test))]
mod std {
- #[cfg(stage0)]
- pub use core::marker as kinds;
pub use core::marker;
}
mod std {
pub use core::{option, fmt}; // panic!()
pub use core::clone; // derive Clone
- #[cfg(stage0)]
- pub use core::marker as kinds;
pub use core::marker;
}
}
}
-#[cfg(stage0)]
-//FIXME: remove after stage0 snapshot
-impl fmt::Show for Regex {
- /// Shows the original regular expression.
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self.as_str(), f)
- }
-}
-
impl fmt::String for Regex {
/// Shows the original regular expression.
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
impl fmt::Show for Svh {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- //NOTE(stage0): uncomment after snapshot
- //write!(f, "Svh {{ {} }}", self.as_str())
- fmt::String::fmt(self, f)
+ write!(f, "Svh {{ {} }}", self.as_str())
}
}
/// string when passed to a format string.
pub struct Escape<'a>(pub &'a str);
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Escape<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Escape<'a> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
// Because the internet is always right, turns out there's not that many
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for TyParamBounds<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for TyParamBounds<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let &TyParamBounds(bounds) = self;
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::Generic {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::Generics {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
if self.lifetimes.len() == 0 && self.type_params.len() == 0 { return Ok(()) }
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for WhereClause<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for WhereClause<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let &WhereClause(gens) = self;
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::Lifetime {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::Lifetime {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
try!(f.write_str(self.get_ref()));
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::PolyTrait {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::PolyTrait {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
if self.lifetimes.len() > 0 {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::TyParamBound {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::TyParamBound {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::PathParameters {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::PathParameters {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::PathSegment {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::PathSegment {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
try!(f.write_str(self.name.as_slice()));
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::Path {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::Path {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
if self.global {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::Type {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::Type {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::Arguments {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
-
impl fmt::String for clean::Arguments {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
for (i, input) in self.values.iter().enumerate() {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::FunctionRetTy {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::FunctionRetTy {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::FnDecl {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::FnDecl {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "({args}){arrow}", args = self.inputs, arrow = self.output)
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Method<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Method<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let Method(selfty, d) = *self;
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for VisSpace {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for VisSpace {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self.get() {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for UnsafetySpace {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for UnsafetySpace {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self.get() {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::ViewPath {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::ViewPath {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::ImportSource {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::ImportSource {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self.did {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for clean::ViewListIdent {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for clean::ViewListIdent {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self.source {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for MutableSpace {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for MutableSpace {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for RawMutableSpace {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for RawMutableSpace {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Stability<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Stability<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let Stability(stab) = *self;
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for ConciseStability<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for ConciseStability<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let ConciseStability(stab) = *self;
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for ModuleSummary {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for ModuleSummary {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fn fmt_inner<'a>(f: &mut fmt::Formatter,
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl fmt::Show for ItemType {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for ItemType {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
self.to_static_str().fmt(f)
TEST_IDX.with(|s| s.set(0));
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Markdown<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Markdown<'a> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
let Markdown(md) = *self;
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for MarkdownWithToc<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for MarkdownWithToc<'a> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
let MarkdownWithToc(md) = *self;
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Item<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Item<'a> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
// Write the breadcrumb trail header for the top
struct Initializer<'a>(&'a str);
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Initializer<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Initializer<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let Initializer(s) = *self;
document(w, it)
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Sidebar<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Sidebar<'a> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
let cx = self.cx;
}
}
-//NOTE(stage0): remove impl after snapshot
-#[cfg(stage0)]
-impl<'a> fmt::Show for Source<'a> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a> fmt::String for Source<'a> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
let Source(s) = *self;
}
}
-#[cfg(stage0)]
-//NOTE(stage0): remove impl after snapshot
-impl<'a, T: Encodable> fmt::Show for AsJson<'a, T> {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl<'a, T: Encodable> fmt::String for AsJson<'a, T> {
/// Encodes a json value into a string
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
#![allow(unknown_features)]
#![feature(slicing_syntax)]
#![feature(old_impl_check)]
-#![cfg_attr(stage0, allow(unused_attributes))]
// test harness access
#[cfg(test)] extern crate test;
}
-// NOTE(stage0): change this one last #[doc=..] to /// after the next snapshot
bitflags! {
- #[doc = "A set of permissions for a file or directory is represented by a set of"]
+ /// A set of permissions for a file or directory is represented by a set of
/// flags which are or'd together.
flags FilePermission: u32 {
const USER_READ = 0o400,
}
}
-#[cfg(stage0)]
-impl fmt::Show for Command {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for Command {
/// Format the program and arguments of a Command for display. Any
/// non-utf8 data is lossily converted using the utf8 replacement
#![feature(lang_items, unsafe_destructor)]
#![feature(slicing_syntax, unboxed_closures)]
#![feature(old_impl_check)]
-#![cfg_attr(stage0, allow(unused_attributes))]
// Don't link to std. We are std.
#![no_std]
pub use core::finally;
pub use core::intrinsics;
pub use core::iter;
-#[cfg(stage0)] #[cfg(not(test))] pub use core::marker as kinds;
#[cfg(not(test))] pub use core::marker;
pub use core::mem;
#[cfg(not(test))] pub use core::ops;
pub use vec; // used for vec![]
pub use cell; // used for tls!
pub use thread_local; // used for thread_local!
- #[cfg(stage0)]
- pub use marker as kinds;
pub use marker; // used for tls!
pub use ops; // used for bitflags!
filename: bool
}
-//NOTE(stage0): replace with deriving(Show) after snapshot
impl<'a, P: GenericPath> fmt::Show for Display<'a, P> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fmt::String::fmt(self, f)
}
}
-//NOTE(stage0): remove after snapshot
impl fmt::Show for Ident {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}#{}", self.name, self.ctxt)
TyI64,
}
-//NOTE(stage0): remove after snapshot
impl fmt::Show for IntTy {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fmt::String::fmt(self, f)
}
}
-//NOTE(stage0): remove after snapshot
impl fmt::Show for UintTy {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fmt::String::fmt(self, f)
TyF64,
}
-//NOTE(stage0): remove after snapshot
impl fmt::Show for FloatTy {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fmt::String::fmt(self, f)
pub mod blocks;
-#[derive(Clone, Copy, PartialEq)]
+#[derive(Clone, Copy, PartialEq, Show)]
pub enum PathElem {
PathMod(Name),
PathName(Name)
}
}
-//NOTE(stage0): replace with deriving(Show) after snapshot
-impl fmt::Show for PathElem {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt(self, f)
- }
-}
-
impl fmt::String for PathElem {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let slot = token::get_name(self.name());
+S 2015-01-07 9e4e524
+ freebsd-x86_64 2563d33151bce1bbe08a85d712564bddc7503fc6
+ linux-i386 d8b73fc9aa3ad72ce1408a41e35d78dba10eb4d4
+ linux-x86_64 697880d3640e981bbbf23284363e8e9a158b588d
+ macos-i386 a73b1fc03e8cac747aab0aa186292bb4332a7a98
+ macos-x86_64 e4ae2670ea4ba5c2e5b4245409c9cab45c9eeb5b
+ winnt-i386 ddffa59d9605aa05e83e8f664db802da512611e9
+ winnt-x86_64 a56261ebbc580c6c14b1c1d0be25010f5201dc3f
+
S 2015-01-06 340ac04
freebsd-x86_64 5413b8931d7076e90c873e0cc7a43e0793c2b17a
linux-i386 cacb8e3ad15937916e455d8f63e740c30a807b10