Ticket #2191: traceCcs3.dpatch

File traceCcs3.dpatch, 137.6 KB (added by SamB, 6 years ago)

Okay, this one really does work.

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