Commit Graph

18486 Commits

Author SHA1 Message Date
bors
329d8e2622 auto merge of #6648 : alexcrichton/rust/issue-6633, r=graydon
Resolves #6633 and removes an unnecessary import in libcore
2013-05-21 01:04:16 -07:00
bors
5a3e320514 auto merge of #6647 : alexcrichton/rust/unnecessary-alloc, r=graydon
This adds a lint mode for detecting unnecessary allocations on the heap. This isn't super fancy, currently it only has two rules

1. For a function's arguments, if you allocate a `[~|@]str` literal, when the type of the argument is a `&str`, emit a warning.
2. For the same case, emit warnings for boxed vectors when slices are required.

After adding the lint, I rampaged through the libraries and removed all the unnecessary allocations I could find.
2013-05-20 23:55:20 -07:00
bors
d49a9dbc7f auto merge of #6646 : dotdash/rust/method_lookup, r=brson 2013-05-20 22:52:22 -07:00
bors
7abcc142e5 auto merge of #6626 : brson/rust/io-upstream, r=graydon
r?

Mostly refactoring, and adding some of the remaining types described in #4419.

The [`Local`](3b4ff41511/src/libcore/rt/local.rs (L17)) trait collects some common, often unsafe patterns around task-local and thread-local values. Making all these types safe is largely the aim of #6210.
2013-05-20 21:40:27 -07:00
Jyun-Yan You
d86a32bbb2 fix mips stack alignment 2013-05-21 11:58:30 +08:00
bors
adaae45c3e auto merge of #6604 : bjz/rust/ptr-to-option, r=brson 2013-05-20 20:31:26 -07:00
bors
6c0a4693c9 auto merge of #6649 : brson/rust/atomic-load-align, r=graydon 2013-05-20 19:25:29 -07:00
bors
32e30aaa00 auto merge of #6576 : nikomatsakis/rust/issue-5362-tuple-indices, r=graydon
r? @pcwalton
2013-05-20 18:04:39 -07:00
Brian Anderson
474d9983be rustllvm: Use target alignment for atomic load/store 2013-05-20 17:28:06 -07:00
bors
24609675eb auto merge of #6528 : brson/rust/docs, r=brson
Remove the uncommon term 'object tree' in favor of 'value'.
2013-05-20 16:55:36 -07:00
bors
6d4845668f auto merge of #6372 : brson/rust/intrinsics, r=catamorphism
...s
2013-05-20 15:49:45 -07:00
Brian Anderson
a246e8faf3 core::rt: Convert unsafe_borrow_io to a Local impl 2013-05-20 15:21:29 -07:00
Brian Anderson
2042696236 core::rt: Implement Local for Task 2013-05-20 15:21:29 -07:00
Brian Anderson
2f99fb8efa core::rt: Remove local_sched module 2013-05-20 15:21:29 -07:00
Brian Anderson
06f1a64bd6 core::rt: Convert users of local_sched to Local trait 2013-05-20 15:21:09 -07:00
Brian Anderson
18fab45aab core::rt: Make local_sched a wrapper around Local 2013-05-20 15:20:50 -07:00
Brian Anderson
71aa6b6631 core::rt: Move more TLS functionality into local_ptr 2013-05-20 15:20:50 -07:00
Brian Anderson
97c2fd1a96 core::rt: Move some TLS functions from local_sched to local_ptr 2013-05-20 15:20:50 -07:00
Brian Anderson
86ba457349 rt: Rename rust_initialize_global_state to rust_initialize_rt_tls_key 2013-05-20 15:20:50 -07:00
Brian Anderson
f59fcd5d5f core::rt: Store Task as a ~ pointer 2013-05-20 15:20:50 -07:00
Brian Anderson
43c6f32ece core::rt: Add Local trait 2013-05-20 15:20:50 -07:00
Brian Anderson
b0722c55f8 core:rt:: Rename LocalServices to Task 2013-05-20 15:20:49 -07:00
Brian Anderson
fa18a861fb core::rt: Queues MessageQueue and WorkQueue are cloneable 2013-05-20 15:20:49 -07:00
Brian Anderson
d2a1378ed8 core::rt: Add MessageQueue type
This is the queue used to send messages to Schedulers
2013-05-20 15:20:49 -07:00
Brian Anderson
ee06ed2bfd core::rt: Put a lock on the work queue 2013-05-20 15:20:49 -07:00
Brian Anderson
f03c9bd08c core::rt: Rename WorkQueue methods, remove extra push method 2013-05-20 15:20:49 -07:00
Brian Anderson
7ffd523354 core: Update clone docs 2013-05-20 15:19:35 -07:00
bors
54eafc009d auto merge of #6639 : osaut/rust/arc-clean, r=brson
* Add ARC::get method and implements the function from it.
* Add an example showing a simple use of ARC.

Update PR #6622 to avoid git noise.

I will remove the function get later.
2013-05-20 14:46:45 -07:00
Brian Anderson
7bd4217766 Replace all uses of rust-intrinsic ABI with calls to unstable::intrinsics 2013-05-20 14:41:56 -07:00
Alex Crichton
82fa0018c8 Remove all unnecessary allocations (as flagged by lint) 2013-05-20 16:10:40 -05:00
Alex Crichton
074799b4c5 Implement a lint mode to detect unnecessary allocations 2013-05-20 16:08:50 -05:00
bors
26babaafcd auto merge of #6559 : jbclements/rust/hygiene-fns-and-cleanup, r=jbclements
This includes new, tested, hygiene support functions. It also removes the interner_key! macro and replaces it with a function, which should be inline-able. It also contains some parser patch-ups and some docfixes.

On my machine, this patch passes all tests.
2013-05-20 12:04:47 -07:00
John Clements
b71a1ecea2 added and rewrote text for 'do' and 'for' loops 2013-05-20 11:49:21 -07:00
John Clements
999f692645 getting rid of interner_key! macro 2013-05-20 11:49:21 -07:00
John Clements
fc4f304ef9 hygiene infrastructure.
- added a hash table to memoize rename and mark operations.
- added rename, mark, and resolve fold fns
2013-05-20 11:49:21 -07:00
John Clements
b621820dc4 detect unused attrs in one more place, allow parsing to continue for all
changed a bunch of fatal()'s into err()'s, to allow parsing to proceed.
2013-05-20 11:49:20 -07:00
John Clements
05ab83eea8 parser comment 2013-05-20 11:49:20 -07:00
John Clements
975f264983 refactoring test functions 2013-05-20 11:49:20 -07:00
Alex Crichton
15f97acdc8 Correctly track the source of imports with the same name 2013-05-20 13:02:08 -05:00
Björn Steinbrink
19dc72809d Optimize the lookup of traits containing a given method
Currently, trait_info is a hashmap that allows a quick lookup of all
methods contained in a given trait, but we actually only use it to
lookup traits that contain a given method. Adjusting the map to support
the lookup we actually need gives a nice speed boost, reducing the time
required for the resolution step for librustc from ~2.6s to ~1.0s on my
box.
2013-05-20 19:50:30 +02:00
bors
f3b458b5c5 auto merge of #6644 : steveklabnik/rust/remove_unsafe_warning, r=bstrie
Since a snapshot was done last night, these are good to go.
2013-05-20 10:31:44 -07:00
Björn Steinbrink
b5be7d8a2c Avoid range checks in HashMap::each() 2013-05-20 18:42:31 +02:00
bors
84233c0b4b auto merge of #6643 : sanxiyn/rust/legacy-modes, r=bstrie 2013-05-20 09:34:44 -07:00
Steve Klabnik
eb3f47a40a Remove two warnings about unneccesary safe blocks.
Since a snapshot was done last night, these are good to go.
2013-05-20 09:17:19 -07:00
Seo Sanghyeon
17dfebf883 Remove legacy_modes 2013-05-21 00:41:56 +09:00
bors
f323b0c8ba auto merge of #6640 : dotdash/rust/hash_perf, r=bstrie
The function was a workaround for bootstrapping that isn't required
anymore and just degrades hashmap performance, as it doesn't get inlined
cross-crate and turns a no-op into a call.
2013-05-20 05:19:40 -07:00
Brendan Zabarauskas
eef03c39cf Update to stop unsolicited copying and mark methods as unsafe 2013-05-20 22:07:35 +10:00
Björn Steinbrink
09efd472a9 Remove outdated function transmute_for_stage0
The function was a workaround for bootstrapping that isn't required
anymore and just degrades hashmap performance, as it doesn't get inlined
cross-crate and turns a no-op into a call.
2013-05-20 12:10:55 +02:00
Olivier Saut
3f232bc4a0 Add ARC::get method and implements the function from it. Add an example showing a simple use of ARC. 2013-05-20 12:07:14 +02:00
Olivier Saut
a9c7d3f775 Typo corrected and updated copyright years 2013-05-20 12:06:37 +02:00