Skip to content

Commit 38c99aa

Browse files
committed
---
yaml --- r: 140466 b: refs/heads/try2 c: 063851f h: refs/heads/master v: v3
1 parent d0364a6 commit 38c99aa

File tree

577 files changed

+4942
-4521
lines changed

Some content is hidden

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

577 files changed

+4942
-4521
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: 175a5eea420af5f23c356da7def52d82903bceed
8+
refs/heads/try2: 063851ffa1b8388a0b70446c0209af16264e8181
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/.gitattributes

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[attr]rust text eol=lf whitespace=tab-in-indent,trailing-space,tabwidth=4
2+
3+
* text=auto
4+
*.cpp rust
5+
*.h rust
6+
*.rs rust
7+
src/rt/msvc/* -whitespace
8+
src/rt/vg/* -whitespace
9+
src/rt/linenoise/* -whitespace

branches/try2/COPYRIGHT

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,4 +367,3 @@ their own copyright notices and license terms:
367367
has chosen for the collective work, enumerated at the top
368368
of this file. The only difference is the retention of
369369
copyright itself, held by the contributor.
370-

branches/try2/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/try2/RELEASES.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ Version 0.3 (July 2012)
250250
* Slices and fixed-size, interior-allocated vectors
251251
* #!-comments for lang versioning, shell execution
252252
* Destructors and iface implementation for classes;
253-
type-parameterized classes and class methods
253+
type-parameterized classes and class methods
254254
* 'const' type kind for types that can be used to implement
255255
shared-memory concurrency patterns
256256

@@ -261,7 +261,7 @@ Version 0.3 (July 2012)
261261
'crust', 'native' (now 'extern'), 'cont' (now 'again')
262262

263263
* Constructs: do-while loops ('do' repurposed), fn binding,
264-
resources (replaced by destructors)
264+
resources (replaced by destructors)
265265

266266
* Compiler reorganization
267267
* Syntax-layer of compiler split into separate crate
@@ -276,7 +276,7 @@ Version 0.3 (July 2012)
276276
* Extensive work on libuv interface
277277
* Much vector code moved to libraries
278278
* Syntax extensions: #line, #col, #file, #mod, #stringify,
279-
#include, #include_str, #include_bin
279+
#include, #include_str, #include_bin
280280

281281
* Tool improvements
282282
* Cargo automatically resolves dependencies

branches/try2/doc/README

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The markdown docs are only generated by make when node is installed (use
2-
`make doc`). If you don't have node installed you can generate them yourself.
3-
Unfortunately there's no real standard for markdown and all the tools work
2+
`make doc`). If you don't have node installed you can generate them yourself.
3+
Unfortunately there's no real standard for markdown and all the tools work
44
differently. pandoc is one that seems to work well.
55

66
To generate an html version of a doc do something like:
@@ -10,4 +10,4 @@ The syntax for pandoc flavored markdown can be found at:
1010
http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown
1111

1212
A nice quick reference (for non-pandoc markdown) is at:
13-
http://kramdown.rubyforge.org/quickref.html
13+
http://kramdown.rubyforge.org/quickref.html

branches/try2/doc/rust.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3351,4 +3351,3 @@ Additional specific influences can be seen from the following languages:
33513351
* The typeclass system of Haskell.
33523352
* The lexical identifier rule of Python.
33533353
* The block syntax of Ruby.
3354-

branches/try2/doc/tutorial-ffi.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,7 @@ wrapping `malloc` and `free`:
150150

151151
~~~~
152152
use core::libc::{c_void, size_t, malloc, free};
153-
154-
#[abi = "rust-intrinsic"]
155-
extern "rust-intrinsic" mod rusti {
156-
fn init<T>() -> T;
157-
}
153+
use core::unstable::intrinsics;
158154
159155
// a wrapper around the handle returned by the foreign code
160156
pub struct Unique<T> {
@@ -166,7 +162,8 @@ pub impl<'self, T: Owned> Unique<T> {
166162
unsafe {
167163
let ptr = malloc(core::sys::size_of::<T>() as size_t) as *mut T;
168164
assert!(!ptr::is_null(ptr));
169-
*ptr = value;
165+
// `*ptr` is uninitialized, and `*ptr = value` would attempt to destroy it
166+
intrinsics::move_val_init(&mut *ptr, value);
170167
Unique{ptr: ptr}
171168
}
172169
}
@@ -186,7 +183,7 @@ pub impl<'self, T: Owned> Unique<T> {
186183
impl<T: Owned> Drop for Unique<T> {
187184
fn finalize(&self) {
188185
unsafe {
189-
let mut x = rusti::init(); // dummy value to swap in
186+
let mut x = intrinsics::init(); // dummy value to swap in
190187
x <-> *self.ptr; // moving the object out is needed to call the destructor
191188
free(self.ptr as *c_void)
192189
}

branches/try2/doc/tutorial-macros.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,4 +402,3 @@ tricky. Invoking the `log_syntax!` macro can help elucidate intermediate
402402
states, invoking `trace_macros!(true)` will automatically print those
403403
intermediate states out, and passing the flag `--pretty expanded` as a
404404
command-line argument to the compiler will show the result of expansion.
405-

branches/try2/doc/tutorial-tasks.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,4 +511,3 @@ The parent task first calls `DuplexStream` to create a pair of bidirectional
511511
endpoints. It then uses `task::spawn` to create the child task, which captures
512512
one end of the communication channel. As a result, both parent and child can
513513
send and receive data to and from the other.
514-

branches/try2/doc/tutorial.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,9 +1006,9 @@ let mut d = @mut 5; // mutable variable, mutable box
10061006
d = @mut 15;
10071007
~~~~
10081008

1009-
A mutable variable and an immutable variable can refer to the same box, given
1010-
that their types are compatible. Mutability of a box is a property of its type,
1011-
however, so for example a mutable handle to an immutable box cannot be
1009+
A mutable variable and an immutable variable can refer to the same box, given
1010+
that their types are compatible. Mutability of a box is a property of its type,
1011+
however, so for example a mutable handle to an immutable box cannot be
10121012
assigned a reference to a mutable box.
10131013

10141014
~~~~
@@ -1041,7 +1041,7 @@ let y = x.clone(); // y is a newly allocated box
10411041
let z = x; // no new memory allocated, x can no longer be used
10421042
~~~~
10431043

1044-
Since in owned boxes mutability is a property of the owner, not the
1044+
Since in owned boxes mutability is a property of the owner, not the
10451045
box, mutable boxes may become immutable when they are moved, and vice-versa.
10461046

10471047
~~~~

branches/try2/doc/version_info.html.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,3 @@
77
</center>
88

99
</div>
10-

branches/try2/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/try2/mk/platform.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
# Create variables HOST_<triple> containing the host part
1313
# of each target triple. For example, the triple i686-darwin-macos
14-
# would create a variable HOST_i686-darwin-macos with the value
14+
# would create a variable HOST_i686-darwin-macos with the value
1515
# i386.
1616
define DEF_HOST_VAR
1717
HOST_$(1) = $(subst i686,i386,$(word 1,$(subst -, ,$(1))))
@@ -276,8 +276,8 @@ CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -march=i686
276276
CFG_GCCISH_CXXFLAGS_i686-pc-mingw32 := -fno-rtti
277277
CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g
278278
CFG_GCCISH_DEF_FLAG_i686-pc-mingw32 :=
279-
CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-mingw32 :=
280-
CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 :=
279+
CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-mingw32 :=
280+
CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 :=
281281
CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def
282282
CFG_INSTALL_NAME_i686-pc-mingw32 =
283283
CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lWs2_32 -lpsapi -liphlpapi

branches/try2/mk/rt.mk

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
# This is a procedure to define the targets for building
2-
# the runtime.
2+
# the runtime.
33
#
44
# Argument 1 is the target triple.
55
#
66
# This is not really the right place to explain this, but
77
# for those of you who are not Makefile gurus, let me briefly
8-
# cover the $ expansion system in use here, because it
8+
# cover the $ expansion system in use here, because it
99
# confused me for a while! The variable DEF_RUNTIME_TARGETS
1010
# will be defined once and then expanded with different
1111
# values substituted for $(1) each time it is called.
12-
# That resulting text is then eval'd.
12+
# That resulting text is then eval'd.
1313
#
1414
# For most variables, you could use a single $ sign. The result
1515
# is that the substitution would occur when the CALL occurs,
1616
# I believe. The problem is that the automatic variables $< and $@
1717
# need to be expanded-per-rule. Therefore, for those variables at
18-
# least, you need $$< and $$@ in the variable text. This way, after
18+
# least, you need $$< and $$@ in the variable text. This way, after
1919
# the CALL substitution occurs, you will have $< and $@. This text
2020
# will then be evaluated, and all will work as you like.
2121
#
2222
# Reader beware, this explanantion could be wrong, but it seems to
23-
# fit the experimental data (i.e., I was able to get the system
24-
# working under these assumptions).
23+
# fit the experimental data (i.e., I was able to get the system
24+
# working under these assumptions).
2525

2626
# Hack for passing flags into LIBUV, see below.
2727
LIBUV_FLAGS_i386 = -m32 -fPIC
@@ -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/try2/mk/stage0.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)): \
77
$(S)src/etc/get-snapshot.py $(MKFILE_DEPS)
88
@$(call E, fetch: $@)
99
# Note: the variable "SNAPSHOT_FILE" is generally not set, and so
10-
# we generally only pass one argument to this script.
10+
# we generally only pass one argument to this script.
1111
ifdef CFG_ENABLE_LOCAL_RUST
1212
$(Q)$(S)src/etc/local_stage0.sh $(CFG_BUILD_TRIPLE) $(CFG_LOCAL_RUST_ROOT)
13-
else
13+
else
1414
$(Q)$(CFG_PYTHON) $(S)src/etc/get-snapshot.py $(CFG_BUILD_TRIPLE) $(SNAPSHOT_FILE)
1515
ifdef CFG_ENABLE_PAX_FLAGS
1616
@$(call E, apply PaX flags: $@)
1717
@"$(CFG_PAXCTL)" -cm "$@"
1818
endif
19-
endif
19+
endif
2020
$(Q)touch $@
2121

2222
# Host libs will be extracted by the above rule

branches/try2/mk/tests.mk

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,9 @@ tidy:
179179
$(Q)find $(S)src/etc -name '*.py' \
180180
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
181181
$(Q)echo $(ALL_CS) \
182-
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
182+
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
183183
$(Q)echo $(ALL_HS) \
184-
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
184+
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
185185

186186
endif
187187

@@ -709,4 +709,3 @@ endef
709709

710710
$(foreach host,$(CFG_HOST_TRIPLES), \
711711
$(eval $(call DEF_CHECK_FAST_FOR_H,$(host))))
712-

0 commit comments

Comments
 (0)