summaryrefslogtreecommitdiff
path: root/compiler/utils/IOEnv.hs
Commit message (Collapse)AuthorAgeFilesLines
* 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).
* Add some documentation to IOEnv.David Terei2011-10-251-0/+4
|
* Make updates to the external package state atomic.Thomas Schilling2009-08-161-2/+15
|
* Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263Max Bolingbroke2009-07-011-1/+1
|
* Remove legacy code that isn't used now that we require GHC >= 6.8Ian Lynagh2009-05-241-6/+0
|
* disable MonadPlus instance that doesn't compile with 6.6Simon Marlow2008-11-061-0/+6
|
* Add (a) CoreM monad, (b) new Annotations featuresimonpj@microsoft.com2008-10-301-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch, written by Max Bolingbroke, does two things 1. It adds a new CoreM monad (defined in simplCore/CoreMonad), which is used as the top-level monad for all the Core-to-Core transformations (starting at SimplCore). It supports * I/O (for debug printing) * Unique supply * Statistics gathering * Access to the HscEnv, RuleBase, Annotations, Module The patch therefore refactors the top "skin" of every Core-to-Core pass, but does not change their functionality. 2. It adds a completely new facility to GHC: Core "annotations". The idea is that you can say {#- ANN foo (Just "Hello") #-} which adds the annotation (Just "Hello") to the top level function foo. These annotations can be looked up in any Core-to-Core pass, and are persisted into interface files. (Hence a Core-to-Core pass can also query the annotations of imported things.) Furthermore, a Core-to-Core pass can add new annotations (eg strictness info) of its own, which can be queried by importing modules. The design of the annotation system is somewhat in flux. It's designed to work with the (upcoming) dynamic plug-ins mechanism, but is meanwhile independently useful. Do not merge to 6.10!
* Use a proper exception for IOEnvFailure, not just a UserErrorIan Lynagh2008-10-031-3/+14
|
* Use an extensible-exceptions package when bootstrappingIan Lynagh2008-10-031-4/+0
| | | | | | | Ifdefs for whether we had extensible exceptions or not were spreading through GHC's source, and things would only have got worse for the next 2-3 years, so instead we now use an implementation of extensible exceptions built on top of the old exception type.
* Don't capture error calls in tryUserpepe2008-09-261-1/+1
| | | | | | | A previous patch slightly changed the semantics of tryUser. This patch restores the original behaviour (as expected in :print)
* Follow changes in the base libraryIan Lynagh2008-07-311-3/+9
| | | | | TopHandler now uses the new extensible exceptions module, so we need to interact with it using the new types.
* Properly comment out unused pragmasIan Lynagh2008-07-201-14/+14
| | | | | | | We now say -- {-# SPECIALIZE ... rather than {-# -- SPECIALIZE ...
* Fix warnings in IOEnvIan Lynagh2008-02-181-14/+8
|
* Whitespace onlyIan Lynagh2008-02-181-24/+24
|
* Remove unused custom versions of monad combinators from IOEnvTwan van Laarhoven2008-01-171-70/+21
|
* Replace remaining uses of ioToIOEnv by liftIO, remove ioToIOEnvTwan van Laarhoven2008-01-171-4/+0
|
* MonadIO instance for IOEnvTwan van Laarhoven2008-01-171-6/+9
|
* Added Applicative instance for IOEnvTwan van Laarhoven2008-01-171-6/+10
|
* Add anyM to IOEnvsimonpj@microsoft.com2007-10-271-1/+6
|
* Comments onlysimonpj@microsoft.com2007-10-101-1/+3
|
* Move OPTIONS pragmas above commentsIan Lynagh2007-09-211-6/+6
| | | | Fixes building with -Werror (i.e. validate) and GHC < 6.6
* Fix CodingStyle#Warnings URLsIan Lynagh2007-09-041-1/+1
|
* Use OPTIONS rather than OPTIONS_GHC for pragmasIan Lynagh2007-09-031-2/+2
| | | | | | | Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
* Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modulesIan Lynagh2007-09-011-0/+7
|
* Make a Functor (IOEnv m) instance so it satisfies the new Quasi requirementsIan Lynagh2007-03-221-0/+3
|
* Module header tidyup #2Simon Marlow2006-10-111-4/+6
| | | | Push this further along, and fix build problems in the first patch.
* Interface file optimisation and removal of nameParentSimon Marlow2006-10-111-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This large commit combines several interrelated changes: - IfaceSyn now contains actual Names rather than the special IfaceExtName type. The binary interface file contains a symbol table of Names, where each entry is a (package, ModuleName, OccName) triple. Names in the IfaceSyn point to entries in the symbol table. This reduces the size of interface files, which should hopefully improve performance (not measured yet). The toIfaceXXX functions now do not need to pass around a function from Name -> IfaceExtName, which makes that code simpler. - Names now do not point directly to their parents, and the nameParent operation has gone away. It turned out to be hard to keep this information consistent in practice, and the parent info was only valid in some Names. Instead we made the following changes: * ImportAvails contains a new field imp_parent :: NameEnv AvailInfo which gives the family info for any Name in scope, and is used by the renamer when renaming export lists, amongst other things. This info is thrown away after renaming. * The mi_ver_fn field of ModIface now maps to (OccName,Version) instead of just Version, where the OccName is the parent name. This mapping is used when constructing the usage info for dependent modules. There may be entries in mi_ver_fn for things that are not in scope, whereas imp_parent only deals with in-scope things. * The md_exports field of ModDetails now contains [AvailInfo] rather than NameSet. This gives us family info for the exported names of a module. Also: - ifaceDeclSubBinders moved to IfaceSyn (seems like the right place for it). - heavily refactored renaming of import/export lists. - Unfortunately external core is now broken, as it relied on IfaceSyn. It requires some attention.
* Reorganisation of the source treeSimon Marlow2006-04-071-0/+208
Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.