Commit graph

16807 commits

Author SHA1 Message Date
bors
f7a2371c17 auto merge of #5614 : graydon/rust/static-linkage-bug, r=catamorphism
re bug that @nikomatsakis was hitting: when you define a `static` (old: `const`) containing a `&` or `&[]` expression, it will create temporaries (the underlying pointee) by creating a throwaway symbol for each temporary, each with _global_ linkage, and each named `"const"`. LLVM will helpfully rename multiple copies of this throwaway symbol to `"const1"` and `"const2"` and so forth in the _same_ library. But if you have _2 libraries_ -- say, libcore and librustc -- that both do this, the dynamic linker (at least on linux) will happily do horrible things like make the slice in one library point to the bytes of the vector from the other library. This is obviously a recipe for much hilarity and head-scratching.

The solution is to change the linkage to something else, internal or (in the case of this patch) _private_.

It will require a snapshot to integrate this into stage0 and thereby fix the problem / unblock patches that were hitting this in stage1.
2013-03-28 21:48:49 -07:00
Alex Crichton
be57d745d2 Removing unused imports 2013-03-28 23:56:46 -04:00
Alex Crichton
cc83049a56 Fix warning about unused imports in import lists
Before, if anything in a list was used, the entire list was considered to be
used. This corrects this and also warns on a span of the actual unused import
instead of the entire list.
2013-03-28 23:56:45 -04:00
bors
d98a195ffc auto merge of #5610 : thestinger/rust/tutorial, r=pcwalton 2013-03-28 20:48:52 -07: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
bdf81e1184 core: Inline mallocing wrapper functions
As far as I can tell, this doesn't make rust compile any
faster, but it does at least remove one level of indirection
on malloc, which might help speed up some operations.
2013-03-28 20:34:33 -07:00
Tim Chevalier
ae7e072af7 testsuite: Add test case for #4325 2013-03-28 19:24:17 -07:00
Patrick Walton
ef56aa62fb libcore: Add print and println to the prelude 2013-03-28 19:16:06 -07:00
Tim Chevalier
499f96dca1 testsuite: Add test for #4333 2013-03-28 19:15:24 -07:00
bors
7a6cd2b21e auto merge of #5608 : erickt/rust/incoming, r=catamorphism
@nikomatsakis pointed out that `fn read_option<T>(&self, f: &fn() -> T) -> Option<T>` should have this syntax so it can work with custom option types: `fn read_option<T>(&self, f: &fn(bool) -> T) -> T`.

Also, this also includes some `#[inline(always)]` on the memory functions in `src/libcore/unstable/lang.rs` to reduce one level of indirection when allocating memory.
2013-03-28 19:06:48 -07:00
Tim Chevalier
bf519dad6b testsuite: Update and un-xfail test for #4335 2013-03-28 19:00:49 -07:00
Patrick Walton
36909c7575 libsyntax: Don't allow impl (Trait) for Type (with the parentheses). 2013-03-28 18:56:36 -07:00
bors
f81459211d auto merge of #5593 : luqmana/rust/inline-asm, r=catamorphism
Clean things up a bit. Also, allow selecting intel syntax in addition to the default AT&T dialect.
2013-03-28 18:18:46 -07:00
Graydon Hoare
1163f69c84 rustc: fix linkage of internal static nodes. 2013-03-28 18:15:35 -07:00
Luqman Aden
a3996c1626 Tidy. 2013-03-28 16:34:10 -07:00
bors
943d7adedc auto merge of #5603 : brson/rust/relnotes, r=brson 2013-03-28 16:33:47 -07:00
Daniel Micay
d4509f270b tutorial: only Owned types can have a Drop impl 2013-03-28 18:41:55 -04:00
Daniel Micay
467502216e tutorial: cleaner libc use statements 2013-03-28 17:53:29 -04:00
bors
5a97c484b1 auto merge of #5609 : Kimundi/rust/incoming, r=catamorphism 2013-03-28 14:42:49 -07:00
Marvin Löbel
eac2f3b93e Unbreak 'rustc --help' 2013-03-28 21:44:46 +01:00
bors
e16f94f6a1 auto merge of #5607 : brson/rust/shapshot3, r=brson 2013-03-28 13:36:53 -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
Erick Tryzelaar
ce9e5ecb6c core: Inline mallocing wrapper functions
As far as I can tell, this doesn't make rust compile any
faster, but it does at least remove one level of indirection
on malloc, which might help speed up some operations.
2013-03-28 13:11:24 -07:00
Brian Anderson
145f66fdf0 Register snapshots 2013-03-28 12:40:57 -07:00
bors
86024e39aa auto merge of #5602 : pcwalton/rust/common-fields, r=brson
r? @brson
2013-03-28 12:39:47 -07:00
bors
bb14ea922b auto merge of #5561 : fabiand/rust/wllvm32, r=catamorphism
Previously the build system only checked for llvm-3.1 - 2.8.
Now also 3.2 and 3.2svn is accepted.

Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
2013-03-28 11:48:54 -07:00
Brian Anderson
e2ba58cd50 0.6 will be in April 2013-03-28 11:39:44 -07:00
Patrick Walton
0a002d79b4 librustc: Remove common fields and nested enums from the language 2013-03-28 11:30:01 -07:00
John Clements
dcb8fa8f35 added defn of non_slash_or_star 2013-03-28 10:23:20 -07:00
John Clements
81d30ade61 fix another subtle bug in comment regex 2013-03-28 10:19:08 -07:00
bors
09dc38eda5 auto merge of #5596 : luqmana/rust/unit-struct, r=catamorphism
Fixes #5449.
2013-03-28 06:12:47 -07:00
bors
b1c0a6628b auto merge of #5595 : catamorphism/rust/demoding, r=catamorphism 2013-03-28 04:54:45 -07:00
bors
3dbf2c3c5c auto merge of #5592 : pcwalton/rust/xc-extern-statics, r=pcwalton 2013-03-28 03:51:51 -07:00
bors
e549b80e3c auto merge of #5587 : thestinger/rust/total, r=pcwalton
This is needed so that hash tables can require strict equality but not require types to be ordered. It's a subset of the functionality of `TotalOrd` so I made that inherit from `TotalEq`.
2013-03-28 02:36:49 -07:00
bors
d31053277a auto merge of #5586 : pcwalton/rust/expr-repeat-vstore, r=graydon
r? @graydon
2013-03-28 01:33:48 -07:00
bors
3ff8e01cee auto merge of #5584 : nikomatsakis/rust/issue-4846-carry-bound-lifetime-names-in-fn-types, r=nikomatsakis
Fix pretty-printer test failure by carrying the bound lifetime names through

the types.  Initially I thought it would be necessary to thread this data
through not only the AST but the types themselves, but then I remembered that
the pretty printer only cares about the AST.  Regardless, I have elected to
leave the changes to the types intact since they will eventually be needed.  I
left a few FIXMEs where it didn't seem worth finishing up since the code wasn't
crucial yet.
2013-03-28 00:15:55 -07:00
bors
d7ba0acbf5 auto merge of #5579 : dbaupp/rust/rustc-typo-limit, r=catamorphism
Impose a limit so that the typo suggester only shows reasonable
suggestions (i.e. don't suggest `args` when the error is `foobar`).

A tiny bit of progress on #2281.
2013-03-27 23:10:19 -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
4954d3e501 auto merge of #5575 : apasel422/rust/simplify-impls, r=thestinger 2013-03-27 20:27:52 -07:00
Andrew Paseltiner
f02ee42a86 derive Eq and Clone impls where applicable 2013-03-27 22:04:23 -04:00
bors
8896336770 auto merge of #5576 : yichoi/rust/pull-0327, r=brson
minor fix
configure: cleanup - parsing supported target triples
2013-03-27 18:54:53 -07:00
Luqman Aden
09255dbe2d libsyntax: error on struct Foo {}. 2013-03-27 18:17:58 -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
bors
8c1540985d auto merge of #5594 : brson/rust/freebsd, r=brson
This condition was added for cygwin support but appears to simply turn
off the normalization of CPU types
2013-03-27 16:36:56 -07:00
Luqman Aden
63df1e9085 librustc: remove already addressed XXX 2013-03-27 16:29:32 -07:00
Brian Anderson
32b8c0eaac Fix cpu type normalization in configure script
This condition was added for cygwin support but appears to simply turn
off the normalization of CPU types
2013-03-27 16:25:49 -07:00
Luqman Aden
778f84524b librustc: add default per arch clobbers for asm. 2013-03-27 15:41:58 -07:00
Luqman Aden
b867fe41de libsyntax: Allow selecting intel style asm. 2013-03-27 15:41:58 -07:00