Skip to content

Commit 89b2abf

Browse files
committed
---
yaml --- r: 59295 b: refs/heads/snap-stage3 c: 24cda9f h: refs/heads/master i: 59293: 5ffaace 59291: c615ddf 59287: ed3b1ab 59279: 459fcb6 59263: bbe4bb3 v: v3
1 parent a8de2c7 commit 89b2abf

File tree

396 files changed

+16070
-12693
lines changed

Some content is hidden

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

396 files changed

+16070
-12693
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: c081ffbd1e845687202a975ea2e698b623e5722f
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: be08c3e5146953619ff777aaa422152dfee4ad28
4+
refs/heads/snap-stage3: 24cda9fbc20cad2d7f59a40973a51ff6355ababb
55
refs/heads/try: c50a9d5b664478e533ba1d1d353213d70c8ad589
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ $(foreach target,$(CFG_TARGET_TRIPLES),\
238238

239239
CORELIB_CRATE := $(S)src/libcore/core.rc
240240
CORELIB_INPUTS := $(wildcard $(addprefix $(S)src/libcore/, \
241-
core.rc *.rs */*.rs */*/*rs))
241+
core.rc *.rs */*.rs */*/*rs */*/*/*rs))
242242

243243
######################################################################
244244
# Standard library variables

branches/snap-stage3/doc/rust.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,8 +1467,8 @@ A complete list of the built-in language items follows:
14671467
: Elements can be subtracted.
14681468
`mul`
14691469
: Elements can be multiplied.
1470-
`quot`
1471-
: Elements have a quotient operation.
1470+
`div`
1471+
: Elements have a division operation.
14721472
`rem`
14731473
: Elements have a remainder operation.
14741474
`neg`
@@ -1857,7 +1857,7 @@ The default meaning of the operators on standard types is given here.
18571857
Calls the `mul` method on the `core::ops::Mul` trait.
18581858
`/`
18591859
: Quotient.
1860-
Calls the `quot` method on the `core::ops::Quot` trait.
1860+
Calls the `div` method on the `core::ops::Div` trait.
18611861
`%`
18621862
: Remainder.
18631863
Calls the `rem` method on the `core::ops::Rem` trait.
@@ -2393,7 +2393,7 @@ variables in the arm's block, and control enters the block.
23932393
An example of an `match` expression:
23942394

23952395

2396-
~~~~ {.xfail-test}
2396+
~~~~
23972397
# fn process_pair(a: int, b: int) { }
23982398
# fn process_ten() { }
23992399

branches/snap-stage3/mk/clean.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ clean-misc:
4848
$(Q)rm -f $(RUSTLLVM_LIB_OBJS) $(RUSTLLVM_OBJS_OBJS) $(RUSTLLVM_DEF)
4949
$(Q)rm -Rf $(DOCS)
5050
$(Q)rm -Rf $(GENERATED)
51-
$(Q)rm -f tmp/*.log tmp/*.rc tmp/*.rs tmp/*.ok
51+
$(Q)rm -f tmp/*
5252
$(Q)rm -Rf rust-stage0-*.tar.bz2 $(PKG_NAME)-*.tar.gz dist
5353
$(Q)rm -Rf $(foreach ext, \
5454
html aux cp fn ky log pdf pg toc tp vr cps, \

branches/snap-stage3/mk/docs.mk

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,8 @@ DOCS :=
1616

1717

1818
######################################################################
19-
# Pandoc (reference-manual related)
19+
# Docs, from pandoc, rustdoc (which runs pandoc), and node
2020
######################################################################
21-
ifeq ($(CFG_PANDOC),)
22-
$(info cfg: no pandoc found, omitting doc/rust.pdf)
23-
else
24-
25-
ifeq ($(CFG_NODE),)
26-
$(info cfg: no node found, omitting doc/tutorial.html)
27-
else
2821

2922
doc/rust.css: rust.css
3023
@$(call E, cp: $@)
@@ -34,6 +27,18 @@ doc/manual.css: manual.css
3427
@$(call E, cp: $@)
3528
$(Q)cp -a $< $@ 2> /dev/null
3629

30+
ifeq ($(CFG_PANDOC),)
31+
$(info cfg: no pandoc found, omitting docs)
32+
NO_DOCS = 1
33+
endif
34+
35+
ifeq ($(CFG_NODE),)
36+
$(info cfg: no node found, omitting docs)
37+
NO_DOCS = 1
38+
endif
39+
40+
ifneq ($(NO_DOCS),1)
41+
3742
DOCS += doc/rust.html
3843
doc/rust.html: rust.md doc/version_info.html doc/rust.css doc/manual.css
3944
@$(call E, pandoc: $@)
@@ -47,19 +52,8 @@ doc/rust.html: rust.md doc/version_info.html doc/rust.css doc/manual.css
4752
--css=manual.css \
4853
--include-before-body=doc/version_info.html \
4954
--output=$@
50-
endif
5155

52-
ifeq ($(CFG_PDFLATEX),)
53-
$(info cfg: no pdflatex found, omitting doc/rust.pdf)
54-
else
55-
ifeq ($(CFG_XETEX),)
56-
$(info cfg: no xetex found, disabling doc/rust.pdf)
57-
else
58-
ifeq ($(CFG_LUATEX),)
59-
$(info cfg: lacking luatex, disabling pdflatex)
60-
else
61-
62-
DOCS += doc/rust.pdf
56+
DOCS += doc/rust.tex
6357
doc/rust.tex: rust.md doc/version.md
6458
@$(call E, pandoc: $@)
6559
$(Q)$(CFG_NODE) $(S)doc/prep.js $< | \
@@ -70,17 +64,6 @@ doc/rust.tex: rust.md doc/version.md
7064
--from=markdown --to=latex \
7165
--output=$@
7266

73-
doc/rust.pdf: doc/rust.tex
74-
@$(call E, pdflatex: $@)
75-
$(Q)$(CFG_PDFLATEX) \
76-
-interaction=batchmode \
77-
-output-directory=doc \
78-
$<
79-
80-
endif
81-
endif
82-
endif
83-
8467
DOCS += doc/rustpkg.html
8568
doc/rustpkg.html: rustpkg.md doc/version_info.html doc/rust.css doc/manual.css
8669
@$(call E, pandoc: $@)
@@ -95,13 +78,6 @@ doc/rustpkg.html: rustpkg.md doc/version_info.html doc/rust.css doc/manual.css
9578
--include-before-body=doc/version_info.html \
9679
--output=$@
9780

98-
######################################################################
99-
# Node (tutorial related)
100-
######################################################################
101-
ifeq ($(CFG_NODE),)
102-
$(info cfg: no node found, omitting doc/tutorial.html)
103-
else
104-
10581
DOCS += doc/tutorial.html
10682
doc/tutorial.html: tutorial.md doc/version_info.html doc/rust.css
10783
@$(call E, pandoc: $@)
@@ -153,9 +129,29 @@ doc/tutorial-tasks.html: tutorial-tasks.md doc/version_info.html doc/rust.css
153129
--include-before-body=doc/version_info.html \
154130
--output=$@
155131

132+
ifeq ($(CFG_PDFLATEX),)
133+
$(info cfg: no pdflatex found, omitting doc/rust.pdf)
134+
else
135+
ifeq ($(CFG_XETEX),)
136+
$(info cfg: no xetex found, disabling doc/rust.pdf)
137+
else
138+
ifeq ($(CFG_LUATEX),)
139+
$(info cfg: lacking luatex, disabling pdflatex)
140+
else
141+
142+
DOCS += doc/rust.pdf
143+
doc/rust.pdf: doc/rust.tex
144+
@$(call E, pdflatex: $@)
145+
$(Q)$(CFG_PDFLATEX) \
146+
-interaction=batchmode \
147+
-output-directory=doc \
148+
$<
149+
150+
endif
151+
endif
156152
endif
157-
endif
158153

154+
endif # No pandoc / node
159155

160156
######################################################################
161157
# LLnextgen (grammar analysis from refman)

branches/snap-stage3/mk/rt.mk

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,16 @@ endif
163163
ifdef CFG_WINDOWSY_$(1)
164164
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
165165
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
166+
CFLAGS="$$(CFG_GCCISH_CFLAGS)" \
167+
LDFLAGS="$$(CFG_GCCISH_LINK_FLAGS)" \
166168
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \
167169
OS=mingw \
168170
V=$$(VERBOSE)
169171
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
170172
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
171173
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
172-
CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
173-
LDFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1)))" \
174+
CFLAGS="$$(CFG_GCCISH_CFLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
175+
LDFLAGS="$$(CFG_GCCISH_LINK_FLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1)))" \
174176
CC="$$(CC_$(1))" \
175177
CXX="$$(CXX_$(1))" \
176178
AR="$$(AR_$(1))" \
@@ -181,8 +183,8 @@ $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
181183
else
182184
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
183185
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
184-
CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
185-
LDFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1)))" \
186+
CFLAGS="$$(CFG_GCCISH_CFLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
187+
LDFLAGS="$$(CFG_GCCISH_LINK_FLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1)))" \
186188
CC="$$(CC_$(1))" \
187189
CXX="$$(CXX_$(1))" \
188190
AR="$$(AR_$(1))" \

branches/snap-stage3/src/compiletest/compiletest.rc

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -223,10 +223,3 @@ pub fn make_test_closure(config: config, testfile: &Path) -> test::TestFn {
223223
let testfile = testfile.to_str();
224224
test::DynTestFn(|| runtest::run(config, testfile))
225225
}
226-
227-
// Local Variables:
228-
// fill-column: 78;
229-
// indent-tabs-mode: nil
230-
// c-basic-offset: 4
231-
// buffer-file-coding-system: utf-8-unix
232-
// End:

branches/snap-stage3/src/etc/unicode.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,10 @@ def emit_decomp_module(f, canon, compat):
235235
rf = open(r, "w")
236236

237237
(canon_decomp, compat_decomp, gencats) = load_unicode_data("UnicodeData.txt")
238+
239+
# Explain that the source code was generated by this script.
240+
rf.write('// The following code was generated by "src/etc/unicode.py"\n\n')
241+
238242
emit_property_module(rf, "general_category", gencats)
239243

240244
#emit_decomp_module(rf, canon_decomp, compat_decomp)
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
#!/usr/bin/env python
2+
# xfail-license
3+
4+
# This creates the tables used for distributions implemented using the
5+
# ziggurat algorithm in `core::rand::distributions;`. They are
6+
# (basically) the tables as used in the ZIGNOR variant (Doornik 2005).
7+
# They are changed rarely, so the generated file should be checked in
8+
# to git.
9+
#
10+
# It creates 3 tables: X as in the paper, F which is f(x_i), and
11+
# F_DIFF which is f(x_i) - f(x_{i-1}). The latter two are just cached
12+
# values which is not done in that paper (but is done in other
13+
# variants). Note that the adZigR table is unnecessary because of
14+
# algebra.
15+
#
16+
# It is designed to be compatible with Python 2 and 3.
17+
18+
from math import exp, sqrt, log, floor
19+
import random
20+
21+
# The order should match the return value of `tables`
22+
TABLE_NAMES = ['X', 'F', 'F_DIFF']
23+
24+
# The actual length of the table is 1 more, to stop
25+
# index-out-of-bounds errors. This should match the bitwise operation
26+
# to find `i` in `zigurrat` in `libstd/rand/mod.rs`. Also the *_R and
27+
# *_V constants below depend on this value.
28+
TABLE_LEN = 256
29+
30+
# equivalent to `zigNorInit` in Doornik2005, but generalised to any
31+
# distribution. r = dR, v = dV, f = probability density function,
32+
# f_inv = inverse of f
33+
def tables(r, v, f, f_inv):
34+
# compute the x_i
35+
xvec = [0]*(TABLE_LEN+1)
36+
37+
xvec[0] = v / f(r)
38+
xvec[1] = r
39+
40+
for i in range(2, TABLE_LEN):
41+
last = xvec[i-1]
42+
xvec[i] = f_inv(v / last + f(last))
43+
44+
# cache the f's
45+
fvec = [0]*(TABLE_LEN+1)
46+
fdiff = [0]*(TABLE_LEN+1)
47+
for i in range(TABLE_LEN+1):
48+
fvec[i] = f(xvec[i])
49+
if i > 0:
50+
fdiff[i] = fvec[i] - fvec[i-1]
51+
52+
return xvec, fvec, fdiff
53+
54+
# Distributions
55+
# N(0, 1)
56+
def norm_f(x):
57+
return exp(-x*x/2.0)
58+
def norm_f_inv(y):
59+
return sqrt(-2.0*log(y))
60+
61+
NORM_R = 3.6541528853610088
62+
NORM_V = 0.00492867323399
63+
64+
NORM = tables(NORM_R, NORM_V,
65+
norm_f, norm_f_inv)
66+
67+
# Exp(1)
68+
def exp_f(x):
69+
return exp(-x)
70+
def exp_f_inv(y):
71+
return -log(y)
72+
73+
EXP_R = 7.69711747013104972
74+
EXP_V = 0.0039496598225815571993
75+
76+
EXP = tables(EXP_R, EXP_V,
77+
exp_f, exp_f_inv)
78+
79+
80+
# Output the tables/constants/types
81+
82+
def render_static(name, type, value):
83+
# no space or
84+
return 'pub static %s: %s =%s;\n' % (name, type, value)
85+
86+
# static `name`: [`type`, .. `len(values)`] =
87+
# [values[0], ..., values[3],
88+
# values[4], ..., values[7],
89+
# ... ];
90+
def render_table(name, values):
91+
rows = []
92+
# 4 values on each row
93+
for i in range(0, len(values), 4):
94+
row = values[i:i+4]
95+
rows.append(', '.join('%.18f' % f for f in row))
96+
97+
rendered = '\n [%s]' % ',\n '.join(rows)
98+
return render_static(name, '[f64, .. %d]' % len(values), rendered)
99+
100+
101+
with open('ziggurat_tables.rs', 'w') as f:
102+
f.write('''// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
103+
// file at the top-level directory of this distribution and at
104+
// http://rust-lang.org/COPYRIGHT.
105+
//
106+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
107+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
108+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
109+
// option. This file may not be copied, modified, or distributed
110+
// except according to those terms.
111+
112+
// Tables for distributions which are sampled using the ziggurat
113+
// algorithm. Autogenerated by `ziggurat_tables.py`.
114+
115+
pub type ZigTable = &\'static [f64, .. %d];
116+
''' % (TABLE_LEN + 1))
117+
for name, tables, r in [('NORM', NORM, NORM_R),
118+
('EXP', EXP, EXP_R)]:
119+
f.write(render_static('ZIG_%s_R' % name, 'f64', ' %.18f' % r))
120+
for (tabname, table) in zip(TABLE_NAMES, tables):
121+
f.write(render_table('ZIG_%s_%s' % (name, tabname), table))

branches/snap-stage3/src/libcore/bool.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,6 @@ mod tests {
108108

109109
#[test]
110110
fn test_bool_from_str() {
111-
use from_str::FromStr;
112-
113111
do all_values |v| {
114112
assert!(Some(v) == FromStr::from_str(to_str(v)))
115113
}

branches/snap-stage3/src/libcore/cast.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010

1111
//! Unsafe casting functions
1212
13+
#[cfg(not(stage0))]
1314
use sys;
15+
#[cfg(not(stage0))]
1416
use unstable;
1517

1618
pub mod rusti {

branches/snap-stage3/src/libcore/cell.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub fn empty_cell<T>() -> Cell<T> {
4242
pub impl<T> Cell<T> {
4343
/// Yields the value, failing if the cell is empty.
4444
fn take(&self) -> T {
45-
let self = unsafe { transmute_mut(self) };
45+
let mut self = unsafe { transmute_mut(self) };
4646
if self.is_empty() {
4747
fail!(~"attempt to take an empty cell");
4848
}
@@ -54,7 +54,7 @@ pub impl<T> Cell<T> {
5454
5555
/// Returns the value, failing if the cell is full.
5656
fn put_back(&self, value: T) {
57-
let self = unsafe { transmute_mut(self) };
57+
let mut self = unsafe { transmute_mut(self) };
5858
if !self.is_empty() {
5959
fail!(~"attempt to put a value back into a full cell");
6060
}

0 commit comments

Comments
 (0)