summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* libffi: backport incorrect detection of selinuxSergei Trofimovich2011-02-082-0/+17
| | | | | | | | | | | | | | | | | | | | This patch unbreaks ghci on GRSEC kernels hardened with TPE (Trusted Path Execution) protection. TPE forbids mmap('rwx') files opened for writes: fd = open (a_file_in_tmp, O_RDWR); mmap (..., PROT_READ | PROT_WRITE | PROT_EXEC, fd); while allows anonymous RWX mappings: mmap (...MAP_ANONYMOUS , PROT_READ | PROT_WRITE | PROT_EXEC, -1); Thanks to klondike for finding it out. The result of a horrible typo. (unreleased yet) upstream also has the patch: http://github.com/atgreen/libffi/commit/eaf444eabc4c78703c0f98ac0197b1619c1b1bef
* Generate the OS X installer from a bindist, rather than from a source treeIan Lynagh2011-02-237-136/+110
|
* Use -h rather than -soname; fixes dynlibs on Solaris 10; trac #4973Ian Lynagh2011-02-221-1/+3
|
* Fix another fundep error (fixes Trac #4969)simonpj@microsoft.com2011-02-216-183/+213
| | | | | | | | | If I had a pound for every hour Dimitrios and I have spent making functional dependencies work right, we'd be rich! We had stupidly caused a 'wanted' to be rewritten by a 'derived', with resulting abject failure. As well as fixing the bug, this patch refactors some more, adds useful assert and comments.
* New codegen: GC calling convention must use registers.Edward Z. Yang2011-02-181-1/+3
| | | | | | | | | | | | | | Previously, on register-deficient architectures like x86-32, the new code generator would emit code for calls to stg_gc_l1, stg_gc_d1 and stg_gc_f1 that pushed their single argument on to the stack, while the functions themselves expected the argument to live in L1, D1 and F1 (respectively). This was because cmmCall with the GC calling convention allocated real registers, not virtual registers. This patch modifies the code for assigning registers/stack slots to use the right calling convention for GC and adds an assertion to ensure it did it properly.
* Added a VECTORISE pragmaManuel M T Chakravarty2011-02-2041-535/+963
| | | | | | | | | | | | | | | - Added a pragma {-# VECTORISE var = exp #-} that prevents the vectoriser from vectorising the definition of 'var'. Instead it uses the binding '$v_var = exp' to vectorise 'var'. The vectoriser checks that the Core type of 'exp' matches the vectorised Core type of 'var'. (It would be quite complicated to perform that check in the type checker as the vectorisation of a type needs the state of the VM monad.) - Added parts of a related VECTORISE SCALAR pragma - Documented -ddump-vect - Added -ddump-vt-trace - Some clean up
* Reenable object splitting on Darwin, now #4013 appears to be fixedIan Lynagh2011-02-191-2/+1
|
* Clarify the "object splitting" variable namesIan Lynagh2011-02-192-4/+4
|
* Fix #4867 (updated; corrects address calculation)gwright@antiope.com2011-02-141-1/+6
| | | | | | | | | | | | | This is a corrected fix for ticket #4867, "ghci displays negative floats incorrectly". The previous patch sometimes gave incorrect offset to values in the __const section of the __TEXT segment. The new patch arranges a zero fixup for non-external, not-global offset table signed relocations. This is apparently what is required, though documentation on this point is scarce. With this change Doubles are negated properly, because the sign bit mask is loaded from the correct offset. This was tested both on HEAD and the 7.0 branch.
* Scale columns in cost-centre-stack report to their contentsMax Bolingbroke2011-02-161-12/+48
|
* Change typechecker-trace output slightlysimonpj@microsoft.com2011-02-171-3/+4
|
* Comments onlysimonpj@microsoft.com2011-02-171-0/+16
|
* Fix Trac #4966simonpj@microsoft.com2011-02-171-5/+30
| | | | | | | | This is just a program that exploits overlapping instances in a delicate way. The fix makes GHC a bit more friendly towards such programs. See Note [Overlap and deriving] in TcSimplify
* Use "on the spot" solving for fundepssimonpj@microsoft.com2011-02-176-337/+509
| | | | | | | | | | | | | | | | | | | | | | | | | | | When we spot an equality arising from a functional dependency, we now use that equality (a "wanted") to rewrite the work-item constraint right away. This avoids two dangers Danger 1: If we send the original constraint on down the pipeline it may react with an instance declaration, and in delicate situations (when a Given overlaps with an instance) that may produce new insoluble goals: see Trac #4952 Danger 2: If we don't rewrite the constraint, it may re-react with the same thing later, and produce the same equality again --> termination worries. To achieve this required some refactoring of FunDeps.lhs (nicer now!). This patch also contains a couple of unrelated improvements * A bad bug in TcSMonad.nestImplicTcS whereby the Tcs tyvars of an outer implication were not untouchable inside * Improved logging machinery for the type constraint solver; use -ddump-cs-trace (probably with a wider default line width -dppr-cols=200 or something)
* Increase exprIsDupable threshold a bitsimonpj@microsoft.com2011-02-151-1/+4
| | | | | | Now that exprIsDupable is less aggressive, test MethSharing wasn't doing enough inlining. Increasing the threshold fixes the problem but the real fix is in Trac #4960.
* Ensure exprIsCheap/exprIsExpandable deal with Cast properlysimonpj@microsoft.com2011-02-151-0/+1
| | | | | | | | This bug was causing a Lint error on the stable branch. For some reason it doesn't show up in HEAD, but it's still worth fixing. The point is that ((f `cast` co) a) is cheap if f has arity>1. This was being gratuitously missed before.
* Do not treat absentError speciallysimonpj@microsoft.com2011-02-152-9/+3
| | | | (This was part of an experiment I abandoned.)
* Fix exprIsDupablesimonpj@microsoft.com2011-02-141-13/+15
| | | | | | | | | It turns out that exprIsDupable would return True for an expression of *arbitrary* size, provide it was a nested bunch of applications in which no function had more than three arguments. That was never the intention, and could give rise to massive code duplication. This patch makes it much less aggressive.
* Better case-of-case transformationsimonpj@microsoft.com2011-02-142-10/+53
| | | | | | | The ThunkSplitting idea in WorkWrap wasn't working at all, leading to Trac #4957. The culprit is really the simplifier which was combining the wrong case continuations. See Note [Fusing case continuations] in Simplify.
* Cleaned up Expr and Vectorisekeller@.cse.unsw.edu.au2011-02-152-31/+13
|
* Fixed two syntax errorskeller@.cse.unsw.edu.au2011-02-141-2/+2
|
* Handling of recursive scalar functions in isScalarLamkeller@cse.unsw.edu.au2011-02-143-33/+57
|
* Added handling of non-recursive module global functions to isScalar checkkeller@cse.unsw.edu.au2011-02-093-22/+40
|
* keller@cse.unsw.edu.au2011-02-021-2/+2
|
* Removed minor bugkeller@cse.unsw.edu.au2011-02-021-1/+1
|
* added handling of data constructors to vectLamkeller@cse.unsw.edu.au2011-02-011-17/+48
|
* pruneSparkQueue: check for tagged pointersSimon Marlow2011-02-141-22/+33
| | | | | | | This was a bug in 6.12.3. I think the problem no longer occurs due to the way sparks are treated as weak pointers, but it doesn't hurt to test for tagged pointers anyway: better to do the test than have a subtle invariant.
* Fix Trac #4953: local let binders can have IdInfo with free namessimonpj@microsoft.com2011-02-141-2/+4
| | | | | | | Local let binders in IfaceExpr never used to have unfoldings, but lately they can (becuase they can have an INLINE pragma). We must take account of the variables mentioned in the pragma when computing the fingerprint.
* Comments onlysimonpj@microsoft.com2011-02-141-4/+4
|
* LLVM: Huge improvement to mangler speed.David Terei2011-02-131-179/+102
| | | | | | | The old llvm mangler was horrible! Very slow due to bad design and code. New version is linear complexity as it should be and far lower coefficients. This fixes trac 4838.
* Fix platform detection in bindistsIan Lynagh2011-02-113-66/+81
| | | | | | | In a bindist, we generate files like the hsc2hs wrapper. This means we need to have the right values for the variables like CONF_GCC_LINKER_OPTS_STAGE1 which in turn means we need to know what platform we're on.
* New plan: push unsolved wanteds inwardssimonpj@microsoft.com2011-02-112-55/+97
| | | | | This fixes Trac #4935. See Note [Preparing inert set for implications]. Lots of comments, but not a lot of code is changed!
* Remove unnecessary import, plus white spacesimonpj@microsoft.com2011-02-111-4/+4
|
* Fix small but egregious error: using un-zonked constraints in simplifyRulesimonpj@microsoft.com2011-02-111-1/+1
| | | | This resulted in double unifications. Fix is trivial.
* makeSolvedByInst is only called on wantedssimonpj@microsoft.com2011-02-111-2/+4
| | | | This patch just adds an assert error.
* Enable DTrace on Solaris; based on a patch from Karel GardasIan Lynagh2011-02-103-9/+43
|
* Use DTrace whenever it's availableIan Lynagh2011-02-101-3/+1
| | | | | Now that we've stopped trying to support 64bit OS X 10.5, the DTrace problems there don't matter.
* replace C++ comments with C comments (Solaris' DTrace fails on C++ comments)Karel Gardas2011-01-122-29/+31
|
* Fix #4867, ghci displays negative floats incorrectlygwright@antiope.com2011-02-091-3/+1
| | | | | | | | | | | | This patch fixes the erroneous relocations that caused the bug in ticket #4867. External addresses and global offset table entries were relocated correctly, but all other relocations were incorrectly calculated. This caused, for example, bad references to constants stored in the __const section of the __TEXT segment. This bug only affected OS X on 64-bit platforms.
* Fix Array sizeof primops to use the correct offset (which happens to be 0, ↵Daniel Peebles2011-02-012-2/+2
| | | | so it worked before anyway). Makes us more future-proof, at least
* Add sizeof(Mutable)Array# primitivesDaniel Peebles2011-01-263-0/+18
|
* fix TRY_ACQUIRE_LOCK on Windows.Simon Marlow2011-02-101-1/+1
|
* constant fold (a + N) - M and (a - N) + MSimon Marlow2011-02-101-2/+11
|
* Recursively call cmmMachOpFold on divides that we turned into shiftsSimon Marlow2011-02-081-3/+3
| | | | There might be more simplification to do.
* Add unboxed tuple support to Template HaskellIan Lynagh2011-02-102-14/+51
|
* Allow TH brackets to contain things of any kindIan Lynagh2011-02-091-2/+2
| | | | You can now quasi-quote things with unboxed types, and unboxed tuples.
* Simpify constraints from a TH bracket eagerlysimonpj@microsoft.com2011-02-091-4/+16
| | | | | See Trac #4949, where having a TH bracket implication was messing things up. Better to get rid of it right away.
* Typo in commentsimonpj@microsoft.com2011-02-091-1/+1
|
* Call the final build system phase "final" rather than ""Ian Lynagh2011-02-076-11/+15
|
* Fix bug introduced in "Implement fuzzy matching for the Finder"Simon Marlow2011-02-081-1/+1
| | | | | The finder was reporting a hidden package when it meant a hidden module, and vice versa (looks like a typo).