Commit Graph

50 Commits

Author SHA1 Message Date
Niko Matsakis
6965fe4bce Add AbiSet and integrate it into the AST.
I believe this patch incorporates all expected syntax changes from extern
function reform (#3678). You can now write things like:

    extern "<abi>" fn foo(s: S) -> T { ... }
    extern "<abi>" mod { ... }
    extern "<abi>" fn(S) -> T

The ABI for foreign functions is taken from this syntax (rather than from an
annotation).  We support the full ABI specification I described on the mailing
list.  The correct ABI is chosen based on the target architecture.

Calls by pointer to C functions are not yet supported, and the Rust type of
crust fns is still *u8.
2013-03-29 18:36:20 -07:00
Patrick Walton
1e91595520 librustc: Remove fail_unless! 2013-03-29 16:39:08 -07:00
Daniel Micay
705c796ffa remove obsolete purity workarounds 2013-03-22 18:08:56 -04:00
Patrick Walton
c1084091d4 libstd: Remove all uses of pure from libstd. rs=depure 2013-03-22 10:29:17 -07:00
Patrick Walton
4634f7edae librustc: Remove all uses of static from functions. rs=destatic 2013-03-22 10:27:39 -07:00
Patrick Walton
e78f2e2ac5 librustc: Make the compiler ignore purity.
For bootstrapping purposes, this commit does not remove all uses of
the keyword "pure" -- doing so would cause the compiler to no longer
bootstrap due to some syntax extensions ("deriving" in particular).
Instead, it makes the compiler ignore "pure". Post-snapshot, we can
remove "pure" from the language.

There are quite a few (~100) borrow check errors that were essentially
all the result of mutable fields or partial borrows of `@mut`. Per
discussions with Niko I think we want to allow partial borrows of
`@mut` but detect obvious footguns. We should also improve the error
message when `@mut` is erroneously reborrowed.
2013-03-18 17:21:16 -07:00
Patrick Walton
352c070365 librustc: Convert all uses of old lifetime notation to new lifetime notation. rs=delifetiming 2013-03-18 17:21:14 -07:00
Niko Matsakis
852619d5d7 Remove ++ mode from the compiler (it is parsed as + mode)
and obsolete `-` mode altogether (it *was* parsed as `+` mode).
2013-03-13 17:00:09 -04:00
Patrick Walton
d18f785457 librustc: Replace all uses of fn() with &fn(). rs=defun 2013-03-11 09:35:58 -07:00
Patrick Walton
d7e74b5e91 librustc: Convert all uses of assert over to fail_unless! 2013-03-07 22:37:57 -08:00
Erick Tryzelaar
743cfce703 core: convert vec::{last,last_opt} to return references 2013-03-05 19:39:18 -08:00
Patrick Walton
107bf96ff0 librustc: Mark all type implementations public. rs=impl-publicity 2013-02-28 11:32:24 -08:00
Patrick Walton
bf2a225c0b librustc: Separate most trait bounds with '+'. rs=plussing 2013-02-20 21:14:20 -08:00
Luqman Aden
4cf51c2531 libstd: Get rid of move. 2013-02-15 02:49:54 -08:00
Patrick Walton
9143688197 librustc: Replace impl Type : Trait with impl Trait for Type. rs=implflipping 2013-02-14 14:44:12 -08:00
Niko Matsakis
ab2534974c Adjust borrow checker algorithm to address #4856 unsoundness,
and then adjust code to match. rs=unsound (will review post-landing)
2013-02-12 20:10:50 -08:00
Daniel Micay
d903231f1e add a BaseIter implementation for PriorityQueue 2013-02-07 20:18:15 -05:00
Patrick Walton
6ce74460e6 librustc: Disallow trait bounds in types, enumerations, and structure definitions. r=tjc 2013-01-29 10:42:58 -08:00
Tim Chevalier
3a6849f36b Revert "Revert "Merge pull request #4633 from thestinger/treemap""
This reverts commit d73077f82d.
2013-01-28 17:20:29 -08:00
Tim Chevalier
d73077f82d Revert "Merge pull request #4633 from thestinger/treemap"
I was too hasty in merging -- this needs a snapshot.

This reverts commit 4a7e1ab374, reversing
changes made to e447521c1c.
2013-01-25 13:39:04 -08:00
Daniel Micay
ca8f09a39e use mut function argument syntax in priority_queue 2013-01-25 13:28:43 -05:00
Patrick Walton
ad25e208ee librustc: Allow &mut to be loaned; allow self to be loaned; make &mut loanable to &. r=nmatsakis 2013-01-24 13:52:22 -08:00
Daniel Micay
d912d53ea9 remove is_not_empty method from PriorityQueue 2013-01-24 14:46:09 -05:00
Patrick Walton
54b2cad8b3 libsyntax: Remove fn() unsafe { ... }. r=graydon 2013-01-23 14:41:08 -08:00
Daniel Micay
6f4d86ed90 add a base Container trait 2013-01-22 08:10:08 -05:00
Daniel Micay
ffb9049274 add a Mutable container trait with clear 2013-01-22 08:09:53 -05:00
Brian Anderson
6b6acde972 Add a license check to tidy. #4018 2013-01-17 23:28:42 -08:00
Patrick Walton
2db3abddcd librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc 2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37 Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
This reverts commit a8d37af247.
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247 librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc 2013-01-08 19:27:57 -08:00
Patrick Walton
57c599914a librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon 2012-12-27 10:02:54 -08:00
Brian Anderson
5bf7ba0773 Register snapshots 2012-12-17 16:44:27 -08:00
Brian Anderson
68998724c6 Revert "Register snapshots"
This reverts commit d6d12d90ff.
2012-12-17 16:26:44 -08:00
Brian Anderson
d6d12d90ff Register snapshots 2012-12-17 16:22:21 -08:00
Daniel Micay
f1e87733bd add an empty PriorityQueue constructor 2012-12-17 15:23:12 -08:00
Brian Anderson
161d289cc7 Long lines 2012-12-16 19:56:09 -08:00
Brian Anderson
8cbf817c2c Fix doc comment 2012-12-16 19:53:24 -08:00
Brian Anderson
60ef6095f2 Add priority_queue test for unique pointers 2012-12-16 19:53:14 -08:00
Brian Anderson
90bebe3522 Add various workaround attributes to priority_queue 2012-12-16 19:41:07 -08:00
Daniel Micay
ac695aa21a priority_queue: add docstring for from_vec 2012-12-16 19:27:06 -08:00
Daniel Micay
b3463ea657 priority_queue: replace copies with moves 2012-12-16 19:27:06 -08:00
Daniel Micay
6c433f22a1 priority_queue: clean up naming 2012-12-16 19:27:06 -08:00
Daniel Micay
ab75d3937d priority_queue: fix test compilation 2012-12-16 19:27:06 -08:00
Daniel Micay
04df723619 priority_queue: fix siftup/siftdown naming 2012-12-16 19:27:06 -08:00
Daniel Micay
7bd0d71554 priority_queue: avoid copy with top and maybe_top 2012-12-16 19:27:06 -08:00
Daniel Micay
e00c3b05e1 priority_queue: fix to_sorted_vec off-by-one error 2012-12-16 19:27:06 -08:00
Daniel Micay
8b13bf7530 priority_queue: replace some copies with swaps 2012-12-16 19:27:06 -08:00
Daniel Micay
285496bd55 priority_queue: make from_vec a static method 2012-12-16 19:27:05 -08:00
Daniel Micay
757a2afb6b priority_queue: make to_vec/to_sorted_vec methods 2012-12-16 19:27:05 -08:00
Daniel Micay
dd2b32be56 add priority queue implementation (binary heap) 2012-12-16 19:27:05 -08:00