summaryrefslogtreecommitdiff
path: root/includes
Commit message (Collapse)AuthorAgeFilesLines
* FIX #2332: avoid overflow on 64-bit machines in the memory allocatorSimon Marlow2008-07-291-4/+4
|
* add threadStatus# primop, for querying the status of a ThreadId#Simon Marlow2008-07-102-0/+2
|
* add new primop: asyncExceptionsBlocked# :: IO BoolSimon Marlow2008-07-091-0/+1
|
* FIX part of #2301, and #1619Simon Marlow2008-07-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | 2301: Control-C now causes the new exception (AsyncException UserInterrupt) to be raised in the main thread. The signal handler is set up by GHC.TopHandler.runMainIO, and can be overriden in the usual way by installing a new signal handler. The advantage is that now all programs will get a chance to clean up on ^C. When UserInterrupt is caught by the topmost handler, we now exit the program via kill(getpid(),SIGINT), which tells the parent process that we exited as a result of ^C, so the parent can take appropriate action (it might want to exit too, for example). One subtlety is that we have to use a weak reference to the ThreadId for the main thread, so that the signal handler doesn't prevent the main thread from being subject to deadlock detection. 1619: we now ignore SIGPIPE by default. Although POSIX says that a SIGPIPE should terminate the process by default, I wonder if this decision was made because many C applications failed to check the exit code from write(). In Haskell a failed write due to a closed pipe will generate an exception anyway, so the main difference is that we now get a useful error message instead of silent program termination. See #1619 for more discussion.
* FIX #2313 do not include BFD symbols in RTS when the BFD library is not ↵Karel Gardas2008-05-281-1/+1
| | | | available for linking
* Fix up inlines for gcc 4.3Simon Marlow2008-06-193-21/+44
| | | | | | | | | gcc 4.3 emits warnings for static inline functions that its heuristics decided not to inline. The workaround is to either mark appropriate functions as "hot" (a new attribute in gcc 4.3), or sometimes to use "extern inline" instead. With this fix I can validate with gcc 4.3 on Fedora 9.
* Experimental "mark-region" strategy for the old generationSimon Marlow2008-06-093-3/+11
| | | | Sometimes better than the default copying, enabled by +RTS -w
* remove EVACUATED: store the forwarding pointer in the info pointerSimon Marlow2008-04-173-7/+5
|
* Don't traverse the entire list of threads on every GC (phase 1)Simon Marlow2008-04-161-0/+3
| | | | | | Instead of keeping a single list of all threads, keep one per step and only look at the threads belonging to steps that we are collecting.
* Add a write barrier to the TSO link field (#1589)Simon Marlow2008-04-165-7/+28
|
* pad step_workspace to 64 bytes, to speed up access to gct->steps[]Simon Marlow2008-04-161-0/+6
|
* Reorganisation to fix problems related to the gct register variableSimon Marlow2008-04-162-5/+6
| | | | | | | | | - GCAux.c contains code not compiled with the gct register enabled, it is callable from outside the GC - marking functions are moved to their relevant subsystems, outside the GC - mark_root needs to save the gct register, as it is called from outside the GC
* improvements to +RTS -s outputSimon Marlow2008-04-161-0/+1
| | | | | | | - count and report number of parallel collections - calculate bytes scanned in addition to bytes copied per thread - calculate "work balance factor" - tidy up the formatting a bit
* Keep track of an accurate count of live words in each stepSimon Marlow2008-04-161-0/+1
| | | | | This means we can calculate slop easily, and also improve predictability of GC.
* Allow work units smaller than a block to improve load balancingSimon Marlow2008-04-162-0/+4
|
* use RTS_VAR()Simon Marlow2008-04-161-1/+1
|
* treat the global work list as a queue rather than a stackSimon Marlow2008-04-161-0/+1
|
* GC: move static object processinng into thread-local storageSimon Marlow2008-04-161-1/+0
|
* Add +RTS -vg flag for requesting some GC trace messages, outside DEBUGSimon Marlow2008-04-161-0/+1
| | | | | | | DEBUG imposes a significant performance hit in the GC, yet we often want some of the debugging output, so -vg gives us the cheap trace messages without the sanity checking of DEBUG, just like -vs for the scheduler.
* GC: rearrange storage to reduce memory accesses in the inner loopSimon Marlow2008-04-161-6/+15
|
* Add profiling of spinlocksSimon Marlow2008-04-161-0/+4
|
* rename StgSync to SpinLockSimon Marlow2008-04-161-24/+19
|
* Release some of the memory allocated to a stack when it shrinks (#2090)simonmar@microsoft.com2008-02-282-9/+21
| | | | | | When a stack is occupying less than 1/4 of the memory it owns, and is larger than a megablock, we release half of it. Shrinking is O(1), it doesn't need to copy the stack.
* round_to_mblocks: should use StgWord not natSimon Marlow2008-02-201-2/+2
|
* add ROUNDUP_BYTES_TO_WDSsimonmar@microsoft.com2008-02-151-1/+3
|
* memInventory: optionally dump the memory inventorysimonmar@microsoft.com2008-01-301-1/+1
| | | | in addition to checking for leaks
* recordMutableGen_GC: we must call the spinlocked version of allocBlock()Simon Marlow2008-01-111-1/+18
|
* calculate wastage due to unused memory at the end of each blocksimonmar@microsoft.com2007-12-141-1/+3
|
* remove declarations for variables that no longer existsimonmar@microsoft.com2007-12-131-3/+0
|
* improvements to PAPI supportsimonmar@microsoft.com2007-11-201-2/+7
| | | | | | | - major (multithreaded) GC is measured separately from minor GC - events to measure can now be specified on the command line, e.g prog +RTS -a+PAPI_TOT_CYC
* Initial parallel GC supportSimon Marlow2007-10-311-1/+2
| | | | | | | | | eg. use +RTS -g2 -RTS for 2 threads. Only major GCs are parallelised, minor GCs are still sequential. Don't use more threads than you have CPUs. It works most of the time, although you won't see much speedup yet. Tuning and more work on stability still required.
* Refactoring of the GC in preparation for parallel GCSimon Marlow2007-10-312-40/+60
| | | | | | | | | | | | This patch localises the state of the GC into a gc_thread structure, and reorganises the inner loop of the GC to scavenge one block at a time from global work lists in each "step". The gc_thread structure has a "workspace" for each step, in which it collects evacuated objects until it has a full block to push out to the step's global list. Details of the algorithm will be on the wiki in due course. At the moment, THREADED_RTS does not compile, but the single-threaded GC works (and is 10-20% slower than before).
* move GetRoots() to GC.cSimon Marlow2007-10-301-2/+2
|
* Fix conversions between Double/Float and simple-integerIan Lynagh2008-06-142-1/+3
|
* Fix unreg buildSimon Marlow2008-06-041-0/+1
|
* FIX #1861: floating-point constants for infinity and NaN in via-CSimon Marlow2008-05-121-0/+3
|
* Fix the ticky ticky buildIan Lynagh2008-04-251-0/+4
| | | | Include TickyCounters.h in Stg.h if we are doing Ticky Ticky.
* Remove some duplicate extern declsIan Lynagh2008-04-161-3/+0
|
* Add some more generic (en|de)code(Double|Float) codeIan Lynagh2008-04-173-0/+5
|
* add pointers to the wiki for the rules about C prototypesSimon Marlow2008-04-091-0/+2
|
* FIX BUILD (bootstrap with -fvia-C): prototype fixesSimon Marlow2008-04-091-6/+12
|
* FIX BUILD on non-x86: add missing prototypesSimon Marlow2008-04-071-0/+2
|
* update a commentSimon Marlow2008-04-071-12/+2
|
* Do not #include external header files when compiling via CSimon Marlow2008-04-0210-179/+256
| | | | | | | | | | | | | | | | | | | | | | | This has several advantages: - -fvia-C is consistent with -fasm with respect to FFI declarations: both bind to the ABI, not the API. - foreign calls can now be inlined freely across module boundaries, since a header file is not required when compiling the call. - bootstrapping via C will be more reliable, because this difference in behavour between the two backends has been removed. There is one disadvantage: - we get no checking by the C compiler that the FFI declaration is correct. So now, the c-includes field in a .cabal file is always ignored by GHC, as are header files specified in an FFI declaration. This was previously the case only for -fasm compilations, now it is also the case for -fvia-C too.
* Fix warnings in main/ConstantsIan Lynagh2008-03-251-4/+6
|
* Fix warnings in the RTSIan Lynagh2008-03-252-4/+10
| | | | For some reason this causes build failures for me in my 32-bit chroot,
* Fix setting argv[0] in shell-utils.c on WindowsIan Lynagh2008-01-231-2/+3
|
* Escape arguments for Windows in shell-tools.cIan Lynagh2008-01-231-1/+6
|
* Refactor cross-plattform process spawning from ghc-inplace into shell-tools.cClemens Fruhwirth2008-01-101-0/+133
|
* Fix warnings with newer gcc versions (I hope)Simon Marlow2008-01-031-3/+3
|