]>
git.lizzy.rs Git - rust.git/log
Jesse Ruderman [Tue, 20 Sep 2011 04:57:43 +0000 (21:57 -0700)]
Fuzzer: add ability to run the generated programs
Brian Anderson [Tue, 20 Sep 2011 02:02:53 +0000 (19:02 -0700)]
Add tests for moving nullary functions
I believe this was fixed by marijn recently.
Closes #922
Brian Anderson [Tue, 20 Sep 2011 01:38:14 +0000 (18:38 -0700)]
Un-xfail various tests
Brian Anderson [Tue, 20 Sep 2011 01:36:31 +0000 (18:36 -0700)]
Un-xfail-fast run-pass/send-iloop
Brian Anderson [Tue, 20 Sep 2011 01:25:32 +0000 (18:25 -0700)]
Remove a spurious error pattern from run-pass/linked-failure
Brian Anderson [Tue, 20 Sep 2011 01:23:34 +0000 (18:23 -0700)]
Un-xfail two tests under check-fast
Closes #937. Fixed by majick.
Brian Anderson [Tue, 20 Sep 2011 01:00:41 +0000 (18:00 -0700)]
Revert "xfail some tests that hang (instead of segfaulting) since
eafb6789a2 "
This reverts commit
5f44a1356e2b0adce5157f5e331ab9a55e891b0a .
Issue #936
Brian Anderson [Fri, 16 Sep 2011 18:44:55 +0000 (11:44 -0700)]
Check for the correct exit code on cfail tests. Closes #938
Brian Anderson [Tue, 20 Sep 2011 00:48:11 +0000 (17:48 -0700)]
Build tuples in two phases to avoid cleaning up partial tuples
Brian Anderson [Tue, 20 Sep 2011 00:04:04 +0000 (17:04 -0700)]
Register tuple cleanups after the tuple is built
Issue #936
Brian Anderson [Mon, 19 Sep 2011 23:08:17 +0000 (16:08 -0700)]
Revert "Revert "xfail some tests that hang (instead of segfaulting) since
eafb6789a2 ""
This reverts commit
6eabe6f3f4b80e8c96286e266db64dfd0e576963 .
Brian Anderson [Mon, 19 Sep 2011 23:08:06 +0000 (16:08 -0700)]
Revert "Check for the correct exit code on cfail tests. Closes #938"
This reverts commit
c42401ebbc82d319c3003088db47f825d65fb9f7 .
Brian Anderson [Mon, 19 Sep 2011 22:34:19 +0000 (15:34 -0700)]
Revert "xfail some tests that hang (instead of segfaulting) since
eafb6789a2 "
This reverts commit
5f44a1356e2b0adce5157f5e331ab9a55e891b0a .
Issue #936
Brian Anderson [Fri, 16 Sep 2011 18:44:55 +0000 (11:44 -0700)]
Check for the correct exit code on cfail tests. Closes #938
Brian Anderson [Mon, 19 Sep 2011 22:30:58 +0000 (15:30 -0700)]
Break fold's circular reference during unwinding
This converts the AST fold into a resource that breaks it's own circular
reference (just a temporary workaround until GC), so that failure during fold
will unwind correctly.
Issue #936
Graydon Hoare [Mon, 19 Sep 2011 21:55:52 +0000 (14:55 -0700)]
Simplify perf target flags. Apparently the event names aren't stable/portable.
Brian Anderson [Mon, 19 Sep 2011 21:20:15 +0000 (14:20 -0700)]
Build records in two phases to avoid cleanups on partial records
Brian Anderson [Mon, 19 Sep 2011 20:11:26 +0000 (13:11 -0700)]
Don't register record cleanups until the record is built
Patrick Walton [Mon, 19 Sep 2011 17:34:27 +0000 (10:34 -0700)]
rt: Introduce a self-describing box representation and functions to create and free them
Marijn Haverbeke [Sun, 18 Sep 2011 20:13:54 +0000 (22:13 +0200)]
xfail some tests that hang (instead of segfaulting) since
eafb6789a2
See issue #936
Marijn Haverbeke [Sun, 18 Sep 2011 20:05:58 +0000 (22:05 +0200)]
Stop creating function pairs for static functions
These are now called directly. When taking their value, a null pointer is added
to create a pair.
Tim Chevalier [Sat, 17 Sep 2011 17:18:30 +0000 (10:18 -0700)]
Add a precondition to GEP_tup_like
Tim Chevalier [Sat, 17 Sep 2011 17:17:40 +0000 (10:17 -0700)]
Add a type_is_tup_like predicate that takes a block ctxt, and make some fns pure
Tim Chevalier [Sat, 17 Sep 2011 16:12:26 +0000 (09:12 -0700)]
In trans, replace another impossible case with a precondition
Brian Anderson [Fri, 16 Sep 2011 21:37:58 +0000 (14:37 -0700)]
Make move-mode arguments unwind correctly. Closes #939
Tim Chevalier [Fri, 16 Sep 2011 20:32:44 +0000 (13:32 -0700)]
Dead code elim
Tim Chevalier [Fri, 16 Sep 2011 20:04:14 +0000 (13:04 -0700)]
Add a constraint on trans::type_of_fn_from_ty
And change callers appropriately.
Tim Chevalier [Fri, 16 Sep 2011 20:03:26 +0000 (13:03 -0700)]
Add a returns_non_ty_var predicate
which just calls non_ty_var on the return type of t, assuming t is
a function type.
Tim Chevalier [Fri, 16 Sep 2011 20:03:11 +0000 (13:03 -0700)]
Make ty_fn_ret pure and get rid of a duplicate function
Marijn Haverbeke [Fri, 16 Sep 2011 19:28:47 +0000 (21:28 +0200)]
Work around an apparent compiler bug to make my patch run
Without this, it would fail when optimization is turned on. The result of
the Load(bcx, llclosure) call would end up in llenv in a corrupted form.
Marijn Haverbeke [Fri, 16 Sep 2011 14:27:34 +0000 (16:27 +0200)]
Saner approach to lvalues and callable values in trans
LValues no longer carry information about generics and objs, instead
there's an extended form of lvalue, lval_maybe_callee, only used by
call and bind, which holds this info.
This makes it possible to take the value of a method and get a working
closure, and will (with some more work) allow us to call statically
known functions without loading from their pair.
Closes #435
Closes #758
Patrick Walton [Fri, 16 Sep 2011 19:20:06 +0000 (12:20 -0700)]
Revert "Revert "Make option::get return the option contents by reference" due to memory corruption"
This reverts commit
d1c27ba9e06e08e1dc27b493144e467d0efd526c .
Brian Anderson [Fri, 16 Sep 2011 18:29:40 +0000 (11:29 -0700)]
Un-xfail some task-comm tests
Brian Anderson [Fri, 16 Sep 2011 17:49:41 +0000 (10:49 -0700)]
Yield after send
Tim Chevalier [Fri, 16 Sep 2011 17:49:05 +0000 (10:49 -0700)]
Add non_ty_var precondition for type_of_fn, plus minor cleanup
Patrick Walton [Fri, 16 Sep 2011 17:03:43 +0000 (10:03 -0700)]
rt: Add a new rust_box structure to the runtime that describes a self-describing box
Patrick Walton [Fri, 16 Sep 2011 17:03:21 +0000 (10:03 -0700)]
rt: Rename rust_box to rust_box_legacy, as they're about to become self-describing
Jesse Ruderman [Fri, 16 Sep 2011 17:44:58 +0000 (10:44 -0700)]
Fuzzer: update lists of known bugs
Brian Anderson [Fri, 16 Sep 2011 16:30:20 +0000 (09:30 -0700)]
Handle the case where a child task tries to kill a parent while it is dying
Still looks pretty racy
Marijn Haverbeke [Fri, 16 Sep 2011 16:37:46 +0000 (18:37 +0200)]
Revert "Saner approach to lvalues and callable values in trans"
This reverts commit
66153436c9070386786c8a38cde199b5d3e71289 .
Marijn Haverbeke [Fri, 16 Sep 2011 14:57:54 +0000 (16:57 +0200)]
Require body of else-less if expressions to be a value-less block
For consistency with other constructs that could not possibly return a
value (say, loops).
Marijn Haverbeke [Fri, 16 Sep 2011 14:27:34 +0000 (16:27 +0200)]
Saner approach to lvalues and callable values in trans
LValues no longer carry information about generics and objs, instead
there's an extended form of lvalue, lval_maybe_callee, only used by
call and bind, which holds this info.
This makes it possible to take the value of a method and get a working
closure, and will (with some more work) allow us to call statically
known functions without loading from their pair.
Closes #435
Closes #758
Marijn Haverbeke [Fri, 16 Sep 2011 13:03:03 +0000 (15:03 +0200)]
Move expr_uniq case in trans to a saner place
Note that unique pointers are still broken in more ways than I can count.
Marijn Haverbeke [Fri, 16 Sep 2011 12:35:39 +0000 (14:35 +0200)]
Remove autoderef for calls
We were only using it in a single place, and there for no discernable reason
(probably as part of the bare-fn-vals-are-not-copyable plan). It seems more
surprising than useful.
Marijn Haverbeke [Fri, 16 Sep 2011 12:18:49 +0000 (14:18 +0200)]
Remove unused method_ty field from lval_result
Marijn Haverbeke [Fri, 16 Sep 2011 11:46:03 +0000 (13:46 +0200)]
Clean up (and optimize) root-mutability analysis in alias.rs
Marijn Haverbeke [Fri, 16 Sep 2011 10:42:18 +0000 (12:42 +0200)]
Change convention for specifying referenced argument
It is now 1-based, rather than 0 based. (Seems more natural, and allows 0 to
be used to refer to self and maybe to closure.)
Also allows non-referenced args to be implicitly copied again.
Issue #918
Tim Chevalier [Fri, 16 Sep 2011 06:14:24 +0000 (23:14 -0700)]
Actually call unreachable() in impossible case in type_of_inner
Tim Chevalier [Fri, 16 Sep 2011 03:47:38 +0000 (20:47 -0700)]
Added non_ty_var precondition to trans::type_of_inner
This allows us to legitimately call unreachable() in the ty_var case.
Jesse Ruderman [Fri, 16 Sep 2011 04:24:24 +0000 (21:24 -0700)]
Add parens, as needed, around else-if conditions.
Tim Chevalier [Fri, 16 Sep 2011 03:32:01 +0000 (20:32 -0700)]
Added an extra check in trans_alt
Gratuitous right now, but I'm going to change the type of trans::type_of
Tim Chevalier [Fri, 16 Sep 2011 03:22:03 +0000 (20:22 -0700)]
Added more predicates in trans
Added the non_ty_var predicate (soon to be used)
Added a check in get_res_dtor (will be necessary for a future change
to type_of_fn)
Removed a gratuitous ret
Tim Chevalier [Thu, 15 Sep 2011 22:24:42 +0000 (15:24 -0700)]
Change a few span_fatals to span_err
Tim Chevalier [Thu, 15 Sep 2011 22:24:22 +0000 (15:24 -0700)]
Add unreachable() fn, also nitpicking
Graydon Hoare [Thu, 15 Sep 2011 23:31:33 +0000 (16:31 -0700)]
Update README slightly.
Graydon Hoare [Thu, 15 Sep 2011 22:49:17 +0000 (15:49 -0700)]
Begin sketching an ICU binding. Doesn't work yet.
Patrick Walton [Thu, 15 Sep 2011 19:52:50 +0000 (12:52 -0700)]
rt: Add libunwind.h support on Mac OS X
Patrick Walton [Thu, 15 Sep 2011 19:52:09 +0000 (12:52 -0700)]
Revert "Make option::get return the option contents by reference" due to memory corruption
This reverts commit
fc0bf125168ec3df75bc57c250a62d3ea225a546 .
Marijn Haverbeke [Thu, 15 Sep 2011 15:47:39 +0000 (17:47 +0200)]
Make option::get return the option contents by reference
I can't believe this actually works!
Brian Anderson [Thu, 15 Sep 2011 15:46:07 +0000 (08:46 -0700)]
Add regression tests for previously ambiguous syntactic forms
Marijn Haverbeke [Thu, 15 Sep 2011 15:37:10 +0000 (17:37 +0200)]
Prevent binary expressions from parsing when lhs is non-value block
Marijn Haverbeke [Thu, 15 Sep 2011 15:33:35 +0000 (17:33 +0200)]
Register new snapshot
Marijn Haverbeke [Thu, 15 Sep 2011 15:01:35 +0000 (17:01 +0200)]
Generalize expression roots in alias analysis
This allows calls-returning-a-reference to count as expression roots,
making it possible to return the result of such a call by reference.
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 14:37:37 +0000 (16:37 +0200)]
Add tests for returning by reference
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 14:15:17 +0000 (16:15 +0200)]
Require the parameter that will be referenced to be noted
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 13:34:50 +0000 (15:34 +0200)]
Overhaul alias-checking of blocks
The set of active bindings has to be updated as by-reference locals are
encountered.
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 12:53:34 +0000 (14:53 +0200)]
Make storing returned references in a by-reference local work
fn f(a: {x: str}) -> &str {
ret a.x;
}
fn main() {
let x = {x: "hi"};
let &y = f(x); // Look ma, no copy!
log_err y;
}
Issue #918.
Marijn Haverbeke [Thu, 15 Sep 2011 12:08:54 +0000 (14:08 +0200)]
Forbid assignment to by-reference bindings
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 12:00:58 +0000 (14:00 +0200)]
Make trans understand by-ref bindings
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 11:40:28 +0000 (13:40 +0200)]
Implement basic checking of by-reference bindings
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 11:18:20 +0000 (13:18 +0200)]
Move local numbering into ast_map.rs
This further simplifies the alias pass, which is sorely needed.
Marijn Haverbeke [Thu, 15 Sep 2011 09:42:56 +0000 (11:42 +0200)]
Add representation for by-ref let bindings
Issue #918
Marijn Haverbeke [Thu, 15 Sep 2011 09:15:14 +0000 (11:15 +0200)]
Ensure parens are wrapped around composite exprs in call/index/field pos
This is needed to fix the second example in issue #919
Marijn Haverbeke [Thu, 15 Sep 2011 08:59:06 +0000 (10:59 +0200)]
More thorough check for (.. 10).x in pretty-printer
Closes #919
Marijn Haverbeke [Thu, 15 Sep 2011 08:14:14 +0000 (10:14 +0200)]
Stop mentioning tail calls in reference
They don't work, and won't work in the near future.
Marijn Haverbeke [Thu, 15 Sep 2011 08:12:09 +0000 (10:12 +0200)]
Also handle fail and put in print_maybe_parens_discrim
Closes #920
Marijn Haverbeke [Thu, 15 Sep 2011 07:52:13 +0000 (09:52 +0200)]
Remove maybe_protect_block kludge from pretty-printer
It is no longer needed.
Marijn Haverbeke [Thu, 15 Sep 2011 07:39:24 +0000 (09:39 +0200)]
Introduce new semicolon rules
- Loop bodies and resource constructors aren't allowed to have
trailing expressions anymore.
- An expression that ends* in a block without trailing expression can
can not be called, indexed, or subscripted.
- Only expression-statements that end* in a block without trailing
expression can omit their semicolon.
*) 'Ending in a trailing expression' is defined as being a block or
construct-ending-in-a-block (if, alt) that either ends in an
expression itself, or ends in another block-like expression that
has a trailing expression (by these same rules).
Marijn Haverbeke [Thu, 15 Sep 2011 07:48:39 +0000 (09:48 +0200)]
Insert omitted semicolons for statements
Brian Anderson [Thu, 15 Sep 2011 00:47:48 +0000 (17:47 -0700)]
xfail-fast run-pass/linked-failure.rs. Not sure what the problem is.
Brian Anderson [Thu, 15 Sep 2011 00:05:35 +0000 (17:05 -0700)]
Unsupervise tasks before the scheduler kills them. Unblock before yield->fail
Brian Anderson [Wed, 14 Sep 2011 22:51:46 +0000 (15:51 -0700)]
Add a run-pass test for linked failure
Brian Anderson [Wed, 14 Sep 2011 22:26:59 +0000 (15:26 -0700)]
Make failure propagation to dead parents work
The failure will basically go 'through' the dead parent and continue
propagating the failure (as if the child was reparented).
Graydon Hoare [Wed, 14 Sep 2011 21:48:40 +0000 (14:48 -0700)]
Remove mention of port, chan and task *types*, as they're not just library-provided. Move some text about channels into the comm section.
Graydon Hoare [Wed, 14 Sep 2011 21:38:52 +0000 (14:38 -0700)]
Remove talk of 'sharing boxes between tasks', old GC layer, etc. Add description of unique boxes.
Graydon Hoare [Wed, 14 Sep 2011 21:22:15 +0000 (14:22 -0700)]
Remove mention of the nonexistent (and no longer implementable) memory accounting model.
Brian Anderson [Wed, 14 Sep 2011 21:20:13 +0000 (14:20 -0700)]
Make linked task failure work again
Graydon Hoare [Wed, 14 Sep 2011 21:13:47 +0000 (14:13 -0700)]
Fix vector indexing notation, remove reference to 'slices'.
Graydon Hoare [Wed, 14 Sep 2011 21:11:31 +0000 (14:11 -0700)]
Fix description of tuples.
Brian Anderson [Wed, 14 Sep 2011 20:32:09 +0000 (13:32 -0700)]
Remove more references to reflection from docs
Graydon Hoare [Wed, 14 Sep 2011 19:35:01 +0000 (12:35 -0700)]
Remove description of nonexistent stuff (reflection, meta directives); add description of attributes and tidy up description of syntax extensions.
Graydon Hoare [Wed, 14 Sep 2011 18:37:34 +0000 (11:37 -0700)]
Remove stuff that's either unimplemented or misleading.
Graydon Hoare [Wed, 14 Sep 2011 18:07:57 +0000 (11:07 -0700)]
Remove misleading details.
Brian Anderson [Wed, 14 Sep 2011 17:59:17 +0000 (10:59 -0700)]
Add another XFAILed test for failing destructors
Brian Anderson [Wed, 14 Sep 2011 16:21:28 +0000 (09:21 -0700)]
Add another unwind test
This makes sure that cleanups added after the first invoke in a scope are
actually run on unwind
Brian Anderson [Wed, 14 Sep 2011 16:19:31 +0000 (09:19 -0700)]
Revert "Try a little harder to avoid creating new landing pads"
This reverts commit
b8e31ac46917edcf5922f0b191c5e6c4505830d2 .
Conflicts:
src/comp/middle/trans.rs
Marijn Haverbeke [Wed, 14 Sep 2011 15:18:48 +0000 (17:18 +0200)]
Add syntax and representation for return-by-mutably-rooted-ref
This will be used in the near future to decide what can safely
be done with the returned reference.
Issue #918
Marijn Haverbeke [Wed, 14 Sep 2011 14:46:54 +0000 (16:46 +0200)]
Prevent memory errors when returning references to temp args.
Issue #918
Marijn Haverbeke [Wed, 14 Sep 2011 14:19:15 +0000 (16:19 +0200)]
Accept returning refs rooted in an arg from a by-ref funtion
Issue #918
Marijn Haverbeke [Wed, 14 Sep 2011 13:30:59 +0000 (15:30 +0200)]
Make ast_map.rs index function args, switch it over to simple_visitor