Commit Graph

1585 Commits

Author SHA1 Message Date
bors
94236fc078 auto merge of #11653 : alexcrichton/rust/issue-11647, r=luqmana
Closes #11647
2014-01-20 16:56:25 -08:00
Alex Crichton
caa321ab7d Don't emit landing pads with -Z no-landing-pads
Closes #11647
2014-01-20 13:29:49 -08:00
Huon Wilson
68517a2cca syntax: convert ast_map to use a SmallIntMap.
NodeIds are sequential integers starting at zero, so we can achieve some
memory savings by just storing the items all in a line in a vector.

The occupancy for typical crates seems to be 75-80%, so we're already
more efficient than a HashMap (maximum occupancy 75%), not even counting
the extra book-keeping that HashMap does.
2014-01-19 12:56:26 +11:00
Palmer Cox
3fd8c8b330 Rename iterators for consistency
Rename existing iterators to get rid of the Iterator suffix and to
give them names that better describe the things being iterated over.
2014-01-18 01:15:15 -05:00
Niko Matsakis
483ae32189 Update years on more license headers 2014-01-17 10:18:39 -05:00
Niko Matsakis
5e7657fafb Distinguish zero-size types from those that we return as void 2014-01-16 19:10:17 -05:00
Niko Matsakis
76c90283ce Fix uninit() intrinsic when used with empty types 2014-01-16 18:47:42 -05:00
Niko Matsakis
4b52d899ff Further refine treatment of voidish arrays 2014-01-16 16:29:52 -05:00
Niko Matsakis
14b0abfd82 Consider all zero-sized data structures to be voidish, bypassing some "quirky" parts of LLVM (see e.g. LLVM bug 9900) but also generating better code 2014-01-16 15:11:22 -05:00
Niko Matsakis
84f33fb134 Cleanup trait callees 2014-01-15 20:31:20 -05:00
Niko Matsakis
6badef49fe Remove FIXMEs and add license 2014-01-15 19:44:38 -05:00
Niko Matsakis
e71571a3cd Use as_slice() method on option 2014-01-15 19:35:38 -05:00
Niko Matsakis
419ac4a1b8 Issue #3511 - Rationalize temporary lifetimes.
Major changes:

- Define temporary scopes in a syntax-based way that basically defaults
  to the innermost statement or conditional block, except for in
  a `let` initializer, where we default to the innermost block. Rules
  are documented in the code, but not in the manual (yet).
  See new test run-pass/cleanup-value-scopes.rs for examples.
- Refactors Datum to better define cleanup roles.
- Refactor cleanup scopes to not be tied to basic blocks, permitting
  us to have a very large number of scopes (one per AST node).
- Introduce nascent documentation in trans/doc.rs covering datums and
  cleanup in a more comprehensive way.
2014-01-15 18:34:38 -05:00
bors
29070c3bee auto merge of #11535 : thestinger/rust/header, r=alexcrichton
Unique pointers and vectors currently contain a reference counting
header when containing a managed pointer.

This `{ ref_count, type_desc, prev, next }` header is not necessary and
not a sensible foundation for tracing. It adds needless complexity to
library code and is responsible for breakage in places where the branch
 has been left out.

The `borrow_offset` field can now be removed from `TyDesc` along with
the associated handling in the compiler.

Closes #9510
Closes #11533
2014-01-14 23:01:51 -08:00
Daniel Micay
6809b172e0 remove borrow_offset as ~ is now free of headers 2014-01-14 22:01:44 -05:00
Daniel Micay
0e885e42b1 remove reference counting headers from ~
Unique pointers and vectors currently contain a reference counting
header when containing a managed pointer.

This `{ ref_count, type_desc, prev, next }` header is not necessary and
not a sensible foundation for tracing. It adds needless complexity to
library code and is responsible for breakage in places where the branch
has been left out.

The `borrow_offset` field can now be removed from `TyDesc` along with
the associated handling in the compiler.

Closes #9510
Closes #11533
2014-01-14 22:01:40 -05:00
bors
faa0b5aa61 auto merge of #11538 : eddyb/rust/llvm-attributes, r=alexcrichton 2014-01-14 13:51:34 -08:00
bors
9075025c7b auto merge of #11485 : eddyb/rust/sweep-old-rust, r=nikomatsakis 2014-01-14 12:32:11 -08:00
Eduard Burtescu
8e2027a082 Add noalias and noreturn attributes in more cases. 2014-01-14 19:17:38 +02:00
Luqman Aden
d42e75883b librustc: Don't translate an expr twice when implicitly coercing to a trait object. Fixes #11197. 2014-01-13 20:52:44 -05:00
Patrick Walton
119c6141f5 librustc: Remove @ pointer patterns from the language 2014-01-13 14:45:21 -08:00
Eduard Burtescu
509fc92a9b Removed remnants of @mut and ~mut from comments and the type system. 2014-01-12 02:26:04 +02:00
Eduard Burtescu
08ac616d37 Use the right type for self in methods and remove obsoleted items.
Fixes #7411, #10615.
2014-01-11 16:40:23 +02:00
Eduard Burtescu
7a305f9e83 Removed free_glue from tydesc (the code is still generated, but inlined in drop_glue). 2014-01-11 16:40:23 +02:00
Eduard Burtescu
5ad2a7825b Removed obsolete 'e' prefix on ty_evec and ty_estr. 2014-01-11 16:40:23 +02:00
Brendan Zabarauskas
4fc0452ace Remove re-exports of std::io::stdio::{print, println} in the prelude.
The `print!` and `println!` macros are now the preferred method of printing, and so there is no reason to export the `stdio` functions in the prelude. The functions have also been replaced by their macro counterparts in the tutorial and other documentation so that newcomers don't get confused about what they should be using.
2014-01-11 10:46:00 +11:00
Jed Davis
5487f15bbf Fix ICE on const of nullable enum with fields in null case.
That is, if you have an enum type that is subject to the nullable
pointer optimization, but the null variant has a nonzero number of
fields, and you declare a static whose value is of that variant, then
that used to be an ICE but this change fixes it.
2014-01-09 22:24:31 -08:00
bors
ff3d5d4603 auto merge of #11055 : pcwalton/rust/placement-box, r=pcwalton
r? @nikomatsakis
2014-01-09 16:11:18 -08:00
Patrick Walton
e12711540a librustc: Implement placement box for GC and unique pointers. 2014-01-09 16:05:34 -08:00
Eduard Burtescu
6b221768cf libsyntax: Renamed types, traits and enum variants to CamelCase. 2014-01-09 22:25:28 +02:00
bors
c34fc5e33b auto merge of #11387 : pcwalton/rust/de-at-block, r=alexcrichton
r? @brson
2014-01-09 02:26:26 -08:00
Patrick Walton
5e637a890c librustc: Move block contexts into per-function arenas, and
stack-allocate function contexts.
2014-01-07 17:00:47 -08:00
Raphael Catolino
1812a7b540 Remove unnecessary substitution of type params when generating
vtable methods before translating the ref to the method itself.
2014-01-08 00:56:16 +01:00
Eduard Burtescu
3119d18e55 Disowned the Visitor. 2014-01-06 14:00:46 +02:00
Brian Anderson
3b1862a82f Don't allow newtype structs to be dereferenced. #6246 2014-01-04 14:44:12 -08:00
Brian Anderson
18cef3fad4 Don't allow single-variant enums to be dereferenced. #6246
I'm not sure if this was even intentional at this point.
2014-01-04 13:17:31 -08:00
Patrick Walton
82a09b9a04 librustc: Remove @mut support from the parser 2014-01-03 14:02:01 -08:00
Patrick Walton
88281290ff librustc: Remove @mut support from the typechecker and borrow checker 2014-01-03 14:02:01 -08:00
Patrick Walton
449ebeea08 librustc: De-@mut the AST map 2014-01-03 14:01:58 -08:00
bors
3249de8c4f auto merge of #11274 : michaelwoerister/rust/issue11083, r=pcwalton
This pull request fixes #11083. The problem was that recursive type definitions were not properly handled for enum types, leading to problems with LLVM's metadata "uniquing". This bug has already been fixed for struct types some time ago (#9658) but I seem to have forgotten about enums back then. I added the offending code from issue #11083 as a test case.
2014-01-02 09:02:01 -08:00
Michael Woerister
6d20876c3f debuginfo: Fix issue #11083 and some minor clean up. 2014-01-02 15:20:43 +01:00
Lindsey Kuper
99dbb1d51f Fix comment that's been wrong since ancient times (thanks, @jvns). 2014-01-01 23:02:02 -05:00
klutzy
9cdad685a3 syntax::codemap: Add static DUMMY_SP
It replaces `dummy_sp()`.
2014-01-01 19:51:35 +09:00
bors
e61937a6bf auto merge of #11187 : alexcrichton/rust/once, r=brson
Rationale can be found in the first commit, but this is basically the same thing as `pthread_once`
2013-12-31 20:41:56 -08:00
Alex Crichton
c22fed9424 Convert relevant static mutexes to Once 2013-12-31 20:15:03 -08:00
Peter Zotov
f98f83a15d Implement volatile_load and volatile_store intrinsics. 2013-12-31 02:54:25 +04:00
Luis de Bethencourt
f872c47278 Rename PkgId to CrateId 2013-12-29 15:25:32 -05:00
Luqman Aden
1265a03139 librustc: Implement coercion for traits. 2013-12-27 03:26:46 -05:00
Patrick Walton
cc0584731a librustc: De-@mut the def map.
This is the last `@mut` in `librustc` that does not depend on libsyntax.
2013-12-26 15:54:37 -08:00
Patrick Walton
d7b152701e librustc: De-@mut building_library in the session 2013-12-26 15:54:36 -08:00