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
Erick Tryzelaar
909d8f0eac
std: Add Deque::eachi and a Deque serializer support
2013-03-29 18:02:44 -07:00
Erick Tryzelaar
0de7635f53
Merge remote-tracking branch 'remotes/origin/incoming' into serial
2013-03-29 17:48:44 -07:00
Erick Tryzelaar
e5c7a9e342
std: add serialization support for dlist, linearset, triemap, trieset, treemap, and treeset
2013-03-29 17:44:28 -07:00
Erick Tryzelaar
529ae38605
Merge remote-tracking branch 'remotes/origin/incoming' into serial
2013-03-29 17:41:32 -07:00
Patrick Walton
1e91595520
librustc: Remove fail_unless!
2013-03-29 16:39:08 -07:00
Brian Anderson
518c295a03
Register snapshots
2013-03-29 11:30:42 -07:00
Erick Tryzelaar
bdef3f1930
std: fix json deserializing vectors and a test
2013-03-29 09:10:31 -07:00
Erick Tryzelaar
31563f53d9
Merge remote-tracking branch 'remotes/origin/incoming' into serial
2013-03-29 09:06:36 -07:00
Erick Tryzelaar
d1a83e6986
std: add Encoder::emit_map and Decoder::read_map
2013-03-29 09:04:35 -07:00
Erick Tryzelaar
90b3658cd6
std: remove Encoder::read_rec and Decoder::emit_rec
2013-03-29 07:05:54 -07:00
Erick Tryzelaar
e99cdcfba8
std: remove Encoder::emit_tup{,_elt} and Decoder::read_tup{,_elt}
2013-03-29 07:05:54 -07:00
Erick Tryzelaar
590bbcebe9
std: remove Encoder::emit_{owned,managed}_vec and Decoder::read_{owned,managed}_vec
2013-03-29 07:05:54 -07:00
Erick Tryzelaar
63fc88757f
std: remove Encoder::emit_{owned,managed} and Decoder::read_{owned,managed}
2013-03-29 07:05:54 -07:00
Erick Tryzelaar
8b43c620b9
std: remove Encoder::emit_{owned,managed}_str and Decoder::read_{owned,managed}_str
2013-03-29 07:05:54 -07:00
Erick Tryzelaar
2c658fabed
std: remove prettyprint
...
Everyone uses fmt!("%?", ...) instead of the prettyprint
module, so I'm removing this file.
2013-03-29 07:05:54 -07:00
Alex Crichton
be57d745d2
Removing unused imports
2013-03-28 23:56:46 -04:00
Erick Tryzelaar
b05e148dc9
std: change Decoder::read_option to return a generic type
...
This allows read_option to be used with a custom option type instead
of just core::Option.
2013-03-28 20:34:33 -07:00
Erick Tryzelaar
aa779c1240
std: change Decoder::read_option to return a generic type
...
This allows read_option to be used with a custom option type instead
of just core::Option.
2013-03-28 13:11:24 -07:00
bors
b1c0a6628b
auto merge of #5595 : catamorphism/rust/demoding, r=catamorphism
2013-03-28 04:54:45 -07:00
bors
84ddff3909
auto merge of #5578 : erickt/rust/incoming, r=jbclements,erickt
...
Hey folks,
This patch series does some work on the json decoder, specifically with auto decoding of enums. Previously, we would take this code:
```
enum A {
B,
C(~str, uint)
}
```
and would encode a value of this enum to either `["B", []]` or `["C", ["D", 123]]`. I've changed this to `"B"` or `["C", "D", 123]`. This matches the style of the O'Caml json library [json-wheel](http://mjambon.com/json-wheel.html ). I've added tests to make sure all this work.
In order to make this change, I added passing a `&[&str]` vec to `Decode::emit_enum_variant` so the json decoder can convert the name of a variant into it's position. I also changed the impl of `Encodable` for `Option<T>` to have the right upper casing.
I also did some work on the parser, which allows for `fn foo<T: ::cmp::Eq>() { ... }` statements (#5572 ), fixed the pretty printer properly expanding `debug!("...")` expressions, and removed `ast::expr_vstore_fixed`, which doesn't appear to be used anymore.
2013-03-27 21:51:53 -07:00
bors
f7f6013a62
auto merge of #5574 : thestinger/rust/docstring, r=sanxiyn
2013-03-27 17:48:56 -07:00
Tim Chevalier
b0d1643fa6
core/std: Remove uses of ++ mode
...
from stackwalk::frame_address and net_tcp::on_tcp_read_cb
As per #4425
2013-03-27 17:14:10 -07:00
Tim Chevalier
31f8093037
core: Remove unused import
2013-03-27 17:14:06 -07:00
Niko Matsakis
069529bc5c
Autoref the argument to the index operator ( #4920 )
2013-03-27 13:04:03 -04:00
Erick Tryzelaar
c317d3f6fa
std: add some better failure msgs to json
2013-03-27 07:04:17 -07:00
Erick Tryzelaar
4e9a63ff91
std: add tests for decoding json enums
2013-03-27 07:04:14 -07:00
Erick Tryzelaar
4d6dcefcbb
std: Decode::read_enum_variant should pass in the variant names
...
Because the json::Decoder uses the string variant name, we need a
way to correlate the string to the enum index. This passes in a
static &[&str] to read_enum_variant, which allows the json::Decoder
to know which branch it's trying to process.
2013-03-27 07:04:13 -07:00
Erick Tryzelaar
478e4498b7
std: add option type directly to serialize::{En,De}code
2013-03-27 07:04:12 -07:00
Erick Tryzelaar
4d995e66a2
std: change default json enum encoder to use strings or a flat vec
2013-03-27 07:04:12 -07:00
Erick Tryzelaar
b10b8c3ee4
std: Add tests for json decoding options
2013-03-27 07:04:11 -07:00
Erick Tryzelaar
c9188c8301
std: fix json PrettyEncoder and add tests
2013-03-27 07:04:10 -07:00
Erick Tryzelaar
6cf99fa54a
std: change fail_unless to assert_eq in json.rs
2013-03-27 07:04:09 -07:00
Erick Tryzelaar
89fc95885f
std: serializing Options should use the right case
2013-03-27 07:02:59 -07:00
Erick Tryzelaar
b290863be6
std: clean json test imports
2013-03-27 07:01:50 -07:00
Daniel Micay
1c6272a267
base64: add docstring
2013-03-27 03:42:03 -04:00
Patrick Walton
f41a510631
librustc: Remove obsolete syntax
2013-03-26 21:30:18 -07:00
Patrick Walton
0a4d0f37ca
librustc: Enforce that extern mod
directives come first, then use
directives, then items.
...
Resolve them in this order as well.
2013-03-26 21:30:17 -07:00
Patrick Walton
8b56a8380b
librustc: Modify all code to use new lifetime binder syntax
2013-03-26 21:30:17 -07:00
Patrick Walton
142dbd65da
librustc: Remove all uses of the old [T * N]
fixed-length vector syntax
2013-03-26 21:29:34 -07:00
Patrick Walton
0d52b22e7b
libcore: Change [const T]
to const [T]
everywhere
2013-03-26 21:29:33 -07:00
Daniel Micay
34c5a09ce3
option: rm functions that duplicate methods
2013-03-26 22:44:40 -04:00
Alex Crichton
d69108d8f7
std: Remove the oldmap module
2013-03-26 19:21:05 -04:00
Alex Crichton
fa7772893a
Remove unused imports throughout
2013-03-26 19:20:02 -04:00
Marvin Löbel
c99488b3a4
Isolated bug, static vector seems to behave differently than fixed sized one
2013-03-26 14:59:17 +01:00
Marvin Löbel
b9de2b5787
Switched over a bunch of splitting funktions to non-allocating iterators
2013-03-26 14:59:17 +01:00
Marvin Löbel
d74606ead6
pre-rebase commit
2013-03-26 14:59:17 +01:00
bors
7481524978
auto merge of #5528 : thestinger/rust/find_mut, r=brson
...
This currently requires workarounds for the borrow checker not being flow-sensitive for `LinearMap` and `TrieMap`, but it can already be expressed for `TreeMap` and `SmallIntMap` without that.
2013-03-25 22:24:57 -07:00
bors
47ddb59b80
auto merge of #5525 : dbaupp/rust/minor_fixups, r=graydon
...
Kills some warnings, and implements str::each_char_reverse so that it actually iterates. The test case wasn't detecting a failure, since the loop body was never executed.
2013-03-25 21:18:57 -07:00
bors
00605d58de
auto merge of #5513 : apasel422/rust/deriving, r=luqmana
...
This removes some explicit implementations of `Eq` in favor of `#[deriving(Eq)]` and derives `Clone` for a few core types.
2013-03-25 19:01:00 -07:00
bors
b48e6998d7
auto merge of #5509 : thestinger/rust/oldmap, r=brson
...
The reasoning for doing it this way is that it's much easier to transition method-by-method to the `Map` API than trying to do the migration all at once.
I found an issue unrelated to my changes in one of the run-fail tests - if it uses `LinearMap`, it still fails but exits with 0. I xfailed it for now and opened [an issue](https://github.com/mozilla/rust/issues/5512 ), because it's not caused by these changes.
2013-03-25 18:01:04 -07:00
Brian Anderson
30d4124a37
Merge remote-tracking branch 'brson/rt'
...
Conflicts:
src/libcore/rt/context.rs
src/libcore/rt/sched.rs
src/libcore/rt/thread.rs
src/libcore/rt/uv.rs
2013-03-25 12:28:54 -07:00
Daniel Micay
38f39ac540
expose find_mut in the Map trait
2013-03-24 21:40:16 -04:00
Daniel Micay
f0f4a00e88
smallintmap: add find_mut method
2013-03-24 21:40:13 -04:00
Daniel Micay
7948149456
treemap: add a find_mut method
2013-03-24 16:58:52 -04:00
Huon Wilson
12df65470f
Kill some warnings: unused imports and old #[deny(..)]s.
2013-03-25 01:17:23 +11:00
Andrew Paseltiner
45677eebf2
replace impls with deriving
where applicable
2013-03-23 06:57:30 -04:00
Daniel Micay
11ca2efce1
turn std::oldmap into a wrapper around LinearMap
2013-03-23 02:16:14 -04:00
Patrick Walton
6d81307a9b
librustc: Add explicit lifetime binders and new lifetime notation in core/std/syntax/rustc
2013-03-22 22:24:35 -07:00
Patrick Walton
85c9fc6f8f
librustc: Remove the const
declaration form everywhere
2013-03-22 22:24:35 -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
Andrew Paseltiner
4055fe83f6
std: replace uses of old deriving attribute with new one
2013-03-22 06:24:19 -04:00
bors
9584c60871
auto merge of #5484 : pcwalton/rust/snapshots, r=pcwalton
2013-03-22 00:00:50 -07:00
bors
334e921421
auto merge of #5481 : thestinger/rust/deque, r=z0w0
2013-03-21 21:57:52 -07:00
bors
d52408d46a
auto merge of #5480 : pcwalton/rust/at-const, r=pcwalton
...
r? @catamorphism
2013-03-21 20:39:51 -07:00
bors
5f2d4102c5
auto merge of #5479 : Kimundi/rust/str-dealloc, r=z0w0
...
This makes the `trim` and `substr` functions return a slice instead of an `~str`, and removes the unnecessary `Trimmable` trait (`StrSlice` already contains the same functionality).
Also moves the `ToStr` implementations for the three str types into the str module in anticipation of further untangling.
2013-03-21 19:39:53 -07:00
Patrick Walton
e7dbe6cd6f
librustc: Register new snapshots
2013-03-21 18:10:20 -07:00
Patrick Walton
d4fee24c7c
librustc: Forbid destructors from being attached to any structs that might contain non-Owned fields. r=nmatsakis
2013-03-21 17:31:34 -07:00
Daniel Micay
b2060174d4
deque: add a module docstring
2013-03-21 19:14:02 -04:00
bors
ec8345b18a
auto merge of #5407 : jbclements/rust/add-assert-eq-macro, r=jbclements
...
Adds an assert_eq! macro that asserts that its two arguments are equal. Error messages can therefore be somewhat more informative than a simple assert, because the error message includes "expected" and "given" values.
2013-03-21 15:24:54 -07:00
Marvin Löbel
0a47cd5ef1
Un-renamed trim and substr functions.
2013-03-21 23:06:05 +01:00
Marvin Löbel
ee2f3d9673
Switched over substr and trim functions in str to be non-allocating, temporary renamed them to better track use-sites
2013-03-21 23:06:04 +01:00
bors
b8899138f8
auto merge of #5466 : Kimundi/rust/view-slice-rename, r=bstrie
...
A slice now always refers to something that returns an borrowed pointer, views don't exist anymore. If you want to have an explictit copy of a slice, use `to_owned()`
2013-03-21 07:06:54 -07:00
Marvin Löbel
9d9a209e9a
back-renamed slice_DBG_BRWD, slice_V_DBG_BRWD -> slice, slice_DBG_UNIQ -> slice_unique
2013-03-21 14:05:57 +01:00
bors
a8527e2e97
auto merge of #5456 : graydon/rust/fixups, r=pcwalton
...
Stage markers for stage3 and a trivial prelude fix.
2013-03-20 18:27:48 -07:00
Marvin Löbel
a7d296f24c
renamed str::view -> slice_DBG_BRWD
...
renamed str::slice -> slice_DBG_UNIQ
changed vec slice method -> to_owned()
renamed vec view method -> slice_V_DBG_BRWD
2013-03-21 01:50:32 +01:00
bors
b12714eff5
auto merge of #5455 : pcwalton/rust/framework, r=catamorphism
...
r? @catamorphism
2013-03-20 16:42:47 -07:00
John Clements
3cd65c233d
change some uses of fail_unless to assert_eq
2013-03-20 16:05:59 -07:00
Patrick Walton
9c4d804cfe
libsyntax: Never use ::<>
in the type grammar
2013-03-20 13:54:25 -07:00
Graydon Hoare
9350d14ecb
add stage3 markers where necessary for dist-snap
2013-03-20 13:48:57 -07:00
Erick Tryzelaar
cefecd8601
core: add str::each{,i}_reverse
2013-03-20 07:53:23 -07:00
Erick Tryzelaar
fe74a1c9a2
core: rename vec::rev_each{,i} to vec::each{,i}_reverse
...
I'm making this change because the _reverse suffix is more commonly
used in libcore/libstd.
2013-03-19 20:24:04 -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
c4db4faefa
libsyntax: Stop parsing old lifetimes, except for the ones on data type declarations.
2013-03-18 17:21:15 -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
Brian Anderson
54bb7226e1
core: Simplify uvll bindings and strip out currently-unused bits
...
No more mapping uv structs to Rust structs
2013-03-18 16:59:37 -07:00
Brian Anderson
d30c758974
Give core::rt and std::net their own uvll bindings
...
I intend to do some big refactoring and don't want to deal w/ std just now
2013-03-18 16:59:11 -07:00
bors
6f1e8ef71a
auto merge of #5404 : bstrie/rust/decopy, r=pcwalton
...
Also turn `copy` into `.clone()` in much of run-pass.
2013-03-15 20:15:44 -07:00
Ben Striegel
748c2c9ebc
impl Clone for ~T, ~[T], ~str
2013-03-15 18:26:59 -04:00
Daniel Micay
2b6614f2e6
treemap: use each_mut instead of mutate
2013-03-15 14:14:03 -04:00
Daniel Micay
88278f9c35
treemap: rm old FIXME
2013-03-15 14:12:45 -04:00
Daniel Micay
b3ee49c7e2
deque: add documentation
2013-03-15 14:05:27 -04:00
Daniel Micay
a49ccee68e
MutableIter impl for Option + use it in treemap
2013-03-14 23:44:25 -04:00
bors
0c7aeddb5f
auto merge of #5365 : thestinger/rust/map, r=catamorphism
2013-03-14 15:06:49 -07:00
Patrick Walton
a410652bc9
librustc: Remove "base types" from the language.
2013-03-13 20:07:09 -07:00
Patrick Walton
b1c699815d
librustc: Don't accept as Trait
anymore; fix all occurrences of it.
2013-03-13 20:07:09 -07:00
ILyoan
278a4dbb0f
Remove unused imports in std
2013-03-14 09:52:51 +09:00
Daniel Micay
becad9bb07
add the mutate_values method to the Map trait
2013-03-13 19:33:10 -04:00