Skip to content

Commit fda6e7e

Browse files
committed
---
yaml --- r: 147806 b: refs/heads/try2 c: f337029 h: refs/heads/master v: v3
1 parent be424ce commit fda6e7e

File tree

154 files changed

+1461
-1886
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+1461
-1886
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 02cec05c550317f88cd8e3a4574f60ed731fe666
8+
refs/heads/try2: f3370295b738c8b4c80fa8fc8449c0c3545b1b35
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/.gitignore

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,6 @@ src/.DS_Store
7575
/doc/latex
7676
/doc/std
7777
/doc/extra
78-
/doc/green
79-
/doc/native
80-
/doc/rustc
81-
/doc/syntax
8278
/nd/
8379
/llvm/
8480
version.md

branches/try2/.gitmodules

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
[submodule "src/llvm"]
22
path = src/llvm
3-
url = https://github.com/luqmana/llvm.git
3+
url = https://github.com/alexcrichton/llvm.git
44
branch = master
55
[submodule "src/libuv"]
66
path = src/libuv
77
url = https://github.com/alexcrichton/libuv.git
88
branch = master
99
[submodule "src/gyp"]
1010
path = src/gyp
11-
url = https://github.com/alexcrichton/gyp.git
11+
url = https://github.com/brson/gyp.git

branches/try2/doc/rust.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -610,12 +610,12 @@ the behavior of the compiler.
610610

611611
~~~~
612612
// Package ID
613-
#[ crate_id = "projx#2.5" ];
613+
#[ pkgid = "projx#2.5" ];
614614
615615
// Additional metadata attributes
616616
#[ desc = "Project X" ];
617617
#[ license = "BSD" ];
618-
#[ comment = "This is a comment on Project X." ];
618+
#[ author = "Jane Doe" ];
619619
620620
// Specify the output type
621621
#[ crate_type = "lib" ];
@@ -776,9 +776,9 @@ as the `ident` provided in the `extern_mod_decl`.
776776
The external crate is resolved to a specific `soname` at compile time, and a
777777
runtime linkage requirement to that `soname` is passed to the linker for
778778
loading at runtime. The `soname` is resolved at compile time by scanning the
779-
compiler's library path and matching the optional `crateid` provided as a string literal
780-
against the `crateid` attributes that were declared on the external crate when
781-
it was compiled. If no `crateid` is provided, a default `name` attribute is
779+
compiler's library path and matching the optional `pkgid` provided as a string literal
780+
against the `pkgid` attributes that were declared on the external crate when
781+
it was compiled. If no `pkgid` is provided, a default `name` attribute is
782782
assumed, equal to the `ident` given in the `extern_mod_decl`.
783783

784784
Four examples of `extern mod` declarations:
@@ -1729,7 +1729,7 @@ names are effectively reserved. Some significant attributes include:
17291729
* The `cfg` attribute, for conditional-compilation by build-configuration.
17301730
* The `lang` attribute, for custom definitions of traits and functions that are known to the Rust compiler (see [Language items](#language-items)).
17311731
* The `link` attribute, for describing linkage metadata for a extern blocks.
1732-
* The `crate_id` attribute, for describing the package ID of a crate.
1732+
* The `pkgid` attribute, for describing the package ID of a crate.
17331733
* The `test` attribute, for marking functions as unit tests.
17341734
* The `allow`, `warn`, `forbid`, and `deny` attributes, for
17351735
controlling lint checks (see [Lint check attributes](#lint-check-attributes)).
@@ -3792,7 +3792,7 @@ specified then log level 4 is assumed. Debug messages can be omitted
37923792
by passing `--cfg ndebug` to `rustc`.
37933793

37943794
As an example, to see all the logs generated by the compiler, you would set
3795-
`RUST_LOG` to `rustc`, which is the crate name (as specified in its `crate_id`
3795+
`RUST_LOG` to `rustc`, which is the crate name (as specified in its `pkgid`
37963796
[attribute](#attributes)). To narrow down the logs to just crate resolution,
37973797
you would set it to `rustc::metadata::creader`. To see just error logging
37983798
use `rustc=0`.

branches/try2/doc/rustdoc.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ comments":
1313
~~~
1414
// the "link" crate attribute is currently required for rustdoc, but normally
1515
// isn't needed.
16-
#[crate_id = "universe"];
16+
#[pkgid = "universe"];
1717
#[crate_type="lib"];
1818
1919
//! Tools for dealing with universes (this is a doc comment, and is shown on
@@ -132,10 +132,9 @@ specifiers that can be used to dictate how a code block is tested:
132132
~~~
133133

134134
Rustdoc also supplies some extra sugar for helping with some tedious
135-
documentation examples. If a line is prefixed with `# `, then the line
136-
will not show up in the HTML documentation, but it will be used when
137-
testing the code block (NB. the space after the `#` is required, so
138-
that one can still write things like `#[deriving(Eq)]`).
135+
documentation examples. If a line is prefixed with a `#` character, then the
136+
line will not show up in the HTML documentation, but it will be used when
137+
testing the code block.
139138

140139
~~~
141140
```rust

branches/try2/doc/rustpkg.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ then both `bar` and `bar/extras/baz` are valid package identifiers
9090
in the workspace `foo`.
9191

9292
Because rustpkg uses generic source file names as the main inputs, you will
93-
need to specify the package identifier in them using the `crate_id` attribute
93+
need to specify the package identifier in them using the `pkgid` attribute
9494
on the crate.
9595

9696
## Source files

branches/try2/mk/docs.mk

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
######################################################################
1414

1515
DOCS :=
16-
CDOCS :=
1716
DOCS_L10N :=
1817

1918
BASE_DOC_OPTS := --from=markdown --standalone --toc --number-sections
@@ -233,21 +232,8 @@ doc/$(1)/index.html: $$(RUSTDOC) $$(TLIB2_T_$(3)_H_$(3))/$(CFG_STDLIB_$(3))
233232
DOCS += doc/$(1)/index.html
234233
endef
235234

236-
define compiledoc
237-
doc/$(1)/index.html: $$(RUSTDOC) $$(TLIB2_T_$(3)_H_$(3))/$(CFG_STDLIB_$(3))
238-
@$$(call E, rustdoc: $$@)
239-
$(Q)$(RUSTDOC) --cfg stage2 $(2)
240-
241-
CDOCS += doc/$(1)/index.html
242-
endef
243-
244235
$(eval $(call libdoc,std,$(STDLIB_CRATE),$(CFG_BUILD)))
245236
$(eval $(call libdoc,extra,$(EXTRALIB_CRATE),$(CFG_BUILD)))
246-
$(eval $(call libdoc,native,$(LIBNATIVE_CRATE),$(CFG_BUILD)))
247-
$(eval $(call libdoc,green,$(LIBGREEN_CRATE),$(CFG_BUILD)))
248-
249-
$(eval $(call compiledoc,rustc,$(COMPILER_CRATE),$(CFG_BUILD)))
250-
$(eval $(call compiledoc,syntax,$(LIBSYNTAX_CRATE),$(CFG_BUILD)))
251237

252238

253239
ifdef CFG_DISABLE_DOCS
@@ -270,7 +256,6 @@ doc/version_info.html: version_info.html.template $(MKFILE_DEPS) \
270256
GENERATED += doc/version.md doc/version_info.html
271257

272258
docs: $(DOCS)
273-
compiler-docs: $(CDOCS)
274259

275260
docs-l10n: $(DOCS_L10N)
276261

branches/try2/src/etc/combine-tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def scrub(b):
4545
"""
4646
// AUTO-GENERATED FILE: DO NOT EDIT
4747
#[crate_id=\"run_pass_stage2#0.1\"];
48-
#[crate_id=\"run_pass_stage2#0.1\"];
48+
#[pkgid=\"run_pass_stage2#0.1\"];
4949
#[feature(globs, macro_rules, struct_variant, managed_boxes)];
5050
#[allow(warnings)];
5151
"""

branches/try2/src/gyp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit 1e46da1000bc29679ab4cebf3c1034cb7d6f4487
1+
Subproject commit f407f09c94e00d2d570e8e42114e3f6848b2deb2

branches/try2/src/libextra/getopts.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
//!
3232
//! ~~~{.rust}
3333
//! extern mod extra;
34-
//! use extra::getopts::{optopt,optflag,getopts,Opt};
34+
//! use extra::getopts::*;
3535
//! use std::os;
3636
//!
3737
//! fn do_work(inp: &str, out: Option<~str>) {

branches/try2/src/libextra/num/rational.rs

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use std::cmp;
1515
use std::from_str::FromStr;
1616
use std::num::{Zero,One,ToStrRadix,FromStrRadix,Round};
17-
use super::bigint::{BigInt, BigUint, Sign, Plus, Minus};
17+
use super::bigint::BigInt;
1818

1919
/// Represents the ratio between 2 numbers.
2020
#[deriving(Clone)]
@@ -107,27 +107,6 @@ impl<T: Clone + Integer + Ord>
107107
}
108108
}
109109

110-
impl Ratio<BigInt> {
111-
/// Converts a float into a rational number
112-
pub fn from_float<T: Float>(f: T) -> Option<BigRational> {
113-
if !f.is_finite() {
114-
return None;
115-
}
116-
let (mantissa, exponent, sign) = f.integer_decode();
117-
let bigint_sign: Sign = if sign == 1 { Plus } else { Minus };
118-
if exponent < 0 {
119-
let one: BigInt = One::one();
120-
let denom: BigInt = one << ((-exponent) as uint);
121-
let numer: BigUint = FromPrimitive::from_u64(mantissa).unwrap();
122-
Some(Ratio::new(BigInt::from_biguint(bigint_sign, numer), denom))
123-
} else {
124-
let mut numer: BigUint = FromPrimitive::from_u64(mantissa).unwrap();
125-
numer = numer << (exponent as uint);
126-
Some(Ratio::from_integer(BigInt::from_biguint(bigint_sign, numer)))
127-
}
128-
}
129-
}
130-
131110
/* Comparisons */
132111

133112
// comparing a/b and c/d is the same as comparing a*d and b*c, so we
@@ -642,42 +621,4 @@ mod test {
642621
test(s);
643622
}
644623
}
645-
646-
#[test]
647-
fn test_from_float() {
648-
fn test<T: Float>(given: T, (numer, denom): (&str, &str)) {
649-
let ratio: BigRational = Ratio::from_float(given).unwrap();
650-
assert_eq!(ratio, Ratio::new(
651-
FromStr::from_str(numer).unwrap(),
652-
FromStr::from_str(denom).unwrap()));
653-
}
654-
655-
// f32
656-
test(3.14159265359f32, ("13176795", "4194304"));
657-
test(2f32.pow(&100.), ("1267650600228229401496703205376", "1"));
658-
test(-2f32.pow(&100.), ("-1267650600228229401496703205376", "1"));
659-
test(1.0 / 2f32.pow(&100.), ("1", "1267650600228229401496703205376"));
660-
test(684729.48391f32, ("1369459", "2"));
661-
test(-8573.5918555f32, ("-4389679", "512"));
662-
663-
// f64
664-
test(3.14159265359f64, ("3537118876014453", "1125899906842624"));
665-
test(2f64.pow(&100.), ("1267650600228229401496703205376", "1"));
666-
test(-2f64.pow(&100.), ("-1267650600228229401496703205376", "1"));
667-
test(684729.48391f64, ("367611342500051", "536870912"));
668-
test(-8573.5918555, ("-4713381968463931", "549755813888"));
669-
test(1.0 / 2f64.pow(&100.), ("1", "1267650600228229401496703205376"));
670-
}
671-
672-
#[test]
673-
fn test_from_float_fail() {
674-
use std::{f32, f64};
675-
676-
assert_eq!(Ratio::from_float(f32::NAN), None);
677-
assert_eq!(Ratio::from_float(f32::INFINITY), None);
678-
assert_eq!(Ratio::from_float(f32::NEG_INFINITY), None);
679-
assert_eq!(Ratio::from_float(f64::NAN), None);
680-
assert_eq!(Ratio::from_float(f64::INFINITY), None);
681-
assert_eq!(Ratio::from_float(f64::NEG_INFINITY), None);
682-
}
683624
}

branches/try2/src/libextra/time.rs

Lines changed: 10 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@
1212

1313
use std::io::Reader;
1414
use std::io::mem::BufReader;
15-
use std::libc;
1615
use std::num;
1716
use std::str;
1817

1918
static NSEC_PER_SEC: i32 = 1_000_000_000_i32;
2019

21-
mod rustrt {
20+
pub mod rustrt {
2221
use super::Tm;
2322

2423
extern {
24+
pub fn rust_get_time(sec: &mut i64, nsec: &mut i32);
25+
pub fn rust_precise_time_ns(ns: &mut u64);
2526
pub fn rust_tzset();
2627
pub fn rust_gmtime(sec: i64, nsec: i32, result: &mut Tm);
2728
pub fn rust_localtime(sec: i64, nsec: i32, result: &mut Tm);
@@ -30,31 +31,6 @@ mod rustrt {
3031
}
3132
}
3233

33-
#[cfg(unix, not(target_os = "macos"))]
34-
mod imp {
35-
use std::libc::{c_int, timespec};
36-
37-
// Apparently android provides this in some other library?
38-
#[cfg(not(target_os = "android"))]
39-
#[link(name = "rt")]
40-
extern {}
41-
42-
extern {
43-
pub fn clock_gettime(clk_id: c_int, tp: *mut timespec) -> c_int;
44-
}
45-
46-
}
47-
#[cfg(target_os = "macos")]
48-
mod imp {
49-
use std::libc::{timeval, timezone, c_int, mach_timebase_info};
50-
51-
extern {
52-
pub fn gettimeofday(tp: *mut timeval, tzp: *mut timezone) -> c_int;
53-
pub fn mach_absolute_time() -> u64;
54-
pub fn mach_timebase_info(info: *mut mach_timebase_info) -> c_int;
55-
}
56-
}
57-
5834
/// A record specifying a time value in seconds and nanoseconds.
5935
6036

@@ -88,45 +64,11 @@ impl Ord for Timespec {
8864
*/
8965
pub fn get_time() -> Timespec {
9066
unsafe {
91-
let (sec, nsec) = os_get_time();
67+
let mut sec = 0i64;
68+
let mut nsec = 0i32;
69+
rustrt::rust_get_time(&mut sec, &mut nsec);
9270
return Timespec::new(sec, nsec);
9371
}
94-
95-
#[cfg(windows)]
96-
unsafe fn os_get_time() -> (i64, i32) {
97-
static NANOSECONDS_FROM_1601_TO_1970: u64 = 11644473600000000;
98-
99-
let mut time = libc::FILETIME {
100-
dwLowDateTime: 0,
101-
dwHighDateTime: 0,
102-
};
103-
libc::GetSystemTimeAsFileTime(&mut time);
104-
105-
// A FILETIME contains a 64-bit value representing the number of
106-
// hectonanosecond (100-nanosecond) intervals since 1601-01-01T00:00:00Z.
107-
// http://support.microsoft.com/kb/167296/en-us
108-
let ns_since_1601 = ((time.dwHighDateTime as u64 << 32) |
109-
(time.dwLowDateTime as u64 << 0)) / 10;
110-
let ns_since_1970 = ns_since_1601 - NANOSECONDS_FROM_1601_TO_1970;
111-
112-
((ns_since_1970 / 1000000) as i64,
113-
((ns_since_1970 % 1000000) * 1000) as i32)
114-
}
115-
116-
#[cfg(target_os = "macos")]
117-
unsafe fn os_get_time() -> (i64, i32) {
118-
use std::ptr;
119-
let mut tv = libc::timeval { tv_sec: 0, tv_usec: 0 };
120-
imp::gettimeofday(&mut tv, ptr::mut_null());
121-
(tv.tv_sec as i64, tv.tv_usec * 1000)
122-
}
123-
124-
#[cfg(not(target_os = "macos"), not(windows))]
125-
unsafe fn os_get_time() -> (i64, i32) {
126-
let mut tv = libc::timespec { tv_sec: 0, tv_nsec: 0 };
127-
imp::clock_gettime(libc::CLOCK_REALTIME, &mut tv);
128-
(tv.tv_sec as i64, tv.tv_nsec as i32)
129-
}
13072
}
13173

13274

@@ -135,38 +77,10 @@ pub fn get_time() -> Timespec {
13577
* in nanoseconds since an unspecified epoch.
13678
*/
13779
pub fn precise_time_ns() -> u64 {
138-
return os_precise_time_ns();
139-
140-
#[cfg(windows)]
141-
fn os_precise_time_ns() -> u64 {
142-
let mut ticks_per_s = 0;
143-
assert_eq!(unsafe {
144-
libc::QueryPerformanceFrequency(&mut ticks_per_s)
145-
}, 1);
146-
let ticks_per_s = if ticks_per_s == 0 {1} else {ticks_per_s};
147-
let mut ticks = 0;
148-
assert_eq!(unsafe {
149-
libc::QueryPerformanceCounter(&mut ticks)
150-
}, 1);
151-
152-
return (ticks as u64 * 1000000000) / (ticks_per_s as u64);
153-
}
154-
155-
#[cfg(target_os = "macos")]
156-
fn os_precise_time_ns() -> u64 {
157-
let time = unsafe { imp::mach_absolute_time() };
158-
let mut info = libc::mach_timebase_info { numer: 0, denom: 0 };
159-
unsafe { imp::mach_timebase_info(&mut info); }
160-
return time * ((info.numer / info.denom) as u64);
161-
}
162-
163-
#[cfg(not(windows), not(target_os = "macos"))]
164-
fn os_precise_time_ns() -> u64 {
165-
let mut ts = libc::timespec { tv_sec: 0, tv_nsec: 0 };
166-
unsafe {
167-
imp::clock_gettime(libc::CLOCK_MONOTONIC, &mut ts);
168-
}
169-
return (ts.tv_sec as u64) * 1000000000 + (ts.tv_nsec as u64)
80+
unsafe {
81+
let mut ns = 0u64;
82+
rustrt::rust_precise_time_ns(&mut ns);
83+
ns
17084
}
17185
}
17286

0 commit comments

Comments
 (0)