summaryrefslogtreecommitdiff
path: root/compiler/utils
Commit message (Collapse)AuthorAgeFilesLines
* Support code generation for unboxed-tuple function argumentsunboxed-tuple-arguments2Max Bolingbroke2012-05-151-1/+11
| | | | | | | | | | | This is done by a 'unarisation' pre-pass at the STG level which translates away all (live) binders binding something of unboxed tuple type. This has the following knock-on effects: * The subkind hierarchy is vastly simplified (no UbxTupleKind or ArgKind) * Various relaxed type checks in typechecker, 'foreign import prim' etc * All case binders may be live at the Core level
* add support for ARM hard-float ABI (fixes #5914)Karel Gardas2012-04-271-2/+10
| | | | | | | This patch enhances Platform's ArchARM to include ARM ABI value. It also tweaks configure machinery to detect hard-float ABI and to set it wherever needed. Finally when hard-float ABI is in use, pass appropriate compiler option to the LLVM's llc. Fixes #5914.
* Allow threads in GHCi to receive BlockedIndefintely* exceptions (#2786)Simon Marlow2012-04-121-9/+46
| | | | | | This is a partial fix for #2786. It seems we still don't get NonTermination exceptions for interpreted computations, but we do now get the BlockedIndefinitely family.
* Prevent nested TH exceptions from bubbling up to the top level (#5976)Paolo Capriotti2012-04-031-1/+13
|
* Remove Show instance for ForestSimon Peyton Jones2012-03-281-6/+0
| | | | | | | | | A Forest is just a list, and we have a Show instance for lists already. We don't need a special Show instance for Forests. If we change our minds we can add a newtype, but I don't think it's worth it. Fixes Trac #5960
* Merge remote-tracking branch 'origin/master' into type-natsIavor S. Diatchki2012-03-191-3/+2
|\
| * Improve debug WARNING messageSimon Peyton Jones2012-03-141-3/+2
| |
* | Merge remote-tracking branch 'origin/master' into type-natsIavor S. Diatchki2012-03-137-803/+838
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | Conflicts: compiler/coreSyn/CoreLint.lhs compiler/deSugar/DsBinds.lhs compiler/hsSyn/HsTypes.lhs compiler/iface/IfaceType.lhs compiler/rename/RnHsSyn.lhs compiler/rename/RnTypes.lhs compiler/stgSyn/StgLint.lhs compiler/typecheck/TcHsType.lhs compiler/utils/ListSetOps.lhs
| * Add Haiku platform (#5828)Paolo Capriotti2012-03-071-0/+2
| |
| * Improved debug printing with -dverbose-core2coreSimon Peyton Jones2012-03-041-34/+32
| | | | | | | | (Roman wanted this.)
| * White space onlySimon Peyton Jones2012-03-021-4/+4
| |
| * Replace createDirectoryHierarchy with createDirectoryIfMissing TrueTakano Akio2012-02-271-14/+2
| | | | | | | | | | | | createDirectoryHierarchy consisted of an existence test followed by createDirectory, which failed if that directory was creted just after the test. createDirectoryifMissing does not have this problem.
| * Fix warnings in utils/GraphColor.hsIan Lynagh2012-02-261-4/+26
| |
| * Whitespace only in utils/GraphColor.hsIan Lynagh2012-02-261-286/+281
| |
| * Change -X flags into LANGUAGE pragmasIan Lynagh2012-02-261-1/+3
| |
| * Fix warnings in utils/GraphOps.hsIan Lynagh2012-02-261-7/+31
| |
| * Whitespace only in utils/GraphOps.hsIan Lynagh2012-02-261-433/+432
| |
| * Mainly tidying up pretty printing of typesSimon Peyton Jones2012-02-161-12/+17
| | | | | | | | | | including (a) centralising Outputable.paBrackets (b) printing the quote on promoted TyCon/DataCon
* | Merge remote-tracking branch 'origin/master' into type-natsIavor S. Diatchki2012-02-121-9/+11
|\ \ | |/ | | | | | | Conflicts: compiler/coreSyn/CoreLint.lhs
| * Add dragonfly support; based on a patch from Goetz IsenmannIan Lynagh2012-02-111-9/+11
| |
* | Merge remote-tracking branch 'origin/master' into type-natsIavor S. Diatchki2012-01-243-6/+47
|\ \ | |/ | | | | | | Conflicts: compiler/typecheck/TcEvidence.lhs
| * Fix validateIan Lynagh2012-01-191-0/+5
| | | | | | | | | | | | | | | | This patch defines a flag -fno-warn-pointless-pragmas, and uses it to disable some warnings in the containers package. Along the way, also made a ContainsDynFlags class, and added a HasDynFlags instance for IOEnv (and thus TcRnIf and DsM).
| * Switch to using the time package, rather than old-timeIan Lynagh2012-01-142-3/+39
| |
| * Add extra Num constraints since the Num superclass of Bits is removedBas van Dijk2012-01-141-3/+3
| |
* | Merge remote-tracking branch 'origin/master' into type-natsIavor S. Diatchki2012-01-071-13/+9
|\ \ | |/
| * KFreeBSD is also an ELF binaryJoachim Breitner2012-01-041-0/+2
| | | | | | | | Fixes: #5733
| * osElfTarget should default to False (#5733)Simon Marlow2012-01-041-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | Another portabilty regression: before Platform we used to use elf_OBJ_FORMAT: #if linux_TARGET_OS || freebsd_TARGET_OS || openbsd_TARGET_OS || solaris2_TARGET_OS #define elf_OBJ_FORMAT 1 #endif which defaults to undefined on unknown platforms. Defaulting to non-ELF is correct, it just means that we won't rely on ELF-specific functionality. I've added a comment to explain that.
| * Store the word size as determined by configure, in the settings file (#5735)Simon Marlow2012-01-041-9/+2
| | | | | | | | | | Now target32bit works for all targets without any manual intervention, as it should do. #5735 was a portability regression.
* | Merge branch 'master' into type-natsIavor S. Diatchki2011-12-292-56/+44
|\ \ | |/ | | | | | | | | Conflicts: compiler/typecheck/TcCanonical.lhs compiler/typecheck/TcSMonad.lhs
| * Print more informative sizes in -dshow-passes,Simon Peyton Jones2011-12-291-1/+10
| | | | | | | | | | and add intWithCommas to Outputable for printing large Int/Integers
| * Tabs -> SpacesDavid Terei2011-12-191-33/+28
| |
| * Merge branch 'master' of http://darcs.haskell.org//ghcSimon Peyton Jones2011-12-191-8/+0
| |\
| * | Tidy up pretty-printing for variablesSimon Peyton Jones2011-12-191-22/+6
| | | | | | | | | | | | | | | | | | | | | | | | We already have a class OutputableBndr; this patch adds methods pprInfixOcc and pprPrefixOcc, so that we can get rid of the hideous hack (the old) Outputable.pprHsVar. The hack was exposed by Trac #5657, which is thereby fixed.
* | | Remove tabs, again.Iavor S. Diatchki2011-12-181-1/+1
| | |
* | | Remove tabs, so that I can push.Iavor S. Diatchki2011-12-181-9/+3
| |/ |/|
* | Remove some dead codeIan Lynagh2011-12-151-8/+0
|/
* Remove unused Interval module.David Terei2011-12-111-116/+0
| | | | Patch from Michal Terepeta <michal.terepeta@gmail.com>
* Detect cases where as(1) doesn't recognise .ident directive (#5408)PHO2011-12-081-0/+1
| | | | .ident directives are usually ignored by as(1), and in some cases (like Darwin/PPC) they even raise an error.
* Include a stack trace in the panic message, when GHC is compiled profiled.Simon Marlow2011-11-301-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I tried this out on the panic we're currently getting for #3103: ghc-stage2: panic! (the 'impossible' happened) (GHC version 7.3.20111128 for x86_64-unknown-linux): tcIfaceGlobal (local): not found: base:GHC.Word.W#{d 6w} [(32R, Type constructor `base:GHC.Word.Word{tc 32R}'), (r6O, Identifier `base:GHC.Word.$fNumWord{v r6O}'), (r6P, Identifier `base:GHC.Word.$fEqWord{v r6P}'), (r6Q, Identifier `base:GHC.Word.$fNumWord1{v r6Q}'), (r6R, Identifier `base:GHC.Word.$fNumWord2{v r6R}'), (r6S, Data constructor `base:GHC.Word.W#{d r6S}'), (r6U, Identifier `base:GHC.Word.W#{v r6U}'), (r75, Identifier `base:GHC.Word.$fNumWord_$csignum{v r75}'), (r76, Identifier `base:GHC.Word.$fEqWord_$c/={v r76}'), (r77, Identifier `base:GHC.Word.$fEqWord_$c=={v r77}')] { Main.main GHC.defaultErrorHandler GHC.runGhc GhcMonad.>>= GhcMonad.>>=.\ Main.main' Main.doMake GhcMake.load GhcMake.load2 GhcMake.upsweep GhcMake.upsweep.upsweep' GhcMake.reTypecheckLoop GhcMake.typecheckLoop GhcMake.typecheckLoop.\ TcRnMonad.initIfaceCheck TcRnMonad.initTcRnIf IOEnv.runIOEnv IOEnv.thenM IOEnv.thenM.\ TcIface.typecheckIface TcIface.typecheckIface.\ LoadIface.loadDecls LoadIface.loadDecl TcIface.tcIfaceDecl TcIface.tc_iface_decl TcIface.tcIdInfo MonadUtils.foldlM TcIface.tcIdInfo.tcPrag TcIface.tcUnfolding TcIface.tcPragExpr TcIface.tcIfaceExpr TcIface.tcIfaceAlt TcIface.tcIfaceDataCon }
* This patch includes:Dimitrios Vytiniotis2011-11-281-2/+11
| | | | | | | | | | | | | 0) Typo in panic message. 1) prioritization of equalities over family equalities in the worklists. 2) rewriting of inert substitutions and solveds on-the-spot instead of kicking them out in the inerts. This required a monadic map over substitutions hence the modifications in UniqFM. 3) Just comments and removing stale commented code. 4) Useful SCC for simplifyInfer. 5) Making CoreStats outputable.
* Fixes for NetBSDIan Lynagh2011-11-251-0/+2
| | | | | Based on a patch from Arnaud Degroote <degroote@NetBSD.org> in trac #5480.
* Remove registerised code for dead architectures: mips, ia64, alpha,David Terei2011-11-221-6/+0
| | | | hppa1, m68k
* Tabs -> Spaces + formatting fixesDavid Terei2011-11-162-166/+163
|
* New kind-polymorphic coreJose Pedro Magalhaes2011-11-112-6/+8
| | | | | | | | | This big patch implements a kind-polymorphic core for GHC. The current implementation focuses on making sure that all kind-monomorphic programs still work in the new core; it is not yet guaranteed that kind-polymorphic programs (using the new -XPolyKinds flag) will work. For more information, see http://haskell.org/haskellwiki/GHC/Kinds
* Fix #437: recompilation check includes flagsDavid Terei2011-11-091-11/+21
|
* Some code cleaningDavid Terei2011-11-081-1/+1
|
* Fix bitrotted NCG_DEBUG code, and switch to using a Haskell conditionalIan Lynagh2011-11-051-1/+9
|
* Use -fwarn-tabs when validatingIan Lynagh2011-11-0416-0/+112
| | | | | We only use it for "compiler" sources, i.e. not for libraries. Many modules have a -fno-warn-tabs kludge for now.
* Add some documentation to IOEnv.David Terei2011-10-251-0/+4
|
* Finish fixing #5529: Require that constructors are imported from all typesIan Lynagh2011-10-211-0/+5
| | | | | | We used to have a hack for Foreign.C.Types and System.Posix.Types, but I've removed that now. We also mark any constructors that we look through as "used", so that we don't get warnings about unused imports.