Ticket #3084: allowBuiltinRedef.amended.dpatch

File allowBuiltinRedef.amended.dpatch, 233.3 KB (added by phercek, 6 years ago)

patch amended to resolve conflicts when applying to ghc.head from 2009-05-12

Line 
1Tue May 12 19:24:59 CEST 2009  Peter Hercek <[email protected]>
2  * alow macros to redefine builtin GHCi commands (implements #3084)
3
4New patches:
5
6[alow macros to redefine builtin GHCi commands (implements #3084)
7Peter Hercek <[email protected]>**20090512172459
8 Ignore-this: 62f3aa596e922bd1cb8c4875ca674570
9] {
10hunk ./ghc/InteractiveUI.hs 123
11   ("def",       keepGoing (defineMacro False),  completeExpression),
12   ("def!",      keepGoing (defineMacro True),   completeExpression),
13   ("delete",    keepGoing deleteCmd,            noCompletion),
14-  ("e",         keepGoing editFile,             completeFilename),
15   ("edit",      keepGoing editFile,             completeFilename),
16   ("etags",     keepGoing createETagsFileCmd,   completeFilename),
17   ("force",     keepGoing forceCmd,             completeExpression),
18hunk ./ghc/InteractiveUI.hs 723
19            Nothing -> BadCommand
20 
21 lookupCommand' :: String -> IO (Maybe Command)
22-lookupCommand' str = do
23+lookupCommand' ":" = return Nothing
24+lookupCommand' str' = do
25   macros <- readIORef macros_ref
26hunk ./ghc/InteractiveUI.hs 726
27-  let cmds = builtin_commands ++ macros
28+  let{ (str, cmds) = case str' of
29+      ':' : rest -> (rest, builtin_commands)
30+      _ -> (str', macros ++ builtin_commands) }
31   -- look for exact match first, then the first prefix match
32   return $ case [ c | c <- cmds, str == cmdName c ] of
33            c:_ -> Just c
34hunk ./ghc/InteractiveUI.hs 907
35         fromTarget _ = Nothing -- when would we get a module target?
36 
37 defineMacro :: Bool{-overwrite-} -> String -> GHCi ()
38+defineMacro _ (':':_) =
39+  io $ putStrLn "macro name cannot start with a colon"
40 defineMacro overwrite s = do
41   let (macro_name, definition) = break isSpace s
42   macros <- io (readIORef macros_ref)
43hunk ./ghc/InteractiveUI.hs 1601
44             Nothing -> return completeFilename
45 
46 completeCmd = wrapCompleter " " $ \w -> do
47-  cmds <- liftIO $ readIORef macros_ref
48-  return (filter (w `isPrefixOf`) (map (':':)
49-             (map cmdName (builtin_commands ++ cmds))))
50+  macros <- liftIO $ readIORef macros_ref
51+  let macro_names = map (':':) . map cmdName $ macros
52+  let command_names = map (':':) . map cmdName $ builtin_commands
53+  let{ candidates = case w of
54+      ':' : ':' : _ -> map (':':) command_names
55+      _ -> nub $ macro_names ++ command_names }
56+  return $ filter (w `isPrefixOf`) candidates
57 
58 completeMacro = wrapIdentCompleter $ \w -> do
59   cmds <- liftIO $ readIORef macros_ref
60}
61
62Context:
63
64[stub makefile
65Simon Marlow <[email protected]>**20090511133615
66 Ignore-this: 1d5890844e9329eb832def2caab142f7
67]
68[Hack to make the user's guide build in a linked build tree
69Simon Marlow <[email protected]>**20090511133523
70 Ignore-this: ff861fdc8a2f30ad970f1afe2121d4b6
71 See comment for details
72]
73[make it so that 'make html', 'make pdf', and 'make ps' work for docs
74Simon Marlow <[email protected]>**20090511120256
75 Ignore-this: 31314dbdf6d1b81142a0618ff80d79af
76]
77[correct the +RTS -? docs for -A (default is 512k not 256k)
78Simon Marlow <[email protected]>**20090508083811
79 Ignore-this: 3325973d3236d4363da007ae5d052d39
80]
81[Use a more compact +RTS -s output for Tasks
82Simon Marlow <[email protected]>**20090508083738
83 Ignore-this: 120572f8f207d709268389f83d6e3930
84 
85                         MUT time (elapsed)       GC time  (elapsed)
86   Task  0 (worker) :    0.00s    (  0.00s)       0.00s    (  0.00s)
87   Task  1 (worker) :    0.00s    (  0.01s)       0.00s    (  0.00s)
88   Task  2 (worker) :    0.00s    (  0.03s)       0.00s    (  0.00s)
89   Task  3 (bound)  :    0.00s    (  0.00s)       0.02s    (  0.04s)
90]
91[disable a warning
92Simon Marlow <[email protected]>**20090505092015
93 Ignore-this: 88be67365fd00a0e82374bd543220224
94]
95[docbook PDF item is done
96Simon Marlow <[email protected]>**20090505092009
97 Ignore-this: be0fea575eb930a040b7b15bd11f0eb1
98]
99[add a .c --> .s rule
100Simon Marlow <[email protected]>**20090501095627
101 Ignore-this: d21dc88910d189cce35ce2d26028b547
102]
103[Remove libraries/ifBuildable.hs; it's no longer used
104Ian Lynagh <[email protected]>**20090509200708]
105[Fix configure
106Ian Lynagh <[email protected]>**20090509184634]
107[Build system tweak
108Ian Lynagh <[email protected]>**20090509142936]
109[Add a Makefile in libraries/
110Ian Lynagh <[email protected]>**20090508232920]
111[Tweak ./boot
112Ian Lynagh <[email protected]>**20090508230236]
113[Partially fix "make framework-pkg"
114Ian Lynagh <[email protected]>**20090508224857
115 We still need to sort out the "install-docs" story to get this working
116 properly.
117]
118[Handle deciding what docs to build better
119Ian Lynagh <[email protected]>**20090508000603
120 Now we have variables for whether or not to build the docbook docs as
121 HTML, as PS, and as PDF. The configure script output now matches what
122 the build system will do (except it cannot take account of any
123 mk/build.mk settings, of course).
124]
125[Remove oldconfig.mk.in
126Ian Lynagh <[email protected]>**20090507150641]
127[Rename pwd to ghc-pwd
128Ian Lynagh <[email protected]>**20090507135034]
129[Remove pwd's Makefile from the old build system
130Ian Lynagh <[email protected]>**20090507134356]
131[Clean utils/pwd
132Ian Lynagh <[email protected]>**20090507134259]
133[Use more portable shell in ./boot; fixes booting on Solaris
134Ian Lynagh <[email protected]>**20090506010445]
135[Simplify utils/pwd
136Ian Lynagh <[email protected]>**20090505223432
137 We only need the forwardslash mode now, so always use that mode and
138 don't accept any arguments.
139]
140[More rules for bootstrapping
141Ian Lynagh <[email protected]>**20090504150209]
142[Bootstrapping fix
143Ian Lynagh <[email protected]>**20090504142605]
144[Bootstrapping fixes
145Ian Lynagh <[email protected]>**20090504142511]
146[Test "ghc-pkg check" passes in bindisttest
147Ian Lynagh <[email protected]>**20090504105324
148 Also fixes it so that it really does pass (we weren't substituting the
149 GMP variables in the RTS package config).
150]
151[Put install-sh into bindists
152Ian Lynagh <[email protected]>**20090504104026]
153[Test bindists in a deeper subdirectory
154Ian Lynagh <[email protected]>**20090504103504
155 configure looks for install-sh in . .. ../.. and we don't want it to
156 find the build system's install-sh.
157]
158[Use "-x c" when compiling hc files
159Ian Lynagh <[email protected]>**20090503205344]
160[Makefile rules tweak for BootingFromHc
161Ian Lynagh <[email protected]>**20090503203733]
162[More bootstrapping rules
163Ian Lynagh <[email protected]>**20090503201812]
164[Add a .hc building rules for bootstrapping
165Ian Lynagh <[email protected]>**20090503190508]
166[Tweak rts ghc.mk for bootstrapping
167Ian Lynagh <[email protected]>**20090503111009]
168[Add a build system TODO
169Ian Lynagh <[email protected]>**20090503224627]
170[Add dph to build system; patch from Roman Leshchinskiy
171Ian Lynagh <[email protected]>**20090503104005]
172[Fix building without GHCi
173Ian Lynagh <[email protected]>**20090503004437]
174[Makefile tweak
175Ian Lynagh <[email protected]>**20090502225601]
176[add publish-binary-dist; tidy up
177Simon Marlow <[email protected]>**20090501112857
178 Ignore-this: 7e0032d7ac300f5dd18626488a035c05
179]
180[Fix make for libffi again, properly this time
181Duncan Coutts <[email protected]>**20090430225546
182 No idea how the last patch managed to pass validate.
183]
184[Fix parallel make for libffi.
185Duncan Coutts <[email protected]>**20090430135637
186 I didn't realise make can invoke the same action multiple
187 times in parallel if the rule has multiple targets. So go
188 back to using a build stamp file.
189]
190[Fix linking shared libs with parallel make
191Duncan Coutts <[email protected]>**20090430123753
192 Unlike with static libs, when linking shared libs the dependencies
193 have to already exist. Add a dependency $1_$2_$3_LIBS : $1_$2_$3_DEPS_LIBS
194]
195[Fix building Haskeline on Windows
196Ian Lynagh <[email protected]>**20090430161613]
197[Fix mkdependC: Make it tell cpp to use our temporary filename
198Ian Lynagh <[email protected]>**20090430130638]
199[FIX build: add dependencies on ghc_boot_platform.h
200Simon Marlow <[email protected]>**20090430100245
201 Ignore-this: b9bd4f40f4b6789eee500626b9ef6e2c
202]
203[Prevent haddock docs being built when HADDOCK_DOCS=NO
204Duncan Coutts <[email protected]>**20090429160230]
205[Clean up building of libffi for dynamic lib way
206Duncan Coutts <[email protected]>**20090429153002
207 And depend on it at the top level when we're using dynamic libs.
208]
209[Build library packages as shared libs
210Duncan Coutts <[email protected]>**20090429151553
211 when we configure ghc with --enable-shared
212]
213[Build the rts as a shared lib correctly
214Duncan Coutts <[email protected]>**20090429143131
215 That is, build it as a .so/.dll rather than as libHSrts_dyn.a
216]
217[Don't actually build ghc itself with -dynamic
218Duncan Coutts <[email protected]>**20090429142940
219 For now, with --enable-shared we'll build the libs shared,
220 but ghc itself will still be statically linked.
221 In any case, we would want to be able to build it both
222 ways so it's easy to test both.
223]
224[Add a new $way_libsuf variable for library suffix+extension
225Duncan Coutts <[email protected]>**20090428123529
226 This allows the library file type to depend on the way. This is needed
227 to use .so/.dll libs for the "dyn" way rather than always using .a libs.
228 For example: thr_debug_dyn_libsuf="_thr_debug-ghc6.11.20090426.so"
229]
230[extend the rules/c-objs macro to take the way as a parameter
231Duncan Coutts <[email protected]>**20090428123452
232 Previously we only built library package "cbits" the vanilla way, afterall
233 C code does not need to be built differently for profiling builds. However
234 for dynamic libs the C code needs to be built with -fPIC, so we do need
235 to be able to build package .c (and .s?) files multiple ways.
236]
237[Do not link ghc stage1 using -threaded, only for stage2 or 3
238Duncan Coutts <[email protected]>**20090428104924
239 We link stage1 using the bootstrapping compiler and there's
240 no guarantee that it has working support for threaded
241]
242[Tweak ghc-cabal
243Ian Lynagh <[email protected]>**20090429183728]
244[Add special support for haskeline
245Ian Lynagh <[email protected]>**20090429181909
246 The library uses stuff in Setup.hs to determine whether or not it needs
247 to use -liconv. This patch replicates that logic in ghc-cabal. This
248 isn't pretty, and we should find a better way to do it, but it works
249 for now.
250]
251[In mkdependC.prl, create temp files properly
252Ian Lynagh <[email protected]>**20090429151215
253 Avoids a race condition, where one run deletes/overwrites the temp file
254 of another.
255]
256[Use haskeline, rather than editline, for line editing in ghci
257Ian Lynagh <[email protected]>**20090429005838]
258[Fix error handling
259Ian Lynagh <[email protected]>**20090428232848
260 After the fix to #2500, we could get "Failing due to -Werror." but no
261 warnings printed. Now we don't fail in that case.
262]
263[move nofib settings here from ghc's config.mk
264Simon Marlow <[email protected]>**20090428125551
265 Ignore-this: a2eb9d0094fe10446b74987af44a6005
266]
267[add missing eventlog subdir
268Simon Marlow <[email protected]>**20090428125528
269 Ignore-this: 127bc2a6bc9fa29871a19ad99ddb346e
270]
271[move runstdtest into nofib
272Simon Marlow <[email protected]>**20090428124505
273 Ignore-this: 98eae5d994693ed8235e8693f3615899
274]
275[improve the finalizer callback error message
276Simon Marlow <[email protected]>**20090428085345
277 Ignore-this: 3255e17c98b3c9cf591b71d6023592b8
278]
279[Add a header to all build system files:
280Simon Marlow <[email protected]>**20090428085233
281 Ignore-this: 49aa394badd4f17dc17aa3a26085ddba
282 
283 # -----------------------------------------------------------------------------
284 #
285 # (c) 2009 The University of Glasgow
286 #
287 # This file is part of the GHC build system.
288 #
289 # To understand how the build system works and how to modify it, see
290 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
291 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
292 #
293 # -----------------------------------------------------------------------------
294]
295[more cleaning
296Simon Marlow <[email protected]>**20090428084919
297 Ignore-this: e41e0dcbef3d410ca5d6a2ff8e433cc8
298]
299[todo updates
300Simon Marlow <[email protected]>**20090427152529
301 Ignore-this: b476fdb991b7b229d4aa837aa6d45216
302]
303[remove commentary that is now in the wiki
304Simon Marlow <[email protected]>**20090427144743
305 Ignore-this: e9f6bec77aa99a3c1b49ada0bf4ca9ad
306]
307[remove ticket todos
308Simon Marlow <[email protected]>**20090427144406
309 Ignore-this: 7de6ea0d0ecfc1ca51d75090074dcdd9
310]
311[require gcc 3.0+ (see #2770)
312Simon Marlow <[email protected]>**20090427134322
313 Ignore-this: 4844e99c80bdd0f9a6bdd34bae46748b
314]
315[update build order comment
316Simon Marlow <[email protected]>**20090427124711
317 Ignore-this: 96be57ee425cb4d5a916960273aefe87
318]
319[Equality constraint solver is now externally pure
320Manuel M T Chakravarty <[email protected]>**20090427140316
321 Ignore-this: bd7c31a7d9e62437e4d83f70b48220af
322 - This patch changes the equality constraint solver such that it does not
323   instantiate any type variables that occur in the constraints that are to be
324   solved (or in the environment).  Instead, it returns a bag of type bindings.
325 - If these type bindings (together with the other results of the solver) are
326   discarded, solver invocation has no effect (outside the solver) and can be
327   repeated (that's imported for TcSimplifyRestricted).
328 - For the type bindings to take effect, the caller of the solver needs to
329   execute them.
330 - The solver will still instantiate type variables thet were created during
331   solving (e.g., skolem flexibles used during type flattening).
332 
333   See also http://hackage.haskell.org/trac/ghc/wiki/TypeFunctionsSolving
334]
335[Improve the error message when we find a module in 2 places; trac #3183
336Ian Lynagh <[email protected]>**20090426160204]
337[Remove a comment (a bug to close, that has now been closed)
338Ian Lynagh <[email protected]>**20090426151942]
339[GHC new build system megapatch
340Ian Lynagh <[email protected]>**20090426114215]
341[Fix SPARC build, missing #include
342[email protected]**20090425083345]
343[Fix a lint failure when we have a  ! (# ... #)  pattern in a where clause
344Ian Lynagh <[email protected]>**20090424173313
345 This showed up when converting ds057 to follow the new bang pattern rules,
346 in #2806.
347]
348[Do the second part of #2806: Disallow unlifted types in ~ patterns
349Ian Lynagh <[email protected]>**20090424150519]
350[Tiny refactor
351Ian Lynagh <[email protected]>**20090424140227]
352[Require a bang pattern when unlifted types are where/let bound; #3182
353Ian Lynagh <[email protected]>**20090424124754
354 For now we only get a warning, rather than an error, because the alex
355 and happy templates don't follow the new rules yet.
356]
357[Don't short out top-level indirections if there's a INLINE/NOINLINE pragma
358[email protected]**20090424123238
359 Ignore-this: 422a4256a63c93a0bf806cbfa564ec69
360 
361 The top-level indirection-shorting, done in SimplCore.shortOutIndirections,
362 was accidentally nuking a NOINLINE pragma.  This patch adopts a slightly
363 more conservative approach to indirection-shorting, only doing so if
364 we do not thereby overwrite or lose some user-supplied pragmas.
365 
366]
367[Fix #3182: 64 bit FP value returned by C calls was getting trashed
368[email protected]**20090424065053
369 Ignore-this: 529bfd2bfb663a70e1345a0089737496
370    movss instruction was being used to move the result into the
371    destination register instead of movsd
372]
373[add missing files (part of #3171 fix)
374Simon Marlow <[email protected]>**20090424091610
375 Ignore-this: 3d11fe878c873529906f67e930c46c2c
376]
377[Tiny optimisation to mkInlineMe
378[email protected]**20090424074733
379 Ignore-this: be1e8ed22a82f1dc348b1e047a986d8b
380]
381[Add EVENT_CREATE_SPARK_THREAD to replace EVENT_SPARK_TO_THREAD
382Simon Marlow <[email protected]>**20090423141940
383 Ignore-this: 173128c92c20e6a85d6611355fb5273a
384 Also some tidyups and renaming
385]
386[add getOrSetSignalHandlerStore, much like getOrSetTypeableStore
387Simon Marlow <[email protected]>**20090423113002
388 Ignore-this: d9dcb835444cae366aa8f6bcf68fd191
389 Part of the fix for #3171
390]
391[don't overwrite io_manager_pipe if it is already set
392Simon Marlow <[email protected]>**20090423112939
393 Ignore-this: 8e7d94a051b4b3daec89ea3103678550
394 Part of the fix for #3171
395]
396[Simplify the placeholder binding for naughty record selectors
397[email protected]**20090423094401
398 Ignore-this: 50dca18eeaa60e24319ed75dabf55bab
399]
400[Fix Trac #3176: intercept naughty record selectors
401[email protected]**20090423094237
402 Ignore-this: 1aab5295a20191d8a56364f1fbf2e765
403 
404 When making record selectors into ordinary functions (rather than
405 magial implicit Ids) I forgot that they could therefore show up in
406 the *local* TcEnv, not the global one.  This fixes that problem,
407 and thereby Trac #3176.
408 
409]
410[Better pretty-printing for IdDetails
411[email protected]**20090423093945
412 Ignore-this: 34721cec14f1ad33838f12bfc7851a48
413]
414[FIX #3166: include the fixity of classes and type synonyms in their fingerprints
415Simon Marlow <[email protected]>**20090421135624
416 Ignore-this: 5390a8fb76bf1f3133f08277a978cb2
417]
418[FIX #2682: banish silly cases of the "module Foo is not loaded" error
419Simon Marlow <[email protected]>**20090421131038
420 Ignore-this: 15298691a63e13c63a68673202b1fc18
421 
422 In GHCi if you say 'import Foo' meaning to load a package module Foo,
423 and Foo.hs is found on the search path, then GHCi replies "module Foo
424 is not loaded", because it knows Foo refers to the source file rather
425 than the package module, and you haven't loaded that module with
426 :load.
427 
428 This is consistent with the usual module-finding semantics.  However,
429 it isn't particularly useful.  And it leads to silly problems like not
430 being able to start GHCi when you happen to be sitting in
431 libraries/base, because GHCi thinks the Prelude hasn't been loaded.
432 
433 So now I've made a slight change to the way that 'import M' works: if
434 M is loaded, then it refers to the loaded module, otherwise it looks
435 for a package module M.  This does what the reporter of #2682 wanted,
436 and since it turns an error condition into meaningful behaviour it
437 can't break anything. 
438 
439 The only undesirable consequence is that 'import M' might refer to a
440 different M than ':load M'.  Hopefully that won't lead to confusion.
441]
442[FIX #2500: Don't log warnings in getHeader
443Simon Marlow <[email protected]>**20090421100039
444 Ignore-this: 24a8e8c2dca64dcd592d53fd7468eed5
445]
446[add a DO NOT EDIT comment
447Simon Marlow <[email protected]>**20090421094606
448 Ignore-this: d0e81a968fe38918d2830dcf1186f61c
449]
450[FIX #3153: we lost an EOF sentinel in the event of a lexical error
451Simon Marlow <[email protected]>**20090421094558
452 Ignore-this: e30401ca719605a6991e9c8a31821eba
453]
454[FIX #2845: Allow breakpoints on expressions with unlifted type
455Simon Marlow <[email protected]>**20090420142525
456 Ignore-this: 8d1b2624a4635b421032463219af604e
457 
458 It turns out we can easily support breakpoints on expressions with
459 unlifted types, by translating
460 
461   case tick# of _ -> e
462 
463 into
464 
465   let f = \s . case tick# of _ -> e
466   in  f realWorld#
467 
468 instead of just a plain let-binding.  This is the same trick that GHC
469 uses for abstracting join points of unlifted type.
470 
471 In #2845, GHC has eta-expanded the tick expression, changing the
472 result type from IO a to (# State#, a #), which was the reason the
473 tick was suddenly being ignored.  By supporting ticks on unlifted
474 expressions we can make it work again, although some confusion might
475 arise because _result will no longer be available (it now has
476 unboxed-tuple type, so we can't bind it in the environment).  The
477 underlying problem here is that GHC does transformations like
478 eta-expanding the tick expressions, and there's nothing we can do to
479 prevent that.
480]
481[remove now-unused atomic_modify_mutvar_mutex
482Simon Marlow <[email protected]>**20090403132731
483 Ignore-this: d27c29bdd8a4c43b384e278fb192138e
484]
485[SPARC NCG: Add a comment explaining why we can't used a pinned reg for gct
486[email protected]**20090420074335
487 Can't use windowed regs because the window moves during a function
488 call. Can't use the global regs because they're reserved for other purposes.
489]
490[SPARC NCG: validate fixes
491[email protected]**20090420032120
492 Ignore-this: 4df988a6b3c005de741a300313104408
493]
494[SPARC NCG: Base freeRegs on includes/MachRegs.h again
495[email protected]**20090420020700]
496[Really fix Trac #2611 this time
497pepe iborra <[email protected]>**20090419142241
498 
499 My previous patch didn't completely solve the problem.
500 I believe I got it right this time.
501]
502[Fix Trac #2611
503pepe iborra <[email protected]>**20090418214115
504 
505 Fix a bug in :print affecting data types with unboxed components
506 
507]
508[Fix #3170: Allow coalescing of the same node during register allocation.
509Ben.Lippmeier@anu.edu.au**20090418082253
510 Ignore-this: b3a14959d7616fd53c3334a4f0b30f48
511   The x86 code generator sometimes generates nop moves like
512   movl %vI_a %vI_a, but we'll just ignore them for coalescing
513   purposes instead of emitting an error. It shouldn't hurt anything.
514]
515[Fix my previous patch about type parsing
516David Waern <david.waern@gmail.com>**20090418082927
517 
518 I forgot to record some additional changes.
519]
520[Simplify the type grammar
521David Waern <david.waern@gmail.com>**20090417145855
522 
523 Simon P-J suggested the following simplifications in #3097:
524 
525 * Allow nested foralls in `ctype` just like in `ctypedoc`.
526 * Use `gentype` rather than `type` in the LHS of type declarations.
527 * Inline `type` in `ctype`.
528 * Rename `gentype` to `type`.
529 
530 This patch does this. Also, the equivalent thing is done for documented types.
531]
532[Removed unused function postEventTypeID.
533donnie@darthik.com**20090413011745
534 Ignore-this: cbab58da40e0d3b6d124347b9fda8e4
535 postEventTypeID was used to post event marker IDs, but instead we just
536 call postWord16 directly; thus, this function is unused.
537]
538[For consistency, changed access of thread id to be through capability instead of directly from StgRegTable.
539donnie@darthik.com**20090413011701
540 Ignore-this: dd38adce264aa882be0a4daf7c8c7378
541]
542[Added new EventLog event: Spark to Thread.
543donnie@darthik.com**20090413011444
544 Ignore-this: d38be4d01d76297953d6ed075896cb97
545]
546[Changed postEvent last argument from "nat from" to "StgWord64 other".
547donnie@darthik.com**20090413011140
548 Ignore-this: b7991c781c09d7a631230740cd8b1fe6
549 StgWord64 other better represents this argument since it can be used as
550 any particular data, thus "other" and not the "from" capability as it was
551 previously strictly used.  Also, StgWord64 is normally larger than type
552 nat to allow for larger data to be passed through the "other" argument.
553]
554[Fixed ThreadID to be defined as StgThreadID, not StgWord64.  Changed CapabilityNum to CapNo.  Added helper functions postCapNo() and postThreadID().
555donnie@darthik.com**20090413010705
556 Ignore-this: dde2f442f9d5e43f20f52069dee4f8c0
557 ThreadID was StgWord64, but should have been StgThreadID, which is
558 currently StgWord32.  Changed name from CapabilityNum to CapNo to better
559 reflect naming in Capability struct where "no" is the capability number.
560 Modified EventLog.c to use the helper functions postCapNo() and
561 postThreadID () for CapNo and ThreadID.
562]
563[Fixed error in order of EventTypeDescriptions -- seq and par GC come after start and finish GC.
564donnie@darthik.com**20090403034322
565 Ignore-this: 98c0367103ab7892980d9a17d442584e
566 EventTypeDescriptions order must be synchronized with the event type
567 definitions in includes/EventLogFormat.h for the definitions to correctly
568 index with the matching description.
569]
570[Eventlog support for new event type: create spark.
571donnie@darthik.com**20090403033025
572 Ignore-this: 1da2a5eb13c7c64132234323e2acb514
573]
574[Tweak a Show instance
575Ian Lynagh <igloo@earth.li>**20090407143057]
576[Fix Trac #3155: better error message when -XRankNTypes is omitted
577simonpj@microsoft.com**20090409144004
578 Ignore-this: fc9d3035cd461c8a892332facd86c7da
579 
580 This patch sligtly re-adjusts the way in which the syntax of types
581 is handled:
582 
583  * In the lexer, '.' and '*' are always accepted in types
584    (previously it was conditional).  This things can't mean
585    anything else in H98, which is the only reason for doing things
586    conditionally in the lexer.
587 
588  * As a result '.' in types is never treated as an operator.
589    Instead, lacking a 'forall' keyword, it turns into a plain parse error.
590 
591  * Test for -XKindSignatures in the renamer when processing
592      a) type variable bindings
593      b) types with sigs (ty :: kind-sig)
594 
595  * Make -XKindSignatures be implied by -XTypeFamilies
596    Previously this was buried in the conditonal lexing of '*'
597 
598]
599[Use return instead of returnM, and similar tidy-ups
600simonpj@microsoft.com**20090409140959
601 Ignore-this: 987baeb20a3ff9f07c7a103ca5258c70
602]
603[Don't use thread local storage on x86/not-Linux
604Ian Lynagh <igloo@earth.li>**20090404003445
605 With the
606     On x86, use thread-local storage instead of stealing a reg for gct
607 patch, on Windows and OS X:
608     error: thread-local storage not supported for this target
609]
610[Make some showSDoc's use OneLineMode rather than PageMode
611Ian Lynagh <igloo@earth.li>**20090331181948]
612[Make the showSDoc definition more explicit
613Ian Lynagh <igloo@earth.li>**20090331174103]
614[eliminate warnings
615dias@eecs.tufts.edu**20090403203429]
616[Debugging by Sesame Street:
617dias@eecs.tufts.edu**20090403201504
618 
619 One of these things is not like the others:
620 
621 stdPattern :: [LRep] -> Maybe StgHalfWord
622 stdPattern reps
623   = case reps of
624         []  -> Just ARG_NONE    -- just void args, probably
625         [N] -> Just ARG_N
626         [P] -> Just ARG_N
627         [F] -> Just ARG_F
628         [D] -> Just ARG_D
629         [L] -> Just ARG_L
630 
631 Today's debugging session was brought to you by the letter P.
632]
633[Buggy optimizations caused function-call return to share the function's entry point
634dias@eecs.tufts.edu**20090331144639
635 - Block concat and branch-chain elimination were allowing a function call
636   to return to the caller's entry point. But that doesn't leave anywhere
637   for the infotable on the stack, since the SP on return must be the same
638   as the SP on entry to the procedure.
639]
640[Better handling of node parameter in calling conventions
641dias@eecs.tufts.edu**20090325163815
642  - Previously, the node was taken as a parameter, then ignored,
643    for static closures. Goofy. Now, the vestigial node parameters
644    are gone.
645]
646[When calling gc, avoid saving node in static closures
647dias@eecs.tufts.edu**20090323204744]
648[Code simplifications due to call/return separation; some improvements to how node argument is managed
649dias@eecs.tufts.edu**20090323201140]
650[Code simplification due to separate call/return conventions
651dias@eecs.tufts.edu**20090323182214]
652[Calls with and without passing node arguments more clearly separated
653dias@eecs.tufts.edu**20090323174700]
654[Another small step: call and return conventions specified separately when making calls
655dias@eecs.tufts.edu**20090323172837]
656[Small step toward call-conv improvement: separate out calls and returns
657dias@eecs.tufts.edu**20090323170706]
658[On x86, use thread-local storage instead of stealing a reg for gct
659Simon Marlow <marlowsd@gmail.com>**20090403121816
660 Ignore-this: b132a4c2f56a955adb8537442ca8eb0f
661 Benchmarks show that using TLS instead of stealing a register is
662 better by a few percent on x86, due to the lack of registers.
663 
664 This only affects -threaded; without -threaded we're (now) using
665 static storage for the GC data.
666]
667[in the non-threaded RTS, use a static gc_thread structure
668Simon Marlow <marlowsd@gmail.com>**20090403121443
669 Ignore-this: 631365db4f9ec7c87f71e0ac851cdfc
670]
671[small GC optimisation
672Simon Marlow <marlowsd@gmail.com>**20090403083708]
673[add -funroll-loops when compiling the parallel version of Evac.c too
674Simon Marlow <marlowsd@gmail.com>**20090402105643
675 Ignore-this: c120d5f5ea961e10acad457fd871ba53
676]
677[PACKAGE_CPP_OPTS += -DPAPI_INCLUDE_DIR=""
678Simon Marlow <marlowsd@gmail.com>**20090402105540
679 Ignore-this: 4136707371784c791c435ae4f562a500
680 unbreaks ghc-pkg check in an installed GHC
681]
682[Adjust inlining heursitics
683simonpj@microsoft.com**20090403084634
684 Ignore-this: a2d6849726f6705e06941c74137bfe7e
685 
686 This patch is the result of a long series of nofib-based experiments
687 to improve GHC's inlining heuristics.
688 
689 In the end, I'm not sure how worthwhile it all was: I only got a
690    1% decrease in code size
691    1% decrease in allocation
692 and I don't trust the runtime statistics enough to quote.
693 
694 Still, in doing all this I tidied up the code quite a bit, and
695 I understand it much better now, so I'm going to commit it.
696 
697 The main changes are in CoreUnfold, which has lots of new comments.
698 Other changes:
699 
700   - litSize moves from Literal to CoreUnfold
701   - interestingArg moves from SimplUtils to CoreUnfold
702   - the default unfolding threshold (in StaticFlags)
703       reduces from 8 to 6 (since the size calculation
704       has changed a bit)
705 
706 
707]
708[Worker/wrapper should make INLINE if it doesn't w/w
709simonpj@microsoft.com**20090403084333
710 Ignore-this: 5ef3c02c272ad59616fa7dfaa0dc0381
711 
712 If worker/wrapper decides not to w/w something on the grounds that
713 it's too small, it should add an INLINE pragma.  Otherwise, later
714 in the day that small thing might now be big, and we'd wish we'd
715 done the w/w after all.  This only made a difference in one nofib
716 program (bspt), but it's an easy change.
717 
718 See Note [Don't w/w inline things (a) and (b)]
719 
720]
721[Rewrite a good chunk of CoreArity
722simonpj@microsoft.com**20090403083655
723 Ignore-this: 314d26ad8f2d4437e11148b58e35d731
724 
725 I found a couple of shortcomings in arity computation, and did
726 quite a bit of refactoring as a result.  Regrettably, I have
727 forgotten the details, but I do remember that one part was to
728 do with the infamous "state hack".  If we're going to use the
729 state-hack at all, we'd better do it right.
730 
731 Anyway I think this is an improvement. The comments are more
732 up to date too, and more voluminous.
733 
734]
735[Comments only; record remarks about removing 'type' nonterminal
736simonpj@microsoft.com**20090402165226
737 Ignore-this: 82f93bd161ee48c0a745fb58247afec0
738]
739[Don't float case expressions in full laziness
740simonpj@microsoft.com**20090402165101
741 Ignore-this: 356f0fc77301283116a669ed76478c4
742 
743 See Note [Case MFEs]; don't float case expressions from
744 a strict context.
745 
746]
747[Fix Trac #3118: missing alternative
748simonpj@microsoft.com**20090402152834
749 Ignore-this: 9a9866ad88eae871cb98c6795c12349b
750 
751 This patch fixes a rather obscure bug, whereby it's possible
752 for (case C a b of <alts>) to have altenatives that do not inclue
753 (C a b)!  See Note [Unreachable code] in CoreUtils.
754 
755]
756[Use a local interestingDict function instead of importing SimplUtils.interestingArg
757simonpj@microsoft.com**20090402152246
758 Ignore-this: d01d1a42067c2f907a1f2fb2ddec4ada
759 
760 I'm changing the details of SimplUtils.interstingArg, and don't want to
761 mess  up the way Specialise works, so this patch makes a specilialised
762 (ha) function, Specialise.interestingDict, that is used locally.
763 
764 
765]
766[Better panic reporting
767simonpj@microsoft.com**20090402151846
768 Ignore-this: abbd0ab8e2e8771012c17e0fc66fed41
769 
770 Make idDetails and idInfo into proper functions, rather than record
771 fields, so that we can report more informatively if you use thenm on
772 a non-Id.
773 
774]
775[Fix pragmas in binder-swapping
776simonpj@microsoft.com**20090402151616
777 Ignore-this: 422672152247c7732c56e850f3317546
778 
779 In the case binder-swap operation (which is done in OccurAnal),
780 we deliberately use shadowing. But the new shadowing binder should
781 not inherit any fancy INLINE or NOINLINE pragmas from its parent.
782 
783]
784[Float constants to top-level even in first full laziness pass
785simonpj@microsoft.com**20090402151406
786 Ignore-this: c81a6d62b760d50348aaa5de0276d7c6
787 
788 This patch changes the compilation pipeline flags so that constants
789 are floated to the top level even in the first full laziness pass.
790 For some reason this was not done before.  Fixing this makes a big
791 improvement in 'spectral/rewrite', and has zero effect on any other
792 nofib benchmark.
793 
794]
795[update the intro section
796Simon Marlow <marlowsd@gmail.com>**20090401105256
797 Ignore-this: 90aba333b501ecdedca5116d7204e47f
798]
799[Remove the "Installing GHC" section
800Simon Marlow <marlowsd@gmail.com>**20090401103418
801 Ignore-this: 94b8c9bcb8a93442ae19f9547f545f74
802 
803  1. it was out of date in various ways
804  2. this is not the place people look for installation instructions
805  3. we have installation instructions elsewhere (e.g. the INSTALL
806     file in a binary distribution)
807  4. the section "layout of installed files" is now on the wiki under
808     Building/Installing.
809]
810[SPARC: Fix ffi019 split load/store of HsInt64 into two parts to respect alignment constraints
811Ben.Lippmeier@anu.edu.au**20090331045145]
812[SPARC NCG: Fix 64 bit addition, carry bit wasn't getting set.
813Ben.Lippmeier@anu.edu.au**20090330051732]
814[SPARC NCG: When getting a 64 bit word, promote halves to 64 bit before shifting
815Ben.Lippmeier@anu.edu.au**20090330050346]
816[SPARC NCG: HpLim is now always stored on the stack, not in a register
817Ben.Lippmeier@anu.edu.au**20090331051900
818    This fixes the out of memory errors we were getting on sparc
819    after the following patch:
820 
821      Fri Mar 13 03:45:16 PDT 2009  Simon Marlow <marlowsd@gmail.com>
822      * Instead of a separate context-switch flag, set HpLim to zero
823      Ignore-this: 6c5bbe1ce2c5ef551efe98f288483b0
824      This reduces the latency between a context-switch being triggered and
825      the thread returning to the scheduler, which in turn should reduce the
826      cost of the GC barrier when there are many cores.
827]
828[Allow Haddock comments in type synonyms
829David Waern <david.waern@gmail.com>**20090331212306
830 Ignore-this: 11f1bad22d25d8d0017580d020c1aa5d
831 
832 We now use `ctypedoc` instead of `ctype` for type synonyms. `ctypedoc` was
833 previously only used for top-level type signatures. This change means that type
834 synonyms now can contain comments, just like top-level type signatures.
835   
836 Note:
837   
838 * I've modified `ctypedoc` so it allows implicit parameters and equational
839 constraints, just like ctype.
840   
841 * Since `ctypedoc` allows nested foralls, we now allow that in type synonyms.
842   
843 * I have inlined some productions into gentypedoc so that there is now a
844 non-doc version of every production with a 'doc' suffix. (Stylistic change
845 only, which should make the code easier to follow).
846   
847 * It would have been nice to simplify the grammar by unifying `ctype` and
848 ctypedoc` into one production, allowing comments on types everywhere (and
849 rejecting them after parsing, where necessary).  This is however not possible
850 since it leads to ambiguity. The reason is the support for comments on record
851 fields:
852   
853 > data R = R { field :: Int -- ^ comment on the field }
854   
855 If we allow comments on types here, it's not clear if the comment applies
856 to 'field' or to 'Int'. So we must use `ctype` to describe the type.
857]
858[mkErrorAppDs now takes an SDoc rather than a String
859Ian Lynagh <igloo@earth.li>**20090331134058
860 This avoids some showSDoc's where the String then gets converted back
861 into an SDoc.
862]
863[FIX #1779 and qq005: export hs_hpc_module
864Simon Marlow <marlowsd@gmail.com>**20090330084414
865 Ignore-this: cacd10985619c25505f0e48400187ccc
866]
867[go back to using $CPUS + 1 for the number of threads to use
868Simon Marlow <marlowsd@gmail.com>**20090330083032
869 Ignore-this: 2c1915e2c13b953513a2c16cc86a7073
870]
871[use a UniqSet for is MathFun, this list is getting quite large
872Simon Marlow <marlowsd@gmail.com>**20090330082957
873 Ignore-this: ceaf912ed4ec0d778178e2391715c689
874]
875[Fix an nasty black hole, concerning computation of isRecursiveTyCon
876simonpj@microsoft.com**20090330084912
877 Ignore-this: 3bf163be6629cb933a3be1564ac2b0cc
878 
879 Fixing #246 (pattern-match order in record patterns) made GHC go into
880 a black hole, by changing the order of patterm matching in
881 TyCon.isProductTyCon!  It turned out that GHC had been avoiding the
882 black hole only by the narrowest of margins up to now!
883 
884 The black hole concerned the computation of which type constructors
885 are recursive, in TcTyDecls.calcRecFlags.  We now refrain from using
886 isProductTyCon there, since it triggers the black hole (very
887 indirectly).  See the "YUK YUK" comment in the body of calcRecFlags.
888 
889 As it turns out, the fact that TyCon.isProductTyCon matched on the
890 algTcRec field was quite redundant, so I removed that too.  However,
891 without the fix to calcRecFlags, this wouldn't fix the black hole
892 because of the use of isRecursiveTyCon in BuildTyCl.mkNewTyConRhs.
893 
894 Anyway, it's fine now.
895 
896]
897[Add an extra print to -ddump-tc-trace
898simonpj@microsoft.com**20090330084835
899 Ignore-this: 4197fee2974d94a30af97549a858a44
900]
901[Remove dead code (dataConsStupidTheta)
902simonpj@microsoft.com**20090330084739
903 Ignore-this: 56a6f274aa7194f614a34f664c6e80af
904]
905[Fix Trac #246: order of matching in record patterns
906simonpj@microsoft.com**20090330083736
907 Ignore-this: 2f0a008e0086cfe7ac5100d4253f4fb1
908 
909 While I was looking at the desugaring of pattern matching (fixing
910 Trac #3126) I finally got around to fixing another long-standing bug:
911 when matching in a record pattern, GHC should match left-to-right in
912 the programmer-specfied order, *not* left-to-right positionally in
913 the original record declaration.
914 
915 Needless to say, that requires a little more code.
916 See Note [Record patterns] in MatchCon.lhs
917 
918 
919]
920[Fix Trac #3126: matching overloaded literals
921simonpj@microsoft.com**20090330083435
922 Ignore-this: 560c5e7dba95400bef4a73569ea26b82
923 
924 Claus Reinke uncovered a long-standing bug in GHC, whereby we were
925 combining the pattern-match on overloaded literals, missing the fact
926 that an intervening pattern (for a different literal) might also
927 match.  (If someone had a very odd implementation of fromInteger!)
928 
929 See Note [Grouping overloaded literal patterns] in Match.lhs
930 
931 If this merges smoothly to 6.10, go for it, but it's very much
932 a corner case.
933 
934 Thank you Claus!
935 
936]
937[White space cosmetics only
938simonpj@microsoft.com**20090330083103
939 Ignore-this: c52ebfa8f85e81abcd8694b3a30c6a63
940]
941[Improve mkDupableCont; and fix Trac #3116
942simonpj@microsoft.com**20090325095205
943 
944 It turns out that, as a result of a change I made a few months ago to
945 the representation of SimplCont, it's easy to solve the optimisation
946 challenge posed by Trac #3116.  Hurrah.
947 
948 Extensive comments in Note [Duplicating StrictArg].
949 
950]
951[Avoid quadratic complexity in occurrence analysis (fix Trac #1969)
952simonpj@microsoft.com**20090323103826
953   
954   The occurrence analyser could go out to lunch in bad cases, because
955   of its clever loop-breaking algorithm. This patch makes it bale out
956   in bad cases.  Somewhat ad-hoc: a nicer solution would be welcome.
957   
958   See Note [Complexity of loop breaking] for the details.
959 
960]
961[Improve arity propagation in the specialiser
962simonpj@microsoft.com**20090323101614
963 
964 This patch makes the specialiser propagate arities a bit more
965 eagerly, which avoids a spurious warning in the simplifier.
966 
967 See Note [Arity decrease] in Simplify.lhs
968 
969]
970[check for ThreadRelocated in checkBlackHoles()
971Simon Marlow <marlowsd@gmail.com>**20090326140343
972 Ignore-this: 5d63f26567030cf0ccfa33da82702f86
973]
974[syb no longer needs to be wired in
975Ian Lynagh <igloo@earth.li>**20090326130517]
976[Template Haskell: added bang patterns
977Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090326100208
978 Ignore-this: f15890cd7ee7fee664af342796780443
979]
980[Template Haskell: support for kind annotations
981Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090326085520
982 Ignore-this: 722c23eac614089d24a8e8373a13de3b
983]
984[update list of C math functions
985Bertram Felgenhauer <int-e@gmx.de>**20090323183630
986 Ignore-this: af5fa15d957d853d27a0c4b465c2419e
987 Fix via C compilation of modules that import, say, log1p from math.h (#3117)
988 
989 The list is based on preprocessing Stg.h with glibc 2.6.1 headers, and
990 cross-checked with the ISO C 99 standard (draft).
991]
992[Template Haskell: make reify aware of type families
993Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090325033447
994 Ignore-this: 4b9c2d626e7c506a74331bb91d0fcff7
995 - Reifying a type family returns a TH family declaration
996 - Reifying a data constructor from a data instance attributes that
997   constructor to the family (not the representation tycon)
998 - Ideally, we should have facilities to reify all type/data instances of a
999   given family (and the same for instances of a class).  I haven't added that
1000   here as it involves some API design.
1001]
1002[Template Haskell: support for INLINE and SPECIALISE pragmas
1003Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090324232940
1004 Ignore-this: 1f6c2e0de01842da7c9384d3ccafcb63
1005]
1006[fix an fprintf that should be fputs (quiets gcc)
1007Simon Marlow <marlowsd@gmail.com>**20090322195441]
1008[check return value of write (quiets gcc)
1009Simon Marlow <marlowsd@gmail.com>**20090322195319]
1010[Fix locking in evacuate_large() (FIX openfile008(threaded2))
1011Simon Marlow <marlowsd@gmail.com>**20090323092953
1012 Ignore-this: 2c6c2790676c3bcd40f0a0b6030d31dc
1013]
1014[Please the -Wall police by moving a variable declaration; really FIX getNumberOfProcessors() for MacOS X
1015Austin Seipp <mad.one@gmail.com>**20090320124846
1016 Ignore-this: fcd0015e0923855df814f55d88770db2
1017]
1018[wibble in setExecutable
1019Austin Seipp <mad.one@gmail.com>**20090320120043
1020 Ignore-this: 968aa9856a5494e4e58ca8a20106298f
1021]
1022[FIX getNumberOfProcessors() on MacOS X
1023Austin Seipp <mad.one@gmail.com>**20090318023127
1024 Ignore-this: 8df07f3353a8e12be9becf4b855d5fdf
1025 
1026 This checks if darwin_HOST_OS is defined and, if so, we call
1027 sysctlbyname() on the "hw.ncpu" property to get the processor count.
1028]
1029[Work around Solaris's grep not supporting -q
1030Ian Lynagh <igloo@earth.li>**20090319171501]
1031[Some wording wibbles from Thorkil
1032Ian Lynagh <igloo@earth.li>**20090319165916]
1033[Fix bug in setThreadAffinity() (Linux)
1034Simon Marlow <marlowsd@gmail.com>**20090320100446
1035 Ignore-this: 6e8b430fe03959f7e7f8c641d5a589f6
1036]
1037[Implement setThreadAffinity for Mac OS X (from 10.5)
1038Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090320071347
1039 Ignore-this: d5e2104b4a011fc98500527741c5e7a7
1040]
1041[Fix warnings with older versions of gcc (3.4.5)
1042Simon Marlow <marlowsd@gmail.com>**20090319124932]
1043[wibble for getNumberOfProcessors
1044Simon Marlow <marlowsd@gmail.com>**20090318165936
1045 Ignore-this: 60a776b8250590f72e45c941b810f14a
1046]
1047[Set thread affinity with +RTS -qa (only on Linux so far)
1048Simon Marlow <marlowsd@gmail.com>**20090318154719
1049 Ignore-this: a799d276f29dd24c655e1f423eb6743e
1050]
1051[Template Haskell support for equality constraints
1052Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090319132347
1053 Ignore-this: 2a0150d9466b0552c5094cdcdc08dbe5
1054]
1055[add missing case in ENTER() (fixes readwrite002(profasm) crash)
1056Simon Marlow <marlowsd@gmail.com>**20090319102126
1057 Ignore-this: 5599d4df888e830a8865e57e6745e094
1058]
1059[FIX unregisterised build
1060Simon Marlow <marlowsd@gmail.com>**20090319100954
1061 Ignore-this: 97f15b77b030f1f26b0827e6335a8251
1062]
1063[Template Haskell: support for type family declarations
1064Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090319084306
1065 Ignore-this: b9f5f5af61a5da53dc4326f380fdb72e
1066]
1067[Comment explaining use of seq in DFMonad
1068dias@eecs.tufts.edu**20090318210138]
1069[FIX unregisterised target by #ifdefing targetPlatform stuff
1070Simon Marlow <marlowsd@gmail.com>**20090318151255
1071 Ignore-this: 916b3929d0edcd18951591a35e0cc99
1072 I'm not sure if this is the correct fix.  If targetPlatform is really
1073 NCG-specific, then maybe we should call it asmTargetPlatform or
1074 something.
1075]
1076[Removed a trace
1077dias@eecs.tufts.edu**20090318151343]
1078[Calling convention bug and cleanup
1079dias@eecs.tufts.edu**20090317204238
1080 - yet another wrong calling convention; this one was a special case for returning one
1081   value.
1082]
1083[Inconsistent type and arguments in safe foreign calls...
1084dias@eecs.tufts.edu**20090316214654
1085 - The function argument was stripped from the argument list but not from the type.
1086   Now they're both stripped.
1087]
1088[stack overflows and out of memory's
1089dias@eecs.tufts.edu**20090316213506
1090 1. Stack overflow fixed by making dataflow monad strict in the state.
1091 2. Out of memory fixed by "forgetting" lastoutfacts in the dataflow monad
1092    where we should. We were creating an unnecessarily long list that grew
1093    exponentially...
1094]
1095[Add the notion of "constructor-like" Ids for rule-matching
1096simonpj@microsoft.com**20090318105911
1097 Ignore-this: 9249b00a2292563e68d5d715376b216c
1098 
1099 This patch adds an optional CONLIKE modifier to INLINE/NOINLINE pragmas,
1100    {-# NOINLINE CONLIKE [1] f #-}
1101 The effect is to allow applications of 'f' to be expanded in a potential
1102 rule match.  Example
1103   {-# RULE "r/f" forall v. r (f v) = f (v+1) #-}
1104 
1105 Consider the term
1106      let x = f v in ..x...x...(r x)...
1107 Normally the (r x) would not match the rule, because GHC would be scared
1108 about duplicating the redex (f v). However the CONLIKE modifier says to
1109 treat 'f' like a constructor in this situation, and "look through" the
1110 unfolding for x.  So (r x) fires, yielding (f (v+1)).
1111 
1112 The main changes are:
1113   - Syntax
1114 
1115   - The inlinePragInfo field of an IdInfo has a RuleMatchInfo
1116     component, which records whether or not the Id is CONLIKE.
1117     Of course, this needs to be serialised in interface files too.
1118 
1119   - The occurrence analyser (OccAnal) and simplifier (Simplify) treat
1120     CONLIKE thing like constructors, by ANF-ing them
1121 
1122   - New function coreUtils.exprIsExpandable is like exprIsCheap, but
1123     additionally spots applications of CONLIKE functions
1124 
1125   - A CoreUnfolding has a field that caches exprIsExpandable
1126 
1127   - The rule matcher consults this field.  See
1128     Note [Expanding variables] in Rules.lhs.
1129 
1130 On the way I fixed a lurking variable bug in the way variables are
1131 expanded.  See Note [Do not expand locally-bound variables] in
1132 Rule.lhs.  I also did a bit of reformatting and refactoring in
1133 Rules.lhs, so the module has more lines changed than are really
1134 different.
1135 
1136]
1137[Fixes to "Retract Hp *before* checking for HpLim==0"
1138Simon Marlow <marlowsd@gmail.com>**20090318111847
1139 Ignore-this: 154a41eeb18a775465db29c818d1ec3a
1140]
1141[Add fast event logging
1142Simon Marlow <marlowsd@gmail.com>**20090317164214
1143 Ignore-this: c470164a5e66dca06fddc2fe172025de
1144 
1145 Generate binary log files from the RTS containing a log of runtime
1146 events with timestamps.  The log file can be visualised in various
1147 ways, for investigating runtime behaviour and debugging performance
1148 problems.  See for example the forthcoming ThreadScope viewer.
1149 
1150 New GHC option:
1151 
1152   -eventlog   (link-time option) Enables event logging.
1153 
1154   +RTS -l     (runtime option) Generates <prog>.eventlog with
1155               the binary event information.
1156 
1157 This replaces some of the tracing machinery we already had in the RTS:
1158 e.g. +RTS -vg  for GC tracing (we should do this using the new event
1159 logging instead).
1160 
1161 Event logging has almost no runtime cost when it isn't enabled, though
1162 in the future we might add more fine-grained events and this might
1163 change; hence having a link-time option and compiling a separate
1164 version of the RTS for event logging.  There's a small runtime cost
1165 for enabling event-logging, for most programs it shouldn't make much
1166 difference.
1167 
1168 (Todo: docs)
1169]
1170[FIX biographical profiling (#3039, probably #2297)
1171Simon Marlow <marlowsd@gmail.com>**20090317144939
1172 Ignore-this: 3b1d53fdf0f99c04e7d0055534baf52f
1173 Since we introduced pointer tagging, we no longer always enter a
1174 closure to evaluate it.  However, the biographical profiler relies on
1175 closures being entered in order to mark them as "used", so we were
1176 getting spurious amounts of data attributed to VOID.  It turns out
1177 there are various places that need to be fixed, and I think at least
1178 one of them was also wrong before pointer tagging (CgCon.cgReturnDataCon).
1179]
1180[Add getNumberOfProcessors(), FIX MacOS X build problem (hopefully)
1181Simon Marlow <marlowsd@gmail.com>**20090317093309
1182 Ignore-this: 3de51351864f7276f3f887cca5385294
1183 Somebody needs to implement getNumberOfProcessors() for MacOS X,
1184 currently it will return 1.
1185]
1186[FIX #3093: stub filenames when using -osuf
1187Simon Marlow <marlowsd@gmail.com>**20090316203437
1188 Ignore-this: 999de35952804c760462ae32cfdd04d5
1189 Also remove some unused cruft
1190]
1191[Don't call processHeapClosureForDead on pinned blocks
1192Simon Marlow <marlowsd@gmail.com>**20090316160534
1193 Ignore-this: 33a60e4ce78db6cc5bab399ec673ad0a
1194 Fixes heapprof001(prof_hp) after fix for #2917
1195]
1196[Retract Hp *before* checking for HpLim==0
1197Simon Marlow <marlowsd@gmail.com>**20090316160500
1198 Ignore-this: f8fdb26c724f766cfae016321be101c4
1199 Fixes heapprof001(prof_hp) following the recent HpLim patch, which
1200 depended on the lack of slop in the heap.
1201]
1202[eliminate some not-quite-duplicate code
1203Simon Marlow <marlowsd@gmail.com>**20090313155619
1204 Ignore-this: 2edadf2f966bf37868b355da1faa211c
1205]
1206[start finalizers on the current Capability rather than last_free_capability
1207Simon Marlow <marlowsd@gmail.com>**20090313155602
1208 Ignore-this: b3e7bc2a7966cd5778e55a0e5dc83553
1209]
1210[cope with ThreadRelocated on the sleeping_queue
1211Simon Marlow <marlowsd@gmail.com>**20090217132757
1212 Ignore-this: 6b73d2b2e4142d7db4e7db4570f644ff
1213]
1214[Fix Trac #3095, and make RdrHsSyn warning-clean
1215simonpj@microsoft.com**20090316174706
1216 Ignore-this: db47522307c92d93e0037143dee74375
1217]
1218[Layout only
1219simonpj@microsoft.com**20090316164619
1220 Ignore-this: af7c9018e873b1618bfe4a2f3102a0c7
1221]
1222[Reject foralls in constructor args in 'deriving', except for Functor etc
1223simonpj@microsoft.com**20090316164502
1224 Ignore-this: 2538aee2634fb587d74a8dc1a064cb5b
1225]
1226[Fix Trac #3092
1227simonpj@microsoft.com**20090316164049
1228 Ignore-this: 9502fdd84b7b1849f6c37afe12d46d64
1229 
1230 We were't checking that a 'data/type instance' was extending a family
1231 type constructor.
1232 
1233 Merge to 6.10 if we ever release 6.10.3 (or do it for 6.10.2).
1234 
1235 
1236]
1237[Ensure the orientation of var-var equalities is correct for instatiation
1238Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090315065709
1239 Ignore-this: 95cf805dde74e0b9ff36a7fe7556ed1a
1240 - During fianlisation we use to occasionally swivel variable-variable equalities
1241 - Now, normalisation ensures that they are always oriented as appropriate for
1242   instantation.
1243 - Also fixed #1899 properly; the previous fix fixed a symptom, not the cause.
1244]
1245[Use work-stealing for load-balancing in the GC
1246Simon Marlow <marlowsd@gmail.com>**20090313135116
1247 Ignore-this: d05027217c516de3d75f4d1844c860fd
1248   
1249 New flag: "+RTS -qb" disables load-balancing in the parallel GC
1250 (though this is subject to change, I think we will probably want to do
1251 something more automatic before releasing this).
1252 
1253 To get the "PARGC3" configuration described in the "Runtime support
1254 for Multicore Haskell" paper, use "+RTS -qg0 -qb -RTS".
1255 
1256 The main advantage of this is that it allows us to easily disable
1257 load-balancing altogether, which turns out to be important in parallel
1258 programs.  Maintaining locality is sometimes more important that
1259 spreading the work out in parallel GC.  There is a side benefit in
1260 that the parallel GC should have improved locality even when
1261 load-balancing, because each processor prefers to take work from its
1262 own queue before stealing from others.
1263]
1264[Fix Trac #3087: derived Data now defines dataCast1/2
1265simonpj@microsoft.com**20090313134436
1266 Ignore-this: df43405a2ef5adef20f9eb3675e7411f
1267 
1268 This patch generates code in deriving(Data) for dataCast1 or 2 as
1269 appropriate.
1270 
1271 While I was there I did some refactoring (of course), pulling out
1272 the TcDeriv.inferConstraints as a separate function.
1273 
1274 I don't think it's worth merging this to 6.10.2, even though it's a bugfix,
1275 because it modifies code that I added in the HEAD only (for deriving Functor)
1276 so the merge will be sligtly awkward.  And there's an easy workaround.
1277 
1278]
1279[Adjust error message slightly to make it clearer
1280simonpj@microsoft.com**20090313134402
1281 Ignore-this: 46b0abb88c1fe11cd4ff059955b81561
1282]
1283[just comment formatting
1284Simon Marlow <marlowsd@gmail.com>**20090313132339
1285 Ignore-this: f53b0dca0896134dd704fc3aca3ea93f
1286]
1287[Add "+RTS -N" to determine the -N value automatically (see #1741)
1288Simon Marlow <marlowsd@gmail.com>**20090313114646
1289 Ignore-this: b5dd21278e02f4a161093466ca97dce
1290]
1291[tidy up "missing symbol" error message
1292Simon Marlow <marlowsd@gmail.com>**20090313101334]
1293[Fix sanity checking after fix to #2917
1294Simon Marlow <marlowsd@gmail.com>**20090312093855]
1295[Instead of a separate context-switch flag, set HpLim to zero
1296Simon Marlow <marlowsd@gmail.com>**20090313104516
1297 Ignore-this: 6c5bbe1ce2c5ef551efe98f288483b0
1298 This reduces the latency between a context-switch being triggered and
1299 the thread returning to the scheduler, which in turn should reduce the
1300 cost of the GC barrier when there are many cores.
1301 
1302 We still retain the old context_switch flag which is checked at the
1303 end of each block of allocation.  The idea is that setting HpLim may
1304 fail if the the target thread is modifying HpLim at the same time; the
1305 context_switch flag is a fallback.  It also allows us to "context
1306 switch soon" without forcing an immediate switch, which can be costly.
1307]
1308[TAG 2009-03-13
1309Ian Lynagh <igloo@earth.li>**20090313021251]
1310[FIX #3079, dodgy parsing of LANGUAGE pragmas
1311Simon Marlow <marlowsd@gmail.com>**20090312141103
1312 Ignore-this: f490bd047421c8aff6c493e79178594e
1313 I ended up rewriting this horrible bit of code, using (yikes) lazy I/O
1314 to slurp in the source file a chunk at a time.  The old code tried to
1315 read the file a chunk at a time, but failed with LANGUAGE pragmas
1316 because the parser for LANGUAGE has state and the state wasn't being
1317 saved between chunks.  We're still closing the Handle eagerly, so
1318 there shouldn't be any problems here.
1319]
1320[avoid a crash: don't return unless the run queue has some threads in it
1321Simon Marlow <marlowsd@gmail.com>**20090311154559]
1322[Allocate the right number of words in new*PinnedByteArrayzh_fast
1323Ian Lynagh <igloo@earth.li>**20090311160615]
1324[FIX #2816 (correct unicode output for :type/:kind)
1325Simon Marlow <marlowsd@gmail.com>**20090311112311
1326 Ignore-this: 7f6a7ac6e2fe4f4242df586ef2391506
1327 This is just a hack, since we don't have correct unicode output for
1328 Handles in general, I just fixed a couple of places where we were not
1329 converting to UTF-8 for output.
1330]
1331[Fix #2992: don't create a named event
1332Simon Marlow <marlowsd@gmail.com>**20090311094208
1333 Evidently I misread the docs for CreateEvent: if you pass a name to
1334 CreateEvent, then it creates a single shared system-wide Event with
1335 that name.  So all Haskell processes on the machine were sharing the
1336 same Event object.  duh.
1337]
1338[FIX #2832: Setting SplitObjs=NO doesn't disable -split-objs in GHC
1339Simon Marlow <marlowsd@gmail.com>**20090311110058
1340 Ignore-this: d5f55ecea5803c1ae745a03d051cfa3f
1341 Now ghc --info reports whether-split-objs is supported, rather than
1342 whether the libraries were built using -split-objs.
1343]
1344[FIX #2976: fix buggy implementation of shadowing in GHC.getBindings
1345Simon Marlow <marlowsd@gmail.com>**20090311102007
1346 Ignore-this: b8320d35defa11b29632bd402a3eef4e
1347]
1348[Don't put a trailing / on the mingw include path
1349Ian Lynagh <igloo@earth.li>**20090310172242]
1350[Fix a bug which sometimes caused extra major GCs to be performed
1351Simon Marlow <marlowsd@gmail.com>**20090309140004
1352 Ignore-this: 5127ff02153781823abb21fbb6f233f5
1353 A long-running GC would cause the timer signal to declare the system
1354 to be idle, which would cause a major GC immediately following the
1355 current GC.  This only happened with +RTS -N2 or greater.
1356]
1357[Redesign 64-bit HEAP_ALLOCED (FIX #2934 at the same time)
1358Simon Marlow <marlowsd@gmail.com>**20090309121300
1359 Ignore-this: 4018145c528e52995d1feb7636e34384
1360 
1361 After much experimentation, I've found a formulation for HEAP_ALLOCED
1362 that (a) improves performance, and (b) doesn't have any race
1363 conditions when used concurrently.  GC performance on x86_64 should be
1364 improved slightly.  See extensive comments in MBlock.h for the
1365 details.
1366]
1367[Partial fix for #2917
1368Simon Marlow <marlowsd@gmail.com>**20090306100018
1369 Ignore-this: d62309f9a2b682cc2b5ef0bb4376ea54
1370 
1371  - add newAlignedPinnedByteArray# for allocating pinned BAs with
1372    arbitrary alignment
1373 
1374  - the old newPinnedByteArray# now aligns to 16 bytes
1375 
1376 Foreign.alloca will use newAlignedPinnedByteArray#, and so might end
1377 up wasting less space than before (we used to align to 8 by default).
1378 Foreign.allocaBytes and Foreign.mallocForeignPtrBytes will get 16-byte
1379 aligned memory, which is enough to avoid problems with SSE
1380 instructions on x86, for example.
1381 
1382 There was a bug in the old newPinnedByteArray#: it aligned to 8 bytes,
1383 but would have failed if the header was not a multiple of 8
1384 (fortunately it always was, even with profiling).  Also we
1385 occasionally wasted some space unnecessarily due to alignment in
1386 allocatePinned().
1387 
1388 I haven't done anything about Foreign.malloc/mallocBytes, which will
1389 give you the same alignment guarantees as malloc() (8 bytes on
1390 Linux/x86 here).
1391]
1392[Don't force HSCOLOUR_SRCS = YES when validating
1393Ian Lynagh <igloo@earth.li>**20090308171633
1394 This removes a burden from developers, and I can't remember an
1395 occasion where it would have caught a regression.
1396]
1397[Add CONTRACT to the pragmas that we recognise.
1398Ian Lynagh <igloo@earth.li>**20090306194826
1399 It's used by ESC/Haskell.
1400]
1401[Generate lots of __inline_me during vectorisation
1402Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090307135652]
1403[Special-case desugaring of simple parallel array comprehensions
1404Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090307134049]
1405[Make LDV_FILL_SLOP use a forwards loop rather than a backwards loop
1406Ian Lynagh <igloo@earth.li>**20090306155124]
1407[Fix warning
1408Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090306123645]
1409[Try not to avoid vectorising purely scalar functions
1410Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090306115508]
1411[Package dph needs to be cleaned in stage=1, too
1412Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090306031628
1413 Ignore-this: b67f993abfbbe47c6bd417049955b9be
1414]
1415[Add --version to runghc. Trac #2757.
1416Ian Lynagh <igloo@earth.li>**20090305162045
1417 We use the GHC version number, as the old runghc one doesn't seem very
1418 useful.
1419]
1420[add final newlines
1421Simon Marlow <marlowsd@gmail.com>**20090305140014
1422 My Windows build has started complaining about lacking final newlines,
1423 I'm not entirely sure why.
1424]
1425[remove foo.exe.manifest when --embed-manifest is on
1426Simon Marlow <marlowsd@gmail.com>**20090305112726]
1427[add --with-ld=c:/mingw/bin/ld
1428Simon Marlow <marlowsd@gmail.com>**20090305112618]
1429[Document -fwarn-unrecognised-pragmas; fixes trac #3031
1430Ian Lynagh <igloo@earth.li>**20090305143128]
1431[On OS X/x86, tell gcc to generate instructions for i686. Fixes trac #2983.
1432Ian Lynagh <igloo@earth.li>**20090305142050
1433 By default, gcc on OS X will generate SSE instructions, which need
1434 things 16-byte aligned, but we don't 16-byte align things. Thus drop
1435 back to generic i686 compatibility.
1436]
1437[By default, only HsColour the docs if we find HsColour. Fixes trac #3004.
1438Ian Lynagh <igloo@earth.li>**20090305132723
1439 If you manually set HSCOLOUR_SRCS=YES then the build will fail if
1440 HsColour wasn't found.
1441]
1442[Make -fdicts-cheap cope with implication constraints
1443simonpj@microsoft.com**20090305134447
1444 Ignore-this: 5fe66cc26e4dc6f233c73350cef7a110
1445 
1446 See the Note [Dictionary-like types] in TcType for the full story here
1447 Should only affect programs that use -fdicts-cheap, for
1448 which you'll get better arities
1449 
1450]
1451[Finally fix Trac #3066
1452simonpj@microsoft.com**20090305090935
1453 Ignore-this: 8734c1799f854d9da6be76a9c134335e
1454 
1455 This is a fix to
1456   Tue Mar  3 17:42:58 GMT 2009  simonpj@microsoft.com
1457     * Fix Trac #3066: checking argument types in foreign calls
1458 which I embarassingly got wrong.
1459 
1460 Have to be careful when expanding recursive newtypes.
1461 
1462 Pls merge.
1463 
1464]
1465[Fix a broken link. Spotted by Norman Ramsey in trac #3068.
1466Ian Lynagh <igloo@earth.li>**20090304165351]
1467[Fix spelling (Trac#3069)
1468simonpj@microsoft.com**20090304092232
1469 Ignore-this: fee0f1d060c6c1c7a875943fe543c4fa
1470]
1471[Layout only
1472simonpj@microsoft.com**20090304091956
1473 Ignore-this: 4410b2b26227263b24fd5aa7d2144ea0
1474]
1475[Fix a long-standing latent bug (and the build): check res_ty not sig_ty
1476simonpj@microsoft.com**20090304091913
1477 Ignore-this: 3494ed3f342b63840eef791a5200695
1478]
1479[Fix #3067: GHCi panics with 'initTc:LIE' while :stepping on code with funny types
1480pepe iborra <mnislaih@gmail.com>**20090303193706
1481 
1482 The problem is that calls to boxyUnify would panic if the types involved
1483 contained type functions.
1484 It looks like one should wrap these calls with getLIE, although I don't
1485 really know what I am doing here
1486 
1487 
1488]
1489[Fix Trac #3066: checking argument types in foreign calls
1490simonpj@microsoft.com**20090303174258
1491 Ignore-this: c07b0df24b9965b190dc0e0797401c51
1492 
1493 When checking argument types in a foreign call we were stupidly
1494 looking through foralls.  The fix is easy.
1495 
1496 Merge to 6.10.2
1497 
1498]
1499[Fix Trac #3057 in deriving Functor
1500simonpj@microsoft.com**20090303170612
1501 Ignore-this: 7d7783868e4684930f75c3b35c18c586
1502 
1503 The universal type variables of a data constructor are not necessarily
1504 identical to those of its parent type constructor, especially if the
1505 data type is imported.
1506 
1507 While I was at it, I did a significant refactoring to make all this
1508 traversal of types more comprehensible, by adding the data type
1509 FFoldType.
1510 
1511]
1512[fix assertion failure with -debug non-threaded RTS (by deleting code!)
1513Simon Marlow <marlowsd@gmail.com>**20090303143942
1514 Ignore-this: 352f3c57979529f44ea92edbf1acbf07
1515]
1516[improvements: generate LaTeX tables for more than one run
1517Simon Marlow <marlowsd@gmail.com>**20090303141346
1518 Ignore-this: 47588f0c4d046f2b5ff0dc7be38777c0
1519]
1520[A few bug fixes; some improvements spurred by paper writing
1521dias@eecs.harvard.edu**20090303150228
1522 Among others:
1523 - Fixed Stg->C-- translation of let-no-escapes -- it's important to use the
1524   right continuation...
1525 - Fixed infinite recursion in X86 backend (shortcutJump mishandled infinite loops)
1526 - Fixed yet another wrong calling convention -- primops take args only in vanilla regs,
1527   but they may return results on the stack!
1528 - Removed StackInfo from LGraph and Block -- now in LastCall and CmmZ
1529 - Updated avail-variable and liveness code
1530 
1531]
1532[Comments only
1533simonpj@microsoft.com**20090303111513
1534 Ignore-this: 5c2a7c2a8116fb05e0e035baea9566fa
1535]
1536[Filter out carriage returns in doc strings
1537David Waern <david.waern@gmail.com>**20090228145351
1538 
1539 We want the internal format to contain LFs only. This makes it easier to work
1540 with the doc strings for clients of the GHC API.
1541]
1542[z-encode digits at the start of a symbol name; fixes trac #2997
1543Ian Lynagh <igloo@earth.li>**20090227180029
1544 Digits already have a couple of meanings in z-encoding (Z3T is a tuple,
1545 and z123U is a unicode character), so we encode digits as unicode
1546 characters to avoid trying to squeeze in another meaning.
1547 
1548 Also removed a little GHC < 6.2 compatibility hack.
1549]
1550[Whitespace only
1551Ian Lynagh <igloo@earth.li>**20090227163435]
1552[Improve documentation of bang patterns
1553simonpj@microsoft.com**20090227101503
1554 Ignore-this: fa7bf72db82a612d16d44a93f1537351
1555]
1556[Use 'nonIOok' instead of 'True'; cosmetics only
1557simonpj@microsoft.com**20090223101659
1558 Ignore-this: 80200cf3aec5abb95c6b23ef37fb590a
1559]
1560[Tweak +RTS --info docs
1561Ian Lynagh <igloo@earth.li>**20090227020758]
1562[In +RTS --info output, use YES rather than Yes
1563Ian Lynagh <igloo@earth.li>**20090227010230]
1564[FIX #1891 (describe +RTS --info output in GHC user guide)
1565Andrew Coppin <andrewcoppin@btinternet.com>**20090214150234]
1566[If we are given -Werror, then pass -Werror to cpp
1567Ian Lynagh <igloo@earth.li>**20090226001606]
1568[Strip tag bits from closure pointers before trying to deference them.
1569Ben.Lippmeier@anu.edu.au**20090224101346]
1570[SPARC NCG: Split out sanity checking into its own module
1571Ben.Lippmeier@anu.edu.au**20090223071207]
1572[SPARC NCG: Add jumps to end of blocks when working out condition codes
1573Ben.Lippmeier@anu.edu.au**20090223062135]
1574[SPARC NCG: Enforce the invariant that each block ends with a jump.
1575Ben.Lippmeier@anu.edu.au**20090223060707
1576 
1577  - If each basic block doesn't end with a jump then the register
1578    liveness determinator will get the cross-block liveness info
1579    wrong, resulting in a bad allocation.
1580]
1581[Add targets clean.library.dph and remake.library.dph
1582Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090224112037
1583 Ignore-this: bc561099d9e32b6c7416bd60e5516733
1584 - Package dph ist a meta package that contains a number of subpackages inside.
1585 - This patch adds two targets to clean and remake all subpackages with a
1586   single command.
1587]
1588[:steplocal and :stepmodule should not polute trace history
1589Peter Hercek <phercek@gmail.com>**20090222201002]
1590[Do not print anything to stdout when stopping at a breakpoint with custom code attached
1591Peter Hercek <phercek@gmail.com>**20090222195551
1592 
1593]
1594[newPinnedByteArray#: align the result to 16-bytes (part of #2917)
1595Simon Marlow <marlowsd@gmail.com>*-20090219103245
1596 Ignore-this: 1aa4cd40aef9690760b3bf65e284efcb
1597]
1598[Only use STAGE3_PACKAGE_CONF for building GHC itself
1599Ian Lynagh <igloo@earth.li>**20090221151530
1600 In particular, when building dph with the stage2 compiler, we want to
1601 register it in the main package.conf.
1602]
1603[Export blockUserSignals and unblockUserSignals (needed for #2870)
1604Simon Marlow <marlowsd@gmail.com>**20090219113418
1605 Ignore-this: b7c26c801e515c6848f1f8fca024198f
1606]
1607[#2860: remove redundant unblocking of signals
1608Simon Marlow <marlowsd@gmail.com>**20090219103258
1609 Ignore-this: c603e23fbdc7f7f7de7fcd9a7aa28f0b
1610]
1611[newPinnedByteArray#: align the result to 16-bytes (part of #2917)
1612Simon Marlow <marlowsd@gmail.com>**20090219103245
1613 Ignore-this: 1aa4cd40aef9690760b3bf65e284efcb
1614]
1615[Rewrite of signal-handling (ghc patch; see also base and unix patches)
1616Simon Marlow <marlowsd@gmail.com>**20090219103142
1617 Ignore-this: aca7c3e258224fadc6f0f2fee86b2971
1618 
1619 The API is the same (for now).  The new implementation has the
1620 capability to define signal handlers that have access to the siginfo
1621 of the signal (#592), but this functionality is not exposed in this
1622 patch.
1623 
1624 #2451 is the ticket for the new API.
1625 
1626 The main purpose of bringing this in now is to fix race conditions in
1627 the old signal handling code (#2858).  Later we can enable the new
1628 API in the HEAD.
1629 
1630 Implementation differences:
1631 
1632  - More of the signal-handling is moved into Haskell.  We store the
1633    table of signal handlers in an MVar, rather than having a table of
1634    StablePtrs in the RTS.
1635 
1636  - In the threaded RTS, the siginfo of the signal is passed down the
1637    pipe to the IO manager thread, which manages the business of
1638    starting up new signal handler threads.  In the non-threaded RTS,
1639    the siginfo of caught signals is stored in the RTS, and the
1640    scheduler starts new signal handler threads.
1641]
1642[Fix an off-by-one; fixes the second bug in trac #3001
1643Ian Lynagh <igloo@earth.li>**20090218235620]
1644[Install libHSffi_p.a
1645Ian Lynagh <igloo@earth.li>**20090218165913]
1646[Fix ghc and ghci wrappers on Windows
1647Ian Lynagh <igloo@earth.li>**20090218005034]
1648[Make versioned ghc and ghci programs on Windows; fixes trac #2827
1649Ian Lynagh <igloo@earth.li>**20090217215048]
1650[SPARC NCG: Unsigned comparisons are unsigned
1651Ben.Lippmeier@anu.edu.au**20090217035200]
1652[SPARC NCG: Fix word size conversions
1653Ben.Lippmeier@anu.edu.au**20090217023322]
1654[SPARC NCG: Split up into chunks, and fix warnings.
1655Ben.Lippmeier@anu.edu.au**20090216020038]
1656[SPARC NCG: Reorganise Reg and RegInfo
1657Ben.Lippmeier@anu.edu.au**20090216000945]
1658[NCG: Cleanup old file
1659Ben.Lippmeier@anu.edu.au**20090216000847]
1660[NCG: validate fixes for ppc-darwin
1661Ben.Lippmeier@anu.edu.au**20090215083601]
1662[NCG: validate fixes for ghc-6.6
1663Ben.Lippmeier@anu.edu.au**20090215071334]
1664[NCG: validate fixes for i386-darwin
1665Ben.Lippmeier@anu.edu.au**20090215073234]
1666[NCG: validate fixes for x86_64-linux
1667Ben.Lippmeier@anu.edu.au**20090215072325
1668 Ignore-this: 1b81b402e6f7ef0c76656a15c3a9f139
1669]
1670[NCG: Haddock validate fix
1671Ben.Lippmeier@anu.edu.au**20090215063710]
1672[NCG: Validate fixes for x86-linux
1673Ben.Lippmeier@anu.edu.au**20090215062321]
1674[SPARC NCG: Don't release top half of f6 and f8
1675Ben.Lippmeier@anu.edu.au**20090215061940]
1676[NCG: Split up the native code generator into arch specific modules
1677Ben.Lippmeier@anu.edu.au**20090215055158
1678 
1679   - nativeGen/Instruction defines a type class for a generic
1680     instruction set. Each of the instruction sets we have,
1681     X86, PPC and SPARC are instances of it.
1682   
1683   - The register alloctors use this type class when they need
1684     info about a certain register or instruction, such as
1685     regUsage, mkSpillInstr, mkJumpInstr, patchRegs..
1686   
1687   - nativeGen/Platform defines some data types enumerating
1688     the architectures and operating systems supported by the
1689     native code generator.
1690   
1691   - DynFlags now keeps track of the current build platform, and
1692     the PositionIndependentCode module uses this to decide what
1693     to do instead of relying of #ifdefs.
1694   
1695   - It's not totally retargetable yet. Some info info about the
1696     build target is still hardwired, but I've tried to contain
1697     most of it to a single module, TargetRegs.
1698   
1699   - Moved the SPILL and RELOAD instructions into LiveInstr.
1700   
1701   - Reg and RegClass now have their own modules, and are shared
1702     across all architectures.
1703]
1704[SPARC NCG: Make linear allocator use info in SPARC.Regs again
1705Ben.Lippmeier@anu.edu.au**20090211054021]
1706[SPARC NCG: Enumerate freeRegs / globalRegMaybe instead of using #ifdefery
1707Ben.Lippmeier@anu.edu.au**20090211025330]
1708[NCG: Split PprMach into arch specific modules
1709Ben.Lippmeier@anu.edu.au**20090205081242
1710   - There are still some #ifdefs for choosing between i386, x86_64,
1711       linux, darwin and other OS's.
1712   - Also reformat SPARC.RegInfo to remove some of the visual noise.
1713]
1714[Put RelaxedPolyRec in the cabal file rather than a pragma
1715Ian Lynagh <igloo@earth.li>**20090213185635
1716 This should fix the build with GHC 6.6
1717]
1718[update Sparc store/load barrier (#3019), and fix comments
1719Simon Marlow <marlowsd@gmail.com>**20090212092340
1720 Ignore-this: 9d993cb743a0c015f0fc974000a7c7d7
1721]
1722[comment wibbles
1723Simon Marlow <marlowsd@gmail.com>**20090211152844
1724 Ignore-this: b95f30df3aa53295a6dc8fd011cdfdaa
1725]
1726[NCG: Use sync instead of msync for a memory barrier for powerpc
1727Ben.Lippmeier@anu.edu.au**20090213004910
1728   Darwin 9.6.0 + GCC 4.0.1 doesn't understand "msync".
1729   I think "sync" means the same thing.
1730]
1731[NCG: Split block reorder thing in linear allocator into separate fn
1732Ben.Lippmeier@anu.edu.au**20090213004819]
1733[NCG: Validate fixes for powerpc
1734Ben.Lippmeier@anu.edu.au**20090213004725]
1735[NCG: Add missing ops to powerpc isJumpish
1736Ben.Lippmeier@anu.edu.au**20090213004647]
1737[Only pass --with-hscolour to cabal-bin once
1738Ian Lynagh <igloo@earth.li>**20090212141023]
1739[Quote some more arguments to cabal-bin
1740Ian Lynagh <igloo@earth.li>**20090212141120]
1741[Add more targets to the list that we need to include all libraries for
1742Ian Lynagh <igloo@earth.li>**20090211173333]
1743[Fix Trac #3017: ensure that we quantify over enough type variables when equalities are involved
1744simonpj@microsoft.com**20090211174733
1745 Ignore-this: 92838c0a556240a8fb7744e3f29aa0f9
1746 
1747 The function FunDeps.grow was not doing the right thing when type equality
1748 constraints were involved.  That wasn't really its fault: its input was
1749 being filtered by fdPredsOfInsts.
1750 
1751 To fix this I did a bit of refactoring, so that the (revolting) fdPredsOfInsts
1752 is now less important (maybe we can get rid of it in due course).  The 'grow'
1753 function moves from FunDeps to
1754         Inst.growInstsTyVars
1755         TcMTType.growThetaTyVars
1756         TcMType.growTyVars
1757 
1758 The main comments are with the first of these, in
1759 Note [Growing the tau-tvs using constraints] in Inst.
1760 
1761 Push to the branch if conflict free.
1762 
1763 
1764]
1765[general tidy up
1766Simon Marlow <marlowsd@gmail.com>**20090211152429
1767 Ignore-this: 9b6bbb08749b372bdd387a25405570f4
1768]
1769[one more bugfix: a load/load memory barrier is required in stealWSDeque_()
1770Simon Marlow <marlowsd@gmail.com>**20090211152421
1771 Ignore-this: d89fff02d6b8c63272c9171e64d3510b
1772]
1773[Fix trac #3001: Biographical profiling segfaults
1774Ian Lynagh <igloo@earth.li>**20090211153457
1775 We were zeroing the wrong memory
1776]
1777[Tweak the mangler; fixes trac #2871
1778Ian Lynagh <igloo@earth.li>**20090211150340
1779 It was getting confused by lines like:
1780  # 9 "C:\Temp\/ghc620_0/ghc620_0.hc" 1
1781]
1782[On sparc, pass -mcpu=v9 when assembling with object splitting enabled
1783Ian Lynagh <igloo@earth.li>**20090211141600
1784 Fixes trac #2872.
1785]
1786[Turn another ASSERT into a WARN (temproraily)
1787simonpj@microsoft.com**20090211094028
1788 Ignore-this: 8982802501f7966ce482ef360aac6ec0
1789 
1790 Fix Trac #3011 by temporarily making it only a WARN if we assign twice
1791 to the same unification variable.
1792 
1793 
1794]
1795[Improve documentation for LANGUAGE pragma (esp wrt cpp)
1796simonpj@microsoft.com**20090211093939
1797 Ignore-this: 2c690e39766bb9c49c0e7bf8faecad47
1798]
1799[Don't use the absolute path to the bindist tarball
1800Ian Lynagh <igloo@earth.li>**20090210215215
1801 On Windows, we end up doing something like
1802     rsync c:/build/ghc-6.10.1-unknown-mingw32.tar.bz2 haskell.org:dist
1803 and it thinks that it is meant to get the file from the host called "c".
1804 Now we just do
1805     rsync ghc-6.10.1-unknown-mingw32.tar.bz2 haskell.org:dist
1806 so rsync understand what we mean.
1807]
1808[Fix cleaning and installing the libraries
1809Ian Lynagh <igloo@earth.li>**20090210225538
1810 When cleaning or installing, we need to ignore what $stage is, and
1811 just clean/install all the libraries.
1812]
1813[scheduleYield(): check the wakeup queue before yielding
1814Simon Marlow <marlowsd@gmail.com>**20090209112536
1815 Ignore-this: d4aaf83d79ad8ca3ac2d904234eef599
1816]
1817[Improvements to the "can't find module" error message (#2980)
1818Simon Marlow <marlowsd@gmail.com>**20090206165743
1819 Ignore-this: 2de565e20f68ebdc3865df7391c81437
1820 If the module was found in multiple hidden packages, we list them all.
1821 
1822 Could not find module `Data.Generics':
1823   it is a member of the hidden package `base-3.0.3.0'
1824   it is a member of the hidden package `syb'
1825   Use -v to see a list of the files searched for.
1826]
1827[build fix: add -I../rts/parallel
1828Simon Marlow <marlowsd@gmail.com>**20090206145921
1829 Ignore-this: b4ab2760dd111b790421cf451289681f
1830]
1831[crucial bugfix: add a store/load memory barrier to popWSDeque()
1832Simon Marlow <marlowsd@gmail.com>**20090206130804
1833 Ignore-this: 57d044afb7c635af2948d24d9c43a23f
1834]
1835[bugfix: an unsigned comparison should be signed
1836Simon Marlow <marlowsd@gmail.com>**20090206130745
1837 Ignore-this: 981510f94dcb81e5896703f610b933e5
1838]
1839[tiny cleanup
1840Simon Marlow <marlowsd@gmail.com>**20090206130715
1841 Ignore-this: 9497f8f6fbce2d0c23fd1d0eee4cdeda
1842]
1843[add debugging code and comments
1844Simon Marlow <marlowsd@gmail.com>**20090206130609
1845 Ignore-this: 5f0e1e3fa0148da079f13eb07430c09b
1846]
1847[add an assertion
1848Simon Marlow <marlowsd@gmail.com>**20090206130338
1849 Ignore-this: f4c0f539142c0dfdc57c70d1c6136f10
1850]
1851[add a single-threaded version of cas()
1852Simon Marlow <marlowsd@gmail.com>**20090206130130
1853 Ignore-this: 80d5e7a3c35182d7d87e95c5c4096821
1854]
1855[add a store/load memory barrier
1856Simon Marlow <marlowsd@gmail.com>**20090206130115
1857 Ignore-this: e0bc8f61877868ec8c2ccd9dee8f956d
1858]
1859[Refactor the spark queue implementation into a generic work-stealing deque
1860Simon Marlow <marlowsd@gmail.com>**20090205124648
1861 Ignore-this: 1a7ee74388f30301d154d050d853a7a9
1862 So we can use this abstraction elsewhere in the RTS
1863]
1864[Handle the case where setitimer(ITIMER_VIRTUAL) is not always available
1865Ian Lynagh <igloo@earth.li>**20090208191431
1866 Patch from sthibaul. Fixes trac #2883.
1867]
1868[Correct an IsFunction that should be IsData
1869Ian Lynagh <igloo@earth.li>**20090207005834]
1870[Fix calling maths functions when compiling via C
1871Ian Lynagh <igloo@earth.li>**20090206223119]
1872[Add a panic to fix the build on amd64/Linux; to be fixed properly later
1873Ian Lynagh <igloo@earth.li>**20090206153135]
1874[Fix the build on OS X: only understands .space, not .skip
1875Ian Lynagh <igloo@earth.li>**20090206151203]
1876[Fix building with GHC 6.8
1877Ian Lynagh <igloo@earth.li>**20090206143432]
1878[Fix the build on amd64/Linux
1879Ian Lynagh <igloo@earth.li>**20090206143420]
1880[When generating C, don't pretend functions are data
1881Ian Lynagh <igloo@earth.li>**20090206140249
1882 We used to generated things like:
1883     extern StgWordArray (newCAF) __attribute__((aligned (8)));
1884     ((void (*)(void *))(W_)&newCAF)((void *)R1.w);
1885 (which is to say, pretend that newCAF is some data, then cast it to a
1886 function and call it).
1887 This goes wrong on at least IA64, where:
1888     A function pointer on the ia64 does not point to the first byte of
1889     code. Intsead, it points to a structure that describes the function.
1890     The first quadword in the structure is the address of the first byte
1891     of code
1892 so we end up dereferencing function pointers one time too many, and
1893 segfaulting.
1894]
1895[NCG: Validate fixes
1896Ben.Lippmeier@anu.edu.au**20090205080624]
1897[NCG: Split RegAllocInfo into arch specific modules
1898Ben.Lippmeier@anu.edu.au**20090204055126]
1899[NCG: Move RegLiveness -> RegAlloc.Liveness
1900Ben.Lippmeier@anu.edu.au**20090204035250]
1901[NCG: Rename MachRegs, MachInstrs -> Regs, Instrs to reflect arch specific naming
1902Ben.Lippmeier@anu.edu.au**20090204034107]
1903[NCG: Split MachRegs.hs into arch specific modules
1904Ben.Lippmeier@anu.edu.au**20090204030729]
1905[NCG: Fix validate
1906Ben.Lippmeier@anu.edu.au**20090205030642]
1907[SPARC NCG: Fix some haddock problems.
1908Ben.Lippmeier@anu.edu.au**20090204043802]
1909[SPARC NCG: Add Pwr callish mach op
1910Ben.Lippmeier@anu.edu.au**20090204000905]
1911[NCG: Split MachInstrs into arch specific modules
1912Ben.Lippmeier@anu.edu.au**20090203081327]
1913[NCG: Move the graph allocator into its own dir
1914Ben.Lippmeier@anu.edu.au**20090203071411]
1915[SPARC NCG: Update cabal file
1916Ben.Lippmeier@anu.edu.au**20090203062746]
1917[SPARC NCG: Give regs o0-o5 back to the allocator
1918Ben.Lippmeier@anu.edu.au**20090203062433]
1919[NCG: Split out joinToTargets from linear alloctor into its own module.
1920Ben.Lippmeier@anu.edu.au**20090203040540
1921 
1922  * Also fix a nasty bug when creating fixup code that has a cyclic
1923    register movement graph.
1924]
1925[NCG: Split linear allocator into separate modules.
1926Ben.Lippmeier@anu.edu.au**20090202055301]
1927[SPARC NCG: Keep track of destinations when doing a tabled jump
1928Ben.Lippmeier@anu.edu.au**20090123052247]
1929[SPARC NCG: Do general 64 bit addition and conversion
1930Ben.Lippmeier@anu.edu.au**20090123035152]
1931[SPARC NCG: Don't need a write barrier for store synchronisation on SPARC under TSO.
1932Ben.Lippmeier@anu.edu.au**20090123005051]
1933[SPARC NCG: Use .skip instead of .space in assembler
1934Ben.Lippmeier@anu.edu.au**20090122225150
1935 
1936  - In the GNU assembler they mean the same thing
1937  - The Solaris assembler only has .skip
1938 
1939]
1940[Check -XGADTs in (a) type family decls (b) pattern matches
1941simonpj@microsoft.com**20090204150919
1942 Ignore-this: 19a6268814440493eea436c48daa8414
1943 
1944 Following Trac #2905, we now require -XGADTs for *pattern matches* on
1945 GADTs, not just on *definitions*.
1946 
1947 Also I found that -XGADTs wasn't being checked when declaring type families,
1948 so I fixed that too.
1949 
1950]
1951[Improve error reports for kind checking (Trac #2994)
1952simonpj@microsoft.com**20090204150736
1953 Ignore-this: 402fe9f025abf8e2a3088383c23a89f6
1954 
1955 I followed the suggestion in Trac #2994, which took longer than I
1956 expected.  As usual I did a bit of tidying up at the same time,
1957 and improved a few other error reports.
1958 
1959]
1960[Further wibbles to 'deriving' for functor-like things
1961simonpj@microsoft.com**20090204150625
1962 Ignore-this: 1a69dfc25f741148b5b817aa66803d5c
1963]
1964[leave out rts/ from include-dirs in the inplace rts package
1965Simon Marlow <marlowsd@gmail.com>**20090204104748
1966 Ignore-this: 3a5c7e53121421600aa21a53b57cc9fb
1967 it shouldn't be there, and might hide bugs
1968]
1969[Fix Trac #2999: change an ASSERT to a WARN
1970simonpj@microsoft.com**20090204083800
1971 Ignore-this: db6fdc200a06ba5f067d567ea64f89e1
1972 
1973 A bug in the constraint simplifier means that an equality can be solved
1974 twice.  It's harmless, and will go away with the new constraint simplifier.
1975 Hence warning, to avoid unnecessary outright failure on eg Trac #2999.
1976 
1977]
1978[Improve transferPolyIdInfo for value-arg abstraction
1979simonpj@microsoft.com**20090204082534
1980 Ignore-this: 687def702522c3516050de1e14e5219f
1981 
1982 If we float a binding out of a *value* lambda, the fixing-up of IdInfo
1983 is a bit more complicated than before.  Since in principle FloatOut
1984 can do this (and thus can do full lambda lifting), it's imporrtant
1985 that transferPolyIdInfo does the Right Thing.
1986 
1987 This doensn't matter unless you use FloatOut's abilty to lambda-lift,
1988 which GHC mostly doesn't, yet.  But Max used it and tripped over this bug.
1989 
1990]
1991[Two small improvements to LiberateCase
1992simonpj@microsoft.com**20090204081919
1993 Ignore-this: ca41d8d9ef1b409b32761b1a69bd1400
1994 
1995 Max Bolingbroke suggested these two small improvements to LiberateCase
1996 (most of the size increase is comments :-)):
1997 
1998 a) Do LiberateCase on small functions even if they are mutually recursive
1999    See Note [Small enough]
2000 
2001 b) Don't do LiberateCase on functions for which it'd be fruitless,
2002    namely when a free varible is scrutinised *outside* the function
2003    See Note [Avoiding fruitless liberate-case]
2004 
2005 There is virtually no effect on nofib, but Max tripped over cases
2006 where it mattered slightly.
2007 
2008 
2009]
2010[Robustify lookupFamInstEnv, plus some refactoring
2011simonpj@microsoft.com**20090115134818
2012 Ignore-this: 493fdbd370a714bf9677b16d2ba533d7
2013 
2014 This patch deals with the following remark
2015 
2016      Suppose we have
2017             type family T a :: * -> *
2018             type instance T Int = []
2019 
2020      and now we encounter the type (T Int Bool).  If we call
2021      lookupFamInstEnv on (T Int Bool) we'll fail, because T has arity 1.
2022      Indeed, I *think* it's a precondition of lookupFamInstEnv that the
2023      supplied types exactly match the arity of the type function.  But
2024      that precondition is neither stated, nor is there an assertion to
2025      check it.
2026 
2027 With this patch, lookupFamInstEnv can take "extra" type arguments in
2028 the over-saturated case, and does the Right Thing.
2029 
2030 There was a nearly-identical function lookupFamInstEnvUnify, which
2031 required the precisely analogous change, so I took the opportunity
2032 to combine the two into one function, so that bugs can be fixed in one
2033 place.  This was a bit harder than I expected, but I think the result
2034 is ok.  The conflict-decision function moves from FamInst to FamInstEnv.
2035 Net lines code decreases, although there are more comments.
2036 
2037 
2038 
2039]
2040[Robustify lookupFamInstEnv
2041simonpj@microsoft.com**20090114140117
2042 Ignore-this: ee312b2b59155102d88397a33c591ad2
2043 
2044 Suppose we have
2045         type family T a :: * -> *
2046         type instance T Int = []
2047 
2048 and now we encounter the type (T Int Bool).  That is perfectly
2049 fine, even though T is over-saturated here.
2050 
2051 This patch makes lookupFamInstEnv robust to such over-saturation.
2052 Previously one caller (TcTyFuns.tcUnfoldSynFamInst) dealt with
2053 the over-saturation case, but the others did not. It's better
2054 to desl with the issue at the root, in lookupFamInstEnv itself.
2055 
2056]
2057[Improve trace message
2058simonpj@microsoft.com**20090113175806
2059 Ignore-this: 2276ebc89246553cbb6a1a4cd7c76fd9
2060]
2061[Build dph with the stage2 compiler
2062Ian Lynagh <igloo@earth.li>**20090203213613
2063 It will use TH, so needs to be built with stage2.
2064]
2065[Optimise writing out the .s file
2066Simon Marlow <marlowsd@gmail.com>**20090202145013
2067 I noticed while working on the new IO library that GHC was writing out
2068 the .s file in lots of little chunks.  It turns out that this is a
2069 result of using multiple printDocs to avoid space leaks in the NCG,
2070 where each printDoc is finishing up with an hFlush. 
2071 
2072 What's worse, is that this makes poor use of the optimisation inside
2073 printDoc that uses its own buffering to avoid hitting the Handle all
2074 the time.
2075 
2076 So I hacked around this by making the buffering optimisation inside
2077 Pretty visible from the outside, for use in the NCG.  The changes are
2078 quite small.
2079]
2080[better error message for missing package-qualified modules in ghc -M
2081Simon Marlow <marlowsd@gmail.com>**20090123142001]
2082[add wiki commentary links
2083Simon Marlow <marlowsd@gmail.com>**20090130110844
2084 Ignore-this: 3f27b426bc5ad54157edc06a421e28bf
2085]
2086[Force the result of user-defined commands
2087Simon Marlow <marlowsd@gmail.com>**20090130091919
2088 Ignore-this: f756d00cc062072e1945d63cfbbeb98
2089 so that exceptions are reported with "*** Exception" instead of as a panic.
2090]
2091[Improve error reporting for precedence errors
2092simonpj@microsoft.com**20090202164450
2093 Ignore-this: 493643a40c119ba6ad54d0f220dc4606
2094 
2095 Adopt the suggestion of Trac #2993, and tidy up the reporting of
2096 precedence parsing errors somewhat.
2097 
2098]
2099[Add the ability to derive instances of Functor, Foldable, Traversable
2100simonpj@microsoft.com**20090202134829
2101 Ignore-this: f3013fefdd65f75fb5060ef0e002f40e
2102 
2103 This patch is a straightforward extension of the 'deriving' mechanism.
2104 The ability to derive classes Functor, Foldable, Traverable is controlled
2105 by a single flag  -XDeriveFunctor.  (Maybe that's a poor name.)
2106 
2107 Still to come: documentation
2108 
2109 Thanks to twanvl for developing the patch
2110 
2111 
2112]
2113[Comments about injecting implicit bindings
2114simonpj@microsoft.com**20090130175403
2115 Ignore-this: 7aa1a69f5a16811272bed0683234aca3
2116]
2117[Warn in configure if it looks like make 3.80 is about to be used
2118Ian Lynagh <igloo@earth.li>**20090201203505
2119 We get caught by
2120     http://savannah.gnu.org/bugs/index.php?1516
2121     $(eval ...) inside conditionals causes errors
2122 with make 3.80, so warn the user if it looks like they're about to
2123 try to use it.
2124]
2125[Fix Trac #2985: generating superclasses and recursive dictionaries
2126simonpj@microsoft.com**20090130152738
2127 Ignore-this: 921ab14e850085ddbe545b078e02120b
2128 
2129 The Note [Recursive instances and superclases] explains the subtle
2130 issues to do with generating the bindings for superclasses when
2131 we compile an instance declaration, at least if we want to do the
2132 clever "recursive superclass" idea from the SYB3 paper.
2133 
2134 The old implementation of tcSimplifySuperClasses stumbled when
2135 type equalities entered the picture (details in the Note); this
2136 patch fixes the problem using a slightly hacky trick.  When we
2137 re-engineer the constraint solver we'll want to keep an eye on
2138 this.
2139 
2140 Probably worth merging to the 6.10 branch.
2141 
2142 
2143]
2144[White space only
2145simonpj@microsoft.com**20090130152705
2146 Ignore-this: fdc9c862fa91a57bdb81b7370eb482bd
2147]
2148[Two more wibbles to CorePrep (fixes HTTP package and DPH)
2149simonpj@microsoft.com**20090129131954
2150 Ignore-this: ee42b5f5a73a5277b5fd0e8c679e8fbe
2151 
2152 Ensuring that
2153   a) lambdas show up only on the RHSs of binding after CorePrep
2154   b) the arity of a binding exactly matches the maifest lambdas
2155 is surprisingly tricky.
2156 
2157 I got it wrong (again) in my recent CorePrep shuffling, which broke
2158 packages HTTP and DPH.  This patch fixes both.
2159 
2160]
2161[Remove the doc/ contents from the GMP tarball
2162Ian Lynagh <igloo@earth.li>**20090128200749
2163 They are GFDLed, which causes problems for Debian
2164]
2165[#2973: we should virtualise the CWD inside the GHC API, not in the client
2166Simon Marlow <marlowsd@gmail.com>**20090127121648
2167 Ignore-this: 5d57181d25a0661ad20fa48154f4a80
2168 The problem is that we install the client's CWD before calling
2169 runStmt, but runStmt has to load modules before running the code.  We
2170 need to install the CWD just before running the code instead, which
2171 means it has to be done inside runStmt (and resume).
2172]
2173[Fix detection of i386 vs. x86_64 for -pc-solaris
2174Simon Marlow <marlowsd@gmail.com>**20090127095343
2175 Ignore-this: b415138105477e7edab96994babbe6d2
2176 From #2951
2177]
2178[Implement #2191 (traceCcs# -- prints CCS of a value when available -- take 3)
2179Samuel Bronson <naesten@gmail.com>**20090127084825
2180 Ignore-this: ede3f18c70cfb7979ef21d7e8077dad6
2181 In this version, I untag R1 before using it, and even enter R2 at the
2182 end rather than simply returning it (which didn't work right when R2
2183 was a thunk).
2184]
2185[add comment for ASSERT_LOCK_HELD()
2186Simon Marlow <marlowsd@gmail.com>**20090126140030
2187 Ignore-this: c3ce1e8df9d94eb92a17f4f58c496a41
2188]
2189[Fix #2961: we lost some of the generated code for stack args in genCCall
2190Simon Marlow <marlowsd@gmail.com>**20090126150209
2191 Ignore-this: 77de911bfc98ecca566f1744dfe75a7b
2192 A real bug in the x86_64 native code gen: nice!
2193 
2194 This bug would have been caught by -Wall, and I would have gone though
2195 and Walled this file but I know Ben is hacking on this file quite
2196 heavily and I don't want to create undue conflicts.  Ben: it would be
2197 nice to enable -Wall here when you have time.
2198]
2199[Make the libffi patch files portable
2200Ian Lynagh <igloo@earth.li>**20090123180015
2201 Solaris's patch can't apply them if the lines beginning "---" aren't
2202 preceeded by a "diff -ur foo bar" line.
2203]
2204[SPARC NCG: Also do misaligned reads (this time for sure!)
2205Ben.Lippmeier@anu.edu.au**20090122092156]
2206[SPARC NCG: Also do misaligned reads
2207Ben.Lippmeier@anu.edu.au**20090121232423]
2208[When converting TH syntax to GHC syntax, need to put sections in parentheses
2209Ian Lynagh <igloo@earth.li>**20090121141706
2210 Fixes trac #2956
2211]
2212[SPARC NCG: Add a SPARC version of rts_mkInt64 that handles misaligned closure payloads.
2213Ben.Lippmeier@anu.edu.au**20090121052334]
2214[SPARC NCG: Reenable out of line 32 bit float ops
2215Ben.Lippmeier@anu.edu.au**20090121034716]
2216[SPARC NCG: Clean up formatting and add comments in genCCall
2217Ben.Lippmeier@anu.edu.au**20090121025549]
2218[SPARC NCG: Fix format problem when converting float to int
2219Ben.Lippmeier@anu.edu.au**20090121012624]
2220[SPARC NCG: fill branch delay slot after tabled jump (doh!)
2221Ben.Lippmeier@anu.edu.au**20090121003729]
2222[SPARC NCG: Add tabled switch
2223Ben.Lippmeier@anu.edu.au**20090120214914]
2224[SPARC NCG: Fix 64bit integers returned from ccalls
2225Ben.Lippmeier@anu.edu.au**20090120090617]
2226[#2875: Correct SYB's representation of Char
2227'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20090119112321]
2228[Fix #2759: add ability to serialize Rational
2229'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20081209125551]
2230[SPARC NCG: Fix warnings
2231Ben.Lippmeier@anu.edu.au**20090120075100]
2232[SPARC NCG: Remove a comment that was confusing haddock
2233Ben.Lippmeier@anu.edu.au**20090116011853]
2234[SPARC NCG: ppr 64 bit store sizes
2235Ben.Lippmeier@anu.edu.au**20090120074000]
2236[SPARC NCG: Fix generation of 64 bit ops on 32 bit sparc
2237Ben.Lippmeier@anu.edu.au**20090120071536]
2238[SPARC NCG: Add support for hardware divide
2239Ben.Lippmeier@anu.edu.au**20090120052113]
2240[SPARC NCG: Redo code for integer sign extension
2241Ben.Lippmeier@anu.edu.au**20090115084105]
2242[SPARC NCG: Fix signed/unsigned operand format bug
2243Ben.Lippmeier@anu.edu.au**20090115080004]
2244[More fixes to the SPARC native code generator
2245Ben.Lippmeier@anu.edu.au**20090115055727
2246 
2247  * Fix loading of 64bit floats
2248  * Put SRT and other read only static data in the .text segment
2249]
2250[Start fixing the SPARC native code generator
2251Ben.Lippmeier@anu.edu.au**20090114054416
2252 
2253   * Use BlockIds in branch instructions instead of Imms.
2254   * Assign FP values returned from C calls to the right regs
2255   * Fix loading of F32s
2256   * Add a SPARC version of the FreeRegs map to the linear allcator.
2257]
2258[Fix some holes in the SPARC native code generator.
2259Ben.Lippmeier@anu.edu.au**20090112063310
2260 
2261 This makes about half the tests in codeGen/should_run work.
2262]
2263[Untag closure pointers before trying to print them.
2264Ben.Lippmeier@anu.edu.au**20090112053421
2265 
2266 In RTS tracing code, need to untag the pointer before trying
2267 to load the info table in printClosure()
2268]
2269[Add missing documention of -Da DEBUG: apply flag to RTS help.
2270Ben.Lippmeier@anu.edu.au**20090112005625]
2271[Better panic message in RegAllocLinear
2272Ben.Lippmeier@anu.edu.au**20090110025802]
2273[Make the SPARC NCG compile again - it's still broken though.
2274Ben.Lippmeier@anu.edu.au**20090110014418]
2275[Enable the native code generator for SPARC
2276Ben.Lippmeier@anu.edu.au**20090105070429]
2277[Always use PTHREAD_MUTEX_ERRORCHECK to create mutexes when -DDEBUG
2278Ian Lynagh <igloo@earth.li>**20090118193328
2279 Linux defines PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP
2280 anyway, so there's no need to special-case it.
2281]
2282[Use error-checking mutexes on all platforms when DEBUG is on
2283Ian Lynagh <igloo@earth.li>**20090117215931
2284 Otherwise ASSERT_LOCK_HELD will cause deadlocks
2285]
2286[Reinstate: Always check the result of pthread_mutex_lock() and pthread_mutex_unlock().
2287Ian Lynagh <igloo@earth.li>**20090117200955
2288 Sun Jan  4 19:24:43 GMT 2009  Matthias Kilian <kili@outback.escape.de>
2289     Don't check pthread_mutex_*lock() only on Linux and/or only if DEBUG
2290     is defined. The return values of those functions are well defined
2291     and should be supported on all operation systems with pthreads. The
2292     checks are cheap enough to do them even in the default build (without
2293     -DDEBUG).
2294     
2295     While here, recycle an unused macro ASSERT_LOCK_NOTHELD, and let
2296     the debugBelch part enabled with -DLOCK_DEBUG work independently
2297     of -DDEBUG.
2298]
2299[Initialise and deinitialise the file_lock_mutex
2300Ian Lynagh <igloo@earth.li>**20090117023947]
2301[Create package.conf when installing a bindist
2302Ian Lynagh <igloo@earth.li>**20090118110654]
2303[validate fix on 32-bit
2304Simon Marlow <marlowsd@gmail.com>**20090114162834]
2305[fix validate on Windows
2306Simon Marlow <marlowsd@gmail.com>**20090114155842]
2307[UNDO: Always check the result of pthread_mutex_lock() and pthread_mutex_unlock().
2308Simon Marlow <marlowsd@gmail.com>**20090116114339
2309 Ignore-this: 6cc82d384582097785d78fba46ca29d2
2310 This patch caused problems on Mac OS X, undoing until we can do it better.
2311 
2312 rolling back:
2313 
2314 Sun Jan  4 19:24:43 GMT 2009  Matthias Kilian <kili@outback.escape.de>
2315   * Always check the result of pthread_mutex_lock() and pthread_mutex_unlock().
2316   
2317   Don't check pthread_mutex_*lock() only on Linux and/or only if DEBUG
2318   is defined. The return values of those functions are well defined
2319   and should be supported on all operation systems with pthreads. The
2320   checks are cheap enough to do them even in the default build (without
2321   -DDEBUG).
2322   
2323   While here, recycle an unused macro ASSERT_LOCK_NOTHELD, and let
2324   the debugBelch part enabled with -DLOCK_DEBUG work independently
2325   of -DDEBUG.
2326   
2327 
2328     M ./includes/OSThreads.h -30 +10
2329]
2330[Update config.guess, config.sub and install.sh from automake-1.10.2
2331Simon Marlow <marlowsd@gmail.com>**20090116095311
2332 Ignore-this: cdc19dd28053a6a71283776ecb802c62
2333 In particular, config.guess should now know about x86_64-pc-solaris2
2334]
2335[More useful error message when a package .hi file cannot be found:
2336Simon Marlow <marlowsd@gmail.com>**20090115122524
2337 Ignore-this: b595e2fac5d9b5214340f83a7d7dd730
2338 
2339 > import System.Process
2340 Could not find module `System.Process':
2341   There are files missing in the process-1.0.1.1 package,
2342   try running 'ghc-pkg check'.
2343   Use -v to see a list of the files searched for.
2344]
2345[soup-up "ghc-pkg check"
2346Simon Marlow <marlowsd@gmail.com>**20090115122143
2347 Ignore-this: 6d29af258eb31d417d01fed167cd5d47
2348 
2349 We now look for missing files (including .hi files), and report all
2350 the packages that are transitively broken.
2351 
2352 $ ghc-pkg check
2353 There are problems in package syb-0.1.0.0:
2354   dependency foo-4.0.0.0 doesn't exist
2355 There are problems in package process-1.0.1.1:
2356   file System/Process.hi is missing
2357 
2358 The following packages are broken, either because they have a problem
2359 listed above, or because they depend on a broken package.
2360 syb-0.1.0.0
2361 process-1.0.1.1
2362 base-3.0.3.0
2363 Cabal-1.7.0
2364 haskell98-1.0.1.0
2365 haddock-2.4.2
2366 ghc-6.11
2367]
2368[document -feager-blackholing
2369Simon Marlow <marlowsd@gmail.com>**20090115093922
2370 Ignore-this: 5958a16c7148cb5df0f4b3f1e1dee6d6
2371]
2372[External Core: re-add code I removed mistakenly in last commit
2373Tim Chevalier <chevalier@alum.wellesley.edu>**20090115002612]
2374[External Core lib: lots of cleanup
2375Tim Chevalier <chevalier@alum.wellesley.edu>**20090114224428
2376 
2377 - Factor out code for applying newtypes from Check into CoreUtils
2378 - Use this code in Prep, which allowed for some simplification
2379 - Change Merge and ElimDeadCode to not flatten top-level binds
2380 - Add a flag for elimDeadCode to tell it whether to keep
2381 exported bindings or not.
2382 - Other things.
2383]
2384[External Core: print out more precise dependency info
2385Tim Chevalier <chevalier@alum.wellesley.edu>**20090114221734
2386 
2387 Print out the same recursive/non-recursive binding groups
2388 that existed in internal Core in an External Core file,
2389 rather than dumping everything into one big recursive group.
2390]
2391[Fix "make install": Put "[]" in the install package.conf
2392Ian Lynagh <igloo@earth.li>**20090114205945]
2393[Remove redundant import; spotted by Thorkil Naur
2394Ian Lynagh <igloo@earth.li>**20090114181937]
2395[Remove a redundant import
2396Ian Lynagh <igloo@earth.li>**20090114181212]
2397[Detect when a C finalizer calls back to Haskell
2398Simon Marlow <marlowsd@gmail.com>**20090114121526
2399 Ignore-this: e361d7278e2478da2f300625076cc0ae
2400 This is illegal now, after the fix for #1364, but it turns out that
2401 the existing check for dodgy callbacks doesn't catch finalizers
2402 calling back, so we need another test.  This will be particularly
2403 important for 6.10.2, because the behaviour has changed.
2404]
2405[Fix Trac #2931
2406simonpj@microsoft.com**20090113170948
2407 Ignore-this: 6ff0207627165f3f7bd145171e59b533
2408 
2409 Fix the lexical analyser when it encounters 'x<EOF> and Template
2410 Haskell is on.
2411 
2412]
2413[Rewrite CorePrep and improve eta expansion
2414simonpj@microsoft.com**20090113164953
2415 Ignore-this: 910d1d613592c116714c324618b1e45c
2416 
2417 This patch does two main things
2418 
2419 a) Rewrite most of CorePrep to be much easier to understand (I hope!).
2420    The invariants established by CorePrep are now written out, and
2421    the code is more perspicuous.  It is surpringly hard to get right,
2422    and the old code had become quite incomprehensible.
2423 
2424 b) Rewrite the eta-expander so that it does a bit of simplifying
2425    on-the-fly, and thereby guarantees to maintain the CorePrep
2426    invariants.  This make it much easier to use from CorePrep, and
2427    is a generally good thing anyway.
2428 
2429 A couple of pieces of re-structuring:
2430 
2431 *  I moved the eta-expander and arity analysis stuff into a new
2432    module coreSyn/CoreArity.
2433 
2434    Max will find that the type CoreArity.EtaInfo looks strangely
2435    familiar.
2436 
2437 *  I moved a bunch of comments from Simplify to OccurAnal; that's
2438    why it looks as though there's a lot of lines changed in those
2439    modules.
2440 
2441 On the way I fixed various things
2442 
2443   - Function arguments are eta expanded
2444        f (map g)  ===>  let s = \x. map g x in f s
2445 
2446   - Trac #2368
2447 
2448 The result is a modest performance gain, I think mainly due
2449 to the first of these changes:
2450 
2451 --------------------------------------------------------------------------------
2452         Program           Size    Allocs   Runtime   Elapsed
2453 --------------------------------------------------------------------------------
2454             Min          -1.0%    -17.4%    -19.1%    -46.4%
2455             Max          +0.3%     +0.5%     +5.4%    +53.8%
2456  Geometric Mean          -0.1%     -0.3%     -7.0%    -10.2%
2457 
2458 
2459 
2460]
2461[Rename isIdentityCoercion to isIdentityCoI; add Coercion.isIdentityCoercion
2462simonpj@microsoft.com**20090113164804
2463 Ignore-this: ac05f38a092959c08972c768fe427e06
2464]
2465[Spelling in comment only
2466simonpj@microsoft.com**20090113164624
2467 Ignore-this: 2eb6372f996b9133683918aecad1a5aa
2468]
2469[Make the ASSERT more informative
2470simonpj@microsoft.com**20090113164133
2471 Ignore-this: 4059e33cf594403e03c0eb4169dc300f
2472]
2473[Export mapOL from OrdList
2474simonpj@microsoft.com**20090113164051
2475 Ignore-this: 3debd81ae00d3745ec248197b97d312f
2476]
2477[Improve error messages slightly
2478simonpj@microsoft.com**20090113164020
2479 Ignore-this: 89090ec03d8ea201f64105c0dbb8d5f9
2480]
2481[Do not do SpecConstr on functions that unconditionally diverge
2482simonpj@microsoft.com**20090113162918
2483 Ignore-this: cb0c210b936941b241c312c72545bfe2
2484 
2485 There is no point in specialising a function that is guaranteed to
2486 diverge, and doing so screwed up arity stuff. 
2487 
2488 See Note [Do not specialise diverging functions].
2489 
2490 
2491]
2492[Make -XTypeFamilies imply -XRelaxedPolyRec (Trac #2944)
2493simonpj@microsoft.com**20090113162716
2494 Ignore-this: 8ab21566045c8bc8050ed7dda04e2df
2495]
2496[Fix Trac #2937: deserialising assoicated type definitions
2497simonpj@microsoft.com**20090113153217
2498 Ignore-this: 7d7852a70a34fc22773757709735cc24
2499 
2500 The deserialiser (TcIface) for associated type definitions wasn't
2501 taking into account that the class decl brings into scope some
2502 type variables that scope over the data/type family declaration.
2503 
2504 Easy to fix: the new function is TcIface.bindIfaceTyVars_AT
2505 
2506]
2507[Always check the result of pthread_mutex_lock() and pthread_mutex_unlock().
2508Matthias Kilian <kili@outback.escape.de>**20090104192443
2509 
2510 Don't check pthread_mutex_*lock() only on Linux and/or only if DEBUG
2511 is defined. The return values of those functions are well defined
2512 and should be supported on all operation systems with pthreads. The
2513 checks are cheap enough to do them even in the default build (without
2514 -DDEBUG).
2515 
2516 While here, recycle an unused macro ASSERT_LOCK_NOTHELD, and let
2517 the debugBelch part enabled with -DLOCK_DEBUG work independently
2518 of -DDEBUG.
2519 
2520]
2521[sanity checking fixes
2522Simon Marlow <marlowsd@gmail.com>**20090112121042]
2523[Keep the remembered sets local to each thread during parallel GC
2524Simon Marlow <marlowsd@gmail.com>**20090112121024
2525 This turns out to be quite vital for parallel programs:
2526 
2527   - The way we discover which threads to traverse is by finding
2528     dirty threads via the remembered sets (aka mutable lists).
2529 
2530   - A dirty thread will be on the remembered set of the capability
2531     that was running it, and we really want to traverse that thread's
2532     stack using the GC thread for the capability, because it is in
2533     that CPU's cache.  If we get this wrong, we get penalised badly by
2534     the memory system.
2535 
2536 Previously we had per-capability mutable lists but they were
2537 aggregated before GC and traversed by just one of the GC threads.
2538 This resulted in very poor performance particularly for parallel
2539 programs with deep stacks.
2540 
2541 Now we keep per-capability remembered sets throughout GC, which also
2542 removes a lock (recordMutableGen_sync).
2543]
2544[indicate which TSOs are dirty in the printAllThreads() output
2545Simon Marlow <marlowsd@gmail.com>**20090107151449]
2546[Fix Trac #2584: Pretty printing of types with HsDocTy
2547David Waern <david.waern@gmail.com>**20090109191713
2548 
2549 The pretty printing clause for HsDocTy was wrong, causing brackets to be left
2550 out. We now print Haddock comments on types as if they were postfix type
2551 operators.
2552]
2553[Add "Word size" to the +RTS --info output
2554Ian Lynagh <igloo@earth.li>**20090109160454]
2555[Check that make supports eval
2556Ian Lynagh <igloo@earth.li>**20090109151006]
2557[Add some more fields to +RTS --info
2558Ian Lynagh <igloo@earth.li>**20090108131101]
2559[FIX BUILD on Windows (fix for #2873 broke it)
2560Simon Marlow <marlowsd@gmail.com>**20090109090658]
2561[when calling mmap() with MAP_ANON, the fd argument should be -1
2562Simon Marlow <marlowsd@gmail.com>**20090108155341
2563 might fix #2925
2564]
2565[Fix Trac #2914: record wild cards and assoicated types
2566simonpj@microsoft.com**20090108124118]
2567[Fix #2873: should fail if a package DB desn't exist
2568Simon Marlow <marlowsd@gmail.com>**20090108095628
2569 We allowed non-existence before because the user DB is allowed to not
2570 exist, so now we have an explicit exception for that case.
2571]
2572[Close the races between throwTo and thread completion
2573Simon Marlow <marlowsd@gmail.com>**20090107140507
2574 Any threads we missed were being caught by the GC (possibly the idle
2575 GC if the system was otherwise inactive), but that's not ideal.  The
2576 fix (from Bertram Felgenhauer) is to use lockTSO to synchronise,
2577 imposing an unconditional lockTSO on thread exit.  I couldn't measure
2578 any performance overhead from doing this, so it seems reasonable.
2579]
2580[add comment
2581Simon Marlow <marlowsd@gmail.com>**20090107121142]
2582[Fix two more locking issues in throwTo()
2583Bertram Felgenhauer <int-e@gmx.de>**20090107120808]
2584[maybePerformBlockedException() should handle ThreadComplete/ThreadKilled
2585Simon Marlow <marlowsd@gmail.com>**20090107120734
2586 Part of the fix for #2910
2587]
2588[fix a race where the timer signal could remain turned off, leading to deadlock
2589Simon Marlow <marlowsd@gmail.com>**20090107120652]
2590[putMVar and takeMVar: add write_barrier() to fix race with throwTo
2591Simon Marlow <marlowsd@gmail.com>**20090107112026]
2592[cruft removal
2593Simon Marlow <marlowsd@gmail.com>**20090106154408]
2594[wake up the blocked exception queue on ThreadFinished; fixes #2910
2595Simon Marlow <marlowsd@gmail.com>**20090106153254]
2596[bump GHC's max stack size to 512M
2597Simon Marlow <marlowsd@gmail.com>**20081219112211
2598 To accomodate compiling very long static lists (#2002)
2599]
2600[ext-core: change .cabal file so we can build with either GHC 6.8 or 6.10
2601Tim Chevalier <chevalier@alum.wellesley.edu>**20090105192757]
2602[ext-core: fix some Prep bugs
2603Tim Chevalier <chevalier@alum.wellesley.edu>**20090105192734]
2604[ext-core: use shorter names when combining modules
2605Tim Chevalier <chevalier@alum.wellesley.edu>**20090105192645]
2606[ext-core: twiddle primitive things
2607Tim Chevalier <chevalier@alum.wellesley.edu>**20090105192434]
2608[Don't pin a register for gc_thread on SPARC.
2609Ben.Lippmeier@anu.edu.au**20090105030758
2610 
2611 This makes the build work again.
2612]
2613[Require HsColour by default
2614Ian Lynagh <igloo@earth.li>**20090104214647
2615 This should stop us ending up without HsColour'ed sources on some
2616 platforms.
2617 
2618 We also now tell Cabal where to find HsColour, rather than it finding
2619 it itself.
2620]
2621[Fix build
2622Ian Lynagh <igloo@earth.li>**20090104211810]
2623[Add GHCi completions to :set and :show
2624Ori Avtalion <ori@avtalion.name>**20081209194210]
2625[Fix sync-all: Check for --complete/partial before --<anything>
2626Ian Lynagh <igloo@earth.li>**20090104184652
2627 Patch from megacz in trac #2857
2628]
2629[Remove time from extralibs at request of maintainer
2630Ian Lynagh <igloo@earth.li>**20090104115509]
2631[validate fix: InteractiveEval no longer needs to import  IdInfo
2632Ian Lynagh <igloo@earth.li>**20090103154754]
2633[Fix validate: strs is no longer used in IfaceSyn
2634Ian Lynagh <igloo@earth.li>**20090103153624]
2635[Remove trailing whitespace from HaddockUtils
2636Ian Lynagh <igloo@earth.li>**20081229191727]
2637[Fix warnings in HaddockUtils
2638Ian Lynagh <igloo@earth.li>**20081229191657]
2639[Remove dead code from HaddockUtils
2640Ian Lynagh <igloo@earth.li>**20081229191430]
2641[Make record selectors into ordinary functions
2642simonpj@microsoft.com**20090102142851
2643 
2644 This biggish patch addresses Trac #2670.  The main effect is to make
2645 record selectors into ordinary functions, whose unfoldings appear in
2646 interface files, in contrast to their previous existence as magic
2647 "implicit Ids".  This means that the usual machinery of optimisation,
2648 analysis, and inlining applies to them, which was failing before when
2649 the selector was somewhat complicated.  (Which it can be when
2650 strictness annotations, unboxing annotations, and GADTs are involved.)
2651 
2652 The change involves the following points
2653 
2654 * Changes in Var.lhs to the representation of Var.  Now a LocalId can
2655   have an IdDetails as well as a GlobalId.  In particular, the
2656   information that an Id is a record selector is kept in the
2657   IdDetails.  While compiling the current module, the record selector
2658   *must* be a LocalId, so that it participates properly in compilation
2659   (free variables etc).
2660 
2661   This led me to change the (hidden) representation of Var, so that there
2662   is now only one constructor for Id, not two.
2663 
2664 * The IdDetails is persisted into interface files, so that an
2665   importing module can see which Ids are records selectors.
2666 
2667 * In TcTyClDecls, we generate the record-selector bindings in renamed,
2668   but not typechecked form.  In this way, we can get the typechecker
2669   to add all the types and so on, which is jolly helpful especially
2670   when GADTs or type families are involved.  Just like derived
2671   instance declarations.
2672 
2673   This is the big new chunk of 180 lines of code (much of which is
2674   commentary).  A call to the same function, mkAuxBinds, is needed in
2675   TcInstDcls for associated types.
2676 
2677 * The typechecker therefore has to pin the correct IdDetails on to
2678   the record selector, when it typechecks it.  There was a neat way
2679   to do this, by adding a new sort of signature to HsBinds.Sig, namely
2680   IdSig.  This contains an Id (with the correct Name, Type, and IdDetails);
2681   the type checker uses it as the binder for the final binding.  This
2682   worked out rather easily.
2683 
2684 * Record selectors are no longer "implicit ids", which entails changes to
2685      IfaceSyn.ifaceDeclSubBndrs
2686      HscTypes.implicitTyThings
2687      TidyPgm.getImplicitBinds
2688   (These three functions must agree.)
2689 
2690 * MkId.mkRecordSelectorId is deleted entirely, some 300+ lines (incl
2691   comments) of very error prone code.  Happy days.
2692 
2693 * A TyCon no longer contains the list of record selectors:
2694   algTcSelIds is gone
2695 
2696 The renamer is unaffected, including the way that import and export of
2697 record selectors is handled.
2698 
2699 Other small things
2700 
2701 * IfaceSyn.ifaceDeclSubBndrs had a fragile test for whether a data
2702   constructor had a wrapper.  I've replaced that with an explicit flag
2703   in the interface file. More robust I hope.
2704 
2705 * I renamed isIdVar to isId, which touched a few otherwise-unrelated files.
2706 
2707 
2708]
2709[Fix Trac #2721: reject newtype deriving if the class has associated types
2710simonpj@microsoft.com**20081231164300]
2711[-XImpredicativeTypes implies -XRankNTypes, and improve error msg in TcMType
2712simonpj@microsoft.com**20081231152517
2713 
2714 If you are going for impredicative types you almost certainly want RankN
2715 too. The change to TcMType improves the error when you say
2716      T (forall a. blah)
2717 where T is a type synonym.  This doesn't necessarily need impredicativity,
2718 if you have LiberalTypeSynonyms.
2719 
2720]
2721[Fix Trac #2856: make deriving work for type families
2722simonpj@microsoft.com**20081231144151
2723 
2724 Darn, but TcDeriv is complicated, when type families get in on
2725 the act!  This patch makes GeneralisedNewtypeDeriving work
2726 properly for type families.  I think.
2727 
2728 In order to do so, I found that GeneralisedNewtypeDeriving can
2729 work for recursive newtypes too -- and since families are conservatively
2730 marked recursive, that's a crucial part of the fix, and useful too.
2731 See Note [Recursive newtypes] in TcDeriv.
2732 
2733]
2734[White space and spelling in comments
2735simonpj@microsoft.com**20081231144131]
2736[Remove -XImpredicativeTypes from -fglasgow-exts
2737simonpj@microsoft.com**20081231144006
2738 
2739 See Trac #2846: impredicative types are far from stable, so
2740 -fglasgow-exts should not imply them.  Maybe we should merge
2741 this into 6.10?
2742 
2743]
2744[Improve error reporting for 'deriving'
2745simonpj@microsoft.com**20081231143521
2746 
2747 a) Improve the extra suggested fix when there's a "no instance"
2748    error in a deriving clause.
2749 
2750 b) Improve error location recording in tcInstDecl2
2751 
2752 Many of the changes in tcInstDecl2 are simple reformatting.
2753 
2754 
2755]
2756[Improve error message in deriving (fix Trac #2851)
2757simonpj@microsoft.com**20081230165906]
2758[Avoid nasty name clash with associated data types (fixes Trac #2888)
2759simonpj@microsoft.com**20081230164432
2760 
2761 The main bug was in TcHsType; see Note [Avoid name clashes for
2762 associated data types].  However I did a bit of re-factoring while
2763 I was abouut it.
2764 
2765 I'm still a but unhappy with the use of TyCon.setTyConArgPoss; it'd
2766 be better to construct the TyCon correctly in the first place.  But
2767 that means passing an extra parameter to tcTyDecl1... maybe we should
2768 do this.
2769 
2770 
2771]
2772[Refactor RnEnv to fix Trac #2901
2773simonpj@microsoft.com**20081230150445
2774 
2775 This tidy-up fixes Trac #2901, and eliminates 20 lines of code.
2776 Mainly this is done by making a version of lookupGlobalOccRn that
2777 returns (Maybe Name); this replaces lookupSrcOccRn but does more.
2778 
2779]
2780[Add quotes to error message
2781simonpj@microsoft.com**20081230150402]
2782[Tidy up treatment of big lambda (fixes Trac #2898)
2783simonpj@microsoft.com**20081230145948
2784 
2785 There was a leftover big lambda in the CorePrep'd code, which confused
2786 the bytecode generator.  Actually big lambdas are harmless.  This patch
2787 refactors ByteCodeGen so that it systemantically used 'bcView' to eliminate
2788 junk.  I did a little clean up in CorePrep too.
2789 
2790 See comments in Trac #2898.
2791 
2792]
2793[Fix warnings in ByteCodeAsm
2794Ian Lynagh <igloo@earth.li>**20081229174726]
2795[Fix warnings in ByteCodeInstr
2796Ian Lynagh <igloo@earth.li>**20081229173331]
2797[Fix warnings in Rules
2798Ian Lynagh <igloo@earth.li>**20081229171832]
2799[Fix warnings in StgCmmForeign
2800Ian Lynagh <igloo@earth.li>**20081229165957]
2801[Fix warnings in CgCallConv
2802Ian Lynagh <igloo@earth.li>**20081229165402]
2803[Fix warnings in SMRep
2804Ian Lynagh <igloo@earth.li>**20081229164959]
2805[Fix warnings in ClosureInfo
2806Ian Lynagh <igloo@earth.li>**20081229164618]
2807[Fix warnings in CgTicky
2808Ian Lynagh <igloo@earth.li>**20081229153416]
2809[Fix warnings in CgCon
2810Ian Lynagh <igloo@earth.li>**20081229151733]
2811[Fix warnings in WorkWrap
2812Ian Lynagh <igloo@earth.li>**20081229150406]
2813[Fix warnings in NCGMonad
2814Ian Lynagh <igloo@earth.li>**20081229145627]
2815[Fix warnings in CmmInfo
2816Ian Lynagh <igloo@earth.li>**20081229145307]
2817[Fix warnings in CmmCPSGen
2818Ian Lynagh <igloo@earth.li>**20081229145119]
2819[Fix warnings in CmmProcPoint
2820Ian Lynagh <igloo@earth.li>**20081229144214]
2821[Fix warnings in CmmCallConv
2822Ian Lynagh <igloo@earth.li>**20081229141924]
2823[Fix warnings in CmmLive
2824Ian Lynagh <igloo@earth.li>**20081229141035]
2825[Fix warnings in CmmCPS
2826Ian Lynagh <igloo@earth.li>**20081229133158]
2827[Fix warnings in CmmUtils
2828Ian Lynagh <igloo@earth.li>**20081229132637]
2829[Comment out dead function breakProc
2830Ian Lynagh <igloo@earth.li>**20081229115647]
2831[Fix warnings in CmmBrokenBlock
2832Ian Lynagh <igloo@earth.li>**20081229115527]
2833[Comments only.  Haddockify parts of TcRnTypes.
2834Thomas Schilling <nominolo@googlemail.com>**20081211154657]
2835[Comments only.  Fix typo.
2836Thomas Schilling <nominolo@googlemail.com>**20081211153104]
2837[Include PprTyThings in tags file.
2838Thomas Schilling <nominolo@googlemail.com>**20081211153005]
2839[Use DynFlags to work out if we are doing ticky ticky profiling
2840Ian Lynagh <igloo@earth.li>**20081218161928
2841 We used to use StaticFlags
2842]
2843[Fix warnings in CgExpr
2844Ian Lynagh <igloo@earth.li>**20081217201152]
2845[Fix warnings in CgBindery
2846Ian Lynagh <igloo@earth.li>**20081217194607]
2847[Fix warnings in CgStackery
2848Ian Lynagh <igloo@earth.li>**20081217191713]
2849[Fix warnings in CgCase
2850Ian Lynagh <igloo@earth.li>**20081217190848]
2851[Remove some dead code from CgCase
2852Ian Lynagh <igloo@earth.li>**20081217184755]
2853[Fix warnings in StgCmmProf
2854Ian Lynagh <igloo@earth.li>**20081217182236]
2855[Fix warnings in CgProf
2856Ian Lynagh <igloo@earth.li>**20081217181711]
2857[Fix warnings in CgInfoTbls
2858Ian Lynagh <igloo@earth.li>**20081217180144]
2859[Remove dead function srtLabelAndLength from CgInfoTbls
2860Ian Lynagh <igloo@earth.li>**20081217180044]
2861[Fix warnings in CgHeapery
2862Ian Lynagh <igloo@earth.li>**20081217175726]
2863[Fix warnings in CgTailCall
2864Ian Lynagh <igloo@earth.li>**20081217175040]
2865[Remove a little dead code from CgTailCall
2866Ian Lynagh <igloo@earth.li>**20081217174947]
2867[Fix warnings in CodeGen
2868Ian Lynagh <igloo@earth.li>**20081217165904]
2869[Fix warnings in StgCmmTicky
2870Ian Lynagh <igloo@earth.li>**20081217165433]
2871[Remove dead code from CgUtils
2872Ian Lynagh <igloo@earth.li>**20081217163920]
2873[Fix warnings in CgPrimOp
2874Ian Lynagh <igloo@earth.li>**20081217163912]
2875[Fix warnings in CgMonad
2876Ian Lynagh <igloo@earth.li>**20081217163903]
2877[Fix warnings in CgClosure
2878Ian Lynagh <igloo@earth.li>**20081217163850]
2879[Fix warnings in CgForeignCall
2880Ian Lynagh <igloo@earth.li>**20081215222515]
2881[Remove some redundant code
2882Ian Lynagh <igloo@earth.li>**20081215194047
2883 We were looking at opt_DoTickyProfiling, and if it was set claling ifTicky
2884 which looks at opt_DoTickyProfiling itself.
2885]
2886[Fix warnings in CgLetNoEscape
2887Ian Lynagh <igloo@earth.li>**20081215173752]
2888[Workaround for #2262, from Barney Stratford
2889Simon Marlow <marlowsd@gmail.com>**20081216124706
2890 See http://www.haskell.org/pipermail/glasgow-haskell-users/2008-December/016333.html
2891]
2892[UNDO: Add -fpass-case-bndr-to-join-points
2893Simon Marlow <marlowsd@gmail.com>**20081216114235
2894 
2895 rolling back:
2896 
2897 Fri Dec  5 10:51:59 GMT 2008  simonpj@microsoft.com
2898   * Add -fpass-case-bndr-to-join-points
2899   
2900   See Note [Passing the case binder to join points] in Simplify.lhs
2901   The default now is *not* to pass the case binder.  There are some
2902   nofib results with the above note; the effect is almost always
2903   negligible.
2904   
2905   I don't expect this flag to be used by users (hence no docs). It's just
2906   there to let me try the performance effects of switching on and off.
2907   
2908 
2909     M ./compiler/main/StaticFlagParser.hs +1
2910     M ./compiler/main/StaticFlags.hs +4
2911     M ./compiler/simplCore/Simplify.lhs -14 +73
2912]
2913[Rollback INLINE patches
2914Simon Marlow <marlowsd@gmail.com>**20081216103556
2915 
2916 rolling back:
2917 
2918 Fri Dec  5 16:54:00 GMT 2008  simonpj@microsoft.com
2919   * Completely new treatment of INLINE pragmas (big patch)
2920   
2921   This is a major patch, which changes the way INLINE pragmas work.
2922   Although lots of files are touched, the net is only +21 lines of
2923   code -- and I bet that most of those are comments!
2924   
2925   HEADS UP: interface file format has changed, so you'll need to
2926   recompile everything.
2927   
2928   There is not much effect on overall performance for nofib,
2929   probably because those programs don't make heavy use of INLINE pragmas.
2930   
2931           Program           Size    Allocs   Runtime   Elapsed
2932               Min         -11.3%     -6.9%     -9.2%     -8.2%
2933               Max          -0.1%     +4.6%     +7.5%     +8.9%
2934    Geometric Mean          -2.2%     -0.2%     -1.0%     -0.8%
2935   
2936   (The +4.6% for on allocs is cichelli; see other patch relating to
2937   -fpass-case-bndr-to-join-points.)
2938   
2939   The old INLINE system
2940   ~~~~~~~~~~~~~~~~~~~~~
2941   The old system worked like this. A function with an INLINE pragam
2942   got a right-hand side which looked like
2943        f = __inline_me__ (\xy. e)
2944   The __inline_me__ part was an InlineNote, and was treated specially
2945   in various ways.  Notably, the simplifier didn't inline inside an
2946   __inline_me__ note. 
2947   
2948   As a result, the code for f itself was pretty crappy. That matters
2949   if you say (map f xs), because then you execute the code for f,
2950   rather than inlining a copy at the call site.
2951   
2952   The new story: InlineRules
2953   ~~~~~~~~~~~~~~~~~~~~~~~~~~
2954   The new system removes the InlineMe Note altogether.  Instead there
2955   is a new constructor InlineRule in CoreSyn.Unfolding.  This is a
2956   bit like a RULE, in that it remembers the template to be inlined inside
2957   the InlineRule.  No simplification or inlining is done on an InlineRule,
2958   just like RULEs. 
2959   
2960   An Id can have an InlineRule *or* a CoreUnfolding (since these are two
2961   constructors from Unfolding). The simplifier treats them differently:
2962   
2963     - An InlineRule is has the substitution applied (like RULES) but
2964       is otherwise left undisturbed.
2965   
2966     - A CoreUnfolding is updated with the new RHS of the definition,
2967       on each iteration of the simplifier.
2968   
2969   An InlineRule fires regardless of size, but *only* when the function
2970   is applied to enough arguments.  The "arity" of the rule is specified
2971   (by the programmer) as the number of args on the LHS of the "=".  So
2972   it makes a difference whether you say
2973        {-# INLINE f #-}
2974        f x = \y -> e     or     f x y = e
2975   This is one of the big new features that InlineRule gives us, and it
2976   is one that Roman really wanted.
2977   
2978   In contrast, a CoreUnfolding can fire when it is applied to fewer
2979   args than than the function has lambdas, provided the result is small
2980   enough.
2981   
2982   
2983   Consequential stuff
2984   ~~~~~~~~~~~~~~~~~~~
2985   * A 'wrapper' no longer has a WrapperInfo in the IdInfo.  Instead,
2986     the InlineRule has a field identifying wrappers.
2987   
2988   * Of course, IfaceSyn and interface serialisation changes appropriately.
2989   
2990   * Making implication constraints inline nicely was a bit fiddly. In
2991     the end I added a var_inline field to HsBInd.VarBind, which is why
2992     this patch affects the type checker slightly
2993   
2994   * I made some changes to the way in which eta expansion happens in
2995     CorePrep, mainly to ensure that *arguments* that become let-bound
2996     are also eta-expanded.  I'm still not too happy with the clarity
2997     and robustness fo the result.
2998   
2999   * We now complain if the programmer gives an INLINE pragma for
3000     a recursive function (prevsiously we just ignored it).  Reason for
3001     change: we don't want an InlineRule on a LoopBreaker, because then
3002     we'd have to check for loop-breaker-hood at occurrence sites (which
3003     isn't currenlty done).  Some tests need changing as a result.
3004   
3005   This patch has been in my tree for quite a while, so there are
3006   probably some other minor changes.
3007   
3008 
3009     M ./compiler/basicTypes/Id.lhs -11
3010     M ./compiler/basicTypes/IdInfo.lhs -82
3011     M ./compiler/basicTypes/MkId.lhs -2 +2
3012     M ./compiler/coreSyn/CoreFVs.lhs -2 +25
3013     M ./compiler/coreSyn/CoreLint.lhs -5 +1
3014     M ./compiler/coreSyn/CorePrep.lhs -59 +53
3015     M ./compiler/coreSyn/CoreSubst.lhs -22 +31
3016     M ./compiler/coreSyn/CoreSyn.lhs -66 +92
3017     M ./compiler/coreSyn/CoreUnfold.lhs -112 +112
3018     M ./compiler/coreSyn/CoreUtils.lhs -185 +184
3019     M ./compiler/coreSyn/MkExternalCore.lhs -1
3020     M ./compiler/coreSyn/PprCore.lhs -4 +40
3021     M ./compiler/deSugar/DsBinds.lhs -70 +118
3022     M ./compiler/deSugar/DsForeign.lhs -2 +4
3023     M ./compiler/deSugar/DsMeta.hs -4 +3
3024     M ./compiler/hsSyn/HsBinds.lhs -3 +3
3025     M ./compiler/hsSyn/HsUtils.lhs -2 +7
3026     M ./compiler/iface/BinIface.hs -11 +25
3027     M ./compiler/iface/IfaceSyn.lhs -13 +21
3028     M ./compiler/iface/MkIface.lhs -24 +19
3029     M ./compiler/iface/TcIface.lhs -29 +23
3030     M ./compiler/main/TidyPgm.lhs -55 +49
3031     M ./compiler/parser/ParserCore.y -5 +6
3032     M ./compiler/simplCore/CSE.lhs -2 +1
3033     M ./compiler/simplCore/FloatIn.lhs -6 +1
3034     M ./compiler/simplCore/FloatOut.lhs -23
3035     M ./compiler/simplCore/OccurAnal.lhs -36 +5
3036     M ./compiler/simplCore/SetLevels.lhs -59 +54
3037     M ./compiler/simplCore/SimplCore.lhs -48 +52
3038     M ./compiler/simplCore/SimplEnv.lhs -26 +22
3039     M ./compiler/simplCore/SimplUtils.lhs -28 +4
3040     M ./compiler/simplCore/Simplify.lhs -91 +109
3041     M ./compiler/specialise/Specialise.lhs -15 +18
3042     M ./compiler/stranal/WorkWrap.lhs -14 +11
3043     M ./compiler/stranal/WwLib.lhs -2 +2
3044     M ./compiler/typecheck/Inst.lhs -1 +3
3045     M ./compiler/typecheck/TcBinds.lhs -17 +27
3046     M ./compiler/typecheck/TcClassDcl.lhs -1 +2
3047     M ./compiler/typecheck/TcExpr.lhs -4 +6
3048     M ./compiler/typecheck/TcForeign.lhs -1 +1
3049     M ./compiler/typecheck/TcGenDeriv.lhs -14 +13
3050     M ./compiler/typecheck/TcHsSyn.lhs -3 +2
3051     M ./compiler/typecheck/TcInstDcls.lhs -5 +4
3052     M ./compiler/typecheck/TcRnDriver.lhs -2 +11
3053     M ./compiler/typecheck/TcSimplify.lhs -10 +17
3054     M ./compiler/vectorise/VectType.hs +7
3055 
3056 Mon Dec  8 12:43:10 GMT 2008  simonpj@microsoft.com
3057   * White space only
3058 
3059     M ./compiler/simplCore/Simplify.lhs -2
3060 
3061 Mon Dec  8 12:48:40 GMT 2008  simonpj@microsoft.com
3062   * Move simpleOptExpr from CoreUnfold to CoreSubst
3063 
3064     M ./compiler/coreSyn/CoreSubst.lhs -1 +87
3065     M ./compiler/coreSyn/CoreUnfold.lhs -72 +1
3066 
3067 Mon Dec  8 17:30:18 GMT 2008  simonpj@microsoft.com
3068   * Use CoreSubst.simpleOptExpr in place of the ad-hoc simpleSubst (reduces code too)
3069 
3070     M ./compiler/deSugar/DsBinds.lhs -50 +16
3071 
3072 Tue Dec  9 17:03:02 GMT 2008  simonpj@microsoft.com
3073   * Fix Trac #2861: bogus eta expansion
3074   
3075   Urghlhl!  I "tided up" the treatment of the "state hack" in CoreUtils, but
3076   missed an unexpected interaction with the way that a bottoming function
3077   simply swallows excess arguments.  There's a long
3078        Note [State hack and bottoming functions]
3079   to explain (which accounts for most of the new lines of code).
3080   
3081 
3082     M ./compiler/coreSyn/CoreUtils.lhs -16 +53
3083 
3084 Mon Dec 15 10:02:21 GMT 2008  Simon Marlow <marlowsd@gmail.com>
3085   * Revert CorePrep part of "Completely new treatment of INLINE pragmas..."
3086   
3087   The original patch said:
3088   
3089   * I made some changes to the way in which eta expansion happens in
3090     CorePrep, mainly to ensure that *arguments* that become let-bound
3091     are also eta-expanded.  I'm still not too happy with the clarity
3092     and robustness fo the result.
3093     
3094   Unfortunately this change apparently broke some invariants that were
3095   relied on elsewhere, and in particular lead to panics when compiling
3096   with profiling on.
3097   
3098   Will re-investigate in the new year.
3099 
3100     M ./compiler/coreSyn/CorePrep.lhs -53 +58
3101     M ./configure.ac -1 +1
3102 
3103 Mon Dec 15 12:28:51 GMT 2008  Simon Marlow <marlowsd@gmail.com>
3104   * revert accidental change to configure.ac
3105 
3106     M ./configure.ac -1 +1
3107]
3108[revert accidental change to configure.ac
3109Simon Marlow <marlowsd@gmail.com>**20081215122851]
3110[Revert CorePrep part of "Completely new treatment of INLINE pragmas..."
3111Simon Marlow <marlowsd@gmail.com>**20081215100221
3112 
3113 The original patch said:
3114 
3115 * I made some changes to the way in which eta expansion happens in
3116   CorePrep, mainly to ensure that *arguments* that become let-bound
3117   are also eta-expanded.  I'm still not too happy with the clarity
3118   and robustness fo the result.
3119   
3120 Unfortunately this change apparently broke some invariants that were
3121 relied on elsewhere, and in particular lead to panics when compiling
3122 with profiling on.
3123 
3124 Will re-investigate in the new year.
3125]
3126[wake up other Capabilities even when there is only one spark (see #2868)
3127Simon Marlow <marlowsd@gmail.com>**20081210164644]
3128[Document new GC options -q1 and -qg<n>
3129Simon Marlow <marlowsd@gmail.com>**20081210164557]
3130[SysTools no longer needs -fno-cse
3131Ian Lynagh <igloo@earth.li>**20081211182327]
3132[Make the lists of files and directories to be cleaned-up non-global
3133Ian Lynagh <igloo@earth.li>**20081211180739
3134 They still need to be stored in IORefs, as the exception handler needs
3135 to know what they all are.
3136]
3137[The default cleanup handler should /always/ delete the temp files
3138Ian Lynagh <igloo@earth.li>**20081211170006
3139 Not only if there has been an exception. It worked for GHC anyway,
3140 as it was getting an ExitSuccess exception, but GHC API clients
3141 shouldn't be required to do that.
3142]
3143[Fix user guide typesetting
3144Ian Lynagh <igloo@earth.li>**20081210165434]
3145[FIX #1364: added support for C finalizers that run as soon as the value is not longer reachable.
3146Simon Marlow <marlowsd@gmail.com>**20081210150425
3147   
3148 Patch originally by Ivan Tomac <tomac@pacific.net.au>, amended by
3149 Simon Marlow:
3150 
3151   - mkWeakFinalizer# commoned up with mkWeakFinalizerEnv#
3152   - GC parameters to ALLOC_PRIM fixed
3153]
3154[On FreeBSD, try MAP_FIXED if ordinary mmap() fails to give us suitable memory
3155Simon Marlow <marlowsd@gmail.com>**20081210115751
3156 This appears to be necessary on FreeBSD.  It might be necessary on
3157 other OSs too, but I'm being cautious because using MAP_FIXED can lead
3158 to crashes by overwriting existing mappings, and we have no (easy) way
3159 to prevent that.
3160]
3161[Document hs_init() infelicity (#2863)
3162Simon Marlow <marlowsd@gmail.com>**20081209164322]
3163[Improve documentation for data family instances (cf Trac #1968)
3164simonpj@microsoft.com**20081210054432
3165 
3166 The HEAD allows GADT syntax for data/newtype family instances.
3167 (GHC 6.10 does not seem to.)
3168 
3169]
3170[Make some profiling flags dynamic
3171Ian Lynagh <igloo@earth.li>**20081209230157
3172 In particular:
3173     -fauto-sccs-on-all-toplevs          -auto-all   -no-auto-all
3174     -fauto-sccs-on-exported-toplevs     -auto       -no-auto
3175     -fauto-sccs-on-individual-cafs      -caf-all    -no-caf-all
3176]
3177[Fix warnings in StgCmmGran
3178Ian Lynagh <igloo@earth.li>**20081209222413]
3179[Add OPTIONS_CATCH,DERIVE,YHC to those that GHC knows about; trac #2847
3180Ian Lynagh <igloo@earth.li>**20081209191724]
3181[Fix warnings in CgHpc
3182Ian Lynagh <igloo@earth.li>**20081209191713]
3183[Parse pragma names better; trac #2847
3184Ian Lynagh <igloo@earth.li>**20081209190318
3185 We require that pragma names are not followed by pragma character,
3186 defined as
3187     isAlphaNum c || c == '_'
3188]
3189[Fix warnings in CgParallel
3190Ian Lynagh <igloo@earth.li>**20081209184402]
3191[Fix warnings in StgCmmHpc
3192Ian Lynagh <igloo@earth.li>**20081209184004]
3193[Remove an unnecessary -w flag
3194Ian Lynagh <igloo@earth.li>**20081209183812]
3195[Fix Trac #2861: bogus eta expansion
3196simonpj@microsoft.com**20081209170302
3197 
3198 Urghlhl!  I "tided up" the treatment of the "state hack" in CoreUtils, but
3199 missed an unexpected interaction with the way that a bottoming function
3200 simply swallows excess arguments.  There's a long
3201      Note [State hack and bottoming functions]
3202 to explain (which accounts for most of the new lines of code).
3203 
3204]
3205[Fix #2592: do an orderly shutdown when the heap is exhausted
3206Simon Marlow <marlowsd@gmail.com>**20081209105919
3207 Really we should be raising an exception in this case, but that's
3208 tricky (see comments).  At least now we shut down the runtime
3209 correctly rather than just exiting.
3210]
3211[Fix #2848: avoid overflow during time calculation
3212Simon Marlow <marlowsd@gmail.com>**20081209105600]
3213[Fix #2838: we should narrow a CmmInt before converting to ImmInteger
3214Simon Marlow <marlowsd@gmail.com>**20081209105515]
3215[fix an assertion failure in prof/threaded/debug mode
3216Simon Marlow <marlowsd@gmail.com>**20081204101201]
3217[Inject implicit bindings after CoreTidy, not before Simplify
3218simonpj@microsoft.com**20081208173525
3219 
3220 Originally I inject the "implicit bindings" (record selectors, class
3221 method selectors, data con wrappers...) after CoreTidy.  However, in a
3222 misguided attempt to fix Trac #2070, I moved the injection point to
3223 before the Simplifier, so that record selectors would be optimised by
3224 the simplifier.
3225 
3226 This was misguided because record selectors (indeed all implicit bindings)
3227 are GlobalIds, whose IdInfo is meant to be frozen.  But the Simplifier,
3228 and other Core-to-Core optimisations, merrily change the IdInfo.  That
3229 ultimately made Trac #2844 happen, where a record selector got arity 2,
3230 but the GlobalId (which importing scopes re-construct from the class decl
3231 rather than reading from the interface file) has arity 1.
3232 
3233 So this patch moves the injection back to CoreTidy. Happily #2070 should
3234 still be OK because we now use CoreSubst.simpleOptExpr on the unfoldings
3235 for implict things, which gets rid of the most gratuitous infelicities.
3236 
3237 Still, there's a strong case for stoppping record selectors from being
3238 GlobalIds, and treating them much more like dict-funs.  I'm thinking
3239 about that.  Meanwhile, #2844 is ok now.
3240 
3241]
3242[Add assertion for arity match (checks Trac #2844)
3243simonpj@microsoft.com**20081208173241
3244 
3245 The exported arity of a function must match the arity for the
3246 STG function.  Trac #2844 was a pretty obscure manifestation of
3247 the failure of this invariant. This patch doesn't cure the bug;
3248 rather it adds an assertion to CoreToStg to check the invariant
3249 so we should get an earlier and less obscure warning if this
3250 fails in future.
3251 
3252]
3253[Use CoreSubst.simpleOptExpr in place of the ad-hoc simpleSubst (reduces code too)
3254simonpj@microsoft.com**20081208173018]
3255[Move simpleOptExpr from CoreUnfold to CoreSubst
3256simonpj@microsoft.com**20081208124840]
3257[White space only
3258simonpj@microsoft.com**20081208124310]
3259[Comments only
3260simonpj@microsoft.com**20081208124155]
3261[Completely new treatment of INLINE pragmas (big patch)
3262simonpj@microsoft.com**20081205165400
3263 
3264 This is a major patch, which changes the way INLINE pragmas work.
3265 Although lots of files are touched, the net is only +21 lines of
3266 code -- and I bet that most of those are comments!
3267 
3268 HEADS UP: interface file format has changed, so you'll need to
3269 recompile everything.
3270 
3271 There is not much effect on overall performance for nofib,
3272 probably because those programs don't make heavy use of INLINE pragmas.
3273 
3274         Program           Size    Allocs   Runtime   Elapsed
3275             Min         -11.3%     -6.9%     -9.2%     -8.2%
3276             Max          -0.1%     +4.6%     +7.5%     +8.9%
3277  Geometric Mean          -2.2%     -0.2%     -1.0%     -0.8%
3278 
3279 (The +4.6% for on allocs is cichelli; see other patch relating to
3280 -fpass-case-bndr-to-join-points.)
3281 
3282 The old INLINE system
3283 ~~~~~~~~~~~~~~~~~~~~~
3284 The old system worked like this. A function with an INLINE pragam
3285 got a right-hand side which looked like
3286      f = __inline_me__ (\xy. e)
3287 The __inline_me__ part was an InlineNote, and was treated specially
3288 in various ways.  Notably, the simplifier didn't inline inside an
3289 __inline_me__ note. 
3290 
3291 As a result, the code for f itself was pretty crappy. That matters
3292 if you say (map f xs), because then you execute the code for f,
3293 rather than inlining a copy at the call site.
3294 
3295 The new story: InlineRules
3296 ~~~~~~~~~~~~~~~~~~~~~~~~~~
3297 The new system removes the InlineMe Note altogether.  Instead there
3298 is a new constructor InlineRule in CoreSyn.Unfolding.  This is a
3299 bit like a RULE, in that it remembers the template to be inlined inside
3300 the InlineRule.  No simplification or inlining is done on an InlineRule,
3301 just like RULEs. 
3302 
3303 An Id can have an InlineRule *or* a CoreUnfolding (since these are two
3304 constructors from Unfolding). The simplifier treats them differently:
3305 
3306   - An InlineRule is has the substitution applied (like RULES) but
3307     is otherwise left undisturbed.
3308 
3309   - A CoreUnfolding is updated with the new RHS of the definition,
3310     on each iteration of the simplifier.
3311 
3312 An InlineRule fires regardless of size, but *only* when the function
3313 is applied to enough arguments.  The "arity" of the rule is specified
3314 (by the programmer) as the number of args on the LHS of the "=".  So
3315 it makes a difference whether you say
3316        {-# INLINE f #-}
3317        f x = \y -> e     or     f x y = e
3318 This is one of the big new features that InlineRule gives us, and it
3319 is one that Roman really wanted.
3320 
3321 In contrast, a CoreUnfolding can fire when it is applied to fewer
3322 args than than the function has lambdas, provided the result is small
3323 enough.
3324 
3325 
3326 Consequential stuff
3327 ~~~~~~~~~~~~~~~~~~~
3328 * A 'wrapper' no longer has a WrapperInfo in the IdInfo.  Instead,
3329   the InlineRule has a field identifying wrappers.
3330 
3331 * Of course, IfaceSyn and interface serialisation changes appropriately.
3332 
3333 * Making implication constraints inline nicely was a bit fiddly. In
3334   the end I added a var_inline field to HsBInd.VarBind, which is why
3335   this patch affects the type checker slightly
3336 
3337 * I made some changes to the way in which eta expansion happens in
3338   CorePrep, mainly to ensure that *arguments* that become let-bound
3339   are also eta-expanded.  I'm still not too happy with the clarity
3340   and robustness fo the result.
3341 
3342 * We now complain if the programmer gives an INLINE pragma for
3343   a recursive function (prevsiously we just ignored it).  Reason for
3344   change: we don't want an InlineRule on a LoopBreaker, because then
3345   we'd have to check for loop-breaker-hood at occurrence sites (which
3346   isn't currenlty done).  Some tests need changing as a result.
3347 
3348 This patch has been in my tree for quite a while, so there are
3349 probably some other minor changes.
3350 
3351]
3352[Add -fpass-case-bndr-to-join-points
3353simonpj@microsoft.com**20081205105159
3354 
3355 See Note [Passing the case binder to join points] in Simplify.lhs
3356 The default now is *not* to pass the case binder.  There are some
3357 nofib results with the above note; the effect is almost always
3358 negligible.
3359 
3360 I don't expect this flag to be used by users (hence no docs). It's just
3361 there to let me try the performance effects of switching on and off.
3362 
3363]
3364[Add static flag -fsimple-list-literals
3365simonpj@microsoft.com**20081205105002
3366 
3367 The new static flag -fsimple-list-literals makes ExplicitList literals
3368 be desugared in the straightforward way, rather than using 'build' as
3369 now.  See SLPJ comments with Note [Desugaring explicit lists].
3370 
3371 I don't expect this flag to be used by users (hence no docs). It's just
3372 there to let me try the performance effects of switching on and off.
3373 
3374]
3375[Comments only in OccurAnal
3376simonpj@microsoft.com**20081205103252]
3377[Comments only
3378simonpj@microsoft.com**20081205102437]
3379[Layout only
3380simonpj@microsoft.com**20081205102252]
3381[Comments only (Note [Entering error thunks])
3382simonpj@microsoft.com**20081205102149]
3383[Make CoreToStg a little more robust to eta expansion
3384simonpj@microsoft.com**20081205101932]
3385[Add no-op case for addIdSpecialisations (very minor optimisation)
3386simonpj@microsoft.com**20081205101022]
3387[Trim redundant import
3388simonpj@microsoft.com**20081205101006]
3389[Make CoreTidy retain deadness info (better -ddump-simpl)
3390simonpj@microsoft.com**20081205100518
3391 
3392 GHC now retains more robust information about dead variables; but
3393 CoreTidy was throwing it away.  This patch makes CoreTidy retain it,
3394 which gives better output for -ddump-simpl.
3395 
3396 New opportunity: shrink interface files by using wildcards for dead variables.
3397 
3398 
3399]
3400[Remove INLINE pragmas on recursive functions
3401simonpj@microsoft.com**20081205100353
3402 
3403 INLINE pragmas on recursive functions are ignored; and this
3404 is checked in my upcoming patch for inlinings.
3405 
3406]
3407[Comments only (on Activation)
3408simonpj@microsoft.com**20081205100139]
3409[We need to tell cabal-bin which version of Cabal to use
3410Ian Lynagh <igloo@earth.li>**20081203123208
3411 Otherwise, if the bootstrapping compiler has a newer version, we get
3412 a mismatch between the version used to compile ghc-prim's Setup.hs and
3413 the version that installPackage uses.
3414]
3415[Document 'loadModule'.
3416Thomas Schilling <nominolo@googlemail.com>**20081202154800]
3417[Add 'needsTemplateHaskell' utility function and document why one might
3418Thomas Schilling <nominolo@googlemail.com>**20081202152358
3419 want to use it.
3420]
3421[Documentation only.
3422Thomas Schilling <nominolo@googlemail.com>**20081202150158]
3423[Export 'succeeded' and 'failed' helper functions.
3424Thomas Schilling <nominolo@googlemail.com>**20081202144451]
3425[Put full ImportDecls in ModSummary instead of just ModuleNames
3426Simon Marlow <marlowsd@gmail.com>**20081202133736
3427 ... and use it to make ghc -M generate correct cross-package
3428 dependencies when using package-qualified imports (needed for the new
3429 build system).  Since we're already parsing the ImportDecl from the
3430 source file, there seems no good reason not to keep it in the
3431 ModSummary, it might be useful for other things too.
3432]
3433[ghc -M: need to add a dep on Prelude unless -fno-implicit-prelude is on
3434Simon Marlow <marlowsd@gmail.com>**20081128165707]
3435[make -include-pkg-deps work (not sure when this got lost)
3436Simon Marlow <marlowsd@gmail.com>**20081128135746]
3437[Fix more problems caused by padding in the Capability structure
3438Simon Marlow <marlowsd@gmail.com>**20081202120735
3439 Fixes crashes on Windows and Sparc
3440]
3441[add missing case to Ord GlobalReg (EagerBlackhole == EagerBlackhole)
3442Simon Marlow <marlowsd@gmail.com>**20081128130106]
3443[Better error message for fundep conflict
3444simonpj@microsoft.com**20081201162845]
3445[Fix typo in quasi-quote documentation's sample.
3446shelarcy <shelarcy@gmail.com>**20081129024344]
3447[Remove the v_Split_info global variable and use a field of dflags instead
3448Ian Lynagh <igloo@earth.li>**20081130152403]
3449[Document the --machine-readable RTS flag
3450Ian Lynagh <igloo@earth.li>**20081130152311]
3451[Let 'loadModule' generate proper code depending on the 'hscTarget'.
3452Thomas Schilling <nominolo@googlemail.com>**20081128164412
3453 
3454 With this change it should be possible to perform something similar to
3455 'load' by traversing the module graph in dependency order and calling
3456 '{parse,typecheck,load}Module' on each.  Of course, if you want smart
3457 recompilation checking you should still use 'load'.
3458]
3459[Expose a separate 'hscBackend' phase for 'HsCompiler' and change
3460Thomas Schilling <nominolo@googlemail.com>**20081128163746
3461 parameter to 'InteractiveStatus' to a 'Maybe'.
3462]
3463[Whoops, *don't* reset the complete session in 'withLocalCallbacks'.
3464Thomas Schilling <nominolo@googlemail.com>**20081128150727]
3465[Use a record instead of a typeclass for 'HsCompiler'.  This is mostly
3466Thomas Schilling <nominolo@googlemail.com>**20081128121947
3467 equivalent to a typeclass implementation that uses a functional
3468 dependency from the target mode to the result type.
3469]
3470[Remove dead code
3471Ian Lynagh <igloo@earth.li>**20081128193831]
3472[Update docs not to talk about deprecated -optdep-* flags; fixes trac #2773
3473Ian Lynagh <igloo@earth.li>**20081128193633]
3474[Use relative URLs in the GHC API haddock docs; fixes #2755
3475Ian Lynagh <igloo@earth.li>**20081128184511]
3476[Teach runghc about --help; fixes trac #2757
3477Ian Lynagh <igloo@earth.li>**20081128191706]
3478[Use a per-session data structure for callbacks.  Make 'WarnErrLogger'
3479Thomas Schilling <nominolo@googlemail.com>**20081128103628
3480 part of it.
3481 
3482 Part of the GHC API essentially represents a compilation framework.
3483 The difference of a *framework* as opposed to a *library* is that the
3484 overall structure of the functionality is pre-defined but certain
3485 details can be customised via callbacks.  (Also known as the Hollywood
3486 Principle: "Don't call us, we'll call you.")
3487 
3488 This patch introduces a per-session data structure that contains all
3489 the callbacks instead of adding lots of small function arguments
3490 whenever we want to give the user more control over certain parts of
3491 the API.  This should also help with future changes: Adding a new
3492 callback doesn't break old code since code that doesn't know about the
3493 new callback will use the (hopefully sane) default implementation.
3494 
3495 Overall, however, we should try and keep the number of callbacks small
3496 and well-defined (and provide useful defaults) and use simple library
3497 routines for the rest.
3498]
3499[Improve error message for #2739 (but no fix).
3500Thomas Schilling <nominolo@googlemail.com>**20081127135725
3501 
3502 This patch changes 'loadModule' to define a fake linkable.  The
3503 previous implementation of providing no linkable at all violated a
3504 pre-condition in the ByteCode linker.  This doesn't fix #2739, but it
3505 improves the error message a bit.
3506]
3507[Remove the packing I added recently to the Capability structure
3508Simon Marlow <marlowsd@gmail.com>**20081128105046
3509 The problem is that the packing caused some unaligned loads, which
3510 lead to bus errors on Sparc (and reduced performance elsewhere,
3511 presumably).
3512]
3513[don't emit CmmComments for now
3514Simon Marlow <marlowsd@gmail.com>**20081127090145
3515   - if the string contains */, we need to fix it (demonstrated by
3516     building Cabal with -fvia-C)
3517   - the strings can get quite large, so we probably only want to
3518     inject comments when some debugging option is on.
3519]
3520[Collect instead of print warnings in 'warnUnnecessarySourceImports'.
3521Thomas Schilling <nominolo@googlemail.com>**20081127102534]
3522[Force recompilation of BCOs when they were compiled in HscNothing mode.
3523Thomas Schilling <nominolo@googlemail.com>**20081126183402
3524 
3525 Previously, loading a set of modules in HscNothing mode and then
3526 switching to HscInterpreted could lead to crashes since modules
3527 compiled with HscNothing were thought to be valid bytecode objects.
3528 
3529 This patch forces recompilation in these cases, hence switching between
3530 HscNothing and HscInterpreted should be safe now.
3531]
3532[Documentation only: Add module description for HscMain.
3533Thomas Schilling <nominolo@googlemail.com>**20081126134344]
3534[Include GHCi files in ctags/etags.
3535Thomas Schilling <nominolo@googlemail.com>**20081126122801]
3536[drop some debugging traces and use only one flag for new codegen
3537dias@eecs.harvard.edu**20081126180808]
3538[one more missing patch from new codegen path
3539dias@eecs.harvard.edu**20081126165742]
3540[Fix Trac #2817 (TH syntax -> HsSyn conversion)
3541simonpj@microsoft.com**20081126154022]
3542[Fix Trac #2756: CorePrep strictness bug
3543simonpj@microsoft.com**20081126143448]
3544[Format output for :t more nicely
3545simonpj@microsoft.com**20081126134814]
3546[Fix Trac #2766: printing operator type variables
3547simonpj@microsoft.com**20081126132202]
3548[Fix build following codegen patch
3549simonpj@microsoft.com**20081126125526]
3550[Removed warnings, made Haddock happy, added examples in documentation
3551dias@eecs.harvard.edu**20081017170707
3552 The interesting examples talk about our story with heap checks in
3553 case alternatives and our story with the case scrutinee as a Boolean.
3554]
3555[Fixed linear regalloc bug, dropped some tracing code
3556dias@eecs.harvard.edu**20081016104218
3557 o The linear-scan register allocator sometimes allocated a block
3558   before allocating one of its predecessors, which could lead
3559   to inconsistent allocations. Now, we allocate a block only
3560   if a predecessor has set the "incoming" assignments for the block
3561   (or if it's the procedure's entry block).
3562 o Also commented out some tracing code on the new codegen path.
3563]
3564[Keep update frames live even in functions that never return
3565dias@eecs.harvard.edu**20081014165437
3566 An unusual case, but without it:
3567 (a) we had an assertion failure
3568 (b) we can overwrite the caller's infotable, which might cause
3569     the garbage collector to collect live data.
3570 Better to keep the update frame live at all call sites,
3571 not just at returns.
3572]
3573[Removed space and time inefficiency in procpoint splitting
3574dias@eecs.harvard.edu**20081014160354
3575 I was adding extra jumps to every procpoint, even when the split-off graph
3576 referred to only some of the procpoints. No effect on correctness,
3577 but a big effect on space/time efficiency when there are lots of procpoints...
3578]
3579[Clarify the SRT building process
3580dias@eecs.harvard.edu**20081014140202
3581 Before: building a closure that would build an SRT given the top-level
3582 SRT. It was somewhat difficult to understand the control flow, and it
3583 may have had held onto some data structures long after they should be dead.
3584 Now, I just bundle the info we need about CAFs along with the procedure
3585 and directly call a new top-level function to build the SRTs later.
3586]
3587[Don't adjust hp up when the case scrutinee won't allocate
3588dias@eecs.harvard.edu**20081014112618
3589 
3590 If the case scrutinee can't allocate, we don't need to do a heap
3591 check in the case alternatives. (A previous patch got that right.)
3592 In that case, we had better not adjust the heap pointer to recover
3593 unused stack space before evaluating the scrutinee -- because we
3594 aren't going to reallocate for the case alternative.
3595]
3596[Floating infotables were reversed in C back end
3597dias@eecs.harvard.edu**20081013152718]
3598[forgot a few files
3599dias@eecs.harvard.edu**20081013134251]
3600[Big collection of patches for the new codegen branch.
3601dias@eecs.harvard.edu**20081013132556
3602 o Fixed bug that emitted the copy-in code for closure entry
3603   in the wrong place -- at the initialization of the closure.
3604 o Refactored some of the closure entry code.
3605 o Added code to check that no LocalRegs are live-in to a procedure
3606    -- trip up some buggy programs earlier
3607 o Fixed environment bindings for thunks
3608    -- we weren't (re)binding the free variables in a thunk
3609 o Fixed a bug in proc-point splitting that dropped some updates
3610   to the entry block in a procedure.
3611 o Fixed improper calls to code that generates CmmLit's for strings
3612 o New invariant on cg_loc in CgIdInfo: the expression is always tagged
3613 o Code to load free vars on entry to a thunk was (wrongly) placed before
3614   the heap check.
3615 o Some of the StgCmm code was redundantly passing around Id's
3616   along with CgIdInfo's; no more.
3617 o Initialize the LocalReg's that point to a closure before allocating and
3618   initializing the closure itself -- otherwise, we have problems with
3619   recursive closure bindings
3620 o BlockEnv and BlockSet types are now abstract.
3621 o Update frames:
3622   - push arguments in Old call area
3623   - keep track of the return sp in the FCode monad
3624   - keep the return sp in every call, tail call, and return
3625       (because it might be different at different call sites,
3626        e.g. tail calls to the gc after a heap check are performed
3627             before pushing the update frame)
3628   - set the sp appropriately on returns and tail calls
3629 o Reduce call, tail call, and return to a single LastCall node
3630 o Added slow entry code, using different calling conventions on entry and tail call
3631 o More fixes to the calling convention code.
3632   The tricky stuff is all about the closure environment: it must be passed in R1,
3633   but in non-closures, there is no such argument, so we can't treat all arguments
3634   the same way: the closure environment is special. Maybe the right step forward
3635   would be to define a different calling convention for closure arguments.
3636 o Let-no-escapes need to be emitted out-of-line -- otherwise, we drop code.
3637 o Respect RTS requirement of word alignment for pointers
3638   My stack allocation can pack sub-word values into a single word on the stack,
3639   but it wasn't requiring word-alignment for pointers. It does now,
3640   by word-aligning both pointer registers and call areas.
3641 o CmmLint was over-aggresively ruling out non-word-aligned memory references,
3642   which may be kosher now that we can spill small values into a single word.
3643 o Wrong label order on a conditional branch when compiling switches.
3644 o void args weren't dropped in many cases.
3645   To help prevent this kind of mistake, I defined a NonVoid wrapper,
3646   which I'm applying only to Id's for now, although there are probably
3647   other good candidates.
3648 o A little code refactoring: separate modules for procpoint analysis splitting,
3649   stack layout, and building infotables.
3650 o Stack limit check: insert along with the heap limit check, using a symbolic
3651   constant (a special CmmLit), then replace it when the stack layout is known.
3652 o Removed last node: MidAddToContext
3653 o Adding block id as a literal: means that the lowering of the calling conventions
3654   no longer has to produce labels early, which was inhibiting common-block elimination.
3655   Will also make it easier for the non-procpoint-splitting path.
3656 o Info tables: don't try to describe the update frame!
3657 o Over aggressive use of NonVoid!!!!
3658   Don't drop the non-void args before setting the type of the closure!!!
3659 o Sanity checking:
3660   Added a pass to stub dead dead slots on the stack
3661   (only ~10 lines with the dataflow framework)
3662 o More sanity checking:
3663   Check that incoming pointer arguments are non-stubbed.
3664   Note: these checks are still subject to dead-code removal, but they should
3665   still be quite helpful.
3666 o Better sanity checking: why stop at function arguments?
3667   Instead, in mkAssign, check that _any_ assignment to a pointer type is non-null
3668   -- the sooner the crash, the easier it is to debug.
3669   Still need to add the debugging flag to turn these checks on explicitly.
3670 o Fixed yet another calling convention bug.
3671   This time, the calls to the GC were wrong. I've added a new convention
3672   for GC calls and invoked it where appropriate.
3673   We should really straighten out the calling convention stuff:
3674     some of the code (and documentation) is spread across the compiler,
3675     and there's some magical use of the node register that should really
3676     be handled (not avoided) by calling conventions.
3677 o Switch bug: the arms in mkCmmLitSwitch weren't returning to a single join point.
3678 o Environment shadowing problem in Stg->Cmm:
3679   When a closure f is bound at the top-level, we should not bind f to the
3680   node register on entry to the closure.
3681   Why? Because if the body of f contains a let-bound closure g that refers
3682   to f, we want to make sure that it refers to the static closure for f.
3683   Normally, this would all be fine, because when we compile a closure,
3684   we rebind free variables in the environment. But f doesn't look like
3685   a free variable because it's a static value. So, the binding for f
3686   remains in the environment when we compile g, inconveniently referring
3687   to the wrong thing.
3688   Now, I bind the variable in the local environment only if the closure is not
3689   bound at the top level. It's still okay to make assumptions about the
3690   node holding the closure environment; we just won't find the binding
3691   in the environment, so code that names the closure will now directly
3692   get the label of the static closure, not the node register holding a
3693   pointer to the static closure.
3694 o Don't generate bogus Cmm code containing SRTs during the STG -> Cmm pass!
3695   The tables made reference to some labels that don't exist when we compute and
3696   generate the tables in the back end.
3697 o Safe foreign calls need some special treatment (at least until we have the integrated
3698   codegen). In particular:
3699   o they need info tables
3700   o they are not procpoints -- the successor had better be in the same procedure
3701   o we cannot (yet) implement the calling conventions early, which means we have
3702     to carry the calling-conv info all the way to the end
3703 o We weren't following the old convention when registering a module.
3704   Now, we use update frames to push any new modules that have to be registered
3705   and enter the youngest one on the stack.
3706   We also use the update frame machinery to specify that the return should pop
3707   the return address off the stack.
3708 o At each safe foreign call, an infotable must be at the bottom of the stack,
3709   and the TSO->sp must point to it.
3710 o More problems with void args in a direct call to a function:
3711   We were checking the args (minus voids) to check whether the call was saturated,
3712   which caused problems when the function really wasn't saturated because it
3713   took an extra void argument.
3714 o Forgot to distinguish integer != from floating != during Stg->Cmm
3715 o Updating slotEnv and areaMap to include safe foreign calls
3716   The dataflow analyses that produce the slotEnv and areaMap give
3717   results for each basic block, but we also need the results for
3718   a safe foreign call, which is a middle node.
3719   After running the dataflow analysis, we have another pass that
3720   updates the results to includ any safe foreign calls.
3721 o Added a static flag for the debugging technique that inserts
3722   instructions to stub dead slots on the stack and crashes when
3723   a stubbed value is loaded into a pointer-typed LocalReg.
3724 o C back end expects to see return continuations before their call sites.
3725   Sorted the flowgraphs appropriately after splitting.
3726 o PrimOp calling conventions are special -- unlimited registers, no stack
3727   Yet another calling convention...
3728 o More void value problems: if the RHS of a case arm is a void-typed variable,
3729   don't try to return it.
3730 o When calling some primOp, they may allocate memory; if so, we need to
3731   do a heap check when we return from the call.
3732 
3733]
3734[Merging in the new codegen branch
3735dias@eecs.harvard.edu**20080814124027
3736 This merge does not turn on the new codegen (which only compiles
3737 a select few programs at this point),
3738 but it does introduce some changes to the old code generator.
3739 
3740 The high bits:
3741 1. The Rep Swamp patch is finally here.
3742    The highlight is that the representation of types at the
3743    machine level has changed.
3744    Consequently, this patch contains updates across several back ends.
3745 2. The new Stg -> Cmm path is here, although it appears to have a
3746    fair number of bugs lurking.
3747 3. Many improvements along the CmmCPSZ path, including:
3748    o stack layout
3749    o some code for infotables, half of which is right and half wrong
3750    o proc-point splitting
3751]
3752[Major clean-up of HscMain.
3753Thomas Schilling <nominolo@googlemail.com>**20081125153201
3754 
3755 This patch entails a major restructuring of HscMain and a small bugfix
3756 to MkIface (which required the restructuring in HscMain).
3757 
3758 In MkIface:
3759 
3760   - mkIface* no longer outputs orphan warnings directly and also no
3761     longer quits GHC when -Werror is set.  Instead, errors are
3762     reported using the common IO (Messages, Maybe result) scheme.
3763 
3764 In HscMain:
3765 
3766   - Get rid of the 'Comp' monad.  This monad was mostly GhcMonad + two
3767     reader arguments, a ModSummary for the currently compiled module
3768     and a possible old interface.  The latter actually lead to a small
3769     space-leak since only its hash was needed (to check whether the
3770     newly-generated interface file was the same as the original one).
3771 
3772     Functions originally of type 'Comp' now only take the arguments
3773     that they actually need.  This leads to slighly longer argument
3774     lists in some places, however, it is now much easier to see what
3775     is actually going on.
3776 
3777   - Get rid of 'myParseModule'.  Rename 'parseFile' to 'hscParse'.
3778 
3779   - Join 'deSugarModule' and 'hscDesugar' (keeping the latter).
3780 
3781   - Rename 'typecheck{Rename}Module{'}' to 'hscTypecheck{Rename}'.
3782     One variant keeps the renamed syntax, the other doesn't.
3783 
3784   - Parameterise 'HscStatus', so that 'InteractiveStatus' is just a
3785     different parameterisation of 'HscStatus'.
3786 
3787   - 'hscCompile{OneShot,Batch,Nothing,Interactive}' are now
3788     implemented using a (local) typeclass called 'HsCompiler'.  The
3789     idea is to make the common structure more obvious.  Using this
3790     typeclass we now have two functions 'genericHscCompile' (original
3791     'hscCompiler') and 'genericHscRecompile' (original 'genComp')
3792     describing the default pipeline.  The methods of the typeclass
3793     describe a sort of "hook" interface (in OO-terms this would be
3794     called the "template method" pattern).
3795 
3796     One problem with this approach is that we parameterise over the
3797     /result/ type which, in fact, is not actually different for
3798     "nothing" and "batch" mode.  To avoid functional dependencies or
3799     associated types, we use type tags to make them artificially
3800     different and parameterise the type class over the result type.
3801     A perhaps better approach might be to use records instead.
3802     
3803   - Drop some redundant 'HscEnv' arguments.  These were likely
3804     different from what 'getSession' would return because during
3805     compilation we temporarily set the module's DynFlags as well as a
3806     few other fields.  We now use the 'withTempSession' combinator to
3807     temporarily change the 'HscEnv' and automatically restore the
3808     original session after the enclosed action has returned (even in
3809     case of exceptions).
3810 
3811   - Rename 'hscCompile' to 'hscGenHardCode' (since that is what it
3812     does).
3813 
3814 Calls in 'GHC' and 'DriverPipeline' accordingly needed small
3815 adaptions.
3816]
3817[Fix Trac #2799: TcType.isOverloadedTy
3818simonpj@microsoft.com**20081125110540
3819 
3820 A missing case (for equality predicates) in isOverloadedTy make
3821 bindInstsOfLocalFuns/Pats do the wrong thing.  Core Lint nailed it.
3822 
3823 Merge to 6.10 branch.
3824 
3825]
3826[Fix #2740: we were missing the free variables on some expressions
3827Simon Marlow <marlowsd@gmail.com>**20081125103113
3828 Particularly boolean expresions: the conditional of an 'if', and
3829 guards, were missing their free variables.
3830]
3831[Fix symbol macro names in Linker.c
3832Thorkil Naur <naur@post11.tele.dk>**20081121160149]
3833[Add a --machine-readable RTS flag
3834Ian Lynagh <igloo@earth.li>**20081123152127
3835 Currently it only affects the -t flag output
3836]
3837[Return errors instead of dying in myParseModule.
3838Thomas Schilling <nominolo@googlemail.com>**20081122154151]
3839[Comments/Haddockification only.
3840Thomas Schilling <nominolo@googlemail.com>**20081122143018]
3841[Report source span instead of just source location for unused names.
3842Thomas Schilling <nominolo@googlemail.com>**20081122142641]
3843[Change 'handleFlagWarnings' to throw exceptions instead of dying.
3844Thomas Schilling <nominolo@googlemail.com>**20081122130658
3845 
3846 It now uses the standard warning log and error reporting mechanism.
3847]
3848[Document exported functions in main/HeaderInfo.
3849Thomas Schilling <nominolo@googlemail.com>**20081121145307]
3850[Remove warning supression klugde in main/HeaderInfo
3851Thomas Schilling <nominolo@googlemail.com>**20081121144155]
3852[Use mutator threads to do GC, instead of having a separate pool of GC threads
3853Simon Marlow <marlowsd@gmail.com>**20081121151233
3854 
3855 Previously, the GC had its own pool of threads to use as workers when
3856 doing parallel GC.  There was a "leader", which was the mutator thread
3857 that initiated the GC, and the other threads were taken from the pool.
3858 
3859 This was simple and worked fine for sequential programs, where we did
3860 most of the benchmarking for the parallel GC, but falls down for
3861 parallel programs.  When we have N mutator threads and N cores, at GC
3862 time we would have to stop N-1 mutator threads and start up N-1 GC
3863 threads, and hope that the OS schedules them all onto separate cores.
3864 It practice it doesn't, as you might expect.
3865 
3866 Now we use the mutator threads to do GC.  This works quite nicely,
3867 particularly for parallel programs, where each mutator thread scans
3868 its own spark pool, which is probably in its cache anyway.
3869 
3870 There are some flag changes:
3871 
3872   -g<n> is removed (-g1 is still accepted for backwards compat).
3873   There's no way to have a different number of GC threads than mutator
3874   threads now.
3875 
3876   -q1       Use one OS thread for GC (turns off parallel GC)
3877   -qg<n>    Use parallel GC for generations >= <n> (default: 1)
3878 
3879 Using parallel GC only for generations >=1 works well for sequential
3880 programs.  Compiling an ordinary sequential program with -threaded and
3881 running it with -N2 or more should help if you do a lot of GC.  I've
3882 found that adding -qg0 (do parallel GC for generation 0 too) speeds up
3883 some parallel programs, but slows down some sequential programs.
3884 Being conservative, I left the threshold at 1.
3885 
3886 ToDo: document the new options.
3887 
3888]
3889[we shouldn't update topBound in discardSparks()
3890Simon Marlow <marlowsd@gmail.com>**20081121113539]
3891[Throw SourceErrors instead of ProgramErrors in main/HeaderInfo.
3892Thomas Schilling <nominolo@googlemail.com>**20081121141339
3893 
3894 Parse errors during dependency analysis or options parsing really
3895 shouldn't kill GHC; this is particularly annoying for GHC API clients.
3896]
3897[fix the build when !USE_MMAP
3898Simon Marlow <marlowsd@gmail.com>**20081121085418]
3899[round the size up to a page in mmapForLinker() instead of in the caller
3900Simon Marlow <marlowsd@gmail.com>**20081120154014]
3901[Fix a race in the deadlock-detection code
3902Simon Marlow <marlowsd@gmail.com>**20081120112438
3903 After a deadlock it was possible for the timer signal to remain off,
3904 which meant that the next deadlock would not be detected, and the
3905 system would hang.  Spotted by conc047(threaded2).
3906]
3907[error message wibble
3908Simon Marlow <marlowsd@gmail.com>**20081120084901]
3909[Fix flag name -XDisambiguateRecordFields
3910simonpj@microsoft.com**20081120123205]
3911[Fix regTableToCapability() if gcc introduces padding
3912Simon Marlow <marlowsd@gmail.com>**20081119162910
3913 Also avoid padding if possible using __attribute__((packed))
3914 Fixes the Windows build
3915]
3916[Fix 32-bit breakage
3917Simon Marlow <marlowsd@gmail.com>**20081119145429]
3918[Small refactoring, and add comments
3919Simon Marlow <marlowsd@gmail.com>**20081119143702
3920 I discovered a new invariant while experimenting (blackholing is not
3921 optional when using parallel GC), so documented it.
3922]
3923[Fix some unsigned comparisions that should be signed
3924Simon Marlow <marlowsd@gmail.com>**20081119143205
3925 Fixes crashes when using reclaimSpark() (not used currently, but may
3926 be in the future).
3927]
3928[Remove incorrect assertions in steal()
3929Simon Marlow <marlowsd@gmail.com>**20081119143043]
3930[don't run sparks if there are other threads on this Capability
3931Simon Marlow <marlowsd@gmail.com>**20081114121022]
3932[Fix typo (HAVE_LIBGMP => HAVE_LIB_GMP); omit local gmp includes if HAVE_LIB_GMP
3933Simon Marlow <marlowsd@gmail.com>**20081119131056
3934 If we're using the system's installed GMP, we don't want to be picking
3935 up the local gmp.h header file.
3936 
3937 Fixes 2469(ghci) for me, because it turns out the system's GMP is more
3938 up-to-date than GHC's version and has a fix for more recent versions
3939 of gcc.  We also need to pull in a more recent GMP, but that's a
3940 separte issue.
3941]
3942[Fix some more shutdown races
3943Simon Marlow <marlowsd@gmail.com>**20081119124848
3944 There were races between workerTaskStop() and freeTaskManager(): we
3945 need to be sure that all Tasks have exited properly before we start
3946 tearing things down.  This isn't completely straighforward, see
3947 comments for details.
3948]
3949[Add help messages about --with-editline-(includes,libraries) to the ghc configure script.
3950Judah Jacobson <judah.jacobson@gmail.com>**20081114183334]
3951[Add optional eager black-holing, with new flag -feager-blackholing
3952Simon Marlow <marlowsd@gmail.com>**20081118142442
3953 
3954 Eager blackholing can improve parallel performance by reducing the
3955 chances that two threads perform the same computation.  However, it
3956 has a cost: one extra memory write per thunk entry. 
3957 
3958 To get the best results, any code which may be executed in parallel
3959 should be compiled with eager blackholing turned on.  But since
3960 there's a cost for sequential code, we make it optional and turn it on
3961 for the parallel package only.  It might be a good idea to compile
3962 applications (or modules) with parallel code in with
3963 -feager-blackholing.
3964 
3965 ToDo: document -feager-blackholing.
3966]
3967[Fix #2783: detect black-hole loops properly
3968Simon Marlow <marlowsd@gmail.com>**20081117144515
3969 At some point we regressed on detecting simple black-hole loops.  This
3970 happened due to the introduction of duplicate-work detection for
3971 parallelism: a black-hole loop looks very much like duplicate work,
3972 except it's duplicate work being performed by the very same thread.
3973 So we have to detect and handle this case.
3974]
3975[Fix warning on Windows (use deleteThread() not deleteThread_())
3976Simon Marlow <marlowsd@gmail.com>**20081117143047]
3977[fix compile breakage on Windows
3978Simon Marlow <marlowsd@gmail.com>**20081117142831]
3979[Attempt to fix #2512 and #2063;  add +RTS -xm<address> -RTS option
3980Simon Marlow <marlowsd@gmail.com>**20081117120556
3981 On x86_64, the RTS needs to allocate memory in the low 2Gb of the
3982 address space.  On Linux we can do this with MAP_32BIT, but sometimes
3983 this doesn't work (#2512) and other OSs don't support it at all
3984 (#2063).  So to work around this:
3985 
3986   - Try MAP_32BIT first, if available.
3987 
3988   - Otherwise, try allocating memory from a fixed address (by default
3989     1Gb)
3990 
3991   - We now provide an option to configure the address to allocate
3992     from.  This allows a workaround on machines where the default
3993     breaks, and also provides a way for people to test workarounds
3994     that we can incorporate in future releases.
3995]
3996[Another shutdown fix
3997Simon Marlow <marlowsd@gmail.com>**20081117094350
3998 If we encounter a runnable thread during shutdown, just kill it.  All
3999 the threads are supposed to be dead at this stage, but this catches
4000 threads that might have just returned from a foreign call, or were
4001 finalizers created by the GC.
4002 
4003 Fixes memo002(threaded1)
4004]
4005[Correct an example in the users guide
4006Ian Lynagh <igloo@earth.li>**20081116174938]
4007[Fix gen_contents_index when not run inplace; trac #2764
4008Ian Lynagh <igloo@earth.li>**20081116174122
4009 Based on a patch from juhpetersen.
4010]
4011[close the temporary Handle before removing the file
4012Simon Marlow <marlowsd@gmail.com>**20081114130958]
4013[refactor: move unlockClosure() into SMPClosureOps() where it should be
4014Simon Marlow <marlowsd@gmail.com>**20081114095817]
4015[Omit definitions of cas() and xchg() in .hc code
4016Simon Marlow <marlowsd@gmail.com>**20081114095738
4017 They cause compilation errors (correctly) with newer gccs
4018 Shows up compiling the RTS via C, which happens on Windows
4019]
4020[Don't put stdin into non-blocking mode (#2778, #2777)
4021Simon Marlow <marlowsd@gmail.com>**20081114130546
4022 This used to be necessary when our I/O library needed all FDs in
4023 O_NONBLOCK mode, and readline used to put stdin back into blocking
4024 mode.  Nowadays the I/O library can cope with FDs in blocking mode,
4025 and #2778/#2777 show why this is important.
4026]
4027[Rmoeve --enable-dotnet
4028Simon Marlow <marlowsd@gmail.com>**20081114124929]
4029[#2751: disourage --enable-shared in ./configure --help
4030Simon Marlow <marlowsd@gmail.com>**20081114124748]
4031[add a warning that --enable-shared is experimental
4032Simon Marlow <marlowsd@gmail.com>**20081114104034]
4033[lookupSymbol: revert to looking up both with and without the @N suffix
4034Simon Marlow <marlowsd@gmail.com>**20081113122927]
4035[#2768: fix compatibility problem with newer version of mingw
4036Simon Marlow <marlowsd@gmail.com>**20081113114626]
4037[notice ^C exceptions when waiting for I/O
4038Simon Marlow <marlowsd@gmail.com>**20081113114342]
4039[Fix a bug in the recompilation checking logic.
4040Thomas Schilling <nominolo@googlemail.com>**20081113162653
4041 
4042 Previously, using target HscNothing resulted in unnessesary
4043 recompilation because 'upsweep_mod' treated HscInterface specially.
4044 This patch changes relaxes this.
4045 
4046 When running GHC with debug level 5, 'upsweep_mod' will now also be
4047 more verbose about what it is doing.
4048 
4049 There is (at least) one possible remaining problem, though: When using
4050 target 'HscNothing' we generate a fake linkable to signal that we have
4051 processed a module.  When switching to 'HscInterpreted' this may cause
4052 objects to not be recompiled.  Switching from HscNothing to
4053 HscInterpreted is therefore only safe if we unload everything first.
4054]
4055[Fix another subtle shutdown deadlock
4056Simon Marlow <marlowsd@gmail.com>**20081113160005
4057 The problem occurred when a thread tries to GC during shutdown.  In
4058 order to GC it has to acquire all the Capabilities in the system, but
4059 during shutdown, some of the Capabilities have already been closed and
4060 can never be acquired.
4061]
4062[Fix an extremely subtle deadlock bug on x86_64
4063Simon Marlow <marlowsd@gmail.com>**20081113155730
4064 The recent_activity flag was an unsigned int, but we sometimes do a
4065 64-bit xchg() on it, which overwrites the next word in memory.  This
4066 happened to contain the sched_state flag, which is used to control the
4067 orderly shutdown of the system.  If the xchg() happened during
4068 shutdown, the scheduler would get confused and deadlock.  Don't you
4069 just love C?
4070]
4071[move an assertion
4072Simon Marlow <marlowsd@gmail.com>**20081113154542]
4073[Always zap the trailing @N from symbols when looking up in a DLL
4074Simon Marlow <marlowsd@gmail.com>**20081112111518
4075 
4076 Fixes win32002(ghci)
4077 
4078 Previously we only did this for references from object files, but we
4079 should do it for all symbols, including those that GHCi looks up due
4080 to FFI calls from bytecode.
4081]
4082[Only allocate a mark stack if we're actually doing marking
4083Simon Marlow <marlowsd@gmail.com>**20081112112144
4084 saves a bit of memory in major GCs
4085]
4086[Fix parse error with older gccs (#2752)
4087Simon Marlow <marlowsd@gmail.com>**20081111135344]
4088[Fix to i386_insert_ffrees (#2724, #1944)
4089Simon Marlow <marlowsd@gmail.com>**20081111125619
4090 The i386 native code generator has to arrange that the FPU stack is
4091 clear on exit from any function that uses the FPU.  Unfortunately it
4092 was getting this wrong (and has been ever since this code was written,
4093 I think): it was looking for basic blocks that used the FPU and adding
4094 the code to clear the FPU stack on any non-local exit from the block.
4095 In fact it should be doing this on a whole-function basis, rather than
4096 individual basic blocks.
4097]
4098[Fix bootstrap with 6.10.1 on Windows
4099Simon Marlow <marlowsd@gmail.com>**20081110134318
4100 ghc-pkg doesn't understand the old syntax any more, so 'ghc-pkg -l' fails
4101]
4102[Perform case-insensitive matching of path components in getBaseDir on Windows (Fixes bug 2743)
4103Neil Mitchell <ndmitchell@gmail.com>**20081105134315]
4104[Documentation only.  Clarify that 'load*' may indeed throw SourceErrors.
4105Thomas Schilling <nominolo@googlemail.com>**20081110175614
4106 
4107 I don't think errors during dependency analysis should be passed to
4108 the logger.
4109]
4110[Fix documentation (to say the opposite).
4111Thomas Schilling <nominolo@googlemail.com>**20081110153819]
4112[Fix line numbers in TAGS files.
4113Thomas Schilling <nominolo@googlemail.com>**20081110153621]
4114[Documentation only.
4115Thomas Schilling <nominolo@googlemail.com>**20081110153456]
4116[Add 'packageDbModules' function to GHC API.
4117Thomas Schilling <nominolo@googlemail.com>**20081110143510
4118 
4119 This function returns a list of all modules available through the
4120 package DB.
4121 
4122 MERGE TO 6.10
4123]
4124[We now require GHC 6.6, so we always have Applicative
4125Ian Lynagh <igloo@earth.li>**20081108144723]
4126[Remove a CPP test that's always true (__GLASGOW_HASKELL__ >= 605)
4127Ian Lynagh <igloo@earth.li>**20081108144544]
4128[Remove some dead code now that __GLASGOW_HASKELL__ >= 606
4129Ian Lynagh <igloo@earth.li>**20081108144459]
4130[Remove some flag duplication from a Makefile
4131Ian Lynagh <igloo@earth.li>**20081108144412]
4132[ghc_ge_605 is now always YES
4133Ian Lynagh <igloo@earth.li>**20081108144328]
4134[Remove the GHC 6.4 unicode compat stuff; we can now just use Data.Char
4135Ian Lynagh <igloo@earth.li>**20081108143423]
4136[Fix libffi bindist
4137Clemens Fruhwirth <clemens@endorphin.org>**20081108094725]
4138[Replace couple of fromJust with expectJust
4139Clemens Fruhwirth <clemens@endorphin.org>**20081107160735]
4140[Bugfix for patch "Do not filter the rts from linked libraries..." (#2745)
4141Simon Marlow <marlowsd@gmail.com>**20081107092925
4142 The sense of the #ifdef was wrong
4143]
4144[fix via-C compilation: import ghczmprim_GHCziBool_False_closure
4145Simon Marlow <marlowsd@gmail.com>**20081107090432]
4146[disable instance MonadPlus CoreM for GHC <= 6.6
4147Simon Marlow <marlowsd@gmail.com>**20081107085250]
4148[re-instate counting of sparks converted
4149Simon Marlow <marlowsd@gmail.com>**20081106160810
4150 lost in patch "Run sparks in batches"
4151]
4152[fix ASSERT_SPARK_POOL_INVARIANTS(): top>bottom is valid
4153Simon Marlow <marlowsd@gmail.com>**20081106155826]
4154[pruneSparkQueue(): fix bug when top>bottom
4155Simon Marlow <marlowsd@gmail.com>**20081106155648]
4156[don't yield if the system is shutting down
4157Simon Marlow <marlowsd@gmail.com>**20081106155356]
4158[leave out ATTRIBUTE_ALIGNED on Windows, it gives a warning
4159Simon Marlow <marlowsd@gmail.com>**20081106132105]
4160[Cope with ThreadRelocated when traversing the blocked_queue
4161Simon Marlow <marlowsd@gmail.com>**20081106114045
4162 Fixes "invalid what_next field" in ioref001 on Windows, and perhaps others
4163]
4164[Remove dead code.
4165Thomas Schilling <nominolo@googlemail.com>**20081031162036]
4166[Run sparks in batches, instead of creating a new thread for each one
4167Simon Marlow <marlowsd@gmail.com>**20081106113639
4168 Signficantly reduces the overhead for par, which means that we can
4169 make use of paralellism at a much finer granularity.
4170]
4171[allocateInGen(): increase alloc_blocks (#2747)
4172Simon Marlow <marlowsd@gmail.com>**20081106113714]
4173[disable MonadPlus instance that doesn't compile with 6.6
4174Simon Marlow <marlowsd@gmail.com>**20081106100411]
4175[don't yield the Capability if blackholes_need_checking
4176Simon Marlow <marlowsd@gmail.com>**20081105154928]
4177[deadlock fix: reset the flag *after* checking the blackhole queue
4178Simon Marlow <marlowsd@gmail.com>**20081105150542]
4179[retreat the top/bottom fields of the spark pool in pruneSparkPool()
4180Simon Marlow <marlowsd@gmail.com>**20081105150359]
4181[fix the :help docs for :set stop (#2737)
4182Simon Marlow <marlowsd@gmail.com>**20081104092929]
4183[bugfix: don't ingore the return value from rts_evalIO()
4184Simon Marlow <marlowsd@gmail.com>**20081104142147]
4185[Document the new SPARKS statistic, and xref from the parallelism section
4186Simon Marlow <marlowsd@gmail.com>**20081024120236]
4187[Move the freeing of Capabilities later in the shutdown sequence
4188Simon Marlow <marlowsd@gmail.com>**20081024104301
4189 Fixes a bug whereby the Capability has been freed but other
4190 Capabilities are still trying to steal sparks from its pool.
4191]
4192[Pad Capabilities and Tasks to 64 bytes
4193Simon Marlow <marlowsd@gmail.com>**20081023080749
4194 This is just good practice to avoid placing two structures heavily
4195 accessed by different CPUs on the same cache line
4196]
4197[Fix desugaring of record update (fixes Trac #2735)
4198simonpj@microsoft.com**20081103110819]
4199[Refuse to register packages with unversioned dependencies; trac #1837
4200Ian Lynagh <igloo@earth.li>**20081031181746]
4201[We now require GHC 6.6 to build the HEAD (and thus 6.12)
4202Ian Lynagh <igloo@earth.li>**20081031171506]
4203[:set prompt now understand Haskell String syntax; trace #2652
4204Ian Lynagh <igloo@earth.li>**20081031145227]
4205[Comments only
4206simonpj@microsoft.com**20081031140236]
4207[Quickfix for warning.
4208Thomas Schilling <nominolo@googlemail.com>**20081031113125]
4209[Export typeclasses for accessing compiler results.
4210Thomas Schilling <nominolo@googlemail.com>**20081028182310
4211 
4212 MERGE TO 6.10.
4213]
4214[Minor refactoring.
4215Thomas Schilling <nominolo@googlemail.com>**20081028182202]
4216[Include record fields in tags.
4217Thomas Schilling <nominolo@googlemail.com>**20081028180538]
4218[Fix imports
4219simonpj@microsoft.com**20081031092306]
4220[Improve error reporting for non-rigid GADT matches
4221simonpj@microsoft.com**20081030143947
4222 
4223 Following suggestions from users, this patch improves the error message
4224 when a GADT match needs a rigid type:
4225 
4226  tcfail172.hs:19:10:
4227      GADT pattern match in non-rigid context for `Nil'
4228 -      Solution: add a type signature
4229 +      Probable solution: add a type signature for `is_normal'
4230      In the pattern: Nil
4231      In the definition of `is_normal': is_normal Nil = True
4232 
4233 Now GHC tries to tell you what to give a type signature *for*.
4234 Thanks to Daniel Gorin and others for the suggestions.
4235 
4236]
4237[Add (a) CoreM monad, (b) new Annotations feature
4238simonpj@microsoft.com**20081030125108
4239 
4240 This patch, written by Max Bolingbroke,  does two things
4241 
4242 1.  It adds a new CoreM monad (defined in simplCore/CoreMonad),
4243     which is used as the top-level monad for all the Core-to-Core
4244     transformations (starting at SimplCore).  It supports
4245        * I/O (for debug printing)
4246        * Unique supply
4247        * Statistics gathering
4248        * Access to the HscEnv, RuleBase, Annotations, Module
4249     The patch therefore refactors the top "skin" of every Core-to-Core
4250     pass, but does not change their functionality.
4251 
4252 2.  It adds a completely new facility to GHC: Core "annotations".
4253     The idea is that you can say
4254        {#- ANN foo (Just "Hello") #-}
4255     which adds the annotation (Just "Hello") to the top level function
4256     foo.  These annotations can be looked up in any Core-to-Core pass,
4257     and are persisted into interface files.  (Hence a Core-to-Core pass
4258     can also query the annotations of imported things.)  Furthermore,
4259     a Core-to-Core pass can add new annotations (eg strictness info)
4260     of its own, which can be queried by importing modules.
4261 
4262 The design of the annotation system is somewhat in flux.  It's
4263 designed to work with the (upcoming) dynamic plug-ins mechanism,
4264 but is meanwhile independently useful.
4265 
4266 Do not merge to 6.10! 
4267 
4268]
4269[Fix Trac #2674: in TH reject empty case expressions and function definitions
4270simonpj@microsoft.com**20081030094528]
4271[Change naming conventions for compiler-generated dictionaries and type functions
4272simonpj@microsoft.com**20081029140858
4273 
4274 Up to now, the data constructor dictionary for class C as been called
4275 ":DC". But there is no reason for the colon to be at the front; indeed
4276 it confuses the (simple-minded) pretty-printer for types.  So this
4277 patch changes it to be "D:C".  This makes Core a lot easier to read.
4278 Having a colon in the middle ensures that it can't clash with a user-written
4279 data type.
4280 
4281 Similarly I changed
4282 
4283   T:C     Data type corresponding a class dictionary (was :TC)
4284   D:C     Data constructor for class dictionary (was :DC)
4285 
4286   NTCo:T   Coercion mapping from a newtype T to its representation type
4287                (was :CoT)
4288 
4289   TFCo:R   Coercion mapping from a data family to its respresentation type R
4290                (was :CoFR)
4291 
4292   Rn:T     The n'th respresentation data type for a data type T
4293                (was :RnT)
4294 
4295 
4296 Do not merge to 6.10.
4297 
4298 HEADS-UP: you'll need to recompile libraries from scratch. 
4299 
4300 ROMAN: you could do the same for OccName.mkVectTyConOcc etc, if you wanted.
4301 
4302 
4303]
4304[Fix tcrun031: yet more tidying up in TcDeriv
4305simonpj@microsoft.com**20081029130155]
4306[Add Outputable instance for CoercionI
4307simonpj@microsoft.com**20081029130114]
4308[Fix Trac #2720: inlining and casts
4309simonpj@microsoft.com**20081028140828
4310 
4311 The issue here is what happens when we have
4312 
4313        (f |> co) x
4314 
4315 where f is itself marked INLINE.  We want callSiteInline to "see"
4316 the fact that the function is applied, and hence have some incentive
4317 to inline.  I've done this by extending CoreUnfold.CallCtxt with
4318 ValAppCtxt.  I think that should catch this case without messing up
4319 any of the others.
4320 
4321]
4322[Clarify documentatoin
4323simonpj@microsoft.com**20081028133009]
4324[Update library version numbers in the release notes
4325Ian Lynagh <igloo@earth.li>**20081023144018]
4326[various updates to the release notes
4327Simon Marlow <marlowsd@gmail.com>**20081007151647]
4328[Add library release notes
4329Ian Lynagh <igloo@earth.li>**20080920155722]
4330[Add release notes for the compiler
4331Ian Lynagh <igloo@earth.li>**20080920114857]
4332[Doc fix
4333Ian Lynagh <igloo@earth.li>**20081028150534]
4334[Rename some variables in docs
4335Ian Lynagh <igloo@earth.li>**20081028150447]
4336[Fix typos
4337Ian Lynagh <igloo@earth.li>**20081028144655]
4338[Mostly-fix Trac #2595: updates for existentials
4339simonpj@microsoft.com**20081028115427
4340 
4341 Ganesh wanted to update records that involve existentials.  That
4342 seems reasonable to me, and this patch covers existentials, GADTs,
4343 and data type families.
4344 
4345 The restriction is that
4346   The types of the updated fields may mention only the
4347   universally-quantified type variables of the data constructor
4348 
4349 This doesn't allow everything in #2595 (it allows 'g' but not 'f' in
4350 the ticket), but it gets a lot closer.
4351 
4352 Lots of the new lines are comments!
4353 
4354]
4355[Fix Trac #2723: keep track of record field names in the renamer
4356simonpj@microsoft.com**20081028110445
4357 
4358 The idea here is that with -XNamedFieldPuns and -XRecordWildCards we don't
4359 want to report shadowing errors for
4360        let fld = <blah> in C { .. }
4361 But to suppress such shadowing errors, the renamer needs to know that
4362 'fld' *is* a record selector.  Hence the new NameSet in
4363 TcRnFypes.RecFieldEnv
4364 
4365]
4366[Remove dead code
4367simonpj@microsoft.com**20081028074639]
4368[Fix Trac #2713: refactor and tidy up renaming of fixity decls
4369simonpj@microsoft.com**20081027222738
4370 
4371 In fixing #2713, this patch also eliminates two almost-unused
4372 functions from RnEnv (lookupBndr and lookupBndr_maybe).  The
4373 net lines of code is prety much unchanged, but more of them
4374 are comments!
4375 
4376]
4377[Fix Trac #2701: make deriving check better for unlifted args
4378simonpj@microsoft.com**20081025171211
4379 
4380 Getting the automatic deriving mechanism to work really smoothly
4381 is surprisingly hard.  I keep finding myself in TcDeriv!
4382 
4383 Anyway, this is a nice clean fix to Trac #2701.
4384 
4385]
4386[Use pdflatex rather than latex for building
4387Ian Lynagh <igloo@earth.li>**20081024112400
4388 The Windows builder is having problems running ps2pdf, so this works
4389 aroudn the problem.
4390]
4391[Remove an unmatched } in core.tex
4392Ian Lynagh <igloo@earth.li>**20081024111750]
4393[Add a usepackage{url}
4394Ian Lynagh <igloo@earth.li>**20081024111458]
4395[Update ANNOUNCE
4396Ian Lynagh <igloo@earth.li>**20081022164423]
4397[Fix a bug in the new scheduler
4398Simon Marlow <marlowsd@gmail.com>**20081023155017
4399 If the current thread blocks, we should yield the Capability
4400 immediately, because the thread and hence possibly the current Task
4401 are now owned by someone else.  This worked in the old scheduler, but
4402 we moved where the yield happens in the new scheduler which broke it.
4403]
4404[add an assertion
4405Simon Marlow <marlowsd@gmail.com>**20081023154551]
4406[fix a warning
4407Simon Marlow <marlowsd@gmail.com>**20081023082213]
4408[traverse the spark pools only once during GC rather than twice
4409Simon Marlow <marlowsd@gmail.com>**20081022115233]
4410[Refactoring and reorganisation of the scheduler
4411Simon Marlow <marlowsd@gmail.com>**20081022092744
4412 
4413 Change the way we look for work in the scheduler.  Previously,
4414 checking to see whether there was anything to do was a
4415 non-side-effecting operation, but this has changed now that we do
4416 work-stealing.  This lead to a refactoring of the inner loop of the
4417 scheduler.
4418 
4419 Also, lots of cleanup in the new work-stealing code, but no functional
4420 changes.
4421 
4422 One new statistic is added to the +RTS -s output:
4423 
4424   SPARKS: 1430 (2 converted, 1427 pruned)
4425 
4426 lets you know something about the use of `par` in the program.
4427]
4428[Work stealing for sparks
4429berthold@mathematik.uni-marburg.de**20080915132846
4430 
4431    Spark stealing support for PARALLEL_HASKELL and THREADED_RTS versions of the RTS.
4432   
4433   Spark pools are per capability, separately allocated and held in the Capability
4434   structure. The implementation uses Double-Ended Queues (deque) and cas-protected
4435   access.
4436   
4437   The write end of the queue (position bottom) can only be used with
4438   mutual exclusion, i.e. by exactly one caller at a time.
4439   Multiple readers can steal()/findSpark() from the read end
4440   (position top), and are synchronised without a lock, based on a cas
4441   of the top position. One reader wins, the others return NULL for a
4442   failure.
4443   
4444   Work stealing is called when Capabilities find no other work (inside yieldCapability),
4445   and tries all capabilities 0..n-1 twice, unless a theft succeeds.
4446   
4447   Inside schedulePushWork, all considered cap.s (those which were idle and could
4448   be grabbed) are woken up. Future versions should wake up capabilities immediately when
4449   putting a new spark in the local pool, from newSpark().
4450 
4451 Patch has been re-recorded due to conflicting bugfixes in the sparks.c, also fixing a
4452 (strange) conflict in the scheduler.
4453 
4454]
4455[include an elapsed time table
4456Simon Marlow <marlowsd@gmail.com>**20081023080648]
4457[generate a valid summary for older GHC versions too
4458Simon Marlow <marlowsd@gmail.com>**20081023080629]
4459[Fix Trac #2714 (a minor wibble)
4460simonpj@microsoft.com**20081022145138
4461 
4462 In boxy_match (which is a pure function used by preSubType) we can
4463 encounter TyVars not just TcTyVars; this patch takes account of that.
4464 
4465]
4466[Reject programs with superclass equalities for now
4467Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081021131721
4468 - The current implementation of type families cannot properly deal
4469   with superclass equalities.  Instead of making a half-hearted attempt at
4470   supporting them, which mostly ends in cryptic error message, rejecting
4471   right away with an appropriate message.
4472 
4473   MERGE TO 6.10
4474]
4475[Fix doc syntax
4476Ian Lynagh <igloo@earth.li>**20081021183317]
4477[Don't put the README file in the Windows installer; fixes trac #2698
4478Ian Lynagh <igloo@earth.li>**20081021162543
4479 The README file talks about getting and building the sources, which
4480 doesn't make sense for the installer.
4481]
4482[Comments and parens only
4483simonpj@microsoft.com**20081021151401]
4484[Do proper cloning in worker/wrapper splitting
4485simonpj@microsoft.com**20081021143156
4486 
4487 See Note [Freshen type variables] in WwLib.  We need to clone type
4488 variables when building a worker/wrapper split, else we simply get
4489 bogus code, admittedly in rather obscure situations.  I can't quite
4490 remember what program showed this up, unfortunately, but there
4491 definitely *was* one!  (You get a Lint error.)
4492 
4493]
4494[Don't float an expression wrapped in a cast
4495simonpj@microsoft.com**20081021143019
4496 
4497 There is no point in floating out an expression wrapped in a coercion;
4498 If we do we'll transform 
4499        lvl = e |> co [_$_]
4500 to     
4501        lvl' = e; lvl = lvl' |> co
4502 and then inline lvl.  Better just to float out the payload (e).
4503 
4504]
4505[Fix Trac #2668, and refactor TcDeriv
4506simonpj@microsoft.com**20081021142922
4507 
4508 TcDeriv deals with both standalone and ordinary 'deriving';
4509 and with both data types and 'newtype deriving'.  The result
4510 is really rather compilcated and ad hoc.  Ryan discovered
4511 #2668; this patch fixes that bug, and makes the internal interfces
4512 #more uniform.  Specifically, the business of knocking off
4513 type arguments from the instance type until it matches the kind of the
4514 class, is now done by derivTyData, not mkNewTypeEqn, because the
4515 latter is shared with standalone derriving, whree the trimmed
4516 type application is what the user wrote.
4517 
4518]
4519[Spelling error in comment
4520simonpj@microsoft.com**20081019233511]
4521[White space only
4522simonpj@microsoft.com**20081019233352]
4523[Comments to explain strict overlap checking for type family instances
4524simonpj@microsoft.com**20081019184208]
4525[Allow type families to use GADT syntax (and be GADTs)
4526simonpj@microsoft.com**20080923140535
4527 
4528 We've always intended to allow you to use GADT syntax for
4529 data families:
4530        data instance T [a] where
4531          T1 :: a -> T [a]
4532 and indeed to allow data instances to *be* GADTs
4533        data intsance T [a] where
4534          T1 :: Int -> T [Int]
4535          T2 :: a -> b -> T [(a,b)]
4536 
4537 This patch fixes the renamer and type checker to allow this.
4538       
4539]
4540[Improve crash message from applyTys and applyTypeToArgs
4541simonpj@microsoft.com**20080923135419]
4542[Wibble to ungrammatical error message
4543simonpj@microsoft.com**20080920232256]
4544[Comments only: replace ":=:" by "~" (notation for equality predicates)
4545simonpj@microsoft.com**20080920232024]
4546[FIX #2693
4547Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081021120107
4548 - As long as the first reduceContext in tcSimplifyRestricted potentially
4549   performs improvement, we need to zonk again before the second reduceContext.
4550   It would be better to prevent the improvement in the first place, but given
4551   the current situation zonking is definitely the right thing to do.
4552 
4553   MERGE TO 6.10
4554]
4555[Restore the terminal attributes even if ghci does not exit normally.
4556Judah Jacobson <judah.jacobson@gmail.com>**20081020164109]
4557[FIX #2688
4558Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081021044213
4559 - Change in TcSimplify.reduceContext:
4560 
4561      We do *not* go around for new extra_eqs.  Morally, we should,
4562      but we can't without risking non-termination (see #2688).  By
4563      not going around, we miss some legal programs mixing FDs and
4564      TFs, but we never claimed to support such programs in the
4565      current implementation anyway.
4566 
4567   MERGE TO 6.10
4568]
4569[Move documentation within 80 column boundary.
4570Thomas Schilling <nominolo@googlemail.com>**20081014134016]
4571[Improve haddock documentation for 'GHC.topSortModuleGraph'.
4572Thomas Schilling <nominolo@googlemail.com>**20081014133833]
4573[Improve haddock documentation for HsExpr module.
4574Thomas Schilling <nominolo@googlemail.com>**20081014133740]
4575[Improve Haddock-markup for HsDecls module.
4576Thomas Schilling <nominolo@googlemail.com>**20081014133556]
4577[Run Haddock with compacting GC and show RTS statistics.
4578Thomas Schilling <nominolo@googlemail.com>**20081020111410]
4579[FIX (partially) #2703: bug in stack overflow handling when inside block
4580Simon Marlow <marlowsd@gmail.com>**20081020121103
4581 As a result of a previous ticket (#767) we disabled the generation of
4582 StackOverflow exceptions when inside a Control.Exception.block, on the
4583 grounds that StackOverflow is like an asynchronous exception.  Instead
4584 we just increase the stack size.  However, the stack size calculation
4585 was wrong, and ended up not increasing the size of the stack, with the
4586 result that the runtime just kept re-allocating the stack and filling
4587 up memory.
4588]
4589[Re-export Located(..) and related functions
4590Simon Marlow <marlowsd@gmail.com>**20081020102422
4591 So that clients don't need to import SrcLoc
4592]
4593[whitespace fix
4594Simon Marlow <marlowsd@gmail.com>**20081020101241]
4595[FIX #2691: Manually reset the terminal to its initial settings; works around a bug in libedit.
4596Judah Jacobson <judah.jacobson@gmail.com>**20081016024838]
4597[Eliminate duplicate flags in the tab completion of ghci's :set command.
4598Judah Jacobson <judah.jacobson@gmail.com>**20081016015721]
4599[Add dph haddock docs to the doc index
4600Ian Lynagh <igloo@earth.li>**20081019133208]
4601[Clean the bootstrapping extensible-exceptions package
4602Ian Lynagh <igloo@earth.li>**20081017195942]
4603[Fix trac #2687
4604Ian Lynagh <igloo@earth.li>**20081015163412
4605 OtherPunctuation, ConnectorPunctuation and DashPunctuation are now
4606 treated as symbols, rather than merely graphic characters.
4607]
4608[Fix trac #2680; avoid quadratic behaviour from (++)
4609Ian Lynagh <igloo@earth.li>**20081015163235]
4610[Fix the build when the bootstrapping compiler has a newer Cabal than us
4611Ian Lynagh <igloo@earth.li>**20081015144023
4612 We need to forcibly use the in-tree Cabal, or we get version mismatch errors
4613]
4614[Fix the name of prologue.txt when making bindists
4615Ian Lynagh <igloo@earth.li>**20081014114714]
4616[Comments only
4617simonpj@microsoft.com**20081015084501]
4618[Fix Trac #2497; two separate typos in Lexer.x
4619simonpj@microsoft.com**20081015084344
4620 
4621 The patch to switch on lexing of 'forall' inside a RULES pragma
4622 wasn't working.  This fixes it so that it does.
4623 
4624]
4625[Update manual: tidy up instances, say more about type families in instance decls
4626simonpj@microsoft.com**20081015080509]
4627[Make tags work on Unices, too.
4628Thomas Schilling <nominolo@googlemail.com>**20081014211236]
4629[Undefine __PIC__ before defining it to work around "multiple definitions of __PIC__" warnings
4630Clemens Fruhwirth <clemens@endorphin.org>**20081014143206]
4631[Add "dyn" to GhcRTSWays when compiling --enable-shared
4632Clemens Fruhwirth <clemens@endorphin.org>**20081014125123]
4633[Fill out the ghc package's cabal file
4634Ian Lynagh <igloo@earth.li>**20081013235817]
4635[Patching libffi so it can be built as DLL
4636Clemens Fruhwirth <clemens@endorphin.org>**20081014103459
4637 
4638 libffi-dllize-3.0.6.patch should be pushed upstream
4639]
4640[Add 'etags' makefile target.
4641Thomas Schilling <nominolo@googlemail.com>**20081013170927
4642 
4643 This only works with stage2 since `ghctags' is built against stage1
4644 but not against the bootstrapping compiler.  Also note that all of GHC
4645 must typecheck for this target to succeed.  Perhaps we should not
4646 overwrite the old TAGS file by default then.
4647]
4648[Use cabal information to get GHC's flags to `ghctags'.
4649Thomas Schilling <nominolo@googlemail.com>**20081013170658
4650 
4651 By giving the dist-directory to ghctags we can get all the GHC API
4652 flags we need in order to load the required modules.  The flag name
4653 could perhaps be improved, but apart from that it seems to work well.
4654]
4655[Version bump for libffi to 3.0.6
4656Clemens Fruhwirth <clemens@endorphin.org>**20081014081300]
4657[Encode shared/static configuration into stamps to do the right thing when rebuilding
4658Clemens Fruhwirth <clemens@endorphin.org>**20081013221530]
4659[Add a link to the GHC API docs from the library haddock index
4660Ian Lynagh <igloo@earth.li>**20081013195943]
4661[Link to the GHC API documentation from the main doc page
4662Ian Lynagh <igloo@earth.li>**20081013200927]
4663[Whitespace only in docs/index.html
4664Ian Lynagh <igloo@earth.li>**20081013200625]
4665[Tweak gen_contents_index
4666Ian Lynagh <igloo@earth.li>**20081013192548
4667 It now works again after it has been installed, as well as while it is
4668 in a source tree.
4669 After it's been installed it filters out the ghc package, as that
4670 currently swamps everything else in the index.
4671]
4672[Build fixes for DLLized rts
4673Clemens Fruhwirth <clemens@endorphin.org>**20081013201608]
4674[Do not filter the rts from linked libraries in linkDynLib as Windows does not allow unresolved symbols
4675Clemens Fruhwirth <clemens@endorphin.org>**20081013201426]
4676[Add HsFFI.o to INSTALL_LIBS
4677Clemens Fruhwirth <clemens@endorphin.org>**20081013200945]
4678[Rename symbol macros to a consistant naming scheme
4679Clemens Fruhwirth <clemens@endorphin.org>**20081013162433]
4680[Fix #2685: two Bool arguments to tidyTypeEnv were the wrong way around
4681Simon Marlow <marlowsd@gmail.com>**20081013121339
4682 So -XTemplateHaskell was behaving like -fomit-interface-file-pragmas,
4683 and vice versa.
4684]
4685[Simplify the "is $bindir in $PATH" test
4686Ian Lynagh <igloo@earth.li>**20081011191008]
4687[Correct the "is $bindir in $PATH" test
4688Ian Lynagh <igloo@earth.li>**20081011191030
4689 We were testing neq instead of eq
4690]
4691[Fix a typo which was causing ghci to quit on commands errors
4692pepe <mnislaih@gmail.com>**20081011114720]
4693[Drop libm from the linker dependencies for libffi
4694Clemens Fruhwirth <clemens@endorphin.org>**20081011074524]
4695[Do not generate haddock documentation when running install-docs in libffi
4696Clemens Fruhwirth <clemens@endorphin.org>**20081010192318]
4697[When waking up thread blocked on TVars, wake oldest first (#2319)
4698Josef Svenningsson <josef.svenningsson@gmail.com>**20081010150322
4699 StgTVarWatchQueue contains the threads blocked on a TVar in order
4700 youngest first. The list has to be traversed backwards to unpark the threads
4701 oldest first.
4702 
4703 This improves the fairness when using STM in some situations.
4704]
4705[add readTVarIO :: TVar a -> IO a
4706Simon Marlow <marlowsd@gmail.com>**20081010131545]
4707[fix #2636: throw missing module errors as SourceErrors, not ErrMsg
4708Simon Marlow <marlowsd@gmail.com>**20081010131535]
4709[atomicModifyIORef: use a local cas() instead of the global lock
4710Simon Marlow <simonmar@microsoft.com>**20081008154702
4711 This should improve scaling when using atomicModifyIORef
4712]
4713[Delay building libffi until package.conf is created and fix bindist
4714Clemens Fruhwirth <clemens@endorphin.org>**20081010073106]
4715[Install a versioned ghc-pkg script; fixes trac #2662
4716Ian Lynagh <igloo@earth.li>**20081009164946]
4717[Fix bindist creation: Only the main RTS was being put in the bindists
4718Ian Lynagh <igloo@earth.li>**20081009163451]
4719[pushAtom: add missing case for MachNullAddr (#2589)
4720Simon Marlow <marlowsd@gmail.com>**20081009091118]
4721[undo incorrect assertion, and fix comments
4722Simon Marlow <marlowsd@gmail.com>**20081009085118]
4723[remove old GRAN/PARALLEL_HASKELL code
4724Simon Marlow <marlowsd@gmail.com>**20081009085051]
4725[FIX #2639
4726Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081009132328
4727 
4728   MERGE TO 6.10
4729]
4730[Cover PredTy case in Type.tyFamInsts
4731Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081009061435
4732 
4733   MERGE TO 6.10
4734]
4735[Drop ghcconfig.h/RtsConfig.h from libffi's package.conf.in
4736Clemens Fruhwirth <clemens@endorphin.org>**20081009071342]
4737[Don't use sed's -i flag as Solaris doesn't know it in libffi/Makefile
4738Clemens Fruhwirth <clemens@endorphin.org>**20081008234455]
4739[Don't use /dev/null trick to create empty object files in libffi/Makefile
4740Clemens Fruhwirth <clemens@endorphin.org>**20081008232902]
4741[Turn libffi into a Haskell package
4742Clemens Fruhwirth <clemens@endorphin.org>**20081008170443]
4743[Make 'getModSummary' deterministic.
4744Thomas Schilling <nominolo@googlemail.com>**20081008144032]
4745[Add accessors to 'HsModule' and haddockify it.
4746Thomas Schilling <nominolo@googlemail.com>**20081007235656]
4747[fix syntax errors in src-dist publish rules
4748Simon Marlow <marlowsd@gmail.com>**20081008103432]
4749[add comments and an ASSERT_LOCK_HELD()
4750Simon Marlow <marlowsd@gmail.com>**20081008112627]
4751[Fix #2663: we had a hard-wired capabilities[0]
4752Simon Marlow <marlowsd@gmail.com>**20081008112609
4753 For some unknown reason in schedulePostRunThread() we were always
4754 passing capabilities[0] rather than the current Capability to
4755 throwToSingleThreaded().  This caused all kinds of weird failures and
4756 crashes in STM code when running on multiple processors.
4757]
4758[Fix #1955 for heap profiles generated by +RTS -hT
4759Simon Marlow <marlowsd@gmail.com>**20081003150745]
4760[add a section id for +RTS -hT
4761Simon Marlow <marlowsd@gmail.com>**20081007151007]
4762[update documentation for PostfixOperators
4763Simon Marlow <marlowsd@gmail.com>**20081007150957]
4764[fix markup
4765Simon Marlow <marlowsd@gmail.com>**20081007150943]
4766[Fix bug in DPH docs
4767Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081008101618]
4768[Add short DPH section to users guide
4769Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081008064754
4770 
4771 MERGE TO 6.10
4772]
4773[Users Guide: added type family documentation
4774Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081008061927
4775 
4776   MERGE TO 6.10
4777]
4778[Track changes to package dph
4779Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081008032859
4780 
4781 MERGE TO 6.10
4782]
4783[Build a profiled GHC API by default if p is in GhcLibWays
4784Ian Lynagh <igloo@earth.li>**20081007152318]
4785[Check whether mk/validate.mk defines anything after validating
4786Ian Lynagh <igloo@earth.li>**20081007144855]
4787[Remove #define _BSD_SOURCE from Stg.h
4788Ian Lynagh <igloo@earth.li>**20081006101959
4789 It's no longer needed, as base no longer #includes it
4790]
4791[Make ghctags compile again.
4792Thomas Schilling <nominolo@googlemail.com>**20081007135705]
4793[Revert AutoLinkPackages change for dynamic libraries. Cabal handles that now.
4794Clemens Fruhwirth <clemens@endorphin.org>**20081007100417]
4795[Change suffix for dyn. linked executables from _real to .dyn
4796Clemens Fruhwirth <clemens@endorphin.org>**20081007100750]
4797[Add accessors to 'Target' fields and haddockify.
4798Thomas Schilling <nominolo@googlemail.com>**20081006222940
4799 
4800 MERGE TO 6.10
4801]
4802[Make 'gblock' and 'gunblock' part of 'ExceptionMonad'.  This way the
4803Thomas Schilling <nominolo@googlemail.com>**20081006222831
4804 default implementations of 'gbracket' and 'gfinally' just work.
4805 
4806 MERGE TO 6.10
4807]
4808[Add Word8 support to vectoriser
4809Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081007004416
4810 
4811 MERGE TO 6.10
4812]
4813[Fix generating OS X installers: Set COMMAND_MODE=unix2003
4814Ian Lynagh <igloo@earth.li>**20081005222715
4815 If we don't specify COMMAND_MODE=unix2003 then xcodebuild defaults
4816 to setting it to legacy, which means that ar builds archives
4817 without a table of contents. That makes the build fail later on.
4818]
4819[We need to set datadir = $(libdir) in bindists
4820Ian Lynagh <igloo@earth.li>**20081005143307
4821 We already do in the normal Makefiles.
4822 
4823 This is because GHC needs package.conf and unlit to be in the same place
4824 (and things like ghc-pkg need to agree on where package.conf is, so we
4825 just set it globally).
4826]
4827[prep-bin-dist-mingw complains if it finds a bad version of windres
4828Ian Lynagh <igloo@earth.li>**20081004175351]
4829[removed Data.Generics.Basics, added Data.Data
4830'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20081002082808]
4831[Fix a build problem with GHC 6.4.2
4832Ian Lynagh <igloo@earth.li>**20081003195700]
4833[No AutoLinkPackages for dynamic library linking
4834Clemens Fruhwirth <clemens@endorphin.org>**20081003185304]
4835[use ghcError for error in command line
4836Clemens Fruhwirth <clemens@endorphin.org>**20081001125648]
4837[Fix warnings
4838simonpj@microsoft.com**20081003171207]
4839[Always use extensible exceptions in ghc-pkg, rather than using ifdefs
4840Ian Lynagh <igloo@earth.li>**20081003161247]
4841[Use a proper exception for IOEnvFailure, not just a UserError
4842Ian Lynagh <igloo@earth.li>**20081003160129]
4843[Use an extensible-exceptions package when bootstrapping
4844Ian Lynagh <igloo@earth.li>**20081003140216
4845 Ifdefs for whether we had extensible exceptions or not were spreading
4846 through GHC's source, and things would only have got worse for the next
4847 2-3 years, so instead we now use an implementation of extensible
4848 exceptions built on top of the old exception type.
4849]
4850[Expunge ThFake, cure Trac #2632
4851simonpj@microsoft.com**20081003140423
4852 
4853 This patch fixes a dirty hack (the fake ThFake module), which in turn
4854 was causing Trac #2632.
4855 
4856 The new scheme is that the top-level binders in a TH [d| ... |] decl splice
4857 get Internal names.  That breaks a previous invariant that things like
4858 TyCons always have External names, but these TyCons are never long-lived;
4859 they live only long enough to typecheck the TH quotation; the result is
4860 discarded.  So it seems cool.
4861 
4862 Nevertheless -- Template Haskell folk: please test your code.  The testsuite
4863 is OK but it's conceivable that I've broken something in TH.  Let's see.
4864 
4865]
4866[Make a debug check more refined
4867simonpj@microsoft.com**20081003140144]
4868[Add ASSERTs to all calls of nameModule
4869simonpj@microsoft.com**20081003135334
4870 
4871 nameModule fails on an InternalName.  These ASSERTS tell you
4872 which call failed.
4873 
4874]
4875[Let parseModule take a ModSummary like checkAndLoadModule did.
4876Thomas Schilling <nominolo@googlemail.com>**20081002230412
4877 
4878 To get the ModSummary for a ModuleName getModSummary can be used.
4879 It's not called find* or lookup* because it assumes that the module is
4880 in the module graph and throws an exception if it cannot be found.
4881 Overall, I'm not quite sure about the usefulness of this function
4882 since the user has no control about which filetype to grab (hs or
4883 hs-boot).
4884]
4885[Remove some out-of-date entries from .darcs-boring
4886Ian Lynagh <igloo@earth.li>**20081002201519]
4887[TFs: Allow repeated variables in left-hand sides of instances
4888Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081002134539
4889 
4890   MERGE TO 6.10
4891]
4892[Clean up some comments
4893Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081002074642
4894 
4895   MERGE TO 6.10
4896]
4897[Make the new binder-swap stuff in OccurAnal work right for GlobalIds
4898simonpj@microsoft.com**20081002133002
4899 
4900 See Note [Binder swap on GlobalId scrutinees].  I hadn't got this
4901 right before, so repeated cases on imported Ids weren't getting optimised.
4902 
4903 
4904]
4905[Minor refactoring only
4906simonpj@microsoft.com**20081002132929]
4907[Comments only
4908simonpj@microsoft.com**20081002132833]
4909[Zap dead-ness info appropriately in SpecConstr
4910simonpj@microsoft.com**20081002132657
4911 
4912 SpecConstr can make pattern binders come alive, so we must remember
4913 to zap their dead-variable annotation.  See extendCaseBndrs.
4914 
4915 (This was triggering a Core Lint failure in DPH.)
4916 
4917]
4918[Suppress invalid Core Lint complaint about lack of constructors
4919simonpj@microsoft.com**20081002132426]
4920[add some more GC roots (fixes conc048, and possibly some others)
4921Simon Marlow <marlowsd@gmail.com>**20081001164427]
4922[Document +RTS -hT
4923Simon Marlow <marlowsd@gmail.com>**20081001163222
4924 We forgot to document this in GHC 6.8
4925]
4926[fix new-qualified-operators link
4927Simon Marlow <marlowsd@gmail.com>**20081001163105]
4928[Proper error message for unsupported pattern signatures
4929Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001144339
4930 - Pattern signatures must be identical to the type expected for the pattern;
4931   see Note [Pattern coercions]
4932 - We now signal an appropriate error if an equality coercion would be needed
4933   (instead of just generating Core that doesn't typecheck)
4934 
4935   MERGE TO 6.10
4936]
4937[Prevent excessive inlining with DPH
4938Roman Leshchinskiy <rl@cse.unsw.edu.au>**20081002012055
4939 
4940 This adds a new flag -finline-if-enough-args which disables inlining for
4941 partially applied functions. It is automatically set by -Odph. This is a
4942 temporary hack and should remain undocumented.
4943 
4944 MERGE TO 6.10
4945 
4946]
4947[On Windows, check that we have a good version of windres when configuring
4948Ian Lynagh <igloo@earth.li>**20081001171133]
4949[Call $(PERL) rather than perl when making the manpage
4950Ian Lynagh <igloo@earth.li>**20080930155054]
4951[don't install the installPackage program
4952Ian Lynagh <igloo@earth.li>**20080930145714]
4953[Fix #2637: conc032(threaded2) failure
4954Simon Marlow <marlowsd@gmail.com>**20081001135549
4955 There was a race condition whereby a thread doing throwTo could be
4956 blocked on a thread that had finished, and the GC would detect this
4957 as a deadlock rather than raising the pending exception.  We can't
4958 close the race, but we can make the right thing happen when the GC
4959 runs later.
4960]
4961[Remove outdated link to OGI webpage
4962Simon Marlow <marlowsd@gmail.com>**20080930150912]
4963[TFs: Fixed InstContextNorm (and simplification of IPs)
4964Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001131303
4965 
4966   MERGE TO 6.10
4967]
4968[TcSimplify.reduceImplication: clean up
4969Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001091315
4970 - This cleans up some of the mess in reduceImplication and documents the
4971   precondition on the form of wanted equalities properly.
4972 - I also made the back off test a bit smarter by allowing to back off in the
4973   presence of wanted equalities as long as none of them got solved in the
4974   attempt.  (That should save generating some superfluous bindings.)
4975 
4976   MERGE TO 6.10
4977]
4978[Make sure to zonk the kind of coercion variables
4979Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20081001053243
4980 
4981   MERGE TO 6.10
4982]
4983[Remover PROT_EXEC flag from mmap()
4984Simon Marlow <marlowsd@gmail.com>**20080930141842
4985 Needed for #738 fix
4986]
4987[Fix #2410: carefully generate unique names for CAF CCs
4988Simon Marlow <marlowsd@gmail.com>**20080930141812]
4989[fix #2594: we were erroneously applying masks, as the reporter suggested
4990Simon Marlow <marlowsd@gmail.com>**20080930115611
4991 My guess is that this is left over from when we represented Int8 and
4992 friends as zero-extended rather than sign-extended.  It's amazing it hasn't
4993 been noticed earlier.
4994]
4995[Unconditionalize definition of DYNAMIC_* so that libffi.so/.dll is removed even when BuildSharedLibs is reset to NO
4996Clemens Fruhwirth <clemens@endorphin.org>**20080930085449]
4997[Type families: need to instantiate flexible skolems before other flexibles
4998Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080930053559
4999 
5000 MERGE TO 6.10
5001]
5002[Fix warnings
5003Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080929142227]
5004[Type families: consider subst rules both way
5005Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080929141040
5006 - applySubstFam, applySubstVarVar & applySubstVarFam need to return their
5007   second argument -to be put into the todo list- if the rule would be
5008   applicable if the equalities would be supplied in the opposite order.
5009 
5010 MERGE TO 6.10
5011]
5012[Clean up a bit and improve an error message
5013pepe**20080926211429]
5014[Don't capture error calls in tryUser
5015pepe**20080926204836
5016 
5017 A previous patch slightly changed the semantics of tryUser.
5018 This patch restores the original behaviour
5019 (as expected in :print)
5020 
5021]
5022[tweaks to this section of the docs
5023Simon Marlow <simonmar@microsoft.com>**20080927141834]
5024[Add -outputdir flag (#2295)
5025Simon Marlow <simonmar@microsoft.com>**20080927141822]
5026[oops, forgot to add -XNewQualifiedOperators to the flags table
5027Simon Marlow <simonmar@microsoft.com>**20080923140449]
5028[Fix making OS X installers from source tarballs
5029Ian Lynagh <igloo@earth.li>**20080927150507
5030 I'm not sure why it works in the HEAD, but when making an installer
5031 from the 6.10.1 beta configure hangs when doing the CHECK_HIST_ERRORS
5032 test (during rl_initialize, I believe). Giving make /dev/null as stdin
5033 fixes it.
5034]
5035[Make the matching of the filename ghc.exe case insensitive, fixes bug #2603
5036Neil Mitchell <ndmitchell@gmail.com>**20080916160311]
5037[Fix #2411: missing case for CATCH_STM_FRAME in raiseAsync()
5038Simon Marlow <simonmar@microsoft.com>**20080926232806]
5039[Fix parsing of -ignore-package flag.
5040Bertram Felgenhauer <int-e@gmx.de>**20080925053820]
5041[Add an example of how to use SCCs to the user guide
5042Ian Lynagh <igloo@earth.li>**20080926203832]
5043[Add some description of the +RTS -t/-s/-S output
5044Ian Lynagh <igloo@earth.li>**20080926200203]
5045[Remove a redundant options pragma
5046Ian Lynagh <igloo@earth.li>**20080926152731]
5047[Split ShowVersion etc off into a different type to DoInteractive etc
5048Ian Lynagh <igloo@earth.li>**20080926140539
5049 This fixes trac #1348 (ghci --help gave ghc's help), and also tidies
5050 things up a bit. Things would be even tidier if the usage.txt files were
5051 put into a .hs file, so that ShowUsage wouldn't need to be able to find
5052 the libdir.
5053]
5054[Pass SRC_HC_OPTS to GHC when building GHC's Main.hs
5055Ian Lynagh <igloo@earth.li>**20080926131609]
5056[Improve runghc docs; fixes trac #2477
5057Ian Lynagh <igloo@earth.li>**20080926124425]
5058[Type families: fixes in flattening & finalisation
5059Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080925225324
5060 * Finalisation didn't do the right thing for equalities x ~ y, where
5061   x was instantiated, but not zonked and y flexible (need to do y := x)
5062 * During flattening we weren't careful enough when turning wanteds
5063   intermediates into locals
5064 
5065 Both bugs showed up in a small example of SPJ:
5066 
5067   linear :: HasTrie (Basis v) => (Basis v, v)
5068   linear =  basisValue
5069 
5070   class HasTrie a where
5071 
5072   type family Basis u :: *
5073 
5074   basisValue :: (Basis v,v)
5075   basisValue = error "urk"
5076 
5077]
5078[Fix the behaviour of flags like --help and --version; fixes trac #2620
5079Ian Lynagh <igloo@earth.li>**20080925165618
5080 They should override other mode flags, not conflict with them
5081]
5082[Follow the integer package changes
5083Ian Lynagh <igloo@earth.li>**20080925133855]
5084[Type families: fix decomposition problem
5085Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080925084139
5086 * Fixes the problem reported in
5087   <http://www.haskell.org/pipermail/haskell-cafe/2008-July/044911.html>
5088]
5089[Don't exit ghci if :info is called on an undefined identifier.
5090Judah Jacobson <judah.jacobson@gmail.com>**20080924212422]
5091[Fix maintainer-clean
5092Ian Lynagh <igloo@earth.li>**20080924230553]
5093[Use -f when making the runhaskell symlink
5094Ian Lynagh <igloo@earth.li>**20080924124255
5095 Otherwise installation fails if runhaskell already exists.
5096]
5097[Use -perm -100 rather than -perm /a+x when looking for executable files
5098Ian Lynagh <igloo@earth.li>**20080924124137
5099 /a+x doesn't work on some Solaris and OS X machines. Spotted by
5100 Christian Maeder.
5101]
5102[Use $(FIND) rather than find, as the former may be gfind
5103Ian Lynagh <igloo@earth.li>**20080924123323]
5104[Look for gfind as well as find
5105Ian Lynagh <igloo@earth.li>**20080924123046]
5106[In configure, don't call FPTOOLS_HADDOCK
5107Ian Lynagh <igloo@earth.li>**20080924122558
5108 We now use the in-tree haddock, so we don't need to look for it.
5109]
5110[Use $(TAR) rather than tar
5111Ian Lynagh <igloo@earth.li>**20080924121759
5112 Fixes problems on Solaris, where we need to use gtar instead of tar
5113]
5114[Add $(strip) to a Makefile test
5115Ian Lynagh <igloo@earth.li>**20080924120940
5116 Fixes making bindists on solaris. Patch from Christian Maeder.
5117]
5118[Use test -f rather than test -e, for portability (Solaris)
5119Ian Lynagh <igloo@earth.li>**20080924120840]
5120[Remove some dependencies on bootstrapping.conf from libraries/Makefile
5121Ian Lynagh <igloo@earth.li>**20080923205755
5122 They were causing some unnecessary work:
5123 Running make in a built tree reregisters the GHC package in
5124 bootstrapping.conf, and the build system thought that this updated
5125 timestamp meant that the configure stamps were out of date. This is
5126 particularly bad for the libraries with configure scripts, as those
5127 take a while to run.
5128 
5129 The bootstrapping.conf is built in an earlier phase ("make boot") so
5130 one shouldn't rely on the dependencies anyway.
5131]
5132[Bump the version number to 6.11
5133Ian Lynagh <igloo@earth.li>**20080923165613]
5134[Generalise type of 'defaultErrorHandler' so it can be used inside a Ghc session.
5135Thomas Schilling <nominolo@googlemail.com>**20080921085647]
5136[Make "sh -e boot" work
5137Ian Lynagh <igloo@earth.li>**20080921111508]
5138[Use -f rather than -e for portability
5139Ian Lynagh <igloo@earth.li>**20080921111436]
5140[Add some special cases for putting dph in bindists
5141Ian Lynagh <igloo@earth.li>**20080921000406]
5142[Escape a hash in the Makefile (it was breaking source dist creation)
5143Ian Lynagh <igloo@earth.li>**20080920232945]
5144[Disallow package flags in OPTIONS_GHC pragmas (#2499)
5145Simon Marlow <simonmar@microsoft.com>**20080923173904]
5146[#2566: emit a warning for 'ghc -c foo.bar'
5147Simon Marlow <simonmar@microsoft.com>**20080923144956
5148 
5149 $ ghc -c foo.bar
5150 Warning: the following files would be used as linker inputs, but linking is not being done: foo.bar
5151 ghc: no input files
5152 Usage: For basic information, try the `--help' option.
5153]
5154[Fix to new executable allocation code (fixed print002 etc.)
5155Simon Marlow <simonmar@microsoft.com>**20080922210915
5156 The problem here is caused by the fact that info tables include a
5157 relative offset to the string naming the constructor.  Executable
5158 memory now resides at two places in the address space: one for writing
5159 and one for executing.  In the info tables generated by GHCi, we were
5160 calculating the offset relative to the writable instance, rather than
5161 the executable instance, which meant that the GHCi debugger couldn't
5162 find the names for constructors it found in the heap.
5163]
5164[clean sm/Evac_thr.c and sm/Scav_thr.c
5165Simon Marlow <simonmar@microsoft.com>**20080922152827]
5166[add -XNewQualifiedOperators (Haskell' qualified operator syntax)
5167Simon Marlow <simonmar@microsoft.com>**20080922152340]
5168[Fix Trac #2597 (first bug): correct type checking for empty list
5169simonpj@microsoft.com**20080920212010
5170 
5171 The GHC front end never generates (ExplicitList []), but TH can.
5172 This patch makes the typechecker robust to such programs.
5173 
5174]
5175[Fix Trac #2597 (second bug): complain about an empty DoE block
5176simonpj@microsoft.com**20080920211101
5177 
5178 When converting an empty do-block from TH syntax to HsSyn,
5179 complain rather than crashing.
5180 
5181]
5182[Update dependencies
5183Ian Lynagh <igloo@earth.li>**20080920183534]
5184[Fix building with GHC 6.6
5185Ian Lynagh <igloo@earth.li>**20080920162918]
5186[Remove fno-method-sharing from the list of static flags
5187Ian Lynagh <igloo@earth.li>**20080920010635
5188 It is now a dynamic flag
5189]
5190[Tidy up the treatment of dead binders
5191simonpj@microsoft.com**20080920175238
5192 
5193 This patch does a lot of tidying up of the way that dead variables are
5194 handled in Core.  Just the sort of thing to do on an aeroplane.
5195 
5196 * The tricky "binder-swap" optimisation is moved from the Simplifier
5197   to the Occurrence Analyser.  See Note [Binder swap] in OccurAnal.
5198   This is really a nice change.  It should reduce the number of
5199   simplifier iteratoins (slightly perhaps).  And it means that
5200   we can be much less pessimistic about zapping occurrence info
5201   on binders in a case expression. 
5202 
5203 * For example:
5204        case x of y { (a,b) -> e }
5205   Previously, each time around, even if y,a,b were all dead, the
5206   Simplifier would pessimistically zap their OccInfo, so that we
5207   can't see they are dead any more.  As a result virtually no
5208   case expression ended up with dead binders.  This wasn't Bad
5209   in itself, but it always felt wrong.
5210 
5211 * I added a check to CoreLint to check that a dead binder really
5212   isn't used.  That showed up a couple of bugs in CSE. (Only in
5213   this sense -- they didn't really matter.)
5214   
5215 * I've changed the PprCore printer to print "_" for a dead variable.
5216   (Use -dppr-debug to see it again.)  This reduces clutter quite a
5217   bit, and of course it's much more useful with the above change.
5218 
5219 * Another benefit of the binder-swap change is that I could get rid of
5220   the Simplifier hack (working, but hacky) in which the InScopeSet was
5221   used to map a variable to a *different* variable. That allowed me
5222   to remove VarEnv.modifyInScopeSet, and to simplify lookupInScopeSet
5223   so that it doesn't look for a fixpoint.  This fixes no bugs, but
5224   is a useful cleanup.
5225 
5226 * Roman pointed out that Id.mkWildId is jolly dangerous, because
5227   of its fixed unique.  So I've
5228 
5229      - localied it to MkCore, where it is private (not exported)
5230 
5231      - renamed it to 'mkWildBinder' to stress that you should only
5232        use it at binding sites, unless you really know what you are
5233        doing
5234 
5235      - provided a function MkCore.mkWildCase that emodies the most
5236        common use of mkWildId, and use that elsewhere
5237 
5238    So things are much better
5239 
5240 * A knock-on change is that I found a common pattern of localising
5241   a potentially global Id, and made a function for it: Id.localiseId
5242 
5243]
5244[Gix the ghcii script
5245Ian Lynagh <igloo@earth.li>**20080919174651
5246 The ghc executable name doesn't have a version number on Windows, so
5247 don't put one in the script.
5248]
5249[Create runhaskell as well as runghc
5250Ian Lynagh <igloo@earth.li>**20080919153010]
5251[On Linux use libffi for allocating executable memory (fixed #738)
5252Simon Marlow <marlowsd@gmail.com>**20080919134602]
5253[Move the context_switch flag into the Capability
5254Simon Marlow <marlowsd@gmail.com>**20080919102601
5255 Fixes a long-standing bug that could in some cases cause sub-optimal
5256 scheduling behaviour.
5257]
5258[Fix building the extralibs tarball
5259Ian Lynagh <igloo@earth.li>**20080919133555
5260 We now need to dig the appropriate lines out of packages, rather than
5261 just catting libraries/extra-packages, in order to find out what the
5262 extralibs are.
5263]
5264[Install libffi when installing frmo a bindist
5265Ian Lynagh <igloo@earth.li>**20080919130332]
5266[Fix how we put libffi into bindists
5267Ian Lynagh <igloo@earth.li>**20080919125528]
5268[TAG 6.10 branch has been forked
5269Ian Lynagh <igloo@earth.li>**20080919123437]
5270[Don't require Parser.y in a source dist
5271Ian Lynagh <igloo@earth.li>**20080919115831]
5272[Add HpcParser.hs to source dists
5273Ian Lynagh <igloo@earth.li>**20080919115816]
5274[Fix the list of generated files that need to go into the source dists
5275Ian Lynagh <igloo@earth.li>**20080919112522]
5276[Improve documentation of overlapping instances
5277simonpj@microsoft.com**20080919093147]
5278[Put generated files in source dists
5279Ian Lynagh <igloo@earth.li>**20080918194424
5280 We don't want to require that users building source dists have alex/happy
5281]
5282[Add libraries/syb to .darcs-boring
5283Ian Lynagh <igloo@earth.li>**20080918190116]
5284[Fix a couple of issues with :print
5285pepe**20080918122133
5286       
5287       - Ticket #1995: Unsoundness with newtypes
5288       - Ticket #2475: "Can't unify" error when stopped at an exception
5289       
5290       In addition this patch adds the following:
5291       
5292       - Unfailingness: RTTI cannot panic anymore.
5293         In case of failure, it recovers gracefully by returning the "I know nothing" type
5294       - A -ddump-rtti flag
5295 
5296]
5297[wibble
5298pepe <mnislaih@gmail.com>**20080418172303]
5299[RichTokenStream support
5300Chaddai Fouche <chaddai.fouche@gmail.com>**20080918165256
5301 
5302 This patch adds support for raw token streams, that contain more
5303 information than normal token streams (they contains comments at
5304 least). The "lexTokenStream" function brings this support to the
5305 Lexer module. In addition to that, functions have been added to
5306 the GHC module to make easier to recover of the token stream of
5307 a module ("getTokenStream").
5308 
5309 Building on that, I added what could be called "rich token
5310 stream": token stream to which have been added the source string
5311 corresponding to each token, the function addSourceToToken takes
5312 a StringBuffer and a starting SrcLoc and a token stream and build
5313 this rich token stream. getRichTokenStream is a convenience
5314 function to get a module rich token stream. "showRichTokenStream"
5315 use the SrcLoc information in such a token stream to get a string
5316 similar to the original source (except unsignificant
5317 whitespaces). Thus "putStrLn . showRichTokenStream =<<
5318 getRichTokenStream s mod" should print a valid module source, the
5319 interesting part being to modify the token stream between the get
5320 and the show of course.
5321]
5322[When passing gcc -B, also tell it where the mingw include directory is
5323Ian Lynagh <igloo@earth.li>**20080918143312]
5324[Don't put the mingw directory in RTS's package.conf
5325Ian Lynagh <igloo@earth.li>**20080918143118]
5326[Be more forceful when cleaning in compiler/ and ghc/
5327Ian Lynagh <igloo@earth.li>**20080918134443
5328 Now that the Cabal file is generated by configure, it would be nice
5329 if clean worked even if the cabal file is missing. So now we just rm -rf
5330 the dist directory.
5331]
5332[Generate ghc.cabal and ghc-bin.cabal with configure
5333Ian Lynagh <igloo@earth.li>**20080918133636
5334 This allows us to put the proper version number into them
5335]
5336[Make the ghci scripts point to the versioned GHC program, not just "ghc"
5337Ian Lynagh <igloo@earth.li>**20080918122516]
5338[Fix Trac #1470: improve handling of recursive instances (needed for SYB3)
5339simonpj@microsoft.com**20080918161719
5340 
5341 This bug has been hanging around for a long time, as you'll see by its
5342 number. The fix implements a feature that is really needed by SYB3, to
5343 allow an instance to (rather indirectly) refer to itself.  The trickiness
5344 comes when solving the superclass constraints.
5345 
5346 The whoel issue is explained in Note [Recursive instances and superclases]
5347 in TcSimplify.
5348 
5349 In cracking this one I found I could remove the WantSCs argument to the
5350 ReduceMe flag, which is a worthwhile simplification.  Good!
5351 
5352]
5353[Comments only
5354simonpj@microsoft.com**20080918155602]
5355[Replace ASSERT with WARN, and explain why
5356simonpj@microsoft.com**20080918155245
5357 
5358 The DPH library tripped an ASSERT.  The code is actually OK, but it's
5359 badly-optimised so I changed it to WARN.  The issue here is explained
5360 in ClosureInfo, Note [Unsafe coerce complications].
5361 
5362]
5363[Add a missing "prime" (env' --> env'') thereby fixing a tripping WARN.  Hurrah!
5364simonpj@microsoft.com**20080918155144]
5365[Fix nasty infelicity: do not short-cut empty substitution in the simplifier
5366simonpj@microsoft.com**20080917162910
5367 
5368 I was perplexed about why an arity-related WARN was tripping. It took
5369 me _day_ (sigh) to find that it was because SimplEnv.substExpr was taking
5370 a short cut when the substitution was empty, thereby not subsituting for
5371 Ids in scope, which must be done (CoreSubst Note [Extending the Subst]).
5372 
5373 The fix is a matter of deleting the "optimisation".  Same with
5374 CoreSubst.substSpec, although I don't know if that actually caused a
5375 probem.
5376 
5377]
5378[Avoid arity reduction when doing eta-reduce
5379simonpj@microsoft.com**20080917162704
5380 
5381 We like things with high arity, so when doing eta reduction
5382 it's probably a good idea to avoid reducing arity.
5383 
5384]
5385[Add extra WARN test
5386simonpj@microsoft.com**20080917162434
5387 
5388 This warning tests that the arity of a function does not decrease.
5389 And that it's at least as great as the strictness signature.
5390 
5391 Failing this test isn't a disater, but it's distinctly odd and
5392 usually indicates that not enough information is getting propagated
5393 around, and hence you may get more simplifier iterations.
5394 
5395]
5396[Comments only
5397simonpj@microsoft.com**20080917162350]
5398[Re-adjust interaction between -ddump flags and force-recompilation
5399simonpj@microsoft.com**20080917161920
5400 
5401 If you say -ddump-xx we effectively add -fforce-recomp, so that you
5402 see your dump output.  But this works badly in --make mode, because
5403 you get the ddump output for every module, which is probably not what
5404 you want.  This patch forces recompilation with -ddump-X only in one-shot
5405 mode. 
5406 
5407 Of course, this only affects people using -ddump options.
5408 
5409]
5410[Add Outputable GhcMode instance
5411simonpj@microsoft.com**20080917161847]
5412[Improve error reporting for 'deriving' (Trac #2604)
5413simonpj@microsoft.com**20080917135104]
5414[Add link to GADT paper re rigid types
5415simonpj@microsoft.com**20080916094521]
5416[Fix MacOS X build: don't believe __GNUC_GNU_INLINE__ on MacOS X
5417Simon Marlow <marlowsd@gmail.com>**20080918112856]
5418[require Alex version 2.1.0
5419Simon Marlow <marlowsd@gmail.com>**20080918112812
5420 Having 2.0.1 causes some unicode tests to fail
5421]
5422[Type families: fixes in the new solver
5423Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080918100934]
5424[ext-core library: Parser fixes; make it build with the HEAD
5425Tim Chevalier <chevalier@alum.wellesley.edu>**20080918090349
5426 
5427 In the ext-core parser I guess I never tested:
5428 * existential type variable bindings in case alts
5429 * empty data declarations
5430 
5431 That'll learn me!
5432]
5433[Wibble ghc-pkg imports to fix building on Windows
5434Ian Lynagh <igloo@earth.li>**20080917210813]
5435[ghc-pkg needs to make package.conf with sensible permissions
5436Ian Lynagh <igloo@earth.li>**20080917192155
5437 It was calling openTempFile which uses a 600 permissions mask.
5438]
5439[Change 'loadWithCompiler' callback argument to just print warnings.
5440Thomas Schilling <nominolo@googlemail.com>**20080917102925
5441 Rename function accordingly.
5442 
5443 The callback wasn't very flexible to begin with.  There's pretty much
5444 no way around to calling 'compile' inside that callback since
5445 'upsweep' depends on certain side effects of compile.  It therefore
5446 makes more sense to restrict the callback to its intended use only,
5447 namely to log warnings and errors.
5448]
5449[Fix: GhcStage2HcOpts were being added to stage 3 too
5450Simon Marlow <marlowsd@gmail.com>**20080917085917]
5451[Type families: unify with family apps in checking mode
5452Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080917062548]
5453[Type families: bug fixes
5454Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080916151254]
5455[Keep sysnonyms folded in equalities if possible
5456Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080916075700]
5457[Type families: apply flattening coercions in the right order
5458Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080916055136]
5459[TcTyFuns: tidy warning
5460Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080915031423]
5461[Signature for Inst.isValidWantedEqInst
5462Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080915030118]
5463[Remember if RewriteInst is swapped & bug fixes
5464Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080914163639]
5465[Type families: fixed all non-termination in the testsuite
5466Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080914120638]
5467[Type families: completed the new equality solver
5468Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080913133631
5469 - Implements normalisation of class constraints containing synonym family
5470   applications or skolems refined by local equalities.
5471 - Clean up of TcSimplify.reduceContext by using the new equality solver.
5472 - Removed all the now unused code of the old algorithm.
5473 - This completes the implementation of the new algorithm, but it is largely
5474   untested => many regressions.
5475]
5476[Use the new -optdep flag replacements when building with >= GHC 6.9
5477Ian Lynagh <igloo@earth.li>**20080916220057
5478 Fix building the HEAD with itself
5479]
5480[Use "exec" when running ghc in the wrapper
5481Ian Lynagh <igloo@earth.li>**20080915100217]
5482[Add "#!/bin/sh" to runghc.wrapper
5483Ian Lynagh <igloo@earth.li>**20080914153507]
5484[Add a "#!/bin/sh" to ghc.wrapper
5485Ian Lynagh <igloo@earth.li>**20080914153344]
5486[Fixing directory creation to not create "" directories inside hpc report (harmless but needless)
5487andygill@ku.edu**20080916172313]
5488[Fix Trac #2052 Allowing hpc to understand hsc files.
5489andygill@ku.edu**20080916030521]
5490[Fix Trac #2311: creates subdirs for package coverage information
5491andygill@ku.edu**20080915204322]
5492[FIX #2469: sort out our static/extern inline story
5493Simon Marlow <marlowsd@gmail.com>**20080916132222
5494 gcc has changed the meaning of "extern inline" when certain flags are
5495 on (e.g. --std=gnu99), and this broke our use of it in the header
5496 files.
5497]
5498[Fix a warning
5499Simon Marlow <marlowsd@gmail.com>**20080916130922]
5500[Stop using mremap() to allocate space for trampolines
5501Simon Marlow <marlowsd@gmail.com>**20080915145924
5502 
5503 This was causing problems because sometimes mremap() moved the memory
5504 we had allocated from the low 2Gb to above the 2Gb boundary, causing
5505 some linkages to fail.  There's no MAP_32BIT flag to mremap().
5506 
5507 So now we just use mmap(MAP_ANON|MAP_32BIT) to allocated space for the
5508 trampolines.  People without MAP_32BIT (eg. *BSD) will still have to
5509 do something else here, such as allocating memory from a fixed
5510 address; so I've made it slightly easier for those guys, but there's
5511 still work to do (#2063).
5512 
5513 One solution (that Simon PJ is advocating) is to turn on -fPIC by
5514 default on x86-64.  This is a good solution as it removes the need for
5515 MAP_32BIT, but doesn't work with -fvia-C, so probably this is for
5516 later.
5517]
5518[add $(GhcStage[123]HcOpts)
5519Simon Marlow <marlowsd@gmail.com>**20080912155549]
5520[Improve handling of -fdph-* flags
5521Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916034746]
5522[Add -fdph-this
5523Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916033710]
5524[Remove last traces of package ndp
5525Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916033428]
5526[Clean up vectorisation error messages
5527Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080916013236]
5528[Fix vectoriser bug
5529Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080915042823
5530 
5531 We were using mkWildId in situations where it cause disastrous shadowing
5532]
5533[Track changes to dph
5534Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080912114028]
5535[Change desugaring of PArr literals
5536Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080912015609]
5537[Expose the dph packages automatically if -dph-* is set
5538Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080912004403]
5539[Don't panic on non-vectorisable expressions
5540Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080911054333]
5541[-Odph implies -fno-spec-constr-count
5542Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080910045339]
5543[Improve warning for SpecConstr
5544simonpj@microsoft.com**20080915154908]
5545[White space only
5546simonpj@microsoft.com**20080915154841]
5547[Minor refactoring to get rid of Type.splitNewTyConApp
5548simonpj@microsoft.com**20080915072946]
5549[Refactor the desugaring of RULE lhss a bit
5550simonpj@microsoft.com**20080915150601
5551 
5552 This is just a tidy-up.  Previously we were calling occurAnalyse
5553 twice on each LHS which was silly and a bit unclean too. 
5554 
5555 This patch should have no overall effect, though.
5556 
5557]
5558[Do not use the Static Arg Transformation by default with -O2
5559simonpj@microsoft.com**20080915150433
5560 
5561 Max has some more heuristics to add, and is meanwhile worried
5562 that having SAT on by default will make some highly-tuned array
5563 programs worse.  So it's off by default. 
5564 
5565 Use -fstatic-argument-transformation to switch it on.
5566 
5567]
5568[Comments, and a couple of asserts, only
5569simonpj@microsoft.com**20080914114641]
5570[Fix Trac #2587: take account of type lets
5571simonpj@microsoft.com**20080914113434
5572 
5573 GHC allows a non-recursive let for type varaibles
5574        let a = TYPE ty in ...
5575 But the free-variable finder had not caught up with this
5576 fact. This patch catches up.
5577 
5578]
5579[Don't try to float type-lets
5580simonpj@microsoft.com**20080914113324
5581 
5582 A type let shouldn't really occur in SetLevels, but if it does,
5583 this patch makes sure it is left alone.
5584 
5585]
5586[add refs and fix a bug (noted by Peter Gammie) in docs of arrow notation
5587Ross Paterson <ross@soi.city.ac.uk>**20080915104757]
5588[Generalise type of 'withExtendedLinkEnv'.
5589Thomas Schilling <nominolo@googlemail.com>**20080915085738]
5590[Use 'GhcMonad' in ghci/InteractiveUI.
5591Thomas Schilling <nominolo@googlemail.com>**20080915085633]
5592[Use 'GhcMonad' in ghci/GhciTags.
5593Thomas Schilling <nominolo@googlemail.com>**20080915084922]
5594[Use 'GhcMonad' in ghci/Debugger.
5595Thomas Schilling <nominolo@googlemail.com>**20080915084738]
5596[Use 'GhcMonad' in ghci/GhciMonad.
5597Thomas Schilling <nominolo@googlemail.com>**20080915084646]
5598[Use 'GhcMonad' in ghc/Main.
5599Thomas Schilling <nominolo@googlemail.com>**20080914232957]
5600[Require PatternSignatures for bootstrapping compiler.
5601Thomas Schilling <nominolo@googlemail.com>**20080914232642]
5602[Use 'GhcMonad' in InteractiveEval.
5603Thomas Schilling <nominolo@googlemail.com>**20080914232454]
5604[Use 'GhcMonad' in GHC and split up checkModule into phases.
5605Thomas Schilling <nominolo@googlemail.com>**20080914232044
5606 
5607 I'm not sure I covered all the ways of throwing errors in the code.
5608 Some functions throw ProgramErrors, some error messages.  It's still
5609 quite a mess, but we're getting closer.  The missing cases are mostly
5610 errors that cannot be fixed by the API client either or are a result
5611 of wrong usage, so are in any case fatal.
5612 
5613 One function, 'getModuleInfo', still returns a 'Maybe', but the
5614 documentation suggests it should always succeed.  So I may change that
5615 soon.
5616 
5617 The spit-up of of 'checkModule' has pros and cons.  The various forms
5618 of 'checkModule*' now become:
5619 
5620  checkAndLoadModule ms False ~~>
5621     loadModule =<< typecheckModule =<< parseModule (ms_mod_name ms)
5622 
5623  checkAndLoadModule ms True ~~>
5624    loadModule =<< desugarModule =<< typecheckModule =<< parseModule (ms_mod_name ms)
5625 
5626  checkModule mn False ~~>
5627    typecheckModule =<< parseModule mn
5628 
5629  checkModule mn True ~~>
5630    desugarModule =<< typecheckModule =<< parseModule mn
5631 
5632 The old APIs cannot easily be provided, since the result type would be
5633 different depending on the second argument.  However, a more
5634 convenient API can be modelled on top of these four functions
5635 ({parse,typecheck,desugar,load}Module).
5636]
5637[Use 'GhcMonad' in DriverPipeline.  Also haddockify a bit while we're at it.
5638Thomas Schilling <nominolo@googlemail.com>**20080914220628]
5639[Use 'GhcMonad' in HscMain.
5640Thomas Schilling <nominolo@googlemail.com>**20080914213655]
5641[Use 'GhcMonad' in DriverMkDepend.
5642Thomas Schilling <nominolo@googlemail.com>**20080914212113]
5643[Haddockify DynFlags (partial).
5644Thomas Schilling <nominolo@googlemail.com>**20080914211718]
5645[Haddockify 'IE'.
5646Thomas Schilling <nominolo@googlemail.com>**20080914210016]
5647[Provide accessors for 'ImportDecl'.
5648Thomas Schilling <nominolo@googlemail.com>**20080914205811]
5649[Start haddockifying 'HsBindLR'.
5650Thomas Schilling <nominolo@googlemail.com>**20080914205629]
5651[Document 'parseStaticFlags'.
5652Thomas Schilling <nominolo@googlemail.com>**20080914205316]
5653[Introduce 'GhcMonad' class and two default implementations 'Ghc' and 'GhcT'.
5654Thomas Schilling <nominolo@googlemail.com>**20080914204930
5655 
5656 This monad will be required by most public API calls.
5657]
5658[Give the "Failing due to -Werror" message a name.
5659Thomas Schilling <nominolo@googlemail.com>**20080914173904]
5660[Make typechecker top-level functions also return messages instead of
5661Thomas Schilling <nominolo@googlemail.com>**20080914173228
5662 printing them.
5663]
5664[Reflect changes of desugarer error reporting in VectMonad.
5665Thomas Schilling <nominolo@googlemail.com>**20080914172711]
5666[Generalise 'handleGhcException' to work with any 'ExceptionMonad'.
5667Thomas Schilling <nominolo@googlemail.com>**20080914172404]
5668[Introduce an 'ExceptionMonad' class.
5669Thomas Schilling <nominolo@googlemail.com>**20080914172154
5670 
5671 This monad provides variants of 'catch', 'bracket', and 'finally', so
5672 exceptions can be handled in monads that wrap IO.  The latter two
5673 methods need to be part of the class definition, because GHC uses
5674 'block' and 'unblock' which are used in the definition of those two
5675 methods for the IO monad.  A perhaps better class interface would
5676 consist of 'gcatch', 'gblock', and 'gunblock' and let the latter two
5677 default to 'id' like is done for non-GHC implementations of 'bracket'
5678 and 'finally'.
5679]
5680[Provide default MonadIO instance for IO.
5681Thomas Schilling <nominolo@googlemail.com>**20080914164245]
5682[Return instead of print warnings and errors in desugarer.
5683Thomas Schilling <nominolo@googlemail.com>**20080914163641]
5684[Return parser errors and warnings instead of dying.
5685Thomas Schilling <nominolo@googlemail.com>**20080914162644]
5686[Add aliases for bags of warnings and errors.
5687Thomas Schilling <nominolo@googlemail.com>**20080914160337]
5688[Slightly more helpful panic message in DynFlags
5689Tim Chevalier <chevalier@alum.wellesley.edu>**20080915080650]
5690[Comments only: ".core" => ".hcr"
5691Tim Chevalier <chevalier@alum.wellesley.edu>**20080914203645]
5692[We need to tell ghc-pkg to --force if we've only built a profiling library
5693Ian Lynagh <igloo@earth.li>**20080913153142]
5694[If we're profiling GHC, don't bother building the GHC package the vanilla way
5695Ian Lynagh <igloo@earth.li>**20080913144820]
5696[Remove the duplicate show rule in libraries/Makefile
5697Ian Lynagh <igloo@earth.li>**20080913144413]
5698[Move the "show" target from target.mk to boilerplate.mk
5699Ian Lynagh <igloo@earth.li>**20080913141312
5700 target.mk isn't included everywhere, but show is always handy
5701]
5702[Change how we detect if we are using the bootstrapping compiler or not
5703Ian Lynagh <igloo@earth.li>**20080913104658
5704 I think looking for $(GHC_COMPILER_DIR_ABS) was failing on the Windows
5705 buildbot due to different path separators. Now we just look for
5706 "inplace".
5707]
5708[wibble the distrib Makefile
5709Ian Lynagh <igloo@earth.li>**20080912135932
5710 We now need to install driver after ghc
5711]
5712[Reinstate the driver/ghc directory, to create a versioned GHC program
5713Ian Lynagh <igloo@earth.li>**20080912113619
5714 e.g. $(bindir)/ghc-6.9.20080911
5715]
5716[If USE_NEW_MKDEPEND_FLAGS is YES then don't use the deprecated -optdep flags
5717Ian Lynagh <igloo@earth.li>**20080912110316]
5718[Use --force-local when calling tar in bindisttest/
5719Ian Lynagh <igloo@earth.li>**20080912012855
5720 Otherwise it thinks that c:/foo is a remote file
5721]
5722[Fix #2586, bug in THUNK_SELECTORs (again)
5723Simon Marlow <marlowsd@gmail.com>**20080912130404
5724 This time, we had forgetten the write barrier in one place.
5725]
5726[TAG 2008-09-12 2
5727Ian Lynagh <igloo@earth.li>**20080912132848]
5728Patch bundle hash:
57299fa77707feda94d0308577859d1b6009b0e8a11b