summaryrefslogtreecommitdiff
path: root/rts/GC.c
Commit message (Collapse)AuthorAgeFilesLines
* Split GC.c, and move storage manager into sm/ directorySimon Marlow2006-10-241-4825/+0
| | | | | | | | | | | | | | | | | In preparation for parallel GC, split up the monolithic GC.c file into smaller parts. Also in this patch (and difficult to separate, unfortunatley): - Don't include Stable.h in Rts.h, instead just include it where necessary. - consistently use STATIC_INLINE in source files, and INLINE_HEADER in header files. STATIC_INLINE is now turned off when DEBUG is on, to make debugging easier. - The GC no longer takes the get_roots function as an argument. We weren't making use of this generalisation.
* STM invariantstharris@microsoft.com2006-10-071-21/+101
|
* Remove CONSTR_CHARLIKE and CONSTR_INTLIKE closure typesSimon Marlow2006-09-071-2/+0
| | | | | | | | These closure types aren't used/needed, as far as I can tell. The commoning up of Chars/Ints happens by comparing info pointers, and the info table for a dynamic C#/I# is CONSTR_0_1. The RTS seemed a little confused about whether CONSTR_CHARLIKE/CONSTR_INTLIKE were supposed to be static or dynamic closures, too.
* Match format strings and arguments for printf-like functionssven.panne@aedion.de2006-08-101-3/+3
|
* Asynchronous exception support for SMPSimon Marlow2006-06-161-4/+11
| | | | | | | | | | | | | | | | | This patch makes throwTo work with -threaded, and also refactors large parts of the concurrency support in the RTS to clean things up. We have some new files: RaiseAsync.{c,h} asynchronous exception support Threads.{c,h} general threading-related utils Some of the contents of these new files used to be in Schedule.c, which is smaller and cleaner as a result of the split. Asynchronous exception support in the presence of multiple running Haskell threads is rather tricky. In fact, to my annoyance there are still one or two bugs to track down, but the majority of the tests run now.
* New tracing interfaceSimon Marlow2006-06-081-69/+62
| | | | | | | | A simple interface for generating trace messages with timestamps and thread IDs attached to them. Most debugging output goes through this interface now, so it is straightforward to get timestamped debugging traces with +RTS -vt. Also, we plan to use this to generate parallelism profiles from the trace output.
* Export 'insertSymbol' and 'insertStableSymbol'.Lemmih2006-04-181-0/+4
| | | | | 'insertStableSymbol' is used for exporting closures that are affected by the GC.
* Fix a bug related to threads blocked on blackholes07_04_0604_07_06Simon Marlow2006-04-071-10/+34
| | | | | | We weren't making them live early enough, with the result that finalizable objects referred to only by a thread blocked on a black hole could be finalized too early (see conc057 test).
* Reorganisation of the source treeSimon Marlow2006-04-071-0/+4719
Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.