summaryrefslogtreecommitdiff
path: root/rts/CheckUnload.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix linked list manipulation code (buggy on consecutive deletion)Edward Z. Yang2014-04-121-1/+2
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Add SmallArray# and SmallMutableArray# typesJohan Tibell2014-03-291-0/+8
| | | | | | | | | | | | | | | These array types are smaller than Array# and MutableArray# and are faster when the array size is small, as they don't have the overhead of a card table. Having no card table reduces the closure size with 2 words in the typical small array case and leads to less work when updating or GC:ing the array. Reduces both the runtime and memory allocation by 8.8% on my insert benchmark for the HashMap type in the unordered-containers package, which makes use of lots of small arrays. With tuned GC settings (i.e. `+RTS -A6M`) the runtime reduction is 15%. Fixes #8923.
* CheckUnload needs to look at revertible_caf_listSimon Marlow2013-11-211-0/+7
| | | | Retained CAFs must keep an object file alive.
* Don't refer to oc->next after freeing oc.Simon Marlow2013-09-041-2/+3
|
* Fix printf formats for pathchar on Windows (where it's wchar_t, not char)Simon Marlow2013-09-041-4/+4
|
* Really unload object code when it is safe to do so (#8039)Simon Marlow2013-08-221-0/+303
The next major GC after an unloadObj() will do a traversal of the heap to determine whether the object code can be removed from memory or not. We'll keep doing these until it is safe to remove the object code. In my experiments with GHCi, the objects get unloaded immediately, which is a good sign: we're not accidentally holding on to any references anywhere in the GHC data structures. Changes relative to the patch earlier posted on the ticket: - fix two memory leaks discovered with Valgrind, after testing with tests/rts/linker_unload.c