Ticket #2191: traceCcs2.dpatch

File traceCcs2.dpatch, 137.5 KB (added by SamB, 7 years ago)

They lied to me! "R1 isn't tagged", they said. But it was!

Line 
1Sun Apr  6 09:47:55 EDT 2008  Samuel Bronson <[email protected]>
2  * Implement #2191 (traceCcs# -- prints CCS of a value when available)
3  Apparantly, tagged objects are passed, contrary to the comments for
4  UNTAG and GETTAG in Cmm.h. So I untag them. *sigh*.
5
6New patches:
7
8[Implement #2191 (traceCcs# -- prints CCS of a value when available)
9Samuel Bronson <[email protected]>**20080406134755
10 Apparantly, tagged objects are passed, contrary to the comments for
11 UNTAG and GETTAG in Cmm.h. So I untag them. *sigh*.
12] {
13hunk ./compiler/prelude/primops.txt.pp 1702
14    with
15    out_of_line = True
16 
17+------------------------------------------------------------------------
18+section "Misc"
19+        {These aren't nearly as wired in as Etc...}
20+------------------------------------------------------------------------
21+
22+primop  TraceCcsOp "traceCcs#" GenPrimOp
23+   a -> b -> b
24+   with
25+   has_side_effects = True
26+   out_of_line = True
27+
28 ------------------------------------------------------------------------
29 section "Etc"
30        {Miscellaneous built-ins}
31hunk ./includes/StgMiscClosures.h 606
32 RTS_FUN(getApStackValzh_fast);
33 
34 RTS_FUN(noDuplicatezh_fast);
35+
36+RTS_FUN(traceCcszh_fast);
37 
38 /* Other misc stuff */
39 
40hunk ./rts/Linker.c 771
41       SymX(rts_stop_on_exception)              \
42       SymX(stopTimer)                          \
43       SymX(n_capabilities)                     \
44+      SymX(traceCcszh_fast)                     \
45       RTS_USER_SIGNALS_SYMBOLS
46 
47 #ifdef SUPPORT_LONG_LONGS
48hunk ./rts/PrimOps.cmm 2236
49    RET_NP(ok,val);
50 }
51 
52+/* -----------------------------------------------------------------------------
53+   Misc. primitives
54+   -------------------------------------------------------------------------- */
55+
56+// Write the cost center stack of the first argument on stderr; return
57+// the second.  Possibly only makes sense for already evaluated
58+// things?
59+traceCcszh_fast
60+{
61+    W_ ccs;
62+
63+#ifdef PROFILING
64+    ccs = StgHeader_ccs(UNTAG(R1));
65+    foreign "C" fprintCCS_stderr(ccs "ptr") [R2];
66+#endif
67+
68+    RET_P(R2);
69+}
70+
71}
72
73Context:
74
75[Virtualize the cwd in GHCi
76Pepe Iborra <[email protected]>**20080405145136
77 
78 This fixes the issue where :list would stop working if the
79 program being debugged side-effected the working directory,
80 and should prevent other similar issues
81 
82]
83[Fix rendering of references in :print under -fprint-evld-with-show flag
84Pepe Iborra <[email protected]>**20071219174431]
85[Fix Trac #2188: scoping in TH declarations quotes
86[email protected]**20080404205556
87 
88 This patch fixes a rather tiresome issue, namely the fact that
89 a TH declaration quote *shadows* bindings in outer scopes:
90 
91   f g = [d| f :: Int
92             f = g
93            g :: Int
94             g = 4 |]
95 
96 Here, the outer bindings for 'f' (top-level) and 'g' (local)
97 are shadowed, and the inner bindings for f,g should not be
98 reported as duplicates.  (Remember they are top-level bindings.)
99 
100 The actual bug was that we'd forgotten to delete 'g' from the
101 LocalRdrEnv, so the type sig for 'g' was binding to the outer
102 'g' not the inner one.
103 
104]
105[Fix simplifier thrashing
106[email protected]**20080403223819
107 
108 Another example of the simplifier thrashing, getting nowhere.
109 See SimplUtils, Note [Unsaturated functions]
110 
111 There's a test at eyeball/inline4.hs
112 
113]
114[Fix Trac #2179: error message for main
115[email protected]**20080403173746
116 
117 A short-cut to generate the (runMainIO main) wrapper turned out
118 to make a bad error message.  This should fix it.
119 
120]
121[Fix Trac #2136: reporting of unused variables
122[email protected]**20080403110250
123 
124 There's a bit of a hack RnBinds.rnValBindsAndThen, documented
125 in Note [Unused binding hack].  But the hack was over brutal
126 before, and produced unnecssarily bad (absence of) warnings.
127 This patch does a bit of refactoring; and fixes the bug in
128 rnValBindsAndThen.
129 
130]
131[Fix Trac #2137: report correct location for shadowed binding
132[email protected]**20080402153410
133 
134 The error message generation for a shadowed binding was
135 plain wrong, at least where the shadowed binding isn't
136 top-level.  Just a typo really -- the fix is trivial.
137 
138]
139[Fix Trac #2141: invalid record update
140[email protected]**20080402132057
141 
142 See Note [Record field lookup] in TcEnv.  The fix here
143 is quite straightforward.
144 
145]
146[Do not #include external header files when compiling via C
147Simon Marlow <[email protected]>**20080402051412
148 
149 This has several advantages:
150 
151  - -fvia-C is consistent with -fasm with respect to FFI declarations:
152    both bind to the ABI, not the API.
153 
154  - foreign calls can now be inlined freely across module boundaries, since
155    a header file is not required when compiling the call.
156 
157  - bootstrapping via C will be more reliable, because this difference
158    in behavour between the two backends has been removed.
159 
160 There is one disadvantage:
161 
162  - we get no checking by the C compiler that the FFI declaration
163    is correct.
164 
165 So now, the c-includes field in a .cabal file is always ignored by
166 GHC, as are header files specified in an FFI declaration.  This was
167 previously the case only for -fasm compilations, now it is also the
168 case for -fvia-C too.
169]
170[Derive a valid Ix instance for data Foo = Foo Int Int
171Ian Lynagh <[email protected]>**20080330182813
172 The old one didn't satisfy the axioms. See trac #2158 for details.
173]
174[Revive External Core parser
175Tim Chevalier <[email protected]>**20080329223948
176 
177 Huzzah, the External Core parser will now parse External Core generated by
178 the HEAD.
179 
180 Most notably, I rewrote the parser in Parsec, but the old Happy version
181 remains in the repository.
182 
183 I checked all the nofib benchmarks and most of the ghc-prim, base and integer
184 libraries to make sure they parsed; one known bug:
185   - Strings like "\x0aE", in which a hex escape code is followed by a
186     letter that could be a hex digit, aren't handled properly. I'm
187     investigating whether this is a bug in Parsec or expected behavior.
188 
189 The checker and interpreter still don't work, but should compile.
190 
191 Please mess around with the parser, report bugs, improve my code, etc.,
192 if you're so inclined.
193 
194]
195[Fix big character literal printing in External Core
196Tim Chevalier <[email protected]>**20080329221109
197 
198 Characters bigger than '\xff' should be represented as int
199 literals in External Core. (This was originally fixed five years ago
200 and broken again four and a half years ago...)
201]
202[External Core: don't print superfluous parens in case types
203Tim Chevalier <[email protected]>**20080329194629
204 
205 The External Core printer was parenthesizing the scrutinee type in case expressions. Since this type is required to be atomic, the parens aren't necessary.
206]
207[Don't import FastString in HsVersions.h
208Ian Lynagh <[email protected]>**20080329185043
209 Modules that need it import it themselves instead.
210]
211[DEBUG removal
212Ian Lynagh <[email protected]>**20080329171135]
213[DEBUG removal
214Ian Lynagh <[email protected]>**20080329171013]
215[DEBUG removal
216Ian Lynagh <[email protected]>**20080329170935]
217[DEBUG removal
218Ian Lynagh <[email protected]>**20080329170341]
219[DEBUG removal
220Ian Lynagh <[email protected]>**20080329170227]
221[DEBUG removal
222Ian Lynagh <[email protected]>**20080329165412]
223[Fix typo; spotted by Bdh in #ghc
224Ian Lynagh <[email protected]>**20080329165303]
225[DEBUG removal
226Ian Lynagh <[email protected]>**20080329164849]
227[DEBUG removal
228Ian Lynagh <[email protected]>**20080329164420]
229[Remove a DEBUG use
230Ian Lynagh <[email protected]>**20080329164209]
231[Remove a DEBUG
232Ian Lynagh <[email protected]>**20080329163936]
233[Remove more #ifdef DEBUGs
234Ian Lynagh <[email protected]>**20080329145716]
235[Remove an #ifdef DEBUG
236Ian Lynagh <[email protected]>**20080329145508]
237[Remove an #ifdef DEBUG
238Ian Lynagh <[email protected]>**20080329145244]
239[Remove an #ifdef DEBUG
240Ian Lynagh <[email protected]>**20080329144844]
241[Remove a #ifdef DEBUG
242Ian Lynagh <[email protected]>**20080329144658]
243[Remove an #ifdef DEBUG
244Ian Lynagh <[email protected]>**20080329144544]
245[Remove some redundant code
246Ian Lynagh <[email protected]>**20080329144226]
247[prelude/PrimOp is now mostly warning-free
248Ian Lynagh <[email protected]>**20080329143914
249 commutableOp seems to be unused, so we're no 100% there yet.
250]
251[Fix warnings from primops.txt.pp
252Ian Lynagh <[email protected]>**20080329142637]
253[Use _ rather than "other" in generated code
254Ian Lynagh <[email protected]>**20080329142508]
255[Fix some warnings
256Ian Lynagh <[email protected]>**20080329142219]
257[Remove some redundant imports
258Ian Lynagh <[email protected]>**20080329141809]
259[Remove an #ifdef DEBUG
260Ian Lynagh <[email protected]>**20080329141733]
261[Remove an #ifdef DEBUG
262Ian Lynagh <[email protected]>**20080329141629]
263[Remove some unnecessary imports
264Ian Lynagh <[email protected]>**20080329141145]
265[Remove an unnecessary #ifdef DEBUG
266Ian Lynagh <[email protected]>**20080329141047]
267[Another debugIsOn use
268Ian Lynagh <[email protected]>**20080329140126]
269[Convert some DEBUG uses to debugIsOn
270Ian Lynagh <[email protected]>**20080329135950]
271[Put debugIsOn in Util, rather than rely on it being CPPed in
272Ian Lynagh <[email protected]>**20080329135755]
273[External Core: print function types correctly, improve newtype pretty-printing
274Tim Chevalier <[email protected]>**20080328222630
275 
276 - In a previous patch I broke the printing of fully-applied arrow
277 types (e.g., "a -> b" was "(ghczmprim:GHCziPrim a b)") by z-encoding
278 package names and not updating the primitive module name as defined in
279 External Core accordingly. Fixed. (Mega sigh...)
280 
281 - Make newtype decls print slightly more readably.
282]
283[Print out rational literals correctly in External Core
284Tim Chevalier <[email protected]>**20080328211919
285 
286 The External Core printer was printing out rational literals of the
287 form:
288 2.0e-2
289 when the External Core grammar doesn't allow this. (This
290 bug has apparently been there since the beginning...)
291 
292 It's now printing rationals in the same form that (show (r::Rational))
293 does. This requires a parser change as well (soon to come.)
294]
295[Change syntax for qualified names in External Core
296Tim Chevalier <[email protected]>**20080327185436
297 
298 Two changes that make the ext-core code uglier but the parser easier:
299 
300 - Prefix qualified names with "^" so that we can more easily
301 distinguish a qualified name:
302    ^a:Foo.Bar.quux
303 from an unqualified name:
304    a
305 
306 - z-encode package names ("ghc-prim" was the culprit.)
307]
308[Make use of the SDoc type synonym
309Ian Lynagh <[email protected]>**20080326175306]
310[Fix warnings in rename/RnTypes
311Ian Lynagh <[email protected]>**20080326174657]
312[Fix warnings in basicTypes/IdInfo
313Ian Lynagh <[email protected]>**20080326170014]
314[Fix warnings in basicTypes/NameEnv
315Ian Lynagh <[email protected]>**20080326165139]
316[Fix warnings in basicTypes/NameSet
317Ian Lynagh <[email protected]>**20080326164837]
318[Fix warning in basicTypes/NewDemand
319Ian Lynagh <[email protected]>**20080326160017]
320[Fix warnings in basicTypes/VarEnv
321Ian Lynagh <[email protected]>**20080326155412]
322[Fix warnings in basicTypes/VarSet
323Ian Lynagh <[email protected]>**20080326155105]
324[main/BreakArray has no warnings
325Ian Lynagh <[email protected]>**20080326154747]
326[In validate settings, make -Werror easier to override
327Ian Lynagh <[email protected]>**20080326141030]
328[Remove a redundant type sig
329Ian Lynagh <[email protected]>**20080326004932]
330[Fix warnings in main/DriverPhases
331Ian Lynagh <[email protected]>**20080325235828]
332[Remove redundant type sig
333Ian Lynagh <[email protected]>**20080325235801]
334[Fix warnings in main/HscStats
335Ian Lynagh <[email protected]>**20080325234110]
336[Fix warnings in main/Constants
337Ian Lynagh <[email protected]>**20080325233034]
338[Fix warnings in main/InteractiveEval
339Ian Lynagh <[email protected]>**20080325230153]
340[Fix warnings in main/Packages
341Ian Lynagh <[email protected]>**20080325224444]
342[Fix warnings in main/PprTyThing
343Ian Lynagh <[email protected]>**20080325223104]
344[Fix warnings in main/StaticFlags
345Ian Lynagh <[email protected]>**20080325221632]
346[Change syntax for newtypes in External Core
347Tim Chevalier <[email protected]>**20080325170218
348 
349 The way that newtype declarations were printed in External Core files was
350 incomplete, since there was no declaration for the coercion introduced by a
351 newtype.
352 
353 For example, the Haskell source:
354 
355 newtype T a = MkT (a -> a)
356 
357 foo (MkT x) = x
358 
359 got printed out in External Core as (roughly):
360 
361   %newtype T a = a -> a;
362 
363   foo :: %forall t . T t -> t -> t =
364     %cast (\ @ t -> a1 @ t)
365     (%forall t . T t -> ZCCoT t);
366 
367 There is no declaration anywhere in the External Core program for :CoT, so
368 that's bad.
369 
370 I changed the newtype decl syntax so as to include the declaration for the
371 coercion axiom introduced by the newtype. Now, it looks like:
372 
373   %newtype T a ^ (ZCCoT :: ((T a) :=: (a -> a))) = a -> a;
374 
375 And an external typechecker could conceivably typecheck code that uses this.
376 
377 The major changes are to MkExternalCore and PprExternalCore (as well as
378 ExternalCore, to change the External Core AST.) I also corrected some typos in
379 comments in other files.
380 
381 Documentation and external tool changes to follow.
382 
383]
384[Fix warnings in the RTS
385Ian Lynagh <[email protected]>**20080325160314
386 For some reason this causes build failures for me in my 32-bit chroot,
387]
388[Another change for GHC.PrimopWrappers moving from base to ghc-prim
389Ian Lynagh <[email protected]>**20080324224006]
390[Update darcs-boring
391Ian Lynagh <[email protected]>**20080324212319]
392[Fix primMname in External Core printer
393Tim Chevalier <[email protected]>**20080324014311
394 
395  My earlier changes broke printing of function types in .hcr files.
396   In other words: the z-encoding must die.
397]
398[Fix primMname in External Core printer
399Tim Chevalier <[email protected]>**20080324005246
400 
401 My earlier changes broke printing of function types in .hcr files.
402 In other words: the z-encoding must die.
403]
404[Follow library changes
405Ian Lynagh <[email protected]>**20080323182557
406 Integer, Bool and Unit/Inl/Inr are now in new packages integer
407 and ghc-prim.
408]
409[CgTicky now doesn't know about the Integer data constructors
410Ian Lynagh <[email protected]>**20080320195836]
411[-DDEBUG build fix
412Ian Lynagh <[email protected]>**20080322140641]
413[Rename rebuild to remake, and define rebuild to "clean; build"
414Ian Lynagh <[email protected]>**20080320221915]
415[Handle hierarchical module names in External Core tools
416Tim Chevalier <[email protected]>**20080320014449
417 
418 I updated the parser to handle hierarchical module names (with package names)
419 the way GHC is currently printing them out in External Core.
420 
421 Beware kludgy use of z-encoding and gratutious copy-pasta from GHC.
422 
423 You can now use the stand-alone Core parser to parse a very simple
424 GHC-generated .hcr file (progress!) but not to typecheck or interpret it
425 (the typechecker/interpreter don't snarf in the right libraries yet, among
426 other things.) And, the parser is still incomplete in that it doesn't handle
427 programs with newtypes/GADTs/etc. whose syntax has changed since 2003. In
428 other words: probably don't try to use this yet.
429 
430]
431[Improve hierarchical module name handling in MkExternalCore
432Tim Chevalier <[email protected]>**20080319190429
433 
434 It's easier for the External Core parser if MkExternalCore prints
435 module names like:
436    base:GHCziBase
437 rather than like:
438    base:GHC.Base
439 (which it was doing before.)
440 
441 So now we z-encode the hierarchical module-name part of a module
442 name, but don't z-encode the ':'.
443 
444 I also removed some old comments that don't seem relevant anymore.
445]
446[Fixed remaining warning in coreSyn/MkExternalCore
447Tim Chevalier <[email protected]>**20080319182521
448 
449 There was a (suppressed) warning about an incomplete pattern match in make_alt. This was because the DEFAULT alt never has variable bindings. I thought it would be better to check that case and panic if it happens than to have an incomplete pattern. It's still not great, but at least now we don't have to suppress any warnings in this file.
450]
451[Revert an accidental change
452Ian Lynagh <[email protected]>**20080317200130]
453[Print some extra debugging info when doing --show-iface
454Ian Lynagh <[email protected]>**20080317185032]
455[Eliminate a global variable
456Ian Lynagh <[email protected]>**20080317180150
457 Very little parameter passing is needed without it, so there was no real
458 benefit to it.
459]
460[Follow changes in editline
461Ian Lynagh <[email protected]>**20080317103617]
462[Use editline instead of readline
463Ian Lynagh <[email protected]>**20080316060407]
464[Vectorise tuple constructorsn
465Roman Leshchinskiy <[email protected]>**20080317033436]
466[Added double divide and unzipP
467[email protected]**20080317025553]
468[Added 'div' to set of vectorising functions
469[email protected]**20080311125035]
470[If unregisterised, link with -optl-Wl,--relax on IA64
471Ian Lynagh <[email protected]>**20080316214104
472 This fixes part of trac #856
473]
474[When concatenating variables in Makefile, strip spaces in case one is empty
475Ian Lynagh <[email protected]>**20080315141751
476 Otherwise "$(A) $(B)" will not be equal to "" even if A and B are empty.
477 Trac #856.
478]
479[Fix a space leak in :trace (trac #2128)
480Ian Lynagh <[email protected]>**20080316211748
481 We were doing lots of cons'ing and tail'ing without forcing the tails,
482 so were building up lots of thunks.
483]
484[If we are failing due to a warning and -Werror, say so
485Ian Lynagh <[email protected]>**20080316195636
486 Fixes trac #1893, based on a patch from Daniel Franke.
487]
488[Remove leftover NoteTy/FTVNote bits
489Ian Lynagh <[email protected]>**20080315194220]
490[Remove uses of addFreeTyVars
491Ian Lynagh <[email protected]>**20080315155027
492 This optimisation actually make things a bit slower on average, as
493 measured by nofib. The example in #1136 in particular suffers from high
494 memory usage. Therefore we no longer do the optimisation.
495]
496[parsing tweak for :break
497Simon Marlow <[email protected]>**20080313182936]
498[Tweaks to stack squeezing
499Simon Marlow <[email protected]>**20080207122445
500 
501 1. We weren't squeezing two frames if one of them was a marked update
502    frame.  This is easy to fix.
503 
504 2. The heuristic to decide whether to squeeze was a little
505    conservative.  It's worth copying 3 words to save an update frame.
506 
507]
508[Some cleanup in TcSimplify.reduceContext
509Manuel M T Chakravarty <[email protected]>**20080313065220
510 - Makes this horrid function a bit better - and shorter!
511 - Also gets rid of another API function of TcTyFuns
512]
513[Properly normalise reduced dicts
514Manuel M T Chakravarty <[email protected]>**20080313051708
515 - Another chapter in the never-ending TcSimplify.reduceContext saga: after
516   context reduction of wanted dicts it is not sufficient to normalise them
517   wrt to the wanted equalities.  We also need to take top-level equalities
518   into account.  (In fact, we probably also have to normalise wrt to given
519   equalities, but I have left that open for the moment - but added a TODO
520   note.)
521 - This finally eliminates substEqInDictInsts from TcTyFuns interface and
522   suggest some further possible clean up (which will be in a separate patch).
523 
524 Thanks to Roman for the intricate example that uncovered this bug.
525]
526[Bump mAX_NDP_PROD to 5
527Roman Leshchinskiy <[email protected]>**20080313061411]
528[#2050: save the GHCi history in ~/.ghc/ghci_history
529Simon Marlow <simonmar@microsoft.com>**20080312215724
530 Modified version of Judah's patch
531]
532[Make sure we generate PA dictionaries for tuples up to mAX_NDP_PROD
533Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080312034905]
534[Bump mAX_NDP_PROD to 4
535Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080312030245]
536[First cut at reviving the External Core tools
537Tim Chevalier <chevalier@alum.wellesley.edu>**20080310025821
538 
539 I updated the External Core AST to be somewhat closer to reality (where reality is defined by the HEAD), and got all the code to compile under GHC 6.8.1. (That means it works, right?)
540 
541 Major changes:
542 
543 - Added a Makefile.
544 
545 - Core AST:
546     - Represented package names and qualified module names.
547     - Added type annotation on Case exps.
548     - Changed Coerce to Cast.
549     - Cleaned up representation of qualified/unqualified names.
550     - Fixed up wired-in module names (no more "PrelGHC", etc.)
551 
552 - Updated parser/interpreter/typechecker/prep for the new AST.
553 
554 - Typechecker:
555     - Used a Reader monad to pass around the global environment and top module name.
556     - Added an entry point to check a single expression.
557 
558 - Prep:
559     - Got rid of typeofExp; it's now defined in terms of the typechecker.
560 
561]
562[Remove ndpFlatten
563Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080309225914
564 
565 This patch removes the ndpFlatten directory and the -fflatten static flag.
566 This code has never worked and has now been superceded by vectorisation.
567]
568[documentation fix: change flag -frules-off to -fno-rewrite-rules
569iavor.diatchki@gmail.com**20080309191911]
570[Don't expose the unfolding of dictionary selectors without -O
571simonpj@microsoft.com**20080306135026
572 
573 When compiling without -O we were getting code like this
574 
575        f x = case GHC.Base.$f20 of
576                  :DEq eq neq -> eq x x
577 
578 But because of the -O the $f20 dictionary is not available, so exposing
579 the dictionary selector was useless.  Yet it makes the code bigger!
580 Better to get
581        f x = GHC.Base.== GHC.Bsae.$f20 x x
582 
583 This patch suppresses the implicit unfolding for dictionary selectors
584 when compiling without -O.  We could do the same for other implicit
585 Ids, but this will do for now.
586 
587 There should be no effect when compiling with -O.  Programs should
588 be smaller without -O and may run a tiny bit slower.
589 
590 
591]
592[Fix Trac #783: improve short-cutting literals in the type checker
593simonpj@microsoft.com**20080306134734
594 
595 The Inst.shortCutIntLit mechanism in the type checker was missing cases
596 where a floating-point literal was given without an explicit decimal point.
597 
598 As a result, programs with lots of floating-point literals (without decimals)
599 ended up with massive Static Reference Tables.  This is not cool.  See
600 comments with Trac #783 for details.
601 
602 
603]
604[Fix Trac #2138: print the 'stupid theta' of a data type
605simonpj@microsoft.com**20080306134651]
606[Fix vectorisation monad
607Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080307050859]
608[Improve SpecConstr for local bindings: seed specialisation from the calls
609simonpj@microsoft.com**20080306120004
610 
611 This patch makes a significant improvement to SpecConstr, based on
612 Roman's experience with using it for stream fusion.  The main change is
613 this:
614 
615   * For local (not-top-level) declarations, seed the specialisation
616     loop from the calls in the body of the 'let'.
617 
618 See Note [Local recursive groups] for discussion and example.  Top-level
619 declarations are treated just as before.
620 
621 Other changes in this patch:
622 
623   * New flag -fspec-constr-count=N sets the maximum number of specialisations
624     for any single function to N.  -fno-spec-constr-count removes the limit.
625 
626   * Refactoring in specLoop and friends; new algebraic data types
627     OneSpec and SpecInfo instead of the tuples that were there before
628 
629   * Be less keen to specialise on variables that are simply in scope.
630     Example
631       f p q = letrec g a y = ...g....  in g q p
632     We probably do not want to specialise 'g' for calls with exactly
633     the arguments 'q' and 'p', since we know nothing about them.
634 
635 
636]
637[Refactor OccAnal; and improve dead-code elimination
638simonpj@microsoft.com**20080305155708
639 
640 The occurrence analyer is now really rather subtle when dealing
641 with recursive groups; see Note [Loop breaking and RULES] especially.
642 
643 This patch refactors this code a bit, notably
644   * Introduces a new data type Details instead of a tuple
645 
646   * More clearly breaks up a recursive group into its SCCs
647        before processing it in a separate function occAnalRec
648 
649   * As a result, does better dead-code elimination, becuause it's
650        done per SCC rather than for the whole Rec
651 
652 
653   
654 
655]
656[Copy the right ghc-pkg.bin into bindists
657Ian Lynagh <igloo@earth.li>**20080305224020]
658[Add a missing endif to the bindist Makefile
659Ian Lynagh <igloo@earth.li>**20080305221136]
660[Fix bashisms; patch from Bernie Pope
661Ian Lynagh <igloo@earth.li>**20080305134556]
662[Improve no-type-signature warning
663Ian Lynagh <igloo@earth.li>**20080305011242
664 Instead of
665    Warning: Definition but no type signature for `.+.'
666             Inferred type: .+. :: forall a. a
667 we now say
668     Warning: Definition but no type signature for `.+.'
669              Inferred type: (.+.) :: forall a. a
670]
671[Fix typo
672Ian Lynagh <igloo@earth.li>**20080302151339]
673[In bindists, look in the right place to see if we have provided docs
674Ian Lynagh <igloo@earth.li>**20080302140408
675 Fixes trac #1971: unjustified warning about documentation
676]
677[Remove GADT refinements, part 3
678Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080229035740]
679[MacOS installer: Uninstaller must be able to deal with ATiger receipts
680Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228050707]
681[Add and use seqBitmap when constructing SRTs
682Ian Lynagh <igloo@earth.li>**20080227144505
683 This roughly halves memory usage when compiling
684     module Foo where
685 
686     foo :: Double -> Int
687     foo x | x == 1 = 1
688     ...
689     foo x | x == 500 = 500
690 without optimisation.
691]
692[Whitespace
693Ian Lynagh <igloo@earth.li>**20080220191230]
694[Remove GADT refinements, part 2
695Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228055326]
696[Fix Trac #2130: improve derived Ord for primmitive types
697simonpj@microsoft.com**20080228121106
698 
699 This patch does two things:
700 
701 * (Minor): in TcGenDeriv.careful_compare_Case, test for less-than before
702   equality. This should reduce the number of dynamic tests, and also gives
703   more scope for optimisation, since less-than tells us more than equality.
704 
705 * (More important): add special-case derived code for data types that are
706   simple wrappers of primitive types. See
707        Note [Comparision of primitive types]
708   This fixes Trac 2130.
709 
710 However see also Trac #2132, which is not addressed here.
711 
712]
713[Comments only
714simonpj@microsoft.com**20080228111301]
715[add a note about SMP execution not being supported with profiling
716Simon Marlow <simonmar@microsoft.com>**20080228112209]
717[Enable -prof -threaded (#886)
718Simon Marlow <simonmar@microsoft.com>**20080228111631
719 It turns out that -prof -threaded works (modulo some small changes),
720 because all the data structures used in profiling are only accessed by
721 one thread at a time, at long as we don't use +RTS -N2 or higher.  So
722 this patch enables the use of -prof -threaded, but an error is given
723 if you ask for more than one CPU with +RTS -N.
724]
725[Wibble to error message (stmt of do block or comprehension)
726simonpj@microsoft.com**20080228083104]
727[Make explicit lists more fusable
728Max Bolingbroke <batterseapower@hotmail.com>**20080228083050]
729[Add comments explaining flags
730simonpj@microsoft.com**20080228082935]
731[Remove GADT refinements, part 1
732Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228045351
733 - A while ago, I changed the type checker to use equality constraints together
734   with implication constraints to track local type refinement due to GADT
735   pattern matching.  This patch is the first of a number of surgical strikes
736   to remove the resulting dead code of the previous GADT refinement machinery.
737 
738   Hurray to code simplification!
739]
740[Eliminate SkolemOccurs skolems only after checkLoop reached a fixed point
741Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228001957
742 - See test case indexed-types/should_fail/SkolemOccursLoop, which sends the
743   type checker into an endless loop without this fix
744]
745[Fix Trac #2126: re-order tests (easy)
746simonpj@microsoft.com**20080227163202]
747[Fix Trac #2111: improve error handling for 'rec' in do-notation
748simonpj@microsoft.com**20080226175635
749 
750 We were not dealing correctly with all the combinations of
751        do notation
752        mdo notation
753        arrow notation
754 in combination with 'rec' Stmts.
755 
756 I think this patch sorts it out.
757 
758]
759[Remove gaw comment
760simonpj@microsoft.com**20080226175305]
761[Fix Trac #1899; missing equality check in typechecker's constraint simplifier
762simonpj@microsoft.com**20080226174743
763 
764 This patch fixes a missing equality check (uifying type variable b=b) in
765 the new constraint simplifier in TcTyFuns.  As it stands, we were making
766 'b' point to itself, which subsequently led to an infinite loop when
767 zonking.  Test is T1899.hs
768 
769 
770 
771]
772[FIX #2122: file locking bug
773Simon Marlow <simonmar@microsoft.com>**20080226104650
774 Second and subsequent readers weren't being inserted into the
775 fd->lock hash table, which meant that the file wasn't correctly
776 unlocked when the Handles were closed.
777]
778[documentation improvements from Frederik Eaton
779Simon Marlow <simonmar@microsoft.com>**20080226102612]
780[markup fix
781Simon Marlow <simonmar@microsoft.com>**20080226102558]
782[Mac installer: cross-compile for 10.4
783Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080225093734]
784[Make UniqFM non-strict again while we work out what we're doing.
785Ian Lynagh <igloo@earth.li>**20080225171305
786 This "fixes" the very-slow problem we have when compiling dictionaries.
787]
788[Fix Trac #2082
789simonpj@microsoft.com**20080219173410]
790[Fix Trac #2114: error reporting for 'forall' without appropriate flags
791simonpj@microsoft.com**20080222182646]
792[Improve error messages from type-checking data constructors
793simonpj@microsoft.com**20080222182514
794 
795 This addresses Trac #2112
796 
797]
798[Add type sigs and minor refactoring
799simonpj@microsoft.com**20080222182305]
800[FIX #2073: Don't add empty lines to GHCI's history
801Ian Lynagh <igloo@earth.li>**20080224143256]
802[FIX #1977: Check to see if $(bindir) is in the path
803Ian Lynagh <igloo@earth.li>**20080224134334
804 Before telling the user to add it, when installing a bindist, check to
805 see if $(bindir) is already in the path.
806]
807[Fix warnings in Simplify
808Ian Lynagh <igloo@earth.li>**20080222150318]
809[Whitespace
810Ian Lynagh <igloo@earth.li>**20080222140755]
811[Add a comment
812Ian Lynagh <igloo@earth.li>**20080220205844]
813[Fix most of the warnings in StgLint
814Ian Lynagh <igloo@earth.li>**20080220171858]
815[Whitespace
816Ian Lynagh <igloo@earth.li>**20080220171140]
817[CprAnalyse is warning-free
818Ian Lynagh <igloo@earth.li>**20080220170843]
819[Whitespace
820Ian Lynagh <igloo@earth.li>**20080220170650]
821[Fix #1984: missing context switches
822Simon Marlow <simonmar@microsoft.com>**20080219102212]
823[fix unregisterised stage 2 build
824Simon Marlow <simonmar@microsoft.com>**20080219093407]
825[Mac OS X deployment target: piping opts through Makefiles
826Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080221224449]
827[Rewrite fixTvSubstEnv so it iteratively applies its substition
828Ian Lynagh <igloo@earth.li>**20080220153752
829 This fixes a stack overflow when using strict UniqFMs. It might be
830 possible to rewrite it more efficiently, or to avoid needing it in the
831 first place.
832]
833[Typo
834Ian Lynagh <igloo@earth.li>**20080219204117]
835[Make some more modules use LazyUniqFM instead of UniqFM
836Ian Lynagh <igloo@earth.li>*-20080207015714
837 If these modules use UniqFM then we get a stack overflow when compiling
838 modules that use fundeps. I haven't tracked down the actual cause.
839]
840[Add configure option --with-macos-deployment-target
841Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080219031755]
842[Fix warning in SCCfinal
843Ian Lynagh <igloo@earth.li>**20080219020429]
844[Whitespace only
845Ian Lynagh <igloo@earth.li>**20080219015259]
846[Fix warnings in UniqSupply
847Ian Lynagh <igloo@earth.li>**20080219013233]
848[Whitespace only
849Ian Lynagh <igloo@earth.li>**20080219012417]
850[Fix non-missing-signature warnings in MkId
851Ian Lynagh <igloo@earth.li>**20080219010917]
852[Whitespace only
853Ian Lynagh <igloo@earth.li>**20080219005042]
854[Whitespace only
855Ian Lynagh <igloo@earth.li>**20080218234559]
856[Make literals in the syntax tree strict
857Ian Lynagh <igloo@earth.li>**20080218183424]
858[Make the parser a bit stricter
859Ian Lynagh <igloo@earth.li>**20080218175514]
860[seq what we actually want to seq, not the seq'ing function
861Ian Lynagh <igloo@earth.li>**20080213131857]
862[attempt to fix #2098 (PPC pepple please test & fix)
863Simon Marlow <simonmar@microsoft.com>**20080218115748]
864[FIX #2023: substitute for $topdir in haddockInterfaces and haddockHTMLs
865Simon Marlow <simonmar@microsoft.com>**20080209143648]
866[All installed Haskell prgms have an inplace and an installed version
867Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080218061809
868 - GHC installs a range of compiled Haskell programs in addition to the actual
869   compiler.  To ensure that they all run on the platform targeted by the build
870   (which may have different libraries installed than the build host), we need
871   to make sure that all compiled Haskell code going into an install is build
872   with the stage 1 compiler, not the bootstrap compiler.  Getting this right
873   is especially important on the Mac to enable builds that work on Mac OS X
874   versions that are older than the one performing the build.
875 - For all installed utils implemented in Haskell (i.e., ghc-pkg, hasktags,
876   hsc2hs, runghc, hpc, and pwd) we compile two versions, an inplace version
877   and a version for installation.  The former is build by the bootstrap
878   compiler during the stage 1 build and the latter is build by the stage 1
879   compiler during the stage 2 build.
880 - This is really very much as the setup for ghc itself, only that we don't use
881   separate stage1/ and stage2/ build directories.  Instead, we clean before
882   each build.  CAVEAT: This only works properly if invoked from the
883   toplevel Makefile.
884 - Instead of UseStage1=YES (as used by the previous binary-dist-specific
885   recompilation), we now use the same $(stage) variables as used for the
886   compiler proper - to increase uniformity and to avoid extra conditionals for
887   the install target.
888]
889[Fix warnings in Pretty
890Ian Lynagh <igloo@earth.li>**20080218214151]
891[Fix warnings in FiniteMap
892Ian Lynagh <igloo@earth.li>**20080218200408]
893[Fix warnings in Binary
894Ian Lynagh <igloo@earth.li>**20080218193645]
895[Fix warnings in StringBuffer
896Ian Lynagh <igloo@earth.li>**20080218191846]
897[Fix warnings in IOEnv
898Ian Lynagh <igloo@earth.li>**20080218190849]
899[Fix warnings in FastString, and check for empty case in head/tail
900Ian Lynagh <igloo@earth.li>**20080218144707]
901[Whitespace only
902Ian Lynagh <igloo@earth.li>**20080218112232]
903[Whitespace only
904Ian Lynagh <igloo@earth.li>**20080218112101]
905[Whitespace only
906Ian Lynagh <igloo@earth.li>**20080218111941]
907[Whitespace only
908Ian Lynagh <igloo@earth.li>**20080218110241]
909[Whitespace only
910Ian Lynagh <igloo@earth.li>**20080218105909]
911[Whitespace only
912Ian Lynagh <igloo@earth.li>**20080218105343]
913[Tweak whitespace
914Ian Lynagh <igloo@earth.li>**20080217175133]
915[Fix typo
916Ian Lynagh <igloo@earth.li>**20080217175021]
917[Print better error message for reading External Core
918Tim Chevalier <chevalier@alum.wellesley.edu>**20080217223844
919 
920 GHC panicked with a "Prelude.undefined" error message if you tried to
921 compile a .hcr file. Since support for reading ExternalCore simply does
922 not exist, I added an error message to say that.
923 
924 Please merge to 6.8. Thanks.
925 
926]
927[Documentation only: update External Core section of user guide
928Tim Chevalier <chevalier@alum.wellesley.edu>**20080217213206
929 
930 I updated the External Core section of the user guide, mostly to reflect
931 that the input path is broken and there are no firm plans to fix it.
932]
933[Generate foo(void) rather than foo() in FFI stub files
934Ian Lynagh <igloo@earth.li>**20080216141031
935 -Wstrict-prototypes warns about the latter.
936 Patch from pcc in trac #2100.
937]
938[Make hasktags -Wall clean
939Ian Lynagh <igloo@earth.li>**20080215160309]
940[Whitespace only
941Ian Lynagh <igloo@earth.li>**20080215155122]
942[Fix building hasktags
943Ian Lynagh <igloo@earth.li>**20080215154415]
944[Revert an accidental comment change
945Ian Lynagh <igloo@earth.li>**20080215153558]
946[find module names, fix for get constructor names, find class names as well, sort ctag files
947marco-oweber@gmx.de**20080212232157]
948[added TODO item and link to alternatives on wiki
949marco-oweber@gmx.de**20080212231853]
950[Make more arch-specific #if's exclusive with #else #error cases
951Duncan Coutts <duncan@haskell.org>**20080207170020
952 So when the next person compiles the Sparc NCG it should fail more
953 obviously at compile time rather than panicing at runtime.
954 Plus one obvious fix for LocalReg gaining an extra param
955 Missing bits of Sparc NCG:
956   * genSwitch for generating jump tables. This is the most tricky one.
957   * ALLOCATABLE_REGS_INTEGER and ALLOCATABLE_REGS_DOUBLE just requires
958     finding and verifying the values. The nearby comment describes how.
959   * isRegRegMove and mkRegRegMoveInstr. Sparc uses Or for int move, check
960     what this is supposed to do for single and double float types.
961   * regDotColor. Probably just copy the ppc impl.
962]
963[Document code a bit better
964Ian Lynagh <igloo@earth.li>**20080213161106]
965[Add a necessary [] error case
966Ian Lynagh <igloo@earth.li>**20080213154232]
967[\e -> f e   ===>    f
968Ian Lynagh <igloo@earth.li>**20080213153835]
969[Fixed warnings in parser/Lexer.x
970Twan van Laarhoven <twanvl@gmail.com>**20080204021131
971 
972 The -w flag can not be removed, because alex also generates code with lots of warnings.
973]
974[Monadification and Fixed warnings in parser/RdrHsSyn, except for incomplete pattern matches
975Twan van Laarhoven <twanvl@gmail.com>**20080204015053]
976[Fixed warnings in vectorise/VectMonad
977Twan van Laarhoven <twanvl@gmail.com>**20080203223932]
978[Fix typo in message
979Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080212052219]
980[Remove old code to get TMPDIR, use System.Directory.getTemporaryDirectory
981Simon Marlow <simonmar@microsoft.com>**20080207143915]
982[Mac installer: Added XCODE_EXTRA_CONFIGURE_ARGS
983Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211115201]
984[Mac installer: make Uninstaller a bit more robust
985Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211091119]
986[Mac installer: add comprehensive licencing information
987Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211061450]
988[Force -s on ar in xcode builds
989Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211022329]
990[Fix warning (FIX validate)
991Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211040211]
992[Symbolic tags for simplifier phases
993Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211032350
994 
995 Every simplifier phase can have an arbitrary number of tags and multiple
996 phases can share the same tags. The tags can be used as arguments to
997 -ddump-simpl-phases to specify which phases are to be dumped.
998 For instance, -ddump-simpl-phases=main will dump the output of phases 2, 1 and
999 0 of the initial simplifier run (they all share the "main" tag) while
1000 -ddump-simpl-phases=main:0 will dump only the output of phase 0 of that run.
1001 
1002 At the moment, the supported tags are:
1003 
1004   main                 The main, staged simplifier run (before strictness)
1005   post-worker-wrapper  After the w/w split
1006   post-liberate-case   After LiberateCase
1007   final                Final clean-up run
1008 
1009 The names are somewhat arbitrary and will change in the future.
1010]
1011[Allow -ddump-simpl-phases to specify which phases to dump
1012Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211020630
1013 
1014 We can now say -ddump-simpl-phases=1,2 to dump only these two phases and
1015 nothing else.
1016]
1017[Fixed warnings in parser/ParserCoreUtils
1018Twan van Laarhoven <twanvl@gmail.com>**20080204022226]
1019[Fixed warnings in hsSyn/Convert, except for incomplete pattern matches
1020Twan van Laarhoven <twanvl@gmail.com>**20080204000510]
1021[Fixed warnings in types/Unify
1022Twan van Laarhoven <twanvl@gmail.com>**20080203224228]
1023[Fixed warnings in ndpFlatten/FlattenInfo
1024Twan van Laarhoven <twanvl@gmail.com>**20080203224159]
1025[Fixed warnings in vectorise/VectBuiltIn
1026Twan van Laarhoven <twanvl@gmail.com>**20080203224043]
1027[Fixed warnings in vectorise/VectCore
1028Twan van Laarhoven <twanvl@gmail.com>**20080203224003]
1029[Fixed warnings in deSugar/DsExpr, except for incomplete pattern matches
1030Twan van Laarhoven <twanvl@gmail.com>**20080203214848]
1031[Fixed warnings in deSugar/DsGRHSs, except for incomplete pattern matches
1032Twan van Laarhoven <twanvl@gmail.com>**20080203214602]
1033[Fixed warnings in deSugar/DsListComp, except for incomplete pattern matches
1034Twan van Laarhoven <twanvl@gmail.com>**20080203211253]
1035[Fixed warnings in deSugar/Check, except for incomplete pattern matches
1036Twan van Laarhoven <twanvl@gmail.com>**20080203210814]
1037[Fixed warnings in deSugar/Match, except for incomplete pattern matches
1038Twan van Laarhoven <twanvl@gmail.com>**20080203210533]
1039[Fixed warnings in deSugar/MatchCon, except for incomplete pattern matches
1040Twan van Laarhoven <twanvl@gmail.com>**20080203210402]
1041[Fixed warnings in deSugar/DsMonad
1042Twan van Laarhoven <twanvl@gmail.com>**20080203210339]
1043[Wibble the Makefile: DQ, \" and '"'
1044Ian Lynagh <igloo@earth.li>**20080210171104]
1045[Don't use -w when compiling Config.hs
1046Ian Lynagh <igloo@earth.li>**20080210171050]
1047[Add typesigs to Config.hs
1048Ian Lynagh <igloo@earth.li>**20080210170925]
1049[Allow skipping "make clean" or only re-running the testsuite in validate
1050Ian Lynagh <igloo@earth.li>**20080210162842]
1051[Mac installer: added support for full docs
1052Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080209110727]
1053[Fixed permissions and other cleanup in Mac installer package
1054Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080207030528]
1055[Adjust error message (Trac #2079)
1056simonpj@microsoft.com**20080207171622]
1057[Redo inlining patch, plus some tidying up
1058simonpj@microsoft.com**20080207155102
1059 
1060 This adds back in the patch
1061   * UNDO: Be a little keener to inline
1062 
1063 It originally broke the compiler because it tickled a Cmm optimisation bug,
1064 now fixed. 
1065 
1066 In revisiting this I have also make inlining a bit cleverer, in response to
1067 more examples from Roman. In particular
1068 
1069   * CoreUnfold.CallCtxt is a data type that tells something about
1070     the context of a call.  The new feature is that if the context is
1071     the argument position of a function call, we record both
1072        - whether the function (or some higher up function) has rules
1073        - what the argument discount in that position is
1074     Either of these make functions keener to inline, even if it's
1075     in a lazy position
1076 
1077   * There was conseqential tidying up on the data type of CallCont.
1078     In particular I got rid of the now-unused LetRhsFlag
1079 
1080 
1081 
1082]
1083[Comments, and a type signature
1084simonpj@microsoft.com**20080125174203]
1085[FIX #2080: an optimisation to remove a widening was wrong
1086Simon Marlow <simonmar@microsoft.com>**20080208124219]
1087[Remove some of the old compat stuff now that we assume GHC 6.4
1088Simon Marlow <simonmar@microsoft.com>**20080208124132]
1089[Allow runghc to take input from stdin, just like Ruby & Python
1090Simon Marlow <simonmar@microsoft.com>**20080207145830]
1091[remove a bogus assertion
1092Simon Marlow <simonmar@microsoft.com>**20080207143805]
1093[Convert more UniqFM's back to LazyUniqFM's
1094Ian Lynagh <igloo@earth.li>**20080207144736
1095 These fix these failures:
1096    break008(ghci)
1097    break009(ghci)
1098    break026(ghci)
1099    ghci.prog009(ghci)
1100    ghci025(ghci)
1101    print007(ghci)
1102    prog001(ghci)
1103    prog002(ghci)
1104    prog003(ghci)
1105 at least some of which have this symptom:
1106     Exception: expectJust prune
1107]
1108[Be a bit more consistent about what's a set and what's a map
1109Ian Lynagh <igloo@earth.li>**20080205211909]
1110[Make some more modules use LazyUniqFM instead of UniqFM
1111Ian Lynagh <igloo@earth.li>**20080207015714
1112 If these modules use UniqFM then we get a stack overflow when compiling
1113 modules that use fundeps. I haven't tracked down the actual cause.
1114]
1115[Remove unused import
1116Ian Lynagh <igloo@earth.li>**20080207002544]
1117[Make UniqFM strict in its elements
1118Ian Lynagh <igloo@earth.li>**20080206141620]
1119[Use uniqSetToList rather than eltsUFM
1120Ian Lynagh <igloo@earth.li>**20080206000043]
1121[Use isEmptyUniqSet rather than isNullUFM
1122Ian Lynagh <igloo@earth.li>**20080205205336]
1123[Added Uninstaller
1124Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080206073054]
1125[FIX BUILD on x86_64
1126Simon Marlow <simonmar@microsoft.com>**20080206113936]
1127[matchesPkg: match against the pkg Id (foo-1.0) not just the package name (foo)
1128Simon Marlow <simonmar@microsoft.com>**20080205090429
1129 Fixes the ghcpkg01 test.
1130]
1131[Teach cheapEqExpr about casts
1132Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080206035007
1133 
1134 Previously, cheapEqExpr would always return False if it encountered a cast.
1135 This was bad for two reasons. Firstly, CSE (which uses cheapEqExpr to compare
1136 expressions) never eliminated expressions which contained casts and secondly,
1137 it was inconsistent with exprIsBig. This patch fixes this.
1138]
1139[Inject implicit bindings before the simplifier (Trac #2070)
1140simonpj@microsoft.com**20080205165507
1141 
1142 With constructor unpacking, it's possible for constructors and record
1143 selectors to have non-trivial code, which should be optimised before
1144 being fed to the code generator.  Example:
1145 
1146   data Foo = Foo { get :: {-# UNPACK #-} !Int }
1147 
1148 Then we do not want to get this:
1149   T2070.get =
1150     \ (tpl_B1 :: T2070.Foo) ->
1151     case tpl_B1 of tpl1_B2 { T2070.Foo rb_B4 ->
1152         let {
1153           ipv_B3 [Just S] :: GHC.Base.Int
1154           [Str: DmdType m]
1155           ipv_B3 = GHC.Base.I# rb_B4
1156         } in  ipv_B3 }
1157 
1158 If this goes through to codegen, we'll generate bad code.  Admittedly,
1159 this only matters when the selector is used in a curried way (e.g
1160 map get xs), but nevertheless it's silly.
1161 
1162 This patch injects the implicit bindings in SimplCore, before the
1163 simplifier runs.  That slows the simplifier a little, because it has
1164 to look at some extra bindings; but it's probably a slight effect.
1165 If it turns out to matter I suppose we can always inject them later,
1166 e.g. just before the final simplification.
1167 
1168 An unexpected (to me) consequence is that we get some specialisation rules
1169 for class-method selectors.  E.g. we get a rule
1170        RULE  (==) Int dInt = eqInt
1171 There's no harm in this, but not much benefit either, because the
1172 same result will happen when we inline (==) and dInt, but it's perhaps
1173 more direct.
1174 
1175 
1176]
1177[Make do-notation a bit more flexible (Trac #1537)
1178simonpj@microsoft.com**20080205164816
1179 
1180 This is a second attempt to fix #1537: to make the static typechecking
1181 of do-notation behave just like the desugared version of the same thing.
1182 This should allow parameterised monads to work properly (see Oleg's comment
1183 in the above ticket).
1184 
1185 We can probably merge to 6.8.3 if it goes smoothly.
1186 
1187 Incidentally, the resulting setup suffers from greater type ambiguity
1188 if (>>=) has a very general type.  So test rebindable6 no longer works
1189 (at least not without more type signatures), and rebindable5 requires
1190 extra functional dependencies.  But they are weird tests.
1191 
1192]
1193[White space only
1194simonpj@microsoft.com**20080205163702]
1195[FIX #2047: Windows (and older Unixes): align info tables to 4 bytes, not 2
1196Simon Marlow <simonmar@microsoft.com>**20080205101425
1197 Perhaps in the past '.align 2' meant align to 4 bytes, but nowadays it
1198 means align to 2 bytes.  The compacting collector requires info tables
1199 to be aligned to 4 bytes, because it stores tag bits in the low 2
1200 bits.
1201 
1202 This only affects -fvia-C - the native code generator was already
1203 emitting the correct alignment.  The incorrect alignment might well
1204 have been adversely affecting performance with -fvia-C on Windows.
1205]
1206[Most of installer for framework on system volume
1207Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205073738]
1208[Split into two types of Mac installer specs
1209Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052504]
1210[Lambda logo for packages
1211Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052017
1212 - This image is in the public domain, cf
1213   http://en.wikipedia.org/wiki/Image:Greek_lc_lamda_thin.svg
1214]
1215[xcode build target for fixed /Library/Frameworks inst
1216Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205030047
1217 - Also moving all MacOS-specific Makefile components into
1218   distrib/MacOS/Makefile
1219]
1220[First stab at an installer package for the Mac
1221Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080202134853
1222 - GHC as a Mac framework
1223 - I tried to make a package where the user could choose whether to install
1224   in /Library/Frameworks or ~/Library/Frameworks (to allow installation for
1225   non-admins).  However, that doesn't work well without including the whole
1226   distribution twice as the decision as to whether the admin password needs
1227   to be entered is made at packaging time (not at install time).
1228]
1229[Support for using libffi to implement FFI calls in GHCi (#631)
1230Simon Marlow <simonmar@microsoft.com>**20080204161053
1231 This means that an unregisterised build on a platform not directly
1232 supported by GHC can now have full FFI support using libffi.
1233 
1234 Also in this commit:
1235 
1236  - use PrimRep rather than CgRep to describe FFI args in the byte
1237    code generator.  No functional changes, but PrimRep is more correct.
1238 
1239  - change TyCon.sizeofPrimRep to primRepSizeW, which is more useful
1240]
1241[Use the correct libffi type for pointers
1242Simon Marlow <simonmar@microsoft.com>**20080104131936]
1243[Fix DEBUG build
1244simonpj@microsoft.com**20080204160514]
1245[Make seqAlts actually seq everything
1246Ian Lynagh <igloo@earth.li>**20080203134321]
1247[Strictness tweaks
1248Ian Lynagh <igloo@earth.li>**20080203024836]
1249[Whitespace
1250Ian Lynagh <igloo@earth.li>**20080203003929]
1251[Whitespace only
1252Ian Lynagh <igloo@earth.li>**20080202213936]
1253[Tweak strictness
1254Ian Lynagh <igloo@earth.li>**20080202213542]
1255[Fix warnings in deSugar/DsBinds
1256Ian Lynagh <igloo@earth.li>**20080130144014]
1257[UNDO: Be a little keener to inline
1258Simon Marlow <simonmar@microsoft.com>**20080201144810
1259 
1260 This patch caused at least the following test failures:
1261    1744(normal)
1262    ghci028(ghci)
1263    unicode001(normal)
1264 and additionally made the stage3 build fail. 
1265 
1266 A little more validation please!
1267 
1268 I didn't find the exact cause of the failure yet, but it appears that
1269 the Lexer is miscompiled in some strange way.  If any of {Encoding,
1270 StringBuffer, or Lexer} are compiled without -O, the problem goes
1271 away.
1272]
1273[FIX BUILD with GHC 6.4.x
1274Simon Marlow <simonmar@microsoft.com>**20080201122753]
1275[FIX BUILD with ghc-6.4.x
1276Simon Marlow <simonmar@microsoft.com>**20080201114302]
1277[Some tweaks to the building from source section
1278Simon Marlow <simonmar@microsoft.com>**20080129091132]
1279[Warning clean up
1280Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080131024845]
1281[Move spiltDmdTy within module (no change in code)
1282simonpj@microsoft.com**20080129011438]
1283[Fix typo where I forgot the new substitution
1284simonpj@microsoft.com**20080128213856]
1285[Add missing (error) case in isIrrefutablePat
1286simonpj@microsoft.com**20080128213429]
1287[Add missing (error) case in pprConDecl
1288simonpj@microsoft.com**20080128213409]
1289[Fix warnings on non-Windows
1290Ian Lynagh <igloo@earth.li>**20080130114640]
1291[Fixed warnings in main/ErrUtils
1292Twan van Laarhoven <twanvl@gmail.com>**20080127015419]
1293[Fixed warnings in main/HeaderInfo, except for incomplete pattern matches
1294Twan van Laarhoven <twanvl@gmail.com>**20080127014118]
1295[Fixed warnings in main/DynFlags
1296Twan van Laarhoven <twanvl@gmail.com>**20080127012443]
1297[Fixed warnings in hsSyn/HsSyn
1298Twan van Laarhoven <twanvl@gmail.com>**20080127004626]
1299[Fixed warnings in hsSyn/HsUtils
1300Twan van Laarhoven <twanvl@gmail.com>**20080127004506]
1301[Fixed warnings in hsSyn/HsTypes
1302Twan van Laarhoven <twanvl@gmail.com>**20080127004419]
1303[Fixed warnings in hsSyn/HsDoc
1304Twan van Laarhoven <twanvl@gmail.com>**20080127004359]
1305[Fixed warnings in hsSyn/HsLit
1306Twan van Laarhoven <twanvl@gmail.com>**20080127004330]
1307[Fixed warnings in hsSyn/HsImpExp, except for incomplete pattern matches
1308Twan van Laarhoven <twanvl@gmail.com>**20080127004254]
1309[Fixed warnings in hsSyn/HsPat, except for incomplete pattern matches
1310Twan van Laarhoven <twanvl@gmail.com>**20080127004209]
1311[Fixed warnings in hsSyn/HsBinds, except for incomplete pattern matches
1312Twan van Laarhoven <twanvl@gmail.com>**20080127004119]
1313[Fixed warnings in hsSyn/HsDecls, except for incomplete pattern matches
1314Twan van Laarhoven <twanvl@gmail.com>**20080127004046]
1315[Fixed warnings in simplCore/CSE
1316Twan van Laarhoven <twanvl@gmail.com>**20080126233918]
1317[Fixed warnings in profiling/CostCentre, except for incomplete pattern matches
1318Twan van Laarhoven <twanvl@gmail.com>**20080126232841]
1319[Fixed warnings in types/InstEnv
1320Twan van Laarhoven <twanvl@gmail.com>**20080126231732]
1321[Fixed warnings in types/FamInstEnv
1322Twan van Laarhoven <twanvl@gmail.com>**20080126231426]
1323[Fixed warnings in simplStg/SRT, except for incomplete pattern matches
1324Twan van Laarhoven <twanvl@gmail.com>**20080126230900]
1325[Fixed warnings in simplStg/StgStats, except for incomplete pattern matches
1326Twan van Laarhoven <twanvl@gmail.com>**20080126230830]
1327[Fixed warnings in simplStg/SimplStg
1328Twan van Laarhoven <twanvl@gmail.com>**20080126230805]
1329[Fixed warnings in vectorise/VectUtils
1330Twan van Laarhoven <twanvl@gmail.com>**20080126223033]
1331[Fixed warnings in types/Generics
1332Twan van Laarhoven <twanvl@gmail.com>**20080126222817]
1333[Fixed warnings in stgSyn/StgSyn
1334Twan van Laarhoven <twanvl@gmail.com>**20080126221010]
1335[Fixed warnings in types/TyCon
1336Twan van Laarhoven <twanvl@gmail.com>**20080126215800]
1337[Fixed warnings in types/Type, except for incomplete pattern matches
1338Twan van Laarhoven <twanvl@gmail.com>**20080126214126]
1339[Fixed warnings in types/TypeRep
1340Twan van Laarhoven <twanvl@gmail.com>**20080126211722]
1341[Fixed warnings in types/FunDeps
1342Twan van Laarhoven <twanvl@gmail.com>**20080126203050]
1343[Fixed warnings in basicTypes/OccName
1344Twan van Laarhoven <twanvl@gmail.com>**20080126202737]
1345[Fixed warnings in basicTypes/RdrName
1346Twan van Laarhoven <twanvl@gmail.com>**20080126202104]
1347[Fixed warnings in utils/Encoding
1348Twan van Laarhoven <twanvl@gmail.com>**20080126201235]
1349[Fixed warnings in utils/Digraph
1350Twan van Laarhoven <twanvl@gmail.com>**20080126200754]
1351[Fixed warnings in basicTypes/Demand
1352Twan van Laarhoven <twanvl@gmail.com>**20080126195929]
1353[Fixed warnings in basicTypes/Unique
1354Twan van Laarhoven <twanvl@gmail.com>**20080126195459]
1355[Fixed warnings in coreSyn/ExternalCore
1356Twan van Laarhoven <twanvl@gmail.com>**20080126194759]
1357[Fixed warnings in simplCore/OccurAnal
1358Twan van Laarhoven <twanvl@gmail.com>**20080126194426]
1359[Fixed warnings in basicTypes/BasicTypes
1360Twan van Laarhoven <twanvl@gmail.com>**20080126194255]
1361[Fixed warnings in basicTypes/Literal, except for incomplete pattern matches
1362Twan van Laarhoven <twanvl@gmail.com>**20080126193209]
1363[Fixed warnings in basicTypes/Id
1364Twan van Laarhoven <twanvl@gmail.com>**20080126192817]
1365[Fixed warnings in basicTypes/Var
1366Twan van Laarhoven <twanvl@gmail.com>**20080126191939]
1367[Fixed warnings in basicTypes/Name
1368Twan van Laarhoven <twanvl@gmail.com>**20080126191501]
1369[Fixed warnings in types/Coercion, except for incomplete pattern matches
1370Twan van Laarhoven <twanvl@gmail.com>**20080126190735]
1371[Fixed warnings in coreSyn/MkExternalCore, except for incomplete pattern matches
1372Twan van Laarhoven <twanvl@gmail.com>**20080126012807]
1373[Fixed warnings in coreSyn/PprExternalCore
1374Twan van Laarhoven <twanvl@gmail.com>**20080125162418]
1375[Fixed warnings in coreSyn/CoreUtils, except for incomplete pattern matches
1376Twan van Laarhoven <twanvl@gmail.com>**20080125161800]
1377[Fixed warnings in coreSyn/CoreUnfold
1378Twan van Laarhoven <twanvl@gmail.com>**20080125161308]
1379[Fixed warnings in coreSyn/CorePrep
1380Twan van Laarhoven <twanvl@gmail.com>**20080125161051]
1381[Fixed warnings in coreSyn/CoreSubst
1382Twan van Laarhoven <twanvl@gmail.com>**20080125161002]
1383[Fixed warnings in coreSyn/CoreLint
1384Twan van Laarhoven <twanvl@gmail.com>**20080125160809]
1385[Fixed warnings in coreSyn/CoreFVs, except for incomplete pattern matches
1386Twan van Laarhoven <twanvl@gmail.com>**20080125160716]
1387[Fixed warnings in types/Class
1388Twan van Laarhoven <twanvl@gmail.com>**20080125160438]
1389[Fix warnings in coreSyn/CoreTidy
1390Twan van Laarhoven <twanvl@gmail.com>**20080118165559]
1391[Fix warnings in coreSyn/CoreSyn
1392Twan van Laarhoven <twanvl@gmail.com>**20080118165506]
1393[Strictness tweaks
1394Ian Lynagh <igloo@earth.li>**20080125174347]
1395[Parser tweak
1396Ian Lynagh <igloo@earth.li>**20080125145847]
1397[A couple more parser tweaks
1398Ian Lynagh <igloo@earth.li>**20080125143421]
1399[Make comb[234] strict
1400Ian Lynagh <igloo@earth.li>**20080124183149]
1401[Strictness tweaks
1402Ian Lynagh <igloo@earth.li>**20080124183142]
1403[Tell happy to be strict
1404Ian Lynagh <igloo@earth.li>**20080124165214]
1405[Make the Parser Monad's return strict
1406Ian Lynagh <igloo@earth.li>**20080124155827]
1407[Get a bit of sharing
1408Ian Lynagh <igloo@earth.li>**20080124152000]
1409[Make sL strict in /both/ arguments to L
1410Ian Lynagh <igloo@earth.li>**20080124151223]
1411[A touch more strictness in the parser
1412Ian Lynagh <igloo@earth.li>**20080124150137]
1413[Add a bit of strictness to the parser
1414Ian Lynagh <igloo@earth.li>**20080124145311]
1415[Use nilFS
1416Ian Lynagh <igloo@earth.li>**20080123211917]
1417[Whitespace only
1418Ian Lynagh <igloo@earth.li>**20080123174153]
1419[Fix #2062: foldr1 problem in hpc tool
1420andy@galois.com**20080126210607]
1421[Fix do-notation so that it works with -DDEBUG
1422simonpj@microsoft.com**20080125163101]
1423[Be a little keener to inline
1424simonpj@microsoft.com**20080125104616
1425 
1426 This is really a bug.  A saturated call in an "interesting" context
1427 should inline, but there was a strange "n_val_args > 0" condition, which
1428 was stopping it.  Reported by Roman.
1429 
1430 
1431]
1432[Fix the build
1433Ian Lynagh <igloo@earth.li>**20080124141800
1434 Work around various problems caused by some of the monadification patches
1435 not being applied.
1436]
1437[Replace ioToTcRn with liftIO
1438Twan van Laarhoven <twanvl@gmail.com>**20080117220553]
1439[Remove unused custom versions of monad combinators from IOEnv
1440Twan van Laarhoven <twanvl@gmail.com>**20080117215835]
1441[Remove unused custom versions of monad combinators from UniqSupply
1442Twan van Laarhoven <twanvl@gmail.com>**20080117215752]
1443[Replace remaining uses of ioToIOEnv by liftIO, remove ioToIOEnv
1444Twan van Laarhoven <twanvl@gmail.com>**20080117215233]
1445[Monadify iface/BuildTyCl: use return
1446Twan van Laarhoven <twanvl@gmail.com>**20080117215036]
1447[Monadify iface/TcIface: use do, return, applicative, standard monad functions
1448Twan van Laarhoven <twanvl@gmail.com>**20080117214938]
1449[Monadify iface/MkIface: use do, return and standard monad functions
1450Twan van Laarhoven <twanvl@gmail.com>**20080117214441]
1451[Monadify iface/LoadIface: use return and liftIO
1452Twan van Laarhoven <twanvl@gmail.com>**20080117214233]
1453[Monadify iface/IfaceEnv: use do, return and standard monad functions
1454Twan van Laarhoven <twanvl@gmail.com>**20080117214041]
1455[Monadify typecheck/TcRnMonad: use return, standard monad functions and liftIO
1456Twan van Laarhoven <twanvl@gmail.com>**20080117213850]
1457[Monadify typecheck/TcEnv: use do, return, applicative, standard monad functions
1458Twan van Laarhoven <twanvl@gmail.com>**20080117213636]
1459[Monadify typecheck/TcRnDriver: use return and standard monad functions
1460Twan van Laarhoven <twanvl@gmail.com>**20080117213352]
1461[Monadify typecheck/TcMatches: use return and standard monad functions
1462Twan van Laarhoven <twanvl@gmail.com>**20080117213307]
1463[Monadify typecheck/TcMType: use do, return, applicative, standard monad functions
1464Twan van Laarhoven <twanvl@gmail.com>**20080117213242]
1465[Monadify typecheck/TcInstDcls: use do, return and standard monad functions
1466Twan van Laarhoven <twanvl@gmail.com>**20080117213040]
1467[Monadify typecheck/TcHsType: use do, return and standard monad functions
1468Twan van Laarhoven <twanvl@gmail.com>**20080117212822]
1469[Monadify typecheck/TcSimplify: use do, return and standard monad functions
1470Twan van Laarhoven <twanvl@gmail.com>**20080117212200]
1471[Monadify typecheck/TcSplice: use do and return
1472Twan van Laarhoven <twanvl@gmail.com>**20080117211911]
1473[Monadify typecheck/TcTyClsDecls: use return and standard monad functions
1474Twan van Laarhoven <twanvl@gmail.com>**20080117211746]
1475[Monadify typecheck/TcDefaults: use return and standard monad functions
1476Twan van Laarhoven <twanvl@gmail.com>**20080117211558]
1477[Monadify typecheck/TcDeriv: use return
1478Twan van Laarhoven <twanvl@gmail.com>**20080117211507]
1479[Monadify typecheck/TcClassDcl: use do, return and standard monad functions
1480Twan van Laarhoven <twanvl@gmail.com>**20080117211439]
1481[Monadify typecheck/TcBinds: use do, return and standard monad functions
1482Twan van Laarhoven <twanvl@gmail.com>**20080117211035]
1483[Monadify typecheck/TcArrows: use do and return
1484Twan van Laarhoven <twanvl@gmail.com>**20080117210818]
1485[Monadify typecheck/Inst: use do, return and standard monad functions
1486Twan van Laarhoven <twanvl@gmail.com>**20080117210655]
1487[Monadify typecheck/TcUnify: use do, return and standard monad functions
1488Twan van Laarhoven <twanvl@gmail.com>**20080117210213
1489   there may be some accidental tab->space conversion
1490]
1491[Monadify typecheck/TcTyFuns: use standard monad functions
1492Twan van Laarhoven <twanvl@gmail.com>**20080117205505]
1493[Monadify typecheck/TcPat: use return and standard monad functions
1494Twan van Laarhoven <twanvl@gmail.com>**20080117205423]
1495[Monadify typecheck/TcRules: use do, return and standard monad functions
1496Twan van Laarhoven <twanvl@gmail.com>**20080117205307]
1497[Monadify typecheck/TcForeign: use do, return and standard monad functions
1498Twan van Laarhoven <twanvl@gmail.com>**20080117204934]
1499[Monadify typecheck/TcExpr: use do, return and standard monad functions
1500Twan van Laarhoven <twanvl@gmail.com>**20080117204603]
1501[Monadify specialise/Specialise: use do, return, standard monad functions and MonadUnique
1502Twan van Laarhoven <twanvl@gmail.com>**20080117204330]
1503[Monadify specialise/SpecConstr: use do, return and standard monad functions
1504Twan van Laarhoven <twanvl@gmail.com>**20080117203842]
1505[Monadify stgSyn/StgLint
1506Twan van Laarhoven <twanvl@gmail.com>**20080117203042
1507  - made LintM a newtype instead of a type synonym
1508  - use do, return and standard monad functions
1509  - use MaybeT where `thenMaybeL` was used
1510  - removed custom versions of monad functions
1511 
1512]
1513[Monadify stgSyn/CoreToStg
1514Twan van Laarhoven <twanvl@gmail.com>**20080117202619
1515  - made LneM a newtype instead of a type synonym
1516  - use do, return and standard monad functions
1517  - removed custom versions of monad functions
1518]
1519[Remove generic monad function from State, it was moved to MonadUtils
1520Twan van Laarhoven <twanvl@gmail.com>**20080117202144]
1521[Added MaybeT monad transformer to utils/Maybes
1522Twan van Laarhoven <twanvl@gmail.com>**20080117202051]
1523[Removed unused Maybe functions, use the standard Maybe monad instead
1524Twan van Laarhoven <twanvl@gmail.com>**20080117201953]
1525[MonadIO instance for IOEnv
1526Twan van Laarhoven <twanvl@gmail.com>**20080117201812]
1527[Monadify simplCore/SimplMonad: custom monad functions are no longer needed
1528Twan van Laarhoven <twanvl@gmail.com>**20080117200354]
1529[Monadify simplCore/SimplMonad: use MonadUnique instance instead of custom functions
1530Twan van Laarhoven <twanvl@gmail.com>**20080117200228]
1531[Monadify simplCore/SetLevels: use do, return, standard monad functions and MonadUnique
1532Twan van Laarhoven <twanvl@gmail.com>**20080117195958]
1533[Monadify simplCore/SimplUtils: use do, return, standard monad functions and MonadUnique
1534Twan van Laarhoven <twanvl@gmail.com>**20080117195625]
1535[Monadify simplCore/Simplify: use do and return
1536Twan van Laarhoven <twanvl@gmail.com>**20080117195408]
1537[Monadify simplCore/SimplEnv: use standard monad functions
1538Twan van Laarhoven <twanvl@gmail.com>**20080117195255]
1539[Monadify simplCore/SimplCore: use do, return and standard monad functions
1540Twan van Laarhoven <twanvl@gmail.com>**20080117195149]
1541[Monadify profiling/SCCfinal
1542Twan van Laarhoven <twanvl@gmail.com>**20080117194417
1543   - change monad type synonym into a newtype
1544   - use do, return and standard monad functions
1545]
1546[Monadify coreSyn/CorePrep: use do, return, applicative, standard monad functions
1547Twan van Laarhoven <twanvl@gmail.com>**20080117193154]
1548[Monadify rename/RnTypes: use do, return and standard monad functions
1549Twan van Laarhoven <twanvl@gmail.com>**20080117190823]
1550[Monadify rename/RnPat: use do, return and standard monad functions
1551Twan van Laarhoven <twanvl@gmail.com>**20080117190033]
1552[Monadify rename/RnNames: use return and standard monad functions
1553Twan van Laarhoven <twanvl@gmail.com>**20080117185837]
1554[seqMaybe is more commonly known as mplus
1555Twan van Laarhoven <twanvl@gmail.com>**20080117185330]
1556[Monadify rename/RnBinds: use do, return and standard monad functions
1557Twan van Laarhoven <twanvl@gmail.com>**20080117184354]
1558[Monadify stranal/StrictAnal: use the State monad instead of a custom thing
1559Twan van Laarhoven <twanvl@gmail.com>**20080117180449]
1560[Monadify stranal/WwLib: use do, return, applicative, standard monad functions
1561Twan van Laarhoven <twanvl@gmail.com>**20080117180022]
1562[Added MonadUnique class for monads that have a unique supply
1563Twan van Laarhoven <twanvl@gmail.com>**20080117175616]
1564[Monadify stranal/WorkWrap: use do, return, applicative, standard monad functions
1565Twan van Laarhoven <twanvl@gmail.com>**20080117175007]
1566[Added Applicative and Functor instances for State monad
1567Twan van Laarhoven <twanvl@gmail.com>**20080117174656]
1568[Monadify deSugar/DsMonad: use do, return, applicative, standard monad functions
1569Twan van Laarhoven <twanvl@gmail.com>**20080117174432]
1570[Monadify deSugar/Desugar: use do, return, applicative, standard monad functions
1571Twan van Laarhoven <twanvl@gmail.com>**20080117174130]
1572[Monadify deSugar/DsUtils: use do, return, applicative, standard monad functions
1573Twan van Laarhoven <twanvl@gmail.com>**20080117173856]
1574[Monadify deSugar/DsListComp: use do, return, applicative, standard monad functions
1575Twan van Laarhoven <twanvl@gmail.com>**20080117173205]
1576[Monadify deSugar/DsForeign: use do, return, applicative, standard monad functions
1577Twan van Laarhoven <twanvl@gmail.com>**20080117172843]
1578[Monadify deSugar/DsGRHSs: use do, return, applicative, standard monad functions
1579Twan van Laarhoven <twanvl@gmail.com>**20080117172228]
1580[Monadify deSugar/DsExpr: use do, return, applicative, standard monad functions
1581Twan van Laarhoven <twanvl@gmail.com>**20080117164055]
1582[Added Applicative instance for IOEnv
1583Twan van Laarhoven <twanvl@gmail.com>**20080117162644]
1584[Add 'util/MonadUtils.hs' with common monad (and applicative) combinators
1585Twan van Laarhoven <twanvl@gmail.com>**20080117161939]
1586[Monadify deSugar/MatchLit: use do, return, applicative, standard monad functions
1587Twan van Laarhoven <twanvl@gmail.com>**20080117173439]
1588[Monadify deSugar/Match: use do, return, applicative, standard monad functions
1589Twan van Laarhoven <twanvl@gmail.com>**20080117173336]
1590[Monadify deSugar/DsCCall: use do, return, applicative, standard monad functions
1591Twan van Laarhoven <twanvl@gmail.com>**20080117165334]
1592[Monadify deSugar/DsArrows: use do, return, applicative, standard monad functions
1593Twan van Laarhoven <twanvl@gmail.com>**20080117165114]
1594[Monadify deSugar/DsBinds: use do, return, applicative, standard monad functions
1595Twan van Laarhoven <twanvl@gmail.com>**20080117164746]
1596[Added MASSERT macro for assertions in do notation
1597Twan van Laarhoven <twanvl@gmail.com>**20080117163112]
1598[FIX BUILD wrong imports on non-Windows
1599Simon Marlow <simonmar@microsoft.com>**20080124092935]
1600[Show CmdLineError exceptions as "<command line>: ..."
1601Simon Marlow <simonmar@microsoft.com>**20080123163145
1602 instead of something like "ghc-6.8.2: ...", which causes problems in
1603 the test suite.  In any case, "<command line>" seems a more
1604 appropriate context for these errors, the only question is whether
1605 we're using CmdLineError incorrectly anywhere.
1606]
1607[FIX #1750: in isBrokenPackage, don't loop if the deps are recursive
1608Simon Marlow <simonmar@microsoft.com>**20080123160703]
1609[FIX #1750: throw out mutually recursive groups of packages
1610Simon Marlow <simonmar@microsoft.com>**20080123160635]
1611[Windows now doesn't need different values for DQ in the build system
1612Ian Lynagh <igloo@earth.li>**20080123173933]
1613[Fix setting argv[0] in shell-utils.c on Windows
1614Ian Lynagh <igloo@earth.li>**20080123160139]
1615[Escape arguments for Windows in shell-tools.c
1616Ian Lynagh <igloo@earth.li>**20080123151724]
1617[Attach the INLINE Activation pragma to any automatically-generated specialisations
1618simonpj@microsoft.com**20080123134012
1619 
1620 Another idea suggested by Roman, happily involving a one-line change.  Here's
1621 the new Note in Specialise:
1622 
1623 Note [Auto-specialisation and RULES]
1624 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1625 Consider:
1626    g :: Num a => a -> a
1627    g = ...
1628 
1629    f :: (Int -> Int) -> Int
1630    f w = ...
1631    {-# RULE f g = 0 #-}
1632 
1633 Suppose that auto-specialisation makes a specialised version of
1634 g::Int->Int That version won't appear in the LHS of the RULE for f.
1635 So if the specialisation rule fires too early, the rule for f may
1636 never fire.
1637 
1638 It might be possible to add new rules, to "complete" the rewrite system.
1639 Thus when adding
1640        RULE forall d. g Int d = g_spec
1641 also add
1642        RULE f g_spec = 0
1643 
1644 But that's a bit complicated.  For now we ask the programmer's help,
1645 by *copying the INLINE activation pragma* to the auto-specialised rule.
1646 So if g says {-# NOINLINE[2] g #-}, then the auto-spec rule will also
1647 not be active until phase 2.
1648 
1649]
1650[Tidy up the treatment of SPECIALISE pragmas
1651simonpj@microsoft.com**20080122122613
1652 
1653 Remove the now-redundant "const-dicts" field in SpecPrag
1654 
1655 In dsBinds, abstract over constant dictionaries in the RULE.
1656 This avoids the creation of a redundant, duplicate, rule later
1657 in the Specialise pass, which was happening before.
1658 
1659 There should be no effect on performance either way, just less
1660 duplicated code, and the compiler gets a little simpler.
1661 
1662]
1663[Comments only
1664simonpj@microsoft.com**20080122122547]
1665[FIX #1838, #1987: change where GHCi searches for config files
1666Simon Marlow <simonmar@microsoft.com>**20080123143207
1667 
1668 6.6 behaviour:
1669   - ./.ghci
1670   - $HOME/.ghci
1671 
1672 6.8.[12] behaviour:
1673   - ./.ghci
1674   - Windows: c:/Documents and Settings/<user>/.ghci
1675   - Unix: $HOME/.ghci
1676 
1677 6.10 (and 6.8.3 when this is merged):
1678   - ./.ghci
1679   - Windows: c:/Documents and Settings/<user>/Application Data/ghc/ghci.conf
1680   - Unix: $HOME/.ghc/ghci.conf
1681   - $HOME/.ghci
1682 
1683 We will need to document this in the 6.8.3 release notes because it
1684 may affect Windows users who have adapted their setup to 6.8.[12].
1685]
1686[FIX #1767 :show documentation claimed too much
1687Simon Marlow <simonmar@microsoft.com>**20080122152943
1688 Also put the :help docs back within 80 columns
1689]
1690[fix syntax-error output for :show
1691Simon Marlow <simonmar@microsoft.com>**20080122144923]
1692[This goes with the patch for #1839, #1463
1693Simon Marlow <simonmar@microsoft.com>**20080122161811]
1694[use pathSeparator instead of '/'
1695Simon Marlow <simonmar@microsoft.com>**20080122140957]
1696[cleanup only
1697Simon Marlow <simonmar@microsoft.com>**20080122132047]
1698[FIX #1839, #1463, by supporting ghc-pkg bulk queries with substring matching
1699claus.reinke@talk21.com**20080121161744
1700 
1701    - #1839 asks for a ghc-pkg dump feature, #1463 for the ability
1702      to query the same fields in several packages at once.
1703 
1704    - this patch enables substring matching for packages in 'list',
1705      'describe', and 'field', and for modules in find-module. it
1706      also allows for comma-separated multiple fields in 'field'.
1707      substring matching can optionally ignore cases to avoid the
1708      rather unpredictable capitalisation of packages.
1709 
1710    - the patch is not quite as full-featured as the one attached
1711      to #1839, but avoids the additional dependency on regexps.
1712      open ended substrings are indicated by '*' (only the three
1713      forms prefix*, *suffix, *infix* are supported)
1714 
1715    - on windows, the use of '*' for package/module name globbing
1716      leads to conflicts with filename globbing: by default, windows
1717      programs are self-globbing, and bash adds another level of
1718      globbing on top of that. it seems impossible to escape '*'
1719      from both levels of globbing, so we disable default globbing
1720      for ghc-pkg and ghc-pkg-inplace. users of bash will still
1721      have filename globbing available, users of cmd won't.
1722 
1723    - if it is considered necessary to reenable filename globbing
1724      for cmd users, it should be done selectively, only for
1725      filename parameters. to this end, the patch includes a
1726      glob.hs program which simply echoes its parameters after
1727      filename globbing. see the commented out glob command in
1728      Main.hs for usage or testing.
1729 
1730    - this covers both tickets, and permits for the most common
1731      query patterns (finding all packages contributing to the
1732      System. hierarchy, finding all regex or string packages,
1733      listing all package maintainers or haddock directories,
1734      ..), which not only i have wanted to have for a long time.
1735 
1736      examples (the quotes are needed to escape shell-based
1737      filename globbing and should be omitted in cmd.exe):
1738 
1739        ghc-pkg list '*regex*' --ignore-case
1740        ghc-pkg list '*string*' --ignore-case
1741        ghc-pkg list '*gl*' --ignore-case
1742        ghc-pkg find-module 'Data.*'
1743        ghc-pkg find-module '*Monad*'
1744        ghc-pkg field '*' name,maintainer
1745        ghc-pkg field '*' haddock-html
1746        ghc-pkg describe '*'
1747 
1748 
1749]
1750[Wibble to the OccurAnal fix for RULEs and loop-breakers
1751simonpj@microsoft.com**20080121165529]
1752[FIX #2049, another problem with the module context on :reload
1753Simon Marlow <simonmar@microsoft.com>**20080121145935
1754 The previous attempt to fix this (#1873, #1360) left a problem that
1755 occurred when the first :load of the program failed (#2049). 
1756 
1757 Now I've implemented a different strategy: between :loads, we remember
1758 all the :module commands, and just replay them after a :reload.  This
1759 is in addition to remembering all the package modules added with
1760 :module, which is orthogonal.
1761 
1762 This approach is simpler than the previous one, and seems to do the
1763 right thing in all the cases I could think of.  Let's hope this is the
1764 last bug in this series...
1765]
1766[Increase the bar for bootstrapping GHC to 6.4 (HEAD only)
1767Simon Marlow <simonmar@microsoft.com>**20080121111835
1768  - remove $(ghc_ge_601), $(ghc_ge_602), $(ghc_ge_603)
1769  - configure now checks the GHC version number
1770  - there are probably various cleanups that we can now do in compat/
1771    and compiler/, but I haven't done those yet.
1772]
1773[Do not worker/wrapper INLINE things, even if they are in a recursive group
1774simonpj@microsoft.com**20080121135909
1775 
1776 This patch stops the worker/wrapper transform working on an INLINE thing,
1777 even if it's in a recursive group.  It might not be the loop breaker.  Indeed
1778 a recursive group might have no loop breaker, if the only recursion is
1779 through rules.
1780 
1781 Again, this change was provoked by one of Roman's NDP libraries.
1782 Specifically the Rec { splitD, splitJoinD } group in
1783        Data.Array.Parallel.Unlifted.Distributed.Arrays
1784 
1785 Simon
1786 
1787]
1788[Make the loop-breaking algorithm a bit more liberal, where RULES are involved
1789simonpj@microsoft.com**20080121135654
1790 
1791 This is another gloss on the now-quite-subtle and heavily-documented algorithm
1792 for choosing loop breakers.
1793 
1794 This fix, provoked by Roman's NDP library, makes sure that when we are choosing
1795 a loop breaker we only take into account variables free on the *rhs* of a rule
1796 not the *lhs*.
1797 
1798 Most of the new lines are comments!
1799 
1800]
1801[Fix Trac #2055
1802simonpj@microsoft.com**20080121124244
1803 
1804 Sorry, this was my fault, a consequence of the quasi-quoting patch. 
1805 
1806 I've added rn062 as a test.
1807 
1808 
1809]
1810[Fix exception message with ghc -e
1811Ian Lynagh <igloo@earth.li>**20080121104142
1812 When running with ghc -e, exceptions should claim to be from the program
1813 that we are running, not ghc.
1814]
1815[Fix warnings in main/CmdLineParser
1816Ian Lynagh <igloo@earth.li>**20080121103158]
1817[Normalise FilePaths before printing them
1818Ian Lynagh <igloo@earth.li>**20080120193002]
1819[Tweak runghc
1820Ian Lynagh <igloo@earth.li>**20080120184639]
1821[Fix catching exit exceptions in ghc -e
1822Ian Lynagh <igloo@earth.li>**20080120170236]
1823[Typo in phase-control documentation
1824simonpj@microsoft.com**20080121113620]
1825[Fix warnings in main/Main
1826Ian Lynagh <igloo@earth.li>**20080119235914]
1827[Support multiple -e flags
1828Ian Lynagh <igloo@earth.li>**20080119223036]
1829[Fix ghc -e :main (it was enqueuing the main function, but not running it)
1830Ian Lynagh <igloo@earth.li>**20080119220044]
1831[Fix whitespace
1832Ian Lynagh <igloo@earth.li>**20080119212830]
1833[Fix giving an error if we are given conflicting mode flags
1834Ian Lynagh <igloo@earth.li>**20080119212602]
1835[Add :run and tweak :main
1836Ian Lynagh <igloo@earth.li>**20080119164923
1837 You can now give :main a Haskell [String] as an argument, e.g.
1838 :main ["foo", "bar"]
1839 and :run is a variant that takes the name of the function to run.
1840 Also, :main now obeys the -main-is flag.
1841]
1842[Make MacFrameworks a subdirectory of distrib, since it isn't used in the normal building process.
1843judah.jacobson@gmail.com**20071217235735]
1844[Add scripts for building GMP.framework and GNUreadline.framework (OS X).
1845judah.jacobson@gmail.com**20071127072951]
1846[Use -framework-path flags during the cc phase.  Fixes trac #1975.
1847judah.jacobson@gmail.com**20071212201245]
1848[FIX #1821 (Parser or lexer mess-up)
1849df@dfranke.us**20071210230649]
1850[Improve the error when :list can't find any code to show
1851Ian Lynagh <igloo@earth.li>**20080118225655]
1852[Fix imports when !DEBUG
1853Ian Lynagh <igloo@earth.li>**20080118180126]
1854[Tweak the splitter
1855Ian Lynagh <igloo@earth.li>**20080116195612
1856 We were generating a label ".LnLC7", which the splitter was confusing
1857 with a literal constant (LC). The end result was the assembler tripping
1858 up on ".Ln.text".
1859]
1860[Wibble to SetLevels.abstractVars
1861simonpj@microsoft.com**20080118171754
1862 
1863 I've gotten this wrong more than once.  Hopefully this has it nailed.
1864 The issue is that in float-out we must abstract over the correct
1865 variables.
1866 
1867 
1868]
1869[Add quasi-quotation, courtesy of Geoffrey Mainland
1870simonpj@microsoft.com**20080118145503
1871 
1872 This patch adds quasi-quotation, as described in
1873   "Nice to be Quoted: Quasiquoting for Haskell"
1874        (Geoffrey Mainland, Haskell Workshop 2007)
1875 Implemented by Geoffrey and polished by Simon.
1876 
1877 Overview
1878 ~~~~~~~~
1879 The syntax for quasiquotation is very similar to the existing
1880 Template haskell syntax:
1881        [$q| stuff |]
1882 where 'q' is the "quoter".  This syntax differs from the paper, by using
1883 a '$' rather than ':', to avoid clashing with parallel array comprehensions.
1884 
1885 The "quoter" is a value of type Language.Haskell.TH.Quote.QuasiQuoter, which
1886 contains two functions for quoting expressions and patterns, respectively.
1887 
1888      quote = Language.Haskell.TH.Quote.QuasiQuoter quoteExp quotePat
1889 
1890      quoteExp :: String -> Language.Haskell.TH.ExpQ
1891      quotePat :: String -> Language.Haskell.TH.PatQ
1892 
1893 TEXT is passed unmodified to the quoter. The context of the
1894 quasiquotation statement determines which of the two quoters is
1895 called: if the quasiquotation occurs in an expression context,
1896 quoteExp is called, and if it occurs in a pattern context, quotePat
1897 is called.
1898 
1899 The result of running the quoter on its arguments is spliced into
1900 the program using Template Haskell's existing mechanisms for
1901 splicing in code. Note that although Template Haskell does not
1902 support pattern brackets, with this patch binding occurrences of
1903 variables in patterns are supported. Quoters must also obey the same
1904 stage restrictions as Template Haskell; in particular, in this
1905 example quote may not be defined in the module where it is used as a
1906 quasiquoter, but must be imported from another module.
1907 
1908 Points to notice
1909 ~~~~~~~~~~~~~~~~
1910 * The whole thing is enabled with the flag -XQuasiQuotes
1911 
1912 * There is an accompanying patch to the template-haskell library. This
1913   involves one interface change:
1914        currentModule :: Q String
1915   is replaced by
1916        location :: Q Loc
1917   where Loc is a data type defined in TH.Syntax thus:
1918       data Loc
1919         = Loc { loc_filename :: String
1920              , loc_package  :: String
1921              , loc_module   :: String
1922              , loc_start    :: CharPos
1923              , loc_end      :: CharPos }
1924 
1925       type CharPos = (Int, Int)        -- Line and character position
1926 
1927   So you get a lot more info from 'location' than from 'currentModule'.
1928   The location you get is the location of the splice.
1929   
1930   This works in Template Haskell too of course, and lets a TH program
1931   generate much better error messages.
1932 
1933 * There's also a new module in the template-haskell package called
1934   Language.Haskell.TH.Quote, which contains support code for the
1935   quasi-quoting feature.
1936 
1937 * Quasi-quote splices are run *in the renamer* because they can build
1938   *patterns* and hence the renamer needs to see the output of running the
1939   splice.  This involved a bit of rejigging in the renamer, especially
1940   concerning the reporting of duplicate or shadowed names.
1941 
1942   (In fact I found and removed a few calls to checkDupNames in RnSource
1943   that are redundant, becuase top-level duplicate decls are handled in
1944   RnNames.)
1945 
1946 
1947 
1948]
1949[lots of portability changes (#1405)
1950Isaac Dupree <id@isaac.cedarswampstudios.org>**20080117011312
1951 
1952 re-recording to avoid new conflicts was too hard, so I just put it
1953 all in one big patch :-(  (besides, some of the changes depended on
1954 each other.)  Here are what the component patches were:
1955 
1956 Fri Dec 28 11:02:55 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
1957   * document BreakArray better
1958 
1959 Fri Dec 28 11:39:22 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
1960   * properly ifdef BreakArray for GHCI
1961 
1962 Fri Jan  4 13:50:41 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1963   * change ifs on __GLASGOW_HASKELL__ to account for... (#1405)
1964   for it not being defined. I assume it being undefined implies
1965   a compiler with relatively modern libraries but without most
1966   unportable glasgow extensions.
1967 
1968 Fri Jan  4 14:21:21 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1969   * MyEither-->EitherString to allow Haskell98 instance
1970 
1971 Fri Jan  4 16:13:29 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1972   * re-portabilize Pretty, and corresponding changes
1973 
1974 Fri Jan  4 17:19:55 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1975   * Augment FastTypes to be much more complete
1976 
1977 Fri Jan  4 20:14:19 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1978   * use FastFunctions, cleanup FastString slightly
1979 
1980 Fri Jan  4 21:00:22 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1981   * Massive de-"#", mostly Int# --> FastInt (#1405)
1982 
1983 Fri Jan  4 21:02:49 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1984   * miscellaneous unnecessary-extension-removal
1985 
1986 Sat Jan  5 19:30:13 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
1987   * add FastFunctions
1988 
1989]
1990[Add missing extendSubst
1991simonpj@microsoft.com**20080117180227
1992 
1993 Oops -- missed this from previous commit; sorry
1994 
1995]
1996[Add -fspec-inline-join-points to SpecConstr
1997simonpj@microsoft.com**20080117150325
1998 
1999 This patch addresses a problem that Roman found in SpecConstr.  Consider:
2000 
2001 foo :: Maybe Int -> Maybe Int -> Int
2002 foo a b = let j b = foo a b
2003            in
2004            case b of
2005              Nothing -> ...
2006              Just n  -> case a of
2007                           Just m  -> ... j (Just (n+1)) ...
2008                           Nothing -> ... j (Just (n-1)) ...
2009 
2010 We want to make specialised versions for 'foo' for the patterns
2011        Nothing  (Just v)
2012        (Just a) (Just b)
2013 
2014 Two problems, caused by the join point j.  First, j does not
2015 scrutinise b, so j won't be specialised f for the (Just v) pattern.
2016 Second, j is defined where the free var 'a' is not evaluated.
2017 
2018 Both are solved by brutally inlining j at its call sites.  This risks
2019 major code bloat, but it's relatively quick to implement.  The flag
2020        -fspec-inline-join-points
2021 causes brutal inlining for a
2022        non-recursive binding
2023        of a function
2024        whose RHS contains calls
2025        of a recursive function
2026 
2027 The (experimental) flag is static for now, and I have not even
2028 documented it properly.
2029 
2030 
2031]
2032[Fix references to Filepath
2033Clemens Fruhwirth <clemens@endorphin.org>**20080117134139]
2034[Fix egregious error in earlier "Record evaluated-ness" patch
2035simonpj@microsoft.com**20080117134057]
2036[Eliminate warnings with -DDEBUG
2037simonpj@microsoft.com**20080117124921]
2038[Record evaluated-ness information correctly for strict constructors
2039simonpj@microsoft.com**20080117105256
2040 
2041 The add_evals code in Simplify.simplAlt had bit-rotted.  Example:
2042 
2043   data T a = T !a
2044   data U a = U !a
2045 
2046   foo :: T a -> U a
2047   foo (T x) = U x
2048 
2049 Here we should not evaluate x before building the U result, because
2050 the x argument of T is already evaluated.
2051 
2052 Thanks to Roman for finding this.
2053 
2054 
2055]
2056[In float-out, make sure we abstract over the type variables in the kind of a coercion
2057simonpj@microsoft.com**20080116153908
2058 
2059 I can't remember where this bug showed up, but we were abstracting over a
2060 coercion variable (co :: a ~ T), without also abstracting over 'a'.
2061 
2062 The fix is simple.
2063 
2064]
2065[Fix broken debug warning
2066simonpj@microsoft.com**20080116151818]
2067[Complain sensibly if you try to use scoped type variables in Template Haskell
2068simonpj@microsoft.com**20080116151612
2069 
2070 This fixes Trac #2024; worth merging onto 6.8 branch.
2071 
2072]
2073[Comments only
2074simonpj@microsoft.com**20080116150554]
2075[Extra instance for Outputable on 5-tuples
2076simonpj@microsoft.com**20080116150525]
2077[Fix the -frule-check pass
2078simonpj@microsoft.com**20080116141156
2079 
2080 Rules for imported things are now kept in the global rule base, not
2081 attached to the global Id.  The rule-check pass hadn't kept up.
2082 
2083 This should fix it.
2084 
2085]
2086[Add dyn-wrapper.c used as cross-plattform launch wrapper for executables using dynamic libraries in non-standard places
2087Clemens Fruhwirth <clemens@endorphin.org>**20080116220603]
2088[Use runPhase_MoveBinary also for generating a dynamic library wrapper
2089Clemens Fruhwirth <clemens@endorphin.org>**20080116220420]
2090[Remove -fhardwire-lib-paths in favour of -dynload sysdep
2091Clemens Fruhwirth <clemens@endorphin.org>**20080110121736]
2092[ghc-inplace defaults to -fhardwire-lib-paths. Change that to -dynload wrapped
2093Clemens Fruhwirth <clemens@endorphin.org>**20080110090839]
2094[Add -dynload flag as dynamic flag.
2095Clemens Fruhwirth <clemens@endorphin.org>**20080116205710]
2096[Add a missing import
2097Ian Lynagh <igloo@earth.li>**20080116174149]
2098[Fix Makefile generatin on Windows
2099Ian Lynagh <igloo@earth.li>**20080116162752]
2100[Fix slash direction on Windows with the new filePath code
2101Ian Lynagh <igloo@earth.li>**20080116154317]
2102[Fix typo
2103Ian Lynagh <igloo@earth.li>**20080116011953]
2104[The Core type-matcher should look through PredTypes
2105simonpj@microsoft.com**20080116145939
2106 
2107 The core type-matcher Unify.match was previouly using tcView to expand
2108 types, because it must treat newtypes as distinct from their representation.
2109 But that meant that it also treated the PredType {C Int} as distinct from
2110 its representation type (:TC Int).  And that in turn was causing a rule
2111 not to fire, because the argument types didn't match up.
2112 
2113 For this to happen we need to get a situation where we have
2114 
2115   a = :DC blah blah    -- Dictionary
2116   ....(f a).....
2117 
2118 Now a has type (:TC Int), bu the RULE for f expects an argument
2119 of type {C Int}.  Roman found that just this was happening.
2120 
2121 
2122 
2123 
2124]
2125[A bottoming function should have infinite arity
2126simonpj@microsoft.com**20080116145722
2127 
2128 I can't think how this one escaped for so long, but
2129        (error "foo")
2130 should have arityType ABot, just as 'error' itself does.
2131 
2132 This improves eta expansion.  I spotted it when looking at the function
2133 
2134   Data.Array.Parallel.Arr.BBArr.writeMBB
2135 
2136 in the ndp package.
2137 
2138 
2139]
2140[Add Main.dyn_o deployed into the RTS library dir to linking (see DLLNOTES for rational)
2141Clemens Fruhwirth <clemens@endorphin.org>**20080110091217]
2142[Refactor cross-plattform process spawning from ghc-inplace into shell-tools.c
2143Clemens Fruhwirth <clemens@endorphin.org>**20080110090721]
2144[More verbose error reporting in mk/target.mk
2145Clemens Fruhwirth <clemens@endorphin.org>**20071231170715]
2146[Fix generating dependencies for different ways now we use FilePath
2147Ian Lynagh <igloo@earth.li>**20080115204716
2148 We were making filenames like
2149 dist/build/GHC/Base.p_.o
2150 rather than
2151 dist/build/GHC/Base.p_o
2152]
2153[Fix utils/Util for debug build
2154mainland@eecs.harvard.edu**20080114190530]
2155[Give an error if view pattern syntax is used in an expression; fixes #2033
2156Ian Lynagh <igloo@earth.li>**20080114115031]
2157[FIX BUILD (Solaris): include fcntl.h for file operations
2158Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080115051844]
2159[Fix warning when USE_READLINE is unset
2160Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080115015014]
2161[Remove an extra ) that was breaking the build on Windows
2162Ian Lynagh <igloo@earth.li>**20080114103953]
2163[Fix warnings in utils/ListSetOps
2164Ian Lynagh <igloo@earth.li>**20080113150017]
2165[Fix warnings in utils/Panic
2166Ian Lynagh <igloo@earth.li>**20080113142939]
2167[Fix warnings in utils/UniqSet
2168Ian Lynagh <igloo@earth.li>**20080113142604]
2169[Fix warnings in utils/Maybes
2170Ian Lynagh <igloo@earth.li>**20080113142347]
2171[Fix warnings in utils/BufWrite
2172Ian Lynagh <igloo@earth.li>**20080113141630]
2173[Fix warnings in utils/FastTypes
2174Ian Lynagh <igloo@earth.li>**20080113141612
2175 Split off a FastBool module, to avoid a circular import with Panic
2176]
2177[Fix warnings in utils/OrdList
2178Ian Lynagh <igloo@earth.li>**20080113132042]
2179[Fix warnings in utils/FastMutInt
2180Ian Lynagh <igloo@earth.li>**20080113131830]
2181[Fix warnings in utils/State
2182Ian Lynagh <igloo@earth.li>**20080113131658]
2183[Only initialise readline if we are connected to a terminal
2184Ian Lynagh <igloo@earth.li>**20080113124107
2185 Patch from Bertram Felgenhauer <int-e@gmx.de>
2186]
2187[Fix warnings in utils/Util
2188Ian Lynagh <igloo@earth.li>**20080113005832]
2189[Fix warnings in utils/Bag.lhs
2190Ian Lynagh <igloo@earth.li>**20080113002037]
2191[Add GMP_INCLUDE_DIRS in a couple of places
2192Ian Lynagh <igloo@earth.li>**20080112234215
2193 Fixes the build on OpenBSD (trac #2009). Based on a patch from kili.
2194]
2195[Tweak whitespace in HsExpr
2196Ian Lynagh <igloo@earth.li>**20080112185753]
2197[Fix warnings in HsExpr
2198Ian Lynagh <igloo@earth.li>**20080112181444]
2199[FilePath fixes
2200Ian Lynagh <igloo@earth.li>**20080112172837]
2201[don't initialize readline needlessly
2202Ian Lynagh <igloo@earth.li>**20080112155413
2203 Readline.initialize spills some escape sequences to stdout for some terminal
2204 types, potentially spoiling  ghc -e  output. So don't initialize readline
2205 unless we're working interactively on a terminal.
2206 Patch from Bertram Felgenhauer <int-e@gmx.de>
2207]
2208[Fix whitespace
2209Ian Lynagh <igloo@earth.li>**20080112155214]
2210[Use System.FilePath
2211Ian Lynagh <igloo@earth.li>**20080112154459]
2212[Fix filename completion by adding trailing spaces/slashes manually.
2213judah.jacobson@gmail.com**20080110221928]
2214[Use command-dependent word break characters for tab completion in ghci.  Fixes bug #998.
2215judah.jacobson@gmail.com**20080109003606]
2216[Fix 2030: make -XScopedTypeVariables imply -XRelaxedPolyRec
2217simonpj@microsoft.com**20080110113133
2218 
2219 The type checker doesn't support lexically scoped type variables
2220 unless we are using the RelaxedPolyRec option.  Reasons: see
2221 Note [Scoped tyvars] in TcBinds.
2222 
2223 So I've changed DynFlags to add this implication, improved the
2224 documentation, and simplified the code in TcBinds somewhat.
2225 (It's longer but only because of comments!)
2226 
2227 
2228]
2229[More refactoring in getCoreToDo
2230Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109023747]
2231[Document -fsimplifier-phases
2232Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022822]
2233[Add -fsimplifier-phases option
2234Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022449
2235 
2236 It controls the number of simplifier phases run during optimisation. These are
2237 numbered from n to 1 (by default, n=2). Phase 0 is always run regardless of
2238 this flag. The flag is ignored with -O0 since (practically) no optimisation is
2239 performed in that case.
2240]
2241[Refactor getCoreToDo slightly
2242Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109014359]
2243[Fix Trac #2018: float-out was ignoring the kind of a coercion variable
2244simonpj@microsoft.com**20080107142601
2245 
2246 The float-out transformation must handle the case where a coercion
2247 variable is free, which in turn mentions type variables in its kind.
2248 Just like a term variable really.
2249 
2250 I did a bit of refactoring at the same time.
2251 
2252 Test is tc241
2253 
2254 MERGE to stable branch
2255 
2256]
2257[Make the treatment of equalities more uniform
2258simonpj@microsoft.com**20080107142306
2259 
2260 This patch (which is part of the fix for Trac #2018) makes coercion variables
2261 be handled more uniformly.  Generally, they are treated like dictionaries
2262 in the type checker, not like type variables, but in a couple of places we
2263 were treating them like type variables.  Also when zonking we should use
2264 zonkDictBndr not zonkIdBndr.
2265 
2266]
2267[Fix Trac #2017
2268simonpj@microsoft.com**20080107125819]
2269[Add -XImpredicativeTypes, and tighten up type-validity checking (cf Trac 2019)
2270simonpj@microsoft.com**20080107115451
2271 
2272 Somehow we didn't have a separate flag for impredicativity; now we do.
2273 
2274 Furthermore, Trac #2019 showed up a missing test for monotypes in data
2275 constructor return types.  And I realised that we were even allowing
2276 things like
2277        Num (forall a. a) => ...
2278 which we definitely should not. 
2279 
2280 This patch insists on monotypes in several places where we were (wrongly)
2281 too liberal before.
2282 
2283 Could be merged to 6.8 but no big deal.
2284 
2285 
2286]
2287[pass -no-user-package-conf to ghc-inplace
2288Simon Marlow <simonmar@microsoft.com>**20080104162840]
2289[Fix build: Recent instance shuffling left us with overlapping instances
2290Ian Lynagh <igloo@earth.li>**20080106221547]
2291[Add instructions for building docs to README
2292Ian Lynagh <igloo@earth.li>**20080106215723]
2293[A little refactoring of GenIfaceEq to make the Outputable instance into H98
2294simonpj@microsoft.com**20080104105450]
2295[Make the instance of DebugNodes more H98-like
2296simonpj@microsoft.com**20080104105409]
2297[change CmmActual, CmmFormal to use a data CmmHinted rather than tuple (#1405)
2298Isaac Dupree <id@isaac.cedarswampstudios.org>**20080104105339
2299 This allows the instance of UserOfLocalRegs to be within Haskell98, and IMHO
2300  makes the code a little cleaner generally.
2301 This is one small (though tedious) step towards making GHC's code more
2302  portable...
2303]
2304[generalize instance Outputable GenCmm to H98 (#1405)
2305Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226175915]
2306[move and generalize another instance (#1405)
2307Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226174904
2308 was instance Outputable CmmGraph
2309 type CmmGraph = LGraph Middle Last
2310 now instance (ctx) => Outputable (LGraph m l),
2311 in module with LGraph where it belongs
2312 This also let us reduce the context of DebugNodes to Haskell98,
2313 leaving that class's only extension being multi-parameter.
2314 (also Outputable (LGraph M Last) with M = ExtendWithSpills Middle
2315 was another redundant instance that was then removed)
2316]
2317[move and generalize an instance (#1405)
2318Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226171913
2319 UserOfLocalRegs (ZLast Last) isn't Haskell98, but it was just as
2320 good an instance to be UserOfLocalRegs a => UserOfLocalRegs (ZLast a)
2321]
2322[Do not consult -XGADTs flag when pattern matching on GADTs
2323simonpj@microsoft.com**20080104125814
2324 
2325 See Trac #2004, and Note [Flags and equational constraints] in TcPat.
2326 
2327]
2328[Add a note about primop wrappers (cf Trac #1509)
2329simonpj@microsoft.com**20080104125305]
2330[Document SOURCE pragma; clarify TH behavior for mutually-recurive modules (Trac #1012)
2331simonpj@microsoft.com**20080104121939]
2332[White space and comments only
2333simonpj@microsoft.com**20080104102236]
2334[Optionally use libffi to implement 'foreign import "wrapper"' (#793)
2335Simon Marlow <simonmar@microsoft.com>**20080103170236
2336 To enable this, set UseLibFFI=YES in mk/build.mk. 
2337 
2338 The main advantage here is that this reduces the porting effort for
2339 new platforms: libffi works on more architectures than our current
2340 adjustor code, and it is probably more heavily tested.  We could
2341 potentially replace our existing code, but since it is probably faster
2342 than libffi (just a guess, I'll measure later) and is already working,
2343 it doesn't seem worthwhile.
2344 
2345 Right now, you must have libffi installed on your system.  I used the
2346 one supplied by Debian/Ubuntu.
2347]
2348[remove trace apparently left in by accident
2349Simon Marlow <simonmar@microsoft.com>**20080103163805]
2350[Remove -funfolding-update-in-place flag documentation
2351simonpj@microsoft.com**20080103160036
2352 
2353 This flag does nothing, and should have been removed ages ago. (GHC
2354 no longer does update-in-place.)
2355 
2356 MERGE to 6.8 branch
2357 
2358]
2359[Fix warnings with newer gcc versions (I hope)
2360Simon Marlow <simonmar@microsoft.com>**20080103140338]
2361[FIX #1898: add a missing UNTAG_CLOSURE() in checkBlackHoles
2362Simon Marlow <simonmar@microsoft.com>**20080103112717]
2363[fix validation failure on non-i386
2364Simon Marlow <simonmar@microsoft.com>**20080102151740]
2365[expand "out of stack slots" panic to suggest using -fregs-graph, see #1993
2366Simon Marlow <simonmar@microsoft.com>**20080102150737]
2367[Warning clean, and fix compilation with GHC 6.2.x
2368Simon Marlow <simonmar@microsoft.com>**20080102114529]
2369[Add dead code elimination in cmmMiniInline
2370Simon Marlow <simonmar@microsoft.com>**20071220151734
2371 cmmMiniInline counts the uses of local variables, so it can easily
2372 eliminate assigments to unused locals.  This almost never gets
2373 triggered, as we don't generate any dead assignments, but it will be
2374 needed by a forthcoming cleanup in CgUtils.emitSwitch.
2375]
2376[implement prefix unboxed tuples (part of #1509)
2377Isaac Dupree <id@isaac.cedarswampstudios.org>**20080102124001]
2378[Link libgmp.a statically into libHSrts.dll on Windows
2379Clemens Fruhwirth <clemens@endorphin.org>**20080101154017]
2380[Embedd DLL name into its import library, so client libs reference them properly in .idata
2381Clemens Fruhwirth <clemens@endorphin.org>**20080101152157]
2382[Add package dependencies to link pass when building ghc package (required for windows DLL build)
2383Clemens Fruhwirth <clemens@endorphin.org>**20080101152101]
2384[Fix building libHSrts.dll by using ghc-pkg instead of grepping in base.cabal
2385Clemens Fruhwirth <clemens@endorphin.org>**20071230193952]
2386[Add installPackage to dependencies of make.library.* as it's used by the rule
2387Clemens Fruhwirth <clemens@endorphin.org>**20071229162707]
2388[Install dynlibs correctly
2389Clemens Fruhwirth <clemens@endorphin.org>**20071228184024
2390 
2391 Add dynlibdir target to config.mk.in, setting it to @libdir@.
2392 Invoke installPackage with dynlibdir at libraries/Makefile
2393 Make installPackage.hs hand dynlibdir to Cabal.
2394]
2395[import ord that alex secretly imported
2396Isaac Dupree <id@isaac.cedarswampstudios.org>**20071228175727]
2397[add missing import that happy -agc secretly provided
2398Isaac Dupree <id@isaac.cedarswampstudios.org>**20071227171335]
2399[correct type mistake, hidden by happy -agc coercions!
2400Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226140743]
2401[API changes for cabal-HEAD
2402Clemens Fruhwirth <clemens@endorphin.org>**20071227143114
2403 
2404 Rename interfacedir to haddockdir
2405 Change empty(Copy|Register)Flags to default(Copy|Register)Flags
2406 Wrap content of RegisterFlags with toFlag (the Flag type is actually just Maybe)
2407]
2408[Extend API for compiling to and from Core
2409Tim Chevalier <chevalier@alum.wellesley.edu>**20071225200411
2410 
2411 Added API support for compiling Haskell to simplified Core, and for
2412 compiling Core to machine code. The latter, especially, should be
2413 considered experimental and has only been given cursory testing. Also
2414 fixed warnings in DriverPipeline. Merry Christmas.
2415]
2416[When complaining about non-rigid context, give suggestion of adding a signature
2417simonpj@microsoft.com**20071224122217]
2418[Improve handling of newtypes (fixes Trac 1495)
2419simonpj@microsoft.com**20071221090406
2420 
2421 In a few places we want to "look through" newtypes to get to the
2422 representation type.  But we need to be careful that  we don't fall
2423 into an ininite loop with e.g.
2424        newtype T = MkT T
2425 
2426 The old mechansim for doing this was to have a field nt_rep, inside
2427 a newtype TyCon, that gave the "ultimate representation" of the type.
2428 But that failed for Trac 1495, which looked like this:
2429    newtype Fix a = Fix (a (Fix a))
2430    data I a = I a
2431 Then, expanding the type (Fix I) went on for ever.
2432 
2433 The right thing to do seems to be to check for loops when epxanding
2434 the *type*, rather than in the *tycon*.  This patch does that,
2435        - Removes nt_rep from TyCon
2436        - Make Type.repType check for loops
2437 See Note [Expanding newtypes] in Type.lhs.
2438 
2439 At the same time I also fixed a bug for Roman, where newtypes were not
2440 being expanded properly in FamInstEnv.topNormaliseType.  This function
2441 and Type.repType share a common structure.
2442 
2443 
2444        Ian, see if this merges easily to the branch
2445        If not, I don't think it's essential to fix 6.8
2446 
2447]
2448[Fix Trac #1981: seq on a type-family-typed expression
2449simonpj@microsoft.com**20071221085542
2450 
2451 We were crashing when we saw
2452        case x of DEFAULT -> rhs
2453 where x had a type-family type.  This patch fixes it.
2454 
2455 MERGE to the 6.8 branch.
2456 
2457 
2458]
2459[Comment only
2460simonpj@microsoft.com**20071220164621]
2461[Fix nasty recompilation bug in MkIface.computeChangedOccs
2462simonpj@microsoft.com**20071220164307
2463 
2464        MERGE to 6.8 branch
2465 
2466 In computeChangedOccs we look up the old version of a Name.
2467 But a WiredIn Name doesn't have an old version, because WiredIn things
2468 don't appear in interface files at all.
2469 
2470 Result: ghc-6.9: panic! (the 'impossible' happened)
2471   (GHC version 6.9 for x86_64-unknown-linux):
2472        lookupVers1 base:GHC.Prim chr#{v}
2473 
2474 This fixes the problem.  The patch should merge easily onto the branch.
2475 
2476 
2477]
2478[Fix Trac #1988; keep the ru_fn field of a RULE up to date
2479simonpj@microsoft.com**20071220131912
2480 
2481 The ru_fn field was wrong when we moved RULES from one Id to another.
2482 The fix is simple enough.
2483 
2484 However, looking at this makes me realise that the worker/wrapper stuff
2485 for recursive newtypes isn't very clever: we generate demand info but
2486 then don't properly exploit it. 
2487 
2488 This patch fixes the crash though.
2489 
2490]
2491[Add better panic message in getSRTInfo (Trac #1973)
2492simonpj@microsoft.com**20071220180335]
2493[Remove obselete code for update-in-place (which we no longer do)
2494simonpj@microsoft.com**20071220173432]
2495[Implement generalised list comprehensions
2496simonpj@microsoft.com**20071220111300
2497 
2498   This patch implements generalised list comprehensions, as described in
2499   the paper "Comprehensive comprehensions" (Peyton Jones & Wadler, Haskell
2500   Workshop 2007).  If you don't use the new comprehensions, nothing
2501   should change.
2502   
2503   The syntax is not exactly as in the paper; see the user manual entry
2504   for details.
2505   
2506   You need an accompanying patch to the base library for this stuff
2507   to work.
2508   
2509   The patch is the work of Max Bolingbroke [batterseapower@hotmail.com],
2510   with some advice from Simon PJ.
2511   
2512   The related GHC Wiki page is
2513     http://hackage.haskell.org/trac/ghc/wiki/SQLLikeComprehensions
2514 
2515]
2516[More bindist-publishing fixes and refactoring
2517Ian Lynagh <igloo@earth.li>**20071218144505]
2518[Fix publishing the docs
2519Ian Lynagh <igloo@earth.li>**20071216122544]
2520[FIX #1980: must check for ThreadRelocated in killThread#
2521Simon Marlow <simonmar@microsoft.com>**20071217164610]
2522[Eliminate external GMP dependencies
2523Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071217093839
2524 - Ensure the stage1 compiler uses ghc's own GMP library on Mac OS
2525 - Need to rebuild installPackage and ifBuildable with stage1 compiler as they
2526   go into bindists
2527]
2528[Include ~/Library/Frameworks in the framework searchpath
2529Ian Lynagh <igloo@earth.li>**20071217233457
2530 Patch from Christian Maeder
2531]
2532[Make ghcii.sh executable
2533Ian Lynagh <igloo@earth.li>**20071217195734]
2534[Don't rely on distrib/prep-bin-dist-mingw being executable
2535Ian Lynagh <igloo@earth.li>**20071217195554]
2536[always try to remove the new file before restoring the old one (#1963)
2537Simon Marlow <simonmar@microsoft.com>**20071214123345]
2538[Fix a bug in gen_contents_index
2539Ian Lynagh <igloo@earth.li>**20071212121154
2540 The library doc index thought that the docs were in $module.html, rather
2541 than $package/$module.html.
2542]
2543[Fix lifting of case expressions
2544Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000837
2545 
2546 We have to explicity check for empty arrays in each alternative as recursive
2547 algorithms wouldn't terminate otherwise.
2548]
2549[Use (UArr Int) instead of PArray_Int# in vectorisation
2550Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000739]
2551[Fix bug in VectInfo loading
2552Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214230914]
2553[Remove unused vectorisation built-in
2554Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214011015]
2555[Treat some standard data cons specially during vectorisation
2556Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034855
2557 
2558 This is a temporary hack which allows us to vectorise literals.
2559]
2560[More vectorisation-related built ins
2561Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034839]
2562[Track changes to package ndp
2563Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212062714]
2564[Add vectorisation built-ins
2565Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212040521]
2566[FIX #1963: catch Ctrl-C and clean up properly
2567Simon Marlow <simonmar@microsoft.com>**20071213154056]
2568[Document the new threshold flags
2569Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214003003]
2570[Separate and optional size thresholds for SpecConstr and LiberateCase
2571Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214002719
2572 
2573 This patch replaces -fspec-threshold by -fspec-constr-threshold and
2574 -fliberate-case-threshold. The thresholds can be disabled by
2575 -fno-spec-constr-threshold and -fno-liberate-case-threshold.
2576]
2577[Make HscTypes.tyThingId respond not panic on ADataCon
2578simonpj@microsoft.com**20071204152903]
2579[Use Unix format for RnPat (no other change)
2580simonpj@microsoft.com**20071213140532]
2581[Improve free-variable handling for rnPat and friends (fixes Trac #1972)
2582simonpj@microsoft.com**20071213140213
2583 
2584 As well as fixing the immediate problem (Trac #1972) this patch does
2585 a signficant simplification and refactoring of pattern renaming.
2586 
2587 Fewer functions, fewer parameters passed....it's all good.  But it
2588 took much longer than I expected to figure out.
2589 
2590 The most significant change is that the NameMaker type does *binding*
2591 as well as *making* and, in the matchNameMaker case, checks for unused
2592 bindings as well.  This is much tider.
2593 
2594 (No need to merge to the 6.8 branch, but no harm either.)
2595 
2596 
2597]
2598[Allow more than 3 simplifier iterations to be run in phase 0
2599Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040835
2600 
2601 The number of iterations during the first run of phase 0 was erroneously
2602 hardcoded to 3. It should be *at least* 3 (see comments in code) but can be
2603 more.
2604]
2605[Document -ddump-simpl-phases
2606Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040822]
2607[New flag: -ddump-simpl-phases
2608Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040644
2609 
2610 This outputs the core after each simplifier phase (i.e., it produces less
2611 information that -ddump-simpl-iterations).
2612]
2613[Don't dump simplifier iterations with -dverbose-core2core
2614Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034635
2615 
2616 SimonPJ says this is the correct behaviour. We still have
2617 -ddump-simpl-iterations.
2618]
2619["list --simple-output" should be quiet when there are no packages to list
2620Simon Marlow <simonmar@microsoft.com>**20071212102230
2621 
2622 Previously:
2623 
2624 $ ghc-pkg list --user --simple-output
2625 ghc-pkg: no matches
2626 $
2627 
2628 Now:
2629 
2630 $ ghc-pkg list --user --simple-output
2631 $
2632]
2633[Fix vectorisation bug
2634Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206233015]
2635[Vectorisation-related built ins
2636Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206040829]
2637[Teach vectorisation about some temporary conversion functions
2638Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206032547]
2639[Vectorise case of unit correctly
2640Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221305]
2641[Teach vectorisation about singletonP
2642Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221240]
2643[Optimise desugaring of parallel array comprehensions
2644Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221213]
2645[Teach vectorisation about tuple datacons
2646Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205050221]
2647[Track additions to package ndp
2648Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205042649]
2649[Track changes to package ndp
2650Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205033859]
2651[Improve pretty-printing of InstDecl
2652simonpj@microsoft.com**20071210083053
2653 
2654 Fixes Trac #1966.
2655 
2656]
2657[Comments only
2658Pepe Iborra <mnislaih@gmail.com>**20071208204815]
2659[Refactoring only
2660Pepe Iborra <mnislaih@gmail.com>**20071208195222
2661 
2662 Suspensions in the Term datatype used for RTTI
2663 always get assigned a Type, so there is no reason
2664 to juggle around with a (Maybe Type) anymore.
2665 
2666]
2667[Change the format used by :print to show the content of references
2668Pepe Iborra <mnislaih@gmail.com>**20071208193013
2669     
2670     This comes as result of the short discussion linked below.
2671     
2672     http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html
2673 
2674]
2675[Help the user when she tries to do :history without :trace
2676Pepe Iborra <mnislaih@gmail.com>**20071208180918
2677 
2678 Teach GHCi to show a "perhaps you forgot to use :trace?" when
2679 it finds that the user is trying to retrieve an empty :history
2680 
2681]
2682[Prevent the binding of unboxed things by :print
2683Pepe Iborra <mnislaih@gmail.com>**20071208181830]
2684[Coercions from boxy splitters must be sym'ed in pattern matches
2685Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071208105018]
2686[Properly keep track of whether normalising given or wanted dicts
2687Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071207071302
2688 - The information of whether given or wanted class dictionaries where
2689   normalised by rewriting wasn't always correctly propagated in TcTyFuns,
2690   which lead to malformed dictionary bindings.
2691 - Also fixes a bug in TcPat.tcConPat where GADT equalities where emitted in
2692   the wrong position in case bindings (which led to CoreLint failures).
2693]
2694[TcPat.tcConPat uses equalities instead of GADT refinement
2695Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071120071208
2696 * This patch implements the use of equality constraints instead of GADT
2697   refinements that we have been discussing for a while.
2698 * It just changes TcPat.tcConPat.  It doesn't have any of the simplification
2699   and dead code removal that is possible due to this change.
2700 * At the moment, this patch breaks a fair number of GADT regression tests.
2701]
2702[Use installPackage for register --inplace as well as installing
2703Ian Lynagh <igloo@earth.li>**20071207234652
2704 We also need to do the GHC.Prim hack when registering inplace or the
2705 tests that use it fail.
2706]
2707[Fix the libraries Makefile
2708Ian Lynagh <igloo@earth.li>**20071205125015
2709     x && y
2710 is not the same as
2711     if x; then y; fi
2712 as the latter doesn't fail when x fails
2713]
2714[Copy hscolour.css into dist/... so it gets installed with the library docs
2715Ian Lynagh <igloo@earth.li>**20071205013703]
2716[Add the hscolour.css from hscolour 1.8
2717Ian Lynagh <igloo@earth.li>**20071205011733]
2718[BIN_DIST_INST_SUBDIR Needs to be defined in config.mk so ./Makefile can see it
2719Ian Lynagh <igloo@earth.li>**20071207121317]
2720[#include ../includes/MachRegs.h rather than just MachRegs.h
2721Ian Lynagh <igloo@earth.li>**20071205170335
2722 This fixes building on NixOS. I'm not sure why it worked everywhere else,
2723 but not on NixOS, before.
2724]
2725[Fix bindist creation: readline/config.mk is gone
2726Ian Lynagh <igloo@earth.li>**20071203123031]
2727[FIX #1843: Generate different instructions on PPC
2728Ian Lynagh <igloo@earth.li>**20071203123237
2729 The old ones caused lots of
2730     unknown scattered relocation type 4
2731 errors. Patch from Chris Kuklewicz.
2732]
2733[Refactor gen_contents_index
2734Ian Lynagh <igloo@earth.li>**20071207183538
2735 Also fixes it with Solaris's sh, spotted by Christian Maeder
2736]
2737[Use GHC.Exts rather than GHC.Prim
2738Ian Lynagh <igloo@earth.li>**20071202234222]
2739[Alter the base:GHC.Prim hack in installPackage, following changes in base
2740Ian Lynagh <igloo@earth.li>**20071202215719]
2741[Remove debug warning, and explain why
2742simonpj@microsoft.com**20071207170507]
2743[comment only
2744Simon Marlow <simonmar@microsoft.com>**20071206092422]
2745[comment typo
2746Simon Marlow <simonmar@microsoft.com>**20071206092412]
2747[add Outputable instance for OccIfaceEq
2748Simon Marlow <simonmar@microsoft.com>**20071206092403]
2749[Workaround for #1959: assume untracked names have changed
2750Simon Marlow <simonmar@microsoft.com>**20071206092349
2751 This fixes the 1959 test, but will do more recompilation than is
2752 strictly necessary (but only when -O is on).  Still, more
2753 recompilation is better than segfaults, link errors or other random
2754 breakage.
2755]
2756[FIX part of #1959: declaration versions were not being incremented correctly
2757Simon Marlow <simonmar@microsoft.com>**20071206084556
2758 We were building a mapping from ModuleName to [Occ] from the usage
2759 list, using the usg_mod field as the key.  Unfortunately, due to a
2760 very poor naming decision, usg_mod is actually the module version, not
2761 the ModuleName.  usg_name is the ModuleName.  Since Version is also an
2762 instance of Uniquable, there was no type error: all that happened was
2763 lookups in the map never succeeded.  I shall rename the fields of
2764 Usage in a separate patch.
2765 
2766 This doesn't completely fix #1959, but it gets part of the way there.
2767 
2768 I have to take partial blame as the person who wrote this fragment of
2769 code in late 2006 (patch "Interface file optimisation and removal of
2770 nameParent").
2771]
2772[move FP_FIND_ROOT after the "GHC is required" check
2773Simon Marlow <simonmar@microsoft.com>**20071205101814]
2774[FIX #1110: hackery also needed when running gcc for CPP
2775Simon Marlow <simonmar@microsoft.com>**20071205150230]
2776[Teach :print to follow references (STRefs and IORefs)
2777Pepe Iborra <mnislaih@gmail.com>**20071204105511
2778 
2779 Prelude Data.IORef> :p l
2780 l = (_t4::Maybe Integer) : (_t5::[Maybe Integer])
2781 Prelude Data.IORef> p <- newIORef l
2782 Prelude Data.IORef> :p p
2783 p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) :
2784                                         (_t7::[Maybe Integer]))})
2785 Prelude Data.IORef> :sp p
2786 p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)})
2787 
2788 
2789 I used braces to denote the contents of a reference.
2790 Perhaps there is a more appropriate notation?
2791]
2792[refactoring only
2793Pepe Iborra <mnislaih@gmail.com>**20071202125400]
2794[Change --shared to -shared in Win32 DLL docs
2795simonpj@microsoft.com**20071204154023]
2796[protect console handler against concurrent access (#1922)
2797Simon Marlow <simonmar@microsoft.com>**20071204153918]
2798[Make eta reduction check more carefully for bottoms (fix Trac #1947)
2799simonpj@microsoft.com**20071204145803
2800 
2801 Eta reduction was wrongly transforming
2802        f = \x. f x
2803 to
2804        f = f
2805 
2806 Solution: don't trust f's arity information; instead look at its
2807 unfolding.  See Note [Eta reduction conditions]
2808 
2809 Almost all the new lines are comments!
2810 
2811 
2812]
2813[Improve inlining for INLINE non-functions
2814simonpj@microsoft.com**20071204114955
2815       
2816 (No need to merge to 6.8, but no harm if a subsequent patch needs it.)
2817 
2818 The proximate cause for this patch is to improve the inlining for INLINE
2819 things that are not functions; this came up in the NDP project.  See
2820 Note [Lone variables] in CoreUnfold.
2821 
2822 This caused some refactoring that actually made things simpler.  In
2823 particular, more of the inlining logic has moved from SimplUtils to
2824 CoreUnfold, where it belongs.
2825 
2826 
2827]
2828[fix race conditions in sandboxIO (#1583, #1922, #1946)
2829Simon Marlow <simonmar@microsoft.com>**20071204114444
2830 using the new block-inheriting forkIO (#1048)
2831]
2832[:cd with no argument goes to the user's home directory
2833Simon Marlow <simonmar@microsoft.com>**20071204113945
2834 Seems better than getting a confusing 'cannot find directory' exception.
2835]
2836[forkIO starts the new thread blocked if the parent is blocked (#1048)
2837Simon Marlow <simonmar@microsoft.com>**20071204110947]
2838[Improve eta reduction, to reduce Simplifier iterations
2839simonpj@microsoft.com**20071203150039
2840 
2841 I finally got around to investigating why the Simplifier was sometimes
2842 iterating so often.  There's a nice example in Text.ParserCombinators.ReadPrec,
2843 which produced:
2844 
2845 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
2846 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
2847 NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
2848 
2849 No progress is being made.  It turned out that an interaction between
2850 eta-expansion, casts, and eta reduction was responsible. The change is
2851 small and simple, in SimplUtils.mkLam: do not require the body to be
2852 a Lam when floating the cast outwards. 
2853 
2854 I also discovered a missing side condition in the same equation, so fixing
2855 that is good too.  Now there is no loop when compiling ReadPrec.
2856 
2857 Should do a full nofib run though.
2858 
2859]
2860[Don't default to stripping binaries when installing
2861Ian Lynagh <igloo@earth.li>**20071202195817]
2862[Improve pretty-printing for Insts
2863simonpj@microsoft.com**20071128173125]
2864[Reorganise TcSimplify (again); FIX Trac #1919
2865simonpj@microsoft.com**20071128173146
2866 
2867 This was a bit tricky.  We had a "given" dict like (d7:Eq a); then it got
2868 supplied to reduceImplication, which did some zonking, and emerged with
2869 a "needed given" (d7:Eq Int). That got everything confused.
2870 
2871 I found a way to simplify matters significantly.  Now reduceContext
2872        - first deals with methods/literals/dictionaries
2873        - then deals with implications
2874 Separating things in this way not only made the bug go away, but
2875 eliminated the need for the recently-added "needed-givens" results returned
2876 by checkLoop.  Hurrah.
2877 
2878 It's still a swamp.  But it's a bit better.
2879 
2880]
2881[FIX #1914: GHCi forgot all the modules that were loaded before an error
2882Simon Marlow <simonmar@microsoft.com>**20071130130734]
2883[FIX #1744: ignore the byte-order mark at the beginning of a file
2884Simon Marlow <simonmar@microsoft.com>**20071130101100]
2885[FIX Trac #1935: generate superclass constraints for derived classes
2886simonpj@microsoft.com**20071128150541
2887 
2888 This bug only reports a problem with phantom types, but actually
2889 there was quite a long-standing and significant omission in the
2890 constraint generation for derived classes.  See
2891 Note [Superclasses of derived instance] in TcDeriv.
2892 
2893 The test deriving-1935 tests both cases.
2894 
2895 
2896]
2897[Print a bit more info in VarBinds (no need to merge)
2898simonpj@microsoft.com**20071128150354]
2899[Check for duplicate bindings in CoreLint
2900simonpj@microsoft.com**20071128150214]
2901[add comment
2902Simon Marlow <simonmar@microsoft.com>**20071128111417]
2903[FIX #1916: don't try to convert float constants to int in CMM optimizer
2904Bertram Felgenhauer <int-e@gmx.de>**20071122095513]
2905[give a more useful message when the static flags have not been initialised (#1938)
2906Simon Marlow <simonmar@microsoft.com>**20071127135435]
2907[Rebuild utils with the stage1 compiler when making a bindist; fixes trac #1860
2908Ian Lynagh <igloo@earth.li>**20071127203959
2909 This is a bit unpleasant, as "make binary-dist" really shouldn't actually
2910 build anything, but it works.
2911]
2912[Remove the --print-docdir flag
2913Ian Lynagh <igloo@earth.li>**20071127195605
2914 It wasn't doing the right thing for bindists. Let's rethink...
2915]
2916[FIX #1925: the interpreter was not maintaining tag bits correctly
2917Simon Marlow <simonmar@microsoft.com>**20071127122614
2918 See comment for details
2919]
2920[add missing instruction: ALLOC_AP_NOUPD
2921Simon Marlow <simonmar@microsoft.com>**20071127122604]
2922[Check tag bits on the fun pointer of a PAP
2923Simon Marlow <simonmar@microsoft.com>**20071126160420]
2924[canonicalise the path to HsColour
2925Simon Marlow <simonmar@microsoft.com>**20071126141614]
2926[Consistently put www. on the front of haskell.org in URLs
2927Ian Lynagh <igloo@earth.li>**20071126215256]
2928[Fix some more URLs
2929Ian Lynagh <igloo@earth.li>**20071126214147]
2930[Tweak some URLs
2931Ian Lynagh <igloo@earth.li>**20071126194148]
2932[Fix some links
2933Ian Lynagh <igloo@earth.li>**20071126184406]
2934[Copy gmp stamps into bindists, so we don't try and rebuild gmp
2935Ian Lynagh <igloo@earth.li>**20071125211919]
2936[On Windows, Delete the CriticalSection's we Initialize
2937Ian Lynagh <igloo@earth.li>**20071125125845]
2938[On Windows, add a start menu link to the flag reference
2939Ian Lynagh <igloo@earth.li>**20071125124429]
2940[Remove html/ from the paths we put in the start menu on Windows
2941Ian Lynagh <igloo@earth.li>**20071125124150]
2942[MERGED: Make ":" in GHCi repeat the last command
2943Ian Lynagh <igloo@earth.li>**20071125122020
2944 Ian Lynagh <igloo@earth.li>**20071124231857
2945  It used to be a synonym for ":r" in 6.6.1, but this wasn't documented or
2946  known about by the developers. In 6.8.1 it was accidentally broken.
2947  This patch brings it back, but as "repeat the last command", similar to
2948  pressing enter in gdb. This is almost as good for people who want it to
2949  reload, and means that it can also be used to repeat commands like :step.
2950]
2951[MERGED: Put library docs in a $pkg, rather than $pkgid, directory; fixes trac #1864
2952Ian Lynagh <igloo@earth.li>**20071124212305
2953 Ian Lynagh <igloo@earth.li>**20071124171220
2954]
2955[Don't make a library documentation prologue
2956Ian Lynagh <igloo@earth.li>**20071124211943
2957 It's far too large now, and no-one complained when 6.8.1 didn't have one.
2958]
2959[Don't put package version numbers in links in index.html
2960Ian Lynagh <igloo@earth.li>**20071124211629]
2961[Define install-strip in Makefile
2962Ian Lynagh <igloo@earth.li>**20071124205037]
2963[Define install-strip in distrib/Makefile
2964Ian Lynagh <igloo@earth.li>**20071124204803]
2965[Install gmp from bindists; fixes trac #1848
2966Ian Lynagh <igloo@earth.li>**20071124185240]
2967[(native gen) fix code generated for GDTOI on x86_32
2968Bertram Felgenhauer <int-e@gmx.de>**20071121063942
2969 See trac #1910.
2970]
2971[Copy the INSTALL hack from mk/config.mk.in into distrib/Makefile-bin-vars.in
2972Ian Lynagh <igloo@earth.li>**20071124163028
2973 configure will set INSTALL to ./install-sh if it can't find it in the path,
2974 so we need to replace the . with the path to our root.
2975]
2976[Make install-sh executable /before/ we try to find it
2977Ian Lynagh <igloo@earth.li>**20071124162450]
2978[Document --info in the +RTS -? help
2979Ian Lynagh <igloo@earth.li>**20071123204352]
2980[MERGED: If we have hscolour then make source code links in teh haddock docs
2981Ian Lynagh <igloo@earth.li>**20071123233113
2982 Fri Nov 23 13:15:59 PST 2007  Ian Lynagh <igloo@earth.li>
2983]
2984[Tidy and trim the type environment in mkBootModDetails
2985simonpj@microsoft.com**20071123153519
2986 
2987 Should fix Trac #1833
2988 
2989 We were failing to trim the type envt in mkBootModDetails, so several
2990 functions all called (*), for example, were getting into the interface.
2991 Result chaos.  It only actually bites when we do the retyping-loop thing,
2992 which is why it's gone so long without a fix.
2993 
2994 
2995]
2996[refactor: HscNothing and boot modules do not need desugaring
2997Simon Marlow <simonmar@microsoft.com>**20071123135237]
2998[FIX #1910: fix code generated for GDTOI on x86_32
2999Bertram Felgenhauer <int-e@gmx.de>*-20071121102627]
3000[Properly ppr InstEqs in wanteds of implication constraints
3001Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071122093002]
3002[FIX #1910: fix code generated for GDTOI on x86_32
3003Bertram Felgenhauer <int-e@gmx.de>**20071121102627]
3004[Add built-in Double operations to vectorisation
3005Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071122002517]
3006[Teach vectorisation about Double
3007Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121054932]
3008[Vectorise polyexprs with notes
3009Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121053102]
3010[Make rebindable do-notation behave as advertised
3011simonpj@microsoft.com**20071121174914
3012 
3013 Adopt Trac #1537.  The patch ended up a bit bigger than I expected,
3014 so I suggest we do not merge this into the 6.8 branch.  But there
3015 is no funadamental reason why not.
3016 
3017 With this patch, rebindable do-notation really does type as if you
3018 had written the original (>>) and (>>=) operations in desguared form.
3019 
3020 I ended up refactoring some of the (rather complicated) error-context
3021 stuff in TcUnify, by pushing an InstOrigin into tcSubExp and its
3022 various calls. That means we could get rid of tcFunResTy, and the
3023 SubCtxt type.  This should improve error messages slightly
3024 in complicated situations, because we have an Origin to hand
3025 to instCall (in the (isSigmaTy actual_ty) case of tc_sub1).
3026 
3027 Thanks to Pepe for the first draft of the patch.
3028 
3029]
3030[Add DEBUG-only flag -dsuppress-uniques to suppress printing of uniques
3031simonpj@microsoft.com**20071116152446
3032 
3033 This is intended only for debugging use: it makes it easier to
3034 compare two variants without the variations between uniques mattering.
3035 
3036 (Of course, you can't actually feed the output to the C compiler
3037 or assembler and expect anything sensible to happen!)
3038 
3039]
3040[Add -dcore-lint when validating libraries
3041simonpj@microsoft.com**20071105164733]
3042[Fix Trac #1913: check data const for derived types are in scope
3043simonpj@microsoft.com**20071121151428
3044 
3045 When deriving an instance, the data constructors should all be in scope.
3046 This patch checks the condition.
3047 
3048 
3049]
3050[Fix Trac #1909: type of map in docs
3051simonpj@microsoft.com**20071120160152]
3052[Move file locking into the RTS, fixing #629, #1109
3053Simon Marlow <simonmar@microsoft.com>**20071120140859
3054 File locking (of the Haskell 98 variety) was previously done using a
3055 static table with linear search, which had two problems: the array had
3056 a fixed size and was sometimes too small (#1109), and performance of
3057 lockFile/unlockFile was suboptimal due to the linear search.
3058 Also the algorithm failed to count readers as required by Haskell 98
3059 (#629).
3060 
3061 Now it's done using a hash table (provided by the RTS).  Furthermore I
3062 avoided the extra fstat() for every open file by passing the dev_t and
3063 ino_t into lockFile.  This and the improvements to the locking
3064 algorithm result in a healthy 20% or so performance increase for
3065 opening/closing files (see openFile008 test).
3066]
3067[FIX Trac #1825: standalone deriving Typeable
3068simonpj@microsoft.com**20071120125732
3069 
3070 Standalone deriving of typeable now requires you to say
3071        instance Typeable1 Maybe
3072 which is exactly the shape of instance decl that is generated
3073 by a 'deriving( Typeable )' clause on the data type decl.
3074 
3075 This is a bit horrid, but it's the only consistent way, at least
3076 for now.  If you say something else, the error messages are helpful.
3077 
3078 MERGE to 6.8 branch
3079 
3080]
3081[FIX #1715: egregious bug in ifaceDeclSubBndrs
3082simonpj@microsoft.com**20071120111723
3083 
3084 ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type
3085 families an IfaceSyn can introduce subordinate binders.  Result:
3086 chaos.
3087 
3088 The fix is easy though.  Merge to 6.8 branch.
3089 
3090 
3091]
3092[Always do 'setup makefile' before building each library
3093Simon Marlow <simonmar@microsoft.com>**20071120103329
3094 This forces preprocessing to happen, which is necessary if any of the
3095 .hsc files have been modified.  Without this change, a 'setup
3096 makefile' would be required by hand after a .hsc file changed.
3097 Fortunately 'setup makefile' isn't much extra work, and I've made it
3098 not overwrite GNUmakefile if it hasn't changed, which avoids
3099 recalculating the dependencies each time.
3100]
3101[FIX #1847 (improve :browse! docs, fix unqual)
3102claus.reinke@talk21.com**20071108013147
3103 
3104 - add example to docs, explain how to interpret
3105   output of `:browse! Data.Maybe`
3106 - print unqualified names according to current
3107   context, not the context of the target module
3108 
3109]
3110[Track changes to package ndp
3111Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120033716]
3112[Temporary hack for passing PArrays from unvectorised to vectorised code
3113Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120024545]
3114[Bind NDP stuff to [:.:] arrays
3115Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119020302]
3116[Don't treat enumerations specially during vectorisation for the moment
3117Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013729]
3118[Fix bugs in vectorisation of case expressions
3119Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013714]
3120[More built-in NDP combinators
3121Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119012205]
3122[New vectorisation built-ins
3123Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051940]
3124[Fix bug in conversion unvect/vect
3125Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051926]
3126[Extend built-in vectorisation environments
3127Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045219]
3128[Fix bug in generation of environments for vectorisation
3129Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045203]
3130[Add builtin var->var mapping to vectorisation
3131Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118042605]
3132[Extend vectorisation built-in mappings with datacons
3133Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118034351]
3134[Change representation of parallel arrays of enumerations
3135Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118033355]
3136[Add vectorisation-related builtin
3137Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118031513]
3138[Teach vectorisation about Bool
3139Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117042714]
3140[Incomplete support for boxing during vectorisation
3141Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040739]
3142[Make sure some TyCons always vectorise to themselves
3143Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040537]
3144[Simple conversion vectorised -> unvectorised
3145Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117023029]
3146[Fix bug in case vectorisation
3147Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117015014]
3148[Vectorisation of algebraic case expressions
3149Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116074814]
3150[More vectorisation-related built-ins
3151Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116061831]
3152[Vectorisation utilities
3153Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116051037]
3154[Add vectorisation built-ins
3155Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116050959]
3156[Fix vectorisation of binders in case expressions
3157Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116021833]
3158[Two small typos in the flags summary (merge to 6.8 branch)
3159simonpj@microsoft.com**20071119134639]
3160[Improve the situation for Trac #959: civilised warning instead of a trace msg
3161simonpj@microsoft.com**20071119122938
3162 
3163 This doesn't fix the root cause of the bug, but it makes the report
3164 more civilised, and points to further info.
3165 
3166]
3167[FIX Trac #1806: test for correct arity for datacon in infix pattern patch
3168simonpj@microsoft.com**20071119114301
3169 
3170 Happily the fix is easy; pls merge
3171 
3172]
3173[Accept x86_64-*-freebsd* as well as amd64-*-freebsd* in configure.ac
3174Ian Lynagh <igloo@earth.li>**20071117154502
3175 Patch from Brian P. O'Hanlon
3176]
3177[Attempt at fixing #1873, #1360
3178Simon Marlow <simonmar@microsoft.com>**20071116152148
3179 
3180 I think I figured out a reasonable way to manage the GHCi context,
3181 comments welcome.
3182 
3183 Rule 1: external package modules in the context are persistent.  That
3184 is, when you say 'import Data.Maybe' it survives over :load, :add,
3185 :reload and :cd.
3186 
3187 Rule 2: :load and :add remove all home-package modules from the
3188 context and add the rightmost target, as a *-module if possible.  This
3189 is as before, and makes sense for :load because we're starting a new
3190 program; the old home-package modules don't make sense any more.  For
3191 :add, it usually does what you want, because the new target will
3192 become the context.
3193 
3194 Rule 3: any modules from the context that fail to load during a
3195 :reload are remembered, and re-added to the context at the next
3196 successful :reload.
3197 
3198 Claus' suggestion about adding the "remembered" modules to the prompt
3199 prefixed with a ! is implemented but commented out.  I couldn't
3200 decide whether it was useful or confusing.
3201 
3202 One difference that people might notice is that after a :reload where
3203 there were errors, GHCi would previously dump you in the most recent
3204 module that it loaded.  Now it dumps you in whatever subset of the
3205 current context still makes sense, and in the common case that will
3206 probably be {Prelude}.
3207]
3208[Wibble to fix Trac #1901 (shorten messsage slightly)
3209simonpj@microsoft.com**20071116150341]
3210[Improve links from flag reference to the relevant section; and improve doc of RankN flags
3211simonpj@microsoft.com**20071116145816]
3212[FIX Trac #1901: check no existential context in H98 mode
3213simonpj@microsoft.com**20071116145609]
3214[Improve documentation of data type declarations (Trac #1901)
3215simonpj@microsoft.com**20071116081841]
3216[Change the command-line semantics for query commands
3217Simon Marlow <simonmar@microsoft.com>**20071116132046
3218 
3219 From the help text:
3220 
3221   Commands that query the package database (list, latest, describe,
3222   field) operate on the list of databases specified by the flags
3223   --user, --global, and --package-conf.  If none of these flags are
3224   given, the default is --global --user.
3225 
3226 This makes it possible to query just a single database (e.g. the
3227 global one without the user one), which needed tricks to accomplish
3228 before.
3229]
3230[use "ghc-pkg latest --global" instead of "ghc-pkg list --simple-output"
3231Simon Marlow <simonmar@microsoft.com>**20071116122018
3232 The former now does the right thing: it uses the global database only,
3233 and picks the most recent package with the given name.
3234]
3235[Disallow installing packages whose names  differ in case only.
3236Simon Marlow <simonmar@microsoft.com>**20071116121153
3237 --force overrides.  Requested by Duncan Coutts, with a view to
3238 treating package names as case-insensitive in the future.
3239]
3240[FIX BUILD (with GHC 6.2.x): update .hi-boot file
3241Simon Marlow <simonmar@microsoft.com>**20071116101227]
3242[FIX #1828: installing to a patch with spaces in
3243Simon Marlow <simonmar@microsoft.com>**20071115155747
3244 We have to pass the path to gcc when calling windres, which itself
3245 might have spaces in.  Furthermore, we have to pass the path to gcc's
3246 tools to gcc.  This means getting the quoting right, and after much
3247 experimentation and reading of the windres sources I found something
3248 that works: passing --use-temp-files to windres makes it use its own
3249 implementation of quoting instead of popen(), and this does what we
3250 want.  Sigh.
3251]
3252[on Windows, install to a directory with spaces (test for #1828)
3253Simon Marlow <simonmar@microsoft.com>**20071115155327]
3254[FIX #1679: crash on returning from a foreign call
3255Simon Marlow <simonmar@microsoft.com>**20071115131635
3256 We forgot to save a pointer to the BCO over the foreign call.  Doing
3257 enough allocation and GC during the call could provoke a crash.
3258]
3259[Avoid the use of unversioned package dependencies
3260Simon Marlow <simonmar@microsoft.com>**20071115103249
3261 Fortunately "ghc-pkg list $pkg --simple-output" is a good way to add
3262 the version number.
3263]
3264[FIX #1596 (remove deprecated --define-name)
3265Simon Marlow <simonmar@microsoft.com>**20071114165323
3266 Also remove the old command-line syntax for ghc-pkg, which was not
3267 documented.  Do not merge.
3268]
3269[FIX #1837: remove deprecated support for unversioned dependencies (do not merge)
3270Simon Marlow <simonmar@microsoft.com>**20071114161044
3271 
3272]
3273[wibble
3274Pepe Iborra <mnislaih@gmail.com>**20071114233356]
3275[Make pprNameLoc more robust in absence of loc information
3276Pepe Iborra <mnislaih@gmail.com>**20071114233343]
3277[Try to manage the size of the text rendered for ':show bindings'
3278Pepe Iborra <mnislaih@gmail.com>**20071114231601]
3279[Make the Term ppr depth aware
3280Pepe Iborra <mnislaih@gmail.com>**20071114183417]
3281[Use paragraph fill sep where possible
3282Pepe Iborra <mnislaih@gmail.com>**20071114181233]
3283[Make SpecConstr work again
3284simonpj@microsoft.com**20071115084242
3285 
3286 In a typo I'd written env instead of env', and as a result RULES are
3287 practically guaranteed not to work in a recursive group.  This pretty
3288 much kills SpecConstr in its tracks!
3289 
3290 Well done Kenny Lu for spotting this.  The fix is easy.
3291 
3292 Merge into 6.8 please.
3293 
3294 
3295 
3296]
3297[Documentation only - fix typo in flags reference
3298Tim Chevalier <chevalier@alum.wellesley.edu>**20071115055748]
3299[Avoid making Either String an instance of Monad in the Haddock parser
3300David Waern <david.waern@gmail.com>**20071114204050]
3301[FIX 1463 (implement 'ghc-pkg find-module')
3302claus.reinke@talk21.com**20071109162652
3303 
3304 - the ticket asks for a module2package lookup in ghc-pkg
3305   (this would be useful to have in cabal, as well)
3306 
3307 - we can now ask which packages expose a module we need,
3308   eg, when preparing a cabal file or when getting errors
3309   after package reorganisations:
3310 
3311   $ ./ghc-pkg-inplace find-module Var
3312   c:/fptools/ghc/driver/package.conf.inplace:
3313       (ghc-6.9.20071106)
3314   
3315   $ ./ghc-pkg-inplace find-module Data.Sequence
3316   c:/fptools/ghc/driver/package.conf.inplace:
3317       containers-0.1
3318 
3319 - implemented as a minor variation on listPackages
3320 
3321 (as usual, it would be useful if one could combine
3322 multiple queries into one)
3323 
3324]
3325[remove --define-name from the --help usage message (#1596)
3326Simon Marlow <simonmar@microsoft.com>**20071114153417
3327 
3328]
3329[FIX #1837: emit deprecated message for unversioned dependencies
3330Simon Marlow <simonmar@microsoft.com>**20071114153010]
3331[Fix #782, #1483, #1649: Unicode GHCi input
3332Simon Marlow <simonmar@microsoft.com>**20071114151411
3333 GHCi input is now treated universally as UTF-8, except for the Windows
3334 console where we do the correct conversion from the current code
3335 page (see System.Win32.stringToUnicode).
3336 
3337 That leaves non-UTF-8 locales on Unix as unsupported, but (a) we only
3338 accept source files in UTF-8 anyway, and (b) UTF-8 is quite ubiquitous
3339 as the default locale.
3340 
3341]
3342[Fix build
3343David Waern <david.waern@gmail.com>**20071114125842
3344 I had forgot to update HaddockLex.hi-boot-6, so the build with 6.2.2
3345 failed. This fixes that.
3346]
3347[FIX Trac 1662: actually check for existentials in proc patterns
3348simonpj@microsoft.com**20071114112930
3349 
3350 I'd fixed the bug for code that should be OK, but had forgotten to
3351 make the test for code that should be rejected!
3352 
3353 Test is arrowfail004
3354 
3355]
3356[FIX Trac 1888; duplicate INLINE pragmas
3357simonpj@microsoft.com**20071114104701
3358 
3359 There are actually three things here
3360 - INLINE pragmas weren't being pretty-printed properly
3361 - They were being classified into too-narrow boxes by eqHsSig
3362 - They were being printed in to much detail by hsSigDoc
3363 
3364 All easy.  Test is rnfail048.
3365 
3366]
3367[Run the -frule-check pass more often (when asked)
3368simonpj@microsoft.com**20071114104632]
3369[GHCi debugger: added a new flag, -fno-print-binding-contents
3370Pepe Iborra <mnislaih@gmail.com>**20071113174539
3371 
3372 The contents of bindings show at breakpoints and by :show bindings
3373 is rendered using the same printer that :print uses.
3374 But sometimes the output it gives spans over too many lines and the
3375 user may want to be able to disable it.
3376]
3377[Fix Trac 1865: GHCi debugger crashes with :print
3378Pepe Iborra <mnislaih@gmail.com>**20071113170113]
3379[Replaced two uses of head b explicit pattern matching
3380Pepe Iborra <mnislaih@gmail.com>**20071013113136]
3381[Print binding contents in :show bindings
3382Pepe Iborra <mnislaih@gmail.com>**20071006123952]
3383[ Leftovers from the 1st GHCi debugger prototype
3384Pepe Iborra <mnislaih@gmail.com>**20071004204718]
3385[Following an indirection doesn't count as a RTTI step
3386Pepe Iborra <mnislaih@gmail.com>**20070928091941]
3387[FIX #1653 (partially): add -X flags to completion for :set
3388Simon Marlow <simonmar@microsoft.com>**20071113153257]
3389[Merge from Haddock: Add <<url>> for images
3390David Waern <david.waern@gmail.com>**20071112220537
3391 A merge of this patch:
3392 
3393   Mon Aug  7 16:22:14 CEST 2006  Simon Marlow <simonmar@microsoft.com>
3394     * Add <<url>> for images
3395     Submitted by: Lennart Augustsson
3396 
3397 Please merge to the 6.8.2 branch.
3398]
3399[Improve documentation of INLINE, esp its interactions with other transformations
3400simonpj@microsoft.com**20071112160240]
3401[Comment re Trac #1220
3402simonpj@microsoft.com**20071112154109]
3403[Merge from Haddock: Modify lexing of /../
3404David Waern <david.waern@gmail.com>**20071112023856
3405 
3406   Tue Aug 28 11:19:54 CEST 2007  Simon Marlow <simonmar@microsoft.com>
3407     * Modify lexing of /../
3408     This makes /../ more like '..', so that a single / on a line doesn't
3409     trigger a parse error.  This should reduce the causes of accidental
3410     parse errors in Haddock comments; apparently stray / characters are
3411     a common source of failures.
3412 
3413 Please merge this to the 6.8.2 branch.
3414]
3415[Merge from Haddock: allow blank lines inside code blocks
3416David Waern <david.waern@gmail.com>**20071112013439
3417 
3418   Tue Jan  9 14:14:34 CET 2007  Simon Marlow <simonmar@microsoft.com>
3419     * allow blank lines inside a @...@ code block
3420 
3421 Please merge this to the 6.8.2 branch
3422]
3423[Merge of a patch from the old Haddock branch:
3424David Waern <david.waern@gmail.com>**20071112013143
3425 
3426   Fri Jan  5 12:13:41 CET 2007  Simon Marlow <simonmar@microsoft.com>
3427     * Fix up a case of extra vertical space after a code block
3428 
3429 Please merge this to the 6.8.2 branch
3430]
3431[Remove ex-extralibs from libraries/Makefile
3432Ian Lynagh <igloo@earth.li>**20071111213618]
3433[Remove the X11 and HGL libraries from extralibs
3434Ian Lynagh <igloo@earth.li>**20071111213447
3435 Don Stewart, X11 maintainer, requested we remove X11, and HGL depends on it
3436 on Linux (and we don't try to build HGL on Windows).
3437]
3438[arrows is no longer an extralib
3439Ian Lynagh <igloo@earth.li>**20071027123656]
3440[Turn -fprint-bind-result off by default
3441Ian Lynagh <igloo@earth.li>**20071111001126]
3442[TAG 2007-11-11
3443Ian Lynagh <igloo@earth.li>**20071111161540]
3444Patch bundle hash:
344507e0774d9458ba381e82693789fb503bcd4ff986