Brian Anderson
1f94364aef
core::rt: Clean up some more hacks
2013-04-15 18:56:39 -07:00
Brian Anderson
ed74ac169e
core::rt: Narrow down the unsafety of the thread-local scheduler
...
Only when borrowing the I/O implementation do we need unsafety
2013-04-15 18:54:02 -07:00
Brian Anderson
68583a25a0
core::rt: Restructure context switches to take ownership of the Scheduler
...
In order to do a context switch you have to give up ownership of the scheduler,
effectively passing it to the next execution context. This could help avoid
some situations here tasks retain unsafe pointers to schedulers between context
switches, across which they may have changed threads.
There are still a number of uses of unsafe scheduler pointers.
2013-04-15 17:45:34 -07:00
Brian Anderson
ebefe07792
core::rt: Make Scheduler::unsafe_local return a fabricated region pointer
...
Instead of taking a closure. It's unsafe either way. Rename it to unsafe_local_borrow.
2013-04-15 16:00:15 -07:00
Brian Anderson
473b4d19ad
core::rt: Rename Scheduler::local to Scheduler::unsafe_local
2013-04-15 15:32:43 -07:00
Brian Anderson
3b8a354c21
core::rt: A little bit of cleanup to thread-local scheduler
2013-04-15 15:25:29 -07:00
Brian Anderson
1f8ebb6a8e
core::rt: Move thread-local scheduler to its own module
2013-04-15 15:18:49 -07:00
Brian Anderson
4f1dd1fd21
core::rt: Fix two incorrect uses of the thread-local scheduler
...
These would not be threadsafe
2013-04-15 15:13:36 -07:00
Brian Anderson
93757d8185
core::rt: Clean up the thread-local scheduler code
...
Remove the ThreadLocalScheduler type in favor of functions.
Move everything into the sched::local module.
2013-04-14 21:53:37 -07:00
Brian Anderson
a2e5827866
core::rt: All context switches are followed by a cleanup action
2013-04-14 20:49:22 -07:00
Brian Anderson
5f52aecb1e
core::rt: Schedulers only need a single cleanup_job at a time
...
Each context switch has up to one cleanup job and it is always
executed immediately after the context switch.
2013-04-14 19:24:43 -07:00
Brian Anderson
6b084bad25
core::rt: Insert calls to run_cleanup_tasks after all context switches
2013-04-14 18:56:22 -07:00
Brian Anderson
1cb78e736f
core::rt: Rename block_running_task_and_then to deschedul_...
2013-04-14 16:12:30 -07:00
Brian Anderson
8e966216c7
core::rt: Restructure task_from_last_cleanup_job to borrow correctly
...
We need a number of mutable references to contexts so name it
`get_contexts` and return a tuple of all of them.
2013-04-14 16:05:16 -07:00
Jyun-Yan You
fdf48a7b52
rt: improve mips backend
2013-04-04 18:53:58 +08:00
Graydon Hoare
0647a0fc28
remove stray mode on callback, seems to not change anything
2013-04-01 14:18:07 -07:00
Luqman Aden
eadd358b2a
Correct type signature for start lang item.
2013-03-30 19:59:21 -07:00
Niko Matsakis
6965fe4bce
Add AbiSet and integrate it into the AST.
...
I believe this patch incorporates all expected syntax changes from extern
function reform (#3678 ). You can now write things like:
extern "<abi>" fn foo(s: S) -> T { ... }
extern "<abi>" mod { ... }
extern "<abi>" fn(S) -> T
The ABI for foreign functions is taken from this syntax (rather than from an
annotation). We support the full ABI specification I described on the mailing
list. The correct ABI is chosen based on the target architecture.
Calls by pointer to C functions are not yet supported, and the Rust type of
crust fns is still *u8.
2013-03-29 18:36:20 -07:00
Patrick Walton
1e91595520
librustc: Remove fail_unless!
2013-03-29 16:39:08 -07:00
bors
5da9e12778
auto merge of #5570 : alexcrichton/rust/fix-unused-imports, r=sanxiyn
...
Before it wouldn't warn about unused imports in the list if something in the list was used. These commits fix that case, add a test, and remove all unused imports in lists of imports throughout the compiler.
2013-03-29 05:57:44 -07:00
Young-il Choi
e6f2d7a48c
libcore: language change minor fix for ARM & MIPS
2013-03-29 15:46:13 +09:00
Alex Crichton
be57d745d2
Removing unused imports
2013-03-28 23:56:46 -04:00
Patrick Walton
e5dda811a9
librustc: Allow expr_repeat to be used with any vstore
2013-03-27 13:53:03 -07:00
Patrick Walton
8b56a8380b
librustc: Modify all code to use new lifetime binder syntax
2013-03-26 21:30:17 -07:00
Patrick Walton
142dbd65da
librustc: Remove all uses of the old [T * N]
fixed-length vector syntax
2013-03-26 21:29:34 -07:00
Alex Crichton
fa7772893a
Remove unused imports throughout
2013-03-26 19:20:02 -04:00
Brian Anderson
e5f8026eba
core: Make sure every module at least has a one-line description
2013-03-26 11:48:22 -07:00
Brian Anderson
30d4124a37
Merge remote-tracking branch 'brson/rt'
...
Conflicts:
src/libcore/rt/context.rs
src/libcore/rt/sched.rs
src/libcore/rt/thread.rs
src/libcore/rt/uv.rs
2013-03-25 12:28:54 -07:00
Patrick Walton
85c9fc6f8f
librustc: Remove the const
declaration form everywhere
2013-03-22 22:24:35 -07:00
Patrick Walton
fa70709e07
libsyntax: Stop parsing pure
and static
2013-03-22 22:24:33 -07:00
Patrick Walton
be9bddd463
libcore: Remove pure
from libcore. rs=depure
2013-03-22 10:29:17 -07:00
Patrick Walton
4634f7edae
librustc: Remove all uses of static
from functions. rs=destatic
2013-03-22 10:27:39 -07:00
Marvin Löbel
9d9a209e9a
back-renamed slice_DBG_BRWD, slice_V_DBG_BRWD -> slice, slice_DBG_UNIQ -> slice_unique
2013-03-21 14:05:57 +01:00
Marvin Löbel
a7d296f24c
renamed str::view -> slice_DBG_BRWD
...
renamed str::slice -> slice_DBG_UNIQ
changed vec slice method -> to_owned()
renamed vec view method -> slice_V_DBG_BRWD
2013-03-21 01:50:32 +01:00
Patrick Walton
ca3bc644f4
libcore: Make a couple of constructors public. rs=testfixing
2013-03-19 20:37:53 -07:00
Patrick Walton
2e7ec80bcc
librustc: Enforce privacy for static methods.
...
This starts moving a bunch of privacy checks into the privacy
checking phase and out of resolve.
2013-03-19 13:40:48 -07:00
Patrick Walton
352c070365
librustc: Convert all uses of old lifetime notation to new lifetime notation. rs=delifetiming
2013-03-18 17:21:14 -07:00
Brian Anderson
5af5766512
core: Initialize global state lazily in the Scheduler ctor
...
I don't want any global one-time initalization functions because
that will make embedding harder.
2013-03-18 17:00:35 -07:00
Brian Anderson
044703435b
Add a way to run the test suite with the new scheduler
...
TESTARGS=--newrt make check-stage1-rpass
Conflicts:
src/rt/rustrt.def.in
2013-03-18 17:00:35 -07:00
Brian Anderson
a882554a78
core: Refactor uv bindings
...
I can already see these are going to get massive. Putting them into multiple
files.
2013-03-18 16:59:37 -07:00
Brian Anderson
7ef54c7ecd
core: Begin uv file system bindings
2013-03-18 16:59:37 -07:00
Brian Anderson
57e85b5f94
core: Add rt::io and start sketching the API
2013-03-18 16:59:37 -07:00
Brian Anderson
9a075f264a
core: Rename rt::io to rt::rtio
...
This is an internal interface. I want to use rt::io for public interfaces.
2013-03-18 16:59:37 -07:00
Brian Anderson
42cba98509
core: Convert some multiline statements to single-line
2013-03-18 16:59:37 -07:00
Brian Anderson
54bb7226e1
core: Simplify uvll bindings and strip out currently-unused bits
...
No more mapping uv structs to Rust structs
2013-03-18 16:59:37 -07:00
Brian Anderson
723d2247c1
core: Don't use printf in rtdebug!
...
The bots were showing a segfault that I can't reproduce. Assuming it's
varargs related so let's not use printf
2013-03-18 16:59:11 -07:00
Brian Anderson
d30c758974
Give core::rt and std::net their own uvll bindings
...
I intend to do some big refactoring and don't want to deal w/ std just now
2013-03-18 16:59:11 -07:00
Brian Anderson
e8ddef93da
core: Cleanup rt::context
2013-03-18 16:59:10 -07:00
Brian Anderson
63d18658c1
rt: Add RUST_DEBUG_MEM to rust_env to avoid races
2013-03-16 14:25:44 -07:00
ILyoan
1a6a37e01a
Fix an android compilation fail
2013-03-15 15:35:39 +09:00