Ticket #2362: 2362.patch

File 2362.patch, 78.4 KB (added by SamAnklesaria, 2 years ago)
Line 
11 patch for repository http://darcs.haskell.org/ghc:
2
3Thu Jun 24 22:26:32 CDT 2010  amsay@amsay.net
4  * trac #2362 (full import syntax in ghci)
5  'import' syntax is seperate from ':module' syntax
6
7New patches:
8
9[trac #2362 (full import syntax in ghci)
10amsay@amsay.net**20100625032632
11 Ignore-this: a9d0859d84956beb74e27b797431bf9c
12 'import' syntax is seperate from ':module' syntax
13] {
14hunk ./compiler/main/GHC.hs 101
15        typeKind,
16        parseName,
17        RunResult(..), 
18-       runStmt, SingleStep(..),
19+       runStmt, parseImportDecl, SingleStep(..),
20         resume,
21         Resume(resumeStmt, resumeThreadId, resumeBreakInfo, resumeSpan,
22                resumeHistory, resumeHistoryIx),
23hunk ./compiler/main/HscMain.lhs 17
24     , hscSimplify
25     , hscNormalIface, hscWriteIface, hscGenHardCode
26 #ifdef GHCI
27-    , hscStmt, hscTcExpr, hscKcType
28+    , hscStmt, hscTcExpr, hscImport, hscKcType
29     , compileExpr
30 #endif
31     , HsCompiler(..)
32hunk ./compiler/main/HscMain.lhs 54
33 import {- Kind parts of -} Type                ( Kind )
34 import CoreLint                ( lintUnfolding )
35 import DsMeta          ( templateHaskellNames )
36-import SrcLoc          ( SrcSpan, noSrcLoc, interactiveSrcLoc, srcLocSpan, noSrcSpan )
37+import SrcLoc          ( SrcSpan, noSrcLoc, interactiveSrcLoc, srcLocSpan, noSrcSpan, unLoc )
38 import VarSet
39 import VarEnv          ( emptyTidyEnv )
40 #endif
41hunk ./compiler/main/HscMain.lhs 934
42 
43        return $ Just (ids, hval)
44 
45+hscImport :: GhcMonad m => HscEnv -> String -> m (ImportDecl RdrName)
46+hscImport hsc_env str = do
47+    (L _ (HsModule{hsmodImports=is})) <- hscParseThing parseModule (hsc_dflags hsc_env) str
48+    case is of
49+        [i] -> return (unLoc i)
50+        _ -> throwOneError (mkPlainErrMsg noSrcSpan (ptext (sLit "parse error in import declaration")))
51 
52 hscTcExpr      -- Typecheck an expression (but don't run it)
53   :: GhcMonad m =>
54hunk ./compiler/main/HscTypes.lhs 1128
55        ic_toplev_scope :: [Module],    -- ^ The context includes the "top-level" scope of
56                                        -- these modules
57 
58-       ic_exports :: [Module],         -- ^ The context includes just the exports of these
59+       ic_exports :: [(Module, Maybe (ImportDecl RdrName))],           -- ^ The context includes just the exported parts of these
60                                        -- modules
61 
62        ic_rn_gbl_env :: GlobalRdrEnv,  -- ^ The contexts' cached 'GlobalRdrEnv', built from
63hunk ./compiler/main/InteractiveEval.hs 12
64 module InteractiveEval (
65 #ifdef GHCI
66         RunResult(..), Status(..), Resume(..), History(..),
67-       runStmt, SingleStep(..),
68+       runStmt, parseImportDecl, SingleStep(..),
69         resume,
70         abandon, abandonAll,
71         getResumeContext,
72hunk ./compiler/main/InteractiveEval.hs 43
73 #include "HsVersions.h"
74 
75 import HscMain          hiding (compileExpr)
76+import HsSyn (ImportDecl)
77 import HscTypes
78 import TcRnDriver
79hunk ./compiler/main/InteractiveEval.hs 46
80-import RnNames         ( gresFromAvails )
81+import TcRnMonad (initTc)
82+import RnNames         (gresFromAvails, rnImports)
83 import InstEnv
84 import Type
85 import TcType          hiding( typeKind )
86hunk ./compiler/main/InteractiveEval.hs 56
87 import Name             hiding ( varName )
88 import NameSet
89 import RdrName
90+import PrelNames (pRELUDE)
91 import VarSet
92 import VarEnv
93 import ByteCodeInstr
94hunk ./compiler/main/InteractiveEval.hs 80
95 
96 import System.Directory
97 import Data.Dynamic
98-import Data.List (find)
99+import Data.List (find, partition)
100 import Control.Monad
101 import Foreign
102 import Foreign.C
103hunk ./compiler/main/InteractiveEval.hs 257
104 
105   gbracket set_cwd reset_cwd $ \_ -> m
106 
107+parseImportDecl :: GhcMonad m => String -> m (ImportDecl RdrName)
108+parseImportDecl expr = withSession $ \hsc_env -> hscImport hsc_env expr
109 
110 emptyHistory :: BoundedList History
111 emptyHistory = nilBL 50 -- keep a log of length 50
112hunk ./compiler/main/InteractiveEval.hs 798
113 -- we've built up in the InteractiveContext simply move to the new
114 -- module.  They always shadow anything in scope in the current context.
115 setContext :: GhcMonad m =>
116-              [Module] -- ^ entire top level scope of these modules
117-          -> [Module]  -- ^ exports only of these modules
118-          -> m ()
119-setContext toplev_mods export_mods = do
120-  hsc_env <- getSession
121-  let old_ic  = hsc_IC     hsc_env
122-      hpt     = hsc_HPT    hsc_env
123-  --
124-  export_env  <- liftIO $ mkExportEnv hsc_env export_mods
125-  toplev_envs <- liftIO $ mapM (mkTopLevEnv hpt) toplev_mods
126-  let all_env = foldr plusGlobalRdrEnv export_env toplev_envs
127-  modifySession $ \_ ->
128-      hsc_env{ hsc_IC = old_ic { ic_toplev_scope = toplev_mods,
129-                                ic_exports      = export_mods,
130-                                ic_rn_gbl_env   = all_env }}
131+        [Module]       -- ^ entire top level scope of these modules
132+        -> [(Module, Maybe (ImportDecl RdrName))]      -- ^ exports of these modules
133+        -> m ()
134+setContext toplev_mods other_mods = do
135+    hsc_env <- getSession
136+    let old_ic  = hsc_IC     hsc_env
137+        hpt     = hsc_HPT    hsc_env
138+        (decls,mods)   = partition (isJust . snd) other_mods -- time for tracing
139+        export_mods = map fst mods
140+        imprt_decls = map noLoc (catMaybes (map snd decls))
141+    --
142+    export_env  <- liftIO $ mkExportEnv hsc_env export_mods
143+    import_env  <-
144+        if null imprt_decls then return emptyGlobalRdrEnv else do
145+            let imports = rnImports imprt_decls
146+                this_mod = if null toplev_mods then pRELUDE else head toplev_mods
147+            (_, env, _,_) <-
148+                ioMsgMaybe $ liftIO $ initTc hsc_env HsSrcFile False this_mod imports
149+            return env
150+    toplev_envs <- liftIO $ mapM (mkTopLevEnv hpt) toplev_mods
151+    let all_env = foldr plusGlobalRdrEnv (plusGlobalRdrEnv export_env import_env) toplev_envs
152+    modifySession $ \_ ->
153+        hsc_env{ hsc_IC = old_ic { ic_toplev_scope = toplev_mods,
154+                        ic_exports      = other_mods,
155+                        ic_rn_gbl_env   = all_env }}
156 
157 -- Make a GlobalRdrEnv based on the exports of the modules only.
158 mkExportEnv :: HscEnv -> [Module] -> IO GlobalRdrEnv
159hunk ./compiler/main/InteractiveEval.hs 859
160 -- | Get the interactive evaluation context, consisting of a pair of the
161 -- set of modules from which we take the full top-level scope, and the set
162 -- of modules from which we take just the exports respectively.
163-getContext :: GhcMonad m => m ([Module],[Module])
164+getContext :: GhcMonad m => m ([Module],[(Module, Maybe (ImportDecl RdrName))])
165 getContext = withSession $ \HscEnv{ hsc_IC=ic } ->
166               return (ic_toplev_scope ic, ic_exports ic)
167 
168hunk ./compiler/main/InteractiveEval.hs 983
169     setContext full $
170         (mkModule
171             (stringToPackageId "base") (mkModuleName "Data.Dynamic")
172-        ):exports
173+        ,Nothing):exports
174     let stmt = "let __dynCompileExpr = Data.Dynamic.toDyn (" ++ expr ++ ")"
175     Just (ids, hvals) <- withSession (flip hscStmt stmt)
176     setContext full exports
177hunk ./compiler/typecheck/TcRnDriver.lhs 1344
178 getModuleExports hsc_env mod
179   = let
180       ic        = hsc_IC hsc_env
181-      checkMods = ic_toplev_scope ic ++ ic_exports ic
182+      checkMods = ic_toplev_scope ic ++ map fst (ic_exports ic)
183     in
184     initTc hsc_env HsSrcFile False iNTERACTIVE (tcGetModuleExports mod checkMods)
185 
186hunk ./docs/users_guide/ghci.xml 592
187 Prelude IO>
188 </screen>
189 
190-      <para>(Note: you can use <literal>import M</literal> as an
191-      alternative to <literal>:module +M</literal>, and
192+      <para>(Note: you can use conventional
193+      haskell <literal>import</literal> syntax as
194+      well, but this does not support
195+      <literal>*</literal> forms).
196       <literal>:module</literal> can also be shortened to
197hunk ./docs/users_guide/ghci.xml 597
198-      <literal>:m</literal>). The full syntax of the
199+      <literal>:m</literal>. The full syntax of the
200       <literal>:module</literal> command is:</para>
201 
202 <screen>
203hunk ./ghc/GhciMonad.hs 72
204         -- remember is here:
205         last_command   :: Maybe Command,
206         cmdqueue       :: [String],
207-        remembered_ctx :: [(CtxtCmd, [String], [String])],
208+        remembered_ctx :: [Either (CtxtCmd, [String], [String]) String],
209              -- we remember the :module commands between :loads, so that
210              -- on a :reload we can replay them.  See bugs #2049,
211              -- \#1873, #1360. Previously we tried to remember modules that
212hunk ./ghc/GhciMonad.hs 260
213                                         return GHC.RunFailed) $ do
214           GHC.runStmt expr step
215 
216+parseImportDecl :: GhcMonad m => String -> m (Maybe (GHC.ImportDecl GHC.RdrName))
217+parseImportDecl expr
218+  = GHC.handleSourceError (\e -> GHC.printExceptionAndWarnings e >> return Nothing) (Monad.liftM Just (GHC.parseImportDecl expr))
219+
220 resume :: (SrcSpan -> Bool) -> GHC.SingleStep -> GHCi GHC.RunResult
221 resume canLogSpan step = do
222   st <- getGHCiState
223hunk ./ghc/InteractiveUI.hs 36
224 import UniqFM
225 
226 import HscTypes ( handleFlagWarnings )
227+import HsImpExp
228 import qualified RdrName ( getGRE_NameQualifier_maybes ) -- should this come via GHC?
229hunk ./ghc/InteractiveUI.hs 38
230+import RdrName (RdrName)
231 import Outputable       hiding (printForUser, printForUserPartWay)
232 import Module           -- for ModuleEnv
233 import Name
234hunk ./ghc/InteractiveUI.hs 342
235 
236    -- initial context is just the Prelude
237    prel_mod <- GHC.lookupModule (GHC.mkModuleName "Prelude") Nothing
238-   GHC.setContext [] [prel_mod]
239+   GHC.setContext [] [(prel_mod, Nothing)]
240 
241    default_editor <- liftIO $ findEditor
242 
243hunk ./ghc/InteractiveUI.hs 546
244         dots | _:rs <- resumes, not (null rs) = text "... "
245              | otherwise = empty
246 
247-       
248-
249         modules_bit =
250        -- ToDo: maybe...
251        --  let (btoplevs, bexports) = fromMaybe ([],[]) (remembered_ctx st) in
252hunk ./ghc/InteractiveUI.hs 552
253        --  hsep (map (\m -> text "!*" <> ppr (GHC.moduleName m)) btoplevs) <+>
254        --  hsep (map (\m -> char '!'  <> ppr (GHC.moduleName m)) bexports) <+>
255              hsep (map (\m -> char '*'  <> ppr (GHC.moduleName m)) toplevs) <+>
256-             hsep (map (ppr . GHC.moduleName) exports)
257+             hsep (map (ppr . GHC.moduleName) (nub (map fst exports)))
258 
259         deflt_prompt = dots <> context_bit <> modules_bit
260 
261hunk ./ghc/InteractiveUI.hs 647
262 runStmt :: String -> SingleStep -> GHCi Bool
263 runStmt stmt step
264  | null (filter (not.isSpace) stmt) = return False
265- | ["import", mod] <- words stmt    = keepGoing' setContext ('+':mod)
266+ | x@('i':'m':'p':'o':'r':'t':' ':_) <- stmt    = keepGoing' (importContext True) x
267  | otherwise
268  = do
269 #if __GLASGOW_HASKELL__ >= 611
270hunk ./ghc/InteractiveUI.hs 1008
271     enqueueCommands (lines cmds)
272     return ()
273 
274+loadModuleName :: GHC.GhcMonad m => ImportDecl RdrName -> m Module
275+loadModuleName = flip GHC.findModule Nothing . unLoc . ideclName
276+
277 loadModule :: [(FilePath, Maybe Phase)] -> InputT GHCi SuccessFlag
278 loadModule fs = timeIt (loadModule' fs)
279 
280hunk ./ghc/InteractiveUI.hs 1067
281                   else LoadUpTo (GHC.mkModuleName m)
282   return ()
283 
284-doLoad :: Bool -> ([Module],[Module]) -> LoadHowMuch -> InputT GHCi SuccessFlag
285+doLoad :: Bool -> ([Module],[(Module, Maybe (ImportDecl RdrName))]) -> LoadHowMuch -> InputT GHCi SuccessFlag
286 doLoad retain_context prev_context howmuch = do
287   -- turn off breakpoints before we load: we can't turn them off later, because
288   -- the ModBreaks will have gone away.
289hunk ./ghc/InteractiveUI.hs 1076
290   afterLoad ok retain_context prev_context
291   return ok
292 
293-afterLoad :: SuccessFlag -> Bool -> ([Module],[Module]) -> InputT GHCi ()
294+afterLoad :: SuccessFlag -> Bool -> ([Module],[(Module, Maybe (ImportDecl RdrName))]) -> InputT GHCi ()
295 afterLoad ok retain_context prev_context = do
296   lift revertCAFs  -- always revert CAFs on load.
297   lift discardTickArrays
298hunk ./ghc/InteractiveUI.hs 1088
299   lift $ setContextAfterLoad prev_context retain_context loaded_mod_summaries
300 
301 
302-setContextAfterLoad :: ([Module],[Module]) -> Bool -> [GHC.ModSummary] -> GHCi ()
303+setContextAfterLoad :: ([Module],[(Module, Maybe (ImportDecl RdrName))]) -> Bool -> [GHC.ModSummary] -> GHCi ()
304 setContextAfterLoad prev keep_ctxt [] = do
305   prel_mod <- getPrelude
306hunk ./ghc/InteractiveUI.hs 1091
307-  setContextKeepingPackageModules prev keep_ctxt ([], [prel_mod])
308+  setContextKeepingPackageModules prev keep_ctxt ([], [(prel_mod, Nothing)])
309 setContextAfterLoad prev keep_ctxt ms = do
310   -- load a target if one is available, otherwise load the topmost module.
311   targets <- GHC.getTargets
312hunk ./ghc/InteractiveUI.hs 1119
313        if b then setContextKeepingPackageModules prev keep_ctxt ([m], [])
314                     else do
315                 prel_mod <- getPrelude
316-                setContextKeepingPackageModules prev keep_ctxt ([],[prel_mod,m])
317+                setContextKeepingPackageModules prev keep_ctxt ([],[(prel_mod,Nothing),(m,Nothing)])
318 
319 -- | Keep any package modules (except Prelude) when changing the context.
320 setContextKeepingPackageModules
321hunk ./ghc/InteractiveUI.hs 1123
322-        :: ([Module],[Module])          -- previous context
323+        :: ([Module],[(Module, Maybe (ImportDecl RdrName))])          -- previous context
324         -> Bool                         -- re-execute :module commands
325hunk ./ghc/InteractiveUI.hs 1125
326-        -> ([Module],[Module])          -- new context
327+        -> ([Module],[(Module, Maybe (ImportDecl RdrName))])          -- new context
328         -> GHCi ()
329 setContextKeepingPackageModules prev_context keep_ctxt (as,bs) = do
330   let (_,bs0) = prev_context
331hunk ./ghc/InteractiveUI.hs 1130
332   prel_mod <- getPrelude
333-  let pkg_modules = filter (\p -> not (isHomeModule p) && p /= prel_mod) bs0
334-  let bs1 = if null as then nub (prel_mod : bs) else bs
335-  GHC.setContext as (nub (bs1 ++ pkg_modules))
336+  -- filter everything, not just lefts
337+  let pkg_modules = filter ((\p -> not (isHomeModule p) && p /= prel_mod) . fst) bs0
338+  let bs1 = if null as then nubBy sameFst ((prel_mod,Nothing) : bs) else bs
339+  GHC.setContext as (nubBy sameFst (bs1 ++ pkg_modules))
340   if keep_ctxt
341      then do
342           st <- getGHCiState
343hunk ./ghc/InteractiveUI.hs 1137
344-          mapM_ (playCtxtCmd False) (remembered_ctx st)
345+          let mem = remembered_ctx st
346+              playCmd (Left x) = playCtxtCmd False x
347+              playCmd (Right x) = importContext False x
348+          mapM_ playCmd mem
349      else do
350           st <- getGHCiState
351           setGHCiState st{ remembered_ctx = [] }
352hunk ./ghc/InteractiveUI.hs 1148
353 isHomeModule :: Module -> Bool
354 isHomeModule mod = GHC.modulePackageId mod == mainPackageId
355 
356+sameFst :: (Module, Maybe (ImportDecl RdrName)) -> (Module, Maybe (ImportDecl RdrName)) -> Bool
357+sameFst x y = fst x == fst y
358+
359 modulesLoadedMsg :: SuccessFlag -> [ModuleName] -> InputT GHCi ()
360 modulesLoadedMsg ok mods = do
361   dflags <- getDynFlags
362hunk ./ghc/InteractiveUI.hs 1205
363                 -- recently-added module occurs last, it seems.
364         case (as,bs) of
365           (as@(_:_), _)   -> browseModule bang (last as) True
366-          ([],  bs@(_:_)) -> browseModule bang (last bs) True
367-          ([],  [])  -> ghcError (CmdLineError ":browse: no current module")
368+          ([],  bs@(_:_)) -> browseModule bang (fst (last bs)) True
369+          ([], [])  -> ghcError (CmdLineError ":browse: no current module")
370     _ -> ghcError (CmdLineError "syntax:  :browse <module>")
371 
372 -- without bang, show items in context of their parents and omit children
373hunk ./ghc/InteractiveUI.hs 1221
374   -- just so we can get an appropriate PrintUnqualified
375   (as,bs) <- GHC.getContext
376   prel_mod <- lift getPrelude
377-  if exports_only then GHC.setContext [] [prel_mod,modl]
378+  if exports_only then GHC.setContext [] [(prel_mod,Nothing), (modl,Nothing)]
379                   else GHC.setContext [modl] []
380   target_unqual <- GHC.getPrintUnqual
381   GHC.setContext as bs
382hunk ./ghc/InteractiveUI.hs 1297
383 -----------------------------------------------------------------------------
384 -- Setting the module context
385 
386+importContext :: Bool -> String -> GHCi ()
387+importContext fail str
388+  = do
389+    (as,bs) <- GHC.getContext
390+    x <- do_checks fail
391+    case Monad.join x of
392+        Nothing -> return ()
393+        (Just a) -> do
394+            m <- loadModuleName a
395+            GHC.setContext as (bs++[(m,Just a)])
396+            st <- getGHCiState
397+            let cmds = remembered_ctx st
398+            setGHCiState st{ remembered_ctx = cmds++[Right str] }
399+  where
400+    do_checks True = liftM Just (GhciMonad.parseImportDecl str)
401+    do_checks False = trymaybe (GhciMonad.parseImportDecl str)
402+
403 setContext :: String -> GHCi ()
404 setContext str
405   | all sensible strs = do
406hunk ./ghc/InteractiveUI.hs 1319
407        playCtxtCmd True (cmd, as, bs)
408        st <- getGHCiState
409-       setGHCiState st{ remembered_ctx = remembered_ctx st ++ [(cmd,as,bs)] }
410+       let cmds = remembered_ctx st
411+       setGHCiState st{ remembered_ctx = cmds ++ [Left (cmd,as,bs)] }
412   | otherwise = ghcError (CmdLineError "syntax:  :module [+/-] [*]M1 ... [*]Mn")
413   where
414     (cmd, strs, as, bs) =
415hunk ./ghc/InteractiveUI.hs 1348
416       case cmd of
417         SetContext -> do
418           prel_mod <- getPrelude
419-          let bs'' = if null as && prel_mod `notElem` bs' then prel_mod:bs'
420+          let bs'' = if null as && prel_mod `notElem` (map fst bs') then (prel_mod,Nothing):bs'
421                                                           else bs'
422hunk ./ghc/InteractiveUI.hs 1350
423-          return (as',bs'')
424+          return (as', bs'')
425         AddModules -> do
426hunk ./ghc/InteractiveUI.hs 1352
427-          let as_to_add = as' \\ (prev_as ++ prev_bs)
428-              bs_to_add = bs' \\ (prev_as ++ prev_bs)
429-          return (prev_as ++ as_to_add, prev_bs ++ bs_to_add)
430+          -- it should replace the old stuff, not the other way around
431+          -- need deleteAllBy, not deleteFirstsBy for sameFst
432+          let remaining_as = prev_as \\ (as' ++ map fst bs')
433+              remaining_bs = deleteAllBy sameFst prev_bs (bs' ++ map contextualize as')
434+          return (remaining_as ++ as', remaining_bs ++ bs')
435         RemModules -> do
436hunk ./ghc/InteractiveUI.hs 1358
437-          let new_as = prev_as \\ (as' ++ bs')
438-              new_bs = prev_bs \\ (as' ++ bs')
439+          let new_as = prev_as \\ (as' ++ map fst bs')
440+              new_bs = deleteAllBy sameFst prev_bs (map contextualize as' ++ bs')
441           return (new_as, new_bs)
442     GHC.setContext new_as new_bs
443   where
444hunk ./ghc/InteractiveUI.hs 1366
445     do_checks True = do
446       as' <- mapM wantInterpretedModule as
447       bs' <- mapM lookupModule bs
448-      return (as',bs')
449+      return (as', map contextualize bs')
450     do_checks False = do
451       as' <- mapM (trymaybe . wantInterpretedModule) as
452       bs' <- mapM (trymaybe . lookupModule) bs
453hunk ./ghc/InteractiveUI.hs 1370
454-      return (catMaybes as', catMaybes bs')
455+      return (catMaybes as', map contextualize (catMaybes bs'))
456+    contextualize x = (x,Nothing)
457+    deleteAllBy f a b = filter (\x->(not (any (f x) b))) a
458 
459hunk ./ghc/InteractiveUI.hs 1374
460-    trymaybe m = do
461-        r <- ghciTry m
462-        case r of
463-          Left _  -> return Nothing
464-          Right a -> return (Just a)
465+trymaybe ::GHCi a -> GHCi (Maybe a)
466+trymaybe m = do
467+    r <- ghciTry m
468+    case r of
469+      Left _  -> return Nothing
470+      Right a -> return (Just a)
471 
472 ----------------------------------------------------------------------------
473 -- Code for `:set'
474}
475
476Context:
477
478[trac #1789 (warnings for missing import lists)
479amsay@amsay.net**20100618150649
480 Ignore-this: b0b0b1e048fbca0817c1e6fade1153fa
481]
482[Fix bindisttest Makefile
483Ian Lynagh <igloo@earth.li>**20100616205611
484 Ignore-this: 39cd352152422f378572fc3859c5a377
485]
486[Remove some more unused make variables
487Ian Lynagh <igloo@earth.li>**20100616180519]
488[Convert some more variable names to FOO_CMD, for consistency
489Ian Lynagh <igloo@earth.li>**20100616175916]
490[Rename some variables from FOO to FOO_CMD
491Ian Lynagh <igloo@earth.li>**20100616161108
492 This fixes a problem with commands like gzip, where if $GZIP is exported
493 in the environment, then when make runs a command it'll put the Makefile
494 variable's value in the environment. But gzip treats $GZIP as arguments
495 for itself, so when we run gzip it thinks we're giving it "gzip" as an
496 argument.
497]
498[Make the "show" target work anywhere in the build tree
499Ian Lynagh <igloo@earth.li>**20100616122910
500 Ignore-this: 299d40cbe16112accd9f14e56fa12158
501]
502[Change ghc-pwd's license to a string Cabal recognises
503Ian Lynagh <igloo@earth.li>**20100615204015
504 Ignore-this: c935b6ad7f605aab0168997a90b40fc6
505]
506[fix warning
507Simon Marlow <marlowsd@gmail.com>**20100604205933
508 Ignore-this: 2aaa4ed6a8b9ae1e39adc4696aaf14a3
509]
510[--install-signal-handles=no does not affect the timer signal (#1908)
511Simon Marlow <marlowsd@gmail.com>**20100527214627
512 Ignore-this: b0c51f1abdb159dc360662485095a11a
513]
514[Small optimisation: allocate nursery blocks contiguously
515Simon Marlow <marlowsd@gmail.com>**20100509194928
516 Ignore-this: e650e99e9ea9493d2efb245d565beef4
517 This lets automatic prefetching work better, for a tiny performance boost
518]
519[fix -fforce-recomp setting: module is PrimOp, not PrimOps
520Simon Marlow <marlowsd@gmail.com>**20100507084507
521 Ignore-this: f76e0d9b643682ec0e8fb7d91afdea68
522]
523[it should be an error to use relative directories (#4134)
524Simon Marlow <marlowsd@gmail.com>**20100615151740
525 Ignore-this: 2068021701832e018ca41b22877921d5
526]
527[missing include-dirs or library-dirs is only a warning now (#4104)
528Simon Marlow <marlowsd@gmail.com>**20100615151702
529 Ignore-this: e3114123cef147bbd28ccb64581a1afb
530]
531[fix #3822: desugaring case command in arrow notation
532Ross Paterson <ross@soi.city.ac.uk>**20100615225110
533 Ignore-this: 477d6c460b4174b94b4cd113fa5b9d19
534 
535 Get the set of free variables from the generated case expression:
536 includes variables in the guards and decls that were missed before,
537 and is also a bit simpler.
538]
539[Deprecate the -fvia-C flag; trac #3232
540Ian Lynagh <igloo@earth.li>**20100615151836
541 Ignore-this: c2452b2648bf7e44546465c1b964fce
542]
543[Avoid using the new ~~ perl operator in the mangler
544Ian Lynagh <igloo@earth.li>**20100615151236
545 Ignore-this: 709a7ba4e514b1596841b3ba7e5c6cc
546]
547[stmAddInvariantToCheck: add missing init of invariant->lock (#4057)
548Simon Marlow <marlowsd@gmail.com>**20100615123643
549 Ignore-this: 3b132547fa934cecf71a846db2a5f70e
550]
551[Add new LLVM code generator to GHC. (Version 2)
552David Terei <davidterei@gmail.com>**20100615094714
553 Ignore-this: 4dd2fe5854b64a3f0339d484fd5c238
554 
555 This was done as part of an honours thesis at UNSW, the paper describing the
556 work and results can be found at:
557 
558 http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
559 
560 A Homepage for the backend can be found at:
561 
562 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
563 
564 Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
565 are within 5% slower than the NCG and generally better than the C code
566 generator.  For some code though, such as the DPH projects benchmark, the LLVM
567 code generator outperforms the NCG and C code generator by about a 25%
568 reduction in run times.
569 
570]
571[Fix Trac #4127: build GlobalRdrEnv in GHCi correctly
572simonpj@microsoft.com**20100615070626
573 Ignore-this: d907e3bfa7882878cea0af172aaf6e84
574 
575 GHCi was building its GlobalRdrEnv wrongly, so that the
576 gre_par field was bogus.  That in turn fooled the renamer.
577 The fix is easy: use the right function!  Namely, call
578 RnNames.gresFromAvail rather than availsToNameSet.
579]
580[Comments, and improvement to pretty-printing of HsGroup
581simonpj@microsoft.com**20100615070409
582 Ignore-this: ec8358f2485370b20226a97ec84e9024
583]
584[Don't reverse bindings in rnMethodBinds (fix Trac #4126)
585simonpj@microsoft.com**20100614163935
586 Ignore-this: a6ffbb5af6f51b142ed0aeae8ee5e3a9
587]
588[Fix Trac #4120: generate a proper coercion when unifying forall types
589simonpj@microsoft.com**20100614134311
590 Ignore-this: 601592bb505305f1954cbe730f168da4
591 
592 This was just a blatant omission, which hasn't come up before.
593 Easily fixed, happily.
594]
595[Use mkFunTy to ensure that invariants are respected
596simonpj@microsoft.com**20100614134159
597 Ignore-this: 67dcada7a4e8d9927581cd77af71b6f
598]
599[Remove redundant debug code
600simonpj@microsoft.com**20100601154151
601 Ignore-this: e6ff11c04c631cf6aac73788cbcf02b5
602]
603[Fix Trac #4099: better error message for type functions
604simonpj@microsoft.com**20100531140413
605 Ignore-this: 3f53ca98cf770577818b9c0937482577
606 
607 Now we only want about "T is a type function and might not be
608 injective" when matchin (T x) against (T y), which is the case
609 that is really confusing.
610]
611[Gruesome fix in CorePrep to fix embarassing Trac #4121
612simonpj@microsoft.com**20100614132726
613 Ignore-this: fe82d15474afaac3e6133adfd7a7e055
614 
615 This is a long-lurking bug that has been flushed into
616 the open by other arity-related changes.  There's a
617 long comment
618 
619      Note [CafInfo and floating]
620 
621 to explain. 
622 
623 I really hate the contortions we have to do through to keep correct
624 CafRef information on top-level binders.  The Right Thing, I believe,
625 is to compute CAF and arity information later, and merge it into the
626 interface-file information when the latter is generated.
627 
628 But for now, this hackily fixes the problem.
629]
630[Fix a bug in CorePrep that meant output invariants not satisfied
631simonpj@microsoft.com**20100531150013
632 Ignore-this: d34eb36d8877d3caf1cf2b20de426abd
633 
634 In cpePair I did things in the wrong order so that something that
635 should have been a CprRhs wasn't.  Result: a crash in CoreToStg.
636 Fix is easy, and I added more informative type signatures too.
637]
638[Robustify the treatement of DFunUnfolding
639simonpj@microsoft.com**20100531145332
640 Ignore-this: 8f5506ada4d89f6ab8ad1e8c3ffb09ba
641 
642 See Note [DFun unfoldings] in CoreSyn.  The issue here is that
643 you can't tell how many dictionary arguments a DFun needs just
644 from looking at the Arity of the DFun Id: if the dictionary is
645 represented by a newtype the arity might include the dictionary
646 and value arguments of the (single) method.
647 
648 So we need to record the number of arguments need by the DFun
649 in the DFunUnfolding itself.  Details in
650    Note [DFun unfoldings] in CoreSyn
651]
652[Fix spelling in comment
653simonpj@microsoft.com**20100614132259
654 Ignore-this: bbf0d55f2e5f10ef9c74592c12f9201c
655]
656[Update docs on view patterns
657simonpj@microsoft.com**20100614074801
658 Ignore-this: 8617b9078800d4942d71f142a5b6c831
659]
660[Fix printing of splices; part of #4124
661Ian Lynagh <igloo@earth.li>**20100613154838
662 Just putting parens around non-atomic expressions isn't sufficient
663 for splices, as only the $x and $(e) forms are valid input.
664]
665[In ghci, catch IO exceptions when calling canonicalizePath
666Ian Lynagh <igloo@earth.li>**20100613134627
667 We now get an exception if the path doesn't exist
668]
669[Whitespace only
670Ian Lynagh <igloo@earth.li>**20100612213119]
671[Whitespace only
672Ian Lynagh <igloo@earth.li>**20100612165450]
673[Update ghci example output in user guide; patch from YitzGale in #4111
674Ian Lynagh <igloo@earth.li>**20100612162250]
675[Fix #4131 missing UNTAG_CLOSURE in messageBlackHole()
676benl@ouroborus.net**20100611044614]
677[messageBlackHole: fix deadlock bug caused by a missing 'volatile'
678Simon Marlow <marlowsd@gmail.com>**20100610080636
679 Ignore-this: 3cda3054bb45408aa9bd2d794b69c938
680]
681[Pass --no-tmp-comp-dir to Haddock (see comment)
682Simon Marlow <marlowsd@gmail.com>**20100604083214
683 Ignore-this: bfa4d74038637bd149f4d878b4eb8a87
684]
685[Track changes to DPH libs
686Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607052903
687 Ignore-this: 4dbc3f8418af3e74b3fc4f9a9dfe7764
688]
689[Track changes to DPH libs
690Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607012642
691 Ignore-this: 5d4e498171a3c57ab02621bfaea82cff
692]
693[In ghc-pkg, send warnings to stderr
694Ian Lynagh <igloo@earth.li>**20100606161726
695 Ignore-this: 56927d13b5e1c1ce2752734f0f9b665b
696]
697[Re-add newlines to enable layout for multi-line input.
698Ian Lynagh <igloo@earth.li>**20100602180737
699 Patch from Adam Vogt <vogt.adam@gmail.com>
700 Partial fix for #3984
701]
702[Don't use unnecessary parens when printing types (Fix Trac 4107)
703simonpj@microsoft.com**20100604110143
704 Ignore-this: a833714ab13013c4345b222f4e87db1d
705 
706    f :: Eq a => a -> a
707 rather than
708    f :: (Eq a) => a -> a
709]
710[Track DPH library changes
711Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100604005728
712 Ignore-this: 32bc2fbea6ad975e89545d4c42fd7c30
713]
714[fix --source-entity option passed to Haddock: we needed to escape a #
715Simon Marlow <marlowsd@gmail.com>**20100603125459
716 Ignore-this: d52ae6188b510c482bcebb23f0e553ae
717]
718[__stg_EAGER_BLACKHOLE_INFO -> __stg_EAGER_BLACKHOLE_info (#4106)
719Simon Marlow <marlowsd@gmail.com>**20100602091419
720 Ignore-this: 293315ac8f86fd366b8d61992ecc7961
721]
722[Add xhtml package (a new dependency of Haddock; not installed/shipped)
723Simon Marlow <marlowsd@gmail.com>**20100602090101
724 Ignore-this: af0ac8b91abe98f7fdb624ea0a4dee20
725]
726[Use UserInterrupt rather than our own Interrupted exception (#4100)
727Simon Marlow <marlowsd@gmail.com>**20100602082345
728 Ignore-this: 1909acf2f452593138b9f85024711714
729]
730[Add the global package DB to ghc --info (#4103)
731Simon Marlow <marlowsd@gmail.com>**20100602082233
732 Ignore-this: fd5c0e207e70eb0f62606c45dc5b8124
733]
734[rts/sm/GC.c: resize_generations(): Remove unneeded check of number of generations.
735Marco Túlio Gontijo e Silva <marcot@debian.org>**20100528115612
736 Ignore-this: 6f1bea62917c01c7adac636146132c97
737 
738 This "if" is inside another "if" which checks for RtsFlags.GcFlags.generations
739 > 1, so testing this again is redundant, assuming the number of generations
740 won't change during program execution.
741]
742[rts/sm/BlockAlloc.c: Small comment correction.
743Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205839
744 Ignore-this: bd2fcd4597cc872d80b0e2eeb1c3998a
745]
746[rts/sm/GC.c: Annotate constants.
747Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205707
748 Ignore-this: f232edb89383564d759ed890a18f602f
749]
750[includes/rts/storage/GC.h: generation_: n_words: Improve comment.
751Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526204615
752 Ignore-this: f5d5feefa8f7b552303978f1804fea23
753]
754[Add PPC_RELOC_LOCAL_SECTDIFF support; patch from PHO in #3654
755Ian Lynagh <igloo@earth.li>**20100601204211
756 Ignore-this: 51293b7041cdce3ce7619ef11cf7ceb
757]
758[powerpc-apple-darwin now supports shared libs
759Ian Lynagh <igloo@earth.li>**20100601173325]
760[PIC support for PowerPC
761pho@cielonegro.org**20100508143900
762 Ignore-this: 3673859a305398c4acae3f4d7c997615
763 
764 PPC.CodeGen.getRegister was not properly handling PicBaseReg.
765 It seems working with this patch, but I'm not sure this change is correct.
766]
767[Vectoriser: only treat a function as scalar if it actually computes something
768Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100601045630
769 Ignore-this: e5d99a6ddb62052e3520094a5af47552
770]
771[Add a release notes file for 6.14.1
772Ian Lynagh <igloo@earth.li>**20100530171117
773 Ignore-this: 1941e6d3d1f4051b69ca2f17a1cf84d6
774]
775[Check dblatex actually creates the files we tell it to
776Ian Lynagh <igloo@earth.li>**20100530171043
777 Ignore-this: ccc72caea2313be05cbac59bb54c0603
778 If it fails, it still exits successfully.
779]
780[Add darwin to the list of OSes for which we use mmap
781Ian Lynagh <igloo@earth.li>**20100529145016
782 Ignore-this: a86d12a3334aaaafc86f7af9dbb0a7ae
783 Patch from Barney Stratford
784]
785[Simplify the CPP logic in rts/Linker.c
786Ian Lynagh <igloo@earth.li>**20100529144929
787 Ignore-this: 1288f5b752cc1ab8b1c90cfd0ecfdf68
788]
789[Fix validate on OS X
790Ian Lynagh <igloo@earth.li>**20100529154726]
791[OS X x86_64 fix from Barney Stratford
792Ian Lynagh <igloo@earth.li>**20100529122440]
793[OS X 64 installer fixes from Barney Stratford
794Ian Lynagh <igloo@earth.li>**20100528234935]
795[fix warning
796Simon Marlow <marlowsd@gmail.com>**20100525155812
797 Ignore-this: f34eee3fe3d89579fd8d381c91ced750
798]
799[Fix doc bugs (#4071)
800Simon Marlow <marlowsd@gmail.com>**20100525155728
801 Ignore-this: aa25be196de567de360075022a1942f7
802]
803[Make sparks into weak pointers (#2185)
804Simon Marlow <marlowsd@gmail.com>**20100525150435
805 Ignore-this: feea0bb5006007b82c932bc3006124d7
806 The new strategies library (parallel-2.0+, preferably 2.2+) is now
807 required for parallel programming, otherwise parallelism will be lost.
808]
809[If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
810Simon Marlow <marlowsd@gmail.com>**20100525085301
811 Ignore-this: 78b740337aa460915c812cbbcdae5321
812]
813[Another attempt to get these #defines right
814Simon Marlow <marlowsd@gmail.com>**20100525154313
815 Ignore-this: 460ca0c47d81cd25eae6542114f67899
816 Apparently on Solaris it is an error to omit _ISOC99_SOURCE when using
817 _POSIX_C_SOURCE==200112L.
818]
819[Add configure flags for the location of GMP includes/library; fixes #4022
820Ian Lynagh <igloo@earth.li>**20100525221616
821 Ignore-this: fc3060caf995d07274ec975eeefbdf3e
822]
823[Refactor pretty printing of TyThings to fix Trac #4015
824simonpj@microsoft.com**20100525153126
825 Ignore-this: 8f15053b7554f62caa84201d2e4976d2
826]
827[When haddocking, we need the dependencies to have been built
828Ian Lynagh <igloo@earth.li>**20100525145830
829 as haddock loads the .hi files with the GHC API.
830]
831[Fix profiling output; spotted by jlouis
832Ian Lynagh <igloo@earth.li>**20100525111217
833 We were outputing the number of words allocated in a column titled "bytes".
834]
835[Improve printing of TyThings; fixes Trac #4087
836simonpj@microsoft.com**20100525114045
837 Ignore-this: da2a757a533454bba80b9b77cc5a771
838]
839[Spelling in comments
840simonpj@microsoft.com**20100525114001
841 Ignore-this: 270f3da655e526cf04e27db7a01e29c0
842]
843[Refactor (again) the handling of default methods
844simonpj@microsoft.com**20100525113910
845 Ignore-this: 6686f6cdb878d57abf6b49fec64fcbb1
846 
847 This patch fixes Trac #4056, by
848 
849  a) tidying up the treatment of default method names
850  b) removing the 'module' argument to newTopSrcBinder
851 
852 The details aren't that interesting, but the result
853 is much tidier. The original bug was a 'nameModule' panic,
854 caused by trying to find the module of a top-level name.
855 But TH quotes generate Internal top-level names that don't
856 have a module, and that is generally a good thing. 
857 
858 Fixing that in turn led to the default-method refactoring,
859 which also makes the Name for a default method be handled
860 in the same way as other derived names, generated in BuildTyCl
861 via a call newImplicitBinder.  Hurrah.
862]
863[Don't do SpecConstr on NOINLINE things (Trac #4064)
864simonpj@microsoft.com**20100525112807
865 Ignore-this: 452be0a2cef0042fb67275c2827b5f72
866 
867 Since the RULE from specialising gets the same Activation as
868 the inlining for the Id itself there's no point in specialising
869 a NOINLINE thing, because the rule will be permanently switched
870 off.
871 
872 See Note [Transfer activation] in SpecConstr
873 and Note [Auto-specialisation and RULES] in Specialise.
874]
875[Change our #defines to work on FreeBSD too
876Simon Marlow <marlowsd@gmail.com>**20100524105828
877 Ignore-this: b23ede46211e67859206c0ec57d6a86f
878 With glibc, things like _POSIX_C_SOURCE and _ISOC99_SOURCE are
879 additive, but on FreeBSD they are mutually exclusive.  However, it
880 turns out we only need to define _POSIX_C_SOURCE and _XOPEN_SOURCE to
881 get all the C99 stuff we need too, so there's no need for any #ifdefs.
882 
883 Submitted by: Gabor PALI <pgj@FreeBSD.org>
884]
885[Add a missing UNTAG_CLOSURE, causing bus errors on Sparc
886Simon Marlow <marlowsd@gmail.com>**20100524105547
887 Ignore-this: a590b5391d6f05d50c8c088456c3c166
888 We just about got away with this on x86 which isn't
889 alignment-sensitive.  The result of the memory load is compared
890 against a few different values, but there is a fallback case that
891 happened to be the right thing when the pointer was tagged.  A good
892 bug to find, nonetheless.
893]
894[Add wiki links
895Simon Marlow <marlowsd@gmail.com>**20100520095953
896 Ignore-this: c22f126cde166e6207922b2eb51d29e3
897]
898[the 'stage=0' trick to disable all compiler builds stopped working; fix it
899Simon Marlow <marlowsd@gmail.com>**20100520104455
900 Ignore-this: bb6fae9056471612c8dbf06916188c33
901]
902[Comments and formatting only
903benl@ouroborus.net**20100524014021
904 Ignore-this: 64579c38154728b632e358bec751cc0b
905]
906[Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
907Ian Lynagh <igloo@earth.li>**20100522225048]
908[Correct install-name for dynamic Darwin rts
909pho@cielonegro.org**20100508151155
910 Ignore-this: 6d31716c8c113dcb46e9cb925c4201df
911]
912[Fix the RTS debug_p build
913Ian Lynagh <igloo@earth.li>**20100522163127]
914[Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
915Ian Lynagh <igloo@earth.li>**20100521165005
916 With gcc 4.4 we get
917     Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
918 when running gcc with the -g flag. To work around this we unset
919 CFLAGS when running the test.
920]
921[Don't run "set -o igncr" before configuring libffi
922Ian Lynagh <igloo@earth.li>**20100520162918
923 Ignore-this: 489fa94df23f2adf4ff63c8ede2c0794
924 It used to make the build work on cygwin, but now it breaks it instead:
925     config.status: creating include/Makefile
926     gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
927     gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
928     config.status: error: could not create include/Makefile
929     make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
930     make[1]: *** [all] Error 2
931]
932[Stop passing -Wl,-macosx_version_min to gcc
933Ian Lynagh <igloo@earth.li>**20100520154003
934 Fixes a build failure on OS X 10.6. When linking
935     rts/dist/build/libHSrts-ghc6.13.20100519.dylib
936 we got
937     ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)
938     collect2: ld returned 1 exit status
939]
940[Fix build on FreeBSD; patch from Gabor PALI
941Ian Lynagh <igloo@earth.li>**20100519140552]
942[Fix package shadowing order (#4072)
943Simon Marlow <marlowsd@gmail.com>**20100519104617
944 Ignore-this: 26ea5e4bb5dff18618b807a54c7d6ebb
945 
946 Later packages are supposed to shadow earlier ones in the stack,
947 unless the ordering is overriden with -package-id flags.
948 Unfortunately an earlier fix for something else had sorted the list of
949 packages so that it was in lexicographic order by installedPackageId,
950 and sadly our test (cabal/shadow) didn't pick this up because the
951 lexicographic ordering happened to work for the test.  I've now fixed
952 the test so it tries both orderings.
953]
954[Set more env variables when configuring libffi
955Ian Lynagh <igloo@earth.li>**20100518185014
956 We now tell it where to find ld, nm and ar
957]
958[Set the location of ar to be the in-tree ar on Windows
959Ian Lynagh <igloo@earth.li>**20100518181556]
960[Change another / to </> to avoid building paths containing \/
961Ian Lynagh <igloo@earth.li>**20100518172015
962 This will hopefully fix #2889.
963]
964[Fix #4074 (I hope).
965Simon Marlow <marlowsd@gmail.com>**20100518113214
966 Ignore-this: 73cd70f5bc6f5add5247b61985c03fc1
967 
968 1. allow multiple threads to call startTimer()/stopTimer() pairs
969 2. disable the timer around fork() in forkProcess()
970 
971 A corresponding change to the process package is required.
972]
973[we don't have a gcc-lib in LIB_DIR any more
974Simon Marlow <marlowsd@gmail.com>**20100401102351
975 Ignore-this: f41acd2d8f8e6763aa8bd57a0b44a7e4
976]
977[In validate, use gmake if available; based on a patch from Gabor PALI
978Ian Lynagh <igloo@earth.li>**20100517200654]
979[Remove duplicate "./configure --help" output; fixes #4075
980Ian Lynagh <igloo@earth.li>**20100516141206]
981[Update various 'sh boot's to 'perl boot'
982Ian Lynagh <igloo@earth.li>**20100516122609
983 Spotted by Marco Túlio Gontijo e Silva
984]
985[add missing initialisation for eventBufMutex
986Simon Marlow <marlowsd@gmail.com>**20100514094943
987 Ignore-this: 7f75594a8cb54fbec5aebd46bb959f45
988]
989[Undo part of #4003 patch
990Simon Marlow <marlowsd@gmail.com>**20100513142017
991 Ignore-this: cb65db86a38a7e5ccee9f779e489d104
992 We still need the workaround for when compiling HEAD with 6.12.2
993 
994]
995[Fix makefile loop (#4050)
996pho@cielonegro.org**20100507140707
997 Ignore-this: 3a1cb13d0600977e74d17ac26cbef83d
998 
999 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.
1000]
1001[fix !TABLES_NEXT_TO_CODE
1002Simon Marlow <marlowsd@gmail.com>**20100510151934
1003 Ignore-this: fccb859b114bef1c3122c98e60af51
1004]
1005[looksLikeModuleName: allow apostrophe in module names (#4051)
1006Simon Marlow <marlowsd@gmail.com>**20100510094741
1007 Ignore-this: df9348f3ba90608bec57257b47672985
1008]
1009[add the proper library dependencies for GhcProfiled=YES
1010Simon Marlow <marlowsd@gmail.com>**20100506122118
1011 Ignore-this: 6236993aa308ab5b5e1e5ea5f65982a
1012]
1013[Fix Trac #4003: fix the knot-tying in checkHiBootIface
1014simonpj@microsoft.com**20100511075026
1015 Ignore-this: a9ce2a318386fdc8782848df84592002
1016 
1017 I had incorrectly "optimised" checkHiBootIface so that it forgot
1018 to update the "knot-tied" type environment.
1019 
1020 This patch fixes the HEAD
1021]
1022[Re-engineer the derived Ord instance generation code (fix Trac #4019)
1023simonpj@microsoft.com**20100510133333
1024 Ignore-this: 8fe46e4dad27fbee211a7928acf372c2
1025   
1026 As well as fixing #4019, I rejigged the way that Ord instances are
1027 generated, which should make them faster in general.  See the
1028 Note [Generating Ord instances].
1029 
1030 I tried to measure the performance difference from this change, but
1031 the #4019 fix only removes one conditional branch per iteration, and
1032 I couldn't measure a consistent improvement.  But still, tihs is
1033 better than before.
1034]
1035[Make arity of INLINE things consistent
1036simonpj@microsoft.com**20100510133005
1037 Ignore-this: 15e7abf803d1dcb3f4ca760d2d939d0d
1038 
1039 We eta-expand things with INLINE pragmas;
1040 see Note [Eta-expanding INLINE things].
1041 
1042 But I eta-expanded it the wrong amount when the function
1043 was overloaded.  Ooops.
1044]
1045[Compacting GC fix, we forgot to thread the new bq field of StgTSO.
1046Simon Marlow <marlowsd@gmail.com>**20100510082325
1047 Ignore-this: a079c8446e2ad53efff6fd95d0f3ac80
1048]
1049[Add version constraints for the boot packages; fixes trac #3852
1050Ian Lynagh <igloo@earth.li>**20100509175051
1051 When using the bootstrapping compiler, we now explicitly constrain
1052 the version of boot packages (Cabal, extensible-exceptions, etc) to the
1053 in-tree version, so that the build system is less fragile should the
1054 user have a newer version installed for the bootstrapping compiler.
1055]
1056[Don't include inter-package dependencies when compiling with stage 0; #4031
1057Ian Lynagh <igloo@earth.li>**20100509130511
1058 This fixes a problem when building with GHC 6.12 on Windows, where
1059 dependencies on stage 0 (bootstrapping compiler) packages have absolute
1060 paths c:/ghc/..., and make gets confused by the colon.
1061]
1062[Add a ghc.mk for bindisttest/
1063Ian Lynagh <igloo@earth.li>**20100508223911]
1064[Move some make variables around so they are available when cleaning
1065Ian Lynagh <igloo@earth.li>**20100508212405]
1066[Optimise checkremove a bit
1067Ian Lynagh <igloo@earth.li>**20100508202006]
1068[Improve the bindisttest Makefile
1069Ian Lynagh <igloo@earth.li>**20100508195450]
1070[Add tools to test that cleaning works properly
1071Ian Lynagh <igloo@earth.li>**20100508194105]
1072[Tweak the ghc-pkg finding code
1073Ian Lynagh <igloo@earth.li>**20100508125815
1074 It now understand the ghc-stage[123] names we use in-tree, and it won't
1075 go looking for any old ghc-pkg if it can't find the one that matches
1076 ghc.
1077]
1078[Add a way to show what cleaning would be done, without actually doing it
1079Ian Lynagh <igloo@earth.li>**20100508122438]
1080[Tidy up the "rm" flags in the build system
1081Ian Lynagh <igloo@earth.li>**20100508115745]
1082[Fix crash in nested callbacks (#4038)
1083Simon Marlow <marlowsd@gmail.com>**20100507093222
1084 Ignore-this: cade85e361534ce711865a4820276388
1085 Broken by "Split part of the Task struct into a separate struct
1086 InCall".
1087]
1088[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
1089Simon Marlow <marlowsd@gmail.com>**20100428205241
1090 Ignore-this: 1db8bccf92099785ecac39aebd27c92d
1091 Default currently NO.
1092 
1093 Validate passed with GhcDynamic=YES on x86/Linux here.
1094 
1095 The compiler is currently slower on x86 when linked -dynamic,
1096 because the GC inner loop has been adversely affected by -fPIC, I'm
1097 looking into how to fix it.
1098]
1099[omit "dyn" from the way appended to the __stginit label
1100Simon Marlow <marlowsd@gmail.com>**20100428204914
1101 Ignore-this: 14183f3defa9f2bde68fda6729b740bc
1102 When GHCi is linked dynamically, we still want to be able to load
1103 non-dynamic object files.
1104]
1105[improvements to findPtr(), a neat hack for browsing the heap in gdb
1106Simon Marlow <marlowsd@gmail.com>**20100506115427
1107 Ignore-this: ac57785bb3e13b97a5945f753f068738
1108]
1109[Fix +RTS -G1
1110Simon Marlow <marlowsd@gmail.com>**20100506110739
1111 Ignore-this: 86a5de39a94d3331a4ee1213f82be497
1112]
1113[Enable the "redundant specialise pragmas" warning; fixes trac #3855
1114Ian Lynagh <igloo@earth.li>**20100506175351]
1115[Find the correct external ids when there's a wrapper
1116simonpj@microsoft.com**20100506164135
1117 Ignore-this: 636266407b174b05b2b8646cc73062c0
1118 
1119 We were failing to externalise the wrapper id for a function
1120 that had one.
1121]
1122[Add a comment about pattern coercions
1123simonpj@microsoft.com**20100506164027
1124 Ignore-this: 17428089f3df439f65d892e23e8ed61a
1125]
1126[Comments only
1127simonpj@microsoft.com**20100506163829
1128 Ignore-this: 169167b6463873ab173cc5750c5be469
1129]
1130[Make a missing name in mkUsageInfo into a panic
1131simonpj@microsoft.com**20100506163813
1132 Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
1133 
1134 We really want to know about this!
1135]
1136[Refactoring of hsXxxBinders
1137simonpj@microsoft.com**20100506163737
1138 Ignore-this: 97c6667625262b160f9746f7bea1c980
1139 
1140 This patch moves various functions that extract the binders
1141 from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
1142 them consistent names.
1143]
1144[Fix Trac #3966: warn about useless UNPACK pragmas
1145simonpj@microsoft.com**20100506163337
1146 Ignore-this: 5beb24b686eda6113b614dfac8490df1
1147 
1148 Warning about useless UNPACK pragmas wasn't as easy as I thought.
1149 I did quite a bit of refactoring, which improved the code by refining
1150 the types somewhat.  In particular notice that in DataCon, we have
1151 
1152     dcStrictMarks   :: [HsBang]
1153     dcRepStrictness :: [StrictnessMarks]
1154 
1155 The former relates to the *source-code* annotation, the latter to
1156 GHC's representation choice.
1157]
1158[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
1159simonpj@microsoft.com**20100506162719
1160 Ignore-this: d000bca15b0e127e297378ded1bfb81b
1161 
1162 The tcg_dus field used to contain *uses* of type and class decls,
1163 but not *defs*.  That was inconsistent, and it really went wrong
1164 for Template Haskell bracket.  What happened was that
1165  foo = [d| data A = A
1166                   f :: A -> A
1167                   f x = x |]
1168 would find a "use" of A when processing the top level of the module,
1169 which in turn led to a mkUsageInfo panic in MkIface.  The cause was
1170 the fact that the tcg_dus for the nested quote didn't have defs for
1171 A.
1172]
1173[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
1174simonpj@microsoft.com**20100506161523
1175 Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
1176 
1177 The issue here is that
1178 
1179     g :: A -> A
1180     f
1181     data A = A
1182 
1183 is treated as if you'd written $(f); that is the call of
1184 f is a top-level Template Haskell splice.  This patch
1185 makes sure that we *first* check the -XTemplateHaskellFlag
1186 and bleat about a parse error if it's off.  Othewise we
1187 get strange seeing "A is out of scope" errors.
1188]
1189[Change an assert to a warn
1190simonpj@microsoft.com**20100506161111
1191 Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
1192 
1193 This is in the constraint simplifier which I'm about
1194 to rewrite, so I'm hoping the assert isn't fatal!
1195]
1196[Tidy up debug print a little
1197simonpj@microsoft.com**20100506161027
1198 Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
1199]
1200[Remove useless UNPACK pragmas
1201simonpj@microsoft.com**20100506161012
1202 Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
1203]
1204[Add WARNM2 macro, plus some refactoring
1205simonpj@microsoft.com**20100506160808
1206 Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
1207]
1208[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
1209simonpj@microsoft.com**20100506160750
1210 Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
1211]
1212[Fix Trac #3966: warn about unused UNPACK pragmas
1213simonpj@microsoft.com**20100409201812
1214 Ignore-this: c96412596b39c918b5fb9b3c39ce2119
1215]
1216[Fix Trac #3953: fail earlier when using a bogus quasiquoter
1217simonpj@microsoft.com**20100409201748
1218 Ignore-this: ef48e39aa932caed538643985234f043
1219]
1220[Fix Trac #3965: tighten conditions when deriving Data
1221simonpj@microsoft.com**20100409184420
1222 Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
1223 
1224 It's tricky to set up the context for a Data instance.  I got it wrong
1225 once, and fixed it -- hence the "extra_constraints" in
1226 TcDeriv.inferConstraints. 
1227 
1228 But it still wasn't right!  The tricky bit is that dataCast1 is only
1229 generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
1230 the code in TcGenDeriv for dataCastX.
1231]
1232[Fix Trac #3964: view patterns in DsArrows
1233simonpj@microsoft.com**20100409165557
1234 Ignore-this: d823c182831d5e2e592e995b16180e2f
1235 
1236 Just a missing case; I've eliminated the catch-all so
1237 that we get a warning next time we extend HsPat
1238]
1239[Fix Trac #3955: renamer and type variables
1240simonpj@microsoft.com**20100409163710
1241 Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
1242 
1243 The renamer wasn't computing the free variables of a type declaration
1244 properly.  This patch refactors a bit, and makes it more robust,
1245 fixing #3955 and several other closely-related bugs.  (We were
1246 omitting some free variables and that could just possibly lead to a
1247 usage-version tracking error.
1248]
1249[Layout only
1250simonpj@microsoft.com**20100409163506
1251 Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
1252]
1253[Give a better deprecated message for INCLUDE pragmas; fixes #3933
1254Ian Lynagh <igloo@earth.li>**20100506130910
1255 We now have a DeprecatedFullText constructor, so we can override the
1256 "-#include is deprecated: " part of the warning.
1257]
1258[De-haddock a comment that confuses haddock
1259Ian Lynagh <igloo@earth.li>**20100506123607]
1260[Fix comment to not confuse haddock
1261Ian Lynagh <igloo@earth.li>**20100506113642]
1262[Detect EOF when trying to parse a string in hp2ps
1263Ian Lynagh <igloo@earth.li>**20100506000830]
1264[Make the demand analyser sdd demands for strict constructors
1265simonpj@microsoft.com**20100505200936
1266 Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
1267 
1268 This opportunity was spotted by Roman, and is documented in
1269 Note [Add demands for strict constructors] in DmdAnal.
1270]
1271[Fix interaction of exprIsCheap and the lone-variable inlining check
1272simonpj@microsoft.com**20100505200723
1273 Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
1274 
1275 See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
1276 
1277 This buglet meant that a nullary definition with an INLINE pragma
1278 counter-intuitively didn't get inlined at all.  Roman identified
1279 the bug.
1280]
1281[Matching cases in SpecConstr and Rules
1282simonpj@microsoft.com**20100505200543
1283 Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
1284 
1285 This patch has zero effect.  It includes comments,
1286 a bit of refactoring, and a tiny bit of commment-out
1287 code go implement the "matching cases" idea below.
1288 
1289 In the end I've left it disabled because while I think
1290 it does no harm I don't think it'll do any good either.
1291 But I didn't want to lose the idea totally. There's
1292 a thread called "Storable and constant memory" on
1293 the libraries@haskell.org list (Apr 2010) about it.
1294 
1295 Note [Matching cases]
1296 ~~~~~~~~~~~~~~~~~~~~~
1297 {- NOTE: This idea is currently disabled.  It really only works if
1298          the primops involved are OkForSpeculation, and, since
1299         they have side effects readIntOfAddr and touch are not.
1300         Maybe we'll get back to this later .  -}
1301   
1302 Consider
1303    f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
1304       case touch# fp s# of { _ ->
1305       I# n# } } )
1306 This happened in a tight loop generated by stream fusion that
1307 Roman encountered.  We'd like to treat this just like the let
1308 case, because the primops concerned are ok-for-speculation.
1309 That is, we'd like to behave as if it had been
1310    case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
1311    case touch# fp s# of { _ ->
1312    f (I# n# } } )
1313]
1314[Comments only
1315simonpj@microsoft.com**20100504163629
1316 Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
1317]
1318[Comments only
1319simonpj@microsoft.com**20100504163529
1320 Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
1321]
1322[Comments only
1323simonpj@microsoft.com**20100504163457
1324 Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
1325]
1326[Comments only (about type families)
1327simonpj@microsoft.com**20100417145032
1328 Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
1329]
1330[Fix hp2ps when the .hp file has large string literals
1331Ian Lynagh <igloo@earth.li>**20100505191921]
1332[In build system, call package-config after including package data
1333Ian Lynagh <igloo@earth.li>**20100504225035
1334 Otherwise the $1_$2_HC_OPTS variable gets clobbered.
1335]
1336[runghc: flush stdout/stderr on an exception (#3890)
1337Simon Marlow <marlowsd@gmail.com>**20100505133848
1338 Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
1339]
1340[Remove the Unicode alternative for ".." (#3894)
1341Simon Marlow <marlowsd@gmail.com>**20100505121202
1342 Ignore-this: 2452cd67281667106f9169747b6d784f
1343]
1344[tidyup; no functional changes
1345Simon Marlow <marlowsd@gmail.com>**20100505115015
1346 Ignore-this: d0787e5cdeef1dee628682fa0a46019
1347]
1348[Make the running_finalizers flag task-local
1349Simon Marlow <marlowsd@gmail.com>**20100505114947
1350 Ignore-this: 345925d00f1dca203941b3c5d84c90e1
1351 Fixes a bug reported by Lennart Augustsson, whereby we could get an
1352 incorrect error from the RTS about re-entry from a finalizer,
1353]
1354[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
1355Simon Marlow <marlowsd@gmail.com>**20100505114746
1356 Ignore-this: efea04991d6feed04683a42232fc85da
1357]
1358[Allow filepath-1.2.*
1359Simon Marlow <marlowsd@gmail.com>**20100505101139
1360 Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
1361]
1362[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
1363Simon Marlow <marlowsd@gmail.com>**20100505094534
1364 Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
1365]
1366[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
1367Simon Marlow <marlowsd@gmail.com>**20100505094506
1368 Ignore-this: 302616931f61667030d77ddfbb02374e
1369]
1370[Fix build with GHC 6.10
1371Ian Lynagh <igloo@earth.li>**20100504180302
1372 In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
1373 so we need to jump through some hoops to get the more general type.
1374]
1375[The libffi patches are no longer needed
1376Ian Lynagh <igloo@earth.li>**20100504171603]
1377[Use the in-tree windres; fixes trac #4032
1378Ian Lynagh <igloo@earth.li>**20100504170941]
1379[Print unfoldings on lambda-bound variables
1380Simon PJ <simonpj@microsoft.com>**20100503181822
1381 Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
1382 
1383 ...in the unusual case where they have one;
1384 see Note [Case binders and join points] in Simplify.lhs
1385]
1386[Replace FiniteMap and UniqFM with counterparts from containers.
1387Milan Straka <fox@ucw.cz>**20100503171315
1388 Ignore-this: a021972239163dbf728284b19928cebb
1389 
1390 The original interfaces are kept. There is small performance improvement:
1391 - when compiling for five nofib, we get following speedups:
1392     Average                -----           -2.5%
1393     Average                -----           -0.6%
1394     Average                -----           -0.5%
1395     Average                -----           -5.5%
1396     Average                -----          -10.3%
1397 - when compiling HPC ten times, we get:
1398     switches                          oldmaps   newmaps
1399     -O -fasm                          117.402s  116.081s (98.87%)
1400     -O -fasm -fregs-graph             119.993s  118.735s (98.95%)
1401     -O -fasm -fregs-iterative         120.191s  118.607s (98.68%)
1402]
1403[Make the demand analyser take account of lambda-bound unfoldings
1404Simon PJ <simonpj@microsoft.com>**20100503151630
1405 Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
1406 
1407 This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
1408 in DmdAnal.
1409 
1410 I'm still not really happy with this lambda-bound-unfolding stuff.
1411]
1412[Fix dynamic libs on OS X, and enable them by default
1413Ian Lynagh <igloo@earth.li>**20100503150302]
1414[Switch back to using bytestring from the darcs repo; partially fixes #3855
1415Ian Lynagh <igloo@earth.li>**20100502113458]
1416[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
1417Ian Lynagh <igloo@earth.li>**20100428150700]
1418[Fix "make 2"
1419Ian Lynagh <igloo@earth.li>**20100427162212
1420 The new Makefile logic was enabling the stage 1 rules when stage=2,
1421 so "make 2" was rebuilding stage 1.
1422]
1423[Inplace programs depend on their shell wrappers
1424Ian Lynagh <igloo@earth.li>**20100427160038]
1425[--make is now the default (#3515), and -fno-code works with --make (#3783)
1426Simon Marlow <marlowsd@gmail.com>**20100427122851
1427 Ignore-this: 33330474fa4703f32bf9997462b4bf3c
1428 If the command line contains any Haskell source files, then we behave
1429 as if --make had been given.
1430 
1431 The meaning of the -c flag has changed (back): -c now selects one-shot
1432 compilation, but stops before linking.  However, to retain backwards
1433 compatibility, -c is still allowed with --make, and means the same as
1434 --make -no-link.  The -no-link flag has been un-deprecated.
1435 
1436 -fno-code is now allowed with --make (#3783); the fact that it was
1437 disabled before was largely accidental, it seems.  We also had some
1438 regressions in this area: it seems that -fno-code was causing a .hc
1439 file to be emitted in certain cases.  I've tidied up the code, there
1440 was no need for -fno-code to be a "mode" flag, as far as I can tell.
1441 
1442 -fno-code does not emit interface files, nor does it do recompilation
1443 checking, as suggested in #3783.  This would make Haddock emit
1444 interface files, for example, and I'm fairly sure we don't want to do
1445 that.  Compiling with -fno-code is pretty quick anyway, perhaps we can
1446 get away without recompilation checking.
1447]
1448[remove duplicate docs for -e in --help output (#4010)
1449Simon Marlow <marlowsd@gmail.com>**20100426140642
1450 Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
1451]
1452[workaround for #4003, fixes HEAD build with 6.12.2
1453Simon Marlow <marlowsd@gmail.com>**20100426103428
1454 Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
1455]
1456[Make sure all the clean rules are always included
1457Ian Lynagh <igloo@earth.li>**20100424181823
1458 In particular, this fixes a problem where stage3 bits weren't being cleaned
1459]
1460[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
1461Ian Lynagh <igloo@earth.li>**20100424132830
1462 We weren't getting sharedlibs on amd64/FreeBSD because of this
1463]
1464[Include DPH docs in bindists
1465Ian Lynagh <igloo@earth.li>**20100424123101]
1466[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
1467Simon Marlow <marlowsd@gmail.com>**20100423124853
1468 Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
1469]
1470[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
1471Simon Marlow <marlowsd@gmail.com>**20100422213605
1472 Ignore-this: 525c062d2456c224ec8d0e083edd3b55
1473]
1474[Add missing constant folding and optimisation for unsigned division
1475Simon Marlow <marlowsd@gmail.com>**20100422213443
1476 Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
1477 Noticed by Denys Rtveliashvili <rtvd@mac.com>, see #4004
1478]
1479[Fix the GHC API link in the main doc index.html
1480Ian Lynagh <igloo@earth.li>**20100422213226]
1481[Give the right exit code in darcs-all
1482Ian Lynagh <igloo@earth.li>**20100421171339
1483 Our END block was calling system, which alters $?. So now we save and
1484 restore it.
1485]
1486[Use StgWord64 instead of ullong
1487Ian Lynagh <igloo@earth.li>**20100421162336
1488 This patch also fixes ullong_format_string (renamed to showStgWord64)
1489 so that it works with values outside the 32bit range (trac #3979), and
1490 simplifies the without-commas case.
1491]
1492[Implement try10Times in Makefile
1493Ian Lynagh <igloo@earth.li>**20100420165909
1494 Avoid using seq, as FreeBSD has jot instead.
1495]
1496[Fix crash in non-threaded RTS on Windows
1497Simon Marlow <marlowsd@gmail.com>**20100420122125
1498 Ignore-this: 28b0255a914a8955dce02d89a7dfaca
1499 The tso->block_info field is now overwritten by pushOnRunQueue(), but
1500 stg_block_async_info was assuming that it still held a pointer to the
1501 StgAsyncIOResult.  We must therefore save this value somewhere safe
1502 before putting the TSO on the run queue.
1503]
1504[Expand the scope of the event_buf_mutex to cover io_manager_event
1505Simon Marlow <marlowsd@gmail.com>**20100420122026
1506 Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
1507 I once saw a failure that I think was due to a race on
1508 io_manager_event, this should fix it.
1509]
1510[Flags -auto and -auto-all operate only on functions not marked INLINE.
1511Milan Straka <fox@ucw.cz>**20100331191050
1512 Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
1513]
1514[Spelling correction for LANGUAGE pragmas
1515Max Bolingbroke <batterseapower@hotmail.com>**20100413192825
1516 Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
1517]
1518[Update the user guide so it talks about the newer "do rec" notation everywhere
1519Ian Lynagh <igloo@earth.li>**20100416205416
1520 Some of the problems highlighted in trac #3968.
1521]
1522[Fix typo
1523Ian Lynagh <igloo@earth.li>**20100416205412]
1524[Fix Trac #3950: unifying types of different kinds
1525simonpj@microsoft.com**20100412151845
1526 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
1527 
1528 I was assuming that the unifer only unified types of the
1529 same kind, but now we can "defer" unsolved constraints that
1530 invariant no longer holds.  Or at least is's more complicated
1531 to ensure. 
1532 
1533 This patch takes the path of not assuming the invariant, which
1534 is simpler and more robust.  See
1535 Note [Mismatched type lists and application decomposition]
1536]
1537[Fix Trac #3943: incorrect unused-variable warning
1538simonpj@microsoft.com**20100412151630
1539 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
1540 
1541 In fixing this I did the usual little bit of refactoring
1542]
1543[Convert boot and boot-pkgs to perl
1544Ian Lynagh <igloo@earth.li>**20100415143919
1545 This stops us having to worry about sh/sed/... portability.
1546]
1547[Use $(MAKE), not make, when recursively calling make
1548Ian Lynagh <igloo@earth.li>**20100415121453]
1549[Remove the ghc_ge_609 makefile variables
1550Ian Lynagh <igloo@earth.li>**20100412235658
1551 They are now guaranteed to be YES
1552]
1553[Increase the minimum version number required to 6.10 in configure.ac
1554Ian Lynagh <igloo@earth.li>**20100412235313]
1555[The bootstrapping compiler is now required to be > 609
1556Ian Lynagh <igloo@earth.li>**20100409161046]
1557[Handle IND_STATIC in isRetainer
1558Ian Lynagh <igloo@earth.li>**20100409104207
1559 IND_STATIC used to be an error, but at the moment it can happen
1560 as isAlive doesn't look through IND_STATIC as it ignores static
1561 closures. See trac #3956 for a program that hit this error.
1562]
1563[Add Data and Typeable instances to HsSyn
1564David Waern <david.waern@gmail.com>**20100330011020
1565 Ignore-this: c3f2717207b15539fea267c36b686e6a
1566 
1567 The instances (and deriving declarations) have been taken from the ghc-syb
1568 package.
1569]
1570[Fix for derefing ThreadRelocated TSOs in MVar operations
1571Simon Marlow <marlowsd@gmail.com>**20100407092824
1572 Ignore-this: 94dd7c68a6094eda667e2375921a8b78
1573]
1574[sanity check fix
1575Simon Marlow <marlowsd@gmail.com>**20100407092746
1576 Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
1577]
1578[get the reg liveness right in the putMVar# heap check
1579Simon Marlow <marlowsd@gmail.com>**20100407092724
1580 Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
1581]
1582[initialise the headers of MSG_BLACKHOLE objects properly
1583Simon Marlow <marlowsd@gmail.com>**20100407081712
1584 Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
1585]
1586[initialise the headers of MVAR_TSO_QUEUE objects properly
1587Simon Marlow <marlowsd@gmail.com>**20100407081514
1588 Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
1589]
1590[undo debugging code
1591Simon Marlow <marlowsd@gmail.com>**20100406142740
1592 Ignore-this: 323c2248f817b6717c19180482fc4b00
1593]
1594[putMVar#: fix reg liveness in the heap check
1595Simon Marlow <marlowsd@gmail.com>**20100406135832
1596 Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
1597]
1598[account for the new BLACKHOLEs in the GHCi debugger
1599Simon Marlow <marlowsd@gmail.com>**20100406133406
1600 Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
1601]
1602[don't forget to deRefTSO() in tryWakeupThread()
1603Simon Marlow <marlowsd@gmail.com>**20100406130411
1604 Ignore-this: 171d57c4f8653835dec0b69f9be9881c
1605]
1606[Fix bug in popRunQueue
1607Simon Marlow <marlowsd@gmail.com>**20100406091453
1608 Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
1609]
1610[fix bug in migrateThread()
1611Simon Marlow <marlowsd@gmail.com>**20100401105840
1612 Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
1613]
1614[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
1615Simon Marlow <marlowsd@gmail.com>**20100401093519
1616 Ignore-this: 95f2480c8a45139835eaf5610217780b
1617 These are no longer used: once upon a time they used to have different
1618 layout from IND and IND_PERM respectively, but that is no longer the
1619 case since we changed the remembered set to be an array of addresses
1620 instead of a linked list of closures.
1621]
1622[Change the representation of the MVar blocked queue
1623Simon Marlow <marlowsd@gmail.com>**20100401091605
1624 Ignore-this: 20a35bfabacef2674df362905d7834fa
1625 
1626 The list of threads blocked on an MVar is now represented as a list of
1627 separately allocated objects rather than being linked through the TSOs
1628 themselves.  This lets us remove a TSO from the list in O(1) time
1629 rather than O(n) time, by marking the list object.  Removing this
1630 linear component fixes some pathalogical performance cases where many
1631 threads were blocked on an MVar and became unreachable simultaneously
1632 (nofib/smp/threads007), or when sending an asynchronous exception to a
1633 TSO in a long list of thread blocked on an MVar.
1634 
1635 MVar performance has actually improved by a few percent as a result of
1636 this change, slightly to my surprise.
1637 
1638 This is the final cleanup in the sequence, which let me remove the old
1639 way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
1640 new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent).  It
1641 is now the case that only the Capability that owns a TSO may modify
1642 its state (well, almost), and this simplifies various things.  More of
1643 the RTS is based on message-passing between Capabilities now.
1644]
1645[eliminate some duplication with a bit of CPP
1646Simon Marlow <marlowsd@gmail.com>**20100330154355
1647 Ignore-this: 838f7d341f096ca14c86ab9c81193e36
1648]
1649[Make ioManagerDie() idempotent
1650Simon Marlow <marlowsd@gmail.com>**20100401100705
1651 Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
1652 Avoids screeds of "event buffer overflowed; event dropped" in
1653 conc059(threaded1).
1654]
1655[Move a thread to the front of the run queue when another thread blocks on it
1656Simon Marlow <marlowsd@gmail.com>**20100329144521
1657 Ignore-this: c518ff0d41154680edc811d891826a29
1658 This fixes #3838, and was made possible by the new BLACKHOLE
1659 infrastructure.  To allow reording of the run queue I had to make it
1660 doubly-linked, which entails some extra trickiness with regard to
1661 GC write barriers and suchlike.
1662]
1663[remove non-existent MUT_CONS symbols
1664Simon Marlow <marlowsd@gmail.com>**20100330152600
1665 Ignore-this: 885628257a9d03f2ece2a754d993014a
1666]
1667[change throwTo to use tryWakeupThread rather than unblockOne
1668Simon Marlow <marlowsd@gmail.com>**20100329144613
1669 Ignore-this: 10ad4965e6c940db71253f1c72218bbb
1670]
1671[tiny GC optimisation
1672Simon Marlow <marlowsd@gmail.com>**20100329144551
1673 Ignore-this: 9e095b9b73fff0aae726f9937846ba92
1674]
1675[New implementation of BLACKHOLEs
1676Simon Marlow <marlowsd@gmail.com>**20100329144456
1677 Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
1678 
1679 This replaces the global blackhole_queue with a clever scheme that
1680 enables us to queue up blocked threads on the closure that they are
1681 blocked on, while still avoiding atomic instructions in the common
1682 case.
1683 
1684 Advantages:
1685 
1686  - gets rid of a locked global data structure and some tricky GC code
1687    (replacing it with some per-thread data structures and different
1688    tricky GC code :)
1689 
1690  - wakeups are more prompt: parallel/concurrent performance should
1691    benefit.  I haven't seen anything dramatic in the parallel
1692    benchmarks so far, but a couple of threading benchmarks do improve
1693    a bit.
1694 
1695  - waking up a thread blocked on a blackhole is now O(1) (e.g. if
1696    it is the target of throwTo).
1697 
1698  - less sharing and better separation of Capabilities: communication
1699    is done with messages, the data structures are strictly owned by a
1700    Capability and cannot be modified except by sending messages.
1701 
1702  - this change will utlimately enable us to do more intelligent
1703    scheduling when threads block on each other.  This is what started
1704    off the whole thing, but it isn't done yet (#3838).
1705 
1706 I'll be documenting all this on the wiki in due course.
1707 
1708]
1709[Fix warnings (allow pushOnRunQueue() to not be inlined)
1710Simon Marlow <marlowsd@gmail.com>**20100401114559
1711 Ignore-this: f40bfbfad70a5165a946d11371605b7d
1712]
1713[remove out of date comment
1714Simon Marlow <marlowsd@gmail.com>**20100401105853
1715 Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
1716]
1717[tidy up spacing in stderr traces
1718Simon Marlow <marlowsd@gmail.com>**20100326163122
1719 Ignore-this: 16558b0433a274be217d4bf39aa4946
1720]
1721[Fix an assertion that was not safe when running in parallel
1722Simon Marlow <marlowsd@gmail.com>**20100325143656
1723 Ignore-this: cad08fb8900eb3a475547af0189fcc47
1724]
1725[Never jump directly to a thunk's entry code, even if it is single-entry
1726Simon Marlow <marlowsd@gmail.com>**20100325114847
1727 Ignore-this: 938da172c06a97762ef605c8fccfedf1
1728 I don't think this fixes any bugs as we don't have single-entry thunks
1729 at the moment, but it could cause problems for parallel execution if
1730 we ever did re-introduce update avoidance.
1731]
1732[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
1733Milan Straka <fox@ucw.cz>**20100331153626
1734 Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
1735]
1736[Add -pa and -V to the documentation of time profiling options.
1737Milan Straka <fox@ucw.cz>**20100329191121
1738 Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
1739]
1740[Keep gcc 4.5 happy
1741Simon Marlow <marlowsd@gmail.com>**20100330120425
1742 Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
1743]
1744[Fix warning compiling Linker.c for PPC Mac
1745naur@post11.tele.dk**20100403182355
1746 Ignore-this: e2d2448770c9714ce17dd6cf3e297063
1747 The warning message eliminated is:
1748 > rts/Linker.c:4756:0:
1749 >      warning: nested extern declaration of 'symbolsWithoutUnderscore'
1750]
1751[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
1752naur@post11.tele.dk**20100403181656
1753 Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
1754 The error messages eliminated are:
1755 > compiler/nativeGen/AsmCodeGen.lhs:875:31:
1756 >     Not in scope: `mkRtsCodeLabel'
1757 > compiler/nativeGen/AsmCodeGen.lhs:879:31:
1758 >     Not in scope: `mkRtsCodeLabel'
1759 > compiler/nativeGen/AsmCodeGen.lhs:883:31:
1760 >     Not in scope: `mkRtsCodeLabel'
1761]
1762[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
1763naur@post11.tele.dk**20100403180643
1764 Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
1765 The error message eliminated is:
1766 > compiler/nativeGen/AsmCodeGen.lhs:637:16:
1767 >     Not in scope: data constructor `DestBlockId'
1768]
1769[Fix boot-pkgs's sed usage to work with Solaris's sed
1770Ian Lynagh <igloo@earth.li>**20100401153441]
1771[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
1772Ian Lynagh <igloo@earth.li>**20100331144707
1773 This seems to fix this failure:
1774 [...]
1775 ** BUILD SUCCEEDED **
1776 rm -f -f GHC-system.pmdoc/*-contents.xml
1777 /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
1778              -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
1779 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
1780 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
1781 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
1782 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
1783 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
1784     2511962091,
1785     2447007291,
1786     2511961547,
1787     2511961610,
1788     2432803204,
1789     453371,
1790     447720,
1791     436209,
1792     435510,
1793     9986,
1794     9918
1795 )
1796 make[1]: *** [framework-pkg] Trace/BPT trap
1797 make: *** [framework-pkg] Error 2
1798]
1799[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
1800Ian Lynagh <igloo@earth.li>**20100331161302
1801 Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
1802]
1803[Avoid a non-portable use of tar reported by Roman Leshchinskiy
1804Ian Lynagh <igloo@earth.li>**20100330145802]
1805[Don't install EXTRA_PACKAGES by default
1806Simon Marlow <marlowsd@gmail.com>**20100330142714
1807 Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
1808]
1809[fix a non-portable printf format
1810Simon Marlow <marlowsd@gmail.com>**20100330134437
1811 Ignore-this: d41c23c54ec29654cb2049de1e588570
1812]
1813[avoid single quote in #error
1814Simon Marlow <marlowsd@gmail.com>**20100330120346
1815 Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
1816]
1817[use FMT_Word64 instead of locally-defined version
1818Simon Marlow <marlowsd@gmail.com>**20100330114650
1819 Ignore-this: 82697b8095dffb3a8e196c687006ece0
1820]
1821[remove old/unused DotnetSupport and GhcLibsWithUnix
1822Simon Marlow <marlowsd@gmail.com>**20100330123732
1823 Ignore-this: c68814868b3671abdc369105bbeafe6c
1824]
1825[fix return type cast in f.i.wrapper when using libffi (#3516)
1826Simon Marlow <marlowsd@gmail.com>**20100329154220
1827 Ignore-this: f898eb8c9ae2ca2009e539735b92c438
1828 
1829 Original fix submitted by
1830   Sergei Trofimovich <slyfox@community.haskell.org>
1831 modified by me:
1832  - exclude 64-bit types
1833  - compare uniques, not strings
1834  - #include "ffi.h" is conditional
1835]
1836[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
1837Simon Marlow <marlowsd@gmail.com>**20100329135734
1838 Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
1839 Submitted by: Sergei Trofimovich <slyfox@community.haskell.org>
1840 Re-recorded against HEAD.
1841]
1842[avoid a fork deadlock (see comments)
1843Simon Marlow <marlowsd@gmail.com>**20100329132329
1844 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
1845]
1846[tidy up the end of the all_tasks list after forking
1847Simon Marlow <marlowsd@gmail.com>**20100329132253
1848 Ignore-this: 819d679875be5f344e816210274d1c29
1849]
1850[Add a 'setKeepCAFs' external function (#3900)
1851Simon Marlow <marlowsd@gmail.com>**20100329110036
1852 Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
1853]
1854[Explicitly check whether ar supports the @file syntax
1855Ian Lynagh <igloo@earth.li>**20100329123325
1856 rather than assuming that all GNU ar's do.
1857 Apparently OpenBSD's older version doesn't.
1858]
1859[Fix the format specifier for Int64/Word64 on Windows
1860Ian Lynagh <igloo@earth.li>**20100327182126
1861 mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
1862 than 64-bit. We use %I64u/%I64d instead.
1863]
1864[Fix the ghci startmenu item
1865Ian Lynagh <igloo@earth.li>**20100326235934
1866 I'm not sure what changed, but it now doesn't work for me without
1867 the "Start in" field being set.
1868]
1869[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
1870Ian Lynagh <igloo@earth.li>**20100326155917]
1871[Add a licence file for the Windows installer to use
1872Ian Lynagh <igloo@earth.li>**20100326155130]
1873[Add gcc-g++ to the inplace mingw installation; fixes #3893
1874Ian Lynagh <igloo@earth.li>**20100326154714]
1875[Add the licence file to the Windows installer. Fixes #3934
1876Ian Lynagh <igloo@earth.li>**20100326152449]
1877[Quote the paths to alex and happy in configure
1878Ian Lynagh <igloo@earth.li>**20100325143449
1879 Ignore-this: d6d6e1a250f88985bbeea760e63a79db
1880]
1881[Use </> rather than ++ "/"
1882Ian Lynagh <igloo@earth.li>**20100325133237
1883 This stops us generating paths like
1884     c:\foo\/ghc460_0/ghc460_0.o
1885 which windres doesn't understand.
1886]
1887[Append $(exeext) to utils/ghc-pkg_dist_PROG
1888Ian Lynagh <igloo@earth.li>**20100324233447
1889 Fixes bindist creation
1890]
1891[A sanity check
1892Simon Marlow <marlowsd@gmail.com>**20100325110500
1893 Ignore-this: 3b3b76d898c822456857e506b7531e65
1894]
1895[do_checks: do not set HpAlloc if the stack check fails
1896Simon Marlow <marlowsd@gmail.com>**20100325110328
1897 Ignore-this: 899ac8c29ca975d03952dbf4608d758
1898 
1899 This fixes a very rare heap corruption bug, whereby
1900 
1901  - a context switch is requested, which sets HpLim to zero
1902    (contextSwitchCapability(), called by the timer signal or
1903    another Capability).
1904 
1905  - simultaneously a stack check fails, in a code fragment that has
1906    both a stack and a heap check.
1907 
1908 The RTS then assumes that a heap-check failure has occurred and
1909 subtracts HpAlloc from Hp, although in fact it was a stack-check
1910 failure and retreating Hp will overwrite valid heap objects.  The bug
1911 is that HpAlloc should only be set when Hp has been incremented by the
1912 heap check.  See comments in rts/HeapStackCheck.cmm for more details.
1913 
1914 This bug is probably incredibly rare in practice, but I happened to be
1915 working on a test that triggers it reliably:
1916 concurrent/should_run/throwto001, compiled with -O -threaded, args 30
1917 300 +RTS -N2, run repeatedly in a loop.
1918]
1919[comments and formatting only
1920Simon Marlow <marlowsd@gmail.com>**20100325104617
1921 Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
1922]
1923[Change how perl scripts get installed; partially fixes #3863
1924Ian Lynagh <igloo@earth.li>**20100324171422
1925 We now regenerate them when installing, which means the path for perl
1926 doesn't get baked in
1927]
1928[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
1929Ian Lynagh <igloo@earth.li>**20100324171408
1930 This means we don't rely on baking a path to gcc into the executable
1931]
1932[Quote the ar path in configure
1933Ian Lynagh <igloo@earth.li>**20100324162043]
1934[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
1935Ian Lynagh <igloo@earth.li>**20100324145048]
1936[Remove unused cCONTEXT_DIFF
1937Ian Lynagh <igloo@earth.li>**20100324145013]
1938[Remove unused cEnableWin32DLLs
1939Ian Lynagh <igloo@earth.li>**20100324144841]
1940[Remove unused cGHC_CP
1941Ian Lynagh <igloo@earth.li>**20100324144656]
1942[Fix the build for non-GNU-ar
1943Ian Lynagh <igloo@earth.li>**20100324132907]
1944[Tweak the Makefile code for making .a libs; fixes trac #3642
1945Ian Lynagh <igloo@earth.li>**20100323221325
1946 The main change is that, rather than using "xargs ar" we now put
1947 all the filenames into a file, and do "ar @file". This means that
1948 ar adds all the files at once, which works around a problem where
1949 files with the same basename in a later invocation were overwriting
1950 the existing file in the .a archive.
1951]
1952[Enable shared libraries on Windows; fixes trac #3879
1953Ian Lynagh <igloo@earth.li>**20100320231414
1954 Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
1955]
1956[Add the external core PDF to the new build system
1957Ian Lynagh <igloo@earth.li>**20100321161909]
1958[Allow specifying $threads directly when validating
1959Ian Lynagh <igloo@earth.li>**20100321112835]
1960[Remove LazyUniqFM; fixes trac #3880
1961Ian Lynagh <igloo@earth.li>**20100320213837]
1962[UNDO: slight improvement to scavenging ...
1963Simon Marlow <marlowsd@gmail.com>**20100319153413
1964 Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
1965 
1966 Accidnetally pushed this patch which, while it validates, isn't
1967 correct.
1968 
1969 rolling back:
1970 
1971 Fri Mar 19 11:21:27 GMT 2010  Simon Marlow <marlowsd@gmail.com>
1972   * slight improvement to scavenging of update frames when a collision has occurred
1973 
1974     M ./rts/sm/Scav.c -19 +15
1975]
1976[slight improvement to scavenging of update frames when a collision has occurred
1977Simon Marlow <marlowsd@gmail.com>**20100319112127
1978 Ignore-this: 6de2bb9614978975f17764a0f259d9bf
1979]
1980[Don't install the utf8-string package
1981Ian Lynagh <igloo@earth.li>**20100317212709]
1982[Don't use -Bsymbolic when linking the RTS
1983Ian Lynagh <igloo@earth.li>**20100316233357
1984 This makes the RTS hooks work when doing dynamic linking
1985]
1986[Fix Trac #3920: Template Haskell kinds
1987simonpj@microsoft.com**20100317123519
1988 Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
1989 
1990 Fix two places where we were doing foldl instead of foldr
1991 after decomposing a Kind.  Strange that the same bug appears
1992 in two quite different places!
1993]
1994[copy_tag_nolock(): fix write ordering and add a write_barrier()
1995Simon Marlow <marlowsd@gmail.com>**20100316143103
1996 Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
1997 
1998 Fixes a rare crash in the parallel GC.
1999 
2000 If we copy a closure non-atomically during GC, as we do for all
2001 immutable values, then before writing the forwarding pointer we better
2002 make sure that the closure itself is visible to other threads that
2003 might follow the forwarding pointer.  I imagine this doesn't happen
2004 very often, but I just found one case of it: in scavenge_stack, the
2005 RET_FUN case, after evacuating ret_fun->fun we then follow it and look
2006 up the info pointer.
2007]
2008[Add sliceP mapping to vectoriser builtins
2009benl@ouroborus.net**20100316060517
2010 Ignore-this: 54c3cafff584006b6fbfd98124330aa3
2011]
2012[Comments only
2013benl@ouroborus.net**20100311064518
2014 Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
2015]
2016[TAG 2010-03-16
2017Ian Lynagh <igloo@earth.li>**20100316005137
2018 Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
2019]
2020Patch bundle hash:
2021de8a73a54f0223ce2ee0a34fd2d5f86bfd0ce14a