| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Annotating a type with NoSpecConstr will prevent SpecConstr from specialising
on arguments of that type. The syntax is
import SpecConstr
{-# ANN type T NoSpecConstr #-}
|
| |
|
| |
|
|
|
|
|
| |
With -fstrictness-before=n, GHC runs an additional strictness analysis pass
before simplifier phase n.
|
| |
|
| |
|
| |
|
|
|
|
| |
Add some comments and better error reporting
|
| |
|
|
|
|
| |
so if the "cd" fails we don't charge on regardless.
|
|
|
|
|
| |
On some systems (bash 4?) configure fails because of it when
"gcc -V" fails.
|
| |
|
|
|
|
| |
While I was dealing with 'rec' statements I did this tidy-up
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The change is this (see Trac #2798). Instead of writing
mdo { a <- getChar
; b <- f c
; c <- g b
; putChar c
; return b }
you would write
do { a <- getChar
; rec { b <- f c
; c <- g b }
; putChar c
; return b }
That is,
* 'mdo' is eliminated
* 'rec' is added, which groups a bunch of statements
into a single recursive statement
This 'rec' thing is already present for the arrow notation, so it
makes the two more uniform. Moreover, 'rec' lets you say more
precisely where the recursion is (if you want to), whereas 'mdo' just
says "there's recursion here somewhere". Lastly, all this works with
rebindable syntax (which mdo does not).
Currently 'mdo' is enabled by -XRecursiveDo. So we now deprecate this
flag, with another flag -XDoRec to enable the 'rec' keyword.
Implementation notes:
* Some changes in Lexer.x
* All uses of RecStmt now use record syntax
I'm still not really happy with the "rec_ids" and "later_ids" in the
RecStmt constructor, but I don't dare change it without consulting Ross
about the consequences for arrow syntax.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coercion terms can get big (see Trac #2859 for example), so this
patch puts the infrastructure in place to optimise them:
* Adds Coercion.optCoercion :: Coercion -> Coercion
* Calls optCoercion in Simplify.lhs
The optimiser doesn't work right at the moment, so it is
commented out, but Tom is going to work on it.
|
| |
|
|
|
|
|
| |
I needed it, and then didn't need it, so it's not currently
called, but its generally useful kind of thing.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
There was a subtle bug in the interation of specialisation and floating,
described in Note [Specialisation of dictionary functions].
The net effect was to create a loop where none existed before; plain wrong.
In fixing it, I did quite a bit of house-cleaning in the specialiser, and
added a lot more comments. It's tricky, alas.
|
|
|
|
|
|
|
|
|
|
| |
The bug related to the fact that boxyUnify (now) returns a coercion,
which was simply being ignored. (TcExpr is clearly not warning-free
wrt the unused-monadic-bind thing!)
Anyway, it's fine now. I added a test case to the test suite.
MERGE to 6.12 please.
|
|
|
|
|
|
|
|
|
|
| |
The two used to be incompatible, but they aren't any longer.
In fact, -ticky should not be a 'way' any more, and doing that
is on Simon M's todo list, but this patch takes us a little
step closer.
I'm not sure this is worth merging to the 6.12 branch.
|
| |
|
|
|
|
| |
We no longer ship readline
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
dblatex with miktex under msys/mingw can't build the PS and PDF docs,
and just building the HTML docs is sufficient to check that the
markup is correct, so we turn off PS and PDF doc building when
validating.
|
|
|
|
| |
So if something configure does fails, so does the whole configur script
|
|
|
|
| |
We now use an msys/mingw perl tarball
|
| |
|
|
|
|
| |
We now use it for libffi and the mingw tarballs
|
| |
|
|
|
|
| |
We weren't checking the black-hole queue in the non-threaded RTS.
|
|
|
|
|
|
|
| |
I wanted to see the TH syntax produced by a splice, before its conversion
back into HsSyn. Doing so involved some refactoring. This only affects
deubbging code (-ddump-tc-trace).
|
|
|
|
|
|
| |
It turned out that we lacked flags to switch off these two passes,
so I added them.
|
| |
|
|
|
|
|
|
|
|
|
| |
This bug was introduced when I added an optimisation, described in
Note [Converting strings] in Convert.lhs. It was treating *all*
empty lists as strings, not just string-typed ones!
The fix is easy. Pls MERGE to stable branch.
|
| |
|
|
|
|
|
|
| |
GHC's recompilation checker doesn't take into account #included files,
which is really a bug. We work around it here by adding dependencies
and using -fforce-recomp in a couple of places.
|