summaryrefslogtreecommitdiff
path: root/rts
Commit message (Collapse)AuthorAgeFilesLines
* Fix the nursery size calculation when -N is used with -HSimon Marlow2009-09-181-4/+6
|
* implement case-on-Word in the byte code generator/interpreter (#2881)Simon Marlow2009-09-181-0/+21
|
* Fix #3439: -debug implies -ticky, and -ticky code links with any RTSSimon Marlow2009-09-181-15/+19
|
* typo in error messageSimon Marlow2009-09-161-1/+1
|
* only create the .eventlog file if any tracing options are enabledSimon Marlow2009-09-161-3/+32
|
* Fix build on Mac OS 10.6 (Snow Leopard)Manuel M T Chakravarty2009-09-171-1/+1
| | | | | | - We have -m32 as machine-dependent option for gcc for a 32 bit build - Like on OpenBSD, SL requires -fno-stack-protector to avoid triggering the stack smashing checks inserted by gcc by default on this platform.
* Event tracing: put the capability in the block marker, omit it from the eventsSimon Marlow2009-09-151-44/+38
| | | | | | | | | | | | This makes events smaller and tracing quicker, and speeds up reading and sorting the trace file. HEADS UP: this changes the format of event log files. Corresponding changes to the ghc-events package are required (and will be pushed soon). Normally we would make backwards-compatible changes, but this changes the format of every event (to remove the capability) so I'm breaking the rules this time. This will be the only time we can do this, since the format becomes public in 6.12.1.
* Add event block markersSimon Marlow2009-09-132-71/+72
| | | | | These indicate the size and time span of a sequence of events in the event log, to make it easier to sort and navigate a large event log.
* Optimise the code generated at trace pointsSimon Marlow2009-09-123-125/+103
|
* Improve the default parallel GC settings, and sanitise the flags (#3340)Simon Marlow2009-09-152-16/+23
| | | | | | | | | | | | | | | Flags (from +RTS -?): -qg[<n>] Use parallel GC only for generations >= <n> (default: 0, -qg alone turns off parallel GC) -qb[<n>] Use load-balancing in the parallel GC only for generations >= <n> (default: 1, -qb alone turns off load-balancing) these are good defaults for most parallel programs. Single-threaded programs that want to make use of parallel GC will probably want +RTS -qg1 (this is documented). I've also updated the docs.
* Use _ rather than : for the builtin package filenamesIan Lynagh2009-09-131-2/+2
| | | | Using "builtin:foo" creates a file called "builtin" on Windows
* add comment: __thread is not supported by gcc on OS X yetSimon Marlow2009-09-101-0/+3
|
* Fix #3320: we forgot to save/restore the GC register variableSimon Marlow2009-09-101-0/+7
|
* FIX #711 implement osFreeAllMBlocks for unixAustin Seipp2009-09-101-3/+28
|
* Omit visibility pragmas on Windows (fixes warnings/validate failures)Simon Marlow2009-09-0940-82/+87
|
* comment fixSimon Marlow2009-09-081-2/+1
|
* refactor *_OPTS settings in the build system; no functional changesSimon Marlow2009-09-091-3/+0
|
* Fix warnings on 64-bit platforms; fixes validate on x86-64Simon Marlow2009-09-081-17/+19
|
* fix -u flags (after changes for #3310)Simon Marlow2009-09-031-4/+4
|
* Unify event logging and debug tracing.Simon Marlow2009-08-2914-293/+591
| | | | | | | | | | | | | | | | | | | - tracing facilities are now enabled with -DTRACING, and -DDEBUG additionally enables debug-tracing. -DEVENTLOG has been removed. - -debug now implies -eventlog - events can be printed to stderr instead of being sent to the binary .eventlog file by adding +RTS -v (which is implied by the +RTS -Dx options). - -Dx debug messages can be sent to the binary .eventlog file by adding +RTS -l. This should help debugging by reducing the impact of debug tracing on execution time. - Various debug messages that duplicated the information in events have been removed.
* waitForReturnCapability: fix logic bugSimon Marlow2009-08-311-1/+1
| | | | | The check for whether a Capability was free was inverted, which harmed performance for callbacks.
* Handle renames from #3310Simon Marlow2009-08-303-9/+13
| | | | | Also add a panic for resurrecting a thread blocked on an exception, since it should never happen.
* Fix incorrectly hidden RTS symbolsSimon Marlow2009-08-295-37/+6
|
* Maintain Task/Capability invariants in performPendingThrowTosSimon Marlow2009-08-291-3/+17
| | | | Fixes an ASSERTION failure with concprog001, -threaded -debug, +RTS -N2
* Declare RTS-private prototypes with __attribute__((visibility("hidden")))Simon Marlow2009-08-0556-127/+272
| | | | | | | | | | This has no effect with static libraries, but when the RTS is in a shared library it does two things: - it prevents the function from being exposed by the shared library - internal calls to the function can use the faster non-PLT calls, because the function cannot be overriden at link time.
* Use -W, not -Werror, for gcc older than 3.4Matthias Kilian2009-08-261-1/+6
|
* Fix #3461: protect the use of keepCAFs with #ifdef DYNAMICSimon Marlow2009-08-281-0/+2
|
* Add unique package identifiers (InstalledPackageId) in the package DBSimon Marlow2009-08-201-1/+2
| | | | | See commentary at http://hackage.haskell.org/trac/ghc/wiki/Commentary/Packages
* Remove bitrotted IA64 code in Linker.cIan Lynagh2009-08-231-205/+0
| | | | It breaks the unregisterised build on IA64.
* Put "dl" back in rts/package.conf if HAVE_DL is definedIan Lynagh2009-08-211-0/+3
| | | | Fixes linking with -dynamic
* Use allocateLocal() rather than allocate() in the interpreterSimon Marlow2009-08-201-9/+9
| | | | This gives about a 15% performance boost in GHCi for me. nice!
* Rollback: use cas() to claim the closure in copyPart(), to match copy_tag()Simon Marlow2009-08-204-34/+34
| | | | | | | | | | rolling back: * use cas() to claim the closure in copyPart(), to match copy_tag() * rename whitehole_spin to evac_collision, and update it properly This introduced a new failure in parallel GC. I'll rollback for now until I've fixed it.
* Relax the assumption that all objects fit in a single block (#3424)Simon Marlow2009-08-201-11/+26
| | | | | | | | | | | | | | | It is possible for the program to allocate single object larger than a block, without going through the normal large-object mechanisms that we have for arrays and threads and so on. The GC was assuming that no object was larger than a block, but #3424 contains a program that breaks the assumption. This patch removes the assumption. The objects in question will still be copied, that is they don't get the normal large-object treatment, but this case is unlikely to occur often in practice. In the future we may improve things by generating code to allocate them as large objects in the first place.
* remove a bogus assertionSimon Marlow2009-08-201-4/+0
|
* Add a case for IND (and a comment). Fixes #3424, perhaps only partially.Simon Marlow2009-08-201-0/+4
|
* fix warningSimon Marlow2009-08-201-1/+1
|
* rename whitehole_spin to evac_collision, and update it properlySimon Marlow2009-08-194-6/+12
|
* use cas() to claim the closure in copyPart(), to match copy_tag()Simon Marlow2009-08-191-28/+22
| | | | | | copyPart() was still using the old WHITEHOLE mechanism for locking the closure. I don't think this fixes any actual bugs, but it removes a gratuitous difference between two functions that should look similar.
* Always yieldCapabilty() when a bound thread blocksSimon Marlow2009-08-191-4/+19
| | | | Fixes crash in concprog002(threaded2_qw), and possibly other problems
* Improve the "Stack space overflow" error; fixes trac #3296Ian Lynagh2009-08-191-1/+1
|
* Detect C finalizer callbacks in rts_lock() instead of schedule()Simon Marlow2009-08-192-8/+9
| | | | | Otherwise, finalizer callbacks cause a deadlock in the threaded RTS (including GHCi)
* fix an includeSimon Marlow2009-08-191-1/+1
|
* Fix #3429: a tricky race conditionSimon Marlow2009-08-186-13/+24
| | | | | | | | | | | | | | | | | | There were two bugs, and had it not been for the first one we would not have noticed the second one, so this is quite fortunate. The first bug is in stg_unblockAsyncExceptionszh_ret, when we found a pending exception to raise, but don't end up raising it, there was a missing adjustment to the stack pointer. The second bug was that this case was actually happening at all: it ought to be incredibly rare, because the pending exception thread would have to be killed between us finding it and attempting to raise the exception. This made me suspicious. It turned out that there was a race condition on the tso->flags field; multiple threads were updating this bitmask field non-atomically (one of the bits is the dirty-bit for the generational GC). The fix is to move the dirty bit into its own field of the TSO, making the TSO one word larger (sadly).
* Make our install variables etc compliant with GNU standards; fixes #1924Ian Lynagh2009-08-141-3/+3
|
* Fix a sanity check; fixes #3089Ian Lynagh2009-08-121-1/+1
|
* Fix the build on OS XIan Lynagh2009-08-072-8/+21
|
* Fix ticky buildSimon Marlow2009-08-061-1/+0
|
* add #include <sys/types.h> (hopefully fixes OS X build)Simon Marlow2009-08-061-1/+2
|
* profiling build fixSimon Marlow2009-08-051-0/+1
|
* profiling build fixesSimon Marlow2009-08-057-2/+5
|