Ian Lynagh [Thu, 24 Jan 2008 15:12:23 +0000 (15:12 +0000)]
Make sL strict in /both/ arguments to L
Ian Lynagh [Thu, 24 Jan 2008 15:01:37 +0000 (15:01 +0000)]
A touch more strictness in the parser
Ian Lynagh [Thu, 24 Jan 2008 14:53:11 +0000 (14:53 +0000)]
Add a bit of strictness to the parser
Ian Lynagh [Wed, 23 Jan 2008 21:19:17 +0000 (21:19 +0000)]
Use nilFS
Ian Lynagh [Wed, 23 Jan 2008 17:41:53 +0000 (17:41 +0000)]
Whitespace only
andy@galois.com [Sat, 26 Jan 2008 21:06:07 +0000 (21:06 +0000)]
Fix #2062: foldr1 problem in hpc tool
simonpj@microsoft.com [Fri, 25 Jan 2008 16:31:01 +0000 (16:31 +0000)]
Fix do-notation so that it works with -DDEBUG
simonpj@microsoft.com [Fri, 25 Jan 2008 10:46:16 +0000 (10:46 +0000)]
Be a little keener to inline
This is really a bug. A saturated call in an "interesting" context
should inline, but there was a strange "n_val_args > 0" condition, which
was stopping it. Reported by Roman.
Ian Lynagh [Thu, 24 Jan 2008 14:18:00 +0000 (14:18 +0000)]
Fix the build
Work around various problems caused by some of the monadification patches
not being applied.
Twan van Laarhoven [Thu, 17 Jan 2008 22:05:53 +0000 (22:05 +0000)]
Replace ioToTcRn with liftIO
Twan van Laarhoven [Thu, 17 Jan 2008 21:58:35 +0000 (21:58 +0000)]
Remove unused custom versions of monad combinators from IOEnv
Twan van Laarhoven [Thu, 17 Jan 2008 21:57:52 +0000 (21:57 +0000)]
Remove unused custom versions of monad combinators from UniqSupply
Twan van Laarhoven [Thu, 17 Jan 2008 21:52:33 +0000 (21:52 +0000)]
Replace remaining uses of ioToIOEnv by liftIO, remove ioToIOEnv
Twan van Laarhoven [Thu, 17 Jan 2008 21:50:36 +0000 (21:50 +0000)]
Monadify iface/BuildTyCl: use return
Twan van Laarhoven [Thu, 17 Jan 2008 21:49:38 +0000 (21:49 +0000)]
Monadify iface/TcIface: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:44:41 +0000 (21:44 +0000)]
Monadify iface/MkIface: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:42:33 +0000 (21:42 +0000)]
Monadify iface/LoadIface: use return and liftIO
Twan van Laarhoven [Thu, 17 Jan 2008 21:40:41 +0000 (21:40 +0000)]
Monadify iface/IfaceEnv: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:38:50 +0000 (21:38 +0000)]
Monadify typecheck/TcRnMonad: use return, standard monad functions and liftIO
Twan van Laarhoven [Thu, 17 Jan 2008 21:36:36 +0000 (21:36 +0000)]
Monadify typecheck/TcEnv: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:33:52 +0000 (21:33 +0000)]
Monadify typecheck/TcRnDriver: use return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:33:07 +0000 (21:33 +0000)]
Monadify typecheck/TcMatches: use return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:32:42 +0000 (21:32 +0000)]
Monadify typecheck/TcMType: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:30:40 +0000 (21:30 +0000)]
Monadify typecheck/TcInstDcls: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:28:22 +0000 (21:28 +0000)]
Monadify typecheck/TcHsType: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:22:00 +0000 (21:22 +0000)]
Monadify typecheck/TcSimplify: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:19:11 +0000 (21:19 +0000)]
Monadify typecheck/TcSplice: use do and return
Twan van Laarhoven [Thu, 17 Jan 2008 21:17:46 +0000 (21:17 +0000)]
Monadify typecheck/TcTyClsDecls: use return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:15:58 +0000 (21:15 +0000)]
Monadify typecheck/TcDefaults: use return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:15:07 +0000 (21:15 +0000)]
Monadify typecheck/TcDeriv: use return
Twan van Laarhoven [Thu, 17 Jan 2008 21:14:39 +0000 (21:14 +0000)]
Monadify typecheck/TcClassDcl: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:10:35 +0000 (21:10 +0000)]
Monadify typecheck/TcBinds: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:08:18 +0000 (21:08 +0000)]
Monadify typecheck/TcArrows: use do and return
Twan van Laarhoven [Thu, 17 Jan 2008 21:06:55 +0000 (21:06 +0000)]
Monadify typecheck/Inst: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 21:02:13 +0000 (21:02 +0000)]
Monadify typecheck/TcUnify: use do, return and standard monad functions
there may be some accidental tab->space conversion
Twan van Laarhoven [Thu, 17 Jan 2008 20:55:05 +0000 (20:55 +0000)]
Monadify typecheck/TcTyFuns: use standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:54:23 +0000 (20:54 +0000)]
Monadify typecheck/TcPat: use return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:53:07 +0000 (20:53 +0000)]
Monadify typecheck/TcRules: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:49:34 +0000 (20:49 +0000)]
Monadify typecheck/TcForeign: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:46:03 +0000 (20:46 +0000)]
Monadify typecheck/TcExpr: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:43:30 +0000 (20:43 +0000)]
Monadify specialise/Specialise: use do, return, standard monad functions and MonadUnique
Twan van Laarhoven [Thu, 17 Jan 2008 20:38:42 +0000 (20:38 +0000)]
Monadify specialise/SpecConstr: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:30:42 +0000 (20:30 +0000)]
Monadify stgSyn/StgLint
- made LintM a newtype instead of a type synonym
- use do, return and standard monad functions
- use MaybeT where `thenMaybeL` was used
- removed custom versions of monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:26:19 +0000 (20:26 +0000)]
Monadify stgSyn/CoreToStg
- made LneM a newtype instead of a type synonym
- use do, return and standard monad functions
- removed custom versions of monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 20:21:44 +0000 (20:21 +0000)]
Remove generic monad function from State, it was moved to MonadUtils
Twan van Laarhoven [Thu, 17 Jan 2008 20:20:51 +0000 (20:20 +0000)]
Added MaybeT monad transformer to utils/Maybes
Twan van Laarhoven [Thu, 17 Jan 2008 20:19:53 +0000 (20:19 +0000)]
Removed unused Maybe functions, use the standard Maybe monad instead
Twan van Laarhoven [Thu, 17 Jan 2008 20:18:12 +0000 (20:18 +0000)]
MonadIO instance for IOEnv
Twan van Laarhoven [Thu, 17 Jan 2008 20:03:54 +0000 (20:03 +0000)]
Monadify simplCore/SimplMonad: custom monad functions are no longer needed
Twan van Laarhoven [Thu, 17 Jan 2008 20:02:28 +0000 (20:02 +0000)]
Monadify simplCore/SimplMonad: use MonadUnique instance instead of custom functions
Twan van Laarhoven [Thu, 17 Jan 2008 19:59:58 +0000 (19:59 +0000)]
Monadify simplCore/SetLevels: use do, return, standard monad functions and MonadUnique
Twan van Laarhoven [Thu, 17 Jan 2008 19:56:25 +0000 (19:56 +0000)]
Monadify simplCore/SimplUtils: use do, return, standard monad functions and MonadUnique
Twan van Laarhoven [Thu, 17 Jan 2008 19:54:08 +0000 (19:54 +0000)]
Monadify simplCore/Simplify: use do and return
Twan van Laarhoven [Thu, 17 Jan 2008 19:52:55 +0000 (19:52 +0000)]
Monadify simplCore/SimplEnv: use standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 19:51:49 +0000 (19:51 +0000)]
Monadify simplCore/SimplCore: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 19:44:17 +0000 (19:44 +0000)]
Monadify profiling/SCCfinal
- change monad type synonym into a newtype
- use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 19:31:54 +0000 (19:31 +0000)]
Monadify coreSyn/CorePrep: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 19:08:23 +0000 (19:08 +0000)]
Monadify rename/RnTypes: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 19:00:33 +0000 (19:00 +0000)]
Monadify rename/RnPat: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 18:58:37 +0000 (18:58 +0000)]
Monadify rename/RnNames: use return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 18:53:30 +0000 (18:53 +0000)]
seqMaybe is more commonly known as mplus
Twan van Laarhoven [Thu, 17 Jan 2008 18:43:54 +0000 (18:43 +0000)]
Monadify rename/RnBinds: use do, return and standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 18:04:49 +0000 (18:04 +0000)]
Monadify stranal/StrictAnal: use the State monad instead of a custom thing
Twan van Laarhoven [Thu, 17 Jan 2008 18:00:22 +0000 (18:00 +0000)]
Monadify stranal/WwLib: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:56:16 +0000 (17:56 +0000)]
Added MonadUnique class for monads that have a unique supply
Twan van Laarhoven [Thu, 17 Jan 2008 17:50:07 +0000 (17:50 +0000)]
Monadify stranal/WorkWrap: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:46:56 +0000 (17:46 +0000)]
Added Applicative and Functor instances for State monad
Twan van Laarhoven [Thu, 17 Jan 2008 17:44:32 +0000 (17:44 +0000)]
Monadify deSugar/DsMonad: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:41:30 +0000 (17:41 +0000)]
Monadify deSugar/Desugar: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:38:56 +0000 (17:38 +0000)]
Monadify deSugar/DsUtils: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:32:05 +0000 (17:32 +0000)]
Monadify deSugar/DsListComp: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:28:43 +0000 (17:28 +0000)]
Monadify deSugar/DsForeign: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:22:28 +0000 (17:22 +0000)]
Monadify deSugar/DsGRHSs: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 16:40:55 +0000 (16:40 +0000)]
Monadify deSugar/DsExpr: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 16:26:44 +0000 (16:26 +0000)]
Added Applicative instance for IOEnv
Twan van Laarhoven [Thu, 17 Jan 2008 16:19:39 +0000 (16:19 +0000)]
Add 'util/MonadUtils.hs' with common monad (and applicative) combinators
Twan van Laarhoven [Thu, 17 Jan 2008 17:34:39 +0000 (17:34 +0000)]
Monadify deSugar/MatchLit: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 17:33:36 +0000 (17:33 +0000)]
Monadify deSugar/Match: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 16:53:34 +0000 (16:53 +0000)]
Monadify deSugar/DsCCall: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 16:51:14 +0000 (16:51 +0000)]
Monadify deSugar/DsArrows: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 16:47:46 +0000 (16:47 +0000)]
Monadify deSugar/DsBinds: use do, return, applicative, standard monad functions
Twan van Laarhoven [Thu, 17 Jan 2008 16:31:12 +0000 (16:31 +0000)]
Added MASSERT macro for assertions in do notation
Simon Marlow [Thu, 24 Jan 2008 09:29:35 +0000 (09:29 +0000)]
FIX BUILD wrong imports on non-Windows
Simon Marlow [Wed, 23 Jan 2008 16:31:45 +0000 (16:31 +0000)]
Show CmdLineError exceptions as "<command line>: ..."
instead of something like "ghc-6.8.2: ...", which causes problems in
the test suite. In any case, "<command line>" seems a more
appropriate context for these errors, the only question is whether
we're using CmdLineError incorrectly anywhere.
Simon Marlow [Wed, 23 Jan 2008 16:07:03 +0000 (16:07 +0000)]
FIX #1750: in isBrokenPackage, don't loop if the deps are recursive
Simon Marlow [Wed, 23 Jan 2008 16:06:35 +0000 (16:06 +0000)]
FIX #1750: throw out mutually recursive groups of packages
Ian Lynagh [Wed, 23 Jan 2008 17:39:33 +0000 (17:39 +0000)]
Windows now doesn't need different values for DQ in the build system
Ian Lynagh [Wed, 23 Jan 2008 16:01:39 +0000 (16:01 +0000)]
Fix setting argv[0] in shell-utils.c on Windows
Ian Lynagh [Wed, 23 Jan 2008 15:17:24 +0000 (15:17 +0000)]
Escape arguments for Windows in shell-tools.c
simonpj@microsoft.com [Wed, 23 Jan 2008 13:40:12 +0000 (13:40 +0000)]
Attach the INLINE Activation pragma to any automatically-generated specialisations
Another idea suggested by Roman, happily involving a one-line change. Here's
the new Note in Specialise:
Note [Auto-specialisation and RULES]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Consider:
g :: Num a => a -> a
g = ...
f :: (Int -> Int) -> Int
f w = ...
{-# RULE f g = 0 #-}
Suppose that auto-specialisation makes a specialised version of
g::Int->Int That version won't appear in the LHS of the RULE for f.
So if the specialisation rule fires too early, the rule for f may
never fire.
It might be possible to add new rules, to "complete" the rewrite system.
Thus when adding
RULE forall d. g Int d = g_spec
also add
RULE f g_spec = 0
But that's a bit complicated. For now we ask the programmer's help,
by *copying the INLINE activation pragma* to the auto-specialised rule.
So if g says {-# NOINLINE[2] g #-}, then the auto-spec rule will also
not be active until phase 2.
simonpj@microsoft.com [Tue, 22 Jan 2008 12:26:13 +0000 (12:26 +0000)]
Tidy up the treatment of SPECIALISE pragmas
Remove the now-redundant "const-dicts" field in SpecPrag
In dsBinds, abstract over constant dictionaries in the RULE.
This avoids the creation of a redundant, duplicate, rule later
in the Specialise pass, which was happening before.
There should be no effect on performance either way, just less
duplicated code, and the compiler gets a little simpler.
simonpj@microsoft.com [Tue, 22 Jan 2008 12:25:47 +0000 (12:25 +0000)]
Comments only
Simon Marlow [Wed, 23 Jan 2008 14:32:07 +0000 (14:32 +0000)]
FIX #1838, #1987: change where GHCi searches for config files
6.6 behaviour:
- ./.ghci
- $HOME/.ghci
6.8.[12] behaviour:
- ./.ghci
- Windows: c:/Documents and Settings/<user>/.ghci
- Unix: $HOME/.ghci
6.10 (and 6.8.3 when this is merged):
- ./.ghci
- Windows: c:/Documents and Settings/<user>/Application Data/ghc/ghci.conf
- Unix: $HOME/.ghc/ghci.conf
- $HOME/.ghci
We will need to document this in the 6.8.3 release notes because it
may affect Windows users who have adapted their setup to 6.8.[12].
Simon Marlow [Tue, 22 Jan 2008 15:29:43 +0000 (15:29 +0000)]
FIX #1767 :show documentation claimed too much
Also put the :help docs back within 80 columns
Simon Marlow [Tue, 22 Jan 2008 14:49:23 +0000 (14:49 +0000)]
fix syntax-error output for :show
Simon Marlow [Tue, 22 Jan 2008 16:18:11 +0000 (16:18 +0000)]
This goes with the patch for #1839, #1463
Simon Marlow [Tue, 22 Jan 2008 14:09:57 +0000 (14:09 +0000)]
use pathSeparator instead of '/'
Simon Marlow [Tue, 22 Jan 2008 13:20:47 +0000 (13:20 +0000)]
cleanup only
claus.reinke@talk21.com [Mon, 21 Jan 2008 16:17:44 +0000 (16:17 +0000)]
FIX #1839, #1463, by supporting ghc-pkg bulk queries with substring matching
- #1839 asks for a ghc-pkg dump feature, #1463 for the ability
to query the same fields in several packages at once.
- this patch enables substring matching for packages in 'list',
'describe', and 'field', and for modules in find-module. it
also allows for comma-separated multiple fields in 'field'.
substring matching can optionally ignore cases to avoid the
rather unpredictable capitalisation of packages.
- the patch is not quite as full-featured as the one attached
to #1839, but avoids the additional dependency on regexps.
open ended substrings are indicated by '*' (only the three
forms prefix*, *suffix, *infix* are supported)
- on windows, the use of '*' for package/module name globbing
leads to conflicts with filename globbing: by default, windows
programs are self-globbing, and bash adds another level of
globbing on top of that. it seems impossible to escape '*'
from both levels of globbing, so we disable default globbing
for ghc-pkg and ghc-pkg-inplace. users of bash will still
have filename globbing available, users of cmd won't.
- if it is considered necessary to reenable filename globbing
for cmd users, it should be done selectively, only for
filename parameters. to this end, the patch includes a
glob.hs program which simply echoes its parameters after
filename globbing. see the commented out glob command in
Main.hs for usage or testing.
- this covers both tickets, and permits for the most common
query patterns (finding all packages contributing to the
System. hierarchy, finding all regex or string packages,
listing all package maintainers or haddock directories,
..), which not only i have wanted to have for a long time.
examples (the quotes are needed to escape shell-based
filename globbing and should be omitted in cmd.exe):
ghc-pkg list '*regex*' --ignore-case
ghc-pkg list '*string*' --ignore-case
ghc-pkg list '*gl*' --ignore-case
ghc-pkg find-module 'Data.*'
ghc-pkg find-module '*Monad*'
ghc-pkg field '*' name,maintainer
ghc-pkg field '*' haddock-html
ghc-pkg describe '*'
simonpj@microsoft.com [Mon, 21 Jan 2008 16:55:29 +0000 (16:55 +0000)]
Wibble to the OccurAnal fix for RULEs and loop-breakers