[patch] whitespace/layout in PrelRules.lhs
Michal Terepeta
michal.terepeta at gmail.com
Sun Oct 24 14:37:00 EDT 2010
I'm experimenting with PrelRules and some of the whitespace issues were
annoying me (i.e. tabs, spaces at the end of lines, etc.), so in the
attachment is a patch fixing them. It's not very interesting
- running 'diff -uw' (i.e. ignoring whitespace) gives:
--- ghc/compiler/prelude/PrelRules.lhs 2010-10-08 20:39:24.674073583 +0200
+++ ghc-mod/compiler/prelude/PrelRules.lhs 2010-10-24 19:40:17.001686293 +0200
@@ -367,7 +367,7 @@
%************************************************************************
%* *
-\subsection{Vaguely generic functions
+\subsection{Vaguely generic functions}
%* *
%************************************************************************
@@ -596,4 +596,3 @@
match_inline _ _ = Nothing
\end{code}
-
I guess the mailing list is fine for those kind of patches?
Thanks,
Michal
PS. There's a note in the file saying:
"
ToDo: the reason these all return Nothing is because there used to be
the possibility of an argument being a litlit. Litlits are now gone,
so this could be cleaned up.
"
What exactly were Litlits? I tried searching for them, but couldn't really
find anything useful..
-------------- next part --------------
1 patch for repository http://darcs.haskell.org/ghc:
Sun Oct 24 19:41:34 CEST 2010 Michal Terepeta <michal.terepeta at gmail.com>
* Fix whitespace and layout in PrelRules.
New patches:
[Fix whitespace and layout in PrelRules.
Michal Terepeta <michal.terepeta at gmail.com>**20101024174134
Ignore-this: ade82debc07bac72079c7264623abade
] {
hunk ./compiler/prelude/PrelRules.lhs 12
ToDo:
check boundaries before folding, e.g. we can fold the Float addition
- (i1 + i2) only if it results in a valid Float.
+ (i1 + i2) only if it results in a valid Float.
\begin{code}
{-# OPTIONS -optc-DNON_POSIX_SOURCE #-}
hunk ./compiler/prelude/PrelRules.lhs 25
import MkCore
import Id
import Literal
-import PrimOp ( PrimOp(..), tagToEnumKey )
+import PrimOp ( PrimOp(..), tagToEnumKey )
import TysWiredIn
hunk ./compiler/prelude/PrelRules.lhs 27
-import TyCon ( tyConDataCons_maybe, isEnumerationTyCon, isNewTyCon )
-import DataCon ( dataConTag, dataConTyCon, dataConWorkId, fIRST_TAG )
-import CoreUtils ( cheapEqExpr )
-import CoreUnfold ( exprIsConApp_maybe )
+import TyCon ( tyConDataCons_maybe, isEnumerationTyCon, isNewTyCon )
+import DataCon ( dataConTag, dataConTyCon, dataConWorkId, fIRST_TAG )
+import CoreUtils ( cheapEqExpr )
+import CoreUnfold ( exprIsConApp_maybe )
import Type
hunk ./compiler/prelude/PrelRules.lhs 32
-import OccName ( occNameFS )
+import OccName ( occNameFS )
import PrelNames
hunk ./compiler/prelude/PrelRules.lhs 34
-import Maybes ( orElse )
-import Name ( Name, nameOccName )
+import Maybes ( orElse )
+import Name ( Name, nameOccName )
import Outputable
import FastString
hunk ./compiler/prelude/PrelRules.lhs 38
-import StaticFlags ( opt_SimplExcessPrecision )
+import StaticFlags ( opt_SimplExcessPrecision )
import Constants
import Data.Bits as Bits
hunk ./compiler/prelude/PrelRules.lhs 42
-import Data.Word ( Word )
+import Data.Word ( Word )
\end{code}
hunk ./compiler/prelude/PrelRules.lhs 51
primOpRules generates the rewrite rules for each primop
These rules do what is often called "constant folding"
E.g. the rules for +# might say
- 4 +# 5 = 9
-Well, of course you'd need a lot of rules if you did it
+ 4 +# 5 = 9
+Well, of course you'd need a lot of rules if you did it
like that, so we use a BuiltinRule instead, so that we
can match in any two literal values. So the rule is really
more like
hunk ./compiler/prelude/PrelRules.lhs 56
- (Lit 4) +# (Lit y) = Lit (x+#y)
+ (Lit 4) +# (Lit y) = Lit (x+#y)
where the (+#) on the rhs is done at compile time
That is why these rules are built in here. Other rules
hunk ./compiler/prelude/PrelRules.lhs 60
-which don't need to be built in are in GHC.Base. For
+which don't need to be built in are in GHC.Base. For
example:
hunk ./compiler/prelude/PrelRules.lhs 62
- x +# 0 = x
+ x +# 0 = x
\begin{code}
hunk ./compiler/prelude/PrelRules.lhs 69
primOpRules :: PrimOp -> Name -> [CoreRule]
primOpRules op op_name = primop_rule op
where
- -- A useful shorthand
+ -- A useful shorthand
one_lit = oneLit op_name
two_lits = twoLits op_name
relop cmp = two_lits (cmpOp (\ord -> ord `cmp` EQ))
hunk ./compiler/prelude/PrelRules.lhs 73
- -- Cunning. cmpOp compares the values to give an Ordering.
- -- It applies its argument to that ordering value to turn
- -- the ordering into a boolean value. (`cmp` EQ) is just the job.
+ -- Cunning. cmpOp compares the values to give an Ordering.
+ -- It applies its argument to that ordering value to turn
+ -- the ordering into a boolean value. (`cmp` EQ) is just the job.
hunk ./compiler/prelude/PrelRules.lhs 77
- -- ToDo: something for integer-shift ops?
- -- NotOp
+ -- ToDo: something for integer-shift ops?
+ -- NotOp
primop_rule TagToEnumOp = mkBasicRule op_name 2 tagToEnumRule
primop_rule DataToTagOp = mkBasicRule op_name 2 dataToTagRule
hunk ./compiler/prelude/PrelRules.lhs 83
- -- Int operations
+ -- Int operations
primop_rule IntAddOp = two_lits (intOp2 (+))
primop_rule IntSubOp = two_lits (intOp2 (-))
primop_rule IntMulOp = two_lits (intOp2 (*))
hunk ./compiler/prelude/PrelRules.lhs 94
primop_rule ISraOp = two_lits (intShiftOp2 Bits.shiftR)
primop_rule ISrlOp = two_lits (intShiftOp2 shiftRightLogical)
- -- Word operations
+ -- Word operations
primop_rule WordAddOp = two_lits (wordOp2 (+))
primop_rule WordSubOp = two_lits (wordOp2 (-))
primop_rule WordMulOp = two_lits (wordOp2 (*))
hunk ./compiler/prelude/PrelRules.lhs 106
primop_rule SllOp = two_lits (wordShiftOp2 Bits.shiftL)
primop_rule SrlOp = two_lits (wordShiftOp2 shiftRightLogical)
- -- coercions
- primop_rule Word2IntOp = one_lit (litCoerce word2IntLit)
- primop_rule Int2WordOp = one_lit (litCoerce int2WordLit)
- primop_rule Narrow8IntOp = one_lit (litCoerce narrow8IntLit)
- primop_rule Narrow16IntOp = one_lit (litCoerce narrow16IntLit)
- primop_rule Narrow32IntOp = one_lit (litCoerce narrow32IntLit)
- primop_rule Narrow8WordOp = one_lit (litCoerce narrow8WordLit)
- primop_rule Narrow16WordOp = one_lit (litCoerce narrow16WordLit)
- primop_rule Narrow32WordOp = one_lit (litCoerce narrow32WordLit)
- primop_rule OrdOp = one_lit (litCoerce char2IntLit)
- primop_rule ChrOp = one_lit (predLitCoerce litFitsInChar int2CharLit)
- primop_rule Float2IntOp = one_lit (litCoerce float2IntLit)
- primop_rule Int2FloatOp = one_lit (litCoerce int2FloatLit)
- primop_rule Double2IntOp = one_lit (litCoerce double2IntLit)
- primop_rule Int2DoubleOp = one_lit (litCoerce int2DoubleLit)
- -- SUP: Not sure what the standard says about precision in the following 2 cases
- primop_rule Float2DoubleOp = one_lit (litCoerce float2DoubleLit)
- primop_rule Double2FloatOp = one_lit (litCoerce double2FloatLit)
+ -- coercions
+ primop_rule Word2IntOp = one_lit (litCoerce word2IntLit)
+ primop_rule Int2WordOp = one_lit (litCoerce int2WordLit)
+ primop_rule Narrow8IntOp = one_lit (litCoerce narrow8IntLit)
+ primop_rule Narrow16IntOp = one_lit (litCoerce narrow16IntLit)
+ primop_rule Narrow32IntOp = one_lit (litCoerce narrow32IntLit)
+ primop_rule Narrow8WordOp = one_lit (litCoerce narrow8WordLit)
+ primop_rule Narrow16WordOp = one_lit (litCoerce narrow16WordLit)
+ primop_rule Narrow32WordOp = one_lit (litCoerce narrow32WordLit)
+ primop_rule OrdOp = one_lit (litCoerce char2IntLit)
+ primop_rule ChrOp = one_lit (predLitCoerce litFitsInChar int2CharLit)
+ primop_rule Float2IntOp = one_lit (litCoerce float2IntLit)
+ primop_rule Int2FloatOp = one_lit (litCoerce int2FloatLit)
+ primop_rule Double2IntOp = one_lit (litCoerce double2IntLit)
+ primop_rule Int2DoubleOp = one_lit (litCoerce int2DoubleLit)
+ -- SUP: Not sure what the standard says about precision in the following 2 cases
+ primop_rule Float2DoubleOp = one_lit (litCoerce float2DoubleLit)
+ primop_rule Double2FloatOp = one_lit (litCoerce double2FloatLit)
hunk ./compiler/prelude/PrelRules.lhs 125
- -- Float
+ -- Float
primop_rule FloatAddOp = two_lits (floatOp2 (+))
primop_rule FloatSubOp = two_lits (floatOp2 (-))
primop_rule FloatMulOp = two_lits (floatOp2 (*))
hunk ./compiler/prelude/PrelRules.lhs 132
primop_rule FloatDivOp = two_lits (floatOp2Z (/))
primop_rule FloatNegOp = one_lit negOp
- -- Double
+ -- Double
primop_rule DoubleAddOp = two_lits (doubleOp2 (+))
primop_rule DoubleSubOp = two_lits (doubleOp2 (-))
primop_rule DoubleMulOp = two_lits (doubleOp2 (*))
hunk ./compiler/prelude/PrelRules.lhs 139
primop_rule DoubleDivOp = two_lits (doubleOp2Z (/))
primop_rule DoubleNegOp = one_lit negOp
- -- Relational operators
- primop_rule IntEqOp = relop (==) ++ litEq op_name True
- primop_rule IntNeOp = relop (/=) ++ litEq op_name False
- primop_rule CharEqOp = relop (==) ++ litEq op_name True
- primop_rule CharNeOp = relop (/=) ++ litEq op_name False
+ -- Relational operators
+ primop_rule IntEqOp = relop (==) ++ litEq op_name True
+ primop_rule IntNeOp = relop (/=) ++ litEq op_name False
+ primop_rule CharEqOp = relop (==) ++ litEq op_name True
+ primop_rule CharNeOp = relop (/=) ++ litEq op_name False
hunk ./compiler/prelude/PrelRules.lhs 145
- primop_rule IntGtOp = relop (>)
- primop_rule IntGeOp = relop (>=)
- primop_rule IntLeOp = relop (<=)
- primop_rule IntLtOp = relop (<)
+ primop_rule IntGtOp = relop (>)
+ primop_rule IntGeOp = relop (>=)
+ primop_rule IntLeOp = relop (<=)
+ primop_rule IntLtOp = relop (<)
hunk ./compiler/prelude/PrelRules.lhs 150
- primop_rule CharGtOp = relop (>)
- primop_rule CharGeOp = relop (>=)
- primop_rule CharLeOp = relop (<=)
- primop_rule CharLtOp = relop (<)
+ primop_rule CharGtOp = relop (>)
+ primop_rule CharGeOp = relop (>=)
+ primop_rule CharLeOp = relop (<=)
+ primop_rule CharLtOp = relop (<)
hunk ./compiler/prelude/PrelRules.lhs 155
- primop_rule FloatGtOp = relop (>)
- primop_rule FloatGeOp = relop (>=)
- primop_rule FloatLeOp = relop (<=)
- primop_rule FloatLtOp = relop (<)
- primop_rule FloatEqOp = relop (==)
- primop_rule FloatNeOp = relop (/=)
+ primop_rule FloatGtOp = relop (>)
+ primop_rule FloatGeOp = relop (>=)
+ primop_rule FloatLeOp = relop (<=)
+ primop_rule FloatLtOp = relop (<)
+ primop_rule FloatEqOp = relop (==)
+ primop_rule FloatNeOp = relop (/=)
hunk ./compiler/prelude/PrelRules.lhs 162
- primop_rule DoubleGtOp = relop (>)
- primop_rule DoubleGeOp = relop (>=)
- primop_rule DoubleLeOp = relop (<=)
- primop_rule DoubleLtOp = relop (<)
- primop_rule DoubleEqOp = relop (==)
- primop_rule DoubleNeOp = relop (/=)
+ primop_rule DoubleGtOp = relop (>)
+ primop_rule DoubleGeOp = relop (>=)
+ primop_rule DoubleLeOp = relop (<=)
+ primop_rule DoubleLtOp = relop (<)
+ primop_rule DoubleEqOp = relop (==)
+ primop_rule DoubleNeOp = relop (/=)
hunk ./compiler/prelude/PrelRules.lhs 169
- primop_rule WordGtOp = relop (>)
- primop_rule WordGeOp = relop (>=)
- primop_rule WordLeOp = relop (<=)
- primop_rule WordLtOp = relop (<)
- primop_rule WordEqOp = relop (==)
- primop_rule WordNeOp = relop (/=)
+ primop_rule WordGtOp = relop (>)
+ primop_rule WordGeOp = relop (>=)
+ primop_rule WordLeOp = relop (<=)
+ primop_rule WordLtOp = relop (<)
+ primop_rule WordEqOp = relop (==)
+ primop_rule WordNeOp = relop (/=)
hunk ./compiler/prelude/PrelRules.lhs 176
- primop_rule _ = []
+ primop_rule _ = []
\end{code}
hunk ./compiler/prelude/PrelRules.lhs 182
%************************************************************************
-%* *
+%* *
\subsection{Doing the business}
hunk ./compiler/prelude/PrelRules.lhs 184
-%* *
+%* *
%************************************************************************
ToDo: the reason these all return Nothing is because there used to be
hunk ./compiler/prelude/PrelRules.lhs 207
= go l1 l2
where
done res | cmp res = Just trueVal
- | otherwise = Just falseVal
+ | otherwise = Just falseVal
hunk ./compiler/prelude/PrelRules.lhs 209
- -- These compares are at different types
+ -- These compares are at different types
go (MachChar i1) (MachChar i2) = done (i1 `compare` i2)
go (MachInt i1) (MachInt i2) = done (i1 `compare` i2)
go (MachInt64 i1) (MachInt64 i2) = done (i1 `compare` i2)
hunk ./compiler/prelude/PrelRules.lhs 221
--------------------------
-negOp :: Literal -> Maybe CoreExpr -- Negate
+negOp :: Literal -> Maybe CoreExpr -- Negate
negOp (MachFloat 0.0) = Nothing -- can't represent -0.0 as a Rational
negOp (MachFloat f) = Just (mkFloatVal (-f))
negOp (MachDouble 0.0) = Nothing
hunk ./compiler/prelude/PrelRules.lhs 232
--------------------------
intOp2 :: (Integer->Integer->Integer) -> Literal -> Literal -> Maybe CoreExpr
intOp2 op (MachInt i1) (MachInt i2) = intResult (i1 `op` i2)
-intOp2 _ _ _ = Nothing -- Could find LitLit
+intOp2 _ _ _ = Nothing -- Could find LitLit
intOp2Z :: (Integer->Integer->Integer) -> Literal -> Literal -> Maybe CoreExpr
-- Like intOp2, but Nothing if i2=0
hunk ./compiler/prelude/PrelRules.lhs 238
intOp2Z op (MachInt i1) (MachInt i2)
| i2 /= 0 = intResult (i1 `op` i2)
-intOp2Z _ _ _ = Nothing -- LitLit or zero dividend
+intOp2Z _ _ _ = Nothing -- LitLit or zero dividend
intShiftOp2 :: (Integer->Int->Integer) -> Literal -> Literal -> Maybe CoreExpr
hunk ./compiler/prelude/PrelRules.lhs 241
- -- Shifts take an Int; hence second arg of op is Int
+-- Shifts take an Int; hence second arg of op is Int
intShiftOp2 op (MachInt i1) (MachInt i2) = intResult (i1 `op` fromInteger i2)
hunk ./compiler/prelude/PrelRules.lhs 243
-intShiftOp2 _ _ _ = Nothing
+intShiftOp2 _ _ _ = Nothing
shiftRightLogical :: Integer -> Int -> Integer
-- Shift right, putting zeros in rather than sign-propagating as Bits.shiftR would do
hunk ./compiler/prelude/PrelRules.lhs 247
--- Do this by converting to Word and back. Obviously this won't work for big
+-- Do this by converting to Word and back. Obviously this won't work for big
-- values, but its ok as we use it here
shiftRightLogical x n = fromIntegral (fromInteger x `shiftR` n :: Word)
hunk ./compiler/prelude/PrelRules.lhs 256
wordOp2 :: (Integer->Integer->Integer) -> Literal -> Literal -> Maybe CoreExpr
wordOp2 op (MachWord w1) (MachWord w2)
= wordResult (w1 `op` w2)
-wordOp2 _ _ _ = Nothing -- Could find LitLit
+wordOp2 _ _ _ = Nothing -- Could find LitLit
wordOp2Z :: (Integer->Integer->Integer) -> Literal -> Literal -> Maybe CoreExpr
wordOp2Z op (MachWord w1) (MachWord w2)
hunk ./compiler/prelude/PrelRules.lhs 261
| w2 /= 0 = wordResult (w1 `op` w2)
-wordOp2Z _ _ _ = Nothing -- LitLit or zero dividend
+wordOp2Z _ _ _ = Nothing -- LitLit or zero dividend
wordBitOp2 :: (Integer->Integer->Integer) -> Literal -> Literal
-> Maybe CoreExpr
hunk ./compiler/prelude/PrelRules.lhs 267
wordBitOp2 op (MachWord w1) (MachWord w2)
= wordResult (w1 `op` w2)
-wordBitOp2 _ _ _ = Nothing -- Could find LitLit
+wordBitOp2 _ _ _ = Nothing -- Could find LitLit
wordShiftOp2 :: (Integer->Int->Integer) -> Literal -> Literal -> Maybe CoreExpr
hunk ./compiler/prelude/PrelRules.lhs 270
- -- Shifts take an Int; hence second arg of op is Int
-wordShiftOp2 op (MachWord x) (MachInt n)
+-- Shifts take an Int; hence second arg of op is Int
+wordShiftOp2 op (MachWord x) (MachInt n)
= wordResult (x `op` fromInteger n)
hunk ./compiler/prelude/PrelRules.lhs 273
- -- Do the shift at type Integer
-wordShiftOp2 _ _ _ = Nothing
+ -- Do the shift at type Integer
+wordShiftOp2 _ _ _ = Nothing
--------------------------
floatOp2 :: (Rational -> Rational -> Rational) -> Literal -> Literal
hunk ./compiler/prelude/PrelRules.lhs 312
--------------------------
- -- This stuff turns
- -- n ==# 3#
- -- into
- -- case n of
- -- 3# -> True
- -- m -> False
- --
- -- This is a Good Thing, because it allows case-of case things
- -- to happen, and case-default absorption to happen. For
- -- example:
- --
- -- if (n ==# 3#) || (n ==# 4#) then e1 else e2
- -- will transform to
- -- case n of
- -- 3# -> e1
- -- 4# -> e1
- -- m -> e2
- -- (modulo the usual precautions to avoid duplicating e1)
+-- This stuff turns
+-- n ==# 3#
+-- into
+-- case n of
+-- 3# -> True
+-- m -> False
+--
+-- This is a Good Thing, because it allows case-of case things
+-- to happen, and case-default absorption to happen. For
+-- example:
+--
+-- if (n ==# 3#) || (n ==# 4#) then e1 else e2
+-- will transform to
+-- case n of
+-- 3# -> e1
+-- 4# -> e1
+-- m -> e2
+-- (modulo the usual precautions to avoid duplicating e1)
hunk ./compiler/prelude/PrelRules.lhs 331
-litEq :: Name
- -> Bool -- True <=> equality, False <=> inequality
+litEq :: Name
+ -> Bool -- True <=> equality, False <=> inequality
-> [CoreRule]
litEq op_name is_eq
hunk ./compiler/prelude/PrelRules.lhs 335
- = [BuiltinRule { ru_name = occNameFS (nameOccName op_name)
- `appendFS` (fsLit "->case"),
- ru_fn = op_name,
- ru_nargs = 2, ru_try = rule_fn }]
+ = [BuiltinRule { ru_name = occNameFS (nameOccName op_name)
+ `appendFS` (fsLit "->case"),
+ ru_fn = op_name,
+ ru_nargs = 2, ru_try = rule_fn }]
where
rule_fn _ [Lit lit, expr] = do_lit_eq lit expr
rule_fn _ [expr, Lit lit] = do_lit_eq lit expr
hunk ./compiler/prelude/PrelRules.lhs 342
- rule_fn _ _ = Nothing
-
+ rule_fn _ _ = Nothing
+
do_lit_eq lit expr
= Just (mkWildCase expr (literalType lit) boolTy
hunk ./compiler/prelude/PrelRules.lhs 346
- [(DEFAULT, [], val_if_neq),
- (LitAlt lit, [], val_if_eq)])
+ [(DEFAULT, [], val_if_neq),
+ (LitAlt lit, [], val_if_eq)])
val_if_eq | is_eq = trueVal
hunk ./compiler/prelude/PrelRules.lhs 349
- | otherwise = falseVal
+ | otherwise = falseVal
val_if_neq | is_eq = falseVal
hunk ./compiler/prelude/PrelRules.lhs 351
- | otherwise = trueVal
+ | otherwise = trueVal
-- Note that we *don't* warn the user about overflow. It's not done at
-- runtime either, and compilation of completely harmless things like
hunk ./compiler/prelude/PrelRules.lhs 369
%************************************************************************
-%* *
-\subsection{Vaguely generic functions
-%* *
+%* *
+\subsection{Vaguely generic functions}
+%* *
%************************************************************************
\begin{code}
hunk ./compiler/prelude/PrelRules.lhs 381
-- Gives the Rule the same name as the primop itself
mkBasicRule op_name n_args rule_fn
= [BuiltinRule { ru_name = occNameFS (nameOccName op_name),
- ru_fn = op_name,
- ru_nargs = n_args, ru_try = rule_fn }]
+ ru_fn = op_name,
+ ru_nargs = n_args, ru_try = rule_fn }]
oneLit :: Name -> (Literal -> Maybe CoreExpr)
-> [CoreRule]
hunk ./compiler/prelude/PrelRules.lhs 393
rule_fn _ _ = Nothing
twoLits :: Name -> (Literal -> Literal -> Maybe CoreExpr)
- -> [CoreRule]
-twoLits op_name test
+ -> [CoreRule]
+twoLits op_name test
= mkBasicRule op_name 2 rule_fn
where
rule_fn _ [Lit l1, Lit l2] = test (convFloating l1) (convFloating l2)
hunk ./compiler/prelude/PrelRules.lhs 423
mkDoubleVal d = Lit (convFloating (MachDouble d))
\end{code}
-
+
%************************************************************************
hunk ./compiler/prelude/PrelRules.lhs 425
-%* *
+%* *
\subsection{Special rules for seq, tagToEnum, dataToTag}
hunk ./compiler/prelude/PrelRules.lhs 427
-%* *
+%* *
%************************************************************************
Note [tagToEnum#]
hunk ./compiler/prelude/PrelRules.lhs 437
check won't see that, alas. It's crude but it works.
Here's are two cases that should fail
- f :: forall a. a
- f = tagToEnum# 0 -- Can't do tagToEnum# at a type variable
+ f :: forall a. a
+ f = tagToEnum# 0 -- Can't do tagToEnum# at a type variable
hunk ./compiler/prelude/PrelRules.lhs 440
- g :: Int
- g = tagToEnum# 0 -- Int is not an enumeration
+ g :: Int
+ g = tagToEnum# 0 -- Int is not an enumeration
We used to make this check in the type inference engine, but it's quite
ugly to do so, because the delayed constraint solving means that we don't
hunk ./compiler/prelude/PrelRules.lhs 459
| Just (tycon, tc_args) <- splitTyConApp_maybe ty
, isEnumerationTyCon tycon
= case filter correct_tag (tyConDataCons_maybe tycon `orElse` []) of
- [] -> Nothing -- Abstract type
- (dc:rest) -> ASSERT( null rest )
- Just (mkTyApps (Var (dataConWorkId dc)) tc_args)
- | otherwise -- See Note [tagToEnum#]
+ [] -> Nothing -- Abstract type
+ (dc:rest) -> ASSERT( null rest )
+ Just (mkTyApps (Var (dataConWorkId dc)) tc_args)
+ | otherwise -- See Note [tagToEnum#]
= WARN( True, ptext (sLit "tagToEnum# on non-enumeration type") <+> ppr ty )
Just (mkRuntimeErrorApp rUNTIME_ERROR_ID ty "tagToEnum# on non-enumeration type")
hunk ./compiler/prelude/PrelRules.lhs 465
- where
+ where
correct_tag dc = (dataConTag dc - fIRST_TAG) == tag
tag = fromInteger i
hunk ./compiler/prelude/PrelRules.lhs 473
\end{code}
-For dataToTag#, we can reduce if either
-
- (a) the argument is a constructor
- (b) the argument is a variable whose unfolding is a known constructor
+For dataToTag#, we can reduce if either
+
+ (a) the argument is a constructor
+ (b) the argument is a variable whose unfolding is a known constructor
\begin{code}
dataToTagRule :: IdUnfoldingFun -> [Expr CoreBndr] -> Maybe (Arg CoreBndr)
hunk ./compiler/prelude/PrelRules.lhs 483
dataToTagRule _ [Type ty1, Var tag_to_enum `App` Type ty2 `App` tag]
| tag_to_enum `hasKey` tagToEnumKey
, ty1 `coreEqType` ty2
- = Just tag -- dataToTag (tagToEnum x) ==> x
+ = Just tag -- dataToTag (tagToEnum x) ==> x
dataToTagRule id_unf [_, val_arg]
| Just (dc,_,_) <- exprIsConApp_maybe id_unf val_arg
hunk ./compiler/prelude/PrelRules.lhs 494
\end{code}
%************************************************************************
-%* *
+%* *
\subsection{Built in rules}
hunk ./compiler/prelude/PrelRules.lhs 496
-%* *
+%* *
%************************************************************************
Note [Scoping for Builtin rules]
hunk ./compiler/prelude/PrelRules.lhs 505
functions mentioned in the RHS of a built-in rule, there's a danger
that we'll see
- f = ...(eq String x)....
+ f = ...(eq String x)....
hunk ./compiler/prelude/PrelRules.lhs 507
- ....and lower down...
+ ....and lower down...
hunk ./compiler/prelude/PrelRules.lhs 509
- eqString = ...
+ eqString = ...
Then a rewrite would give
hunk ./compiler/prelude/PrelRules.lhs 513
- f = ...(eqString x)...
- ....and lower down...
- eqString = ...
+ f = ...(eqString x)...
+ ....and lower down...
+ eqString = ...
and lo, eqString is not in scope. This only really matters when we get to code
generation. With -O we do a GlomBinds step that does a new SCC analysis on the whole
hunk ./compiler/prelude/PrelRules.lhs 531
-- Rules for non-primops that can't be expressed using a RULE pragma
builtinRules
= [ BuiltinRule { ru_name = fsLit "AppendLitString", ru_fn = unpackCStringFoldrName,
- ru_nargs = 4, ru_try = match_append_lit },
+ ru_nargs = 4, ru_try = match_append_lit },
BuiltinRule { ru_name = fsLit "EqString", ru_fn = eqStringName,
hunk ./compiler/prelude/PrelRules.lhs 533
- ru_nargs = 2, ru_try = match_eq_string },
+ ru_nargs = 2, ru_try = match_eq_string },
BuiltinRule { ru_name = fsLit "Inline", ru_fn = inlineIdName,
hunk ./compiler/prelude/PrelRules.lhs 535
- ru_nargs = 2, ru_try = match_inline }
+ ru_nargs = 2, ru_try = match_inline }
]
hunk ./compiler/prelude/PrelRules.lhs 541
---------------------------------------------------
-- The rule is this:
--- unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)
+-- unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)
-- = unpackFoldrCString# "foobaz" c n
match_append_lit :: IdUnfoldingFun -> [Expr CoreBndr] -> Maybe (Expr CoreBndr)
hunk ./compiler/prelude/PrelRules.lhs 546
match_append_lit _ [Type ty1,
- Lit (MachStr s1),
- c1,
- Var unpk `App` Type ty2
- `App` Lit (MachStr s2)
- `App` c2
- `App` n
- ]
- | unpk `hasKey` unpackCStringFoldrIdKey &&
+ Lit (MachStr s1),
+ c1,
+ Var unpk `App` Type ty2
+ `App` Lit (MachStr s2)
+ `App` c2
+ `App` n
+ ]
+ | unpk `hasKey` unpackCStringFoldrIdKey &&
c1 `cheapEqExpr` c2
= ASSERT( ty1 `coreEqType` ty2 )
Just (Var unpk `App` Type ty1
hunk ./compiler/prelude/PrelRules.lhs 557
- `App` Lit (MachStr (s1 `appendFS` s2))
- `App` c1
- `App` n)
+ `App` Lit (MachStr (s1 `appendFS` s2))
+ `App` c1
+ `App` n)
match_append_lit _ _ = Nothing
hunk ./compiler/prelude/PrelRules.lhs 565
---------------------------------------------------
-- The rule is this:
--- eqString (unpackCString# (Lit s1)) (unpackCString# (Lit s2) = s1==s2
+-- eqString (unpackCString# (Lit s1)) (unpackCString# (Lit s2) = s1==s2
match_eq_string :: IdUnfoldingFun -> [Expr CoreBndr] -> Maybe (Expr CoreBndr)
match_eq_string _ [Var unpk1 `App` Lit (MachStr s1),
hunk ./compiler/prelude/PrelRules.lhs 569
- Var unpk2 `App` Lit (MachStr s2)]
+ Var unpk2 `App` Lit (MachStr s2)]
| unpk1 `hasKey` unpackCStringIdKey,
unpk2 `hasKey` unpackCStringIdKey
= Just (if s1 == s2 then trueVal else falseVal)
hunk ./compiler/prelude/PrelRules.lhs 579
---------------------------------------------------
-- The rule is this:
--- inline f_ty (f a b c) = <f's unfolding> a b c
+-- inline f_ty (f a b c) = <f's unfolding> a b c
-- (if f has an unfolding, EVEN if it's a loop breaker)
--
-- It's important to allow the argument to 'inline' to have args itself
hunk ./compiler/prelude/PrelRules.lhs 584
-- (a) because its more forgiving to allow the programmer to write
--- inline f a b c
+-- inline f a b c
-- or inline (f a b c)
hunk ./compiler/prelude/PrelRules.lhs 586
--- (b) because a polymorphic f wll get a type argument that the
+-- (b) because a polymorphic f wll get a type argument that the
-- programmer can't avoid
--
-- Also, don't forget about 'inline's type argument!
hunk ./compiler/prelude/PrelRules.lhs 594
match_inline _ (Type _ : e : _)
| (Var f, args1) <- collectArgs e,
Just unf <- maybeUnfoldingTemplate (realIdUnfolding f)
- -- Ignore the IdUnfoldingFun here!
+ -- Ignore the IdUnfoldingFun here!
= Just (mkApps unf args1)
match_inline _ _ = Nothing
hunk ./compiler/prelude/PrelRules.lhs 599
\end{code}
-
}
Context:
[Optimised the representation of Inert Sets to use Maps to get to the relevant inert constraint faster.
dimitris at microsoft.com**20101022125840]
[Add rebindable syntax for if-then-else
simonpj at microsoft.com**20101022143400
Ignore-this: 3a1979aef8864a6bae4bfd9be9a543ec
There are two main changes
* New LANGUAGE option RebindableSyntax, which implies NoImplicitPrelude
* if-the-else becomes rebindable, with function name "ifThenElse"
(but case expressions are unaffected)
Thanks to Sam Anklesaria for doing most of the work here
]
[Lint should check for duplicate top-level bindings with same qualified name
simonpj at microsoft.com**20101022072405
Ignore-this: 41db7e1fbbd1863c11bdf9c01cf75e07
This would have produced a more civilised error for Trac #4396
]
[Fix unused import warning on OS X
Ian Lynagh <igloo at earth.li>**20101022134024]
[Switch more uniqFromSupply+splitUniqSupply's to takeUniqFromSupply
Ian Lynagh <igloo at earth.li>**20101021142824
Ignore-this: 27991ada81de2d3ef7f4757ac6cc8d11
]
[Whitespace only
Ian Lynagh <igloo at earth.li>**20101021135551]
[Whitespace only
Ian Lynagh <igloo at earth.li>**20101021134404]
[Whitespace only
Ian Lynagh <igloo at earth.li>**20101021134133]
[Windows installer improvements from Claus
Ian Lynagh <igloo at earth.li>**20101021122942
- add link to inno setup docs, so readers don't have to guess what
ghc.iss might be
- add Task section, and associated most Registry actions with separate
(sub)tasks, so that file associations, default action, and PATH
setting can be optional
- copy license file into doc directory
- install icon file again, so that DefaultIcon is no longer a dangling
pointer (#4352)
- only delete ghc_haskell key if empty (in case there were other tools
using it)
- add versioned GHCi to right-click menu (to allow for multiple tool installs)
]
[Fix Trac #4396, by localising pattern binders in the desugarer
simonpj at microsoft.com**20101021170324
Ignore-this: d787a5a4c93c93757ca6c0979db9e0b3
See Note [Localise pattern binders]
]
[White space only
simonpj at microsoft.com**20101021170232
Ignore-this: 72260210a6c31dd61888b32780b0dc9f
]
[Add an assertion
simonpj at microsoft.com**20101021170222
Ignore-this: 11fbd842db26b18519067ff9e6c63faa
]
[Use takeUniqFromSupply in ByteCodeGen
Ian Lynagh <igloo at earth.li>**20101021121454]
[Fix some whitespace
Ian Lynagh <igloo at earth.li>**20101021121059]
[Use takeUniqFromSupply in emitProcWithConvention
Ian Lynagh <igloo at earth.li>**20101021120853
We were using the supply's unique, and then passing the same supply to
initUs_, which sounds like a bug waiting to happen.
]
[Use takeUniqFromSupply in IfaceEnv
Ian Lynagh <igloo at earth.li>**20101021120304
This is a little nicer than having to explicitly split supplies and
throw half of them away.
]
[Define takeUniqFromSupply
Ian Lynagh <igloo at earth.li>**20101021115822]
[Remove some extraneous whitespace
Ian Lynagh <igloo at earth.li>**20101021115600]
[Add a comment on why some seq's are done
Ian Lynagh <igloo at earth.li>**20101021113404
Ignore-this: 6c8e59eeb2f8733f7ff7686a28463728
]
[Tidy up RuntimeUnkSkols a bit more
simonpj at microsoft.com**20101021100640
Ignore-this: eb3f5617eff99512a2e72d748c7ad99
]
[Fix haddock markup
simonpj at microsoft.com**20101021085420
Ignore-this: a2705c5aaea64648770eb06ffbcf1e8f
]
[Improve rule checking, to fix panic Trac #4398
simonpj at microsoft.com**20101021085402
Ignore-this: 7f1f8496f336b4e52374fc99110db4a8
Lots of comments with decomposeRuleLhs
]
[Improve the simple expression optimiser so it does simple beta reduction
simonpj at microsoft.com**20101021085030
Ignore-this: 7a8f99b59d01389ffada547dd29005f9
]
[Template Haskell: add view patterns (Trac #2399)
Reiner Pope <reiner.pope at gmail.com>**20101010131720
Ignore-this: 710855eb7e9cdef96478f2f4da9cfbf4
]
[Tidy-up sweep, following the Great Skolemisation Simplification
simonpj at microsoft.com**20101021070837
Ignore-this: ec821a200d54fb7c9d1135e2c4ce581
]
[Fix haddock markup
Ian Lynagh <igloo at earth.li>**20101020151952
Ignore-this: 3d7bdf6a84a6264ae4cea215c415d821
]
[Tweak the haddock rules; no functional change
Ian Lynagh <igloo at earth.li>**20101020151636
Ignore-this: bee8a936b3ebd33832fdd58161ba725
]
[Don't seq unfoldings
Ian Lynagh <igloo at earth.li>**20101020143710
Ignore-this: 972ae43afdca1b7c6713c6ee5af14da4
We generate intermediate unfoldings which are just thrown away, so
evaluating them is a waste of time.
]
[Avoid hanging on to old unfoldings; fixes #4367 (compiler space regression)
Ian Lynagh <igloo at earth.li>**20101020131539]
[Comments and layout only
simonpj at microsoft.com**20101020132438
Ignore-this: ae58e1d0dbb2d7d9ce02fe765cd3591f
]
[Look for sources in Cabal's autogen directory too
Ian Lynagh <igloo at earth.li>**20101020104759
Ignore-this: 709b8b491ed89c9d979b93dbaa6e7069
]
[Follow Cabal change: Use usedExtensions rather than extensions
Ian Lynagh <igloo at earth.li>**20101020104739
Ignore-this: 18f7fe6729e573c0b75746b5f891bb71
]
[fix markup
Simon Marlow <marlowsd at gmail.com>**20101020123116
Ignore-this: 51372bccc13905f45610b106cacce31c
]
[remove xref to hasktags
Simon Marlow <marlowsd at gmail.com>**20101020123106
Ignore-this: 1211f44dca795532adc729d08fde30b8
]
[Update the documentation on using DLL's from Windows, fixing several errors, in particular those relating to bug 3605
Neil Mitchell **20101010100709
Ignore-this: 13b44b074b123c21f1b2257c9b1d0585
]
[(1) More lenient kind checking, (2) Fixed orientation problems and avoiding double unifications, (3) Comments
dimitris at microsoft.com**20101020115526]
[Midstream changes to deal with spontaneous solving and flatten skolem equivalence classes
dimitris at microsoft.com**20101019171514]
[hasktags was dropped in GHC 6.12, remove it from the docs
Simon Marlow <marlowsd at gmail.com>**20101018084401
Ignore-this: e17307814d9c91f1197c07e0ea421f88
]
[Refactor, plus fix Trac #4418
simonpj at microsoft.com**20101020090946
Ignore-this: 401774da6fbd69d567a27a58be3dd9b8
We weren't doing fundeps for derived superclasses
]
[Add a comment, connecting the seq to the test (#4367) that shows its usefulness
simonpj at microsoft.com**20101020075941
Ignore-this: 2dae7e226168a25e5753467c08e32414
]
[Define setIdUnfoldingLazily, and use it in Vectorise
Ian Lynagh <igloo at earth.li>**20101019201537
Fixes a loop in the compiler, when running the dph tests
]
[Evaluate the results in coreToStgApp
Ian Lynagh <igloo at earth.li>**20101019170532
Ignore-this: 3b3439d35ac21e664b5d24a070d6e8ca
]
[Retab CoreToStg, and remove trailing whitespace
Ian Lynagh <igloo at earth.li>**20101019155530]
[seq the unfolding in setUnfoldingInfo
Ian Lynagh <igloo at earth.li>**20101019154552
Ignore-this: a18677dfdc1f1dddc82e89b3267d2bb1
Contrary to the comment, for the module in #4367 at least, it is a big
improvement. Without it we get a huge spike of drag.
]
[Comments only
simonpj at microsoft.com**20101019153531
Ignore-this: 159849457d44f7036f22004075ac1377
]
[Fix debugger
simonpj at microsoft.com**20101019153522
Ignore-this: ea1fb8253a1ac45bdc58d4f1ea9aa0f9
A bit yukky; see Note [Runtime skolems] in TcErrors.
But it works, and the debugger just is yukky in places.
]
[Fix IPRun by fixing the inferred quantification mechanism
simonpj at microsoft.com**20101019090220
Ignore-this: e7dc8c35979136237fa9a572b70f298e
]
[Recover after an error in an implication constraint
simonpj at microsoft.com**20101019090202
Ignore-this: fbbbdc2c3fc0bac0662d6b40e5d57d47
]
[Reject programs with equality superclasses for now
simonpj at microsoft.com**20101019090140
Ignore-this: 3e3eb8c876fa95290f0278e800fce5bc
]
[Layout and tiny refactoring only
simonpj at microsoft.com**20101019090124
Ignore-this: ee21565fde8cd45514d83d0ca9af3253
]
[Clean up the debugger code
simonpj at microsoft.com**20101019090100
Ignore-this: 8677a9084d787f45542419a58e5d8866
In particular there is much less fiddly skolemisation now
Things are not *quite* right (break001 and 006 still fail),
but they are *much* better than before.
]
[Add new VarEnv functions minusVarEnv, intersectsVarEnv, unionInScope
simonpj at microsoft.com**20101019085609
Ignore-this: a3a8e23fe522079e3eb9c34ea8032602
]
[Major pass through type checker:(1) prioritizing equalities, (2) improved Derived mechanism, (3) bugfixes
dimitris at microsoft.com**20101018151510]
[(1) Caching FD improvements for efficiency, (2) preventing cascading deriveds from entering the inert, (3) Fixing bugs in the creation of FlexiTcS variables
dimitris at microsoft.com**20101015164421]
[Midstream changes for performance improvement related to superclasses and functional dependencies.
dimitris at microsoft.com**20101014143811]
[Minor
dimitris at microsoft.com**20101012080951]
[Commentary changes
dimitris at microsoft.com**20101011142235]
[Kind checking bugfix (#4356) and preventing wanteds from rewriting wanteds
dimitris at microsoft.com**20101008173700]
[Fix a retainer profiling segfault
Ian Lynagh <igloo at earth.li>**20101019132727
Ignore-this: 19f9e2a6dc8a64b30f3769f4101f82db
The bitmap type wasn't big enough to hold large bitmaps on 64 bit
platforms. Profiling GHC was segfaulting when retainStack was handling a
size 33 bitmap.
]
[Fix -auto-all: Add SCCs to IDs which have a monotype too
Ian Lynagh <igloo at earth.li>**20101018153957]
[Define SpecConstrAnnotation in GHC.Exts, and import it from there
simonpj at microsoft.com**20101018135746
Ignore-this: a6ade815584a1d03be55a6c417de0ab0
Reason: avoid having to link the entire ghc package in modules
that use compile-time annotations:
import GHC.Exts( SpecConstrAnnotation )
{-# ANN type T ForceSpecConstr #-}
It's a kind of bug that the package exporting SpecConstrAnnotation
is linked even though it is only needed at compile time, but putting
the data type declaration in GHC.Exts is a simple way to sidestep
the problem
See See Note [SpecConstrAnnotation] in SpecConstr
]
[Fix warnings in AsmCodeGen
David Terei <davidterei at gmail.com>**20101007143559
Ignore-this: 1c34b3a39968a5ca123862726f36a8ee
]
[LLVM: Fix compilation of writebarrier, #4308
David Terei <davidterei at gmail.com>**20101004153843
Ignore-this: df256e78b90e3fc263a88d4f0af6ea96
]
[Change how the OS X installer's create-links finds the versin number
Ian Lynagh <igloo at earth.li>**20101017122352
Ignore-this: 543d3f40c2ba5daf8b2b4ea22eb4bfca
It now gets created by configure, rather than trying to work out the
version number at runtime.
]
[Add more quoting to distrib/MacOS/installer-scripts/create-links
Ian Lynagh <igloo at earth.li>**20101017112648
Ignore-this: 5119ea2efc925d568d96c616af550c7c
]
[change os x installer to allow multiple installed versions
Evan Laforge <qdunkan at gmail.com>**20100929234538
Ignore-this: 4f70551293f53a52c39c5962d8a5bd5b
This puts the ghc version into the package name so they are considered separate
packages.
]
[Only put the boot packages in the haddock contents/index
Ian Lynagh <igloo at earth.li>**20101016180031
Ignore-this: 3dc276dc734fec207def24a1d10eb369
We don't install dph etc, so don't put them in the doc index.
]
[Correct the regexp used to search for extra packages
Ian Lynagh <igloo at earth.li>**20101016123421
Ignore-this: 98e3f8fda1c5678730a00ec1ac25fde3
We weren't ignoring comment lines
]
[New member "archiveMemberName" for struct _ObjectCode
pho at cielonegro.org**20100927224145
Ignore-this: 628bc605e7dc4f0c4856c6f7ad23d9ee
struct _ObjectCode should be able to retain the name of archive members.
Though currently the only use of those names are for debugging outputs.
]
[Add a -fghci-sandbox flag so that we can en/disable the ghci sandbox
Ian Lynagh <igloo at earth.li>**20101015172746
Ignore-this: 52bc5729437a93a925d3586d9803623c
It's on by default (which matches the previous behaviour).
Motivation:
GLUT on OS X needs to run on the main thread. If you
try to use it from another thread then you just get a
white rectangle rendered. For this, or anything else
with such restrictions, you can turn the GHCi sandbox off
and things will be run in the main thread.
]
[Fix boot; it was failing if darcs-all or validate were missing
Ian Lynagh <igloo at earth.li>**20101015164549
Ignore-this: 14b3e98836647aff345e35bca2102f93
(which is the case in sdists)
]
[Comments and layout
simonpj at microsoft.com**20101015131924
Ignore-this: 126fbdb629a08c1380c7a1f5cd967d97
]
[Make (Located a) an instance of Eq, Ord
simonpj at microsoft.com**20101015131857
Ignore-this: 5da50f8dab06fcbc23ce149cd5080062
Fulfils Trac #4369
]
[Give user-defined rules precedence over built-in rules
simonpj at microsoft.com**20101015131814
Ignore-this: 76fbf36cb1a09e31c10c68c06b98937e
This fixes Trac #4397. See comments with 'isMoreSpecific'.
]
[Fix Trac #4401: meta-tyvars allocated by the constraint solver are always touchable
simonpj at microsoft.com**20101015130818
Ignore-this: 7fcdaee825d9cadcf69c8c9b8967a446
See Note [Touchable meta type variables] in TcSMonad
]
[Remove GHC.extendGlobalRdrScope, GHC.extendGlobalTypeScope
simonpj at microsoft.com**20101013091107
Ignore-this: df65a43d261353ad53811b25507e913e
These functions were added by
Tue Apr 18 03:36:06 BST 2006 Lemmih <lemmih at gmail.com>
* Make the initial rdr and type scope available in the ghc-api
The are extremely dubious, because they extend the Rdr and Type
env for every compilation. The right thing to do is to use
the InteractiveContext for temporary extensions.
So far as we know, no one uses them. And if they are being used
it's probably a mistake. So we're backing them out.
]
[InlinePrag needs an arity only for INLINE, not INLINABLE
Simon Marlow <marlowsd at gmail.com>**20101015094925
Ignore-this: 3b338f0b2b49fa714b195067e0026ef7
This doesn't fix anything (we think), but it's morally correct.
]
[Fix #4346 (INLINABLE pragma not behaving consistently)
Simon Marlow <marlowsd at gmail.com>**20101015094836
Ignore-this: 9a9d8ad42cfdf7f619adfac284bae021
Debugged thanks to lots of help from Simon PJ: we weren't updating the
UnfoldingGuidance when the unfolding changed.
Also, a bit of refactoring and additinoal comments.
]
[Have boot check that we have the dph packages when validating
Ian Lynagh <igloo at earth.li>**20101014140556
Ignore-this: 61e365127933f4dbfb62be66115455bd
]
[Add more documentation for interruptible foreign calls
Simon Marlow <marlowsd at gmail.com>**20101014084253
Ignore-this: 28ec0ddd958926a08ab816b6975da344
]
[minor refactoring
Simon Marlow <marlowsd at gmail.com>**20100926105819
Ignore-this: 70d38e0a31a096c94dad5f346b0d91f6
]
[Fix for interruptible FFI handling
Simon Marlow <marlowsd at gmail.com>**20100925193442
Ignore-this: a63ba3c60f577002a1d32b30bb45090c
Set tso->why_blocked before calling maybePerformBlockedException(), so
that throwToSingleThreaded() doesn't try to unblock the current thread
(it is already unblocked).
]
[interruptible FFI: more robust handling of the exception case in the interpreter
Simon Marlow <marlowsd at gmail.com>**20100925193317
Ignore-this: 7f9e67835a3bd096154db2dcf533ec66
]
[Don't interrupt when task blocks exceptions, don't immediately start exception.
Edward Z. Yang <ezyang at mit.edu>**20100925033026
Ignore-this: 6c0669995a2b66abf29d68b3711cb78e
]
[Interruptible FFI calls with pthread_kill and CancelSynchronousIO. v4
Edward Z. Yang <ezyang at mit.edu>**20100919002905
Ignore-this: 43c260f90eeb9c03413f6e749e23101d
This is patch that adds support for interruptible FFI calls in the form
of a new foreign import keyword 'interruptible', which can be used
instead of 'safe' or 'unsafe'. Interruptible FFI calls act like safe
FFI calls, except that the worker thread they run on may be interrupted.
Internally, it replaces BlockedOnCCall_NoUnblockEx with
BlockedOnCCall_Interruptible, and changes the behavior of the RTS
to not modify the TSO_ flags on the event of an FFI call from
a thread that was interruptible. It also modifies the bytecode
format for foreign call, adding an extra Word16 to indicate
interruptibility.
The semantics of interruption vary from platform to platform, but the
intent is that any blocking system calls are aborted with an error code.
This is most useful for making function calls to system library
functions that support interrupting. There is no support for pre-Vista
Windows.
There is a partner testsuite patch which adds several tests for this
functionality.
]
[Remove ghc-pkg's dependency on haskell98
Ian Lynagh <igloo at earth.li>**20101013194356
Ignore-this: 273fdede3f21e682faa4dc6e61f4e7aa
]
[Build haskell98 and haskell2010 with stage2
Ian Lynagh <igloo at earth.li>**20101013182759
Stops us accidentally depending on them
]
[Fix warning: Remove unused import
Ian Lynagh <igloo at earth.li>**20101013141224
Ignore-this: ae8891440811f4676d9bb8e721ad22ca
]
[Fix warnings
benl at ouroborus.net**20101013040335
Ignore-this: 4e5875827d2840de863000cdb35afb0e
]
[RegAlloc: Track slot liveness over jumps in spill cleaner
benl at ouroborus.net**20101013015414
Ignore-this: ccd4a148908b7fbdc6ea76acf527c16b
]
[Bump Cabal dep
Ian Lynagh <igloo at earth.li>**20101012154528
Ignore-this: da8539b957b74c7da91efff8ac25872
]
[Remove __HASKELL1__, __HASKELL98__, __CONCURRENT_HASKELL__
Ian Lynagh <igloo at earth.li>**20101012134700
Ignore-this: d0db531be58537c52802de1c62694eb1
We used to define these CPP symbols, but nothing on hackage uses them
and the first 2 are no longer correct (as we support multiple Haskell
versions).
]
[Follow Cabal changes: Cabal no longer has a docbook userguide
Ian Lynagh <igloo at earth.li>**20101012130538
Ignore-this: bf0b30e465c13f82725d72aec145e939
For now we don't build the Cabal userguide, but we should add markdown
support so that we can do so.
]
[Fix build on Windows: ghc-pkg/Main.hs needs ForeignFunctionInterface
Ian Lynagh <igloo at earth.li>**20101012112111]
[Remove unnecessary import
Ian Lynagh <igloo at earth.li>**20101010222231
Ignore-this: 6c7d5cee72837e2af43c2807e10ad602
]
[Make "./validate --slow" run the full testsuite
Ian Lynagh <igloo at earth.li>**20101007004327
Ignore-this: 2dee8262c19fd5d5034a186203e20d0f
]
[Fix build following haskell98 and -fglasgow-exts changes
Ian Lynagh <igloo at earth.li>**20101006160656
Ignore-this: c56bdb0f01da897b3de75bcab1e2887c
]
[Don't automatically link the haskell98 package
Ian Lynagh <igloo at earth.li>**20101006130235
The default language is now Haskell2010, so this was a little odd.
Also, --make is now on by default, so this was largely irrelevant.
]
[Deprecate -fglasgow-exts
Ian Lynagh <igloo at earth.li>**20101006124413
Ignore-this: 70be67898a633ab31d76f6fca557d55
]
[Remove Opt_GADTs and Opt_TypeFamilies from -fglasgow-exts
Ian Lynagh <igloo at earth.li>**20101006122000
Ignore-this: 7153ec880b2b5f9d332ae2f57b97afcc
This means most code doesn't get caught by monomorphic local bindings.
]
[Fix Trac #4360: omitted case in combineCtLoc
simonpj at microsoft.com**20101008135747
Ignore-this: 834636a97af6469862a822809253db41
]
[Beautiful new approach to the skolem-escape check and untouchable
simonpj at microsoft.com**20101008133751
Ignore-this: 33517a772cfdfbf4aa4678609f3dcd71
Instead of keeping a *set* of untouchable variables in each
implication contraints, we keep a *range* of uniques for the
*touchable* variables of an implication. This are precisely
the ones we would call the "existentials" if we were French.
It turns out that the code is more efficient, and vastly easier
to get right, than the set-based approach.
Fixes Trac #4355 among others
]
[Do less simplification when doing let-generalisation
simonpj at microsoft.com**20101008133542
Ignore-this: 71366d0de37f10ffba2edc9f3927ddbe
This fixes Trac #4361. In a rather delicate way, but
no more delicate than before. A more remoseless typechecker
would reject #4361 altogether.
See Note [Avoid unecessary constraint simplification]
]
[Suppress ambiguity errors if any other errors occur
simonpj at microsoft.com**20101008111318
Ignore-this: 40f014265c1ab15fe172baaf76c23c87
]
[Fix Trac #4361: be more discerning when inferring types
simonpj at microsoft.com**20101008111227
Ignore-this: 33656f9a151f494b26b6318b5fcffef
Note [Avoid unecessary constraint simplification] in TcSimplify
]
[Float out partial applications
Simon Marlow <marlowsd at gmail.com>**20101008092709
Ignore-this: 2dc9d10597c19d0598ef2fc3cf74156d
This fixes at least one case of performance regression in 7.0, and
is nice win on nofib:
Program Size Allocs Runtime Elapsed
Min +0.3% -63.0% -38.5% -38.7%
Max +1.2% +0.2% +0.9% +0.9%
Geometric Mean +0.6% -3.0% -6.4% -6.6%
]
[Suppress knock-on typechecker errors
simonpj at microsoft.com**20101008094348
Ignore-this: 8d125926286a7614fa1ce998e3b26d04
The error cascade caused puzzling errors in T4093b, and
suppressing some seems like a good plan. Very few test
outputs change.
]
[Some refactoring and simplification in TcInteract.occurCheck
simonpj at microsoft.com**20101007163500
Ignore-this: d43d09370ab27b8796062e2e98ce7e9
]
[Comments only
simonpj at microsoft.com**20101007130301
Ignore-this: ab46592edd3d24786bbce42c50feb4fd
]
[Implement auto-specialisation of imported Ids
simonpj at microsoft.com**20101007111051
Ignore-this: 45257ff6e9597e4fa4de10b0657e27d6
This big-ish patch arranges that if an Id 'f' is
* Type-class overloaded
f :: Ord a => [a] -> [a]
* Defined with an INLINABLE pragma
{-# INLINABLE f #-}
* Exported from its defining module 'D'
then in any module 'U' that imports D
1. Any call of 'f' at a fixed type will generate
(a) a specialised version of f in U
(b) a RULE that rewrites unspecialised calls to the
specialised on
e.g. if the call is (f Int dOrdInt xs) then the
specialiser will generate
$sfInt :: [Int] -> [Int]
$sfInt = <code for f, imported from D, specialised>
{-# RULE forall d. f Int d = $sfInt #-}
2. In addition, you can give an explicit {-# SPECIALISE -#}
pragma for the imported Id
{-# SPECIALISE f :: [Bool] -> [Bool] #-}
This too generates a local specialised definition,
and the corresponding RULE
The new RULES are exported from module 'U', so that any module
importing U will see the specialised versions of 'f', and will
not re-specialise them.
There's a flag -fwarn-auto-orphan that warns you if the auto-generated
RULES are orphan rules. It's not in -Wall, mainly to avoid lots of
error messages with existing packages.
Main implementation changes
- A new flag on a CoreRule to say if it was auto-generated.
This is persisted across interface files, so there's a small
change in interface file format.
- Quite a bit of fiddling with plumbing, to get the
{-# SPECIALISE #-} pragmas for imported Ids. In particular, a
new field tgc_imp_specs in TcGblEnv, to keep the specialise
pragmas for imported Ids between the typechecker and the desugarer.
- Some new code (although surprisingly little) in Specialise,
to deal with calls of imported Ids
]
[Make NameEnv back into type NameEnv a = UniqFM a
simonpj at microsoft.com**20101007104638
Ignore-this: 24857c013461788be354520e84f4c286
I don't think the type distinction of declaring NameEnv with a newtype
(as it was) is really useful to us. Moreover, VarEnv is a UniqFM, and
I do sometimes want to build an envt with Ids and look up with Names.
This may not be the last word on the subject.
]
[Improve the rule-matcher
simonpj at microsoft.com**20101007103700
Ignore-this: 9de96237dc4b73a43326bd568e34b53b
Previously it was rejecting the match
Template: forall s t. map s t
Actual: map Int t
which should obviously be fine. It turns out that this kind of match
comes up when specialising. By freshening that t we could avoid the
difficulty, but morally the (forall t) binds t and the rule should
be alpha-equivalent regardless of the forall'd variables.
This patch makes it so, and incidentally makes matching a little
more efficient. See Note [Eta expansion] in VarEnv.
]
[Fix Trac #4345: simplifier bug
simonpj at microsoft.com**20101007102720
Ignore-this: 261c1c9f094df344ce34de814f8b60c5
This is another long-standing bug, in which there was a possibility
that a loop-breaker could lose its loop-breaker-hood OccInfo,
and then the simplifer re-simplified the expression. Result, either
non-termination or, in the case of #4345, an unbound identifier.
The fix is very simple, in Id.transferPolyIdInfo.
See Note [transferPolyIdInfo].
]
[Avoid redundant simplification
simonpj at microsoft.com**20101007095935
Ignore-this: 61bd1a2c508260f558866e6a88c29fa3
When adding specialisation for imported Ids, I noticed that the
Glorious Simplifier was repeatedly (and fruitlessly) simplifying the
same term. It turned out to be easy to fix this, because I already
had a flag in the ApplyTo and Select constructors of SimplUtils.SimplCont.
See Note [Avoid redundant simplification]
]
[Make the occurrence analyser deal correctly with RULES for imported Ids
simonpj at microsoft.com**20101007094100
Ignore-this: 335b1cad013524e42b31e88c0a7a00f6
This patch fixes a long-standing lurking bug, but it surfaced when I
was adding specialisation for imported Ids.
See Note [ImpRuleUsage], which explains the issue. The solution
seems more complicated than the problem really deserves, but I
could not think of a simpler way, so I just bit the bullet and
wrote the code. Improvements welcome.
]
[Make warning-free
simonpj at microsoft.com**20101007092007
Ignore-this: 4bae0c470a8a1f96d21990d1f3cf1f93
]
[This is just white-space and layout
simonpj at microsoft.com**20101007091618
Ignore-this: 759c0335df70fce32558e967f140803a
(At least, I don't think there is anything else.)
]
[Fix an ASSERT failure in FamInstEnv
simonpj at microsoft.com**20101007091327
Ignore-this: a8c08ccb7ec2bc65864a674b5441539
I added a lot of comments too, to explain the preconditions;
esp Note [FamInstEnv]
]
[Fix a looping bug in the new occur-check code
simonpj at microsoft.com**20101007084104
Ignore-this: a02a2deafb9ec986ef1565f4596049ed
]
[Fix test T4235 with -O
simonpj at microsoft.com**20101006155223
Ignore-this: f0fa0fe2f0c493e362d528d71f7a64e1
The tag2Enum rule wasn't doing the right thing for
enumerations with a phantom type parameter, like
data T a = A | B
]
[Make warning-free
simonpj at microsoft.com**20101006155033
Ignore-this: 221a3c95a6079c6ecc0468996a38b048
]
[Major bugfixing pass through the type checker
dimitris at microsoft.com**20101006152854]
[Typechecker performance fixes and flatten skolem bugfixing
dimitris at microsoft.com**20101004130200
Ignore-this: 86721ba3f09479c146a0710796b43459
]
[Performance bug fixes
dimitris at microsoft.com**20100923143918]
[Fix Trac #4371: matching of view patterns
simonpj at microsoft.com**20101006115316
Ignore-this: 494b28b91f1e6392b2f1521cda0e83b1
]
[Remove unused NoMatchContext construtor
simonpj at microsoft.com**20101006115251
Ignore-this: 8985ff1dac51fb652bd65657a630a792
]
[Refactoring: mainly rename ic_env_tvs to ic_untch
simonpj at microsoft.com**20101006102830
Ignore-this: 32999403a3f447e14b59cec7896027ff
Plus remember to zonk the free_tvs in TcUnify.newImplication
]
[remove unnecessary/broken definition of mask_
Simon Marlow <marlowsd at gmail.com>**20101002195118
Ignore-this: 4cdc9c95d40e01cdfe2d0ac411476603
]
[-fwarn-tabs: add "Warning" to the message
Simon Marlow <marlowsd at gmail.com>**20101002195100
Ignore-this: 589a36daa3426ab51f2fb140e38df6c
]
[give a better error message in the non-threaded RTS for out-of-range FDs
Simon Marlow <marlowsd at gmail.com>**20100929212916
Ignore-this: e94c9f390b8f79d24895a80f9d16c8d9
# ./aw
aw: file descriptor 1027 out of range for select (0--1024).
Recompile with -threaded to work around this.
]
[Fix a very rare crash in GHCi
Simon Marlow <marlowsd at gmail.com>**20101005144735
Ignore-this: dad1cd08934bae2ba47e72c0c000acfa
When a BCO with a zero-length bitmap was right at the edge of
allocated memory, we were reading a word of non-existent memory.
This showed up as a segfault in T789(ghci) for me, but the crash was
extremely sensitive and went away with most changes.
Also, optimised scavenge_large_bitmap a bit while I was in there.
]
[Using 'stdcall' when it is not supported is only a warning now (#3336)
Simon Marlow <marlowsd at gmail.com>**20100924152445
Ignore-this: 66c5903a600a47485a7583535bb38455
]
[remove unnecessary stg_noForceIO (#3508)
Simon Marlow <marlowsd at gmail.com>**20100924150202
Ignore-this: dec52de9cd9da7dcedae12b20691aba9
]
[Replace an outputStr with putStrLn calls; fixes #4332
Ian Lynagh <igloo at earth.li>**20101003125707
Ignore-this: eb4b5f60d9d9d3f7dc203869927b28ba
]
[make test and fulltest targets in the main Makefile; fixes #4297
Ian Lynagh <igloo at earth.li>**20100930224741
You can now run "make test" in the root, and the fast testsuite will be
run with cleaning enabled. It will also put the summary in
testsuite_summary.txt.
]
[Don't show the loaded packages in ":show packages"; fixes #4300
Ian Lynagh <igloo at earth.li>**20100930210128
It's never worked properly, and the information is in ":show linker".
]
[Handle EXTRA_LIBRARIES when building programs
Ian Lynagh <igloo at earth.li>**20100930192552
Ignore-this: 401a26e18d25dcaee010b13eaed8f011
And set hp2ps's EXTRA_LIBRARIES. Based on a patch from Sergei Trofimovich.
]
[Fix the doc directory on Windows
Ian Lynagh <igloo at earth.li>**20100929133328]
[Remove an unused import on Windows
Ian Lynagh <igloo at earth.li>**20100929000024
Ignore-this: 2899e0e5a47122e637fb5c8aa0df52ab
]
[Use showCommandForUser when showing tracing commands
Ian Lynagh <igloo at earth.li>**20100928235844
Ignore-this: 8a4a9c9f8a8029e708c4297b096b6ef1
]
[Fix hsc2hs docs: 'gcc' is now the default compiler, not 'ghc'; fixes #4341
Ian Lynagh <igloo at earth.li>**20100928201938]
[Use an empty signal handler for SIGPIPE instead of SIG_IGN
Simon Marlow <marlowsd at gmail.com>**20100925193548
Ignore-this: b4dc5de32740a7c5fd8fe4b3bfb1300f
This is so that the SIGPIPE handler gets reset to the default
automatically on exec().
]
[Fix the TH deps
Ian Lynagh <igloo at earth.li>**20100925210029
Ignore-this: 32b832301a3625d4ba70f84c5c4f94d2
]
[Check inplace doesn't exist before we try to create it
Ian Lynagh <igloo at earth.li>**20100924191858
This fixes rerunning configure in a tree which already has an inplace
directory. Edward Z Yang ran into this; I guess whether it actually
fails depends on details of your installation, or we'd have run into
it sooner.
]
[Fix an egregious bug: INLINE pragmas on monomorphic Ids were being ignored
simonpj at microsoft.com**20100924155815
Ignore-this: 38c6eec6710a92df7662a55fc5132c15
I had do to some refactoring to make this work nicely
but now it does. I can't think how this escaped our
attention for so long!
]
[Eta expand only lambdas that bind a non-dictionary Id
simonpj at microsoft.com**20100924155707
Ignore-this: 7cc265eaf6c0bb3fa12eb311d92594ac
See Note [When to eta expand]. The idea is that dictionary
lambdas are invisible to the user, so we shouldn't eta
expand them.
]
[Add a comment
simonpj at microsoft.com**20100924155620
Ignore-this: de210a1afdd40328824803e1d77b4d7f
]
[Add a debug print
simonpj at microsoft.com**20100924155614
Ignore-this: 1a58b6d297fc77d6ded8eec7ea9f895d
]
[Just moving comments around
simonpj at microsoft.com**20100924155600
Ignore-this: 96635b8e8c9d88b50d82938568152ef8
]
[use putStrLn instead of Haskeline's outputStrLn
Simon Marlow <marlowsd at gmail.com>**20100924133154
Ignore-this: 7581ae11714a9a52e78ba098c3c216b3
use of the latter caused problems for Claus Reinke's macros that
redirect stdout.
]
[Change "OPTIONS" to "OPTIONS_GHC" in error messages; fixes #4327
Ian Lynagh <igloo at earth.li>**20100924120423
Ignore-this: 1697c83a5c346db640c0a2e22c69ff55
]
[Add deps for TH uses in vector
Ian Lynagh <igloo at earth.li>**20100923220244
Ignore-this: 54c3386b1c268821fcdd34b84bc8c6a4
]
[Bump Cabal dep
Ian Lynagh <igloo at earth.li>**20100923143241]
[Update Cabal's version number
Ian Lynagh <igloo at earth.li>**20100923141719]
[Build primitive with stage2
Ian Lynagh <igloo at earth.li>**20100923140525
Ignore-this: 110a819b78a57629a7edf1d4facdc191
]
[Fix the Windows __chkstk build error (missing Linker symbol)
Simon Marlow <marlowsd at gmail.com>**20100924113837
Ignore-this: 48f0907bb1bd5eaa0730b94a6bd94ea
]
[emit a helpful error message for missing DPH packages
Simon Marlow <marlowsd at gmail.com>**20100923141957
Ignore-this: 55ff2ee90c94524e023e014243bfe5df
]
[Fix computation of installed packages
simonpj at microsoft.com**20100924084737
Ignore-this: a597d2fa8be5135ba8ead6d2624b3d71
This is a follow-on to Simon's patch yesterday, developed
with him. It cleans up the computation of how packages
are installed, and installs the right ones.
]
[Fix braino in WwLib/Literal patch
simonpj at microsoft.com**20100924070914
Ignore-this: f6eb3a42e10f8aa7920de541cdfe76d8
]
[For now, switch off incomplete-pattern warnings in containers
simonpj at microsoft.com**20100923130117
Ignore-this: 7ffa58567f7a33aafe256492999da325
Put it back on when my patch is applied to the containers repo.
(the one that removes two refuable lambdas)
]
[Make -funfolding-dict-threshold work properly
simonpj at microsoft.com**20100923130032
Ignore-this: 417788f5b09d1d624f6b6371852c80c7
and increase its default value. This makes overloaded functions
a bit keener to inline. Which fixes Trac #4321
]
[Impredicative types is no longer deprecated
simonpj at microsoft.com**20100923125910
Ignore-this: 2bbaeb38b5e8424551677c0add627683
]
[Do not make FunctionalDependencies force MonoLocalBinds
simonpj at microsoft.com**20100923125900
Ignore-this: f4ae1fd07c87ec14f60bdfe3863ba7a9
]
[move CHECKED settings to the right place
Simon Marlow <marlowsd at gmail.com>**20100923123558
Ignore-this: e00a0eb5855463cc9b953670b3bbf211
]
[turn off -Werror for primitive and vector
Simon Marlow <marlowsd at gmail.com>**20100923122055
Ignore-this: 54d7b80f3f893385e1c3ef431e2a8a7b
]
[Add primitive and vector packages for DPH support
Simon Marlow <marlowsd at gmail.com>**20100923104542
Ignore-this: c070d015385b0a0797394132dcbb7670
DPH is now using the public vector package instead of its internal
version.
vector and primitive are not "boot" packages; they aren't required to
build GHC, but they are required to validate (because we include DPH
when validating).
If you say './darcs-all get --no-dph' then you don't get DPH, vector,
or primitive.
]
[Refactoring and tidy up in the build system
Simon Marlow <marlowsd at gmail.com>**20100923095642
Ignore-this: f7bf3a1fd160149d89b26f464b064fb1
Instead of the ghc-stage and ghc-stage2-package files in a package, we
now have a list of these in ghc.mk. There are other similar lists (of
boot-packages and non-installable packages), so this is not too bad,
and is simpler.
While poking around in the top-level ghc.mk file I spotted various
opportunities to clean up and re-order some of the cruft that has
accumulated over time.
]
[Allow absent State# RealWorld arguments
simonpj at microsoft.com**20100923111356
Ignore-this: c2d57633dec0293ebe6723ea3a4bb5df
]
[Add notSCCNote, and use it
simonpj at microsoft.com**20100923105949
Ignore-this: c8cc758656558a7f366bf784d75f0304
The point here is that SCCs get in the way of eta
expansion and we must treat them uniformly.
]
[Remove use of lambda with a refutable pattern
simonpj at microsoft.com**20100923105901
Ignore-this: d7d48b94e5744717a838591a1cc79cf0
]
[Avoid ASSERT black hole
simonpj at microsoft.com**20100923105820
Ignore-this: 5419d450871be22c8781ac3f0f40d76a
When this ASSERT tripped in CoreToStg it tried to print out
too much, which tripped the asssertion again. Result: an
infinite loop with no output at all. Hard to debug!
]
[Rejig the absent-arg stuff for unlifted types
simonpj at microsoft.com**20100923105732
Ignore-this: 69daa35816b948b0c4d259c73a5e928e
This is what was giving the "absent entered" messages
See Note [Absent errors] in WwLib. We now return a
suitable literal for absent values of unlifted type.
]
[Remove -fwarn-simple-patterns, and make -fwarn-incomplete-patterns include lambdas
simonpj at microsoft.com**20100922133934
Ignore-this: e851a2fb0377e10c28c506f0bf14cc85
This makes
\(x:xs) -> e
want when you have -fwarn-incomplete-patterns, which is consistent.
]
[Get rid of non-exhaustive lambda
simonpj at microsoft.com**20100922133801
Ignore-this: 748b2d5b43b02b6591b81abe7c105cd6
]
[Fix an ASSERT failure with profiling
simonpj at microsoft.com**20100922133741
Ignore-this: 170b2e94d6ee8cc7444cc4bb515328a0
The problem arose with this kind of thing
x = (,) (scc "blah" Nothing)
Then 'x' is marked NoCafRefs by CoreTidy, becuase it has
arity 1, and doesn't mention any caffy things.
That in turns means that CorePrep must not float out the
sat binding to give
sat = scc "blah" Nothing
x = (,) sat
Rather we must generate
x = \eta. let sat = scc "blah" Nothing
in (,) sat eta
URGH! This Caf stuff is such a mess.
]
[Remove an out of date paragraph from the user guide; fixes #4331
Ian Lynagh <igloo at earth.li>**20100922225239]
[Fix bindisttest when GhcProfiled = YES
Ian Lynagh <igloo at earth.li>**20100921222634
Ignore-this: 47c620fd6bec745e3eb699d9f53441d8
]
[Fixes for when HADDOCK_DOCS=NO
Ian Lynagh <igloo at earth.li>**20100921213916
Ignore-this: e0e069555c6db9d01a8ac70ba4dde591
]
[Bump version to 7.1
Ian Lynagh <igloo at earth.li>**20100921195935
Ignore-this: 4563987e6885d5ef55995ec0fa0d5ae8
]
[Don't use -march=i686 on powerpc-apple-darwin
Ian Lynagh <igloo at earth.li>**20100921193721
Thorikil ran into this when doing a PPC OS X build. We now also don't
use -m32 on PPC/OSX, but I don't think it should be necessary. We can
add it back if it does turn out to be.
]
[add a simple trace facility to the build system
Simon Marlow <marlowsd at gmail.com>**20100921134729
Ignore-this: d23ea2d62a648d0711b4b07d98e1b79f
saying
make TRACE=1
prints most of the macro calls and their arguments. It's easy to
trace new macros; see rules/trace.mk.
]
[fix building with extra packages (packages were added to BUILD_DIRS twice)
Simon Marlow <marlowsd at gmail.com>**20100921100153
Ignore-this: 4b425dff9777871ad5ba3e05e1d14483
Also add some comments about what extra-packages is doing
]
[add extra packages to $(EXTRA_PACKAGES), so we avoid installing them by default
Simon Marlow <marlowsd at gmail.com>**20100920144307
Ignore-this: 3395825d911a8bf7ba8385518d8b517b
]
[Fix indexing error in archive loader
Ian Lynagh <igloo at earth.li>**20100921121642]
[Add some -Dl belches
Ian Lynagh <igloo at earth.li>**20100921121624]
[Add casts to fix warnings
Ian Lynagh <igloo at earth.li>**20100921121714]
[Add support for BSD-variant large filenames in .a archives
Ian Lynagh <igloo at earth.li>**20100921000451]
[Tell Cabal that we're not building GHCi libs if UseArchivesForGhci=YES
Ian Lynagh <igloo at earth.li>**20100920230449]
["UseArchivesForGhci = YES" on darwin
Ian Lynagh <igloo at earth.li>**20100920211538]
[Add a dependency that my OS X build has recently started tripping up over
Ian Lynagh <igloo at earth.li>**20100920210239]
[Add "Use archives for ghci" to --info output
Ian Lynagh <igloo at earth.li>**20100920210523]
[Implement archive loading for ghci
Ian Lynagh <igloo at earth.li>**20100920201620]
[Tweak gen_contents_index now dph may not be there
Ian Lynagh <igloo at earth.li>**20100920201513]
[Filter out the FFI library when loading package in ghci
Ian Lynagh <igloo at earth.li>**20100920181032
The FFI GHCi import lib isn't needed as
compiler/ghci/Linker.lhs + rts/Linker.c link the
interpreted references to FFI to the compiled FFI.
We therefore filter it out so that we don't get
duplicate symbol errors.
]
[Loosen the conditions for -XUndecidableInstances; fixes Trac #4200
simonpj at microsoft.com**20100919162623
Ignore-this: 2f4323e278b1ce9250549727ffd0aa1b
]
[Further improvements in error messages
simonpj at microsoft.com**20100919153355
Ignore-this: b6fa0b11ae893df1a3ca68f78e427fa
]
[Add a flag -fwarn-missing-local-sigs, and improve -fwarn-mising-signatures
simonpj at microsoft.com**20100919153327
Ignore-this: fda8dfca450054ea692be0ee30b01885
The new flag prints out a warning if you have a local,
polymorphic binding that lacks a type signature. It's meant
to help with the transition to the new typechecker, which
discourages local let-generalisation.
At the same time I moved the missing-signature code to TcHsSyn,
where it takes place as part of zonking. That way the
types are reported after all typechecking is complete,
thereby fixing Trac #3696. (It's even more important for
local bindings, which is why I made the change.)
]
[Include the "stupid theta" in the type of $con2tag
simonpj at microsoft.com**20100919152201
Ignore-this: d95fae78a0e66f48bbd5862573a11f4d
]
[Add a release note about the typechecker
Ian Lynagh <igloo at earth.li>**20100919132927]
[Enable shared libs on OpenBSD
Matthias Kilian <kili at outback.escape.de>**20100918205040
Ignore-this: 729dd7ac0bba5d758f43bc31b541896
]
[Add separate functions for querying DynFlag and ExtensionFlag options
Ian Lynagh <igloo at earth.li>**20100918163815
and remove the temporary DOpt class workaround.
]
[Fix mkUserGuidePart deps
Ian Lynagh <igloo at earth.li>**20100918145904
We need to directly depend on the stage1 libs. The stage1 compiler lib
doesn't depend on them.
]
[Fix build on cygwin: Normalise slashes in .depend files to be /
Ian Lynagh <igloo at earth.li>**20100918132328
Ignore-this: 664f5ef4a41a4461eb34fe2ca7f2729a
]
[extra packages info is now read from packages file
Ian Lynagh <igloo at earth.li>**20100917224409
rather than being repeated in the build system
]
[Tweak darcs-all
Ian Lynagh <igloo at earth.li>**20100917194435]
[Bump dependencies
Ian Lynagh <igloo at earth.li>**20100917183609]
[Library release notes for 7.0.1
Ian Lynagh <igloo at earth.li>**20100917174850]
[Fix overriding of implicit parameters in the solver
simonpj at microsoft.com**20100917140403
Ignore-this: af76732309c7e2ca6b04f49327e9c14b
]
[Minor type printing amomaly
simonpj at microsoft.com**20100917140204
Ignore-this: c90cb2e51421b4543a827e096051772e
]
[Spaces only
simonpj at microsoft.com**20100917140156
Ignore-this: 7e34479502f7cb87d762355e40cbd012
]
[Minor refactoring
simonpj at microsoft.com**20100917140150
Ignore-this: 6c0648b949b91b7e2f23c136b124faf2
]
[Add types of implicit parameters as untouchable
simonpj at microsoft.com**20100917140138
Ignore-this: ba80740a557a9ba062dc7756e2320d17
This is a tricky point:
see Note [Implicit parameter untouchables]
]
[Better pretty printing of implicit parameters
simonpj at microsoft.com**20100917140054
Ignore-this: 867dd67818a5bd687b2b6a1b59e15775
]
[Yet more error message improvement
simonpj at microsoft.com**20100917121206
Ignore-this: 647fe8129d1d39d81e8249debd8df94e
]
[More error message wibbles
simonpj at microsoft.com**20100917094721
Ignore-this: 8ec2f150b96b26af2e9ab7ac2b371fc7
]
[More error refactoring
simonpj at microsoft.com**20100917092834
Ignore-this: 2d570ac0b9cc11305ddd33d093d11324
]
[Refactor type errors a bit
simonpj at microsoft.com**20100917080726
Ignore-this: 33da4549373f585064e2ee22b50ad6ac
Improves kind error messages in paticular
]
[Fix a very subtle shadowing bug in optCoercion
simonpj at microsoft.com**20100916170452
Ignore-this: 9041cfb3c93e27a5e644e57815313aae
See Note [Subtle shadowing in coercions]
This is what was going wrong in Trac 4160.
]
[Fix bad error in tyVarsOfType
simonpj at microsoft.com**20100916170348
Ignore-this: 67c8ce96a668cf6e3a38b82c893bcd81
We weren't gathering the type variables free in the kind
of a coercion binder!
]
[More assertions
simonpj at microsoft.com**20100916170310
Ignore-this: 7fdcb53c99d791621a3d7e01ef454404
]
[Add more location info in CoreLint
simonpj at microsoft.com**20100916170229
Ignore-this: 6558bab544b4f30189e0430668db87c3
]
[Print coercion variables as such (debugging change only)
simonpj at microsoft.com**20100916165944
Ignore-this: c6d2001c1d8279a2288cb63bc339577d
]
[Remove pprTrace
simonpj at microsoft.com**20100915225935
Ignore-this: 28185bbfa9732386f3c0f3eb4781a637
]
[Remove dead code dealing with type refinement
simonpj at microsoft.com**20100915223230
Ignore-this: 62824b5c2ec1077c7642163352559621
]
[Use mkAppTy
simonpj at microsoft.com**20100915223205
Ignore-this: e79e087b6a49219e9088846a1253a153
Using AppTy in CoreLint was giving a bogus Lint failure
]
[Comments only
simonpj at microsoft.com**20100915221253
Ignore-this: 3a45ea614188ccbb4a462de5cac96eda
]
[Extend eta reduction to work with casted arguments
simonpj at microsoft.com**20100915221229
Ignore-this: 24b103dcdf70331211507af929789f86
See Trac #4201, and
Note [Eta reduction with casted arguments]
Thanks to Louis Wasserman for suggesting this, and
implementing an early version of the patch
]
[Allow "INLINEABLE" as a synonym
simonpj at microsoft.com**20100915154249
Ignore-this: f41f80cb769e9acd5b463b170df698d0
]
[Documentation for INLINABLE
simonpj at microsoft.com**20100915154235
Ignore-this: f942c02bcadc0d2d2f05b9369f93e280
]
[Implement TH reification of instances (Trac #1835)
simonpj at microsoft.com**20100915151242
Ignore-this: 97dfa83db7da8f6cbd1b96801a57f8c5
Accompanying patch for template-haskell package is reqd
]
[errno corresponding to ERROR_NO_DATA should be EPIPE (non-threaded RTS)
Simon Marlow <marlowsd at gmail.com>**20100915141809
Ignore-this: 709c7280fbaa762e7071fb8796e8c01e
]
[Windows: use a thread-local variable for myTask()
Simon Marlow <marlowsd at gmail.com>**20100915120627
Ignore-this: 13ffa4f19ebd319fe672af53af8d0b9a
Which entailed fixing an incorrect #ifdef in Task.c
]
[Fix typo
Ian Lynagh <igloo at earth.li>**20100915140814]
[Add quotes in error message
simonpj at microsoft.com**20100915144724
Ignore-this: c5158047c0aa41947a79e4c8edbe54f4
]
[Fix isDefaultInlinePragma
simonpj at microsoft.com**20100915144710
Ignore-this: c9addf6bf811b23dc12603cf8521aa6c
]
[Implement INLINABLE pragma
simonpj at microsoft.com**20100915124442
Ignore-this: 80a4ab2c2d65b27868dc9b2e954d6c6f
Implements Trac #4299. Documentation to come.
]
[Less voluminous error when derived code doesn't typecheck
simonpj at microsoft.com**20100915072301
Ignore-this: eca7871dcc50c1070a0b530711adea27
]
[Improve pretty-printing of family instances
simonpj at microsoft.com**20100915123219
Ignore-this: 25ec6bcc7e8a7f7c303b38ca201db90e
Fixed Trac #4246
]
[Fix Trac #4240: -ddump-minimal-imports
simonpj at microsoft.com**20100915121937
Ignore-this: ab85057cb829a42ea44a92f7b4af24a3
See Note [Partial export] for the details.
I also fixed one egregious bug that was just
waiting to bite: we were using loadSysInterface
instead of loadSrcInterface.
]
[Comments only
simonpj at microsoft.com**20100915105707
Ignore-this: ab3a5f16f8260b7b8570e748bf97998a
]
[implement setThreadAffinity on Windows (#1741)
Simon Marlow <marlowsd at gmail.com>**20100914155844
Ignore-this: a14c7b4ef812007042342d0a25478f0b
]
[COFF: cope with new debug sections in gcc 4.x (fixes ghciprog004)
Simon Marlow <marlowsd at gmail.com>**20100914153026
Ignore-this: f340e40a2b0390836bc61bba144a04ed
Also updated the object file parser to properly handle the overflow
case for section names longer than 8 chars.
]
[eliminate clutter from make output
Simon Marlow <marlowsd at gmail.com>**20100915105712
Ignore-this: bfa4480dd239dda2a02ac391b6a9219c
]
[rts_isProfiled should be a visible API (fixes T2615(dyn))
Simon Marlow <marlowsd at gmail.com>**20100915083941
Ignore-this: b8ac09bb9d1a929bf45c6122f8485561
]
[Fix the "lost due to fragmentation" calculation
Simon Marlow <marlowsd at gmail.com>**20100914145945
Ignore-this: cdffcc9f3061c3a33da5171be111fc43
It was counting the space used by block descriptors as "lost"
]
[fix +RTS -S output: use peak_mblocks_allocated, now that mblocks can be freed
Simon Marlow <marlowsd at gmail.com>**20100914135030
Ignore-this: 65d21e5f86d3ab6ab4d6c255180b6968
]
[Fix egregious bug in deeplyInstantiate
simonpj at microsoft.com**20100915070325
Ignore-this: 22ede973038877af2673339aaf5de6cf
This resulted in an infinite loop in applyTypeToArgs, in syb
]
[Improve HsSyn pretty printing
simonpj at microsoft.com**20100915070255
Ignore-this: 7c8e2d86a482453c7e69e22bc31cb03f
]
[Remove (most of) the FiniteMap wrapper
Ian Lynagh <igloo at earth.li>**20100914201703
We still have
insertList, insertListWith, deleteList
which aren't in Data.Map, and
foldRightWithKey
which works around the fold(r)WithKey addition and deprecation.
]
[Improve ASSERT
simonpj at microsoft.com**20100914113900
Ignore-this: dbc0363be5924f543316e77f7d18dd77
]
[Comment on what an "enumeration" type is
simonpj at microsoft.com**20100914113850
Ignore-this: c09c8591e3140f305d55fbf945adbf95
]
[Make absent-arg wrappers work for unlifted types (fix Trac #4306)
simonpj at microsoft.com**20100914113827
Ignore-this: 1945e56779329e8b79780403710aba98
Previously we were simply passing arguments of unlifted
type to a wrapper, even if they were absent, which was
stupid.
See Note [Absent error Id] in WwLib.
]
[Comments only
simonpj at microsoft.com**20100914113641
Ignore-this: 3191ce856c9b5d9700cedc9b149b8097
]
[Move error-ids to MkCore (from PrelRules)
simonpj at microsoft.com**20100914113635
Ignore-this: c3d820db62ba6139dd7c96bf97e51bb5
and adjust imports accordingly
]
[More wibbles to deriving error messages
simonpj at microsoft.com**20100914113523
Ignore-this: bd2df662644961138fa209aec843a2aa
]
[Fix getThreadCPUTime()
Simon Marlow <marlowsd at gmail.com>**20100913153838
Ignore-this: 950e048a5724086534b74c609c7d5ed
ever since the patch "Check with sysconf _POSIX_THREAD_CPUTIME", it
has been returning incorrect results, because the sysconf variable to
check should have been _SC_THREAD_CPUTIME, not _POSIX_THREAD_CPUTIME.
]
[filter out the gcc-lib directory from the rts package's library-dirs
Simon Marlow <marlowsd at gmail.com>**20100913101259
Ignore-this: 46dc1dccbfee8a65f9243e125eee117f
fixes problems when building with GHC 6.10 on Windows
]
[Don't include GC time in heap profiles (#4225)
Simon Marlow <marlowsd at gmail.com>**20100913133852
Ignore-this: 68ac48b004b311384b5996c6b33ba5cc
]
[Use clock_gettime (if available) to measure the process CPU time
Simon Marlow <marlowsd at gmail.com>**20100913133818
Ignore-this: 8c9300df9b929bfc1db4713c9b6065b3
This is much more accurate than getrusage, which was giving misleading
results when trying to time very quick operations like a minor GC.
]
[make stg_arg_bitmaps public, and available via the GHCi linker (#3672)
Simon Marlow <marlowsd at gmail.com>**20100913105235
Ignore-this: e18efd0bd77c521e5530fb59e93b5a42
]
[fix typo
Simon Marlow <marlowsd at gmail.com>**20100913105100
Ignore-this: 6049eea21208864203b2d79db2edd143
]
[Update release notes and docs with LLVM info.
David Terei <davidterei at gmail.com>**20100914072135
Ignore-this: 5b3d0e5c9d5da98ed6ae9c2e8e1f6f30
]
[Remove defaultExtensionFlags
Ian Lynagh <igloo at earth.li>**20100913165949
The default should do into languageExtensions instead
]
[Improve crash message
simonpj at microsoft.com**20100913170407
Ignore-this: 5c26a9979f18be8cd12cea823c9f4b5a
]
[Fix Trac #4302, plus a little refactoring
simonpj at microsoft.com**20100913170355
Ignore-this: cf6886b587aa0e8d723362183625d946
]
[Fix build with 6.10
Ian Lynagh <igloo at earth.li>**20100913160048]
[Haddock fixes
simonpj at microsoft.com**20100913120510
Ignore-this: f3157d6969f10d4cbd593000a477138b
]
[Remove two old junk files
simonpj at microsoft.com**20100913103426
Ignore-this: ed7af5ef1b9592178909a8d876345302
]
[Super-monster patch implementing the new typechecker -- at last
simonpj at microsoft.com**20100913095048
Ignore-this: 14d14a1e4d7a414f5ae8d9d89d1c6a4b
This major patch implements the new OutsideIn constraint solving
algorithm in the typecheker, following our JFP paper "Modular type
inference with local assumptions".
Done with major help from Dimitrios Vytiniotis and Brent Yorgey.
]
[Fix simplifier statistics
simonpj at microsoft.com**20100909085441
Ignore-this: 48e383655aafc912dea15c4d94382863
]
[Trace output
simonpj at microsoft.com**20100908170056
Ignore-this: 4b67fa4b310fbf0a16b852686d2d3294
]
[Better debug output
simonpj at microsoft.com**20100908170047
Ignore-this: 410cef00616dda7c0c162f65216e8ca3
]
[Add Outputable instance for OccEncl
simonpj at microsoft.com**20100908150510
Ignore-this: 6362ef9028287d84f070eaf8963c1bfc
]
[Better simplifier counting
simonpj at microsoft.com**20100907214840
Ignore-this: 9d4722703f8f47447e86a28c8c50e0ea
]
[Put liftStringName into the known-key names
simonpj at microsoft.com**20100906112415
Ignore-this: 287064d14ff484da1a6dea6924bc9235
]
[Deprecate NoRelaxedPolyRec
simonpj at microsoft.com**20100903234519
Ignore-this: 607217e77f6bc1b91bf57dfd8dd2b967
]
[Buglet in Core Lint
simonpj at microsoft.com**20100903234457
Ignore-this: 277535d51b396d3b4b0265a0939c2d4
]
[Give seqId the right type
simonpj at microsoft.com**20100903093556
Ignore-this: d1fc7a73dea160614a8d4ddc930f99cd
]
[Remove dead code
simonpj at microsoft.com**20100903093548
Ignore-this: 92cc3f7651445aa349ee7f114d3ec758
]
[Comments and layout
simonpj at microsoft.com**20100903093502
Ignore-this: 9987d1409e654992c1cb1be35cb87728
]
[Remove checkFreeness; no longer needed
simonpj at microsoft.com**20100902233227
Ignore-this: c96a12ac9794290aa30402317d88c095
]
[Assert
simonpj at microsoft.com**20100902073642
Ignore-this: 4be1ab2f6096665ae5ec7fdd1f025a67
]
[Add aserts
simonpj at microsoft.com**20100902073211
Ignore-this: e1409441217fd070c5a7f9ee4cca99ab
]
[Wibbles
simonpj at microsoft.com**20100831113540
Ignore-this: 903811ab493a7b560a62eb86fcf3ee25
]
[Wibble to allow phantom types in Enum
simonpj at microsoft.com**20100825112711
Ignore-this: fdef1c50d92b4a3d46bbe4cbfd8a83ea
]
[Add HsCoreTy to HsType
simonpj at microsoft.com**20100824141845
Ignore-this: 4ca742b099f9cc90af3167f1012dbba6
The main thing here is to allow us to provide type
signatures for 'deriving' bindings without pain.
]
[Comments
simonpj at microsoft.com**20100823223654
Ignore-this: dd412a55839430c436902d8699d6900b
]
[Wibbles to error message
simonpj at microsoft.com**20100823163308
Ignore-this: 4d6cd8e613762dca8135c2e3b09264ec
]
[Correct type signatures
simonpj at microsoft.com**20100823153045
Ignore-this: 42942309221a443258246098f9c0a13b
]
[Add missing signatures
simonpj at microsoft.com**20100823112413
Ignore-this: 8ee1ce40456306de469938c02df4fed5
]
[Add type signatures in "deriving" bindings
simonpj at microsoft.com**20100820234230
Ignore-this: 4726b28968cf65ec16cb65b7e0e7303e
]
[Minor
dimitris at microsoft.com**20100820131021]
[Be a bit less aggressive in mark-many inside a cast
simonpj at microsoft.com**20100819104804
Ignore-this: 3fd48fe7647ec7a58c2032cd86ca4d4f
]
[Wibble
simonpj at microsoft.com**20100818185738
Ignore-this: d5c939311377c0d0c7244aa339193315
]
[Pretty printing change
simonpj at microsoft.com**20100818065436
Ignore-this: 4f7e70976dbe52f95effb3e634dfef5d
]
[Remember to zonk FlatSkols!
simonpj at microsoft.com**20100811143555
Ignore-this: 84f7f9dbda97f561a918c69308ddef9a
]
[De-polymorphise
simonpj at microsoft.com**20100730151217
Ignore-this: a9304487b983e517a9083fd697f77576
]
[Work around missing type signature in Happy
simonpj at microsoft.com**20100730122405
Ignore-this: 7f241a655d93c5ad7763a7ffe8db0c7a
Happy generates
notHappyAtAll = error "Blah"
without a type signature, and currently the new
typechecker doesn't generalise it. This patch
says "no monomorphism restriction" which makes it
generalise again.
Better would be to add a type sig to Happy's template
]
[Add two local type signatures
simonpj at microsoft.com**20100729152611
Ignore-this: afa99bcc515469aa0990d44d8c18a9e6
]
[Second test from Simon's laptop
simonpj at microsoft.com**20100729091703
Ignore-this: 4dc64cadae314a5a1b05cc5326918a83
]
[Test commit from Simon's laptop
simonpj at microsoft.com**20100729091344
Ignore-this: 109eff835cc19e9f93799d12f09b0ba7
]
[Add OutsideIn flag
simonpj at microsoft.com**20100728075525
Ignore-this: 69c2f5c3a15fa653f6da80598aa8d74d
]
[Layout only
simonpj at microsoft.com**20100727141539
Ignore-this: 1a58a8fe80ba8bced18ae81a2efb9495
]
[Improvement to SimplUtils.mkLam
simonpj at microsoft.com**20100727131659
Ignore-this: 739beaefa79baa7e0ebeb5b2b6d1ea91
]
[Give the correct kind to unsafeCoerce#
simonpj at microsoft.com**20100727131538
Ignore-this: 6b787de3b398c6d7a61fa04fccd15fd6
]
[Suppress warnings about recursive INLINE in output of desugarer
simonpj at microsoft.com**20100727094549
Ignore-this: a361f7238c0fcba526d46326722c42e
]
[Rename CorePrep.tryEtaReduce to tryEtaReducePrep
simonpj at microsoft.com**20100726231253
Ignore-this: 4375ddace205745244ba224ae012252
This avoids the name clash with the similar but
not identical CoreUtils.tryEtaReduce
]
[Add a trace message
simonpj at microsoft.com**20100719211111
Ignore-this: b5daebe46e50c8cf28cc693f84bbf099
]
[Don't use RelaxedPolyRec in the compiler; it's built in now
simonpj at microsoft.com**20100719170441
Ignore-this: a2e4489cdf63478e46282a421ee7aec3
]
[Remove duplicated #defines for FreeBSD
Matthias Kilian <kili at outback.escape.de>**20100912181518
Ignore-this: d16214fef8635c7c9ef4edec4e8e7896
]
[Don't fail with absolute silence
Matthias Kilian <kili at outback.escape.de>**20100912150506
Ignore-this: 479e2321f39b263fa2d9f80491e5e9f7
]
[Add a release note: "-dynload wrapper" removed
Ian Lynagh <igloo at earth.li>**20100911195809]
[put back the conversion of warn-lazy-unlifted-bindings into an error until 7.2
Ian Lynagh <igloo at earth.li>**20100911193434
I think we'll currently still have too many people with old versions of
alex/happy to want to make this an error now.
]
[6.14 -> 7.0
Ian Lynagh <igloo at earth.li>**20100911192837]
[Add a couple more release notes
Ian Lynagh <igloo at earth.li>**20100911162059]
[Document -dsuppress-module-prefixes
Ian Lynagh <igloo at earth.li>**20100911162005]
[Enable -fregs-graph with -O2; fixes #2790
Ian Lynagh <igloo at earth.li>**20100910191301]
[Remove unused code
Ian Lynagh <igloo at earth.li>**20100909170207]
[Fix warnings
Ian Lynagh <igloo at earth.li>**20100909154348]
[Fix warnings
Ian Lynagh <igloo at earth.li>**20100909150957]
[Remove context completion
lykahb at gmail.com**20100901160153
Ignore-this: dc61b259dcb7063f0c76f56788b5d2af
Now completion suggests to remove only modules added to context before.
]
[avoid Foreign.unsafePerformIO
Ross Paterson <ross at soi.city.ac.uk>**20100909125531
Ignore-this: 5cabeae4cffec8fc17ef7c0cabbea22a
]
[updates to the release notes
Simon Marlow <marlowsd at gmail.com>**20100909111450
Ignore-this: a4d25ad8815c305b7e0f21fd4f6ee37b
]
[newAlignedPinnedByteArray#: avoid allocating an extra word sometimes
Simon Marlow <marlowsd at gmail.com>**20100909110805
Ignore-this: 996a3c0460068ab2835b4920905b3e75
]
[Finish breaking up vectoriser utils
benl at ouroborus.net**20100909061311
Ignore-this: 217fe1d58a3e8bb13200bcb81353a416
]
[Move VectType module to Vectorise tree
benl at ouroborus.net**20100909042451
Ignore-this: 5af8cf394d4835911259ca3ffb6774c5
]
[Sort all the PADict/PData/PRDict/PRepr stuff into their own modules
benl at ouroborus.net**20100909035147
Ignore-this: 53436329773347cad793adbd83e90a9e
]
[Break out Repr and PADict stuff for vectorisation of ADTs to their own modules
benl at ouroborus.net**20100909025759
Ignore-this: d2b7d2f79332eda13416449742f7cf1c
]
[Break out conversion functions to own module
benl at ouroborus.net**20100909023332
Ignore-this: 613f2666b6ca7f2f8876fcc1e4a59593
]
[Comments and formatting only
benl at ouroborus.net**20100909022117
Ignore-this: c8e30139d730669e5db44f0ef491a588
]
[Remove "-dynload wrapper"; fixes trac #4275
Ian Lynagh <igloo at earth.li>**20100908213251]
[Don't set visibility on Windows
Ian Lynagh <igloo at earth.li>**20100905122442
With gcc 4.5.0-1, using visibility hidden gives:
error: visibility attribute not supported in this configuration; ignored
]
[Fix warnings on Windows
Ian Lynagh <igloo at earth.li>**20100905111201
Ignore-this: c5cce63bb1e0c7a27271bed78d25fbc5
]
[Fix gcc wrapper for new mingw binaries
Ian Lynagh <igloo at earth.li>**20100905001807
Ignore-this: f6acc8c911055ffce632bac138ccc939
]
[Don't pass our gcc options to stage0 ghc's gcc; they may not be suitable
Ian Lynagh <igloo at earth.li>**20100905103129]
[Update intree-mingw creation
Ian Lynagh <igloo at earth.li>**20100904225559]
[Update commands to build in-tree mingw
Ian Lynagh <igloo at earth.li>**20100904215112]
[Break out hoisting utils into their own module
benl at ouroborus.net**20100908074102
Ignore-this: e3ba4ed0252a2def1ed88a9e14c58fea
]
[Break out closure utils into own module
benl at ouroborus.net**20100908072040
Ignore-this: 216172b046ff101cf31a1753667a5383
]
[Move VectVar module to Vectorise tree
benl at ouroborus.net**20100908065904
Ignore-this: 1fba5333d29927dba4275381e1a7f315
]
[Break out vectorisation of expressions into own module
benl at ouroborus.net**20100908065128
Ignore-this: 6a952b80fb024b5291f166477eb1976
]
[Break out TyCon classifier into own module
benl at ouroborus.net**20100908063111
Ignore-this: da754c4ef6960b4e152ea1bf8c04ab6f
]
[Break out vectorisation of TyConDecls into own module
benl at ouroborus.net**20100908052004
Ignore-this: c0ab4fb2a05ca396efe348b384db1ebf
]
[Break out type vectorisation into own module
benl at ouroborus.net**20100907110311
Ignore-this: 67bd70a21d16468daf68dd3ec1ff7d62
]
[Tidy up the ArchHasAdjustorSupport definition
Ian Lynagh <igloo at earth.li>**20100904144234]
[ppc: switch handling of 'foreign import wrapper' (FIW) to libffi
Sergei Trofimovich <slyfox at community.haskell.org>**20100829192859
Ignore-this: 662ea926681ebea0759e2a04a38e82b7
Joseph Jezak reported darcs-2.4.4 SIGSEGV in interactive mode in ghc-6.12.3.
So I've concluded ppc also has rotten native adjustor. I don't have hardware
to verify the patch (ticket #3516 should help to test it), but I think it will
help (as similar patch helped for ia64 and ppc64).
]
[Binary no longer has unusable UNPACK pragmas, so no need to turn of -Werror
Ian Lynagh <igloo at earth.li>**20100904133339]
[Don't haddock packages that we aren't going to install
Ian Lynagh <igloo at earth.li>**20100903231921]
[Give haddock per-package source entity paths; fixes #3810
Ian Lynagh <igloo at earth.li>**20100903221335]
[update for containers-0.4
Simon Marlow <marlowsd at gmail.com>**20100903105131
Ignore-this: 556eac0e4926c9b8af6b66d7b069302c
]
[Fix for nursery resizing: the first block's back pointer should be NULL
Simon Marlow <marlowsd at gmail.com>**20100827102818
Ignore-this: fb68938e3f1e291e3c9e5e8047f9dcd2
I'm not sure if this could lead to a crash or not, but it upsets +RTS -DS
Might be related to #4265
]
[Add some -no-user-package-conf flags
Ian Lynagh <igloo at earth.li>**20100902224726
Stops user-installed packages breaking the build
]
[Fix warnings: Remove unused imports
Ian Lynagh <igloo at earth.li>**20100902204342]
[Finish breaking up VectBuiltIn and VectMonad, and add comments
benl at ouroborus.net**20100831100724
Ignore-this: 65604f3d22d03433abc12f10be40050d
]
[Fix warnings
benl at ouroborus.net**20100830083746
Ignore-this: 2a0e000985f694582a6f9a9261ff2739
]
[Break up vectoriser builtins module
benl at ouroborus.net**20100830070900
Ignore-this: b86bd36a7875abdcf16763902ba2e637
]
[Move VectCore to Vectorise tree
benl at ouroborus.net**20100830053415
Ignore-this: d5763ca6424285b39a58c7792f4a84a1
]
[Split out vectoriser environments into own module
benl at ouroborus.net**20100830050252
Ignore-this: 5319111c74831394d2c29b9aedf5a766
]
[Comments and formatting to vectoriser, and split out varish stuff into own module
benl at ouroborus.net**20100830042722
Ignore-this: d3f0c98ed8124dd0fca9a2ccea3e15fd
]
[Fix warnings
benl at ouroborus.net**20100830040340
Ignore-this: d6cfad803ad4617e7fdaa62e4a895282
]
[Fix warning about multiply exported name
benl at ouroborus.net**20100830035243
Ignore-this: 27ce2c1d22d9f99929d16a426343044e
]
[Vectorisation of method types
benl at ouroborus.net**20100830032941
Ignore-this: 75614571d5c246a4906edb3b39ab1e0b
]
[Comments and formatting to vectoriser
benl at ouroborus.net**20100830032516
Ignore-this: fe665b77108501c7960d858be3290761
]
[Implement -dsuppress-module-prefixes
benl at ouroborus.net**20100830032428
Ignore-this: 2bb8bad9c60ef9044132bba118010687
]
[Whitespace only
benl at ouroborus.net**20100527045629
Ignore-this: 4c160dfa77727e659817b6af9c84684a
]
[Disambiguate a function name
Ian Lynagh <igloo at earth.li>**20100828225827]
[users_guide.xml is now generated
Ian Lynagh <igloo at earth.li>**20100828225751]
[Pass more -pgm flags in the ghc wrapper; fixes #3863
Ian Lynagh <igloo at earth.li>**20100827204537]
[Add a new-IO manager release note
Ian Lynagh <igloo at earth.li>**20100827171616]
[Merge a duplicate release note
Ian Lynagh <igloo at earth.li>**20100827171511]
[Typo, spotted by Johan Tibell
Ian Lynagh <igloo at earth.li>**20100827153914]
[First pass at 6.14.1 release notes
Ian Lynagh <igloo at earth.li>**20100826220811]
[Fix typo
Ian Lynagh <igloo at earth.li>**20100824201330]
[FIX BUILD: add rts_isProfiled to the symbol table
Simon Marlow <marlowsd at gmail.com>**20100826094319
Ignore-this: 9536ddb0a94721c8dec03a2a981cfa83
]
[Fix the DPH package cleaning/profiled mess even more (the build was broken)
Simon Marlow <marlowsd at gmail.com>**20100826084436
Ignore-this: 49d7e4db2fb53b856c213c74c8969d82
]
[Remove the debugging memory allocator - valgrind does a better job
Simon Marlow <marlowsd at gmail.com>**20100824113537
Ignore-this: a3731a83dc18b0fd0de49452e695a7ca
I got fed up with the constant bogus output from the debugging memory
allocator in RtsUtils.c. One problem is that we allocate memory in
constructors that then isn't tracked, because the debugging allocator
hasn't been initialised yet.
The bigger problem is that for a given piece of leaking memory it's
impossible to find out where it was allocated; however Valgrind gives
output like this:
==6967== 8 bytes in 1 blocks are still reachable in loss record 1 of 7
==6967== at 0x4C284A8: malloc (vg_replace_malloc.c:236)
==6967== by 0x4C28522: realloc (vg_replace_malloc.c:525)
==6967== by 0x6745E9: stgReallocBytes (RtsUtils.c:213)
==6967== by 0x68D812: setHeapAlloced (MBlock.c:91)
==6967== by 0x68D8E2: markHeapAlloced (MBlock.c:116)
==6967== by 0x68DB56: getMBlocks (MBlock.c:240)
==6967== by 0x684F55: alloc_mega_group (BlockAlloc.c:305)
==6967== by 0x6850C8: allocGroup (BlockAlloc.c:358)
==6967== by 0x69484F: allocNursery (Storage.c:390)
==6967== by 0x694ABD: allocNurseries (Storage.c:436)
==6967== by 0x6944F2: initStorage (Storage.c:217)
==6967== by 0x673E3C: hs_init (RtsStartup.c:160)
which tells us exactly what the leaking bit of memory is. So I don't
think we need our own debugging allocator.
]
[free the entries in the thread label table on exit
Simon Marlow <marlowsd at gmail.com>**20100824112606
Ignore-this: c9d577c06548cda80791e590e40d35b3
]
[Panic in the right way
simonpj at microsoft.com**20100825091614
Ignore-this: e6ea4f6dfd2aea088828ea7a945ddd5f
]
[Fix the DPH/profiled make thing (again)
simonpj at microsoft.com**20100825091602
Ignore-this: bc58fa48034ac40cf7be4170958ea29e
]
[Don't test for gcc flags before we've found gcc
Ian Lynagh <igloo at earth.li>**20100824131401]
[Change how the dblatex/lndir problem is worked around
Ian Lynagh <igloo at earth.li>**20100824130938
Hack: dblatex normalises the name of the main input file using
os.path.realpath, which means that if we're in a linked build tree,
it find the real source files rather than the symlinks in our link
tree. This is fine for the static sources, but it means it can't
find the generated sources.
We therefore also generate the main input file, so that it really
is in the link tree, and thus dblatex can find everything.
]
[Clean the generated userguide sources
Ian Lynagh <igloo at earth.li>**20100824105827
Ignore-this: 39b4f9702c688c053ed3273b20969597
]
[DPH should not even be built if GhcProfiled
simonpj at microsoft.com**20100823133439
Ignore-this: 62acbf83de5b70ff6d27ab38ce9218ae
It's not just when cleaning!
]
[The templateHaskellOk check should only run in stage2
simonpj at microsoft.com**20100823133353
Ignore-this: f6dc9292923a1ca201953c5f58c0af3c
Because rtsIsProfiled is only available in stage2
]
[Add a couple of missing tests for EAGER_BLACKHOLE
Simon Marlow <marlowsd at gmail.com>**20100823104654
Ignore-this: 70c981b86370b0c7564b29b057650897
This was leading to looping and excessive allocation, when the
computation should have just blocked on the black hole.
Reported by Christian Höner zu Siederdissen <choener at tbi.univie.ac.at>
on glasgow-haskell-users.
]
[Don't check for swept blocks in -DS.
Marco Túlio Gontijo e Silva <marcot at marcot.eti.br>**20100718225526
Ignore-this: ad5dcf3c247bc19fbef5122c1142f3b2
The checkHeap function assumed the allocated part of the block contained only
alive objects and slops. This was not true for blocks that are collected using
mark sweep. The code in this patch skip the test for this kind of blocks.
]
[Fix "darcs get"
Ian Lynagh <igloo at earth.li>**20100822183542]
[Add "darcs-all upstreampull"
Ian Lynagh <igloo at earth.li>**20100822163419
This pulls from the upstream repos, for those packages which have
upstreams
]
[Generate the bit in the user guide where we say what -fglasgow-exts does
Ian Lynagh <igloo at earth.li>**20100822155514
Stops the docs going out of sync with the code.
]
[Factor out the packages file parsing in darcs-all
Ian Lynagh <igloo at earth.li>**20100822154813]
[Document --supported-extensions
Ian Lynagh <igloo at earth.li>**20100822134530]
[fix extraction of command stack of arguments of arrow "forms" (fixes #4236)
Ross Paterson <ross at soi.city.ac.uk>**20100822090022
Ignore-this: a93db04ec4f20540642a19cdc67d1666
The command stack was being extracted (by unscramble) with the outermost
type first, contrary to the comment on the function.
]
[minor fix to comment
Ross Paterson <ross at soi.city.ac.uk>**20100822085838
Ignore-this: 8d203ba2600eaf4cf21b043dcfa96cdc
]
[Add the RTS library path to the library search path
Ian Lynagh <igloo at earth.li>**20100820155523
In case the RTS is being explicitly linked in. For #3807.
]
[Remove some duplication of C flags
Ian Lynagh <igloo at earth.li>**20100819233743
We now use the CONF_CC_OPTS_STAGEn C flags in machdepCCOpts, rather than
repeating them there.
]
[Set -fno-stack-protector in CONF_CC_OPTS_STAGE* rathre than extra-gcc-opts
Ian Lynagh <igloo at earth.li>**20100819233031
The latter is only used when compiling .hc files, whereas we need it for
.c files too.
]
[Give clearer errors for bad input in the packages file; suggested by pejo
Ian Lynagh <igloo at earth.li>**20100819232420]
[Set -march=i686 on OS X x86 in the configure variables
Ian Lynagh <igloo at earth.li>**20100819230939
We used to set it only in machdepCCOpts, so this is more consistent
]
[Give each stage its own Config.hs
Ian Lynagh <igloo at earth.li>**20100819224709
This also means the file is generated in a dist directory, not a
source directory.
]
[Fix cleaning when GhcProfiled = YES
Ian Lynagh <igloo at earth.li>**20100819131346
We need to include the DPH cleaning rules, even though we don't build DPH
when GhcProfiled = YES.
]
[stgReallocBytes(DEBUG): don't fail when the ptr passed in is NULL
Simon Marlow <marlowsd at gmail.com>**20100817150836
Ignore-this: 4b5063e65e01399f64a33f0d0555ff38
]
[Use make-command in rules/bindist.mk
Ian Lynagh <igloo at earth.li>**20100818191243
Rather than it having its own specialised version
]
[Use make-command when installing packages
Ian Lynagh <igloo at earth.li>**20100818190600]
[Add _DATA_FILES to package-data.mk files
Ian Lynagh <igloo at earth.li>**20100818185801]
[Add a "make-command" utility Makefile function
Ian Lynagh <igloo at earth.li>**20100818183055]
[LLVM: Nicer format for lack of shared lib warning
David Terei <davidterei at gmail.com>**20100817145207
Ignore-this: 753d45762601d87761614937a1bb6716
]
[fix FP_CHECK_ALIGNMENT for autoconf 2.66 (fixes #4252)
Ross Paterson <ross at soi.city.ac.uk>**20100816142442
Ignore-this: cd784b8888d32b3b2cc2cc0969ec40f
Recent versions of AS_LITERAL_IF don't like *'s. Fix from
http://blog.gmane.org/gmane.comp.sysutils.autoconf.general/month=20100701
]
[Refactor the command-line argument parsing (again)
simonpj at microsoft.com**20100816074453
Ignore-this: 26dc9e37a88660a887a2e316ed7a9803
This change allows the client of CmdLineParser a bit more flexibility,
by giving him an arbitrary computation (not just a deprecation
message) for each flag.
There are several clients, so there are lots of boilerplate changes.
Immediate motivation: if RTS is not profiled, we want to make
Template Haskell illegal. That wasn't with the old setup.
]
[Add upstream repo to the packages file
Ian Lynagh <igloo at earth.li>**20100815154741]
[Make the "tag" column of the packages file always present
Ian Lynagh <igloo at earth.li>**20100815151657
It makes the parsing simpler if we always have the same number of columns
]
[Disable object splitting on OSX; works around #4013
Ian Lynagh <igloo at earth.li>**20100815134759]
[Return memory to the OS; trac #698
Ian Lynagh <igloo at earth.li>**20100813170402]
[Reduce the xargs -s value we use on Windows
Ian Lynagh <igloo at earth.li>**20100812223721
With 30000 I was getting:
xargs: value for -s option should be < 28153
]
[LLVM: Enable shared lib support on Linux x64
David Terei <davidterei at gmail.com>**20100813191534
Ignore-this: 642ed37af38e5f17d419bf4f09332671
]
[Re-do the arity calculation mechanism again (fix Trac #3959)
simonpj at microsoft.com**20100813161151
Ignore-this: d4a2aa48150b503b20c25351a79decfb
After rumination, yet again, on the subject of arity calculation,
I have redone what an ArityType is (it's purely internal to the
CoreArity module), and documented it better. The result should
fix #3959, and I hope the related #3961, #3983.
There is lots of new documentation: in particular
* Note [ArityType]
describes the new datatype for arity info
* Note [State hack and bottoming functions]
says how bottoming functions are dealt with, particularly
covering catch# and Trac #3959
I also found I had to be careful not to eta-expand single-method
class constructors; see Note [Newtype classes and eta expansion].
I think this part could be done better, but it works ok.
]
[Comments only
simonpj at microsoft.com**20100813161019
Ignore-this: baf68300d8bc630bf0b7ab27647b33a0
]
[Modify FloatOut to fix Trac #4237
simonpj at microsoft.com**20100813163120
Ignore-this: ffc8d00d4b7f0a8a785fcef312900413
The problem was that a strict binding was getting floated
out into a letrec. This only happened when profiling was
on. It exposed a fragility in the floating strategy. This
patch makes it more robust. See
Note [Avoiding unnecessary floating]
]
[Fix egregious bug in SetLevels.notWorthFloating
simonpj at microsoft.com**20100813161429
Ignore-this: d22865f48d417e6a6b732de3dfba378f
This bug just led to stupid code, which would
later be optimised away, but better not to generate
stupid code in the first place.
]
[Delete GhcLibProfiled
simonpj at microsoft.com**20100813140152
Ignore-this: 2e1a3f677308be726bd022f45e2fd856
Simon M and I looked at this, and we think GhcLibProfiled is
(a) not needed (b) confusing.
Ian should review.
Really, if GhcProfiled is on we should also
check that 'p' is in the GhcLibWays
]
[Do not build DPH when GhcProfiled (fixes #4172)
simonpj at microsoft.com**20100813140021
Ignore-this: 9e20181643b456e841f845ae0cab0a9a
Reason: DPH uses Template Haskell and TH doesn't work
in a profiled compiler
]
[Fix Trac #4220
simonpj at microsoft.com**20100812131319
Ignore-this: 33141cfd81627592150a9e5973411ff8
For deriving Functor, Foldable, Traversable with empty
data cons I just generate a null equation
f _ = error "urk"
There are probably more lurking (eg Enum) but this will do for now.
]
[Improve the Specialiser, fixing Trac #4203
simonpj at microsoft.com**20100812131133
Ignore-this: 482afbf75165e24a80527a6e52080c07
Simply fixing #4203 is a tiny fix: in case alterantives we should
do dumpUDs *including* the case binder.
But I realised that we can do better and wasted far too much time
implementing the idea. It's described in
Note [Floating dictionaries out of cases]
]
[Comments
simonpj at microsoft.com**20100812101456
Ignore-this: 6362fe887d25688c12ef2c3cf5554ce4
]
[Comments only
simonpj at microsoft.com**20100812101439
Ignore-this: 7ed2f5fc08811cbe9958c2309a9ed1fa
]
[Fix bug in linting of shadowed case-alternative binders
simonpj at microsoft.com**20100812101413
Ignore-this: 9212a5e2c03421749f5935b3944ecf53
]
[Comments and spacing only
simonpj at microsoft.com**20100812101347
Ignore-this: ed59a7dae7decb24470709dc1c118dbb
]
[Add more info to more parse error messages (#3811)
Ian Lynagh <igloo at earth.li>**20100809233108]
[Run finalizers *after* updating the stable pointer table (#4221)
Simon Marlow <marlowsd at gmail.com>**20100810133739
Ignore-this: b0462f80dd64eac71e599d8a9f6dd665
Silly bug really, we were running the C finalizers while the StablePtr
table was still in a partially-updated state during GC, but finalizers
are allowed to call freeStablePtr() (via hs_free_fun_ptr(), for
example), and chaos ensues.
]
[Do the dependency-omitting for 'make 1' in a slightly different way
Simon Marlow <marlowsd at gmail.com>**20100810093446
Ignore-this: af15edd3a1492cbd93111316b57e02e4
I encountered a couple of things that broke after Ian's previous
patch: one was my nightly build scripts that use 'make stage=2' at the
top level, and the other is 'make fast' in libraries/base, which uses
'stage=0' to avoid building any compilers.
So my version of this patch is more direct: it just turns off the
appropriate dependencies using a variable set by 'make 1', 'make 2',
etc.
]
[Integrate new I/O manager, with signal support
Johan Tibell <johan.tibell at gmail.com>**20100724102355
Ignore-this: eb092857a2a1b0ca966649caffe7ac2b
]
[Add DoAndIfThenElse support
Ian Lynagh <igloo at earth.li>**20100808194625]
[Make another parse error more informative
Ian Lynagh <igloo at earth.li>**20100808193340]
[Make a parse error say what it is failing to parse; part of #3811
Ian Lynagh <igloo at earth.li>**20100808155732]
[Send ghc progress output to stdout; fixes #3636
Ian Lynagh <igloo at earth.li>**20100808142542]
[Fix the HsColour test in the build system
Ian Lynagh <igloo at earth.li>**20100805155319
Ignore-this: ba2752b04801a253e891b31e1914485d
]
[Fix the -lm configure test; fixes #4155
Ian Lynagh <igloo at earth.li>**20100805142508
Ignore-this: 358b8b1074d2d22fb8d362ea6d8b80d6
]
[Don't restrict filenames in line pragmas to printable characters; fixes #4207
Ian Lynagh <igloo at earth.li>**20100805135011
Ignore-this: e3d32312127165e40e6eaa919193d60b
"printable" is ASCII-only, whereas in other locales we can get things like
# 1 "<línea-de-orden>"
]
[Ensure extension flags are flattened in the Cmm phase
Ian Lynagh <igloo at earth.li>**20100805133614
If we start with a .cmmcpp file then they don't get flattened in
the CmmCpp phase, as we don't run that phase.
]
[Add "cmmcpp" as a Haskellish source suffix
Ian Lynagh <igloo at earth.li>**20100805132555]
[On amd64/OSX we don't need to be given memory in the first 31bits
Ian Lynagh <igloo at earth.li>**20100805120600
Ignore-this: 42eb64e25ad4b66ae022884305e0297b
as PIC is always on
]
[NCG: Don't worry about trying to re-freeze missing coalescences
benl at ouroborus.net**20100702053319
Ignore-this: ea05cbee19b6c5c410db41292cbb64b0
]
[Make -rtsopts more flexible
Ian Lynagh <igloo at earth.li>**20100805011137
The default is a new "some" state, which allows only known-safe flags
that we want on by default. Currently this is only "--info".
]
[Test for (fd < 0) before trying to FD_SET it
Ian Lynagh <igloo at earth.li>**20100804173636]
[Remove "On by default" comments in DynFlags
Ian Lynagh <igloo at earth.li>**20100802110803
Ignore-this: 2a51055277b5ce9f0e98e1438b212027
These make less sense now we support multiple languges. The
"languageExtensions" function gives the defaults.
]
[Fix build: Add newline to end of ghc-pkg/Main.hs
Ian Lynagh <igloo at earth.li>**20100801183206]
[Add a versions haddock binary for Windows
Ian Lynagh <igloo at earth.li>**20100801180917]
[ghc-pkg: don't fail, if a file is already removed
ich at christoph-bauer.net**20100725162606
Ignore-this: 5501d6812c31f4da525c7fb24f6dcaed
]
[Remove push-all from file list in boot script (push-all no longer exists)
Ian Lynagh <igloo at earth.li>**20100801121841
Ignore-this: eec130f06610d8728a57626682860a1a
]
[Add error checking to boot-pkgs script
Ian Lynagh <igloo at earth.li>**20100801121432
Ignore-this: 8afd6663db443c774bad45d75bbfe950
]
[Add more error checking to the boot script
Ian Lynagh <igloo at earth.li>**20100801113628]
[Remove libHSrtsmain.a before creating it
Ian Lynagh <igloo at earth.li>**20100801005432
Otherwise it isn't updated properly if rts/Main.c changes
]
[Expose the functions haddock needs even when haddock is disabled; #3558
Ian Lynagh <igloo at earth.li>**20100731115506]
[Always haddock by default
Ian Lynagh <igloo at earth.li>**20100730235001
Revert this patch:
Matthias Kilian <kili at outback.escape.de>**20090920181319
Don't build haddock if HADDOC_DOCS = NO, and disable HADDOC_DOCS
if GhcWithInterpreter = NO
Haddock uses TcRnDriver.tcRnGetInfo, which is only available if
GHCI is built. Set HADDOC_DOCS to NO if GhcWithInterpreter is NO,
and disable the haddock build if HADDOC_DOCS = NO.
]
[Add a debugTrace for the phases that we run
Ian Lynagh <igloo at earth.li>**20100729201503]
[* Add StringPrimL as a constructor for Template Haskell (Trac #4168)
simonpj at microsoft.com**20100730131922
Ignore-this: 520d0a0a14b499b299e8b2be8d148ff0
There are already constructors for IntPrim, FloatPrim etc,
so this makes it more uniform.
There's a corresponding patch for the TH library
]
[Add thread affinity support for FreeBSD
Gabor Pali <pgj at FreeBSD.org>**20100720001409
Ignore-this: 6c117b8219bfb45445089e82ee470410
- Implement missing functions for setting thread affinity and getting real
number of processors.
- It is available starting from 7.1-RELEASE, which includes a native support
for managing CPU sets.
- Add __BSD_VISIBLE, since it is required for certain types to be visible in
addition to POSIX & C99.
]
[Disable symbol visibility pragmas for FreeBSD
Ian Lynagh <igloo at earth.li>**20100729012507
Do not use GCC pragmas for controlling visibility, because it causes
"undefined reference" errors at link-time. The true reasons are
unknown, however FreeBSD 8.x includes GCC 4.2.1 in the base system,
which might be buggy.
]
[Fix numeric escape sequences parsing
Anton Nikishaev <anton.nik at gmail.com>**20100721194208
Ignore-this: dd71935b1866b5624f7975c45ad519a1
This fixes trac bug #1344
]
[Explicitly give the right path to perl when making the OS X installer; #4183
Ian Lynagh <igloo at earth.li>**20100728163030]
[Set -fno-stack-protector in extra-gcc-opts; fixes #4206
Ian Lynagh <igloo at earth.li>**20100728161957
We were using it only when building the RTS, and only on certain
platforms. However, some versions of OS X need the flag, while others
don't support it, so we now test for it properly.
]
[Make PersistentLinkerState fields strict; fixes #4208
Ian Lynagh <igloo at earth.li>**20100727201911
Ignore-this: fc5cfba48cd16624f6bb15a7a03a3b4
We modify fields a lot, so we retain the old value if they aren't forced.
]
[Don't rebuild dependency files unnecessarily when doing "make 1" etc
Ian Lynagh <igloo at earth.li>**20100726211512
Ignore-this: d91a729e5113aa964cc67768e92e57ef
]
[LLVM: If user specifies optlo, don't use '-O' levels
David Terei <davidterei at gmail.com>**20100726105650
Ignore-this: e05e103b09d1de937540ffad7983f88e
]
[Flatten flags for ghci's :show
Ian Lynagh <igloo at earth.li>**20100725135320]
[Add support for Haskell98 and Haskell2010 "languages"
Ian Lynagh <igloo at earth.li>**20100724230121]
[Rename "language" varibles etc to "extension", and add --supported-extensions
Ian Lynagh <igloo at earth.li>**20100724223624]
[Separate language option handling into 2 phases
Ian Lynagh <igloo at earth.li>**20100724212013
We now first collect the option instructions (from the commandline,
from pragmas in source files, etc), and then later flatten them into
the list of enabled options. This will enable us to use different
standards (H98, H2010, etc) as a base upon which to apply the
instructions, when we don't know what the base will be when we start
collecting instructions.
]
[Separate the language flags from the other DynFlag's
Ian Lynagh <igloo at earth.li>**20100724133103
Ignore-this: 47bb8d42e621e47016b66c7472bd6cb5
]
[Set stage-specific CC/LD opts in the bindist configure.ac
Ian Lynagh <igloo at earth.li>**20100724113748
Ignore-this: f06926d185a35ddd05490ca4a257e992
]
[Use different CC/LD options for different stages
Ian Lynagh <igloo at earth.li>**20100723223059]
[Add some error belchs to the linker, when we find bad magic numbers
Ian Lynagh <igloo at earth.li>**20100723200822]
[Add some more linker debugging prints
Ian Lynagh <igloo at earth.li>**20100723180237]
[When (un)loading an object fails, say which object in teh panic
Ian Lynagh <igloo at earth.li>**20100723162649]
[Add a release note: GHCi import syntax
Ian Lynagh <igloo at earth.li>**20100721193647]
[Deprecate NewQualifiedOperators extension (rejected by H')
Ian Lynagh <igloo at earth.li>**20100719150909
Ignore-this: 6e7e3bedc5360c5975f73497b3e6cba5
]
[LLVM: Allow optlc and optlo to override default params for these systools
David Terei <davidterei at gmail.com>**20100722181631
Ignore-this: e60af7941996f7170fb3bfb02a002082
]
[LLVM: Code and speed improvement to dominateAllocs pass.
David Terei <davidterei at gmail.com>**20100721143654
Ignore-this: 9fb7058c8a2afc005521298c7b8d0036
]
[Comments only
simonpj at microsoft.com**20100721144257
Ignore-this: b3091ddcd1df271eb85fe90978ab7adc
]
[Fix inlining for default methods
simonpj at microsoft.com**20100721144248
Ignore-this: 61a11a8f741f775000c6318aae4b3191
This was discombobulated by a patch a week ago;
now fixed, quite straightforwardly. See
Note [Default methods and instances]
]
[Allow reification of existentials and GADTs
simonpj at microsoft.com**20100721090437
Ignore-this: 20f1ccd336cc25aff4d4d67a9ac2211a
It turns out that TH.Syntax is rich enough to express even GADTs,
provided we express them in equality-predicate form. So for
example
data T a where
MkT1 :: a -> T [a]
MkT2 :: T Int
will appear in TH syntax like this
data T a = forall b. (a ~ [b]) => MkT1 b
| (a ~ Int) => MkT2
While I was at it I also improved the reification of types,
so that we use TH.TupleT and TH.ListT when we can.
]
[add numSparks# primop (#4167)
Simon Marlow <marlowsd at gmail.com>**20100720153746
Ignore-this: f3f925e7de28f3f895213aefbdbe0b0f
]
[LLVM: Decrease max opt level used under OSX to avoid bug
David Terei <davidterei at gmail.com>**20100720160938
Ignore-this: 34b0b3550f00b27b00ad92f8232745e5
Currently, many programs compiled with GHC at -O2 and LLVM
set to -O3 will segfault (only under OSX). Until this issue
is fixed I have simply 'solved' the segfault by lowering
the max opt level for LLVM used to -O2 under OSX.
All these recent changes to OSX should mean its finally as
stable as Linux and Windows.
]
[LLVM: Fix OSX to work again with TNTC disabled.
David Terei <davidterei at gmail.com>**20100720160845
Ignore-this: 8dc98139cfa536b2a64aa364d040b581
]
[LLVM: Fix printing of local vars so LLVM works with -fnew-codegen
David Terei <davidterei at gmail.com>**20100720160302
Ignore-this: d883c433dfaed67921a8c5360e1f9f6a
]
[Use a separate mutex to protect all_tasks, avoiding a lock-order-reversal
Simon Marlow <marlowsd at gmail.com>**20100716150832
Ignore-this: ffbdb4ee502e0f724d57acb9bfbe9d92
In GHC 6.12.x I found a rare deadlock caused by this
lock-order-reversal:
AQ cap->lock
startWorkerTask
newTask
AQ sched_mutex
scheduleCheckBlackHoles
AQ sched_mutex
unblockOne_
wakeupThreadOnCapabilty
AQ cap->lock
so sched_mutex and cap->lock are taken in a different order in two
places.
This doesn't happen in the HEAD because we don't have
scheduleCheckBlackHoles, but I thought it would be prudent to make
this less likely to happen in the future by using a different mutex in
newTask. We can clearly see that the all_tasks mutex cannot be
involved in a deadlock, becasue we never call anything else while
holding it.
]
['make fast' in a package does not build any compilers
Simon Marlow <marlowsd at gmail.com>**20100715125904
Ignore-this: f27e70faf3944831dad16e89a4e273da
]
[LLVM: Fix up botched last commit
David Terei <davidterei at gmail.com>**20100719104823
Ignore-this: a32e0f6a38cb9e02527eb8ca69b3eb59
]
[LLVM: Fix warning introduce in last commit.
David Terei <davidterei at gmail.com>**20100719103411
Ignore-this: e9c92a9402aff50d60ab26e6ad441bfc
]
[LLVM: Use mangler to fix up stack alignment issues on OSX
David Terei <davidterei at gmail.com>**20100718231000
Ignore-this: 9f6e8cb855269cb3a5ac1a23480d0e71
]
[Fix #4195 (isGadtSyntaxTyCon returns opposite result)
illissius at gmail.com**20100715134134
Ignore-this: a90403f893030432b5c15d743647f350
]
[Update to time 1.2.0.3
Ian Lynagh <igloo at earth.li>**20100717181810
Ignore-this: 1ccb4801a73f399e6718ce556543ede1
]
[Reorder RTS --info output
Ian Lynagh <igloo at earth.li>**20100717162356]
[Fix unreg prof build: Define CCS_SYSTEM in stg/MiscClosures.h
Ian Lynagh <igloo at earth.li>**20100717142832
Ignore-this: 9675f3f51b6dac40483155344e7f45b6
]
[Make mkDerivedConstants as a stage 1 program
Ian Lynagh <igloo at earth.li>**20100717000827
Ignore-this: 5357403461b209b8606f1d33defb51cf
This way it gets the defines for the right platform when cross-compiling
]
[Don't generate Haskell dependencies if we don't have any Haskell sources
Ian Lynagh <igloo at earth.li>**20100717000800
Ignore-this: 454abd0358f535b7e789327125c9206c
]
[Link programs that have no Haskell objects with gcc rather than ghc
Ian Lynagh <igloo at earth.li>**20100716235303
Ignore-this: f65588b69675edea616cc434e769b0a4
]
[Use gcc to build C programs for stages >= 1
Ian Lynagh <igloo at earth.li>**20100716223703
Ignore-this: 9f843a4e17285cda582117504707f9e7
]
[Add platform info to "ghc --info" output
Ian Lynagh <igloo at earth.li>**20100716141953]
[Tidy up Config.hs generation
Ian Lynagh <igloo at earth.li>**20100716140630]
[Fix HC porting test in makefiles
Ian Lynagh <igloo at earth.li>**20100716010808
Ignore-this: 6052c1dd022a6108ab2236a299ee1d84
Now that we are trying to support cross compilation, we can't use
"$(TARGETPLATFORM)" != "$(HOSTPLATFORM)"
as a test for HC-porting.
]
[Change a BUILD var to a HOST var
Ian Lynagh <igloo at earth.li>**20100716002558]
[Remove an unnecessary #include
Ian Lynagh <igloo at earth.li>**20100715233930
Ignore-this: dcede249de6be7e3c9305c9279c2ca07
]
[Split up some make commands, so that errors aren't overlooked
Ian Lynagh <igloo at earth.li>**20100715152237
Ignore-this: fb69b0a25d9ca71dae5e75d38db675cd
When we ask make to run "a | b", if a fails then the pipeline might
still exit successfuly.
]
[Remove an unnecessary #include
Ian Lynagh <igloo at earth.li>**20100715143000
Ignore-this: 4e098cac5dda2dd595ca0a0f5121853c
]
[Simplify some more CPP __GLASGOW_HASKELL__ tests
Ian Lynagh <igloo at earth.li>**20100715142500]
[Remove some code only used with GHC 6.11.*
Ian Lynagh <igloo at earth.li>**20100715141720]
[__GLASGOW_HASKELL__ >= 609 is now always true
Ian Lynagh <igloo at earth.li>**20100715141544]
[Correct the values in ghc_boot_platform.h
Ian Lynagh <igloo at earth.li>**20100714223717
Ignore-this: 4c99116f7ac73fadbd6d16807f57a693
]
[Change some TARGET checks to HOST checks
Ian Lynagh <igloo at earth.li>**20100714184715]
[LLVM: Add inline assembly to binding.
David Terei <davidterei at gmail.com>**20100714152530
Ignore-this: 72a7b5460c128ed511e8901e5889fe2b
]
[LLVM: Fix mistype in last commit which broke TNTC under win/linux.
David Terei <davidterei at gmail.com>**20100714153339
Ignore-this: 302d7957e3dded80368ebade5312ab35
]
[Remove unnecessary #include
Ian Lynagh <igloo at earth.li>**20100713153704
Ignore-this: c37d3127b1dc68f59270c07173994c28
]
[Change some TARGET tests to HOST tests in the RTS
Ian Lynagh <igloo at earth.li>**20100713141034
Which was being used seemed to be random
]
[LLVM: Add in new LLVM mangler for implementing TNTC on OSX
David Terei <davidterei at gmail.com>**20100713183243
Ignore-this: 394fb74d7f9657d8b454bd0148d24bf7
]
[Refactor where an error message is generated
simonpj at microsoft.com**20100713115733
Ignore-this: f94467856238586fcbbe48537141cf78
]
[Comments only
simonpj at microsoft.com**20100713115703
Ignore-this: 5815442c4e69b9ec331b34242a596253
]
[Comments on data type families
simonpj at microsoft.com**20100713115640
Ignore-this: 90a333bb7f7d64a49fb7dd180d893f6b
]
[Fix Trac #T4136: take care with nullary symbol constructors
simonpj at microsoft.com**20100707135945
Ignore-this: 2a717a24fefcd593ea41c23dad351db0
When a nullary constructor is a symbol eg (:=:) we need
to take care. Annoying.
]
[Fix Trac #4127 (and hence #4173)
simonpj at microsoft.com**20100707123125
Ignore-this: 98bb6d0f7182b59f8c93596c61f9785d
The change involves a little refactoring, so that the default
method Ids are brought into scope earlier, before the value
declarations are compiled. (Since a value decl may contain
an instance decl in a quote.)
See Note [Default method Ids and Template Haskell] in
TcTyClsDcls.
]
[Fix second bug in Trac #4127
simonpj at microsoft.com**20100701140124
Ignore-this: c8d1cc27364fe9ee5a52acb1ecb5cdd9
This bug concerned the awkward shadowing we do for
Template Haskell declaration brackets. Lots of
comments in
Note [Top-level Names in Template Haskell decl quotes]
]
[ia64: switch handling of 'foreign import wrapper' (FIW) to libffi
Sergei Trofimovich <slyfox at community.haskell.org>**20100709213922
Ignore-this: fd07687e0089aebabf62de85d2be693
I tried to build darcs-2.4.4 with ghc-6.12.3 and got coredumps when darcs is used
in interactive mode. I tried test from ticket #3516 and found out FIW code is broken.
Instead of fixing it I just switched to libffi. Result built successfully, passed
'foreign import wrapper' test from ticket #3516 and builds working darcs.
]
[* storage manager: preserve upper address bits on 64bit machines (thanks to zygoloid)
Sergei Trofimovich <slyfox at community.haskell.org>**20100709115917
Ignore-this: 9f1958a19992091ddc2761c389ade940
Patch does not touch amd64 as it's address lengts is 48 bits at most, so amd64 is unaffected.
the issue: during ia64 ghc bootstrap (both 6.10.4 and 6.12.3) I
got the failure on stage2 phase:
"inplace/bin/ghc-stage2" -H32m -O -H64m -O0 -w ...
ghc-stage2: internal error: evacuate: strange closure type 15
(GHC version 6.12.3 for ia64_unknown_linux)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
make[1]: *** [libraries/dph/dph-base/dist-install/build/Data/Array/Parallel/Base/Hyperstrict.o] Aborted
gdb backtrace (break on 'barf'):
Breakpoint 1 at 0x400000000469ec31: file rts/RtsMessages.c, line 39.
(gdb) run -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
Starting program: /var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/lib/ghc-stage2 -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
[Thread debugging using libthread_db enabled]
Breakpoint 1, barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
39 va_start(ap,s);
(gdb) bt
#0 barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
#1 0x400000000474a1e0 in evacuate (p=0x6000000000147958) at rts/sm/Evac.c:756
#2 0x40000000046d68c0 in scavenge_srt (srt=0x6000000000147958, srt_bitmap=7) at rts/sm/Scav.c:348
...
> 16:52:53 < zygoloid> slyfox: i'm no ghc expert but it looks like HEAP_ALLOCED_GC(q)
> is returning true for a FUN_STATIC closure
> 17:18:43 < zygoloid> try: p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
> 17:19:12 < slyfox> (gdb) p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
> 17:19:12 < slyfox> $1 = 0
> 17:19:40 < zygoloid> i /think/ that means the mblock_cache is broken
> 17:22:45 < zygoloid> i can't help further. however i am suspicious that you seem to have pointers with similar-looking low 33
> bits and different high 4 bits, and it looks like such pointers get put into the same bucket in
> mblock_cache.
...
> 17:36:16 < zygoloid> slyfox: try changing the definition of MbcCacheLine to StgWord64, see if that helps
> 17:36:31 < zygoloid> that's in includes/rts/storage/MBlock.h
And it helped!
]
[Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
Sergei Trofimovich <slyfox at community.haskell.org>**20100708180943
Ignore-this: ced99785e1f870ee97e5bec658e2504f
/usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
/usr/bin/ld: unrecognized option '-Wl,--relax'
If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
Removing ia64 specific path.
]
[LLVM: Allow getelementptr to use LlvmVar for indexes.
David Terei <davidterei at gmail.com>**20100712152529
Ignore-this: 9e158d9b89a86bca8abf11d082328278
]
[Move all the warning workarounds to one place
Ian Lynagh <igloo at earth.li>**20100710161723]
[xhtml is now warning-free
Ian Lynagh <igloo at earth.li>**20100710144635]
[Move a bit of build system code
Ian Lynagh <igloo at earth.li>**20100709224534]
[adapt to the new async exceptions API
Simon Marlow <marlowsd at gmail.com>**20100709125238
Ignore-this: 55d845e40b9daed3575c1479d8dda1d5
]
[quiet some new spewage
Simon Marlow <marlowsd at gmail.com>**20100709091521
Ignore-this: de7f91976bbc9789e6fd7091f05c25c0
]
[New asynchronous exception control API (ghc parts)
Simon Marlow <marlowsd at gmail.com>**20100708144851
Ignore-this: 56320c5fc61ae3602d586609387aae22
As discussed on the libraries/haskell-cafe mailing lists
http://www.haskell.org/pipermail/libraries/2010-April/013420.html
This is a replacement for block/unblock in the asychronous exceptions
API to fix a problem whereby a function could unblock asynchronous
exceptions even if called within a blocked context.
The new terminology is "mask" rather than "block" (to avoid confusion
due to overloaded meanings of the latter).
In GHC, we changed the names of some primops:
blockAsyncExceptions# -> maskAsyncExceptions#
unblockAsyncExceptions# -> unmaskAsyncExceptions#
asyncExceptionsBlocked# -> getMaskingState#
and added one new primop:
maskUninterruptible#
See the accompanying patch to libraries/base for the API changes.
]
[remove outdated comment
Simon Marlow <marlowsd at gmail.com>**20100708100840
Ignore-this: afb2e9f6fe1f1acda51b0cbdf2637176
]
[remove 'mode: xml' emacs settings (#2208)
Simon Marlow <marlowsd at gmail.com>**20100708100817
Ignore-this: 3a8d997fb90e01ca88dc47fb95feeba0
]
[typo in comment
Simon Marlow <marlowsd at gmail.com>**20100616111359
Ignore-this: d3ef9288d6d6b9ab3bacbe09e0d9801c
]
[Win32 getProcessElapsedTime: use a higher-resolution time source
Simon Marlow <marlowsd at gmail.com>**20100708093223
Ignore-this: 821989d4ff7ff2bff40cee71a881521c
QueryPerformanceCounter() on Windows gives much better resolution than
GetSystemTimeAsFileTime().
]
[alpha: switch handling of 'foreign import wrapper' (FIW) to libffi
Sergei Trofimovich <slyfox at community.haskell.org>**20100708065318
Ignore-this: ddee15876737a6aa7f6dabc8ff79ce0d
I tried to build ghc-6.12.3 and found out FIW part of code
does not compile anymore. It uses absent functions under #ifdef.
Instead of fixing it I just switched to libffi. Result built successfully
and passed 'foreign import wrapper' test I wrote for trac ticket #3516.
I didn't try to build -HEAD yet, but this patch only removes code, so
it should not make -HEAD worse.
]
[Reorder the CPP flags so -optP can override the platform defines
Ian Lynagh <igloo at earth.li>**20100708203523]
[Add docs for DatatypeContexts extension
Ian Lynagh <igloo at earth.li>**20100707230907
Ignore-this: 8158f03b35a2d7442a75fe85d6f1b1c7
]
[Make datatype contexts an extension (on by default) (DatatypeContexts)
Ian Lynagh <igloo at earth.li>**20100707212529
Ignore-this: 6885ff510a0060610eeeba65122caef5
]
[LLVM: Fix various typos in comments
David Terei <davidterei at gmail.com>**20100707220448
Ignore-this: 1ba3e722f150492da2f9d485c5795e80
]
[Handle haddock headers when looking for LANGUAGE/OPTIONS_GHC pragmas
Ian Lynagh <igloo at earth.li>**20100707120423
Ignore-this: a75aa67690284a6cee3e62c943d4fd01
]
[Make pragState call mkPState, rather than duplicating everything
Ian Lynagh <igloo at earth.li>**20100706173007
Ignore-this: 61fe24b99dbe7a42efff1a9dd703a75c
This also means that extsBitmap gets set, whereas is was just being set
to 0 before.
]
[LLVM: Add alias type defenitions to LlvmModule.
David Terei <davidterei at gmail.com>**20100707142053
Ignore-this: eee6ad5385563ccf08e664d2634a03f2
]
[LLVM: Use packed structure type instead of structure type
David Terei <davidterei at gmail.com>**20100707120320
Ignore-this: a06e0359d182291b81cae56993ca385e
The regular structure type adds padding to conform to the platform ABI,
which causes problems with structures storing doubles under windows since
we don't conform to the platform ABI there. So we use packed structures
instead now that don't do any padding.
]
[Make mkPState and pragState take their arguments in the same order
Ian Lynagh <igloo at earth.li>**20100706172611]
[Remove an out-of-date comment
Ian Lynagh <igloo at earth.li>**20100706172217
Ignore-this: 710ebd7d2dc01c1b0f1e58a5b6f85701
]
[LLVM: Stop llvm saving stg caller-save regs across C calls
David Terei <davidterei at gmail.com>**20100705162629
Ignore-this: 28b4877b31b9358e682e38fc54b88658
This is already handled by the Cmm code generator so LLVM is simply
duplicating work. LLVM also doesn't know which ones are actually live
so saves them all which causes a fair performance overhead for C calls
on x64. We stop llvm saving them across the call by storing undef to
them just before the call.
]
[LLVM: Add in literal undefined value to binding
David Terei <davidterei at gmail.com>**20100705161544
Ignore-this: 95d8361b11584aaeec44c30e76916470
]
[LLVM: Add a literal NULL value to binding
David Terei <davidterei at gmail.com>**20100705161308
Ignore-this: 9507b4b12c1157498704a9d1e5860f12
Patch from Erik de Castro Lopo <erikd at mega-nerd.com>.
]
[refactor import declaration support (#2362)
Simon Marlow <marlowsd at gmail.com>**20100705104557
Ignore-this: ee034ac377078a7e92bfada1907c86a0
]
[Disable dynamic linking optimisations on OS X
Simon Marlow <marlowsd at gmail.com>**20100705103014
Ignore-this: b04420d3705c51112797758d17b2e40c
To improve performance of the RTS when dynamically linked on x86, I
previously disabled -fPIC for certain critical modules (the GC, and a
few others). However, build reports suggest that the dynamic linker
on OS X doesn't like this, so I'm disabling this optimsation on that
platform.
]
[trac #2362 (full import syntax in ghci)
amsay at amsay.net**20100625032632
Ignore-this: a9d0859d84956beb74e27b797431bf9c
'import' syntax is seperate from ':module' syntax
]
[Simplify ghc-pkg's Cabal dependencies
Ian Lynagh <igloo at earth.li>**20100704184155
We no longer support building with a compiler that doesn't come with
base 4.
]
[Use Cabal to configure the dist-install ghc-pkg; fixes trac #4156
Ian Lynagh <igloo at earth.li>**20100704132612]
[Remove dead code (standalone deriving flag no longer used in parser)
Ian Lynagh <igloo at earth.li>**20100701162058]
[LLVM: Use the inbounds keyword for getelementptr instructions.
David Terei <davidterei at gmail.com>**20100702160511
Ignore-this: 3708e658a4c82b78b1402393f4405541
]
[threadPaused: fix pointer arithmetic
Simon Marlow <marlowsd at gmail.com>**20100701085046
Ignore-this: b78210e5d978f18ffd235f1c78a55a23
Noticed by Henrique Ferreiro <hferreiro at udc.es>, thanks!
]
[LLVM: Change more operations to use getelementptr
David Terei <davidterei at gmail.com>**20100701161856
Ignore-this: fb24eb124e203f50680c6fec3ff9fe7d
]
[Add the haskell2010 package
Simon Marlow <marlowsd at gmail.com>**20100630125532
Ignore-this: e9b011313f283a8ff2fcda7d029a01f
]
[LLVM: Use getelementptr instruction for a lot of situations
David Terei <davidterei at gmail.com>**20100630181157
Ignore-this: 34d314dd8dffad9bdcffdc525261a49d
LLVM supports creating pointers in two ways, firstly through
pointer arithmetic (by casting between pointers and ints)
and secondly using the getelementptr instruction. The second way
is preferable as it gives LLVM more information to work with.
This patch changes a lot of pointer related code from the first
method to the getelementptr method.
]
[remove out of date comments; point to the wiki
Simon Marlow <marlowsd at gmail.com>**20100625100313
Ignore-this: 95f363a373534b9471b1818102ec592d
]
[NCG: allocatableRegs is only giving us 8 SSE regs to allocate to
benl at ouroborus.net**20100629054321
Ignore-this: b3e0fa0b4ce988a0258dc12261989ee0
]
[LLVM: Use intrinsic functions for pow, sqrt, sin, cos
David Terei <davidterei at gmail.com>**20100628182949
Ignore-this: 98a0befaca3fe2b36d710d8ff9f062c4
Instead of calling the C library for these Cmm functions
we use intrinsic functions provided by llvm. LLVM will
then either create a compile time constant if possible, or
use a cpu instruction or as a last resort call the C
library.
]
[LLVM: Fix test '2047' under linux-x64
David Terei <davidterei at gmail.com>**20100628165256
Ignore-this: 41735d4f431a430db636621650ccd71e
]
[LLVM: Fix test 'ffi005' under linux-x64
David Terei <davidterei at gmail.com>**20100628155355
Ignore-this: 841f3142c63cc898ac4c3f89698a837e
]
[LLVM: Update to use new fp ops introduced in 2.7
David Terei <davidterei at gmail.com>**20100628144037
Ignore-this: 5dd2e5964e3c039d297ed586841e706b
]
[Add noalias and nocapture attributes to pointer stg registers
David Terei <davidterei at gmail.com>**20100628115120
Ignore-this: 492a1e723cb3a62498d240d7de92dd7
At the moment this gives a very slight performance boost of around 1 - 2%.
Future changes to the generated code though so that pointers are kept as
pointers more often instead of being cast to integer types straight away
should hopefully improve the benefit this brings.
]
[during shutdown, only free the heap if we waited for foreign calls to exit
Simon Marlow <marlowsd at gmail.com>**20100628090536
Ignore-this: d545384a4f641d701455d08ef1217479
]
[Fix typo in -ddump-pass's document.
shelarcy <shelarcy at gmail.com>**20100620070759
Ignore-this: f4f1ddb53f147949e948147d89190c37
]
[Add #undefs for posix source symbols when including papi.h
dmp at rice.edu**20100624163514
Ignore-this: 8a1cba21b880d12a75a75f7e96882053
Validation fails when validating with PAPI support (i.e. GhcRtsWithPapi = YES
in validate.mk). The problem is that the posix symbols are defined by a header
included from papi.h. Compilation then fails because these symbols are
redefined in PosixSource.h.
This patch adds an undefine for the posix symbols after including papi.h and
before including PosixSource.h. The #undefines are localized to Papi.c since
that is the only case where they are getting defined twice.
]
[Use machdepCCOpts in runPhase_MoveBinary; fixes trac #3952
Ian Lynagh <igloo at earth.li>**20100625220953]
[LLVM: Fix bug with calling tail with empty list
David Terei <davidterei at gmail.com>**20100625115729
Ignore-this: 46b4b32c8d92372a2d49794a96fe1613
]
[Fix warnings
benl at ouroborus.net**20100624091339
Ignore-this: 5ba4bbd6abb9c9d1fb8c5d21ab73f218
]
[NCG: Comments and formatting only
benl at ouroborus.net**20100624083121
Ignore-this: 86002e72c30d06bcc876d8c49f4caa5a
]
[NCG: Do the actual reversing of SCCs
benl at ouroborus.net**20100624082717
Ignore-this: 12d2027ea118e751fbb48b27126150ef
]
[NCG: Fix dumping of graphs in regalloc stats for graph allocator
benl at ouroborus.net**20100624082625
Ignore-this: 2b971bc9e0318099a9afb0e0db135730
]
[NCG: Reverse SCCs after each round in the graph allocator
benl at ouroborus.net**20100624082437
Ignore-this: f0152e4039d6f16f7b5a99b286538116
]
[NCG: Don't actually complain on unreachable code blocks
benl at ouroborus.net**20100624081445
Ignore-this: e7335ae6120917cb858c38c7c6da8e24
]
[NCG: Do explicit check for precondition of computeLiveness
benl at ouroborus.net**20100624080747
Ignore-this: e7053c4e5e4c3c746b5ebf016913424a
computeLiveness requires the SCCs of blocks to be in reverse dependent
order, and if they're not it was silently giving bad liveness info,
yielding a bad allocation.
Now it complains, loudly.
]
[NCG: Fix off-by-one error in realRegSqueeze
benl at ouroborus.net**20100623095813
Ignore-this: ab0698686d4c250da8e207f734f8252d
]
[NCG: Handle stripping of liveness info from procs with no blocks (like stg_split_marker)
benl at ouroborus.net**20100623091209
Ignore-this: c0319b6cc62ec713afe4eb03790406e3
]
[NCG: Emit a warning on unreachable code block instead of panicing
benl at ouroborus.net**20100623085002
Ignore-this: d20314b79e3c31e764ed4cd97290c696
]
[NCG: Remember to keep the entry block first when erasing liveness info
Ben.Lippmeier at anu.edu.au**20090917104429
Ignore-this: 1b0c1df19d622858d50ffb6a01f2cef0
]
[NCG: Refactor representation of code with liveness info
Ben.Lippmeier at anu.edu.au**20090917090730
Ignore-this: 2aebb3b02ebd92e547c5abad9feb0f0d
* I've pushed the SPILL and RELOAD instrs down into the
LiveInstr type to make them easier to work with.
* When the graph allocator does a spill cycle it now just
re-annotates the LiveCmmTops instead of converting them
to NatCmmTops and back.
* This saves working out the SCCS again, and avoids rewriting
the SPILL and RELOAD meta instructions into real machine
instructions.
]
[NCG: Add sanity checking to linear allocator
Ben.Lippmeier at anu.edu.au**20090917090335
Ignore-this: 5a442be8b5087d04bc8b58dffa9ea080
If there are are unreachable basic blocks in the native code then the
linear allocator might loop. Detect this case and panic instead.
]
[NCG: Refactor LiveCmmTop to hold a list of SCCs instead of abusing ListGraph
Ben.Lippmeier at anu.edu.au**20090917060332
Ignore-this: 3fec8d69ed0f760e53a202f873d5d9cb
]
[NCG: Allow the liveness map in a LiveInfo to be Nothing
Ben.Lippmeier at anu.edu.au**20090917043937
Ignore-this: 5f82422d54d1b0ffc0589eb7e82fb7a4
]
[NCG: Also show the result of applying coalesings with -ddump-asm-regalloc-stages
Ben.Lippmeier.anu.edu.au**20090917034427
Ignore-this: 76bd6d5ca43adb2167cb25832cbaa80b
]
[Fix panic when running "ghc -H"; trac #3364
Ian Lynagh <igloo at earth.li>**20100624234011
The problem is that showing SDoc's looks at the static flags global
variables, but those are panics while we are parsing the static flags.
We work around this by explicitly using a fixed prettyprinter style.
]
[Allow for stg registers to have pointer type in llvm BE.
David Terei <davidterei at gmail.com>**20100621175839
Ignore-this: fc09b1a8314aef0bde945c77af1124fb
Before all the stg registers were simply a bit type or
floating point type but now they can be declared to have
a pointer type to one of these. This will allow various
optimisations in the future in llvm since the type is
more accurate.
]
[Add support for parameter attributes to the llvm BE binding
David Terei <davidterei at gmail.com>**20100624111744
Ignore-this: 77f3c0c7bf8f81c4a154dc835ae7bcba
These allow annotations of the code produced by the backend
which should bring some perforamnce gains. At the moment
the attributes aren't being used though.
]
[Cast some more nats to StgWord to be on the safe side
Simon Marlow <marlowsd at gmail.com>**20100624105700
Ignore-this: e6176683856f9872fdeb2358bb065bb8
And add a comment about the dangers of int overflow
]
[comments only
Simon Marlow <marlowsd at gmail.com>**20100624105105
Ignore-this: fc8f762f4c3a5ffca2f8da2bc63ac2a4
]
[Fix an arithmetic overflow bug causing crashes with multi-GB heaps
Simon Marlow <marlowsd at gmail.com>**20100624104654
Ignore-this: 67210755aa098740ff5230347be0fd5d
]
[Add support for collecting PAPI native events
dmp at rice.edu**20100622195953
Ignore-this: 7269f9c4dfb2912a024eb632200fcd1
This patch extends the PAPI support in the RTS to allow collection of native
events. PAPI can collect data for native events that are exposed by the
hardware beyond the PAPI present events. The native events supported on your
hardware can found by using the papi_native_avail tool.
The RTS already allows users to specify PAPI preset events from the command
line. This patch extends that support to allow users to specify native events.
The changes needed are:
1) New option (#) for the RTS PAPI flag for native events. For example, to
collect the native event 0x40000000, use ./a.out +RTS -a#0x40000000 -sstderr
2) Update the PAPI_FLAGS struct to store whether the user specified event is a
papi preset or a native event
3) Update init_countable_events function to add the native events after parsing
the event code and decoding the name using PAPI_event_code_to_name
]
[Don't warn about unused bindings with parents in .hs-boot files; trac #3449
Ian Lynagh <igloo at earth.li>**20100624110351]
[fix the home_imps filter to allow for 'import "this" <module>'
Simon Marlow <marlowsd at gmail.com>**20100621125535
Ignore-this: da4e605b0513afc32a4e7caa921a2c76
In the PackageImports extension, import "this" means "import from the
current package".
]
[Use the standard C wrapper code for the ghc-$version.exe wrapper
Ian Lynagh <igloo at earth.li>**20100622202859
Ignore-this: 60cd3e6db3afb63e6ba9e2db3b033580
]
[Don't rely on "-packagefoo" working; use "-package foo" instead
Ian Lynagh <igloo at earth.li>**20100622202547]
[Remove unnecessary C #includes
Ian Lynagh <igloo at earth.li>**20100622172919]
[Make the ghci.exe wrapper call the right ghc.exe
Ian Lynagh <igloo at earth.li>**20100622172247]
[More updates to datalayout description in llvm BE
David Terei <davidterei at gmail.com>**20100622165339
Ignore-this: b0c604fe7673b0aa7c7064694d574437
]
[Remove LlvmAs phase as the llvm opt tool now handles this phase
David Terei <davidterei at gmail.com>**20100622144044
Ignore-this: b9fd8f959702b6af014e2fa654bede3
This phase originally invoked the llvm-as tool that turns a textual
llvm assembly file into a bit code file for the rest of llvm to deal
with. Now the llvm opt tool can do this itself, so we don't need to
use llvm-as anymore.
]
[Update datalayout info in llvm BE
David Terei <davidterei at gmail.com>**20100622123457
Ignore-this: 89b043d211225dcd819f30549afe1840
]
[Fix handling of float literals in llvm BE
David Terei <davidterei at gmail.com>**20100622121642
Ignore-this: a3b5f382ad4b5a426ad4b581664506fa
]
[Declare some top level globals to be constant when appropriate
David Terei <davidterei at gmail.com>**20100621174954
Ignore-this: 44832f65550d4f995d11c01cc1affef5
This involved removing the old constant handling mechanism
which was fairly hard to use. Now being constant or not is
simply a property of a global variable instead of a separate
type.
]
[Reduce the number of passes over the cmm in llvm BE
David Terei <davidterei at gmail.com>**20100621125220
Ignore-this: cb2f4e54e8d0f982d5087fbeee35c73c
]
[Fix negate op not working for -0 in llvm backend
David Terei <davidterei at gmail.com>**20100621123606
Ignore-this: c5d76e5cffa781fed074137851b1347f
]
[ROLLBACK: picCCOpts: -dynamic should not entail -optc-fPIC
Simon Marlow <marlowsd at gmail.com>**20100621100409
Ignore-this: f2fac7df33d3919199befc59bd455414
and add a comment to explain why it was wrong. This fixes the dyn
test failures that sprang up recently.
]
[Check files are really created in libffi
Ian Lynagh <igloo at earth.li>**20100620163724
when we think that the libffi build creates them, so they just depend
on the libffi build stamp.
]
[Improve the missing-import-list warning
Ian Lynagh <igloo at earth.li>**20100620124320
Ignore-this: 551e5fdf2dfb56b49d249e0cebaa6115
]
[Tweak missing-import-list warning
Ian Lynagh <igloo at earth.li>**20100620122622
Ignore-this: 360cdf59ae13d66ded181129325506c4
]
[trac #1789 (warnings for missing import lists)
amsay at amsay.net**20100618150649
Ignore-this: b0b0b1e048fbca0817c1e6fade1153fa
]
[Refix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
Ian Lynagh <igloo at earth.li>**20100620103749]
[Remove some old commented out code
Ian Lynagh <igloo at earth.li>**20100620000459]
[SET_ARR_HDR's last argument is now a number of bytes, rather than words
Ian Lynagh <igloo at earth.li>**20100619235214
This avoids unnecessary work and potential loss of information
]
[Replace an (incorrect) bytes-to-words calculation with ROUNDUP_BYTES_TO_WDS
Ian Lynagh <igloo at earth.li>**20100619234310]
[FIX #38000 Store StgArrWords payload size in bytes
Antoine Latter <aslatter at gmail.com>**20100101183346
Ignore-this: 7bf3ab4fc080c46311fc10b179361bb6
]
[Add win32 datalayout support to llvm backend
David Terei <davidterei at gmail.com>**20100618131733
Ignore-this: 4b7bffaa8ef38c628ab852c1a6c1c009
]
[Remove unused 'ddump-opt-llvm' flag
David Terei <davidterei at gmail.com>**20100618101237
Ignore-this: f78467496d986897e49d82646ee2907e
]
[generate "movl lbl(%reg1), %reg2" instructions, better codegen for -fPIC
Simon Marlow <marlowsd at gmail.com>**20100618082258
Ignore-this: a25567ebff9f575303ddc8f2deafebbf
]
[joinToTargets: fix a case of panic "handleComponent cyclic"
Simon Marlow <marlowsd at gmail.com>**20100618082147
Ignore-this: 765baeefbb5a41724004acd92405cecc
]
[comment typo
Simon Marlow <marlowsd at gmail.com>**20100618082102
Ignore-this: e495610b7dd5ec30b02938638b56cb7
]
[Add support of TNTC to llvm backend
David Terei <davidterei at gmail.com>**20100618093205
Ignore-this: 2c27d21668374a5b0d5e844882c69439
We do this through a gnu as feature called subsections,
where you can put data/code into a numbered subsection
and those subsections will be joined together in descending
order by gas at compile time.
]
[Don't automatically insert a -fvia-C flag in an unregisterised compiler
Ian Lynagh <igloo at earth.li>**20100617190901
Ignore-this: eb25a9a338fade9e17c153da7c5f27e9
The default object mode is already HscC, so it's unnecessary, and
-fvia-C generates a deprecated flag warning now.
]
[In PosixSource.h, conditionally define things based on platform
Ian Lynagh <igloo at earth.li>**20100617174912
This may not be ideal, but it should get GHC building on all platforms
again.
]
[disable -fPIC for the GC for performance reasons
Simon Marlow <marlowsd at gmail.com>**20100617140025
Ignore-this: c7c152bbff71ef7891eaee8ff39fc281
see comment for details
]
[picCCOpts: -dynamic should not entail -optc-fPIC
Simon Marlow <marlowsd at gmail.com>**20100617115259
Ignore-this: d71e42bd56e4bd107d2c431b801855e5
]
[Make getAllocations() visible
Simon Marlow <marlowsd at gmail.com>**20100617113259
Ignore-this: 1b7fb38a01358c0acbe8987df07d23f2
]
[Fix the symbol visibility pragmas
Simon Marlow <marlowsd at gmail.com>**20100617105758
Ignore-this: 76552500865473a1dbebbc1cc2def9f0
]
[pick up changes to $(GhcStage1HcOpts) without re-configuring the ghc package
Simon Marlow <marlowsd at gmail.com>**20100616124718
Ignore-this: afb56d5560c813051285607fefb15493
]
[Fix bindisttest Makefile
Ian Lynagh <igloo at earth.li>**20100616205611
Ignore-this: 39cd352152422f378572fc3859c5a377
]
[Remove some more unused make variables
Ian Lynagh <igloo at earth.li>**20100616180519]
[Convert some more variable names to FOO_CMD, for consistency
Ian Lynagh <igloo at earth.li>**20100616175916]
[Rename some variables from FOO to FOO_CMD
Ian Lynagh <igloo at earth.li>**20100616161108
This fixes a problem with commands like gzip, where if $GZIP is exported
in the environment, then when make runs a command it'll put the Makefile
variable's value in the environment. But gzip treats $GZIP as arguments
for itself, so when we run gzip it thinks we're giving it "gzip" as an
argument.
]
[Make the "show" target work anywhere in the build tree
Ian Lynagh <igloo at earth.li>**20100616122910
Ignore-this: 299d40cbe16112accd9f14e56fa12158
]
[Change ghc-pwd's license to a string Cabal recognises
Ian Lynagh <igloo at earth.li>**20100615204015
Ignore-this: c935b6ad7f605aab0168997a90b40fc6
]
[fix warning
Simon Marlow <marlowsd at gmail.com>**20100604205933
Ignore-this: 2aaa4ed6a8b9ae1e39adc4696aaf14a3
]
[--install-signal-handles=no does not affect the timer signal (#1908)
Simon Marlow <marlowsd at gmail.com>**20100527214627
Ignore-this: b0c51f1abdb159dc360662485095a11a
]
[Small optimisation: allocate nursery blocks contiguously
Simon Marlow <marlowsd at gmail.com>**20100509194928
Ignore-this: e650e99e9ea9493d2efb245d565beef4
This lets automatic prefetching work better, for a tiny performance boost
]
[fix -fforce-recomp setting: module is PrimOp, not PrimOps
Simon Marlow <marlowsd at gmail.com>**20100507084507
Ignore-this: f76e0d9b643682ec0e8fb7d91afdea68
]
[it should be an error to use relative directories (#4134)
Simon Marlow <marlowsd at gmail.com>**20100615151740
Ignore-this: 2068021701832e018ca41b22877921d5
]
[missing include-dirs or library-dirs is only a warning now (#4104)
Simon Marlow <marlowsd at gmail.com>**20100615151702
Ignore-this: e3114123cef147bbd28ccb64581a1afb
]
[fix #3822: desugaring case command in arrow notation
Ross Paterson <ross at soi.city.ac.uk>**20100615225110
Ignore-this: 477d6c460b4174b94b4cd113fa5b9d19
Get the set of free variables from the generated case expression:
includes variables in the guards and decls that were missed before,
and is also a bit simpler.
]
[Deprecate the -fvia-C flag; trac #3232
Ian Lynagh <igloo at earth.li>**20100615151836
Ignore-this: c2452b2648bf7e44546465c1b964fce
]
[Avoid using the new ~~ perl operator in the mangler
Ian Lynagh <igloo at earth.li>**20100615151236
Ignore-this: 709a7ba4e514b1596841b3ba7e5c6cc
]
[stmAddInvariantToCheck: add missing init of invariant->lock (#4057)
Simon Marlow <marlowsd at gmail.com>**20100615123643
Ignore-this: 3b132547fa934cecf71a846db2a5f70e
]
[Add new LLVM code generator to GHC. (Version 2)
David Terei <davidterei at gmail.com>**20100615094714
Ignore-this: 4dd2fe5854b64a3f0339d484fd5c238
This was done as part of an honours thesis at UNSW, the paper describing the
work and results can be found at:
http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
A Homepage for the backend can be found at:
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
are within 5% slower than the NCG and generally better than the C code
generator. For some code though, such as the DPH projects benchmark, the LLVM
code generator outperforms the NCG and C code generator by about a 25%
reduction in run times.
]
[Fix Trac #4127: build GlobalRdrEnv in GHCi correctly
simonpj at microsoft.com**20100615070626
Ignore-this: d907e3bfa7882878cea0af172aaf6e84
GHCi was building its GlobalRdrEnv wrongly, so that the
gre_par field was bogus. That in turn fooled the renamer.
The fix is easy: use the right function! Namely, call
RnNames.gresFromAvail rather than availsToNameSet.
]
[Comments, and improvement to pretty-printing of HsGroup
simonpj at microsoft.com**20100615070409
Ignore-this: ec8358f2485370b20226a97ec84e9024
]
[Don't reverse bindings in rnMethodBinds (fix Trac #4126)
simonpj at microsoft.com**20100614163935
Ignore-this: a6ffbb5af6f51b142ed0aeae8ee5e3a9
]
[Fix Trac #4120: generate a proper coercion when unifying forall types
simonpj at microsoft.com**20100614134311
Ignore-this: 601592bb505305f1954cbe730f168da4
This was just a blatant omission, which hasn't come up before.
Easily fixed, happily.
]
[Use mkFunTy to ensure that invariants are respected
simonpj at microsoft.com**20100614134159
Ignore-this: 67dcada7a4e8d9927581cd77af71b6f
]
[Remove redundant debug code
simonpj at microsoft.com**20100601154151
Ignore-this: e6ff11c04c631cf6aac73788cbcf02b5
]
[Fix Trac #4099: better error message for type functions
simonpj at microsoft.com**20100531140413
Ignore-this: 3f53ca98cf770577818b9c0937482577
Now we only want about "T is a type function and might not be
injective" when matchin (T x) against (T y), which is the case
that is really confusing.
]
[Gruesome fix in CorePrep to fix embarassing Trac #4121
simonpj at microsoft.com**20100614132726
Ignore-this: fe82d15474afaac3e6133adfd7a7e055
This is a long-lurking bug that has been flushed into
the open by other arity-related changes. There's a
long comment
Note [CafInfo and floating]
to explain.
I really hate the contortions we have to do through to keep correct
CafRef information on top-level binders. The Right Thing, I believe,
is to compute CAF and arity information later, and merge it into the
interface-file information when the latter is generated.
But for now, this hackily fixes the problem.
]
[Fix a bug in CorePrep that meant output invariants not satisfied
simonpj at microsoft.com**20100531150013
Ignore-this: d34eb36d8877d3caf1cf2b20de426abd
In cpePair I did things in the wrong order so that something that
should have been a CprRhs wasn't. Result: a crash in CoreToStg.
Fix is easy, and I added more informative type signatures too.
]
[Robustify the treatement of DFunUnfolding
simonpj at microsoft.com**20100531145332
Ignore-this: 8f5506ada4d89f6ab8ad1e8c3ffb09ba
See Note [DFun unfoldings] in CoreSyn. The issue here is that
you can't tell how many dictionary arguments a DFun needs just
from looking at the Arity of the DFun Id: if the dictionary is
represented by a newtype the arity might include the dictionary
and value arguments of the (single) method.
So we need to record the number of arguments need by the DFun
in the DFunUnfolding itself. Details in
Note [DFun unfoldings] in CoreSyn
]
[Fix spelling in comment
simonpj at microsoft.com**20100614132259
Ignore-this: bbf0d55f2e5f10ef9c74592c12f9201c
]
[Update docs on view patterns
simonpj at microsoft.com**20100614074801
Ignore-this: 8617b9078800d4942d71f142a5b6c831
]
[Fix printing of splices; part of #4124
Ian Lynagh <igloo at earth.li>**20100613154838
Just putting parens around non-atomic expressions isn't sufficient
for splices, as only the $x and $(e) forms are valid input.
]
[In ghci, catch IO exceptions when calling canonicalizePath
Ian Lynagh <igloo at earth.li>**20100613134627
We now get an exception if the path doesn't exist
]
[Whitespace only
Ian Lynagh <igloo at earth.li>**20100612213119]
[Whitespace only
Ian Lynagh <igloo at earth.li>**20100612165450]
[Update ghci example output in user guide; patch from YitzGale in #4111
Ian Lynagh <igloo at earth.li>**20100612162250]
[Fix #4131 missing UNTAG_CLOSURE in messageBlackHole()
benl at ouroborus.net**20100611044614]
[messageBlackHole: fix deadlock bug caused by a missing 'volatile'
Simon Marlow <marlowsd at gmail.com>**20100610080636
Ignore-this: 3cda3054bb45408aa9bd2d794b69c938
]
[Pass --no-tmp-comp-dir to Haddock (see comment)
Simon Marlow <marlowsd at gmail.com>**20100604083214
Ignore-this: bfa4d74038637bd149f4d878b4eb8a87
]
[Track changes to DPH libs
Roman Leshchinskiy <rl at cse.unsw.edu.au>**20100607052903
Ignore-this: 4dbc3f8418af3e74b3fc4f9a9dfe7764
]
[Track changes to DPH libs
Roman Leshchinskiy <rl at cse.unsw.edu.au>**20100607012642
Ignore-this: 5d4e498171a3c57ab02621bfaea82cff
]
[In ghc-pkg, send warnings to stderr
Ian Lynagh <igloo at earth.li>**20100606161726
Ignore-this: 56927d13b5e1c1ce2752734f0f9b665b
]
[Re-add newlines to enable layout for multi-line input.
Ian Lynagh <igloo at earth.li>**20100602180737
Patch from Adam Vogt <vogt.adam at gmail.com>
Partial fix for #3984
]
[Don't use unnecessary parens when printing types (Fix Trac 4107)
simonpj at microsoft.com**20100604110143
Ignore-this: a833714ab13013c4345b222f4e87db1d
f :: Eq a => a -> a
rather than
f :: (Eq a) => a -> a
]
[Track DPH library changes
Roman Leshchinskiy <rl at cse.unsw.edu.au>**20100604005728
Ignore-this: 32bc2fbea6ad975e89545d4c42fd7c30
]
[fix --source-entity option passed to Haddock: we needed to escape a #
Simon Marlow <marlowsd at gmail.com>**20100603125459
Ignore-this: d52ae6188b510c482bcebb23f0e553ae
]
[__stg_EAGER_BLACKHOLE_INFO -> __stg_EAGER_BLACKHOLE_info (#4106)
Simon Marlow <marlowsd at gmail.com>**20100602091419
Ignore-this: 293315ac8f86fd366b8d61992ecc7961
]
[Add xhtml package (a new dependency of Haddock; not installed/shipped)
Simon Marlow <marlowsd at gmail.com>**20100602090101
Ignore-this: af0ac8b91abe98f7fdb624ea0a4dee20
]
[Use UserInterrupt rather than our own Interrupted exception (#4100)
Simon Marlow <marlowsd at gmail.com>**20100602082345
Ignore-this: 1909acf2f452593138b9f85024711714
]
[Add the global package DB to ghc --info (#4103)
Simon Marlow <marlowsd at gmail.com>**20100602082233
Ignore-this: fd5c0e207e70eb0f62606c45dc5b8124
]
[rts/sm/GC.c: resize_generations(): Remove unneeded check of number of generations.
Marco Túlio Gontijo e Silva <marcot at debian.org>**20100528115612
Ignore-this: 6f1bea62917c01c7adac636146132c97
This "if" is inside another "if" which checks for RtsFlags.GcFlags.generations
> 1, so testing this again is redundant, assuming the number of generations
won't change during program execution.
]
[rts/sm/BlockAlloc.c: Small comment correction.
Marco Túlio Gontijo e Silva <marcot at debian.org>**20100526205839
Ignore-this: bd2fcd4597cc872d80b0e2eeb1c3998a
]
[rts/sm/GC.c: Annotate constants.
Marco Túlio Gontijo e Silva <marcot at debian.org>**20100526205707
Ignore-this: f232edb89383564d759ed890a18f602f
]
[includes/rts/storage/GC.h: generation_: n_words: Improve comment.
Marco Túlio Gontijo e Silva <marcot at debian.org>**20100526204615
Ignore-this: f5d5feefa8f7b552303978f1804fea23
]
[Add PPC_RELOC_LOCAL_SECTDIFF support; patch from PHO in #3654
Ian Lynagh <igloo at earth.li>**20100601204211
Ignore-this: 51293b7041cdce3ce7619ef11cf7ceb
]
[powerpc-apple-darwin now supports shared libs
Ian Lynagh <igloo at earth.li>**20100601173325]
[PIC support for PowerPC
pho at cielonegro.org**20100508143900
Ignore-this: 3673859a305398c4acae3f4d7c997615
PPC.CodeGen.getRegister was not properly handling PicBaseReg.
It seems working with this patch, but I'm not sure this change is correct.
]
[Vectoriser: only treat a function as scalar if it actually computes something
Roman Leshchinskiy <rl at cse.unsw.edu.au>**20100601045630
Ignore-this: e5d99a6ddb62052e3520094a5af47552
]
[Add a release notes file for 6.14.1
Ian Lynagh <igloo at earth.li>**20100530171117
Ignore-this: 1941e6d3d1f4051b69ca2f17a1cf84d6
]
[Check dblatex actually creates the files we tell it to
Ian Lynagh <igloo at earth.li>**20100530171043
Ignore-this: ccc72caea2313be05cbac59bb54c0603
If it fails, it still exits successfully.
]
[Add darwin to the list of OSes for which we use mmap
Ian Lynagh <igloo at earth.li>**20100529145016
Ignore-this: a86d12a3334aaaafc86f7af9dbb0a7ae
Patch from Barney Stratford
]
[Simplify the CPP logic in rts/Linker.c
Ian Lynagh <igloo at earth.li>**20100529144929
Ignore-this: 1288f5b752cc1ab8b1c90cfd0ecfdf68
]
[Fix validate on OS X
Ian Lynagh <igloo at earth.li>**20100529154726]
[OS X x86_64 fix from Barney Stratford
Ian Lynagh <igloo at earth.li>**20100529122440]
[OS X 64 installer fixes from Barney Stratford
Ian Lynagh <igloo at earth.li>**20100528234935]
[fix warning
Simon Marlow <marlowsd at gmail.com>**20100525155812
Ignore-this: f34eee3fe3d89579fd8d381c91ced750
]
[Fix doc bugs (#4071)
Simon Marlow <marlowsd at gmail.com>**20100525155728
Ignore-this: aa25be196de567de360075022a1942f7
]
[Make sparks into weak pointers (#2185)
Simon Marlow <marlowsd at gmail.com>**20100525150435
Ignore-this: feea0bb5006007b82c932bc3006124d7
The new strategies library (parallel-2.0+, preferably 2.2+) is now
required for parallel programming, otherwise parallelism will be lost.
]
[If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
Simon Marlow <marlowsd at gmail.com>**20100525085301
Ignore-this: 78b740337aa460915c812cbbcdae5321
]
[Another attempt to get these #defines right
Simon Marlow <marlowsd at gmail.com>**20100525154313
Ignore-this: 460ca0c47d81cd25eae6542114f67899
Apparently on Solaris it is an error to omit _ISOC99_SOURCE when using
_POSIX_C_SOURCE==200112L.
]
[Add configure flags for the location of GMP includes/library; fixes #4022
Ian Lynagh <igloo at earth.li>**20100525221616
Ignore-this: fc3060caf995d07274ec975eeefbdf3e
]
[Refactor pretty printing of TyThings to fix Trac #4015
simonpj at microsoft.com**20100525153126
Ignore-this: 8f15053b7554f62caa84201d2e4976d2
]
[When haddocking, we need the dependencies to have been built
Ian Lynagh <igloo at earth.li>**20100525145830
as haddock loads the .hi files with the GHC API.
]
[Fix profiling output; spotted by jlouis
Ian Lynagh <igloo at earth.li>**20100525111217
We were outputing the number of words allocated in a column titled "bytes".
]
[Improve printing of TyThings; fixes Trac #4087
simonpj at microsoft.com**20100525114045
Ignore-this: da2a757a533454bba80b9b77cc5a771
]
[Spelling in comments
simonpj at microsoft.com**20100525114001
Ignore-this: 270f3da655e526cf04e27db7a01e29c0
]
[Refactor (again) the handling of default methods
simonpj at microsoft.com**20100525113910
Ignore-this: 6686f6cdb878d57abf6b49fec64fcbb1
This patch fixes Trac #4056, by
a) tidying up the treatment of default method names
b) removing the 'module' argument to newTopSrcBinder
The details aren't that interesting, but the result
is much tidier. The original bug was a 'nameModule' panic,
caused by trying to find the module of a top-level name.
But TH quotes generate Internal top-level names that don't
have a module, and that is generally a good thing.
Fixing that in turn led to the default-method refactoring,
which also makes the Name for a default method be handled
in the same way as other derived names, generated in BuildTyCl
via a call newImplicitBinder. Hurrah.
]
[Don't do SpecConstr on NOINLINE things (Trac #4064)
simonpj at microsoft.com**20100525112807
Ignore-this: 452be0a2cef0042fb67275c2827b5f72
Since the RULE from specialising gets the same Activation as
the inlining for the Id itself there's no point in specialising
a NOINLINE thing, because the rule will be permanently switched
off.
See Note [Transfer activation] in SpecConstr
and Note [Auto-specialisation and RULES] in Specialise.
]
[Change our #defines to work on FreeBSD too
Simon Marlow <marlowsd at gmail.com>**20100524105828
Ignore-this: b23ede46211e67859206c0ec57d6a86f
With glibc, things like _POSIX_C_SOURCE and _ISOC99_SOURCE are
additive, but on FreeBSD they are mutually exclusive. However, it
turns out we only need to define _POSIX_C_SOURCE and _XOPEN_SOURCE to
get all the C99 stuff we need too, so there's no need for any #ifdefs.
Submitted by: Gabor PALI <pgj at FreeBSD.org>
]
[Add a missing UNTAG_CLOSURE, causing bus errors on Sparc
Simon Marlow <marlowsd at gmail.com>**20100524105547
Ignore-this: a590b5391d6f05d50c8c088456c3c166
We just about got away with this on x86 which isn't
alignment-sensitive. The result of the memory load is compared
against a few different values, but there is a fallback case that
happened to be the right thing when the pointer was tagged. A good
bug to find, nonetheless.
]
[Add wiki links
Simon Marlow <marlowsd at gmail.com>**20100520095953
Ignore-this: c22f126cde166e6207922b2eb51d29e3
]
[the 'stage=0' trick to disable all compiler builds stopped working; fix it
Simon Marlow <marlowsd at gmail.com>**20100520104455
Ignore-this: bb6fae9056471612c8dbf06916188c33
]
[Comments and formatting only
benl at ouroborus.net**20100524014021
Ignore-this: 64579c38154728b632e358bec751cc0b
]
[Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
Ian Lynagh <igloo at earth.li>**20100522225048]
[Correct install-name for dynamic Darwin rts
pho at cielonegro.org**20100508151155
Ignore-this: 6d31716c8c113dcb46e9cb925c4201df
]
[Fix the RTS debug_p build
Ian Lynagh <igloo at earth.li>**20100522163127]
[Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
Ian Lynagh <igloo at earth.li>**20100521165005
With gcc 4.4 we get
Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
when running gcc with the -g flag. To work around this we unset
CFLAGS when running the test.
]
[Don't run "set -o igncr" before configuring libffi
Ian Lynagh <igloo at earth.li>**20100520162918
Ignore-this: 489fa94df23f2adf4ff63c8ede2c0794
It used to make the build work on cygwin, but now it breaks it instead:
config.status: creating include/Makefile
gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
config.status: error: could not create include/Makefile
make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
make[1]: *** [all] Error 2
]
[Stop passing -Wl,-macosx_version_min to gcc
Ian Lynagh <igloo at earth.li>**20100520154003
Fixes a build failure on OS X 10.6. When linking
rts/dist/build/libHSrts-ghc6.13.20100519.dylib
we got
ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)
collect2: ld returned 1 exit status
]
[Fix build on FreeBSD; patch from Gabor PALI
Ian Lynagh <igloo at earth.li>**20100519140552]
[Fix package shadowing order (#4072)
Simon Marlow <marlowsd at gmail.com>**20100519104617
Ignore-this: 26ea5e4bb5dff18618b807a54c7d6ebb
Later packages are supposed to shadow earlier ones in the stack,
unless the ordering is overriden with -package-id flags.
Unfortunately an earlier fix for something else had sorted the list of
packages so that it was in lexicographic order by installedPackageId,
and sadly our test (cabal/shadow) didn't pick this up because the
lexicographic ordering happened to work for the test. I've now fixed
the test so it tries both orderings.
]
[Set more env variables when configuring libffi
Ian Lynagh <igloo at earth.li>**20100518185014
We now tell it where to find ld, nm and ar
]
[Set the location of ar to be the in-tree ar on Windows
Ian Lynagh <igloo at earth.li>**20100518181556]
[Change another / to </> to avoid building paths containing \/
Ian Lynagh <igloo at earth.li>**20100518172015
This will hopefully fix #2889.
]
[Fix #4074 (I hope).
Simon Marlow <marlowsd at gmail.com>**20100518113214
Ignore-this: 73cd70f5bc6f5add5247b61985c03fc1
1. allow multiple threads to call startTimer()/stopTimer() pairs
2. disable the timer around fork() in forkProcess()
A corresponding change to the process package is required.
]
[we don't have a gcc-lib in LIB_DIR any more
Simon Marlow <marlowsd at gmail.com>**20100401102351
Ignore-this: f41acd2d8f8e6763aa8bd57a0b44a7e4
]
[In validate, use gmake if available; based on a patch from Gabor PALI
Ian Lynagh <igloo at earth.li>**20100517200654]
[Remove duplicate "./configure --help" output; fixes #4075
Ian Lynagh <igloo at earth.li>**20100516141206]
[Update various 'sh boot's to 'perl boot'
Ian Lynagh <igloo at earth.li>**20100516122609
Spotted by Marco Túlio Gontijo e Silva
]
[add missing initialisation for eventBufMutex
Simon Marlow <marlowsd at gmail.com>**20100514094943
Ignore-this: 7f75594a8cb54fbec5aebd46bb959f45
]
[Undo part of #4003 patch
Simon Marlow <marlowsd at gmail.com>**20100513142017
Ignore-this: cb65db86a38a7e5ccee9f779e489d104
We still need the workaround for when compiling HEAD with 6.12.2
]
[Fix makefile loop (#4050)
pho at cielonegro.org**20100507140707
Ignore-this: 3a1cb13d0600977e74d17ac26cbef83d
The libtool creates "libffi.dylib" and "libffi.5.dylib" but not "libffi.5.0.9.dylib". Having it in libffi_DYNAMIC_LIBS causes an infinite makefile loop.
]
[fix !TABLES_NEXT_TO_CODE
Simon Marlow <marlowsd at gmail.com>**20100510151934
Ignore-this: fccb859b114bef1c3122c98e60af51
]
[looksLikeModuleName: allow apostrophe in module names (#4051)
Simon Marlow <marlowsd at gmail.com>**20100510094741
Ignore-this: df9348f3ba90608bec57257b47672985
]
[add the proper library dependencies for GhcProfiled=YES
Simon Marlow <marlowsd at gmail.com>**20100506122118
Ignore-this: 6236993aa308ab5b5e1e5ea5f65982a
]
[Fix Trac #4003: fix the knot-tying in checkHiBootIface
simonpj at microsoft.com**20100511075026
Ignore-this: a9ce2a318386fdc8782848df84592002
I had incorrectly "optimised" checkHiBootIface so that it forgot
to update the "knot-tied" type environment.
This patch fixes the HEAD
]
[Re-engineer the derived Ord instance generation code (fix Trac #4019)
simonpj at microsoft.com**20100510133333
Ignore-this: 8fe46e4dad27fbee211a7928acf372c2
As well as fixing #4019, I rejigged the way that Ord instances are
generated, which should make them faster in general. See the
Note [Generating Ord instances].
I tried to measure the performance difference from this change, but
the #4019 fix only removes one conditional branch per iteration, and
I couldn't measure a consistent improvement. But still, tihs is
better than before.
]
[Make arity of INLINE things consistent
simonpj at microsoft.com**20100510133005
Ignore-this: 15e7abf803d1dcb3f4ca760d2d939d0d
We eta-expand things with INLINE pragmas;
see Note [Eta-expanding INLINE things].
But I eta-expanded it the wrong amount when the function
was overloaded. Ooops.
]
[Compacting GC fix, we forgot to thread the new bq field of StgTSO.
Simon Marlow <marlowsd at gmail.com>**20100510082325
Ignore-this: a079c8446e2ad53efff6fd95d0f3ac80
]
[Add version constraints for the boot packages; fixes trac #3852
Ian Lynagh <igloo at earth.li>**20100509175051
When using the bootstrapping compiler, we now explicitly constrain
the version of boot packages (Cabal, extensible-exceptions, etc) to the
in-tree version, so that the build system is less fragile should the
user have a newer version installed for the bootstrapping compiler.
]
[Don't include inter-package dependencies when compiling with stage 0; #4031
Ian Lynagh <igloo at earth.li>**20100509130511
This fixes a problem when building with GHC 6.12 on Windows, where
dependencies on stage 0 (bootstrapping compiler) packages have absolute
paths c:/ghc/..., and make gets confused by the colon.
]
[Add a ghc.mk for bindisttest/
Ian Lynagh <igloo at earth.li>**20100508223911]
[Move some make variables around so they are available when cleaning
Ian Lynagh <igloo at earth.li>**20100508212405]
[Optimise checkremove a bit
Ian Lynagh <igloo at earth.li>**20100508202006]
[Improve the bindisttest Makefile
Ian Lynagh <igloo at earth.li>**20100508195450]
[Add tools to test that cleaning works properly
Ian Lynagh <igloo at earth.li>**20100508194105]
[Tweak the ghc-pkg finding code
Ian Lynagh <igloo at earth.li>**20100508125815
It now understand the ghc-stage[123] names we use in-tree, and it won't
go looking for any old ghc-pkg if it can't find the one that matches
ghc.
]
[Add a way to show what cleaning would be done, without actually doing it
Ian Lynagh <igloo at earth.li>**20100508122438]
[Tidy up the "rm" flags in the build system
Ian Lynagh <igloo at earth.li>**20100508115745]
[Fix crash in nested callbacks (#4038)
Simon Marlow <marlowsd at gmail.com>**20100507093222
Ignore-this: cade85e361534ce711865a4820276388
Broken by "Split part of the Task struct into a separate struct
InCall".
]
[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
Simon Marlow <marlowsd at gmail.com>**20100428205241
Ignore-this: 1db8bccf92099785ecac39aebd27c92d
Default currently NO.
Validate passed with GhcDynamic=YES on x86/Linux here.
The compiler is currently slower on x86 when linked -dynamic,
because the GC inner loop has been adversely affected by -fPIC, I'm
looking into how to fix it.
]
[omit "dyn" from the way appended to the __stginit label
Simon Marlow <marlowsd at gmail.com>**20100428204914
Ignore-this: 14183f3defa9f2bde68fda6729b740bc
When GHCi is linked dynamically, we still want to be able to load
non-dynamic object files.
]
[improvements to findPtr(), a neat hack for browsing the heap in gdb
Simon Marlow <marlowsd at gmail.com>**20100506115427
Ignore-this: ac57785bb3e13b97a5945f753f068738
]
[Fix +RTS -G1
Simon Marlow <marlowsd at gmail.com>**20100506110739
Ignore-this: 86a5de39a94d3331a4ee1213f82be497
]
[Enable the "redundant specialise pragmas" warning; fixes trac #3855
Ian Lynagh <igloo at earth.li>**20100506175351]
[Find the correct external ids when there's a wrapper
simonpj at microsoft.com**20100506164135
Ignore-this: 636266407b174b05b2b8646cc73062c0
We were failing to externalise the wrapper id for a function
that had one.
]
[Add a comment about pattern coercions
simonpj at microsoft.com**20100506164027
Ignore-this: 17428089f3df439f65d892e23e8ed61a
]
[Comments only
simonpj at microsoft.com**20100506163829
Ignore-this: 169167b6463873ab173cc5750c5be469
]
[Make a missing name in mkUsageInfo into a panic
simonpj at microsoft.com**20100506163813
Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
We really want to know about this!
]
[Refactoring of hsXxxBinders
simonpj at microsoft.com**20100506163737
Ignore-this: 97c6667625262b160f9746f7bea1c980
This patch moves various functions that extract the binders
from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
them consistent names.
]
[Fix Trac #3966: warn about useless UNPACK pragmas
simonpj at microsoft.com**20100506163337
Ignore-this: 5beb24b686eda6113b614dfac8490df1
Warning about useless UNPACK pragmas wasn't as easy as I thought.
I did quite a bit of refactoring, which improved the code by refining
the types somewhat. In particular notice that in DataCon, we have
dcStrictMarks :: [HsBang]
dcRepStrictness :: [StrictnessMarks]
The former relates to the *source-code* annotation, the latter to
GHC's representation choice.
]
[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
simonpj at microsoft.com**20100506162719
Ignore-this: d000bca15b0e127e297378ded1bfb81b
The tcg_dus field used to contain *uses* of type and class decls,
but not *defs*. That was inconsistent, and it really went wrong
for Template Haskell bracket. What happened was that
foo = [d| data A = A
f :: A -> A
f x = x |]
would find a "use" of A when processing the top level of the module,
which in turn led to a mkUsageInfo panic in MkIface. The cause was
the fact that the tcg_dus for the nested quote didn't have defs for
A.
]
[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
simonpj at microsoft.com**20100506161523
Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
The issue here is that
g :: A -> A
f
data A = A
is treated as if you'd written $(f); that is the call of
f is a top-level Template Haskell splice. This patch
makes sure that we *first* check the -XTemplateHaskellFlag
and bleat about a parse error if it's off. Othewise we
get strange seeing "A is out of scope" errors.
]
[Change an assert to a warn
simonpj at microsoft.com**20100506161111
Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
This is in the constraint simplifier which I'm about
to rewrite, so I'm hoping the assert isn't fatal!
]
[Tidy up debug print a little
simonpj at microsoft.com**20100506161027
Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
]
[Remove useless UNPACK pragmas
simonpj at microsoft.com**20100506161012
Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
]
[Add WARNM2 macro, plus some refactoring
simonpj at microsoft.com**20100506160808
Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
]
[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
simonpj at microsoft.com**20100506160750
Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
]
[Fix Trac #3966: warn about unused UNPACK pragmas
simonpj at microsoft.com**20100409201812
Ignore-this: c96412596b39c918b5fb9b3c39ce2119
]
[Fix Trac #3953: fail earlier when using a bogus quasiquoter
simonpj at microsoft.com**20100409201748
Ignore-this: ef48e39aa932caed538643985234f043
]
[Fix Trac #3965: tighten conditions when deriving Data
simonpj at microsoft.com**20100409184420
Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
It's tricky to set up the context for a Data instance. I got it wrong
once, and fixed it -- hence the "extra_constraints" in
TcDeriv.inferConstraints.
But it still wasn't right! The tricky bit is that dataCast1 is only
generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
the code in TcGenDeriv for dataCastX.
]
[Fix Trac #3964: view patterns in DsArrows
simonpj at microsoft.com**20100409165557
Ignore-this: d823c182831d5e2e592e995b16180e2f
Just a missing case; I've eliminated the catch-all so
that we get a warning next time we extend HsPat
]
[Fix Trac #3955: renamer and type variables
simonpj at microsoft.com**20100409163710
Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
The renamer wasn't computing the free variables of a type declaration
properly. This patch refactors a bit, and makes it more robust,
fixing #3955 and several other closely-related bugs. (We were
omitting some free variables and that could just possibly lead to a
usage-version tracking error.
]
[Layout only
simonpj at microsoft.com**20100409163506
Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
]
[Give a better deprecated message for INCLUDE pragmas; fixes #3933
Ian Lynagh <igloo at earth.li>**20100506130910
We now have a DeprecatedFullText constructor, so we can override the
"-#include is deprecated: " part of the warning.
]
[De-haddock a comment that confuses haddock
Ian Lynagh <igloo at earth.li>**20100506123607]
[Fix comment to not confuse haddock
Ian Lynagh <igloo at earth.li>**20100506113642]
[Detect EOF when trying to parse a string in hp2ps
Ian Lynagh <igloo at earth.li>**20100506000830]
[Make the demand analyser sdd demands for strict constructors
simonpj at microsoft.com**20100505200936
Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
This opportunity was spotted by Roman, and is documented in
Note [Add demands for strict constructors] in DmdAnal.
]
[Fix interaction of exprIsCheap and the lone-variable inlining check
simonpj at microsoft.com**20100505200723
Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
This buglet meant that a nullary definition with an INLINE pragma
counter-intuitively didn't get inlined at all. Roman identified
the bug.
]
[Matching cases in SpecConstr and Rules
simonpj at microsoft.com**20100505200543
Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
This patch has zero effect. It includes comments,
a bit of refactoring, and a tiny bit of commment-out
code go implement the "matching cases" idea below.
In the end I've left it disabled because while I think
it does no harm I don't think it'll do any good either.
But I didn't want to lose the idea totally. There's
a thread called "Storable and constant memory" on
the libraries at haskell.org list (Apr 2010) about it.
Note [Matching cases]
~~~~~~~~~~~~~~~~~~~~~
{- NOTE: This idea is currently disabled. It really only works if
the primops involved are OkForSpeculation, and, since
they have side effects readIntOfAddr and touch are not.
Maybe we'll get back to this later . -}
Consider
f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
case touch# fp s# of { _ ->
I# n# } } )
This happened in a tight loop generated by stream fusion that
Roman encountered. We'd like to treat this just like the let
case, because the primops concerned are ok-for-speculation.
That is, we'd like to behave as if it had been
case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
case touch# fp s# of { _ ->
f (I# n# } } )
]
[Comments only
simonpj at microsoft.com**20100504163629
Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
]
[Comments only
simonpj at microsoft.com**20100504163529
Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
]
[Comments only
simonpj at microsoft.com**20100504163457
Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
]
[Comments only (about type families)
simonpj at microsoft.com**20100417145032
Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
]
[Fix hp2ps when the .hp file has large string literals
Ian Lynagh <igloo at earth.li>**20100505191921]
[In build system, call package-config after including package data
Ian Lynagh <igloo at earth.li>**20100504225035
Otherwise the $1_$2_HC_OPTS variable gets clobbered.
]
[runghc: flush stdout/stderr on an exception (#3890)
Simon Marlow <marlowsd at gmail.com>**20100505133848
Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
]
[Remove the Unicode alternative for ".." (#3894)
Simon Marlow <marlowsd at gmail.com>**20100505121202
Ignore-this: 2452cd67281667106f9169747b6d784f
]
[tidyup; no functional changes
Simon Marlow <marlowsd at gmail.com>**20100505115015
Ignore-this: d0787e5cdeef1dee628682fa0a46019
]
[Make the running_finalizers flag task-local
Simon Marlow <marlowsd at gmail.com>**20100505114947
Ignore-this: 345925d00f1dca203941b3c5d84c90e1
Fixes a bug reported by Lennart Augustsson, whereby we could get an
incorrect error from the RTS about re-entry from a finalizer,
]
[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
Simon Marlow <marlowsd at gmail.com>**20100505114746
Ignore-this: efea04991d6feed04683a42232fc85da
]
[Allow filepath-1.2.*
Simon Marlow <marlowsd at gmail.com>**20100505101139
Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
]
[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
Simon Marlow <marlowsd at gmail.com>**20100505094534
Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
]
[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
Simon Marlow <marlowsd at gmail.com>**20100505094506
Ignore-this: 302616931f61667030d77ddfbb02374e
]
[Fix build with GHC 6.10
Ian Lynagh <igloo at earth.li>**20100504180302
In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
so we need to jump through some hoops to get the more general type.
]
[The libffi patches are no longer needed
Ian Lynagh <igloo at earth.li>**20100504171603]
[Use the in-tree windres; fixes trac #4032
Ian Lynagh <igloo at earth.li>**20100504170941]
[Print unfoldings on lambda-bound variables
Simon PJ <simonpj at microsoft.com>**20100503181822
Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
...in the unusual case where they have one;
see Note [Case binders and join points] in Simplify.lhs
]
[Replace FiniteMap and UniqFM with counterparts from containers.
Milan Straka <fox at ucw.cz>**20100503171315
Ignore-this: a021972239163dbf728284b19928cebb
The original interfaces are kept. There is small performance improvement:
- when compiling for five nofib, we get following speedups:
Average ----- -2.5%
Average ----- -0.6%
Average ----- -0.5%
Average ----- -5.5%
Average ----- -10.3%
- when compiling HPC ten times, we get:
switches oldmaps newmaps
-O -fasm 117.402s 116.081s (98.87%)
-O -fasm -fregs-graph 119.993s 118.735s (98.95%)
-O -fasm -fregs-iterative 120.191s 118.607s (98.68%)
]
[Make the demand analyser take account of lambda-bound unfoldings
Simon PJ <simonpj at microsoft.com>**20100503151630
Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
in DmdAnal.
I'm still not really happy with this lambda-bound-unfolding stuff.
]
[Fix dynamic libs on OS X, and enable them by default
Ian Lynagh <igloo at earth.li>**20100503150302]
[Switch back to using bytestring from the darcs repo; partially fixes #3855
Ian Lynagh <igloo at earth.li>**20100502113458]
[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
Ian Lynagh <igloo at earth.li>**20100428150700]
[Fix "make 2"
Ian Lynagh <igloo at earth.li>**20100427162212
The new Makefile logic was enabling the stage 1 rules when stage=2,
so "make 2" was rebuilding stage 1.
]
[Inplace programs depend on their shell wrappers
Ian Lynagh <igloo at earth.li>**20100427160038]
[--make is now the default (#3515), and -fno-code works with --make (#3783)
Simon Marlow <marlowsd at gmail.com>**20100427122851
Ignore-this: 33330474fa4703f32bf9997462b4bf3c
If the command line contains any Haskell source files, then we behave
as if --make had been given.
The meaning of the -c flag has changed (back): -c now selects one-shot
compilation, but stops before linking. However, to retain backwards
compatibility, -c is still allowed with --make, and means the same as
--make -no-link. The -no-link flag has been un-deprecated.
-fno-code is now allowed with --make (#3783); the fact that it was
disabled before was largely accidental, it seems. We also had some
regressions in this area: it seems that -fno-code was causing a .hc
file to be emitted in certain cases. I've tidied up the code, there
was no need for -fno-code to be a "mode" flag, as far as I can tell.
-fno-code does not emit interface files, nor does it do recompilation
checking, as suggested in #3783. This would make Haddock emit
interface files, for example, and I'm fairly sure we don't want to do
that. Compiling with -fno-code is pretty quick anyway, perhaps we can
get away without recompilation checking.
]
[remove duplicate docs for -e in --help output (#4010)
Simon Marlow <marlowsd at gmail.com>**20100426140642
Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
]
[workaround for #4003, fixes HEAD build with 6.12.2
Simon Marlow <marlowsd at gmail.com>**20100426103428
Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
]
[Make sure all the clean rules are always included
Ian Lynagh <igloo at earth.li>**20100424181823
In particular, this fixes a problem where stage3 bits weren't being cleaned
]
[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
Ian Lynagh <igloo at earth.li>**20100424132830
We weren't getting sharedlibs on amd64/FreeBSD because of this
]
[Include DPH docs in bindists
Ian Lynagh <igloo at earth.li>**20100424123101]
[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
Simon Marlow <marlowsd at gmail.com>**20100423124853
Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
]
[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
Simon Marlow <marlowsd at gmail.com>**20100422213605
Ignore-this: 525c062d2456c224ec8d0e083edd3b55
]
[Add missing constant folding and optimisation for unsigned division
Simon Marlow <marlowsd at gmail.com>**20100422213443
Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
Noticed by Denys Rtveliashvili <rtvd at mac.com>, see #4004
]
[Fix the GHC API link in the main doc index.html
Ian Lynagh <igloo at earth.li>**20100422213226]
[Give the right exit code in darcs-all
Ian Lynagh <igloo at earth.li>**20100421171339
Our END block was calling system, which alters $?. So now we save and
restore it.
]
[Use StgWord64 instead of ullong
Ian Lynagh <igloo at earth.li>**20100421162336
This patch also fixes ullong_format_string (renamed to showStgWord64)
so that it works with values outside the 32bit range (trac #3979), and
simplifies the without-commas case.
]
[Implement try10Times in Makefile
Ian Lynagh <igloo at earth.li>**20100420165909
Avoid using seq, as FreeBSD has jot instead.
]
[Fix crash in non-threaded RTS on Windows
Simon Marlow <marlowsd at gmail.com>**20100420122125
Ignore-this: 28b0255a914a8955dce02d89a7dfaca
The tso->block_info field is now overwritten by pushOnRunQueue(), but
stg_block_async_info was assuming that it still held a pointer to the
StgAsyncIOResult. We must therefore save this value somewhere safe
before putting the TSO on the run queue.
]
[Expand the scope of the event_buf_mutex to cover io_manager_event
Simon Marlow <marlowsd at gmail.com>**20100420122026
Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
I once saw a failure that I think was due to a race on
io_manager_event, this should fix it.
]
[Flags -auto and -auto-all operate only on functions not marked INLINE.
Milan Straka <fox at ucw.cz>**20100331191050
Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
]
[Spelling correction for LANGUAGE pragmas
Max Bolingbroke <batterseapower at hotmail.com>**20100413192825
Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
]
[Update the user guide so it talks about the newer "do rec" notation everywhere
Ian Lynagh <igloo at earth.li>**20100416205416
Some of the problems highlighted in trac #3968.
]
[Fix typo
Ian Lynagh <igloo at earth.li>**20100416205412]
[Fix Trac #3950: unifying types of different kinds
simonpj at microsoft.com**20100412151845
Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
I was assuming that the unifer only unified types of the
same kind, but now we can "defer" unsolved constraints that
invariant no longer holds. Or at least is's more complicated
to ensure.
This patch takes the path of not assuming the invariant, which
is simpler and more robust. See
Note [Mismatched type lists and application decomposition]
]
[Fix Trac #3943: incorrect unused-variable warning
simonpj at microsoft.com**20100412151630
Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
In fixing this I did the usual little bit of refactoring
]
[Convert boot and boot-pkgs to perl
Ian Lynagh <igloo at earth.li>**20100415143919
This stops us having to worry about sh/sed/... portability.
]
[Use $(MAKE), not make, when recursively calling make
Ian Lynagh <igloo at earth.li>**20100415121453]
[Remove the ghc_ge_609 makefile variables
Ian Lynagh <igloo at earth.li>**20100412235658
They are now guaranteed to be YES
]
[Increase the minimum version number required to 6.10 in configure.ac
Ian Lynagh <igloo at earth.li>**20100412235313]
[The bootstrapping compiler is now required to be > 609
Ian Lynagh <igloo at earth.li>**20100409161046]
[Handle IND_STATIC in isRetainer
Ian Lynagh <igloo at earth.li>**20100409104207
IND_STATIC used to be an error, but at the moment it can happen
as isAlive doesn't look through IND_STATIC as it ignores static
closures. See trac #3956 for a program that hit this error.
]
[Add Data and Typeable instances to HsSyn
David Waern <david.waern at gmail.com>**20100330011020
Ignore-this: c3f2717207b15539fea267c36b686e6a
The instances (and deriving declarations) have been taken from the ghc-syb
package.
]
[Fix for derefing ThreadRelocated TSOs in MVar operations
Simon Marlow <marlowsd at gmail.com>**20100407092824
Ignore-this: 94dd7c68a6094eda667e2375921a8b78
]
[sanity check fix
Simon Marlow <marlowsd at gmail.com>**20100407092746
Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
]
[get the reg liveness right in the putMVar# heap check
Simon Marlow <marlowsd at gmail.com>**20100407092724
Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
]
[initialise the headers of MSG_BLACKHOLE objects properly
Simon Marlow <marlowsd at gmail.com>**20100407081712
Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
]
[initialise the headers of MVAR_TSO_QUEUE objects properly
Simon Marlow <marlowsd at gmail.com>**20100407081514
Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
]
[undo debugging code
Simon Marlow <marlowsd at gmail.com>**20100406142740
Ignore-this: 323c2248f817b6717c19180482fc4b00
]
[putMVar#: fix reg liveness in the heap check
Simon Marlow <marlowsd at gmail.com>**20100406135832
Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
]
[account for the new BLACKHOLEs in the GHCi debugger
Simon Marlow <marlowsd at gmail.com>**20100406133406
Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
]
[don't forget to deRefTSO() in tryWakeupThread()
Simon Marlow <marlowsd at gmail.com>**20100406130411
Ignore-this: 171d57c4f8653835dec0b69f9be9881c
]
[Fix bug in popRunQueue
Simon Marlow <marlowsd at gmail.com>**20100406091453
Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
]
[fix bug in migrateThread()
Simon Marlow <marlowsd at gmail.com>**20100401105840
Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
]
[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
Simon Marlow <marlowsd at gmail.com>**20100401093519
Ignore-this: 95f2480c8a45139835eaf5610217780b
These are no longer used: once upon a time they used to have different
layout from IND and IND_PERM respectively, but that is no longer the
case since we changed the remembered set to be an array of addresses
instead of a linked list of closures.
]
[Change the representation of the MVar blocked queue
Simon Marlow <marlowsd at gmail.com>**20100401091605
Ignore-this: 20a35bfabacef2674df362905d7834fa
The list of threads blocked on an MVar is now represented as a list of
separately allocated objects rather than being linked through the TSOs
themselves. This lets us remove a TSO from the list in O(1) time
rather than O(n) time, by marking the list object. Removing this
linear component fixes some pathalogical performance cases where many
threads were blocked on an MVar and became unreachable simultaneously
(nofib/smp/threads007), or when sending an asynchronous exception to a
TSO in a long list of thread blocked on an MVar.
MVar performance has actually improved by a few percent as a result of
this change, slightly to my surprise.
This is the final cleanup in the sequence, which let me remove the old
way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent). It
is now the case that only the Capability that owns a TSO may modify
its state (well, almost), and this simplifies various things. More of
the RTS is based on message-passing between Capabilities now.
]
[eliminate some duplication with a bit of CPP
Simon Marlow <marlowsd at gmail.com>**20100330154355
Ignore-this: 838f7d341f096ca14c86ab9c81193e36
]
[Make ioManagerDie() idempotent
Simon Marlow <marlowsd at gmail.com>**20100401100705
Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
Avoids screeds of "event buffer overflowed; event dropped" in
conc059(threaded1).
]
[Move a thread to the front of the run queue when another thread blocks on it
Simon Marlow <marlowsd at gmail.com>**20100329144521
Ignore-this: c518ff0d41154680edc811d891826a29
This fixes #3838, and was made possible by the new BLACKHOLE
infrastructure. To allow reording of the run queue I had to make it
doubly-linked, which entails some extra trickiness with regard to
GC write barriers and suchlike.
]
[remove non-existent MUT_CONS symbols
Simon Marlow <marlowsd at gmail.com>**20100330152600
Ignore-this: 885628257a9d03f2ece2a754d993014a
]
[change throwTo to use tryWakeupThread rather than unblockOne
Simon Marlow <marlowsd at gmail.com>**20100329144613
Ignore-this: 10ad4965e6c940db71253f1c72218bbb
]
[tiny GC optimisation
Simon Marlow <marlowsd at gmail.com>**20100329144551
Ignore-this: 9e095b9b73fff0aae726f9937846ba92
]
[New implementation of BLACKHOLEs
Simon Marlow <marlowsd at gmail.com>**20100329144456
Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
This replaces the global blackhole_queue with a clever scheme that
enables us to queue up blocked threads on the closure that they are
blocked on, while still avoiding atomic instructions in the common
case.
Advantages:
- gets rid of a locked global data structure and some tricky GC code
(replacing it with some per-thread data structures and different
tricky GC code :)
- wakeups are more prompt: parallel/concurrent performance should
benefit. I haven't seen anything dramatic in the parallel
benchmarks so far, but a couple of threading benchmarks do improve
a bit.
- waking up a thread blocked on a blackhole is now O(1) (e.g. if
it is the target of throwTo).
- less sharing and better separation of Capabilities: communication
is done with messages, the data structures are strictly owned by a
Capability and cannot be modified except by sending messages.
- this change will utlimately enable us to do more intelligent
scheduling when threads block on each other. This is what started
off the whole thing, but it isn't done yet (#3838).
I'll be documenting all this on the wiki in due course.
]
[Fix warnings (allow pushOnRunQueue() to not be inlined)
Simon Marlow <marlowsd at gmail.com>**20100401114559
Ignore-this: f40bfbfad70a5165a946d11371605b7d
]
[remove out of date comment
Simon Marlow <marlowsd at gmail.com>**20100401105853
Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
]
[tidy up spacing in stderr traces
Simon Marlow <marlowsd at gmail.com>**20100326163122
Ignore-this: 16558b0433a274be217d4bf39aa4946
]
[Fix an assertion that was not safe when running in parallel
Simon Marlow <marlowsd at gmail.com>**20100325143656
Ignore-this: cad08fb8900eb3a475547af0189fcc47
]
[Never jump directly to a thunk's entry code, even if it is single-entry
Simon Marlow <marlowsd at gmail.com>**20100325114847
Ignore-this: 938da172c06a97762ef605c8fccfedf1
I don't think this fixes any bugs as we don't have single-entry thunks
at the moment, but it could cause problems for parallel execution if
we ever did re-introduce update avoidance.
]
[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
Milan Straka <fox at ucw.cz>**20100331153626
Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
]
[Add -pa and -V to the documentation of time profiling options.
Milan Straka <fox at ucw.cz>**20100329191121
Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
]
[Keep gcc 4.5 happy
Simon Marlow <marlowsd at gmail.com>**20100330120425
Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
]
[Fix warning compiling Linker.c for PPC Mac
naur at post11.tele.dk**20100403182355
Ignore-this: e2d2448770c9714ce17dd6cf3e297063
The warning message eliminated is:
> rts/Linker.c:4756:0:
> warning: nested extern declaration of 'symbolsWithoutUnderscore'
]
[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
naur at post11.tele.dk**20100403181656
Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
The error messages eliminated are:
> compiler/nativeGen/AsmCodeGen.lhs:875:31:
> Not in scope: `mkRtsCodeLabel'
> compiler/nativeGen/AsmCodeGen.lhs:879:31:
> Not in scope: `mkRtsCodeLabel'
> compiler/nativeGen/AsmCodeGen.lhs:883:31:
> Not in scope: `mkRtsCodeLabel'
]
[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
naur at post11.tele.dk**20100403180643
Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
The error message eliminated is:
> compiler/nativeGen/AsmCodeGen.lhs:637:16:
> Not in scope: data constructor `DestBlockId'
]
[Fix boot-pkgs's sed usage to work with Solaris's sed
Ian Lynagh <igloo at earth.li>**20100401153441]
[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
Ian Lynagh <igloo at earth.li>**20100331144707
This seems to fix this failure:
[...]
** BUILD SUCCEEDED **
rm -f -f GHC-system.pmdoc/*-contents.xml
/Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
-o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
2511962091,
2447007291,
2511961547,
2511961610,
2432803204,
453371,
447720,
436209,
435510,
9986,
9918
)
make[1]: *** [framework-pkg] Trace/BPT trap
make: *** [framework-pkg] Error 2
]
[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
Ian Lynagh <igloo at earth.li>**20100331161302
Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
]
[Avoid a non-portable use of tar reported by Roman Leshchinskiy
Ian Lynagh <igloo at earth.li>**20100330145802]
[Don't install EXTRA_PACKAGES by default
Simon Marlow <marlowsd at gmail.com>**20100330142714
Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
]
[fix a non-portable printf format
Simon Marlow <marlowsd at gmail.com>**20100330134437
Ignore-this: d41c23c54ec29654cb2049de1e588570
]
[avoid single quote in #error
Simon Marlow <marlowsd at gmail.com>**20100330120346
Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
]
[use FMT_Word64 instead of locally-defined version
Simon Marlow <marlowsd at gmail.com>**20100330114650
Ignore-this: 82697b8095dffb3a8e196c687006ece0
]
[remove old/unused DotnetSupport and GhcLibsWithUnix
Simon Marlow <marlowsd at gmail.com>**20100330123732
Ignore-this: c68814868b3671abdc369105bbeafe6c
]
[fix return type cast in f.i.wrapper when using libffi (#3516)
Simon Marlow <marlowsd at gmail.com>**20100329154220
Ignore-this: f898eb8c9ae2ca2009e539735b92c438
Original fix submitted by
Sergei Trofimovich <slyfox at community.haskell.org>
modified by me:
- exclude 64-bit types
- compare uniques, not strings
- #include "ffi.h" is conditional
]
[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
Simon Marlow <marlowsd at gmail.com>**20100329135734
Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
Submitted by: Sergei Trofimovich <slyfox at community.haskell.org>
Re-recorded against HEAD.
]
[avoid a fork deadlock (see comments)
Simon Marlow <marlowsd at gmail.com>**20100329132329
Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
]
[tidy up the end of the all_tasks list after forking
Simon Marlow <marlowsd at gmail.com>**20100329132253
Ignore-this: 819d679875be5f344e816210274d1c29
]
[Add a 'setKeepCAFs' external function (#3900)
Simon Marlow <marlowsd at gmail.com>**20100329110036
Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
]
[Explicitly check whether ar supports the @file syntax
Ian Lynagh <igloo at earth.li>**20100329123325
rather than assuming that all GNU ar's do.
Apparently OpenBSD's older version doesn't.
]
[Fix the format specifier for Int64/Word64 on Windows
Ian Lynagh <igloo at earth.li>**20100327182126
mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
than 64-bit. We use %I64u/%I64d instead.
]
[Fix the ghci startmenu item
Ian Lynagh <igloo at earth.li>**20100326235934
I'm not sure what changed, but it now doesn't work for me without
the "Start in" field being set.
]
[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
Ian Lynagh <igloo at earth.li>**20100326155917]
[Add a licence file for the Windows installer to use
Ian Lynagh <igloo at earth.li>**20100326155130]
[Add gcc-g++ to the inplace mingw installation; fixes #3893
Ian Lynagh <igloo at earth.li>**20100326154714]
[Add the licence file to the Windows installer. Fixes #3934
Ian Lynagh <igloo at earth.li>**20100326152449]
[Quote the paths to alex and happy in configure
Ian Lynagh <igloo at earth.li>**20100325143449
Ignore-this: d6d6e1a250f88985bbeea760e63a79db
]
[Use </> rather than ++ "/"
Ian Lynagh <igloo at earth.li>**20100325133237
This stops us generating paths like
c:\foo\/ghc460_0/ghc460_0.o
which windres doesn't understand.
]
[Append $(exeext) to utils/ghc-pkg_dist_PROG
Ian Lynagh <igloo at earth.li>**20100324233447
Fixes bindist creation
]
[A sanity check
Simon Marlow <marlowsd at gmail.com>**20100325110500
Ignore-this: 3b3b76d898c822456857e506b7531e65
]
[do_checks: do not set HpAlloc if the stack check fails
Simon Marlow <marlowsd at gmail.com>**20100325110328
Ignore-this: 899ac8c29ca975d03952dbf4608d758
This fixes a very rare heap corruption bug, whereby
- a context switch is requested, which sets HpLim to zero
(contextSwitchCapability(), called by the timer signal or
another Capability).
- simultaneously a stack check fails, in a code fragment that has
both a stack and a heap check.
The RTS then assumes that a heap-check failure has occurred and
subtracts HpAlloc from Hp, although in fact it was a stack-check
failure and retreating Hp will overwrite valid heap objects. The bug
is that HpAlloc should only be set when Hp has been incremented by the
heap check. See comments in rts/HeapStackCheck.cmm for more details.
This bug is probably incredibly rare in practice, but I happened to be
working on a test that triggers it reliably:
concurrent/should_run/throwto001, compiled with -O -threaded, args 30
300 +RTS -N2, run repeatedly in a loop.
]
[comments and formatting only
Simon Marlow <marlowsd at gmail.com>**20100325104617
Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
]
[Change how perl scripts get installed; partially fixes #3863
Ian Lynagh <igloo at earth.li>**20100324171422
We now regenerate them when installing, which means the path for perl
doesn't get baked in
]
[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
Ian Lynagh <igloo at earth.li>**20100324171408
This means we don't rely on baking a path to gcc into the executable
]
[Quote the ar path in configure
Ian Lynagh <igloo at earth.li>**20100324162043]
[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
Ian Lynagh <igloo at earth.li>**20100324145048]
[Remove unused cCONTEXT_DIFF
Ian Lynagh <igloo at earth.li>**20100324145013]
[Remove unused cEnableWin32DLLs
Ian Lynagh <igloo at earth.li>**20100324144841]
[Remove unused cGHC_CP
Ian Lynagh <igloo at earth.li>**20100324144656]
[Fix the build for non-GNU-ar
Ian Lynagh <igloo at earth.li>**20100324132907]
[Tweak the Makefile code for making .a libs; fixes trac #3642
Ian Lynagh <igloo at earth.li>**20100323221325
The main change is that, rather than using "xargs ar" we now put
all the filenames into a file, and do "ar @file". This means that
ar adds all the files at once, which works around a problem where
files with the same basename in a later invocation were overwriting
the existing file in the .a archive.
]
[Enable shared libraries on Windows; fixes trac #3879
Ian Lynagh <igloo at earth.li>**20100320231414
Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
]
[Add the external core PDF to the new build system
Ian Lynagh <igloo at earth.li>**20100321161909]
[Allow specifying $threads directly when validating
Ian Lynagh <igloo at earth.li>**20100321112835]
[Remove LazyUniqFM; fixes trac #3880
Ian Lynagh <igloo at earth.li>**20100320213837]
[UNDO: slight improvement to scavenging ...
Simon Marlow <marlowsd at gmail.com>**20100319153413
Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
Accidnetally pushed this patch which, while it validates, isn't
correct.
rolling back:
Fri Mar 19 11:21:27 GMT 2010 Simon Marlow <marlowsd at gmail.com>
* slight improvement to scavenging of update frames when a collision has occurred
M ./rts/sm/Scav.c -19 +15
]
[slight improvement to scavenging of update frames when a collision has occurred
Simon Marlow <marlowsd at gmail.com>**20100319112127
Ignore-this: 6de2bb9614978975f17764a0f259d9bf
]
[Don't install the utf8-string package
Ian Lynagh <igloo at earth.li>**20100317212709]
[Don't use -Bsymbolic when linking the RTS
Ian Lynagh <igloo at earth.li>**20100316233357
This makes the RTS hooks work when doing dynamic linking
]
[Fix Trac #3920: Template Haskell kinds
simonpj at microsoft.com**20100317123519
Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
Fix two places where we were doing foldl instead of foldr
after decomposing a Kind. Strange that the same bug appears
in two quite different places!
]
[copy_tag_nolock(): fix write ordering and add a write_barrier()
Simon Marlow <marlowsd at gmail.com>**20100316143103
Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
Fixes a rare crash in the parallel GC.
If we copy a closure non-atomically during GC, as we do for all
immutable values, then before writing the forwarding pointer we better
make sure that the closure itself is visible to other threads that
might follow the forwarding pointer. I imagine this doesn't happen
very often, but I just found one case of it: in scavenge_stack, the
RET_FUN case, after evacuating ret_fun->fun we then follow it and look
up the info pointer.
]
[Add sliceP mapping to vectoriser builtins
benl at ouroborus.net**20100316060517
Ignore-this: 54c3cafff584006b6fbfd98124330aa3
]
[Comments only
benl at ouroborus.net**20100311064518
Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
]
[TAG 2010-03-16
Ian Lynagh <igloo at earth.li>**20100316005137
Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
]
Patch bundle hash:
251716201d85312433723fadecf2db5708c2adc7
More information about the Cvs-ghc
mailing list