summaryrefslogtreecommitdiff
path: root/rts/Storage.c
Commit message (Collapse)AuthorAgeFilesLines
* Split GC.c, and move storage manager into sm/ directorySimon Marlow2006-10-241-1246/+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.
* rename allocated_bytes() to allocatedBytes()Simon Marlow2006-10-191-2/+2
|
* Add closeMutex and use it on clean upEsa Ilari Vuokko2006-08-231-0/+4
|
* make exit() overridable, for use in DLLsSimon Marlow2006-08-091-1/+1
| | | | See #753
* Remember to free() memory on exitSimon Marlow2006-08-081-0/+5
| | | | | Patch mostly from Lennart Augustsson in #803, with additions to Task.c by me.
* New tracing interfaceSimon Marlow2006-06-081-6/+7
| | | | | | | | 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.
* replace stgMallocBytesRWX() with our own allocatorSimon Marlow2006-05-301-0/+99
| | | | | | | | | | | | | | | | | | | | See bug #738 Allocating executable memory is getting more difficult these days. In particular, the default SELinux policy on Fedora Core 5 disallows making the heap (i.e. malloc()'d memory) executable, although it does apparently allow mmap()'ing anonymous executable memory by default. Previously, stgMallocBytesRWX() used malloc() underneath, and then tried to make the page holding the memory executable. This was rather hacky and fails with Fedora Core 5. This patch adds a mini-allocator for executable memory, based on the block allocator. We grab page-sized blocks and make them executable, then allocate small objects from the page. There's a simple free function, that will free whole pages back to the system when they are empty.
* Reorganisation of the source treeSimon Marlow2006-04-071-0/+1137
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.