Ticket #2191: traceCcs.dpatch

File traceCcs.dpatch, 137.4 KB (added by SamB, 6 years ago)

Primitive implementation

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