Brian Anderson
44c88ddf42
std::rt: Remove an unnecessary allocation from the main sched loop
2013-08-24 15:46:04 -07:00
Brian Anderson
8fc1d9db21
std: Convert the runtime TLS key to a Rust global to avoid FFI
2013-08-24 15:46:03 -07:00
Brian Anderson
a37bdde3f9
std::rt: Remove metrics for perf
...
These aren't used for anything at the moment and cause some TLS hits
on some perf-critical code paths. Will need to put better thought into
it in the future.
2013-08-24 15:46:03 -07:00
Brian Anderson
0fff8b6549
std::rt: Reduce MessageQueue contention
...
It's not a huge win but it does reduce the amount of time spent
contesting the message queue when the schedulers are under load
2013-08-24 15:46:03 -07:00
Brian Anderson
5d04234868
std::rt: Reduce SleeperList contention
...
This makes the lock much less contended. In the test I'm running the
number of times it's contended goes from ~100000 down to ~1000.
2013-08-24 15:46:03 -07:00
Brian Anderson
5bcb639836
std::rt: Remove extra boxes from MessageQueue and SleeperList
2013-08-24 15:46:03 -07:00
Brian Anderson
761f5fba69
std::rt: Optimize TLS use in change_task_context
2013-08-24 15:46:01 -07:00
Brian Anderson
5402786f94
std: More TLS micro-optimization
2013-08-24 15:45:21 -07:00
bors
db5615ddd5
auto merge of #8725 : bblum/rust/docs, r=graydon
...
This documents how to use trait bounds in a (hopefully) user-friendly way, in the containers tutorial, and also documents the task watching implementation for runtime developers in kill.rs.
r anybody
2013-08-24 04:41:24 -07:00
Brian Anderson
468d023fe9
std: Convert some assert!s to rtassert!
2013-08-23 21:19:59 -07:00
Brian Anderson
30a7a5b8fa
Define cfg(rtopt) when optimizing. Turn off runtime sanity checks
...
Naturally, and sadly, turning off sanity checks in the runtime is
a noticable performance win. The particular test I'm running goes from
~1.5 s to ~1.3s.
Sanity checks are turned *on* when not optimizing, or when cfg
includes `rtdebug` or `rtassert`.
2013-08-23 21:19:59 -07:00
Brian Anderson
4c75d36d0e
std: Reduce TLS access
2013-08-23 21:19:59 -07:00
Brian Anderson
b72c43739d
rt: Remove old precise GC code
2013-08-23 18:38:59 -07:00
Brian Anderson
4541c6cfe3
rt: Remove exit_status helpers
2013-08-23 18:38:59 -07:00
Brian Anderson
e3419f9c45
rt: Memory regions are never synchronized now
2013-08-23 18:38:59 -07:00
Ben Blum
d468b7c0bf
Document the task watching / exit code propagation implementation.
2013-08-23 19:55:03 -04:00
Steven Fackler
d6eee6a7d2
Rename {Reader,Writer}ByteConversions methods
...
The method names in std::rt::io::extensions::WriterByteConversions are
the same as those in std::io::WriterUtils and a resolve error causes
rustc to fail after trying to find an impl of io::Writer instead of
trying to look for rt::io::Writer as well.
Same goes for ReaderByteConversions.
2013-08-23 10:53:29 -07:00
bors
4edf3758d1
auto merge of #8691 : anasazi/rust/fix-timer-interface, r=brson
...
Resolves #8687 .
2013-08-23 05:16:21 -07:00
bors
5e5e2c71e4
auto merge of #8677 : bblum/rust/scratch, r=alexcrichton
...
r anybody; there isn't anything complicated here
2013-08-23 00:16:28 -07:00
bors
9e1e152091
auto merge of #8596 : vadimcn/rust/master, r=alexcrichton
...
This resolves issue #908 .
Notable changes:
- On Windows, LLVM integrated assembler emits bad stack unwind tables when segmented stacks are enabled. However, unwind info directives in the assembly output are correct, so we generate assembly first and then run it through an external assembler, just like it is already done for Android builds.
- Linker is invoked via "g++" command instead of "gcc": g++ passes the appropriate magic parameters to the linker, which ensure correct registration of stack unwind tables in dynamic libraries.
2013-08-22 21:06:25 -07:00
Vadim Chugunov
12ecdb6381
Enabled unit tests in std and extra.
2013-08-22 20:02:20 -07:00
Jeff Olson
b7cbd8a8fd
fix 32bit mac build error
2013-08-22 17:26:02 -07:00
Jeff Olson
744c46225e
make check appeasement
2013-08-22 16:33:59 -07:00
Jeff Olson
8d997fba1a
std: put FileMode/Access->whence-mask in uvio, open/unlink as fns in file::
2013-08-22 16:31:58 -07:00
Jeff Olson
6311856bf4
std: slight refactor on UvFilestream seek behavior, pre-seek-refactor
2013-08-22 16:31:58 -07:00
Jeff Olson
94b84a851c
std: all of the calls in rt::uv::file take a &Loop
2013-08-22 16:31:58 -07:00
Jeff Olson
f01e265357
std: moved static file actions (open,unlink) to FsRequest
2013-08-22 16:31:58 -07:00
Jeff Olson
f85d3b3ec1
std: reform fn sigs of FileDescriptor methods (better result signalling)
2013-08-22 16:31:58 -07:00
Jeff Olson
429b5f88f9
std: rename tmp file paths to go into ./tmp folder in builddir
2013-08-22 16:31:58 -07:00
Jeff Olson
13eb259a09
change FileDescriptor instance methods to use &mut self
2013-08-22 16:31:58 -07:00
Jeff Olson
ece709f172
std: more seek tests
2013-08-22 16:31:58 -07:00
Jeff Olson
320ccbeb53
std: naive stdio print test in uvio
2013-08-22 16:31:58 -07:00
Jeff Olson
10ff5355b3
std: UvFileStream implements HomingIO + .home_for_io() wrapper usage
2013-08-22 16:31:58 -07:00
Jeff Olson
c3a819b01c
std: writing to stdout only works when using -1 offset..
2013-08-22 16:31:58 -07:00
Jeff Olson
0e9964189d
std: lint appeasement for unused param in condition handler
2013-08-22 16:31:58 -07:00
Jeff Olson
05c8cc70c9
std: rework file io.. support [p]read,[p]write, impl seek/tell + more tests
2013-08-22 16:31:57 -07:00
Jeff Olson
48d6761028
std: adding #[fixed_stack_segment] as needed in new uvll calls
2013-08-22 16:31:57 -07:00
Jeff Olson
4015b4a9b4
std: add FileStream::unlink + more tests
2013-08-22 16:31:57 -07:00
Jeff Olson
f6d897d7d9
std: rt::io::file::FileStream fleshed out.. needs more work.. see extended
...
- change all uses of Path in fn args to &P
- FileStream.read assumptions were wrong (libuv file io is non-positional)
- the above will mean that we "own" Seek impl info .. should probably
push it in UvFileDescriptor..
- needs more tests
2013-08-22 16:31:57 -07:00
Jeff Olson
47f0e91689
std: CRUD file io bindings in uvio, fs_open()/unlink() in IoFactory + test
2013-08-22 16:31:57 -07:00
Jeff Olson
f60bd75f4d
std: remove fcntl const bindings + making valgrind clean w/ no owned vecs
2013-08-22 16:31:57 -07:00
Jeff Olson
e0a80ee332
std: support async/threadpool & sync paths in uv_fs_* calls + add sync test
2013-08-22 16:31:57 -07:00
Jeff Olson
c49c2921b0
std: add read and unlink to low-level FileDescriptor + end-to-end CRUD test
2013-08-22 16:31:57 -07:00
Jeff Olson
dabbac1d6c
std: working tests for low-level libuv open, write and close operations
2013-08-22 16:31:57 -07:00
Jeff Olson
a901b16690
std: bootstrapping libuv-based fileio in newrt... open & close
...
the test "touch"es a new file
2013-08-22 16:31:57 -07:00
bors
4e3dbf959a
auto merge of #8666 : nikomatsakis/rust/issue-3678-extern-fn-types, r=pcwalton
...
Change the type of crust fns like this one:
extern fn foo() { ... }
from `*u8` to `extern "C" fn()`.
r? @pcwalton (or whomever)
2013-08-22 07:01:27 -07:00
Tim Chevalier
5da4b4d928
std/extra: changing XXX to FIXME; cleanup
...
* Get rid of by-value-self workarounds; it works now
* Remove type annotations, they're not needed anymore
2013-08-21 17:17:41 -07:00
Ben Blum
598072afa4
Don't fail in port.try_recv() the second time. Close #7800 .
2013-08-21 18:57:22 -04:00
Niko Matsakis
ffb6404c5a
Adjust callbacks in the libraries for the new type of extern fns
...
cc #3678
2013-08-21 10:50:42 -04:00
bors
4c75e92612
auto merge of #8600 : sfackler/rust/http, r=brson
...
It's an empty stub and as one of the comments notes, doesn't belong in
libstd.
2013-08-21 05:01:43 -07:00