summaryrefslogtreecommitdiff
path: root/rts
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* use C99-style array initialisersSimon Marlow2009-08-031-6/+6
|
* use C99-style array initialisersSimon Marlow2009-08-031-16/+16
|
* move termios prototypes into a public headerSimon Marlow2009-08-031-4/+0
|
* Common up two closure type -> string tablesSimon Marlow2009-08-033-184/+99
| | | | Also, use C99-style array initialisers
* Rename primops from foozh_fast to stg_foozhSimon Marlow2009-08-035-163/+163
| | | | For consistency with other RTS exported symbols
* remove the GUM closure typesSimon Marlow2009-08-033-26/+1
|
* use C99-style array initialisersSimon Marlow2009-08-031-75/+70
|
* Remove final bits of the old .NET supportSimon Marlow2009-08-036-1849/+0
|
* fast make omits all GHC stagesSimon Marlow2009-08-021-0/+1
|
* fix off-by-one in memory allocationSimon Marlow2009-08-041-2/+2
|
* Windows build fixSimon Marlow2009-08-031-2/+2
|
* Windows build fixesSimon Marlow2009-08-031-1/+1
|
* Windows build fixesSimon Marlow2009-08-035-8/+1
|
* x86_64 warning fixSimon Marlow2009-08-031-4/+0
|
* x86_64 warning fixesSimon Marlow2009-08-033-27/+33
|
* RTS tidyup sweep, first phaseSimon Marlow2009-08-02123-1163/+1083
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first phase of this tidyup is focussed on the header files, and in particular making sure we are exposinng publicly exactly what we need to, and no more. - Rts.h now includes everything that the RTS exposes publicly, rather than a random subset of it. - Most of the public header files have moved into subdirectories, and many of them have been renamed. But clients should not need to include any of the other headers directly, just #include the main public headers: Rts.h, HsFFI.h, RtsAPI.h. - All the headers needed for via-C compilation have moved into the stg subdirectory, which is self-contained. Most of the headers for the rest of the RTS APIs have moved into the rts subdirectory. - I left MachDeps.h where it is, because it is so widely used in Haskell code. - I left a deprecated stub for RtsFlags.h in place. The flag structures are now exposed by Rts.h. - Various internal APIs are no longer exposed by public header files. - Various bits of dead code and declarations have been removed - More gcc warnings are turned on, and the RTS code is more warning-clean. - More source files #include "PosixSource.h", and hence only use standard POSIX (1003.1c-1995) interfaces. There is a lot more tidying up still to do, this is just the first pass. I also intend to standardise the names for external RTS APIs (e.g use the rts_ prefix consistently), and declare the internal APIs as hidden for shared libraries.
* replace sparc-specific Int64 code with calls to platform-independent macrosSimon Marlow2009-07-271-116/+4
|
* remove old incarnation of .NET supportSimon Marlow2009-06-281-3/+0
|
* rts_stop_on_exception is a C int, not a W_Simon Marlow2009-08-031-1/+1
| | | | amazing this hasn't caused any problems before now
* Fix permissions when installingIan Lynagh2009-08-021-2/+2
|