Commit Graph

1713 Commits

Author SHA1 Message Date
Michael Sullivan
038f925586 Be less eager about implicit borrowing when doing method resolution. Closes #2796. 2012-07-06 15:55:18 -07:00
Eric Holk
e20f63d095 Bank protocol example from blog post 2012-07-06 15:25:06 -07:00
Michael Sullivan
ee0177b908 Move string append to libraries. Closes #2710. 2012-07-06 13:37:56 -07:00
Eric Holk
7b03832c95 Updating tests to use pipes. 2012-07-06 10:42:41 -07:00
Eric Holk
f0ef4ef81b You can have any protocol you want, provided it's pingpong.
This integrates the pipe compiler into the proto syntax extension.
2012-07-06 10:42:40 -07:00
Eric Holk
05cdda3a2c Plumbing and parsing for item-position macros. 2012-07-06 10:42:40 -07:00
Eric Holk
a787f40013 Select on pipes.
Updating syntax and test cases.
2012-07-06 10:42:39 -07:00
Eric Holk
a4838c93aa Enabling pipes for all stages, and updating closure syntax. 2012-07-06 10:42:39 -07:00
Eric Holk
67b0760592 Moved pipes runtime support to libcore, and add a test that will help verify that busy waiting is no longer happening.
Fixing the result of a bad merge.
2012-07-06 10:42:39 -07:00
Eric Holk
5d35435fac send only takes one data argument. 2012-07-06 10:42:38 -07:00
Eric Holk
0ad7ae523c Macro and iface tricks to simulate self move. 2012-07-06 10:42:38 -07:00
Eric Holk
c2d3cdc3df Progress towards pipes. 2012-07-06 10:42:38 -07:00
Eric Holk
61be3cc19e An example using pipes with most of the synchronization code in place.
Fixed a bug in the atomic intrinsics where they wouldn't correctly return their old value.

Pipes currently busy wait. The next step is to teach the scheduler how to deal with them.
2012-07-06 10:42:38 -07:00
Eric Holk
4dbd10a702 First example of a program using pipes. 2012-07-06 10:42:37 -07:00
Brian Anderson
9b2d988df0 Fix test that was using rust_task_allow_kill incorrectly 2012-07-05 21:33:47 -07:00
Ben Striegel
d162fa26ba A new times method on numeric types
This method is intended to elegantly subsume two common iteration functions.
The first is `iter::range`, which is used identically to the method introduced
in this commit, but currently works only on uints. The second is a common case
of `{int, i8, uint, etc.}::range`, in the case where the inductive variable is
ignored. Compare the usage of the three:
```
for iter::range(100u) {
    // do whatever
}

for int::range(0, 100) |_i| {
    // do whatever
}

for 100.times {
    // do whatever
}
```
I feel that the latter reads much more nicely than the first two approaches,
and unlike the first two the new method allows the user to ignore the specific
type of the number (ineed, if we're throwing away the inductive variable, who
cares what type it is?). A minor benefit is that this new method will be
somewhat familiar to users of Ruby, from which we borrow the name "times".
2012-07-05 19:44:20 -07:00
Tim Chevalier
889be71cb4 Comments only: change TODOs to FIXMEs and annotate them 2012-07-05 16:10:29 -07:00
Michael Sullivan
b0d4f09201 Consider slices to be a structural type. Closes #2748. 2012-07-05 14:48:23 -07:00
Gareth Daniel Smith
be0141666d convert doc-attributes to doc-comments using ./src/etc/sugarise-doc-comments.py (and manually tweaking) - for issue #2498 2012-07-04 19:18:13 -07:00
Brian Anderson
bfa43ca301 Add tests for various ways to write 'do' and 'for' without args 2012-07-04 17:30:46 -07:00
Ben Striegel
f2e2a14f36 Remove empty argument lists from do expressions 2012-07-04 17:21:29 -07:00
Patrick Walton
3f06a8c8d5 test: Try to work around a resolve1 bug in class-cast-to-iface-cross-crate-2 2012-07-03 20:12:01 -07:00
Patrick Walton
d66948604a test: Fix cyclic import in class-cast-to-iface-cross-crate-2 2012-07-03 18:32:47 -07:00
Patrick Walton
25e0455d04 test: Make tag-exports not use the obsolete tag export syntax 2012-07-03 18:32:47 -07:00
Brian Anderson
41bca84dd9 core: Convert iter::repeat to the for protocol 2012-07-03 17:31:31 -07:00
Brian Anderson
ae6ea068a1 Revert "Remove rule requiring non-nil block-style statements to be semi-terminated"
This reverts commit 0f5eaef5fb.
2012-07-03 17:30:25 -07:00
Brian Anderson
0f5eaef5fb Remove rule requiring non-nil block-style statements to be semi-terminated
This is a subtle rule that no longer seems to be required.
2012-07-03 17:03:52 -07:00
Graydon Hoare
be2c92078b Change crust -> extern. 2012-07-03 16:49:46 -07:00
Graydon Hoare
debb7e4641 Switch 'native' to 'extern' (or 'foreign' in some descriptions) 2012-07-03 16:11:00 -07:00
Patrick Walton
f093d374ed rustc: Implement a new resolve pass behind a compile flag 2012-07-02 18:30:12 -07:00
Lindsey Kuper
d90a1dee43 Start sketching some traitorous code (xfail'd) 2012-07-02 17:12:30 -07:00
Brian Anderson
569467eb0d Merge remote-tracking branch 'Dretch/prettydocs'
Conflicts:
	src/compiletest/errors.rs
	src/libsyntax/parse/attr.rs
	src/libsyntax/parse/comments.rs
	src/test/compile-fail/ambig_impl_unify.rs
	src/test/compile-fail/assign-super.rs
	src/test/compile-fail/bad-for-loop.rs
	src/test/compile-fail/bad-var-env-capture-in-block-arg.rs
	src/test/compile-fail/block-arg-as-stmt-with-value.rs
	src/test/compile-fail/borrowck-assign-comp-idx.rs
	src/test/compile-fail/borrowck-lend-flow.rs
	src/test/compile-fail/borrowck-loan-blocks-move-cc.rs
	src/test/compile-fail/borrowck-loan-blocks-mut-uniq.rs
	src/test/compile-fail/borrowck-loan-rcvr.rs
	src/test/compile-fail/borrowck-loan-vec-content.rs
	src/test/compile-fail/borrowck-mut-vec-as-imm-slice-bad.rs
	src/test/compile-fail/cap-clause-with-stack-closure.rs
	src/test/compile-fail/do1.rs
	src/test/compile-fail/do2.rs
	src/test/compile-fail/empty-vec-trailing-comma.rs
	src/test/compile-fail/evec-subtyping.rs
	src/test/compile-fail/issue-1896.rs
	src/test/compile-fail/issue-2149.rs
	src/test/compile-fail/issue-2150.rs
	src/test/compile-fail/issue-2487-b.rs
	src/test/compile-fail/kindck-implicit-close-over-mut-var.rs
	src/test/compile-fail/liveness-issue-2163.rs
	src/test/compile-fail/liveness-use-in-index-lvalue.rs
	src/test/compile-fail/no-reuse-move-arc.rs
	src/test/compile-fail/no-send-res-ports.rs
	src/test/compile-fail/non-const.rs
	src/test/compile-fail/pure-higher-order.rs
	src/test/compile-fail/pure-loop-body.rs
	src/test/compile-fail/regions-addr-of-upvar-self.rs
	src/test/compile-fail/regions-escape-loop-via-vec.rs
	src/test/compile-fail/regions-scoping.rs
	src/test/compile-fail/seq-args.rs
	src/test/compile-fail/tstate-unsat-in-called-fn-expr.rs
	src/test/compile-fail/tstate-unsat-in-fn-expr.rs
	src/test/compile-fail/vec-add.rs
	src/test/compile-fail/vec-concat-bug.rs
	src/test/compile-fail/vector-no-ann.rs
2012-07-02 15:23:41 -07:00
Brian Anderson
9743757113 syntax: Support dropping argument list from for/do 2012-07-01 22:36:24 -07:00
Brian Anderson
fa6a446e6c Add two tests, one xfailed, for inferring lambda kinds in return position 2012-07-01 19:19:36 -07:00
Brian Anderson
d1fc2b5995 Convert to new closure syntax 2012-07-01 19:19:32 -07:00
Brian Anderson
3155d170ad syntax: Fix lambda parsing following 'ret' 2012-06-30 21:20:36 -07:00
Brian Anderson
ed834f0629 syntax: Add support for new lambda syntax 2012-06-30 16:01:52 -07:00
Brian Anderson
a3382b6f26 Eliminate usages of old sugared call syntax 2012-06-30 16:01:49 -07:00
Gareth Daniel Smith
6d86969260 change the test suite //! kind syntax to //~ kind in order to avoid a
conflict with the new single-line-sugared-inner-doc-comment (`//! ...`).
2012-06-30 12:23:59 +01:00
Eric Holk
0a99912cdd Adding a bunch of atomic intrinsics.
Adding a test cases for the atomic intrinsics.
2012-06-29 18:37:29 -07:00
Michael Sullivan
98e161f00e Switch the compiler over to using ~[] notation instead of []/~. Closes #2759. 2012-06-29 17:41:45 -07:00
Michael Sullivan
a3c7d93c77 Get rid of basically all of the remaining old style vecs in tests. 2012-06-29 15:08:12 -07:00
Michael Sullivan
e7760470b4 Make a bunch of tests stop using the deprecated vector syntax. 2012-06-28 17:33:15 -07:00
Michael Sullivan
810677efb5 Parse ~[...] as [...]/~. Same for @ and &. Closes #2747. 2012-06-28 17:10:06 -07:00
Ben Blum
b6f103e7f9 Fix rt-sched-1.rs (broke in 6fc730b) 2012-06-28 19:46:57 -04:00
Ben Blum
b2b498183a Add test case for issue #2734 (xfailed) 2012-06-28 19:26:12 -04:00
Ben Blum
6fc730baf6 Cleanup failure handling around rust_new_task_in_sched - closes #2668 2012-06-28 19:02:48 -04:00
Ben Blum
58a39d1ca3 Fix alt-pattern-drop's breakage from af2d01e 2012-06-28 15:59:43 -04:00
Ben Blum
af2d01e36b Fix sys::refcount and remove dbg::refcount 2012-06-28 14:40:31 -04:00
Brian Anderson
9f7e62ea20 rustc: Fix a missing application of the operator in fold_ty 2012-06-27 20:11:59 -07:00
Michael Sullivan
fa3aa64b91 Oops. Actually fix that problem. 2012-06-27 20:08:39 -07:00
Michael Sullivan
8bb3a01e5c Add in missing [] methods to some tests. 2012-06-27 19:58:08 -07:00
Graydon Hoare
697f1e38d6 Change 'native' and 'crust' to 'extern'.
This comes with a terminology change. All linkage-symbols are 'extern'
now, including rust syms in other crates. Some extern ABIs are
merely "foreign". The term "native" is retired, not clear/useful.

What was "crust" is now "extern" applied to a _definition_. This
is a bit of an overloading, but should be unambiguous: it means
that the definition should be made available to some non-rust ABI.
2012-06-26 16:18:37 -07:00
Michael Sullivan
51468b65a4 Properly cleanup slice literals. Closes #2705. 2012-06-26 14:05:43 -07:00
Tim Chevalier
91e44ea056 Be a little more clever about calculating sizes for class types
We could try to calculate the size of a partially-converted class type,
and run into an LLVM error because we were trying to calculate the size
of a named struct whose fields hadn't yet be filled in. The issue can be
dodged by extending simplify_type to convert classes to isomorphic
structural records, just for the purposes of size calculations.

(for real this time) Closes #2718
2012-06-26 11:14:39 -07:00
Michael Sullivan
329eca6044 Make vectors uglier ([]/~). Sorry. Should be temporary. Closes #2725. 2012-06-25 20:00:46 -07:00
Michael Sullivan
1c5e2cacef Comment out the *right* part of the test failing due to issue #2724. 2012-06-25 19:28:27 -07:00
Michael Sullivan
fb018fa50b Comment out a failing part of a test; this is Issue #2724. 2012-06-25 19:00:35 -07:00
Patrick Walton
650dfe58a3 test: Make zip-same-length no longer rely on resolve not handling shadowed modules properly 2012-06-25 17:55:24 -07:00
Brian Anderson
c2751c5640 rustc: Make 'do' work with effects the same as 'for' 2012-06-25 17:46:06 -07:00
Tim Chevalier
8ed9701591 Remove test case that doesn't work on its own
I don't actually know how to test --ls
2012-06-25 17:26:26 -07:00
Tim Chevalier
f1acc69a2a Add class fields to the global index
Closes #2192
2012-06-25 17:25:54 -07:00
Eric Holk
b19c98ea9a Some perf fixes, although vec::slice is still too slow (Issue #2719) 2012-06-25 16:38:12 -07:00
Patrick Walton
216105fc55 test: Remove the import-glob-circular test since the name resolution semantics it depends on are probably undecidable 2012-06-25 15:30:38 -07:00
Patrick Walton
9386c2db33 test: Swap the order of two imports in import7 to eliminate another cycle 2012-06-25 15:14:28 -07:00
Patrick Walton
d8410c7578 test: Swap the order of two imports in import6 to eliminate a cycle 2012-06-25 15:12:50 -07:00
Brian Anderson
7e6cbf7431 Remove redundant 'extension' mods from numeric mods 2012-06-25 14:25:48 -07:00
Ben Striegel
43a48ca5bb Automatically export methods on core numeric types
Each numeric type now contains an extensions module that is automatically
exported. At the moment each extensions module contains only the impl for the
`num::num` iface. Other impls soon to follow (hopefully).
2012-06-25 14:25:48 -07:00
Tim Chevalier
6517fc5ab6 Merge branch 'incoming' into resource-to-class 2012-06-25 13:41:49 -07:00
Tim Chevalier
da470ff5b8 Merge 2012-06-25 13:29:41 -07:00
Tim Chevalier
fe9bbeca1a Add test cases for issue 2445 2012-06-25 13:18:43 -07:00
Tim Chevalier
91b69aeb63 Test case for issue 2718
This was already fixed by the time I read the issue, but more test
cases are always good.

Closes #2718
2012-06-25 12:21:01 -07:00
Tim Chevalier
25b8b35c57 Finish compare glue for classes
This tests == and !=. I don't know what <, >, etc. should do.
Closes #2601
2012-06-25 12:20:10 -07:00
Brian Anderson
e991855d66 Make 'do' expressions accept stack closures 2012-06-24 18:01:27 -07:00
Tim Chevalier
bf92940f72 More test cases for classes with dtors
Tests that classes with dtors and multiple fields work correctly.
Closes #2708
2012-06-24 15:11:25 -07:00
Tim Chevalier
487cbf8e90 Remove resources
Also fixed shapes for classes with dtors, as well as handling
offsets for classes with dtors correctly in take glue.

Closes #2485
2012-06-24 15:09:57 -07:00
Graydon Hoare
f60cdf27e7 Remove 'implements' keyword in favour of :, part of #2301. 2012-06-22 18:57:20 -07:00
Brian Anderson
2f060eb880 core: Name is_failure to is_err, is_success to is_ok 2012-06-22 18:26:25 -07:00
Eric Holk
26c11f7b50 Use must_have_lock instead of private functions. (Issue #2700)
I hereby declare that messages sent from the same source arrive in order (Issue #2605)

Removing FIXME, owned is the correct type here. (Issue #2704)

Remove outdated FIXME (Issue #2703)

Updating test for spawning native functions (Issue #2602)

Removing bogus FIXME (Issue #2599)
2012-06-22 15:14:42 -07:00
Tim Chevalier
b8710de5ff Add test cases
issue-912 is xfailed. issue-2111 is already fixed, but it's good to
have the test case.
2012-06-21 19:58:52 -07:00
Tim Chevalier
be8a08b2af Hopefully make issue 2214 test case work on Windows -- sigh 2012-06-21 17:54:56 -07:00
Tim Chevalier
a350bea313 Fix linker problem in issue 2214 test case 2012-06-21 16:58:35 -07:00
Tim Chevalier
317864672d Revert "Add test for issue 2214"
This reverts commit 290206b178.

Forgot to add the actual native code, temporarily reverting.
2012-06-21 16:17:08 -07:00
Eric Holk
0e5cfd9f33 Move vector addition out of trans and into libcore. 2012-06-21 16:11:11 -07:00
Eric Holk
f8fa0a2437 Generate a temporary for assign_ops. Issue #2581 2012-06-21 16:11:10 -07:00
Tim Chevalier
0b1675da16 Add and xfail test for 2101 2012-06-21 16:03:28 -07:00
Tim Chevalier
290206b178 Add test for issue 2214 2012-06-21 16:02:40 -07:00
Lindsey Kuper
c2222878c8 A test to exercise suffix inference for unary minus a little more. 2012-06-21 12:08:10 -07:00
Niko Matsakis
60603703ea handle moves in let initializers and allow moves from unsafe ptrs
Related to issue #2657, but this is not a complete fix.
2012-06-21 08:34:54 -07:00
Tim Chevalier
76d6120e52 Fix resolve bug that made nested classes not work
It wasn't possible to refer to the constructor for a class nested inside
an item from the class's outer scope. Fixed.
2012-06-20 20:12:14 -07:00
Tim Chevalier
f331cd9324 Don't consider loops to be breaking if they contain inner loops that break
Closes #2642
2012-06-20 18:53:38 -07:00
Lindsey Kuper
39c05b4b65 Remove obsolete comment. 2012-06-20 17:56:40 -07:00
Brian Anderson
4dcf84e4f4 Remove bind. Issue #2189 2012-06-20 17:27:28 -07:00
Tim Chevalier
c50eea17d4 Test for #2242 (xfailed for now) 2012-06-20 16:25:46 -07:00
Lindsey Kuper
60a658250e Don't force resolution of integral type vars in unary minus exprs
These were getting resolved too early, when they were still
unconstrained by the rest of the typing context.  Waiting a bit longer
to resolve them gives the rest of the typing context a chance to come
into play, so that they don't default to `int`.
2012-06-20 14:33:25 -07:00
Niko Matsakis
de491ea707 two more tests for method autoderef 2012-06-19 20:52:33 -07:00
Niko Matsakis
773a640303 support autoderef on method calls 2012-06-19 20:46:48 -07:00
Lindsey Kuper
3cf582b529 Enable integer literal suffix inference. 2012-06-19 17:06:05 -07:00
Niko Matsakis
6e73e45e37 first steps to autoderef on method calls 2012-06-19 11:52:39 -07:00
Niko Matsakis
6c056fba4d random forgotten test case 2012-06-19 11:52:39 -07:00