Skip to content

Commit d268850

Browse files
committed
---
yaml --- r: 67077 b: refs/heads/master c: 96c1082 h: refs/heads/master i: 67075: 11ed8c4 v: v3
1 parent 2927efe commit d268850

Some content is hidden

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

65 files changed

+1153
-3014
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: a1303cc81565a019d59be28940a94caf0f9329bf
2+
refs/heads/master: 96c1082f0fdbbe5258cfc1dc37f83052feff8421
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 18e3db7392d2d0697b7e27d6d986139960144d85
55
refs/heads/try: 7b78b52e602bb3ea8174f9b2006bff3315f03ef9

trunk/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ endef
249249

250250
# Same interface as above, but deletes rather than just listing the files.
251251
define REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT
252-
$(Q)MATCHES="$(filter-out %$(3),$(wildcard $(1)/$(2)))"; if [ -n "$$MATCHES" ] ; then echo "Warning: removing previous" \'$(2)\' "libraries:" $$MATCHES; rm -v $$MATCHES ; fi
252+
$(Q)MATCHES="$(filter-out %$(3),$(wildcard $(1)/$(2)))"; if [ -n "$$MATCHES" ] ; then echo "Warning: removing previous" \'$(2)\' "libraries:" $$MATCHES; rm $$MATCHES ; fi
253253
endef
254254

255255
# We use a different strategy for LIST_ALL_OLD_GLOB_MATCHES_EXCEPT

trunk/README.md

Lines changed: 67 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,72 @@
33
This is a compiler for Rust, including standard libraries, tools and
44
documentation.
55

6+
## Quick Start
67

7-
## Installation
8+
### Windows
89

9-
The Rust compiler currently must be built from a [tarball], unless you
10-
are on Windows, in which case using the [installer][win-exe] is
11-
recommended.
10+
1. Download and use the [installer][win-exe].
11+
2. Read the [tutorial].
12+
2. Enjoy!
1213

13-
Since the Rust compiler is written in Rust, it must be built by
14-
a precompiled "snapshot" version of itself (made in an earlier state
15-
of development). As such, source builds require a connection to
16-
the Internet, to fetch snapshots, and an OS that can execute the
17-
available snapshot binaries.
14+
> ***Note:*** Windows users should read the detailed
15+
> [getting started][wiki-start] notes on the wiki. Even when using
16+
> the binary installer the Windows build requires a MinGW installation,
17+
> the precise details of which are not discussed here.
18+
19+
[tutorial]: http://static.rust-lang.org/doc/tutorial.html
20+
[wiki-start]: https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust
21+
[win-exe]: http://static.rust-lang.org/dist/rust-0.7-install.exe
22+
23+
### Linux / OS X
24+
25+
1. Install the prerequisites (if not already installed)
26+
* g++ 4.4 or clang++ 3.x
27+
* python 2.6 or later (but not 3.x)
28+
* perl 5.0 or later
29+
* gnu make 3.81 or later
30+
* curl
31+
2. Download and build Rust
32+
You can either download a [tarball] or build directly from the [repo].
33+
34+
To build from the [tarball] do:
35+
36+
$ curl -O http://static.rust-lang.org/dist/rust-0.7.tar.gz
37+
$ tar -xzf rust-0.7.tar.gz
38+
$ cd rust-0.7
39+
40+
Or to build from the [repo] do:
41+
42+
$ git clone https://github.com/mozilla/rust.git
43+
$ cd rust
44+
45+
Now that you have Rust's source code, you can configure and build it:
46+
47+
$ ./configure
48+
$ make && make install
49+
50+
You may need to use `sudo make install` if you do not normally have
51+
permission to modify the destination directory. The install locations can
52+
be adjusted by passing a `--prefix` argument to `configure`. Various other
53+
options are also supported, pass `--help` for more information on them.
54+
55+
When complete, `make install` will place several programs into
56+
`/usr/local/bin`: `rustc`, the Rust compiler; `rustdoc`, the
57+
API-documentation tool, and `rustpkg`, the Rust package manager and build
58+
system.
59+
3. Read the [tutorial].
60+
4. Enjoy!
61+
62+
[repo]: https://github.com/mozilla/rust
63+
[tarball]: http://static.rust-lang.org/dist/rust-0.7.tar.gz
64+
[tutorial]: http://static.rust-lang.org/doc/tutorial.html
65+
66+
## Notes
67+
68+
Since the Rust compiler is written in Rust, it must be built by a
69+
precompiled "snapshot" version of itself (made in an earlier state of
70+
development). As such, source builds require a connection to the Internet, to
71+
fetch snapshots, and an OS that can execute the available snapshot binaries.
1872

1973
Snapshot binaries are currently built and tested on several platforms:
2074

@@ -25,42 +79,12 @@ Snapshot binaries are currently built and tested on several platforms:
2579
You may find that other platforms work, but these are our "tier 1"
2680
supported build environments that are most likely to work.
2781

28-
> ***Note:*** Windows users should read the detailed
29-
> [getting started][wiki-start] notes on the wiki. Even when using
30-
> the binary installer the Windows build requires a MinGW installation,
31-
> the precise details of which are not discussed here.
32-
33-
To build from source you will also need the following prerequisite
34-
packages:
35-
36-
* g++ 4.4 or clang++ 3.x
37-
* python 2.6 or later (but not 3.x)
38-
* perl 5.0 or later
39-
* gnu make 3.81 or later
40-
* curl
41-
42-
Assuming you're on a relatively modern *nix system and have met the
43-
prerequisites, something along these lines should work.
44-
45-
$ curl -O http://static.rust-lang.org/dist/rust-0.7.tar.gz
46-
$ tar -xzf rust-0.7.tar.gz
47-
$ cd rust-0.7
48-
$ ./configure
49-
$ make && make install
82+
Rust currently needs about 1.8G of RAM to build without swapping; if it hits
83+
swap, it will take a very long time to build.
5084

51-
You may need to use `sudo make install` if you do not normally have
52-
permission to modify the destination directory. The install locations
53-
can be adjusted by passing a `--prefix` argument to
54-
`configure`. Various other options are also supported, pass `--help`
55-
for more information on them.
85+
There is lots more documentation in the [wiki].
5686

57-
When complete, `make install` will place several programs into
58-
`/usr/local/bin`: `rustc`, the Rust compiler; `rustdoc`, the
59-
API-documentation tool, and `rustpkg`, the Rust package manager and build system.
60-
61-
[wiki-start]: https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust
62-
[tarball]: http://static.rust-lang.org/dist/rust-0.7.tar.gz
63-
[win-exe]: http://static.rust-lang.org/dist/rust-0.7-install.exe
87+
[wiki]: https://github.com/mozilla/rust/wiki
6488

6589

6690
## License
@@ -71,8 +95,3 @@ BSD-like licenses.
7195

7296
See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.
7397

74-
## More help
75-
76-
The [tutorial] is a good starting point.
77-
78-
[tutorial]: http://static.rust-lang.org/doc/tutorial.html

trunk/configure

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -921,9 +921,6 @@ do
921921
esac
922922
need_ok "LLVM configure failed"
923923

924-
# Hack the tools Makefile to turn off the clang build
925-
sed -i 's/clang//g' tools/Makefile
926-
927924
cd $CFG_BUILD_DIR
928925
fi
929926

trunk/doc/rust.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -573,8 +573,7 @@ The top level of this tree is a module that is anonymous (from the point of view
573573

574574
The Rust compiler is always invoked with a single source file as input, and always produces a single output crate.
575575
The processing of that source file may result in other source files being loaded as modules.
576-
Source files typically have the extension `.rs` but, by convention,
577-
source files that represent crates have the extension `.rc`, called *crate files*.
576+
Source files have the extension `.rs`.
578577

579578
A Rust source file describes a module, the name and
580579
location of which -- in the module tree of the current crate -- are defined
@@ -3286,7 +3285,7 @@ As an example, to see all the logs generated by the compiler, you would set
32863285
you would set it to `rustc::metadata::creader`. To see just error logging
32873286
use `rustc=0`.
32883287

3289-
Note that when compiling either `.rs` or `.rc` files that don't specify a
3288+
Note that when compiling source files that don't specify a
32903289
crate name the crate is given a default name that matches the source file,
32913290
with the extension removed. In that case, to turn on logging for a program
32923291
compiled from, e.g. `helloworld.rs`, `RUST_LOG` should be set to `helloworld`.

trunk/src/libextra/future.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@ impl<A:Clone> Future<A> {
6060
}
6161
}
6262

63+
impl<A> Future<A> {
64+
/// Gets the value from this future, forcing evaluation.
65+
pub fn unwrap(self) -> A {
66+
let mut this = self;
67+
this.get_ref();
68+
let state = replace(&mut this.state, Evaluating);
69+
match state {
70+
Forced(v) => v,
71+
_ => fail!( "Logic error." ),
72+
}
73+
}
74+
}
75+
6376
impl<A> Future<A> {
6477
pub fn get_ref<'a>(&'a mut self) -> &'a A {
6578
/*!
@@ -179,6 +192,12 @@ mod test {
179192
assert_eq!(f.get(), ~"fail");
180193
}
181194
195+
#[test]
196+
fn test_interface_unwrap() {
197+
let mut f = from_value(~"fail");
198+
assert_eq!(f.unwrap(), ~"fail");
199+
}
200+
182201
#[test]
183202
fn test_get_ref_method() {
184203
let mut f = from_value(22);

trunk/src/librustc/lib/llvm.rs

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1635,14 +1635,6 @@ pub mod llvm {
16351635
#[fast_ffi]
16361636
pub unsafe fn LLVMABIAlignmentOfType(TD: TargetDataRef,
16371637
Ty: TypeRef) -> c_uint;
1638-
1639-
/** Computes the byte offset of the indexed struct element for a target. */
1640-
#[fast_ffi]
1641-
pub unsafe fn LLVMOffsetOfElement(TD: TargetDataRef,
1642-
StructTy: TypeRef,
1643-
Element: c_uint)
1644-
-> c_ulonglong;
1645-
16461638
/**
16471639
* Returns the minimum alignment of a type when part of a call frame.
16481640
*/
@@ -2097,37 +2089,6 @@ pub mod llvm {
20972089
Val: ValueRef,
20982090
VarInfo: DIVariable,
20992091
InsertBefore: ValueRef) -> ValueRef;
2100-
2101-
#[fast_ffi]
2102-
pub unsafe fn LLVMDIBuilderCreateEnumerator(
2103-
Builder: DIBuilderRef,
2104-
Name: *c_char,
2105-
Val: c_ulonglong) -> ValueRef;
2106-
2107-
#[fast_ffi]
2108-
pub unsafe fn LLVMDIBuilderCreateEnumerationType(
2109-
Builder: DIBuilderRef,
2110-
Scope: ValueRef,
2111-
Name: *c_char,
2112-
File: ValueRef,
2113-
LineNumber: c_uint,
2114-
SizeInBits: c_ulonglong,
2115-
AlignInBits: c_ulonglong,
2116-
Elements: ValueRef,
2117-
ClassType: ValueRef) -> ValueRef;
2118-
2119-
#[fast_ffi]
2120-
pub unsafe fn LLVMDIBuilderCreateUnionType(
2121-
Builder: DIBuilderRef,
2122-
Scope: ValueRef,
2123-
Name: *c_char,
2124-
File: ValueRef,
2125-
LineNumber: c_uint,
2126-
SizeInBits: c_ulonglong,
2127-
AlignInBits: c_ulonglong,
2128-
Flags: c_uint ,
2129-
Elements: ValueRef,
2130-
RunTimeLang: c_uint) -> ValueRef;
21312092
}
21322093
}
21332094

trunk/src/librustc/metadata/csearch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ pub fn maybe_get_item_ast(tcx: ty::ctxt, def: ast::def_id,
9090
}
9191

9292
pub fn get_enum_variants(tcx: ty::ctxt, def: ast::def_id)
93-
-> ~[@ty::VariantInfo] {
93+
-> ~[ty::VariantInfo] {
9494
let cstore = tcx.cstore;
9595
let cdata = cstore::get_crate_data(cstore, def.crate);
9696
return decoder::get_enum_variants(cstore.intr, cdata, def.node, tcx)

trunk/src/librustc/metadata/decoder.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -733,11 +733,11 @@ pub fn maybe_get_item_ast(cdata: cmd, tcx: ty::ctxt,
733733
}
734734

735735
pub fn get_enum_variants(intr: @ident_interner, cdata: cmd, id: ast::node_id,
736-
tcx: ty::ctxt) -> ~[@ty::VariantInfo] {
736+
tcx: ty::ctxt) -> ~[ty::VariantInfo] {
737737
let data = cdata.data;
738738
let items = reader::get_doc(reader::Doc(data), tag_items);
739739
let item = find_item(id, items);
740-
let mut infos: ~[@ty::VariantInfo] = ~[];
740+
let mut infos: ~[ty::VariantInfo] = ~[];
741741
let variant_ids = enum_variant_ids(item, cdata);
742742
let mut disr_val = 0;
743743
for variant_ids.iter().advance |did| {
@@ -753,16 +753,11 @@ pub fn get_enum_variants(intr: @ident_interner, cdata: cmd, id: ast::node_id,
753753
Some(val) => { disr_val = val; }
754754
_ => { /* empty */ }
755755
}
756-
infos.push(@ty::VariantInfo{
757-
args: arg_tys,
758-
arg_names: None,
759-
ctor_ty: ctor_ty,
760-
name: name,
761-
// I'm not even sure if we encode visibility
762-
// for variants -- TEST -- tjc
763-
id: *did,
764-
disr_val: disr_val,
765-
vis: ast::inherited});
756+
infos.push(@ty::VariantInfo_{args: arg_tys,
757+
ctor_ty: ctor_ty, name: name,
758+
// I'm not even sure if we encode visibility
759+
// for variants -- TEST -- tjc
760+
id: *did, disr_val: disr_val, vis: ast::inherited});
766761
disr_val += 1;
767762
}
768763
return infos;

0 commit comments

Comments
 (0)