Young-il Choi
987ad9c878
rt: rust_android_dummy.cpp fix for make tidy
2013-05-05 14:00:53 +09:00
Niko Matsakis
bf2d3c71e3
improve DEBUG_BORROW printouts
2013-05-04 14:25:15 -04:00
Young-il Choi
7ac6571163
rt: glob, globfree dummy function for android
2013-05-04 16:00:11 +09:00
Daniel Micay
86efd97a10
add gitattributes and fix whitespace issues
2013-05-03 20:01:42 -04:00
Niko Matsakis
34024353e8
Change borrow debugging so it is disabled by -O
2013-05-03 05:42:00 -04:00
Brian Anderson
6c478c7de8
Merge remote-tracking branch 'brson/io' into incoming
...
Conflicts:
mk/rt.mk
src/libcore/run.rs
2013-05-02 20:51:56 -07:00
gareth
544ac620ba
Convert most of rust_run_program.cpp to rust (issue #2674 ).
2013-05-02 19:26:52 +01:00
James Miller
1bd318421e
Add error if RED_ZONE_SIZE doesn't get defined
2013-05-02 14:04:43 +12:00
Niko Matsakis
4af2d90af5
add an option to debug borrows (RUST_DEBUG_BORROW) so you can
...
find out where the offending borrow occurred. This ... still needs
some work.
2013-05-01 10:30:54 -04:00
Brian Anderson
4a4646fd54
Merge remote-tracking branch 'brson/io'
...
Conflicts:
src/libcore/task/local_data_priv.rs
2013-04-30 17:01:27 -07:00
bors
9f03d45c56
auto merge of #5646 : Aatch/rust/unwind-fix, r=brson
...
This fixes issue #5641
2013-04-28 15:36:35 -07:00
bors
88dd53a754
auto merge of #6081 : brson/rust/out-of-stack, r=thestinger
...
People hit the recursion depth limit too often, it's not possible
to unwind reliably from out-of-stack.
Issues #3555 , #3695
2013-04-27 16:24:34 -07:00
Brian Anderson
149047e55d
rt: Set the stack depth limit to 1GB. Abort on error.
...
People hit the recursion depth limit too often, it's not possible
to unwind reliably from out-of-stack.
Issues #3555 , #3695
2013-04-26 15:39:54 -07:00
Huon Wilson
1fc8a2f2a4
rt: use the [u]int[nn]_t types in the RNG.
...
This means that `ub4`s are always 4 bytes, rather than being 8 bytes on
x64. (Suggested but not implemented by upstream: "Porting it to a 64-bit
machine [...] may just need an adjustment of the definition of ub4")
2013-04-26 22:13:24 +10:00
Brian Anderson
abc49fdfae
rt: abort doesn't take an argument
2013-04-25 15:10:19 -07:00
Huon Wilson
106fd12423
rt: pull upstream ISAAC code for consistency between 32/64 bit platforms
...
The "unsigned 4 byte" `ub4`s are actually 8 bytes on 64-bit platforms
which mean that some bits > 2**32 were retained in calculations, these
would then "reappear" after a shift and so the stream of random numbers
would differ on 32 bit vs 64 bit platforms.
2013-04-25 17:59:42 +10:00
Niko Matsakis
c20c685c34
Remove FIXME #2699---I believe the calculation is correct. Fixes #2699 .
2013-04-24 20:51:50 -04:00
James Miller
286e571a63
Remove rust_unwind.h
...
Adds the required definitions in the correct place.
2013-04-24 18:27:56 +12:00
Brian Anderson
e944c7dade
Merge remote-tracking branch 'brson/io'
...
This also reverts some changes to TLS that were leaking memory.
Conflicts:
src/libcore/rt/uv/net.rs
src/libcore/task/local_data_priv.rs
src/libcore/unstable/lang.rs
2013-04-23 19:19:32 -07:00
gareth
91aeecf7e3
Fix issue #5976 - HANDLE leaks and undefined/bad behavour
...
on windows.
2013-04-23 21:23:15 +01:00
Alex Crichton
391de1c690
Remove a stray new operator in rust_task.h
2013-04-23 00:55:13 -04:00
Brian Anderson
42c0f88232
core::rt: Add unwinding to newsched tasks
2013-04-22 17:15:31 -07:00
Brian Anderson
d7f5e437a2
core::rt: Add the local heap to newsched tasks
...
Reusing the existing boxed_region implementation from the runtime
2013-04-21 19:03:54 -07:00
Brian Anderson
2fe118b26f
rt: Don't make memory_region depend on rust_env
...
I am going to use memory_region and boxed_region as the local heap
in the new scheduler, for now at least, and I don't have a rust_env
available.
2013-04-21 17:42:45 -07:00
bors
3830040a89
auto merge of #5887 : jdm/rust/stackbounds, r=brson
...
This is needed to allow GC to work in SpiderMonkey.
2013-04-21 17:33:52 -07:00
Josh Matthews
5cc6a0bf32
rt: Make the C stack segment accessible to runtime users.
2013-04-21 22:41:43 +02:00
Brian Anderson
d24a3a4b01
core::rt: Use generated port numbers in tests
2013-04-20 01:16:06 -07:00
Brian Anderson
1f97e6d47f
rt: Add rust_dbg_next_port for generating test port numbers
2013-04-20 00:24:44 -07:00
bors
8b3c09a103
auto merge of #5962 : pcwalton/rust/shootout, r=pcwalton
...
r? @brson
2013-04-19 19:24:52 -07:00
Brian Anderson
b96765179e
core: Add rt::context for figuring out what runtime services are available
...
Conflicts:
src/libcore/rt/sched/mod.rs
2013-04-19 12:05:18 -07:00
Patrick Walton
9902e798d5
rt: Remove dump_stacks
2013-04-19 12:00:08 -07:00
Patrick Walton
c995a62d44
librustc: WIP patch for using the return value.
2013-04-19 12:00:08 -07:00
Patrick Walton
ca8e99fd78
rt: Fix scalability problem with big stacks on 32 bit
2013-04-19 11:53:34 -07:00
Patrick Walton
f903ae9e72
librustc: Implement fast-ffi and use it in various places
2013-04-19 11:53:31 -07:00
bors
2a86485277
auto merge of #5418 : luqmana/rust/stack-float, r=brson
...
Like I commented in #2043 , I can't reproduce the weirdness from #1388 on either mac or linux (x84_64) and pushing to try gives all green.
That's 128 less bytes to have to keep in the stack for every call to __morestack.
2013-04-18 13:45:55 -07:00
Marti Raudsepp
5dda8ab129
sketch: Make rust sketch barf output prettier
2013-04-18 12:46:01 +03:00
Brian Anderson
a5ddc00982
rustc: Use an out pointer to return structs in x86 C ABI. #5347
...
This Adds a bunch of tests for passing and returning structs
of various sizes to C. It fixes the struct return rules on unix,
and on windows for structs of size > 8 bytes. Struct passing
on unix for structs under a certain size appears to still be broken.
2013-04-17 15:49:19 -07:00
Brian Anderson
7cd681684f
rt: Move test functions to rust_test_helpers.cpp
2013-04-15 13:39:15 -07:00
Jyun-Yan You
685c4d0b76
add rust_dbg_extern_identity_TwoDoubles to prevent check-fast failure
2013-04-14 13:15:46 +08:00
ILyoan
03116f251d
add unwind information on morestack
2013-04-10 18:49:51 -07:00
ILyoan
3d0d144283
rust morestack assembly for arm
...
Conflicts:
src/rt/arch/arm/morestack.S
2013-04-10 18:49:50 -07:00
Niko Matsakis
2a44a1bd97
Fix various warnings, NOTEs, etc
2013-04-05 05:36:03 -04:00
Jyun-Yan You
4f1d8cb6fc
fix mac build and comment on stack size check
2013-04-04 18:53:58 +08:00
Jyun-Yan You
fdf48a7b52
rt: improve mips backend
2013-04-04 18:53:58 +08:00
Daniel Micay
26fc76acb6
rt/arch/arm: fix syntax used for noexec stack
2013-04-01 00:31:22 -04:00
Daniel Micay
c0be7df5de
mark the assembly object stacks as non-executable
...
Closes #5643
This also removes the need to pass noexecstack to gcc, but that wasn't
actually working anymore.
2013-03-31 18:23:05 -04:00
bors
ef282dbe2a
auto merge of #5409 : brson/rust/rt, r=brson
...
r?
There are a lot of commits here, but not all that much substance. Mostly just refactoring.
I started sketching out the beginnings of a very simple I/O API in `core::rt::io` that represents I/O streams as a single `Stream` trait instead of `Reader` / `Writer` pairs. This seems to be the more common pattern (at least this is how the .NET BCL does it) and it seems to me that separate readers and writers would make duplex streams very awkward. Regardless, I don't intend to go very far down the I/O API design road without some mailing list discussion.
I've also started on the uv bindings for file I/O but haven't gotten very far.
Also hooked up the new scheduler to `rust_start` and the compiletest driver. 70% of run-pass test cases already pass, but I wouldn't read too much into that.
I also split the direct, low-level uv bindings in two so that the scheduler can have its own set, leaving `std::net` on its own.
2013-03-25 13:01:11 -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
bors
6d4499ce4d
auto merge of #5424 : luqmana/rust/inline-rt, r=brson
...
As per #2521 . Inlining seems to improve performance slightly:
Inlined Not Inlined
x86: 13.5482 14.4112
x86_64: 17.4712 18.0696
(Average of 5 runs timed with `time`)
```Rust
fn foo() -> int {
int::from_str(~"28098").unwrap()
}
fn main() {
for 1000000.times {
foo();
foo();
foo();
foo();
foo();
}
}
```
All run on:
Linux 3.2.0-0.bpo.4-amd64 #1 SMP Debian 3.2.35-2~bpo60+1 x86_64 GNU/Linux
The MIPS and ARM bits I didn't inline since I'm not as familiar with them and I also can't test them. All green on try.
2013-03-25 12:04:11 -07:00
Zack Corr
280b8a243e
rt: Increase C_STACK_SIZE to 2MB to get JIT/rusti working again (dlopen segfaults)
2013-03-21 15:15:47 +10:00
ILyoan
c1cacc3667
Rewrite arm/ccall.s
2013-03-19 17:23:41 +09: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
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
Luqman Aden
a692777224
rt: Inline get_sp_limit/set_sp_limit/get_sp for x86.
2013-03-18 00:07:53 -07:00
Luqman Aden
d1778767cc
rt: Inline get_sp_limit/set_sp_limit/get_sp for x86_64.
2013-03-17 21:40:59 -07:00
Luqman Aden
f7a14e0a5a
rt: don't save and restore xmm/regs in __morestack.
2013-03-17 00:29:12 -07:00
Brian Anderson
63d18658c1
rt: Add RUST_DEBUG_MEM to rust_env to avoid races
2013-03-16 14:25:44 -07:00
bors
2293b075b8
auto merge of #5364 : xenocons/rust/patch-1, r=z0w0
2013-03-14 14:07:01 -07:00
xenocons
d8094f8602
updated from L to ull for easier mingw32 builds.
2013-03-14 09:06:33 +11:00
Niko Matsakis
efc7f82bc4
Revamp foreign code not to consider the Rust modes. This requires
...
adjusting a few foreign functions that were declared with by-ref
mode. This also allows us to remove by-val mode in the near future.
With copy mode, though, we have to be careful because Rust will implicitly pass
somethings by pointer but this may not be the C ABI rules. For example, rust
will pass a struct Foo as a Foo*. So I added some code into the adapters to
fix this (though the C ABI rules may put the pointer back, oh well).
This patch also includes a lint mode for the use of by-ref mode
in foreign functions as the semantics of this have changed.
2013-03-13 16:59:37 -04:00
Brian Anderson
0ad3a110be
Work around linkage bug cross-compiling from x86_64-apple-darwin to i686-apple-darwin
...
The correct opendir/readdir to use appear to be the 64-bit versions called
opendir$INODE64, etc. but for some reason I can't get them to link properly
on i686. Putting them in librustrt and making gcc figure it out works.
This mystery will have to wait for another day.
2013-03-12 21:01:40 -07:00
Brian Anderson
676e0290ed
core: Add rt mod and add the new scheduler code
2013-03-11 19:44:29 -07:00
Jeff Olson
a69a2acfba
rt/core: port os::list_dir to rust ref #4812
2013-03-11 15:38:55 -07:00
Jeff Olson
53db6c7e2a
core: rt/core: impl os::env() in rust ref #4812
2013-03-11 15:38:55 -07:00
Jeff Olson
4bc26ce575
rt/core: impl os::getcwd() in rust ref #4812
2013-03-11 15:38:55 -07:00
Brian Anderson
81e370285f
Merge remote-tracking branch 'brson/cross7'
...
Conflicts:
configure
mk/rt.mk
2013-03-06 23:54:35 -08:00
Young-il Choi
a35dc95969
mk: --android-cross-path to rustc
2013-03-05 13:12:23 +09:00
Jyun-Yan You
314605f948
rt: fix some bugs for MIPS target
2013-03-03 20:02:06 -08:00
Jyun-Yan You
0ecd9e03ff
rt: MIPS32 support
2013-03-03 19:27:01 -08:00
Patrick Walton
ce3b17badd
librustdoc: Remove fn@
, fn~
, and fn&
from compiletest, fuzzer, rustdoc, and rt. rs=defun
2013-03-02 18:47:47 -08:00
bors
1d34a55d88
auto merge of #5162 : brson/rust/fixmes, r=brson
2013-03-01 01:54:38 -08:00
Brian Anderson
b01d2babaf
rt: Comment out an assert in rust_kernel. #4711
2013-02-28 14:21:39 -08:00
Brian Anderson
4a04a188e3
Convert NOTEs to FIXMEs
2013-02-27 18:44:35 -08:00
Brian Anderson
1b1017087b
rt: Make some runtime calls work outside of task context
2013-02-27 12:39:11 -08:00
Young-il Choi
26a5dc593c
mk: rewrite make files
2013-02-27 14:53:35 +09:00
Graydon Hoare
0309af458c
Put unique allocs in managed heap when they might contain managed boxes.
2013-02-21 23:01:17 -08:00
Graydon Hoare
8eaf08357c
rt: remove export of symbol removed in last commit, r=burningtree
2013-02-19 07:18:46 -08:00
Graydon Hoare
968ab03026
rt: fix memory-unsafe random seed logic, r=valgrindclean
2013-02-19 07:06:36 -08:00
Daniel Micay
59bb9c2f1a
rm unused reserve_vec from rt (done in libcore)
2013-02-16 02:56:00 -05:00
Daniel Micay
f34dd565d9
rm unused hash table from the runtime
2013-02-15 18:22:34 -05:00
Chris Peterson
9a76d718c7
don't deplete RNG entropy when there is only one runnable task
2013-02-14 22:35:40 -08:00
Chris Peterson
9a78dc93db
reseed rust_rng after generating 32KB
2013-02-14 22:33:12 -08:00
Chris Peterson
665e900ede
encapsulate isaac RNG in rust_rng struct
2013-02-14 22:31:08 -08:00
Chris Peterson
f4320b6195
move isaac RNG utility functions to new rust_rng.cpp file
2013-02-14 22:30:27 -08:00
Chris Peterson
c531506385
rt: rand.rs expects rust_next() to return uint32_t, not size_t
2013-02-14 22:29:21 -08:00
bors
20fd0c53ed
auto merge of #4938 : thestinger/rust/no_zero, r=brson
...
I removed the unused wrappers methods named `calloc` because they relied on the malloc wrapper having a `bool zero = true` default parameter (which resulted in some accidental zeroing). Perhaps wrapping the actual calloc function would be useful, but I don't know of an existing use case that could use it so I just removed these.
This gives an ~1% performance improvement for TreeMap, which does a lot of small allocations. Vectors use `realloc` which didn't zero before these changes so there's no measurable change in performance.
2013-02-14 18:27:54 -08:00
Daniel Micay
1a41b484bf
rm the unused calloc wrapper from memory_region
...
it doesn't actually call calloc, so it's fairly pointless
2013-02-14 18:28:04 -05:00
Daniel Micay
2e0614750c
get rid of unused exchange_alloc calloc method
...
this isn't actually calloc - it calls the malloc wrapper which no
longer zeroes
2013-02-14 18:24:52 -05:00
Daniel Micay
7103ca95ac
rm unused zero param in C++ exchange allocator
2013-02-14 16:04:30 -05:00
Luqman Aden
2c198561dd
rt: Fix alignment in debug_opaque
2013-02-13 15:41:38 -05:00
Luqman Aden
c22d0af14c
rt: take into account alignment for debug_opaque. Closes #2667
2013-02-13 15:41:38 -05:00
Luqman Aden
d67e144f68
rt: get rid of rust_fn and replace with fn_env_pair plus a little cleanup.
2013-02-13 15:41:38 -05:00
bors
6016214101
auto merge of #4900 : luqmana/rust/core_os_errors, r=graydon
...
Rewrote the last pull request (#4859 ) to not require on llvm for core.
Also fixes #2269 .
2013-02-12 21:27:22 -08:00
bors
bc2d147847
auto merge of #4858 : z0w0/rust/rm_weak_task_count, r=graydon
2013-02-12 14:36:33 -08:00
Luqman Aden
2180fe2552
rt: remove last_os_error from rustrt.def.in
2013-02-12 00:22:58 -05:00
Luqman Aden
70185fdcc2
rt: remove last_os_error and adjust tests.
2013-02-11 23:49:49 -05:00
Jeff Olson
dfcdb6eb72
rt/std: update of libuv API glue for libuv submodule update
2013-02-10 11:51:05 -08:00
Zack Corr
ebd20b7944
Rename dec/inc_weak_task_count to inc/dec_live_count and remove register_task/unregister_task. Closes #4768
2013-02-09 19:19:31 +10:00
Mark Vian
e2e474767e
rt: remove unused 'rust_compare_and_swap_ptr'. Closes #4836
2013-02-08 18:19:36 -06:00
ILyoan
e7c6735e0d
Fixed #1531
2013-02-08 14:11:00 +09:00
Brian Anderson
e43c5bdc6b
Rewrite the exchange allocator to work without an active scheduler. #4457
2013-02-06 14:27:36 -08:00
Brian Anderson
e91040c704
Make foreign calls work outside of tasks. #4451
2013-02-06 14:27:34 -08:00
Brian Anderson
a8c8bfc7b5
rt: Add rust_try_get_current_task
2013-02-06 11:56:32 -08:00
Brian Anderson
8ebdb1a11b
rt: Remove some unused upcalls
2013-02-01 21:58:33 -08:00
Brian Anderson
a50d1fdbda
rt: Remove get_frame_glue_fns. Unused
2013-02-01 21:22:49 -08:00
Brian Anderson
02fbd5a164
rt: Remove circular_buffer
2013-02-01 21:22:49 -08:00
Brian Anderson
4f6516969e
rt: Remove ports
2013-02-01 21:22:49 -08:00
ILyoan
8ec36d779b
fix #2673 : avoid visiting the same crate twice
2013-01-29 21:03:05 +09:00
Brian Anderson
1ef83945c1
Merge remote-tracking branch 'brson/nocommupstream'
...
Conflicts:
src/libcore/private.rs
src/libcore/task/mod.rs
src/libcore/task/spawn.rs
src/libstd/net_tcp.rs
src/libstd/uv_global_loop.rs
src/libstd/uv_iotask.rs
2013-01-25 18:06:30 -08:00
Brian Anderson
cc9ab2c033
Remove old comm-based weak task interface
2013-01-23 17:35:34 -08:00
Brian Anderson
b9608fe423
std: Convert uv_global_loop to use pipes
2013-01-23 17:35:34 -08:00
Brian Anderson
fb9299346a
core: Convert getenv/setenv to use a mutex
...
This much simpler implementation uses a global mutex
and eliminates the kernel environment channel.
2013-01-23 17:35:34 -08:00
Brian Anderson
8852279a9e
core: Add new weak task API
2013-01-23 17:35:31 -08:00
Brian Anderson
6b6acde972
Add a license check to tidy. #4018
2013-01-17 23:28:42 -08:00
Brian Anderson
db1abbec4c
core: Add private global data interface. #3915
2013-01-17 19:24:50 -08:00
Brian Anderson
ac435af73a
Add at_exit function #4450
2013-01-15 18:00:19 -08:00
Brian Anderson
090b247056
Spawn new tasks onto the primary scheduler by default. #3760
2013-01-15 18:00:19 -08:00
Brian Anderson
3d54187890
Win32 build fix
2013-01-13 16:43:39 -08:00
ILyoan
4fb4be8f17
More android support
...
Conflicts:
Makefile.in
cmakeFiles/rustllvm.cmake
2013-01-13 16:43:39 -08:00
kyeongwoon
987f824f23
Support ARM and Android
...
Conflicts:
src/libcore/os.rs
src/librustc/back/link.rs
src/librustc/driver/driver.rs
src/librustc/metadata/loader.rs
src/librustc/middle/trans/base.rs
2013-01-13 16:43:39 -08:00
Brian Anderson
1b1700f44b
Add core::private::run_in_bare_thread
...
This begins executing Rust code in a fresh context with no runtime environment
2013-01-11 14:53:28 -08:00
Brian Anderson
6a2e495d67
rt: Remove unused command line parsing
2013-01-09 15:26:15 -08:00
Brian Anderson
b43e639bf6
Remove unused bigint from runtime
2013-01-08 13:53:45 -08:00
Patrick Walton
6c18c75f2d
rt: Stop zeroing out all allocations. Unobservable perf win. Closes #2682 . rs=negligible-perf-win
2013-01-05 18:04:29 -08:00
Chris Peterson
e08f304b81
rt: Remove dead code from schedule_task()
2012-12-30 23:12:24 -08:00
Brian Anderson
7f8e302a6a
Whitespace
2012-12-15 23:03:45 -08:00
Brian Anderson
20ea37b336
rt: Do some casting to avoid warnings
2012-12-15 22:38:20 -08:00
Brian Anderson
91067e9df4
Long lines
2012-12-15 22:38:20 -08:00
Jesse Jones
81805e0568
Check for oom in a few more places
2012-12-15 22:38:20 -08:00
Jesse Jones
0402360abb
Abort instead of throwing on oom
2012-12-15 22:38:20 -08:00
Jesse Jones
e8d2d55900
Made a bunch more classes non-copyable
2012-12-15 22:38:20 -08:00
Jesse Jones
eca23da98b
Instead of returning a bool (which everyone ignored) pop asserts
2012-12-15 22:38:20 -08:00
Jesse Jones
6bab226fc5
Check for realloc failure and bad subscripts
2012-12-15 22:38:20 -08:00
Jesse Jones
cf1c3d2da0
polymorphic indexed_list fixes:
...
1) indexed_list no longer has virtual methods. It's not actually subclassed
and there is very rarely good reason to subclass collection classes.
2) Added a virtual dtor to indexed_list_object which is intended to be
subclassed. This allows derived dtors to be called if the object is
deleted with a indexed_list_object*.
2012-12-15 22:38:20 -08:00
Jesse Jones
fc740a7297
Improvements to array_list, hash_map, and indexed_list:
...
* Disabled copying.
* Added const where appropiate.
2012-12-15 22:38:19 -08:00
Graydon Hoare
12c32e944d
Add license boilerplate to more files.
2012-12-10 17:32:58 -08:00
Tim Chevalier
0027874218
Remove bogus FIXME, closes #2889
2012-12-06 16:14:54 -08:00
Graydon Hoare
00c856c0b1
Update license, add license boilerplate to most files. Remainder will follow.
2012-12-03 17:12:14 -08:00
Brian Anderson
aee0b767bc
Add a FIXME about the problems closing /dev/urandom
2012-11-26 12:54:29 -08:00
Jesse Jones
065d642b15
Log errors from close instead of ignoring them.
...
They shouldn't matter but there have been errors on Macs so logging
them may help root cause the issue.
2012-11-26 12:54:29 -08:00
Jesse Jones
8adacc06aa
Some isaac_ssed fixes:
...
1) Check for eof (shouldn't happen, but if it does we'll fall into an
infinite loop).
2) Use fatal instead of assert (will work if NDEBUG is ever defined
and provides better diagnostics).
3) Ignore errors from close since they shouldn't matter.
Closes #3679 .
2012-11-26 12:54:29 -08:00
Brian Anderson
187c6c90a1
rt: Don't print backtraces unless the ::rt::backtrace log level is greater than log_err
2012-11-15 15:14:30 -08:00
Graydon Hoare
59a034a63f
rt: bump log levels up by one, fix tautological-compare error (and permit turning off logging entirely).
2012-11-15 12:03:54 -08:00
Brian Anderson
53ec6c3f9b
rt: Remove shape code
2012-11-05 15:22:35 -08:00
Brian Anderson
1b0c6665d9
Merge remote-tracking branch 'brson/repl'
...
Conflicts:
mk/install.mk
src/rt/rustrt.def.in
2012-11-04 13:42:39 -08:00
Brian Anderson
799eb105b9
Use a linenoise with win32 support
2012-11-04 13:34:14 -08:00
Zack Corr
ea996556b9
rusti: Remove linenoise module, add to rt, remove core::rl
2012-10-30 11:08:36 +10:00
Brian Anderson
759e1c165f
rt: Remove unused string upcalls harder
2012-10-23 13:48:09 -07:00
Brian Anderson
8d932160d9
rt: Remove box annihilator
2012-10-23 12:14:46 -07:00
Brian Anderson
a469a3524d
rt: Remove unused string upcalls
2012-10-23 12:14:45 -07:00
Luqman Aden
48582b360c
Replace rust_atomic_increment/decrement and rust_compare_and_swap_ptr with intrinsics.
2012-10-21 22:43:28 -04:00
Brian Anderson
55e40a1674
Add new uv functions to rustrt.def.in
2012-10-20 17:41:34 -07:00
Luqman Aden
0e2437bf5d
uv: implement a way to get client's ip/port.
2012-10-20 17:17:10 -07:00
Brian Anderson
2d5cac960d
rt: Remove check_claims from the export list
2012-10-04 15:41:14 -07:00
Brian Anderson
738cd00f1d
rt: Remove CHECK_CLAIMS
2012-10-04 14:10:45 -07:00
Graydon Hoare
365f174838
Attempt to fix os::args errors on various platforms.
2012-10-03 15:02:22 -07:00
Patrick Walton
9284179311
libstd: Switch off legacy modes in both core and std.
2012-10-02 12:20:06 -07:00
Brian Anderson
6bb0399df2
rt: Check the results of pthread calls
...
The stage0 compiler is not working on an x86_64 debian wheezy instance and it
looks like maye pthread_create is failing
2012-09-29 16:29:47 -07:00
Patrick Walton
f41c53667e
rustc: Fix calls to the logging function when the must_cast flag is true; stop using shape code for logging
2012-09-25 14:56:17 -07:00
Patrick Walton
ee7fa194fa
Revert "rustc: Stop using shape code for logging" due to ICEs
...
This reverts commit ac822a52be
.
2012-09-25 12:17:05 -07:00
Patrick Walton
f813f519a5
rt: Remove the cycle collector
2012-09-25 12:13:20 -07:00
Patrick Walton
ac822a52be
rustc: Stop using shape code for logging
2012-09-25 11:44:23 -07:00
Patrick Walton
dbc00ced3a
rt: Add a logging function for strings (only).
...
This will be the shape-free replacement for upcall_log_type.
2012-09-24 20:26:06 -07:00
Patrick Walton
00e3492511
rt: Call the Rust box annihilator; stop calling the cycle collector
...
This reverts commit 991cbfe42c
.
2012-09-24 20:25:56 -07:00
Patrick Walton
991cbfe42c
Revert "rt: Call the Rust box annihilator; stop calling the cycle collector" due to crashes
...
This reverts commit bb0ad11252
.
2012-09-24 14:14:03 -07:00
Patrick Walton
bb0ad11252
rt: Call the Rust box annihilator; stop calling the cycle collector
2012-09-24 13:57:48 -07:00
Patrick Walton
3c2b6110dd
rustc: Shove the address of the box annihilator into the crate map
2012-09-21 11:42:57 -07:00
Philipp Brüschweiler
d3e0a06578
V2: now with more locks!
2012-09-19 14:01:53 -07:00
Philipp Brüschweiler
68e755b1c2
core: Allocate threads on demand, not on scheduler startup
...
API change: rust_kernel::create_scheduler() or
rust_scheduler::rust_scheduler() respecitevly now take ownership of the
launch factory argument, it is needed to create new threads on demand.
Also renames rustrt::sched_threads() to rustrt::rust_sched_threads() for
consistency. Added rustrt::rust_max_sched_threads() to return the
maximal number of scheduled threads of the current scheduler.
Fixes #3493 .
2012-09-19 14:01:53 -07:00
Philipp Brüschweiler
62b51d9152
rt: Implement ThreadPerCore scheduling mode
...
Fixes #3465 .
2012-09-13 20:48:33 +02:00
Elliott Slaughter
244b95490b
gc: Refactoring.
2012-09-07 09:21:22 -07:00
Elliott Slaughter
8d17308eca
rt: Add rust_gc_metadata to rustrt.def.in.
2012-09-07 09:21:22 -07:00
Elliott Slaughter
5637126449
rt: Fix GC metadata for 64-bit systems.
2012-09-07 09:21:22 -07:00
Elliott Slaughter
961bd48724
gc: Fix for GC missing stack frames across segment boundaries.
2012-09-07 09:21:22 -07:00
Elliott Slaughter
3f0d207b32
gc: Add stack walker for new garbage collector.
...
Safe points are exported in a per-module list via the crate map. A C
runtime call walks the crate map at startup and aggregates the list of
safe points for the program.
Currently the GC doesn't actually deallocate memory on malloc and
free. Adding the GC at this stage is primarily of testing value.
The GC does attempt to clean up exchange heap and stack-allocated
resource on failure.
A result of this patch is that the user now needs to be careful about
what code they write in destructors, because the GC and/or failure
cleanup may need to call destructors. Specifically, calls to malloc
are considered unsafe and may result in infinite loops or segfaults.
2012-09-07 09:21:21 -07:00
Niko Matsakis
5e36a99794
Refactor trans to replace lvalue and friends with Datum.
...
Also:
- report illegal move/ref combos whether or not ref comes first
- commented out fix for #3387 , too restrictive and causes an ICE
2012-09-06 06:11:12 -07:00
Patrick Walton
d155410674
rt: Make the boxed region come earlier in the rust_task structure.
...
This is so that GC can find it more easily.
2012-09-05 20:08:00 -07:00
Brian Anderson
97bb812238
Add rust_annihilate_box to rustrt.def.in
2012-08-31 16:19:02 -07:00
Brian Anderson
a0de6b6d5f
Merge remote-tracking branch 'erickt/incoming'
2012-08-31 16:14:18 -07:00
Elliott Slaughter
f022f566a4
rt: Fix box annihilator to deallocate exchange heap boxes properly.
2012-08-31 15:10:52 -07:00
Elliott Slaughter
f8323ac615
rt: Add interface to box annihilator.
2012-08-31 15:10:52 -07:00
Erick Tryzelaar
628b946186
libcore: rewrite str::reserve in pure rust.
2012-08-30 20:40:52 -07:00
Erick Tryzelaar
7bb65848a1
libcore: Rewrite str::unsafe::push_byte in pure rust.
2012-08-30 20:40:52 -07:00
Erick Tryzelaar
0e1a4a4da2
libcore: rewrite vec::unsafe::from_buf in pure rust
2012-08-30 20:40:52 -07:00
Jed Davis
b043349833
Fix MZ_FORCEINLINE define to work with GCC 4.7.1.
...
Using just __always_inline__ without inline results in several instances
of "error: always_inline function might not be inlinable".
2012-08-29 01:18:00 -07:00
Graydon Hoare
b769e29680
Compress metadata section. Seems a minor speed win, major space win.
2012-08-28 14:50:39 -07:00
Ben Blum
01866fae4e
Document task shutdown protocol and justify its concurrency safety. Close #2696 . Close bblum's internship.
2012-08-24 19:59:03 -04:00
Ben Blum
5ba7434cb1
Avoid lifecycle_lock traffic in call_on_rust_stack. ( close #3270 )
2012-08-24 18:28:26 -04:00
Michael Sullivan
dc107898b2
Fix logging code to not sign extend chars being printed in hex.
2012-08-23 12:48:08 -07:00
Michael Sullivan
5f32e18011
Make std::arena run destructors. Closes #2831 .
2012-08-21 17:03:00 -07:00
Ben Blum
47cca22d54
Bypass lifecycle_lock in inhibit_kill/allow_kill for 3% to 5% speedup. Close #3213 .
2012-08-21 18:03:41 -04:00
Ben Blum
a076c287de
Fix issue-506.rs by adding a void-returning stub in the runtime ( close #2957 )
2012-08-16 21:07:55 -04:00
Ben Blum
bdbad614ac
Remove rust_cond_lock and sys::condition (rename to little_lock)
2012-08-07 18:18:48 -04:00
Eric Holk
9f287c211e
Refcount tasks in packets to avoid races.
...
Revert "Once again, revert "Use pipes in compiletest""
Fixes #3098
2012-08-06 09:10:19 -07:00
Eric Holk
86947e47ad
More documentation on pipes, and moving assert in runtime.
2012-08-06 09:07:40 -07:00
Ben Blum
4174de8bb9
rt: expose rust_task refcounts to rustland
2012-08-03 21:00:23 -04:00
Eric Holk
01ca0d1f68
Be more defensive in pipes ( #3098 )
2012-08-03 12:04:18 -07:00
Eric Holk
ce6d6511c7
Set thread name on Mac to make gdb thread info more useful.
2012-08-02 19:26:33 -07:00
Ben Blum
7cb3f3e86a
Linked failure: enable unidirectional propagate test; replace FIXMEs with comments (tag #1868 ).
2012-08-01 23:08:06 -04:00
Lindsey Kuper
439afaa329
Change remaining "iface" occurrences to "trait"; deprecate "iface"
2012-07-31 11:52:16 -07:00
Ben Blum
60d682b577
Fix asserts & short-read bug in isaac_seed ( #2870 )
2012-07-25 18:03:00 -04:00
Ben Blum
729c37f3cc
(minor) remove config_notify from rustrt.def.in
2012-07-25 13:29:50 -04:00
Ben Blum
8d43724087
minor rt cleanup
2012-07-25 13:24:00 -04:00
Ben Blum
c68f2d9aab
Remove notification channels in runtime ( closes #1078 )
2012-07-25 13:22:43 -04:00
Ben Blum
695ab09899
Change yield() and wait_event() to be MUST_CHECK and return the killed flag. ( closes #2875 )
2012-07-24 18:24:24 -04:00
Ben Blum
2040a5c632
tiny runtime cleanup
2012-07-24 17:35:08 -04:00
Ben Blum
f42a5a1acd
Remove unsupervise
2012-07-24 17:31:43 -04:00
Ben Blum
ae094a7adc
Add 'do atomically { .. }' for exclusives
2012-07-24 15:28:35 -04:00
Elliott Slaughter
66e5a8ca18
Add rustrt wrapper functions to export list.
2012-07-23 12:21:41 -07:00
Elliott Slaughter
d257382863
Moved malloc and free upcalls into rust runtime.
2012-07-23 10:45:58 -07:00
Elliott Slaughter
de82a9be61
Move fail upcall into rust libcore.
2012-07-23 10:45:58 -07:00
Ben Blum
3dc52da989
[4/4 for #2365 , #2671 ] Reassign one last fixme to #908 . Close #2365 . Close #2671 .
2012-07-20 19:23:19 -04:00
Ben Blum
af7b769465
[3/4 for #2365 , #2671 ] Fix exit/kill race with scheds during rust_kernel::fail
2012-07-20 19:23:19 -04:00
Ben Blum
18c645a883
[2/4 for #2365 , #2671 ] Fix exit/kill race with tasks during rust_kernel::fail
2012-07-20 19:23:19 -04:00
Ben Blum
5bb4a12900
[1/4 for #2365 , #2671 ] Fix create/kill race with schedulers and tasks during rust_kernel::fail
2012-07-20 19:23:19 -04:00
Ben Blum
4cf6b4d3b4
Tasks should not hold a ref to their parent ( Close #1789 )
2012-07-17 20:45:07 -04:00
Michael Sullivan
aa5b5ab886
Create some infrastructure for building up @-vectors. Work on #2921 .
2012-07-17 17:09:25 -07:00
Ben Blum
1f2ee4b384
Oops, switch more TODOs to FIXMEs
2012-07-13 20:33:08 -04:00
Ben Blum
cd38377b1b
Add asserts to check fail_sched_loop() only once
2012-07-13 20:13:53 -04:00
Ben Blum
d338879ba5
Reintroduce linked failure (killing runtime)
...
This reverts commit 5724c64549
.
2012-07-13 20:13:53 -04:00
Ben Blum
62575d9c4a
Reintroduce linked failure (rust_port locking)
...
This reverts commit a10f52c579
.
2012-07-13 20:13:53 -04:00
Ben Blum
aad184cc57
Reintroduce linked failure (renaming runtime fns)
...
This reverts commit 3b159c6d5b
.
2012-07-13 20:13:53 -04:00
Ben Blum
79a2e9a38a
Reintroduce linked failure (lifecycle lock)
...
This reverts commit 08c40c5eb7
.
2012-07-13 20:13:53 -04:00
Ben Blum
df2d2604ca
Reintroduce linked failure
...
This reverts commit acb86921a6
.
2012-07-13 20:13:53 -04:00
Tim Chevalier
81ecd272d3
Comments only: TODOs to FIXME in the runtime
2012-07-12 19:06:08 -07:00
Graydon Hoare
18da7fef88
Merge remote-tracking branch 'origin/dist-snap' into incoming
2012-07-12 17:14:55 -07:00
Ben Blum
acb86921a6
Revert linked failure
...
This reverts commit 5d6d3d0565
.
2012-07-12 19:49:49 -04:00
Ben Blum
08c40c5eb7
Revert linked failure (lifecycle lock)
...
This reverts commit 74f4b8d901
.
2012-07-12 19:49:49 -04:00
Ben Blum
3b159c6d5b
Revert linked failure (renaming runtime fns)
...
Revert "Rename runtime *_locked() and *_unlocked() fns to *_inner() (closes #2864 )"
This reverts commit b897696a3a
.
2012-07-12 19:49:49 -04:00
Ben Blum
a10f52c579
Revert linked failure (rust_port locking)
...
This reverts commit 343e9de8ef
.
2012-07-12 19:49:49 -04:00
Ben Blum
5724c64549
Revert linked failure (killing runtime)
...
This reverts commit 200a2ded32
.
2012-07-12 19:49:49 -04:00
Ben Blum
200a2ded32
Fix linked failure with root taskgroup to kill the runtime too.
2012-07-12 18:08:36 -04:00
Ben Blum
343e9de8ef
Proper locking with blocked_on()/wakeup() in rust_port. Closes #2787 . Closes #1923 .
2012-07-12 18:08:36 -04:00
Ben Blum
b897696a3a
Rename runtime *_locked() and *_unlocked() fns to *_inner() ( closes #2864 )
2012-07-12 18:08:36 -04:00
Michael Sullivan
9d2e5f3a65
Merge branch 'rt-changes' into incoming
2012-07-12 15:03:54 -07:00
Erick Tryzelaar
91d9ded4be
Fix an error for Centos 5
...
Unfortunately this doesn't get rust to compile on Centos 5.
Centos 5 uses glibc 2.5, but the snapshot-0 needs glibc 2.6+.
2012-07-11 20:09:57 -07:00
Michael Sullivan
62e9ae04e2
Remove obsolete type param field from shape information.
2012-07-11 11:42:49 -07:00
Ben Blum
74f4b8d901
Unify state_lock + kill_lock -> lifecycle_lock ( #2787 )
2012-07-11 12:09:07 -04:00
Ben Blum
5d6d3d0565
Linked failure in task.rs instead of rust_task.cpp ( #1868 , #1189 )
2012-07-11 12:07:06 -04:00
Ben Blum
9c0b469613
Add rust_task_kill_other
2012-07-11 12:07:06 -04:00
Ben Blum
e8b13e8f26
rust_task.h - fix disallow_kill & don't inherit rust_cond
2012-07-11 12:07:06 -04:00
Eric Holk
26e6eb3d14
Handle failure conditions correctly in pipes.
2012-07-10 22:00:47 -07:00
Michael Sullivan
a7897b3ef3
Eliminate some obsolete upcalls.
2012-07-10 16:33:21 -07:00
Michael Sullivan
260f73ed85
Get rid of unused fields in tydescs. Closes #2351 .
2012-07-10 16:33:21 -07:00
Eric Holk
e5c9cb2b3d
Pipes sleep and wake properly.
2012-07-06 10:42:39 -07:00
Ben Blum
7b3add0632
make disallow_kill an int for nested unkillables ( closes #2782 )
2012-07-05 19:56:09 -04:00
Jeff Olson
a3c933e0a0
std: uv::ll fixes for 32bit linux
2012-06-29 15:41:56 -07:00
Jeff Olson
cfcd3e683b
std/rt: cleanup and adding sockaddr_in6 mapping for win32
2012-06-29 15:41:56 -07:00
Jeff Olson
9edcb104ff
std: addressing #2656 (ipv6 support in net::tcp)
...
.. there are some additional FIXME nags in net_tcp (L 1012) about blocking
because libuv is holding unsafe ptrs to task local data. the proposed
fix going is not really feasible w/ the current design, IMO, but i'll
leave it there in case someone really wants to make the case without
creating more hassle than it's worth.
2012-06-29 15:41:56 -07:00
Jeff Olson
8794815da9
rt: get rid of unused helpers for AF_INET and add bool-based ones, instead
2012-06-29 15:41:56 -07:00
Jeff Olson
61cc8a07f8
rt: whitespace cleanup in rust_uv
2012-06-29 15:41:56 -07:00
Jeff Olson
bcc341f5fb
rt: adding uv_freeaddrinfo binding and tweek signature for uv_getaddrinfo
2012-06-29 15:41:56 -07:00
Jeff Olson
cac2a04667
fix typo in rustrt.def.in
2012-06-29 15:41:56 -07:00
Jeff Olson
237589b3c0
rt: more helper functions to get uv_getaddrinfo going
2012-06-29 15:41:56 -07:00
Jeff Olson
2ef9548f2c
rt: more sizeof helpers + misc consts for uv_getaddrinfo
2012-06-29 15:41:55 -07:00
Jeff Olson
511873afe3
rt: add remaining ip string parser/formatter helpers from uv
2012-06-29 15:41:55 -07:00
Ben Blum
6fc730baf6
Cleanup failure handling around rust_new_task_in_sched - closes #2668
2012-06-28 19:02:48 -04:00
Ben Blum
ae7b0ac390
move reset_stack_limit off C stack ( closes #2679 )
2012-06-28 14:53:21 -04:00
Ben Blum
af2d01e36b
Fix sys::refcount and remove dbg::refcount
2012-06-28 14:40:31 -04:00
Tim Chevalier
ad8280712f
Remove FIXME question
...
brson said the answer to the question is probably no... so I'm
going to be bold and remove this.
Closes #2685
2012-06-28 10:53:37 -07:00
Tim Chevalier
c79b76d499
Remove obsolete FIXME
...
brson said it's obsolete and I trust him.
Closes #2695
2012-06-28 10:51:14 -07:00
Brian Anderson
6f57c61ed0
Tidy fixes
2012-06-27 22:03:12 -07:00
Ben Blum
1ba3028d8b
rt: Add task_local_data and related builtin calls ( Closes #2680 )
2012-06-28 00:10:03 -04:00
Graydon Hoare
576f59a79b
Change 'upcall fail' to 'task failed at', close #2678 .
2012-06-27 13:30:49 -07:00
Graydon Hoare
d3c6119a7a
More keyword paring and migration in runtime, docs, code modes.
2012-06-27 13:30:49 -07:00
Tim Chevalier
6141f5ce5a
Fix shape::cmp::walk_res2
2012-06-26 11:14:39 -07:00
Brian Anderson
7adad4c6cb
rt: Fix exports
2012-06-25 16:30:42 -07:00
Brian Anderson
d29e8fc059
rt: Remove upcall_malloc/upcall_exchange_malloc. Issue #2681
2012-06-25 16:01:47 -07:00
Brian Anderson
3d0826b5fc
rt: Remove lock_free_queue. Unused. Issue #2701
2012-06-25 15:39:59 -07:00
Tim Chevalier
da470ff5b8
Merge
2012-06-25 13:29:41 -07:00
Tim Chevalier
25b8b35c57
Finish compare glue for classes
...
This tests == and !=. I don't know what <, >, etc. should do.
Closes #2601
2012-06-25 12:20:10 -07:00
Tim Chevalier
487cbf8e90
Remove resources
...
Also fixed shapes for classes with dtors, as well as handling
offsets for classes with dtors correctly in take glue.
Closes #2485
2012-06-24 15:09:57 -07:00
Eric Holk
26c11f7b50
Use must_have_lock instead of private functions. (Issue #2700 )
...
I hereby declare that messages sent from the same source arrive in order (Issue #2605 )
Removing FIXME, owned is the correct type here. (Issue #2704 )
Remove outdated FIXME (Issue #2703 )
Updating test for spawning native functions (Issue #2602 )
Removing bogus FIXME (Issue #2599 )
2012-06-22 15:14:42 -07:00
Graydon Hoare
312faf31df
Tag all remaining FIXMEs with bugs. Install rule in tidy script to enforce this.
2012-06-21 16:44:10 -07:00
Tim Chevalier
f149ea0c68
Remove unneeded field
2012-06-21 16:03:28 -07:00
Tim Chevalier
dc11396fda
Remove unneeded SHAPE_VEC const
2012-06-21 16:03:28 -07:00
Tim Chevalier
c814df0bd6
Comments only: annotate FIXMEs
2012-06-21 16:03:28 -07:00
Tim Chevalier
be8b09160b
Try removing code marked with "I don't think this is necessary"
2012-06-21 16:03:28 -07:00
Michael Sullivan
393f739990
Rename upcall_malloc_dyn to just upcall_malloc.
2012-06-21 10:47:45 -07:00
Eric Holk
ec0fbf526e
Fixed a compile error in runtime.
2012-06-19 12:26:58 -07:00
Eric Holk
dc718d97a6
Adding a lock/condition variable to libcore.
2012-06-19 10:31:12 -07:00
Ben Blum
ee9e5b9d20
Avoid extra get_current_task()s in many upcalls (performance)
2012-06-18 20:36:25 -04:00
Michael Sullivan
30dd32d4db
Fix generation of str/@. Closes #2638 .
2012-06-18 15:54:37 -07:00
Michael Sullivan
797856cbde
Use unboxed vecs for string shape glue.
2012-06-18 15:54:37 -07:00
Michael Sullivan
88ec259cee
Put type descriptors in strings created by the runtime. Progress on #2638 .
2012-06-18 15:54:37 -07:00
Michael Sullivan
b4484d51c1
Some cleanup in the runtime.
2012-06-18 15:54:37 -07:00
Tim Chevalier
3e2006a570
Revert "Adding a lock/condition variable to libcore."
...
This reverts commit e394ebda37
.
2012-06-16 15:34:15 -07:00
Eric Holk
e394ebda37
Adding a lock/condition variable to libcore.
2012-06-15 22:00:24 -04:00
Michael Sullivan
2b70cbc992
Remove some dead code from rust_shape
2012-06-15 17:42:48 -07:00
Michael Sullivan
999ab5418a
Make the shape interpreter actually advance past fixed length vectors. Closes #2613 .
2012-06-15 15:31:19 -07:00
Michael Sullivan
a72d469067
Add upcall_malloc_dyn to rustrt.def.in.
2012-06-13 18:36:58 -07:00
Michael Sullivan
591b2802ff
Make trans only generate calls to the _dyn malloc upcalls, so we can get rid of the non dyn ones.
2012-06-13 18:00:17 -07:00
Michael Sullivan
4c0d41cffa
Add a malloc_dyn upcall for dynamically sized allocations on the shared heap.
2012-06-13 17:59:21 -07:00
Michael Sullivan
e67b5b25a6
Introduce a SHAPE_UNBOXED_VEC shape in order to seperate out vector logic.
2012-06-12 17:01:13 -07:00
Michael Sullivan
665ba3531d
Clean up tydesc declaration to make it clear what is unused.
2012-06-11 12:29:04 -07:00
Michael Sullivan
b22620624c
Get rid of a bunch of dead shape code. Closes #2552 .
2012-06-11 12:19:40 -07:00
Michael Sullivan
70b79d1e32
Add emacs settings to some runtime files where they were missing.
2012-06-11 12:19:40 -07:00
Michael Sullivan
45cc95fa22
Remove a bunch of old "remove after snapshot" code.
2012-06-07 18:05:12 -07:00
Brian Anderson
89483b0b83
rt: Remove check_stack_alignment
...
This function does not do what it tries to do and it is expensive
2012-06-07 11:12:29 -07:00
Brian Anderson
c816eea000
std: Add debug::breakpoint
2012-06-06 23:39:55 -07:00
Brian Anderson
99d6807ee0
rt: Unique allocations have -1 ref count
2012-06-05 00:21:27 -07:00
Brian Anderson
78fe75a741
rt: Fix iaac_init using wrong type and not seeding correctly
...
This was a result of changing the vector representation to contain
a box header.
2012-06-05 00:21:19 -07:00
Brian Anderson
e04e9488ad
Revert "rt: Unique allocations have -1 ref count"
...
This reverts commit 422aec85d6
.
2012-06-04 22:58:15 -07:00
Brian Anderson
422aec85d6
rt: Unique allocations have -1 ref count
2012-06-04 22:45:46 -07:00
Arkaitz Jimenez
dad3007584
Moved log method into logger class better than scheduler fixes #2495
2012-06-04 01:53:24 +01:00
Brian Anderson
35aa8d86e1
rt: Add a FIXME about #2495
2012-06-03 14:47:04 -07:00
Arkaitz Jimenez
9a2b240c89
Show ellipsis sign when log line is truncated
2012-06-03 21:06:42 +01:00
Brian Anderson
94ac30c498
rt: Improve docs for main, kernel, scheduler, and task
2012-06-02 23:14:47 -07:00
Brian Anderson
4c8bc19ad2
rt: Refactor task failure to go through rust_task_fail
...
This is the place to but a breakpoint. We will raise SIGINT here
to break into the debugger.
2012-05-31 23:47:52 -07:00
Brian Anderson
b16bdd9ed0
rt: Don't zero the unique box header
2012-05-30 21:23:34 -07:00
Brian Anderson
a2bbdd3f52
rt: Remove upcall_shared_malloc/free/realloc
2012-05-30 21:23:34 -07:00
Brian Anderson
70ecfa686a
rt: Fix build errors on win
2012-05-30 21:23:34 -07:00
Brian Anderson
3f8223ffc2
rt: Fix vec_from_buf_shared for new vecs
2012-05-30 21:23:34 -07:00
Brian Anderson
ecd4318094
rt: Fix rust_list_files for new vecs
2012-05-30 21:23:34 -07:00
Brian Anderson
09a1b94907
Various changes for self-describing vecs
2012-05-30 21:23:34 -07:00
Brian Anderson
178c5cc4a3
rt: Add yet another allocating upcall
...
upcall_exchange_malloc_dyn, for allocating unique boxes for types that don't
have a fixed size.
2012-05-30 21:23:34 -07:00
Brian Anderson
654f7e3086
rustc: Make unique boxes self-describing
2012-05-30 21:23:34 -07:00
Brian Anderson
508ccca014
rt: Add upcall_exchange_malloc/free
2012-05-30 21:23:33 -07:00
Eric Holk
6fa1a084f7
A shareable atomically reference counted pointer wrapper.
...
Needs more tests to ensure safety, and probably some more work on usability too.
2012-05-23 14:58:16 -07:00
Jeff Olson
6c6a47bf22
std: splitting out tcp server API + tests
...
- we now have two interfaces for the TCP/IP server/listener workflow,
based on different user approaches surrounding how to deal with the
flow of accept a new tcp connection:
1. the "original" API closely mimics the low-level libuv API, in that we
have an on_connect_cb that the user provides *that is ran on the libuv
thread*. In this callback, the user can accept() a connection, turning it
into a tcp_socket.. of course, before accepting, they have the option
of passing it to a new task, provided they *make the cb block until
the accept is done* .. this is because, in libuv, you have to do the
uv_accept call in the span of that on_connect_cb callback that gets fired
when a new connection comes in. thems the breaks..
I wanted to just get rid of this API, because the general proposition of
users always running code on the libuv thread sounds like an invitation
for many future headaches. the API restriction to have to choose to
immediately accept a connection (and allow the user to block libuv as
needed) isn't too bad for power users who could conceive of circumstances
where they would drop an incoming TCP connection and know what they're
doing, in general.
but as a general API, I thought this was a bit cumbersome, so I ended up
devising..
2. an API that is initiated with a call to `net::tcp::new_listener()` ..
has a similar signature to `net::tcp::listen()`, except that is just
returns an object that sort of behaves like a `comm::port`. Users can
block on the `tcp_conn_port` to receive new connections, either in the
current task or in a new task, depending on which API route they take
(`net::tcp::conn_recv` or `net::tcp::conn_recv_spawn` respectively).. there
is also a `net::tcp::conn_peek` function that will do a peek on the
underlying port to see if there are pending connections.
The main difference, with this API, is that the low-level libuv glue is
going to *accept every connection attempt*, along with the overhead that
that brings. But, this is a much more hassle-free API for 95% of use
cases and will probably be the one that most users will want to reach for.
2012-05-22 22:29:17 -07:00
Jeff Olson
e9c6416df6
std: splitting out tcp server API WIP
2012-05-22 22:29:17 -07:00
Jeff Olson
8769409612
rt: adding rust_uv_* binding for kernel malloc and free'ing :/
...
I need these in the context of doing various malloc/free operations for
libuv structs that need to live in the heap, because of API workflow
(there's no stack to put them in). This has cropped up several times
when impl'ing the high-level API for things like timers, but I've decided
to take the plunge and use this approach for the net::tcp module.
Technically, this can be avoided by spawning a new
task that contains the needed memory structures on its stack and then
having it block for the duration of the time we need that memory to be
valid (this is what I did in std::timer). Exposing this API provides a
much lower overhead way to address
the issue, albeit with safety concerns. The main mitigation policy should
be to use malloc/free with libuv handles only when the handles, are then
associated with a resource or class-with-dtor. So we have a finite lifetime
for the object and can gaurantee a free(), barring a runtime crash (in
which case you have bigger problems!)
2012-05-22 22:29:16 -07:00
Brian Anderson
17dd5650f8
rt: Fix def of isaac_seed on windows
2012-05-21 17:42:32 -07:00
Gareth Daniel Smith
c9f8ae02bc
add a seeded random number generator so that sequences of random numbers can be easily reproduced (for https://github.com/mozilla/rust/issues/2379 )
2012-05-21 17:38:05 -07:00
Erick Tryzelaar
e7ca3e4db0
expose tzset
2012-05-19 10:08:43 -07:00
Niko Matsakis
f1a46914c4
add a new debugging aid--tracing
2012-05-18 19:07:19 -07:00
Brian Anderson
5d625af9f9
rt: Make task killing synchronization possibly more correct
...
I could not come up with a test but this looks better to me.
2012-05-15 16:13:42 -07:00
Brian Anderson
7277cd7198
core: Add task::unkillable
2012-05-15 16:13:42 -07:00
Niko Matsakis
adb61e3e99
get preservation of boxes working, at least in simple cases
2012-05-15 13:38:16 -07:00
Niko Matsakis
be48cd87dc
make poison-on-free work, disable copying if borrowck is enabled
2012-05-15 11:49:08 -07:00
Brian Anderson
f717100fc7
rt: Start tasks, ports and scheds at 1, assert when we see 0. Closes #2321
2012-05-07 14:32:36 -07:00
Brian Anderson
beb1a59f82
core: Add comm::recv_chan to receive from a channel
2012-05-03 16:38:16 -07:00
Graydon Hoare
6e5c8a7fb8
More shape fixes for evecs.
2012-05-03 14:11:54 -07:00
Graydon Hoare
11a5d10bf2
Implement better shape code for evec, estr.
2012-05-03 13:09:02 -07:00
Brian Anderson
1e410f6206
rt: Fix some record alignment issues on windows
2012-05-02 18:32:20 -07:00
Brian Anderson
e2910bf264
Revert "rt: Fix some record alignment issues on windows"
...
This reverts commit a2457f5864
.
2012-05-02 18:25:22 -07:00
Brian Anderson
a2457f5864
rt: Fix some record alignment issues on windows
2012-05-02 17:55:58 -07:00
Graydon Hoare
f32d9f4853
Remove unused sp_size arg passed through walk_vec{1,2} in shape code.
2012-05-02 14:36:04 -07:00
Graydon Hoare
dc6c3a8946
Make rust_shape.h agree with shape.rs about meaning of shape code #31 .
2012-05-02 14:36:04 -07:00
Brian Anderson
46cc11ea88
core: Serialize all access to the environment using a weak global task
2012-04-30 17:34:29 -07:00
Jeff Olson
caab57586a
rt/std: whitespace cleanup + work on hl/global_loop docs
2012-04-27 22:19:30 -07:00
Jeff Olson
577b888e4b
rt: remove unneccesary c++ functions and rust_kernel data, re: global loop
2012-04-27 22:19:30 -07:00
Jeff Olson
fbaba0f404
std: add ll::loop_refcount binding for uv_loop_refcount
2012-04-27 22:19:30 -07:00
Brian Anderson
bbc4a74dc6
rt: Fix shape alignment of 64-bit ints on x86. Issue #2303
2012-04-26 18:30:58 -07:00
Jeff Olson
a9db0c9efe
whitespace cleanup
2012-04-20 15:23:23 -07:00
Jeff Olson
a045e63639
std: get_monitor_task_gl() is global_loop::get() default
2012-04-20 15:23:23 -07:00
Jeff Olson
bea02ee351
adding missing binding to rustrt.def.in
2012-04-20 15:23:22 -07:00
Jeff Olson
253fad7788
replace impl of globa_async_handle with one using atomic compare-and-swap
2012-04-20 15:23:22 -07:00
Jeff Olson
d7a87aa0a1
remove rustrt.def.in entry for no-longer-existent c++ function
2012-04-20 15:23:22 -07:00