Commit Graph

1701 Commits

Author SHA1 Message Date
Keegan McAllister
d0f54a5cfb Warn about unused RUST_LOG specs 2013-07-25 13:24:32 -07:00
bors
7f96eb58d2 auto merge of #7980 : graydon/rust/misc-benchmarks, r=catamorphism
Some machinery for enabling #[bench] benchmarks in std and some examples showing how to write them.
2013-07-23 22:46:39 -07:00
Graydon Hoare
bc2b78ca2c rt: Fix child-iteration bug in crate map. 2013-07-22 16:56:10 -07:00
Brian Anderson
407bffb33e std: Remove at_exit API. Unused 2013-07-22 14:17:09 -07:00
Brian Anderson
23b7ee2bda std: Remove unstable::global. Unused 2013-07-22 14:16:52 -07:00
Brian Anderson
4beda4e582 std::rt: Stop using unstable::global in change_dir_locked 2013-07-22 14:16:52 -07:00
Brian Anderson
f8c4d99df6 std: Remove weak_task API. Unused 2013-07-22 14:16:52 -07:00
Daniel Micay
ed67cdb73c new snapshot 2013-07-22 01:09:48 -04:00
bors
91ebfbb959 auto merge of #7859 : kmcallister/rust/rt-diag-messages, r=pcwalton
I added these while tracking down heap corruption in Servo.
2013-07-18 22:40:38 -07:00
bors
b70c045f38 auto merge of #7856 : brson/rust/no-thread-per-core, r=pcwalton
This doesn't make sense under the new scheduler.
2013-07-18 19:10:41 -07:00
Keegan McAllister
2d82d9364c rt: Print alloc backtraces for bad release_alloc with RUSTRT_TRACK_ALLOCATIONS
Probably the env var should be renamed from DETAILED_LEAKS but I'm leaving
aside that breaking change for now.
2013-07-17 14:04:03 -07:00
Keegan McAllister
dfa5595628 rt: Diagnose bad alloc index in release_alloc with RUSTRT_TRACK_ALLOCATIONS 2013-07-17 14:03:59 -07:00
Daniel Micay
e118555ce6 remove headers from unique vectors 2013-07-15 23:57:27 -04:00
bors
d582eeb1ec auto merge of #7734 : alexcrichton/rust/issue-3395, r=sanxiyn
Also ends up fixing one case in libstd. 

Closes #3395
2013-07-12 21:40:36 -07:00
bors
4e1292ad6b auto merge of #7728 : bcully/rust/largestack64, r=cmr
Just to get the ball rolling, this patch sets stacks to 4 MB on >32-bit architectures.
2013-07-12 09:40:36 -07:00
bors
07183ea6e7 auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton
cc #6004 and #3273

This is a rewrite of TLS to get towards not requiring `@` when using task local storage. Most of the rewrite is straightforward, although there are two caveats:

1. Changing `local_set` to not require `@` is blocked on #7673
2. The code in `local_pop` is some of the most unsafe code I've written. A second set of eyes should definitely scrutinize it...

The public-facing interface currently hasn't changed, although it will have to change because `local_data::get` cannot return `Option<T>`, nor can it return `Option<&T>` (the lifetime isn't known). This will have to be changed to be given a closure which yield `&T` (or as an Option). I didn't do this part of the api rewrite in this pull request as I figured that it could wait until when `@` is fully removed.

This also doesn't deal with the issue of using something other than functions as keys, but I'm looking into using static slices (as mentioned in the issues).
2013-07-11 19:52:37 -07:00
Alex Crichton
2cd9d7bc88 Expand ctypes warnings to warn about *int/*uint
Also ends up fixing one case in libstd
2013-07-11 19:45:25 -07:00
Brendan Cully
7910c72de5 Enable large stacks on 64-bit architectures 2013-07-11 15:40:16 -07:00
bors
41dcec2fe1 auto merge of #7265 : brson/rust/io-upstream, r=brson
r? @graydon, @nikomatsakis, @pcwalton, or @catamorphism

Sorry this is so huge, but it's been accumulating for about a month. There's lots of stuff here, mostly oriented toward enabling multithreaded scheduling and improving compatibility between the old and new runtimes. Adds task pinning so that we can create the 'platform thread' in servo.

[Here](e1555f9b56/src/libstd/rt/mod.rs (L201)) is the current runtime setup code.

About half of this has already been reviewed.
2013-07-09 18:28:46 -07:00
Brian Anderson
1dbcc8b188 std: Remove ThreadPerCore spawn mode. Unused 2013-07-09 17:45:06 -07:00
Alex Crichton
a89af1fa4c Use purely an owned vector for storing TLS data 2013-07-09 17:31:01 -07:00
Brian Anderson
2c1315719d rt: Make the old rand builtins work with newsched 2013-07-09 15:05:43 -07:00
Brian Anderson
07e52eb7fc std: Make os::set_exit_status work with newsched 2013-07-09 13:29:05 -07:00
Brian Anderson
fae3336769 Merge remote-tracking branch 'mozilla/master'
Conflicts:
	src/libextra/test.rs
	src/libstd/rt/global_heap.rs
	src/libstd/unstable/lang.rs
	src/libstd/vec.rs
2013-07-08 16:29:54 -07:00
Brian Anderson
b227583dad Merge remote-tracking branch 'anasazi/io'
Conflicts:
	src/libstd/rt/test.rs
2013-07-08 15:53:11 -07:00
Brian Anderson
4282539523 std::rt: Add a hack to allocate different test port ranges to different bots 2013-07-08 14:41:07 -07:00
Eric Reed
cf23292010 Merge remote-tracking branch 'upstream/io' into io
Conflicts:
	src/libstd/rt/uvio.rs
2013-07-08 13:03:18 -07:00
Niko Matsakis
59083d2c6a Address nits by @catamorphism 2013-07-08 13:55:10 -04:00
Niko Matsakis
af453a33cc This assert does not necessarily hold; sometimes we temporarily increase ref-count 2013-07-08 13:55:10 -04:00
Luqman Aden
5007fb2d4d Add x64 windows to platform.mk and mingw64 header fixes. 2013-07-03 23:33:59 -04:00
Brian Anderson
1098d6980b Merge remote-tracking branch 'mozilla/master'
Conflicts:
	src/libextra/test.rs
	src/libstd/at_vec.rs
	src/libstd/cleanup.rs
	src/libstd/rt/comm.rs
	src/libstd/rt/global_heap.rs
	src/libstd/task/spawn.rs
	src/libstd/unstable/lang.rs
	src/libstd/vec.rs
	src/rt/rustrt.def.in
	src/test/run-pass/extern-pub.rs
2013-07-03 14:49:13 -07:00
Eric Reed
6a1a7819c9 Merge remote-tracking branch 'upstream/io' into io
Conflicts:
	src/libstd/rt/test.rs
	src/rt/rustrt.def.in
2013-07-02 16:55:56 -07:00
Eric Reed
e6c57793be IPv6 support for UDP and TCP. 2013-07-02 16:40:57 -07:00
Brian Anderson
0e07c8d249 rt: Add global_args_lock functions to rustrt.def.in 2013-07-01 16:38:17 -07:00
Daniel Micay
b731d96b4f vec: implement exchange vector reserve in Rust 2013-06-30 22:30:37 -04:00
Daniel Micay
b883d6a54c simplify the exchange allocator
* stop using an atomic counter, this has a significant cost and
  valgrind will already catch these leaks
* remove the extra layer of function calls
* remove the assert of non-null in free, freeing null is well defined
  but throwing a failure from free will not be
* stop initializing the `prev`/`next` pointers
* abort on out-of-memory, failing won't necessarily work
2013-06-30 03:45:36 -04:00
bors
0bad3e62b4 auto merge of #7395 : yichoi/rust/android_dummy, r=brson
add android dummy functions which does not exist in boinic.

after #7257, some mman related functions are needed for android.
2013-06-27 03:07:31 -07:00
Brian Anderson
8918461fc4 rt: Release big stacks immediately after use to avoid holding on to them through yields
This avoids the following pathological scenario that makes threadring OOM:

1) task calls C using fast_ffi, borrowing a big stack from the scheduler.
2) task returns from C and places the big stack on the task-local stack segment list
3) task calls further Rust functions that require growing the stack, and for this reuses the big stack
4) task yields, failing to return the big stack to the scheduler.
5) repeat 500+ times and OOM

Conflicts:
	src/rt/rust_task.cpp
2013-06-26 15:18:36 -07:00
Young-il Choi
6a77273104 rt: add android dummy functions for mman related 2013-06-26 10:25:12 +09:00
Eric Reed
f202713b73 satisfy the formatting check 2013-06-25 14:40:36 -07:00
Eric Reed
4870dce3eb Merge remote-tracking branch 'upstream/io' into io
Conflicts:
	src/rt/rustrt.def.in
2013-06-25 11:45:44 -07:00
bors
7aee5da08d auto merge of #7254 : Blei/rust/intrinsic-overhaul, r=cmr
This sets the `get_tydesc()` return type correctly and removes the intrinsic module. See #3730, #3475.

Update: this now also removes the unused shape fields in tydescs.
2013-06-25 04:38:06 -07:00
Brian Anderson
5e7c5d6c3d std: Make box annihilator work with newsched 2013-06-24 17:07:03 -07:00
Brian Anderson
aa9210d25a std: Rewrite vec_reserve_shared_actual in Rust 2013-06-24 17:07:01 -07:00
Alex Crichton
8fdc8f392c Support foreign 'static mut' variables as well 2013-06-23 18:00:32 -07:00
Philipp Brüschweiler
e2f1049bd5 Remove unused TyDesc parameter from the glue functions
To remove the environment pointer, support for function pointers without
an environment argument is needed (i.e. a fixed version of #6661).
2013-06-23 13:02:00 +02:00
Philipp Brüschweiler
976c0b3dfb Remove rust_call_tydesc_glue
Towards #4812. Also includes some minor cleanups.
2013-06-23 12:49:16 +02:00
Philipp Brüschweiler
8bf0033345 Remove unused shape fields from typedescs 2013-06-23 12:49:16 +02:00
Brian Anderson
95eb01957b std: Make console log off/on controls work with newsched 2013-06-21 16:52:07 -07:00
Brian Anderson
1b7c99655f std::rt: Support os::args 2013-06-21 14:42:15 -07:00