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
Simon Marlow [Mon, 21 Jan 2008 14:59:35 +0000 (14:59 +0000)]
FIX #2049, another problem with the module context on :reload
The previous attempt to fix this (#1873, #1360) left a problem that
occurred when the first :load of the program failed (#2049).
Now I've implemented a different strategy: between :loads, we remember
all the :module commands, and just replay them after a :reload. This
is in addition to remembering all the package modules added with
:module, which is orthogonal.
This approach is simpler than the previous one, and seems to do the
right thing in all the cases I could think of. Let's hope this is the
last bug in this series...
Simon Marlow [Mon, 21 Jan 2008 11:18:35 +0000 (11:18 +0000)]
Increase the bar for bootstrapping GHC to 6.4 (HEAD only)
- remove $(ghc_ge_601), $(ghc_ge_602), $(ghc_ge_603)
- configure now checks the GHC version number
- there are probably various cleanups that we can now do in compat/
and compiler/, but I haven't done those yet.
simonpj@microsoft.com [Mon, 21 Jan 2008 13:59:09 +0000 (13:59 +0000)]
Do not worker/wrapper INLINE things, even if they are in a recursive group
This patch stops the worker/wrapper transform working on an INLINE thing,
even if it's in a recursive group. It might not be the loop breaker. Indeed
a recursive group might have no loop breaker, if the only recursion is
through rules.
Again, this change was provoked by one of Roman's NDP libraries.
Specifically the Rec { splitD, splitJoinD } group in
Data.Array.Parallel.Unlifted.Distributed.Arrays
Simon
simonpj@microsoft.com [Mon, 21 Jan 2008 13:56:54 +0000 (13:56 +0000)]
Make the loop-breaking algorithm a bit more liberal, where RULES are involved
This is another gloss on the now-quite-subtle and heavily-documented algorithm
for choosing loop breakers.
This fix, provoked by Roman's NDP library, makes sure that when we are choosing
a loop breaker we only take into account variables free on the *rhs* of a rule
not the *lhs*.
Most of the new lines are comments!
simonpj@microsoft.com [Mon, 21 Jan 2008 12:42:44 +0000 (12:42 +0000)]
Fix Trac #2055
Sorry, this was my fault, a consequence of the quasi-quoting patch.
I've added rn062 as a test.
Ian Lynagh [Mon, 21 Jan 2008 10:41:42 +0000 (10:41 +0000)]
Fix exception message with ghc -e
When running with ghc -e, exceptions should claim to be from the program
that we are running, not ghc.
Ian Lynagh [Mon, 21 Jan 2008 10:31:58 +0000 (10:31 +0000)]
Fix warnings in main/CmdLineParser
Ian Lynagh [Sun, 20 Jan 2008 19:30:02 +0000 (19:30 +0000)]
Normalise FilePaths before printing them
Ian Lynagh [Sun, 20 Jan 2008 18:46:39 +0000 (18:46 +0000)]
Tweak runghc
Ian Lynagh [Sun, 20 Jan 2008 17:02:36 +0000 (17:02 +0000)]
Fix catching exit exceptions in ghc -e
simonpj@microsoft.com [Mon, 21 Jan 2008 11:36:20 +0000 (11:36 +0000)]
Typo in phase-control documentation
Ian Lynagh [Sat, 19 Jan 2008 23:59:14 +0000 (23:59 +0000)]
Fix warnings in main/Main
Ian Lynagh [Sat, 19 Jan 2008 22:30:36 +0000 (22:30 +0000)]
Support multiple -e flags
Ian Lynagh [Sat, 19 Jan 2008 22:00:44 +0000 (22:00 +0000)]
Fix ghc -e :main (it was enqueuing the main function, but not running it)
Ian Lynagh [Sat, 19 Jan 2008 21:28:30 +0000 (21:28 +0000)]
Fix whitespace
Ian Lynagh [Sat, 19 Jan 2008 21:26:02 +0000 (21:26 +0000)]
Fix giving an error if we are given conflicting mode flags
Ian Lynagh [Sat, 19 Jan 2008 16:49:23 +0000 (16:49 +0000)]
Add :run and tweak :main
You can now give :main a Haskell [String] as an argument, e.g.
:main ["foo", "bar"]
and :run is a variant that takes the name of the function to run.
Also, :main now obeys the -main-is flag.
judah.jacobson@gmail.com [Mon, 17 Dec 2007 23:57:35 +0000 (23:57 +0000)]
Make MacFrameworks a subdirectory of distrib, since it isn't used in the normal building process.
judah.jacobson@gmail.com [Tue, 27 Nov 2007 07:29:51 +0000 (07:29 +0000)]
Add scripts for building GMP.framework and GNUreadline.framework (OS X).
judah.jacobson@gmail.com [Wed, 12 Dec 2007 20:12:45 +0000 (20:12 +0000)]
Use -framework-path flags during the cc phase. Fixes trac #1975.
df@dfranke.us [Mon, 10 Dec 2007 23:06:49 +0000 (23:06 +0000)]
FIX #1821 (Parser or lexer mess-up)
Ian Lynagh [Fri, 18 Jan 2008 22:56:55 +0000 (22:56 +0000)]
Improve the error when :list can't find any code to show
Ian Lynagh [Fri, 18 Jan 2008 18:01:26 +0000 (18:01 +0000)]
Fix imports when !DEBUG
Ian Lynagh [Wed, 16 Jan 2008 19:56:12 +0000 (19:56 +0000)]
Tweak the splitter
We were generating a label ".LnLC7", which the splitter was confusing
with a literal constant (LC). The end result was the assembler tripping
up on ".Ln.text".
simonpj@microsoft.com [Fri, 18 Jan 2008 17:17:54 +0000 (17:17 +0000)]
Wibble to SetLevels.abstractVars
I've gotten this wrong more than once. Hopefully this has it nailed.
The issue is that in float-out we must abstract over the correct
variables.
simonpj@microsoft.com [Fri, 18 Jan 2008 14:55:03 +0000 (14:55 +0000)]
Add quasi-quotation, courtesy of Geoffrey Mainland
This patch adds quasi-quotation, as described in
"Nice to be Quoted: Quasiquoting for Haskell"
(Geoffrey Mainland, Haskell Workshop 2007)
Implemented by Geoffrey and polished by Simon.
Overview
~~~~~~~~
The syntax for quasiquotation is very similar to the existing
Template haskell syntax:
[$q| stuff |]
where 'q' is the "quoter". This syntax differs from the paper, by using
a '$' rather than ':', to avoid clashing with parallel array comprehensions.
The "quoter" is a value of type Language.Haskell.TH.Quote.QuasiQuoter, which
contains two functions for quoting expressions and patterns, respectively.
quote = Language.Haskell.TH.Quote.QuasiQuoter quoteExp quotePat
quoteExp :: String -> Language.Haskell.TH.ExpQ
quotePat :: String -> Language.Haskell.TH.PatQ
TEXT is passed unmodified to the quoter. The context of the
quasiquotation statement determines which of the two quoters is
called: if the quasiquotation occurs in an expression context,
quoteExp is called, and if it occurs in a pattern context, quotePat
is called.
The result of running the quoter on its arguments is spliced into
the program using Template Haskell's existing mechanisms for
splicing in code. Note that although Template Haskell does not
support pattern brackets, with this patch binding occurrences of
variables in patterns are supported. Quoters must also obey the same
stage restrictions as Template Haskell; in particular, in this
example quote may not be defined in the module where it is used as a
quasiquoter, but must be imported from another module.
Points to notice
~~~~~~~~~~~~~~~~
* The whole thing is enabled with the flag -XQuasiQuotes
* There is an accompanying patch to the template-haskell library. This
involves one interface change:
currentModule :: Q String
is replaced by
location :: Q Loc
where Loc is a data type defined in TH.Syntax thus:
data Loc
= Loc { loc_filename :: String
, loc_package :: String
, loc_module :: String
, loc_start :: CharPos
, loc_end :: CharPos }
type CharPos = (Int, Int) -- Line and character position
So you get a lot more info from 'location' than from 'currentModule'.
The location you get is the location of the splice.
This works in Template Haskell too of course, and lets a TH program
generate much better error messages.
* There's also a new module in the template-haskell package called
Language.Haskell.TH.Quote, which contains support code for the
quasi-quoting feature.
* Quasi-quote splices are run *in the renamer* because they can build
*patterns* and hence the renamer needs to see the output of running the
splice. This involved a bit of rejigging in the renamer, especially
concerning the reporting of duplicate or shadowed names.
(In fact I found and removed a few calls to checkDupNames in RnSource
that are redundant, becuase top-level duplicate decls are handled in
RnNames.)
Isaac Dupree [Thu, 17 Jan 2008 01:13:12 +0000 (01:13 +0000)]
lots of portability changes (#1405)
re-recording to avoid new conflicts was too hard, so I just put it
all in one big patch :-( (besides, some of the changes depended on
each other.) Here are what the component patches were:
Fri Dec 28 11:02:55 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org>
* document BreakArray better
Fri Dec 28 11:39:22 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org>
* properly ifdef BreakArray for GHCI
Fri Jan 4 13:50:41 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* change ifs on __GLASGOW_HASKELL__ to account for... (#1405)
for it not being defined. I assume it being undefined implies
a compiler with relatively modern libraries but without most
unportable glasgow extensions.
Fri Jan 4 14:21:21 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* MyEither-->EitherString to allow Haskell98 instance
Fri Jan 4 16:13:29 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* re-portabilize Pretty, and corresponding changes
Fri Jan 4 17:19:55 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* Augment FastTypes to be much more complete
Fri Jan 4 20:14:19 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* use FastFunctions, cleanup FastString slightly
Fri Jan 4 21:00:22 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* Massive de-"#", mostly Int# --> FastInt (#1405)
Fri Jan 4 21:02:49 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* miscellaneous unnecessary-extension-removal
Sat Jan 5 19:30:13 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org>
* add FastFunctions
simonpj@microsoft.com [Thu, 17 Jan 2008 18:02:27 +0000 (18:02 +0000)]
Add missing extendSubst
Oops -- missed this from previous commit; sorry
simonpj@microsoft.com [Thu, 17 Jan 2008 15:03:25 +0000 (15:03 +0000)]
Add -fspec-inline-join-points to SpecConstr
This patch addresses a problem that Roman found in SpecConstr. Consider:
foo :: Maybe Int -> Maybe Int -> Int
foo a b = let j b = foo a b
in
case b of
Nothing -> ...
Just n -> case a of
Just m -> ... j (Just (n+1)) ...
Nothing -> ... j (Just (n-1)) ...
We want to make specialised versions for 'foo' for the patterns
Nothing (Just v)
(Just a) (Just b)
Two problems, caused by the join point j. First, j does not
scrutinise b, so j won't be specialised f for the (Just v) pattern.
Second, j is defined where the free var 'a' is not evaluated.
Both are solved by brutally inlining j at its call sites. This risks
major code bloat, but it's relatively quick to implement. The flag
-fspec-inline-join-points
causes brutal inlining for a
non-recursive binding
of a function
whose RHS contains calls
of a recursive function
The (experimental) flag is static for now, and I have not even
documented it properly.
Clemens Fruhwirth [Thu, 17 Jan 2008 13:41:39 +0000 (13:41 +0000)]
Fix references to Filepath
simonpj@microsoft.com [Thu, 17 Jan 2008 13:40:57 +0000 (13:40 +0000)]
Fix egregious error in earlier "Record evaluated-ness" patch
simonpj@microsoft.com [Thu, 17 Jan 2008 12:49:21 +0000 (12:49 +0000)]
Eliminate warnings with -DDEBUG
simonpj@microsoft.com [Thu, 17 Jan 2008 10:52:56 +0000 (10:52 +0000)]
Record evaluated-ness information correctly for strict constructors
The add_evals code in Simplify.simplAlt had bit-rotted. Example:
data T a = T !a
data U a = U !a
foo :: T a -> U a
foo (T x) = U x
Here we should not evaluate x before building the U result, because
the x argument of T is already evaluated.
Thanks to Roman for finding this.
simonpj@microsoft.com [Wed, 16 Jan 2008 15:39:08 +0000 (15:39 +0000)]
In float-out, make sure we abstract over the type variables in the kind of a coercion
I can't remember where this bug showed up, but we were abstracting over a
coercion variable (co :: a ~ T), without also abstracting over 'a'.
The fix is simple.
simonpj@microsoft.com [Wed, 16 Jan 2008 15:18:18 +0000 (15:18 +0000)]
Fix broken debug warning
simonpj@microsoft.com [Wed, 16 Jan 2008 15:16:12 +0000 (15:16 +0000)]
Complain sensibly if you try to use scoped type variables in Template Haskell
This fixes Trac #2024; worth merging onto 6.8 branch.
simonpj@microsoft.com [Wed, 16 Jan 2008 15:05:54 +0000 (15:05 +0000)]
Comments only
simonpj@microsoft.com [Wed, 16 Jan 2008 15:05:25 +0000 (15:05 +0000)]
Extra instance for Outputable on 5-tuples
simonpj@microsoft.com [Wed, 16 Jan 2008 14:11:56 +0000 (14:11 +0000)]
Fix the -frule-check pass
Rules for imported things are now kept in the global rule base, not
attached to the global Id. The rule-check pass hadn't kept up.
This should fix it.
Clemens Fruhwirth [Wed, 16 Jan 2008 22:06:03 +0000 (22:06 +0000)]
Add dyn-wrapper.c used as cross-plattform launch wrapper for executables using dynamic libraries in non-standard places
Clemens Fruhwirth [Wed, 16 Jan 2008 22:04:20 +0000 (22:04 +0000)]
Use runPhase_MoveBinary also for generating a dynamic library wrapper
Clemens Fruhwirth [Thu, 10 Jan 2008 12:17:36 +0000 (12:17 +0000)]
Remove -fhardwire-lib-paths in favour of -dynload sysdep
Clemens Fruhwirth [Thu, 10 Jan 2008 09:08:39 +0000 (09:08 +0000)]
ghc-inplace defaults to -fhardwire-lib-paths. Change that to -dynload wrapped
Clemens Fruhwirth [Wed, 16 Jan 2008 20:57:10 +0000 (20:57 +0000)]
Add -dynload flag as dynamic flag.
Ian Lynagh [Wed, 16 Jan 2008 17:41:49 +0000 (17:41 +0000)]
Add a missing import
Ian Lynagh [Wed, 16 Jan 2008 16:27:52 +0000 (16:27 +0000)]
Fix Makefile generatin on Windows
Ian Lynagh [Wed, 16 Jan 2008 15:43:17 +0000 (15:43 +0000)]
Fix slash direction on Windows with the new filePath code