Commit Graph

16873 Commits

Author SHA1 Message Date
Huon Wilson
3698ea7e54 libsyntax: abstract most of the deriving boilerplate into a simpler(r) interface.
Pulls out many of the common patterns from the Eq and Clone deriving code (and
invents a few of its own), so that deriving instances are very easy to write
for a certain class of traits. (Basically, those which don't have parameters
and where all methods only take arguments of type `&Self` and return either
`Self` or types with no parameters.)
2013-04-12 17:10:26 +10:00
bors
cf34b31704 auto merge of #5825 : danluu/rust/rngdoc, r=erickt
This adds an example for most of the methods in Rng.

As a total newcomer to Rust, it took a while to figure out how to do basic things like use library functions, because there aren't many usage examples, and most examples that Google turns up are out of date. Something like this would have saved me a bit of time.

This might be a bit verbose. Some alternative options would be to consolidate all the examples into one section, or to only have code for the specific function call inline.
2013-04-11 09:37:01 -07:00
bors
a3c8f524b8 auto merge of #5823 : Kimundi/rust/str_from_bytes_slice, r=erickt
Added str::from_bytes_with_null
Added str::subslice_offset
Misc cleanup

Closes #5422
2013-04-11 08:25:00 -07:00
bors
2f8b36fc16 auto merge of #5819 : erickt/rust/incoming, r=erickt
Good morning,

This first patch series adds support for `#[deriving(Decodable, Encodable)]`, but does not yet remove `#[auto_encode]` and `#[auto_decode]`. I need a snapshot to remove the old code. Along the way it also extends support for tuple structs and struct enum variants.

Also, it includes a minor fix to the pretty printer. We decided a while ago to use 4 spaces to indent a match arm instead of 2. This updates the pretty printer to reflect that.
2013-04-11 06:55:01 -07:00
Dan Luu
aff558998e Fix formatting 2013-04-11 09:12:26 -04:00
bors
e0defb8466 auto merge of #5826 : brson/rust/0.7-pre, r=brson
I accidentally changed the version to `0.7-rc` when `0.7-pre` is what @graydon and I agreed on. This fixes.
2013-04-11 02:48:59 -07:00
bors
c27fad7353 auto merge of #5811 : sanxiyn/rust/parse-uint, r=catamorphism
It does not handle signs.
2013-04-11 00:31:03 -07:00
Brian Anderson
5b457c1469 xail all debuginfo tests
The broke with the LLVM upgrade
2013-04-11 00:16:09 -07:00
ILyoan
03116f251d add unwind information on morestack 2013-04-10 18:49:51 -07:00
Brian Anderson
a34948a2c5 rustllvm: Initialize target analysis passes
Without this the target info for certain optimizations will not be
created and the compiler will sometimes crash
2013-04-10 18:49:51 -07:00
ILyoan
344628fe91 FIX meta_section_name for macos 2013-04-10 18:49:51 -07:00
ILyoan
3d0d144283 rust morestack assembly for arm
Conflicts:
	src/rt/arch/arm/morestack.S
2013-04-10 18:49:50 -07:00
Young-il Choi
4b4f48283b rustllvm: followup latest LLVM 2013-04-10 18:49:50 -07:00
Brian Anderson
a9741bd33d Update LLVM for ARM changes 2013-04-10 18:49:50 -07:00
Erick Tryzelaar
26ecb30f55 test: update serialization tests to use new macro 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
f3ab67ec5f syntax: add {read,emit}_enum_struct_variant{,_field} 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
e31f7b7c74 std: add serialize {read,emit}_tuple{,_arg,_struct,_struct_arg} 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
441df26f5a syntax: add support for #[deriving(Decodable)] 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
5841564bf9 syntax: add support for #[deriving(Encodable)] 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
f50a8e2833 syntax: Simplify deriving to handle classes that take generics, like Encodable 2013-04-10 16:32:09 -07:00
Erick Tryzelaar
419f6acf0e std: rename {read,emit}_field to {read,emit}_struct_field 2013-04-10 16:08:22 -07:00
Erick Tryzelaar
97cc571358 std: clean up the order of {De,En}codable methods 2013-04-10 16:08:22 -07:00
Erick Tryzelaar
4464e44750 syntax: update a deriving error message to use the new syntax 2013-04-10 16:08:22 -07:00
Erick Tryzelaar
74807b1594 syntax: match variants use 4 space indent by default 2013-04-10 16:08:22 -07:00
Marvin Löbel
4ad76e66aa Add example for str::subslice_offset 2013-04-11 00:48:31 +02:00
Marvin Löbel
9a16179fd3 Added str::from_slice_with_null() to cast a &[u8] to &str
Added str::subslice_offset()
Renamed slice_bytes_uniqe to slice_bytes_owned
2013-04-11 00:36:28 +02:00
Brian Anderson
23e44a529b Bump version to 0.7-pre 2013-04-10 13:12:53 -07:00
Dan Luu
ccae209b0d Clarify comment 2013-04-10 15:54:28 -04:00
Dan Luu
4b7d363495 Add examples for Rng functions. 2013-04-10 15:08:19 -04:00
bors
11f5f73b2b auto merge of #5818 : Kimundi/rust/iter_to_vec, r=catamorphism 2013-04-10 11:31:01 -07:00
bors
2c649830be auto merge of #5709 : jbclements/rust/miscellaneous-cleanup, r=jbclements
There's no unifying theme here; I'm just trying to clear a bunch of small commits: removing dead code, adding comments, renaming to an upper-case type, fixing one test case.
2013-04-10 09:43:01 -07:00
John Clements
9deb2f2dfa libsyntax comments only 2013-04-10 09:15:08 -07:00
John Clements
05bbaf9e9f removed test referring to WONTFIX bug #2443 2013-04-10 09:15:08 -07:00
John Clements
09bcd3837c unneccessary since tjc's commit 78ec6fe30c, fixing #2804 2013-04-10 09:15:08 -07:00
John Clements
27700472b9 removed eval.rs: dead code
@brson confirms that eval.rs is now dead code
2013-04-10 09:15:08 -07:00
John Clements
48e7bda826 path -> Path 2013-04-10 09:15:04 -07:00
bors
ac9dc69bf3 auto merge of #5796 : nikomatsakis/rust/issue-5656-fix-map-iteration, r=nikomatsakis
Revert map.each to something which takes two parameters rather than a tuple.  The current setup iterates over `BaseIter<(&'self K, &'self V)>` where 'self is a lifetime declared *in the `each()` method*.  You can't place such a type in the impl declaration.  The compiler currently allows it, but this will not be legal under #5656 and I'm pretty sure it's not sound now.  It's too bad that maps can't implement `BaseIter` (at least not over a tuple as they do here) but I think it has to be this way for the time being.

r? @thestinger
2013-04-10 08:28:02 -07:00
Marvin Löbel
24eee5296b Added iter_to_vec conversion fn 2013-04-10 16:57:52 +02:00
Niko Matsakis
5606fc0c90 Revert map.each to something which takes two parameters
rather than a tuple.  The current setup iterates over
`BaseIter<(&'self K, &'self V)>` where 'self is a lifetime declared
*in the each method*.  You can't place such a type in
the impl declaration.  The compiler currently allows it,
but this will not be legal under #5656 and I'm pretty sure
it's not sound now.
2013-04-10 07:51:48 -07:00
bors
5d01f649b4 auto merge of #5816 : dbaupp/rust/rustc-packed-v2, r=nikomatsakis
#5758 take 2.

This adds a `#[packed]` attribute for structs, like GCC's `__attribute__((packed))`, e.g.

```rust
#[packed]
struct Size5 {
   a: u8,
   b: u32
}
```

It works on normal and tuple structs, but is (silently) ignored on enums.

Closes #1704.
2013-04-10 07:37:24 -07:00
Huon Wilson
7d7e149748 testsuite: tests for #[packed] structs. 2013-04-10 23:47:53 +10:00
Huon Wilson
cad226025b librustc: implement a #[packed] attribute for structs.
A struct (inc. tuple struct) can be annotated with #[packed], so that there
is no padding between its elements, like GCC's `__attribute__((packed))`.

Closes #1704
2013-04-10 23:39:20 +10:00
bors
a425b75c64 auto merge of #5773 : dunsmoreb/rust/incoming, r=bstrie
Updates the tutorial to include a simple definition for tuples in section 4.2. Fixes #5132.
2013-04-10 06:04:00 -07:00
Bryan Dunsmore
08bc392d94 Update destructuring to reference tuples section. 2013-04-10 07:06:18 -05:00
bors
7222801234 auto merge of #5812 : kud1ing/rust/patch-1, r=sanxiyn
"driver/rustc.rs" does not exist anymore
2013-04-10 00:51:57 -07:00
bors
7ebe5779b6 auto merge of #5813 : sanxiyn/rust/llvm-version, r=thestinger
See my [post](https://mail.mozilla.org/pipermail/rust-dev/2013-April/003518.html) on the mailing list for details.

Also:

* 3.2 is newer than 3.2svn, so I changed the ordering. (3.2svn is the version used between 3.2 and 3.3.)
* 3.3svn is added. This is the version you currently get from compiling LLVM trunk.
* 3.3 is added. 3.3 is not released yet, but this is the version used by http://llvm.org/apt/.
2013-04-09 23:06:58 -07:00
kud1ing
0fea2bd8a1 README: "driver/rust.rs" => "rust.rc" 2013-04-10 09:01:15 +03:00
Seo Sanghyeon
156a307f4b LLVM versions 2013-04-10 14:57:49 +09:00
Seo Sanghyeon
df5555aa67 Rename tydecode::parse_int to parse_uint
It does not handle signs.
2013-04-10 14:45:12 +09:00
bors
6100bb5cba auto merge of #5804 : alexcrichton/rust/issue-3266, r=graydon
This leaves the default lint modes at `warn`, but now the unused variable and dead assignment warnings are configurable on a per-item basis. As described in #3266, this just involved carrying around a couple ids to pass over to `span_lint`. I personally would prefer to keep the `_` prefix as well.

This closes #3266.
2013-04-09 20:36:56 -07:00