summary refs log tree commit diff
path: root/src/rt/rust_builtin.cpp
AgeCommit message (Collapse)AuthorLines
2011-08-17Making more of the rust_task structure directly accessible from Rust.Eric Holk-17/+3
2011-08-16Removed trans_comm.rs from the compiler. Updating aio/sio to work with the ↵Eric Holk-5/+0
new chan and port system, started on a networking module for the standard library.
2011-08-15Properly ref counting to fix valgrind issues on linux.Eric Holk-2/+17
2011-08-15Fixed memory accounting and task stack creation bugs.Eric Holk-3/+18
2011-08-15Working on more spawn test cases.Eric Holk-2/+10
2011-08-15Added a library version of spawn. Before long, we can remove the old version.Eric Holk-0/+31
2011-08-15Port ID-based channels.Eric Holk-0/+23
2011-08-12Rename rust_list_files_ivec to rust_list_filesBrian Anderson-1/+1
2011-08-12Remove rust_list_files from std and rtBrian Anderson-25/+0
2011-08-12Remove runtime vector builtinsBrian Anderson-84/+0
2011-08-12Remove str_from_vec runtime functionBrian Anderson-17/+0
2011-08-12Remove vec version of str::bytes, rename bytes_ivec to str::bytesBrian Anderson-26/+0
2011-08-08Introduced task handles.unknown-1/+4
This is the new way to refer to tasks in rust-land. Currently all they do is serve as a key to look up the old rust_task structure. Ideally they won't be ref counted, but baby steps.
2011-08-08Converted the rest of the task-comm-* tests over. Also fixed someEric Holk-1/+1
channel lifecycle bugs.
2011-08-05Atomic ref counting for chans.Eric Holk-1/+6
2011-08-01Added send and receive to comm library.Eric Holk-0/+30
2011-08-01Objectified library chans and ports.Eric Holk-1/+0
2011-08-01Started working on a library-based comm system. Creating and deleting ports ↵Eric Holk-0/+47
work.
2011-07-29Add sched_threads rt function to get the number of scheduler threadsBrian Anderson-0/+5
2011-07-28Do all runtime calls to getenv at initializationBrian Anderson-2/+2
getenv is not threadsafe and (maybe as a result) it's randomly crashing with CFLAGS=-g and RUST_THREADS=32. Calls from rust code are still on their own.
2011-07-28Adding a function to stdlib to set the min stack size, for programsEric Holk-0/+7
that absolutely will not succeed with a large default stack. This should be removed once we have stack grown working. Also updated word-count to succeed under the new test framework.
2011-07-27More thorough check for interior-ness in str_from_ivecMarijn Haverbeke-2/+3
Closes #750
2011-07-22More work on word-count.Eric Holk-0/+5
Updated the MapReduce protocol so that it's correct more often. It's still not perfect, but the bugs repro less often now. Also found a race condition in channel sending. The problem is that send and receive both need to refer to the _unread field in circular_buffer. For now I just grabbed the port lock to send. We can probably get around this by using atomics instead.
2011-07-21Lots of work on memory tracking and channels.Eric Holk-19/+18
We're trying to get closer to doing correct move semantics for channel operations. This involves a lot of cleanup (such as removing the unused sched parameter from rust_vec constructor) and making circular_buffer kernel_owned. Added tagging for memory allocations. This means we give a string tag to everything we allocate. If we leak something and TRACK_ALLOCATIONS is enabled, then it's much easier now to tell exactly what is leaking.
2011-07-20Add a huge hack to allow the test runner to continue if a single task leaksBrian Anderson-0/+7
This is just until unwinding works. Adds a flag to the runtime to turn the memory leak checks on task destruction into warnings instead of fatal errors. I am so sorry. Issue #428
2011-07-19Fix calculation of sizeof boxed ivec of str in rt. Closes #712Brian Anderson-1/+5
2011-07-17Revert "Add setenv to standard library"Brian Anderson-14/+0
This reverts commit 6fb168b3dbd733f6fccebd01c2e5416f800a5566.
2011-07-17Add setenv to standard libraryBrian Anderson-0/+14
2011-07-15Remove task_unsupervise from rt builtin functionsBrian Anderson-5/+0
This was an exact duplicate of the unsupervise function
2011-07-15Modify task::join to indicate how the task terminatedBrian Anderson-1/+6
This involves sticking yet another field into the task structure
2011-07-14Add an unsupervise builtin and function to std::taskBrian Anderson-0/+5
Calling task::unsupervise de-parents the current task, with the result that failures do not propogate up the task tree.
2011-07-13Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.Graydon Hoare-1/+1
2011-07-13Trim a few more fail(1)s, not sure how they slipped past.Graydon Hoare-3/+3
2011-07-13Remove obsolete nargs counts from runtime.Graydon Hoare-17/+17
2011-07-13Attempt to correct buggy win32 timer code (causing tinderbox failures).Graydon Hoare-1/+1
2011-07-12stdlib: Move fs over to interior vectors by introducing a ↵Patrick Walton-1/+39
rust_list_files_ivec builtin
2011-07-08stdlib: Implement str::unsafe_from_bytes_ivec()Patrick Walton-0/+20
2011-07-07Fixed two races.Eric Holk-0/+5
The first is that the memory_region destructor would complain there is still an outstanding allocation. This is because circular_buffer from rust_chan wasn't refing its task, so the task was being destructed too soon. The second was where the program could deadlock while joining a task. The target task would die in the time between checking whether the task should block and then actually blocking. The fix is to use the target task's lock.
2011-07-07Removing the synchronized memory region from tasks.Eric Holk-5/+6
2011-07-07Removing most of the locks in rust_upcall.cpp and elsewhere.Eric Holk-5/+0
2011-07-06Allocate rust_ivec buffers out of the kernel poolRob Arnold-0/+60
The duplication of upcalls is due to the fact that the runtime is shared between stage0/rustc and stage1/rustc. Once snapshots are updated, they should be de-duplicated.
2011-07-05rt: Add missing CDECL to routines in rust_builtinPatrick Walton-6/+6
2011-06-30Added a nanosecond timer to time.rs, support for some floating point casts, ↵Eric Holk-0/+6
and a commandline-driven mode for pfib.rs
2011-06-29Adding support for pinning tasks to the currently running thread. Closes #598.Eric Holk-0/+9
2011-06-29Re-enable tidy (it was broken) and fix various non-tidy things.Graydon Hoare-1/+2
2011-06-28Renamed what's left of rust_dom to rust_schedulerEric Holk-10/+10
2011-06-28Removed dom_owned, splitting things between task_owned and kernel_owned. Had ↵Eric Holk-3/+3
to re-xfail a few tests brson recently un-xfailed.
2011-06-28Moved thread management to rust_kernel.Eric Holk-3/+3
2011-06-27Conservatively serialize nearly all upcalls. Successfuly ran make check with ↵Eric Holk-0/+5
RUST_THREADS=8, so we're probably fairly safe now. In the future we can relax the synchronization to get better performance.
2011-06-19rt: Fix size miscalculation in ivec_reservePatrick Walton-1/+1