summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Stifle warning about printf format stringsbenl@cse.unsw.edu.au2010-02-031-1/+1
|
* Cast to (void*) to stifle warning about signednessbenl@cse.unsw.edu.au2010-02-031-2/+2
|
* Add missing import sm_mutex, which fixes the -fvia-c buildbenl@cse.unsw.edu.au2010-02-021-0/+1
|
* Fix typo in error message (#3848)Simon Marlow2010-01-301-1/+1
|
* Fix Trac #3831: blowup in SpecConstrsimonpj@microsoft.com2010-02-011-41/+96
| | | | | | | | | | | | | | | | | | | | | | | It turned out that there were two bugs. First, we were getting an exponential number of specialisations when we had a deep nest of join points. See Note [Avoiding exponential blowup]. I fixed this by dividing sc_count (in ScEnv) by the number of specialisations when recursing. Crude but effective. Second, when making specialisations I was looking at the result of applying specExpr to the RHS of the function, whereas I should have been looking at the original RHS. See Note [Specialise original body]. There's a tantalising missed opportunity here, though. In this example (recorded as a test simplCore/should_compile/T3831), each join point has *exactly one* call pattern, so we should really just specialise for that alone, in which case there's zero code-blow-up. In particular, we don't need the *original* RHS at all. I need to think more about how to exploit this. But the blowup is now limited, so compiling terminfo with -O2 works again.
* Re-read pragmas after preprocessing (#2464, #3674, #3457)Simon Marlow2010-01-291-8/+27
| | | | This was a lot easier than I imagined.
* tweak the totally-bogus arbitrary stack-squeezing heuristic to fix #2797Simon Marlow2010-01-281-1/+2
| | | | | | | | | | | In #2797, a program that ran in constant stack space when compiled needed linear stack space when interpreted. It turned out to be nothing more than stack-squeezing not happening. We have a heuristic to avoid stack-squeezing when it would be too expensive (shuffling a large amount of memory to save a few words), but in some cases even expensive stack-squeezing is necessary to avoid linear stack usage. One day we should implement stack chunks, which would make this less expensive.
* fix warning on WindowsSimon Marlow2010-01-271-2/+1
|
* fix Windows build (GHC.Conc.runHandlers is Unix-only)Simon Marlow2010-01-271-0/+2
|
* Don't Terminate the ticker thread (#3748)Simon Marlow2010-01-276-12/+21
|
* Win32 yieldThread(): use SwitchToThread() instead of Sleep(0)Simon Marlow2010-01-271-1/+1
|
* fix warningsSimon Marlow2010-01-272-2/+1
|
* catch SIGHUP and SIGTERM and raise an exception (#3656)Simon Marlow2010-01-272-6/+19
|
* define INFINITY and NAN if they don't exist (#2929)Simon Marlow2010-01-271-0/+21
|
* remove suspicious whitespace-only linesSimon Marlow2010-01-271-2/+2
|
* addCoverageTicksToBinds: tolerate a non-existent .hs file (#3803)Simon Marlow2010-01-271-6/+4
|
* avoid using non-standard %zd format specifier (#3804)Simon Marlow2010-01-261-8/+2
|
* Fix signal segfaults on Solaris (#3790)Simon Marlow2010-01-261-1/+8
|
* comment-out an incorrect assertionSimon Marlow2010-01-261-1/+4
|
* Fix a deadlock, and possibly other problemsSimon Marlow2010-01-261-3/+18
| | | | | | | | | | | | | | | | After a bound thread had completed, its TSO remains in the heap until it has been GC'd, although the associated Task is returned to the caller where it is freed and possibly re-used. The bug was that GC was following the pointer to the Task and updating the TSO field, meanwhile the Task had already been recycled (it was being used by exitScheduler()). Confusion ensued, leading to a very occasional deadlock at shutdown, but in principle it could result in other crashes too. The fix is to remove the link between the TSO and the Task when the TSO has completed and the call to schedule() has returned; see comments in Schedule.c.
* When acquiring a spinlock, yieldThread() every 1000 spins (#3553, #3758)Simon Marlow2010-01-224-13/+30
| | | | | | | | | | | | This helps when the thread holding the lock has been descheduled, which is the main cause of the "last-core slowdown" problem. With this patch, I get much better results with -N8 on an 8-core box, although some benchmarks are still worse than with 7 cores. I also added a yieldThread() into the any_work() loop of the parallel GC when it has no work to do. Oddly, this seems to improve performance on the parallel GC benchmarks even when all the cores are busy. Perhaps it is due to reducing contention on the memory bus.
* 'store' should be static (#3835)Simon Marlow2010-01-221-1/+1
|
* Add some missing getStablePtr()s for CAFs that the RTS refers toSimon Marlow2010-01-222-1/+10
| | | | | | | | A recent patch ("Refactor CoreArity a bit") changed the arity of GHC.Conc.runSparks such that it became a CAF, and the RTS was not explicitly retaining it, which led to a crash when the CAF got GC'd. While fixing this I found a couple of other closures that the RTS refers to which weren't getting the correct CAF treatment.
* Remove an out-of-date commentIan Lynagh2010-01-221-6/+0
|
* fix build on WindowsSimon Marlow2010-01-221-1/+1
|
* fix warning on WindowsSimon Marlow2010-01-221-0/+2
|
* Fix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)Simon Marlow2010-01-191-9/+13
| | | | | In 6.14.1 we'll switch these primops to return the exact byte size, but for 6.12.2 we need to fix the docs.
* Include regex.h in Linker.c on OS X tooIan Lynagh2010-01-201-0/+1
|
* We no longer need a prototype for __eprintfIan Lynagh2010-01-201-2/+1
| | | | | It looks like it was only needed on OSX, but it has a prototype in assert.h which now gets #included.
* Fix buildIan Lynagh2010-01-201-1/+0
| | | | Remove a prototype of a function that wasn't defined
* FIX #2615 (linker scripts in .so files)howard_b_golden@yahoo.com2009-12-163-15/+140
| | | | | | | | This patch does not apply to Windows. It only applies to systems with ELF binaries. This is a patch to rts/Linker.c to recognize linker scripts in .so files and find the real target .so shared library for loading.
* Fix Trac #3813: unused variables in GHCi bindingssimonpj@microsoft.com2010-01-207-19/+37
| | | | | | | | | | In a GHCi stmt we don't want to report unused variables, because we don't know the scope of the binding, eg Prelude> x <- blah Fixing this needed a little more info about the context of the stmt, thus the new constructor GhciStmt in the HsStmtContext type.
* Fix Trac #3823, plus warning police in TcRnDriversimonpj@microsoft.com2010-01-202-56/+62
| | | | | | | | | | The immediate reason for this patch is to fix #3823. This was rather easy: all the work was being done but I was returning type_env2 rather than type_env3. An unused-veriable warning would have shown this up, so I fixed all the other warnings in TcRnDriver. Doing so showed up at least two genuine lurking bugs. Hurrah.
* Change how RTS libraries get installed; fixes trac #3794Ian Lynagh2010-01-191-7/+7
|
* Escape some more $s in makefiles, for consistencyIan Lynagh2010-01-191-2/+2
|
* Escape some $s in makefiles for consistencyIan Lynagh2010-01-192-2/+2
|
* Allow GNU-standard --host, --build, --target configure options (#3637)Simon Marlow2010-01-192-18/+148
| | | | Patch contributed by asuffield@suffields.me.uk
* Update some comments about how autoconf/configure worksIan Lynagh2010-01-181-5/+2
|
* Fix a warning messageIan Lynagh2010-01-181-3/+2
| | | | | | We were printing the wrong value, so getting confusing messages like: Function `$wa{v s17LO} [lid]' has 2 call pattterns, but the limit is 3
* Teach the alternative layout rule about mdo and recIan Lynagh2010-01-161-0/+2
|
* Teach the alternative layout rule about $( ... )Ian Lynagh2010-01-161-7/+8
| | | | | It thought the ) needed to close something, but the $( hadn't opened anything.
* Fix typoIan Lynagh2010-01-161-1/+1
|
* Remove declaration of non-existent mark_splimSimon Marlow2009-12-311-1/+0
|
* fix a commentSimon Marlow2009-12-301-1/+1
|
* remove an unnecessary debug trace, duplicated by a traceSchedEventSimon Marlow2009-12-301-1/+0
|
* hide modules properly with haddockSimon Marlow2010-01-132-0/+2
|
* fix for HSCOLOUR_SRCS=NOSimon Marlow2010-01-131-0/+2
|
* Do some recompilation avoidance in GHC.loadModuleSimon Marlow2010-01-122-7/+34
| | | | | | | | | | | GHC.loadModule compiles a module after it has been parsed and typechecked explicity. If we are compiling to object code and there is a valid object file already on disk, then we can skip the compilation step. This is useful in Haddock, when processing a package that uses Template Haskell and hence needs actual compilation, and the package has already been compiled. As usual, the recomp avoidance can be disabled with -fforce-recomp.
* Invoke Haddock directly from the build system, instead of via CabalSimon Marlow2010-01-124-42/+34
| | | | | | | | | | | | | Partly this is cleaner as we only have to preprocess the source files once, but also it is necessary to avoid Haddock recompiling source files when Template Haskell is in use, saving some time in validate and fixing a problem whereby when HADDOCK_DOCS=YES, make always re-haddocks the DPH packages. This also needs an additional fix to GHC. HsColour support still uses Cabal, and hence preprocesses the source files again. We could move this into the build system too, but there is a version dependency that would mean adding extra autoconf stuff.
* refactoring while I try to make sense of the hsc interfaceSimon Marlow2010-01-041-32/+20
|