about summary refs log tree commit diff
path: root/src/rt/rust_builtin.cpp
AgeCommit message (Collapse)AuthorLines
2011-09-16rt: Rename rust_box to rust_box_legacy, as they're about to become ↵Patrick Walton-6/+7
self-describing
2011-09-11Remove hack_allow_leaksBrian Anderson-7/+0
Happy to close the loop on this one. Issue #236
2011-09-09Get rid of some unused upcallsMarijn Haverbeke-3/+1
I guess these became obsolete when the communication stuff moved into the stdlib.
2011-09-07Rewrite spawn yet againBrian Anderson-9/+15
The motivation here is that the bottom of each stack needs to contain a C++ try/catch block so that we can unwind. This is already the case for main, but not spawned tasks. Issue #236
2011-09-02Add a rust_str typedef to the runtime. Issue #855Brian Anderson-8/+8
2011-09-02Rename istr-stuff to str in the runtime. Issue #855Brian Anderson-5/+5
2011-09-02Eliminate const_refcount. Issue #855Brian Anderson-6/+1
2011-09-02Remove estrs and evecs from runtime. Issue #855Brian Anderson-72/+3
2011-09-01Convert rust_list_files to istrs. Issue #855Brian Anderson-20/+21
2011-09-01Convert rust_getcwd to istrs. Issue #855Brian Anderson-13/+2
2011-09-01Convert rust_file_is_dir from estrs to cstrs. Issue #855Brian Anderson-2/+2
2011-09-01Check error code in rust_file_is_dir. Prevent comparison of uninitialized memBrian Anderson-1/+3
2011-09-01Remove a bunch of string builtins. Issue #855Brian Anderson-82/+0
2011-08-31Expose STDERR to rust.Erick Tryzelaar-0/+1
2011-08-29Make std::istr::push_byte efficientMarijn Haverbeke-0/+9
It used to allocate two (!) heap values per pushed byte. It now goes through a runtime function that simply grows the istr and writes the byte.
2011-08-29Factor vector reserve code in runtime into its own functionMarijn Haverbeke-7/+1
2011-08-29Implement non-internal ivecsMarijn Haverbeke-177/+45
Vectors are now similar to our old, pre-internal vectors, except that they are uniquely owned, not refcounted. Their name should probably change too, then. I've renamed them to vec in the runtime, will do so throughout the compiler later.
2011-08-19rt: Remove rustboot's GC infrastructurePatrick Walton-1/+1
2011-08-18Rename rust_vec to rust_evecBrian Anderson-5/+5
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.