Ticket #1610: 1610.ghc.1.patch

File 1610.ghc.1.patch, 98.7 KB (added by igloo, 7 years ago)
Line 
1
2New patches:
3
4[Follow Array changes (adding numElements field)
5Ian Lynagh <igloo@earth.li>**20070810141614] {
6hunk ./compiler/ghci/ByteCodeAsm.lhs 158
7-             insns_barr = case insns_arr of UArray _lo _hi barr -> barr
8+             insns_barr = case insns_arr of UArray _lo _hi _n barr -> barr
9hunk ./compiler/ghci/ByteCodeAsm.lhs 161
10-             bitmap_barr = case bitmap_arr of UArray _lo _hi barr -> barr
11+             bitmap_barr = case bitmap_arr of UArray _lo _hi _n barr -> barr
12hunk ./compiler/ghci/ByteCodeLink.lhs 120
13-            ptrs_parr = case ptrs_arr of Array lo hi parr -> parr
14+            ptrs_parr = case ptrs_arr of Array _lo _hi _n parr -> parr
15hunk ./compiler/ghci/ByteCodeLink.lhs 124
16-            literals_barr = case literals_arr of UArray lo hi barr -> barr
17+            literals_barr = case literals_arr of UArray _lo _hi _n barr -> barr
18hunk ./compiler/ghci/ByteCodeLink.lhs 156
19+    getNumElements (IOArray marr) = stToIO $ getNumElements marr
20hunk ./compiler/ghci/ByteCodeLink.lhs 166
21-writeArrayBCO (IOArray (STArray _ _ marr#)) (I# i#) bco# = IO $ \s# ->
22+writeArrayBCO (IOArray (STArray _ _ _ marr#)) (I# i#) bco# = IO $ \s# ->
23hunk ./compiler/ghci/RtClosureInspect.hs 166
24-               elems = BCI.ptrs itbl
25-               ptrsList = Array 0 ((fromIntegral elems) - 1) ptrs
26+               elems = fromIntegral (BCI.ptrs itbl)
27+               ptrsList = Array 0 (elems - 1) elems ptrs
28hunk ./compiler/ghci/RtClosureInspect.hs 209
29-amap' f (Array i0 i arr#) = map (\(I# i#) -> case indexArray# arr# i# of
30-                                   (# e #) -> f e)
31-                                [0 .. i - i0]
32+amap' f (Array i0 i _ arr#) = map g [0 .. i - i0]
33+    where g (I# i#) = case indexArray# arr# i# of
34+                          (# e #) -> f e
35hunk ./compiler/ghci/RtClosureInspect.hs 730
36-appArr f a@(Array _ _ ptrs#) i@(I# i#) = ASSERT (i < length(elems a))
37-                                  case indexArray# ptrs# i# of
38-                                       (# e #) -> f e
39+appArr f a@(Array _ _ _ ptrs#) i@(I# i#)
40+ = ASSERT (i < length(elems a))
41+   case indexArray# ptrs# i# of
42+       (# e #) -> f e
43hunk ./compiler/simplCore/SimplMonad.lhs 48
44-import GHC.Arr  ( Array(..) )
45-
46-import Array           ( array, (//) )
47+import Data.Array
48+import Data.Array.Base (unsafeAt)
49hunk ./compiler/simplCore/SimplMonad.lhs 471
50-    case sw_tbl of { Array _ _ stuff ->
51-    \ switch ->
52-       case (indexArray# stuff (tagOf_SimplSwitch switch)) of
53-         (# v #) -> v
54-    }
55+    \ switch -> unsafeAt sw_tbl $ iBox (tagOf_SimplSwitch switch)
56hunk ./compiler/utils/FastString.lhs 81
57-import GHC.Arr         ( STArray(..), newSTArray )
58+import GHC.ST
59hunk ./compiler/utils/FastString.lhs 85
60-#define hASH_TBL_SIZE  4091
61+#define hASH_TBL_SIZE          4091
62+#define hASH_TBL_SIZE_UNBOXED  4091#
63hunk ./compiler/utils/FastString.lhs 169
64-   (STArray _ _ arr#) <- stToIO (newSTArray (0::Int,hASH_TBL_SIZE) [])
65-   newIORef (FastStringTable 0 arr#)
66+   tab <- IO $ \s1# -> case newArray# hASH_TBL_SIZE_UNBOXED [] s1# of
67+                           (# s2#, arr# #) ->
68+                               (# s2#, FastStringTable 0 arr# #)
69+   newIORef tab
70}
71
72Context:
73
74[Cabal depends on -package unix when GHC <= 6.2
75Simon Marlow <simonmar@microsoft.com>**20070809100139]
76[joinToTargets to emit fixup code even when movement graph contains cycles
77Clemens Fruhwirth <clemens@endorphin.org>**20070714083241
78 
79 First, cycles can only start of with registers and their destination
80 must involve a register location. This is because memory locations are
81 allocated exclusively for a virtual register and hence can never cause
82 a conflict in the assignment, hence need no fixup code. Therefore, we
83 only have to deal with InReg -> InReg, or InReg -> InReg/InMem
84 movements. 
85 
86 The strategy is to take the first cycle element, which is guaranteed
87 to start with a register, spill it to a fresh memory location, compute
88 the fixup for the rest, and restore from the spill slot to its
89 destinations. The "rest" will degenerate into an acyclic scc, so we do
90 not need take care of the empty list case in CyclicScc.
91  ***END OF DESCRIPTION***
92 
93 Place the long patch description above the ***END OF DESCRIPTION*** marker.
94 The first line of this file will be the patch name.
95 
96 
97 This patch contains the following changes:
98 
99 M ./compiler/nativeGen/RegisterAlloc.hs -6 +27
100]
101[Make SpecConstr specialise for constant arguments again
102simonpj@microsoft.com**20070805220335
103 
104 Consider
105   lvl = Just True
106 
107   foo :: Maybe Bool -> Int -> Int
108   foo (Just True) i = i
109   foo _           i = foo lvl i
110 
111 SpecConstr should specialise foo, but it wasn't doing so (spotted
112 by Roman).
113 
114 Reason: lvl's unfolding wasn't in the cloned version of lvl.
115 Solution: extend the value environment to record top-level bindings too
116 
117 At the same time I made it work if 'lvl' is a lambda, in which case it
118 is again worth specialisg.  This meant renaming ConEnv to ValueEnv,
119 and adding a case for 'LambdaVal'.
120 
121 (To make specialisation on lambdas work properly, we have to do lambda
122 lifting as well, but this gets part of the way, and fixes a bug too.)
123 
124 
125]
126[Comments only: explain why StgConApp is still useful
127simonpj@microsoft.com**20070805214404]
128[Add missing case to sizeofPrimRep
129simonpj@microsoft.com**20070804174759]
130[Fix Trac #1037
131simonpj@microsoft.com**20070804174420
132 
133 It makes *sense* for a foreign import to have a zero-sized return, thus
134 
135   foreign import ccall foo :: Int -> State# RealWorld
136 
137 but it's not clear that it's useful, and it requires some back-end (a
138 Hint for void types) to make it go right through. It's not clear that
139 we really want this facility, so rather than fixing the code
140 generator, I'm just making the construct illegal for now.
141 
142]
143[In GHCi, filter instances by what is in scope, not just by what is in scope unqualified
144simonpj@microsoft.com**20070804173539
145 
146 Trac #1581 was doing too much filtering; it even filtered out intances
147 defined in this very module!  The new rule shows more instances, but
148 hopefully not to many.
149 
150 Furthermore I have moved the filtering out of TcRnDriver (where it does
151 not belong) to InteractiveEval. And I've added a note to the documentation.
152 
153]
154[Improve pretty-printing of 'foreign' declarations
155simonpj@microsoft.com**20070804172151]
156[FIX read030 (error message wibble)
157Simon Marlow <simonmar@microsoft.com>**20070809085817]
158[Fix the use of emptyCopyFlags
159Ian Lynagh <igloo@earth.li>**20070808231620]
160[Removed a dependency on Cabal that caused a build failure when Cabal changed
161Magnus Jonsson <magnus@smartelectronix.com>**20070808221029]
162[remove gratuitous usage of Double in favor of Rational
163Isaac Dupree <id@isaac.cedarswampstudios.org>**20070807122234]
164[Warning police: eliminate all defaulting within stage1
165Isaac Dupree <id@isaac.cedarswampstudios.org>**20070807121454
166 Defaulting makes compilation of multiple modules more complicated (re: #1405)
167 Although it was all locally within functions, not because of the module
168 monomorphism-restriction... but it's better to be clear what's meant, anyway.
169 I changed some that were defaulting to Integer, to explicit Int, where Int
170 seemed appropriate rather than Integer.
171]
172[NOINLINE the global FastString.string_table
173Isaac Dupree <id@isaac.cedarswampstudios.org>**20070807002859]
174[comment FastMutInt possibilities
175Isaac Dupree <id@isaac.cedarswampstudios.org>**20070806211914]
176[Add blurb in the user guide re stdout buffering differing between GHC and GHCi
177Ian Lynagh <igloo@earth.li>**20070807193139]
178[Use emptyRegisterFlags and emptyCopyFlags for reduced fragility
179Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20070806152824
180 So we will inherit default values for any new flags that get added,
181 so things should not break if new flags are added.
182]
183[Follow Cabal changes
184Ian Lynagh <igloo@earth.li>**20070805175116]
185[Add a --supported-languages flag
186Ian Lynagh <igloo@earth.li>**20070805153341
187 Print the list of strings that are accepted in a LANGUAGE pragma,
188 or as a -XFoo flag. (No can be prepended to any of the strings).
189]
190[Whitespace
191Ian Lynagh <igloo@earth.li>**20070805150302]
192[Add Distribution.System to compat
193Ian Lynagh <igloo@earth.li>**20070805132856]
194[Canonicalise flags in error message
195Ian Lynagh <igloo@earth.li>**20070804211415]
196[Canonicalise the flag format in the user guide
197Ian Lynagh <igloo@earth.li>**20070804210145]
198[We now need to pass a version to extensionsToGHCFlag
199Ian Lynagh <igloo@earth.li>**20070804192431]
200[Fix -fallow* flags
201Ian Lynagh <igloo@earth.li>**20070804164930]
202[Add more of Cabal to compat
203Ian Lynagh <igloo@earth.li>**20070804162241]
204[Rename Opt_Allow* to Opt_* to match the language names
205Ian Lynagh <igloo@earth.li>**20070804155425]
206[Rename Opt_TH to Opt_TemplateHaskell to match the language name
207Ian Lynagh <igloo@earth.li>**20070804154805]
208[Add -fparr deprecated flag, and change -XParr to -XPArr
209Ian Lynagh <igloo@earth.li>**20070804154505
210 -fparr did exist before, it just wasn't documented.
211]
212[Rename Opt_FFI to Opt_ForeignFunctionInterface to match the language name
213Ian Lynagh <igloo@earth.li>**20070804154234]
214[Remove many of the new flag variants permitted
215Ian Lynagh <igloo@earth.li>**20070804153412
216 Now we only allow -XFooBar syntax, not alternate case, hyphens or -f.
217 There are some deprecated -f flags accordingly.
218]
219[Add a comment about when maybePrefixMatch can be removed
220Ian Lynagh <igloo@earth.li>**20070804153333]
221[Typo in a comment
222Ian Lynagh <igloo@earth.li>**20070804020156]
223[FIX -ddump-cmm by temporarily disabling the gc_target part (#1582)
224Simon Marlow <simonmar@microsoft.com>**20070803102143
225 
226]
227[FIX part of #1372, improvements to the recompilation checker
228Simon Marlow <simonmar@microsoft.com>**20070803102045
229 This patch adds a check that each imported module is listed in
230 the dependencies from the previous interface.  It catches the
231 following cases and forces recompilation:
232    - an exposed package has been upgraded
233    - we are compiling with different package flags
234    - a home module that was shadowing a package module has been removed
235    - a new home module has been added that shadows a package module
236 
237 I haven't yet added the package timestamping as described in #1372.
238]
239[mkLiveness: when calculating the size of a parameter, round up not down.
240Simon Marlow <simonmar@microsoft.com>**20070803093229
241 Fixes read002 on x86_64 (and maybe others).  The stg_ap_f_info info
242 table had the wrong liveness on it, because the float had been treated
243 as having zero size.
244]
245[Add PA dfuns to VectInfo
246Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070803020936]
247[Update the boring file
248Ian Lynagh <igloo@earth.li>**20070803183835]
249[Catch exceptions on Windows, to stop it popping up dialog boxes
250Ian Lynagh <igloo@earth.li>**20070803183229
251 Adaptated from code from Sigbjorn Finne
252]
253[Add a --ignore-failure flag to push-all script
254Ian Lynagh <igloo@earth.li>**20070802213300]
255[Dump renamer output with -ddump-rn for command-line entry in ghci
256simonpj@microsoft.com**20070802165110]
257[Fix Trac #1525
258simonpj@microsoft.com**20070802111204
259 
260 A Name used to have a Parent, but no longer has.  When we want to
261 print info about data type T and data constructor MkT, the info about
262 T already describes MkT so we want to discard the latter.  Now that
263 Names don't have a Parent, we must do that in a different way,
264 using implicitTyThings
265 
266 Test is ghci011
267 
268 
269]
270[Wibbble to last fix to generalisation (again!); fixes Trac #1575
271simonpj@microsoft.com**20070802085136]
272[Small error-message change
273simonpj@microsoft.com**20070801141339]
274[Vectorise DataCon workers
275Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070802043712]
276[Include original tycon in PAInstance
277Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070802042938]
278[More refactoring
279Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070802022859]
280[Refactoring
281Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070802022840]
282[Thread lifting context implicitly in the vectorisation monad
283Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070802022503]
284[Fix calls to replicatePA
285Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801045656]
286[Trace vectorisation failures
287Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801045640]
288[Reuse the lifting context Var
289Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801042441]
290[Move code
291Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801042404]
292[Nicer names for hoisted functions
293Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801041322]
294[Improve closure generation for functions with multiple parameters
295Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801034119]
296[Rename functions
297Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801014056]
298[Use new closure generation code in vectorisation
299Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070801013728]
300[More vectorisation-related smart constructors
301Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731065024]
302[Use VectCore stuff in vectorisation
303Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731063448]
304[Move vectorisation-related smart constructors into a separate module
305Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731062711]
306[Use a Var instead of a CoreExpr as the lifting context during vectorisation
307Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731061610]
308[Simplify handling of variables during vectorisation
309Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731060917]
310[Simplify closure generation code
311Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731055419]
312[New closure generation code
313Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731044029]
314[Refactoring
315Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070731040621]
316[Optimise parallel arrays of products
317Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726071308]
318[FIX recent PPC crashes introduced by the pointer-tagging patch (I hope)
319Simon Marlow <simonmar@microsoft.com>**20070801140231
320 There was an accidental endian-dependency in changes related to RET_FUN.
321 The changes in question weren't strictly necessary - they were left
322 over from the original workaround for the compacting GC problems, so
323 I've just reverted those changes in this patch, which should hopefully
324 fix the PPC problems.
325]
326[revert accidental modification of version number
327Simon Marlow <simonmar@microsoft.com>**20070801133938]
328[Fix a knot-tying bug with ghc --make
329simonpj@microsoft.com**20070801124907
330 
331 This bug showed up when I touched Data.Generics.Schemes, and then said
332        make build.library.base
333 This compiles the base library with --make, and I got an assertion failure
334 in TcIface.  The explanation is in Note [Tying the knot] in TcIface.
335 
336 As well as fixing the bug, I also impoved the assertion message.
337 
338 This might fix or improve other knot-tying problems with --make
339 
340]
341[Spelling error
342simonpj@microsoft.com**20070801124852]
343[Clarify comments
344simonpj@microsoft.com**20070706094836]
345[Fix generalisation during type inference (again); fixes Trac #1564
346simonpj@microsoft.com**20070801072612
347 
348 Figuring out which type variables to generalise when inferring the type
349 of a let-bound function is always trickier than I think!  This patch
350 fixes a bug (related, inevitably, to functional depenencies) found by
351 iampure, Trac #1564.  I'll add a test shortly.
352 
353]
354[Only add -rpath to linker invocation when -dynamic
355Clemens Fruhwirth <clemens@endorphin.org>**20070801092429]
356[fix the hardtop test for ghc-6.2.x, and make it notice failure earlier
357Simon Marlow <simonmar@microsoft.com>**20070801083257]
358[compile the -inplace programs using $(HC), not $(GHC)
359Simon Marlow <simonmar@microsoft.com>**20070731114925
360 $(UseStage1) modifies $(HC) rather than $(GHC)
361]
362[Change the strategy to determine dynamic data access
363Clemens Fruhwirth <clemens@endorphin.org>**20070731095953
364 
365 Instead of attaching the information whether a Label is going to be
366 accessed dynamically or not (distinction between IdLabel/DynLabel and
367 additional flags in ModuleInitLabel and PlainModuleInitLabel), we hand
368 dflags through the CmmOpt monad and the NatM monad. Before calling
369 labelDynamic in PositionIndependentCode, we extract thisPackage from
370 dflags and supply the current package to labelDynamic, so it can take
371 this information into account instead of extracting it from the labels
372 itself. This simplifies a lot of code in codeGen that just hands
373 through this_pkg.
374 
375]
376[Translate dyn in GhcLibWays into --enable-shared for Cabal
377Clemens Fruhwirth <clemens@endorphin.org>**20070723134124]
378[Add proper header so that cygwin recognizes this file as executable
379Clemens Fruhwirth <clemens@endorphin.org>**20070722082050]
380[Add hardwire-lib-paths option and make it default for inplace invocations
381Clemens Fruhwirth <clemens@endorphin.org>**20070717192622]
382[Add import facility to cmm parser
383Clemens Fruhwirth <clemens@endorphin.org>**20070713210845
384 
385 The cmm parser classified all unknown variables as imported. This
386 behaviour is not changed with this patch. Explicitly imported
387 variables get a different internal label type, namely ForeignLabel
388 instead of RtsLabel. In PIC compilation, the NCG creates dynamic
389 access for ForeignLabel, while RtsLabel are not treated as PIC when
390 -package rts. Hence, putting explicit imports into cmm files enables
391 the NCG to distinguish between RTS-external and RTS-internal symbols,
392 and create the appropriate code.
393]
394[Fix the knot-tying in loopDecls to actually do what its comment tells: provide access to global declarations
395Clemens Fruhwirth <clemens@endorphin.org>**20070713210355]
396[windres to use the gcc given as --with-cc.
397Clemens Fruhwirth <clemens@endorphin.org>**20070703145653]
398[Change package name mangling when linking against DSOs
399Clemens Fruhwirth <clemens@endorphin.org>**20070628105831]
400[Allow access via manually generated SymbolPtrs. Generalize pprImportedSymbol for 64 bit archs.
401Clemens Fruhwirth <clemens@endorphin.org>**20070620142023]
402[FIX compacting GC (bug1010, and other failures)
403Simon Marlow <simonmar@microsoft.com>**20070730153959
404 Compacting GC interacts badly with the new pointer-tagging feature, as
405 it also uses the low bits of a pointer to encode some information
406 during a collection.  My original workaround didn't work, this more
407 elaborate fix should be better.
408]
409[Make lndir work on Windows (by copying)
410Ian Lynagh <igloo@earth.li>**20070730223152]
411[Make lndir whitespace consistent
412Ian Lynagh <igloo@earth.li>**20070730193012]
413[Set hardtop_plat to hardtop to find out what, if anything, breaks
414Ian Lynagh <igloo@earth.li>**20070730192513]
415[Use our own (Haskell) pwd to find the tree root
416Ian Lynagh <igloo@earth.li>**20070730190808]
417[#1559 is worked around elsewhere, so validate no longer needs to
418Ian Lynagh <igloo@earth.li>**20070730182806]
419[FIX #1559, #1560.  Rearrange the way we do ifBuildable...
420Simon Marlow <simonmar@microsoft.com>**20070730134346
421 ifBuildable now returns an exit code, with 1 indicating an unbuildable
422 non-core package, and 0 otherwise.  Hence we can now invoke the
423 recursive make from the shell, sidestepping the problems in #1559 and
424 #1560.
425 
426]
427[* ghc-asm: Finally did away with $* in a way that works with Perl 5.6~5.10+, by appending /m to all regexes.
428audreyt@audreyt.org**20070730122216]
429[Pointer Tagging
430Simon Marlow <simonmar@microsoft.com>**20070727104157
431   
432 This patch implements pointer tagging as per our ICFP'07 paper "Faster
433 laziness using dynamic pointer tagging".  It improves performance by
434 10-15% for most workloads, including GHC itself.
435 
436 The original patches were by Alexey Rodriguez Yakushev
437 <mrchebas@gmail.com>, with additions and improvements by me.  I've
438 re-recorded the development as a single patch.
439 
440 The basic idea is this: we use the low 2 bits of a pointer to a heap
441 object (3 bits on a 64-bit architecture) to encode some information
442 about the object pointed to.  For a constructor, we encode the "tag"
443 of the constructor (e.g. True vs. False), for a function closure its
444 arity.  This enables some decisions to be made without dereferencing
445 the pointer, which speeds up some common operations.  In particular it
446 enables us to avoid costly indirect jumps in many cases.
447 
448 More information in the commentary:
449 
450 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/HaskellExecution/PointerTagging
451]
452[Documentation updates for #1177
453Simon Marlow <simonmar@microsoft.com>**20070726094030
454 We now have a section that describes what hs_exit() does (including
455 the "wait for foreign calls to return" behaviour), and more
456 documentation on creating libraries of Haskell code.  I also imported
457 the section "Beware of DllMain()!" from the haskell.org wiki, with
458 some minor editing.
459]
460[Mark PA dictionaries as __inline_me
461Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726053001]
462[Add missing coercion
463Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726052830]
464[Make sure DEFAULT always comes first in generated PA dictionaries
465Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726052239]
466[Fix generation of lengthPA
467Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726052108]
468[Modify generation of PA dictionaries to match GHC's usual behaviour
469Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726044101]
470[Use the right dictionary when calling lengthPA
471Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726031247]
472[Automatically derive PA for vectorised tycons
473Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726031238]
474[PA instance generation code (not used yet)
475Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726024551]
476[Create exported names in vectorisation monads
477Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726024144]
478[Add vectorisation-related OccName derivation scheme
479Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070726024111]
480[PA dictionary generation
481Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725041242]
482[Move code
483Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725034813]
484[Generate replicatePA
485Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725034354]
486[Generate lengthPA method
487Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725034346]
488[Use emptyPA in vectorisation
489Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725033530]
490[Add emptyPA to PrelNames
491Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725030209]
492[More refactoring
493Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725023017]
494[Refactoring
495Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070725022441]
496[make validate work on Windows
497Simon Marlow <simonmar@microsoft.com>**20070725135751
498 This includes automatically adding --build=i386-unknown-mingw32 and
499 --with-gcc to ./configure, and disabling -j2 (see #1559).
500 
501 Also: you can now say
502 
503   CPUS=3 ./validate
504 
505 and the script will pass -jN to make (where N = $CPUS + 1).  In the
506 future, when we fix #1558, it can pass THREADS=N to the testsuite, too.
507]
508[FIX #1177, partially at least.
509Simon Marlow <simonmar@microsoft.com>**20070725135504
510 Now we don't wait for outstanding IO requests when shutting down at
511 program exit time, but we still wait when shutting down a DLL (via
512 hs_exit()).  There ought to be a better way to do this, but
513 terminating the threads forcibly is not a good idea (it never is: the
514 thread might be holding a mutex when it dies, for example).
515 
516 I plan to add some docs to the user guide to describe how to shut
517 down a DLL properly.
518]
519[hs_exit()/shutdownHaskell(): wait for outstanding foreign calls to complete before returning
520Simon Marlow <simonmar@microsoft.com>**20070724153057
521 This is pertinent to #1177.  When shutting down a DLL, we need to be
522 sure that there are no OS threads that can return to the code that we
523 are about to unload, and previously the threaded RTS was unsafe in
524 this respect.
525 
526 When exiting a standalone program we don't have to be quite so
527 paranoid: all the code will disappear at the same time as any running
528 threads.  Happily exiting a program happens via a different path:
529 shutdownHaskellAndExit().  If we're about to exit(), then there's no
530 need to wait for foreign calls to complete.
531 
532]
533[Use "set -e" in validate, so "sh validate" still has it set
534Ian Lynagh <igloo@earth.li>**20070729131809]
535[Follow cabal configurations changes
536Ian Lynagh <igloo@earth.li>**20070729110711]
537[Fix building the HEAD with itself
538Ian Lynagh <igloo@earth.li>**20070726181622]
539[Link with hpc even if GhcWithInterpreter is not set
540Ian Lynagh <igloo@earth.li>**20070726164201]
541[FIX #1215: GHC fails to respect the maximal munch rule while lexing "qualified reservedids"
542Simon Marlow <simonmar@microsoft.com>**20070724130417
543   
544 I didn't actually fix this to respect Haskell 98, instead I changed it
545 to follow the proposal for Haskell':
546 
547 http://hackage.haskell.org/cgi-bin/haskell-prime/trac.cgi/wiki/QualifiedIdentifiers
548 
549 Rationale:
550 
551   - We didn't respect Haskell 98 with respect to qualified symbols either
552   - The Haskell' change makes things much cleaner
553   - Obeying the Haskell 98 spec literally has some unintended
554     consequences (e.g. M.where must lex as "M.wher" "e")
555   - Any programs that compiled before this change and do not compile
556     after it were illegal according to Haskell 98 anyway.
557]
558[FIX #1555: Remove "exp -> pat" production in stmts
559Simon Marlow <simonmar@microsoft.com>**20070723141023
560 It looks like this was an experiment that accidentally got committed,
561 somewhere between 6.0 and 6.2.
562 
563 
564]
565[in hpc-tools, removing the use of %error, to allow happy 1.15 to be used.
566andy@galois.com**20070721000621]
567[hpc-tools: improving flag processing and help messages, small bug fixes.
568andy@galois.com**20070720235703]
569[Add unreg/tables-next-code output to +RTS --info
570Ian Lynagh <igloo@earth.li>**20070723100135]
571[Add a +RTS --info flag print various info; partially fixes trac #1517
572Ian Lynagh <igloo@earth.li>**20070722170042]
573[Document the new -X flags in the flag reference
574Ian Lynagh <igloo@earth.li>**20070722151934]
575[Check for framework failures and unexpected passes in validate
576Ian Lynagh <igloo@earth.li>**20070722135623]
577[Use CLEANUP=1 when running the testsuite from validate
578Ian Lynagh <igloo@earth.li>**20070722125431]
579[Hack: copy ld.exe to compiler/gcc-lib so Cabal can find it
580Ian Lynagh <igloo@earth.li>**20070721200043]
581[Fix the Windows build
582Ian Lynagh <igloo@earth.li>**20070721011817]
583[Fix -split-obj on Mac OS via -fasm
584Clemens Fruhwirth <clemens@endorphin.org>**20070706112449
585 
586 The problem of the splitter was that it re-emitted section directives
587 for every dynamic label found. The following was torn apart
588 
589 .symbol_stubs
590 .indirect <symbol>
591 L_<symbol>$stub:
592        jmp *...
593 L_<symbol>$stub_binder:
594        ..somebinding code..
595 
596 into
597 
598 .symbol_stubs
599 .indirect_symbol <symbol>
600 L_<symbol>$stub:
601        jmp *...
602 .symbol_stubs <--- NEW
603 L_<symbol>$stub_binder:
604        ..somebinding code..
605 
606 This is incorrect as the Mac OS assembler enforces that every new code
607 section that goes into .symbol_stubs is associated with the linker
608 directive .indirect_symbol. This sanity check is obviously violated
609 when we reemit .symbol_stub in the splitter. The solution is to ignore
610 everything that ends with $stub_binder as new label, and chuck it into
611 a single label for $stub.
612 
613 Also the splitter has to recognize .section __DATA... for the lazy_ptr
614 indirection symbol. Adds a reminder to PositionIndependentCode.hs to
615 take care of the splitter when the code generation is changed.
616 
617 This should not affect -fvia-c as the code generated by the C compiler
618 is entirely different.
619 
620]
621[Made the label generation in the Cmm parser more direct
622Michael D. Adams <adamsmd@cs.indiana.edu>**20070718203300]
623[Typo fix in comment
624Michael D. Adams <adamsmd@cs.indiana.edu>**20070716182906]
625[Default tick interval was 50ms, change it to 20ms
626Simon Marlow <simonmar@microsoft.com>**20070718112652
627 I think 50ms was accidental, prior to 6.6 it used to be 20ms
628]
629[remove unused TICK_FREQUENCY
630Simon Marlow <simonmar@microsoft.com>**20070718110655]
631[wakeUpSleepingThreads: fix off by one
632Simon Marlow <simonmar@microsoft.com>**20070718092754
633 The symptom of this bug is after the time of a threadDelay has
634 expired, the RTS does a whole slew of extra select() calls.
635 This should help with #1523, but it's not the whole story.
636]
637[Refactoring
638Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718045553]
639[Better names for PArray instance coercions
640Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718045051]
641[Add generated PArray instances to instance environments
642Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718044433]
643[Nicer names for generated PArray instances
644Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718041411]
645[Generate PArray instances of vectorised tycons
646Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718040828]
647[Generation of DataCons for implicit PArray instances
648Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718025235]
649[Fix two typos
650Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718025224]
651[More vectorisation-related OccNames
652Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070718025159]
653[darcs-all: allow relative path for repo in local fs
654Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070718034511]
655[When registering base during installation, don't hide GHC.Prim
656Ian Lynagh <igloo@earth.li>**20070719163920]
657[Create .hi-boot and .o-boot files in --make mode; fixes trac #1322
658Ian Lynagh <igloo@earth.li>**20070719112736
659 We were recompiling the .hs-boot files each time, as we were never
660 writing out the compilation results.
661]
662[Fixes for the unreg build
663Ian Lynagh <igloo@earth.li>**20070718111751
664 * Fix code output order when printing C so things are defined before
665   they are used.
666 * Generate _ret rather than _entry functions for INFO_TABLE_RET.
667 * Use "ASSIGN_BaseReg" rather than "BaseReg =".
668]
669[Factor 'callerSaveVolatileRegs' out of the NCG and into CgUtil
670Michael D. Adams <adamsmd@cs.indiana.edu>**20070717014257
671 
672 This is needed because CgForeign and parts of the CPS pass now use
673 'callerSaveVolatileRegs' and not all platforms have access to the NCG.
674]
675[Implement the RTS side of GHC.Environment.getFullArgs
676Ian Lynagh <igloo@earth.li>**20070717142050]
677[Adding pushing of hpc translation status through hi files.
678andy@galois.com**20070717073510
679 
680 Now, if a single module *anywhere* on the module tree is built with
681 -fhpc, the binary will enable reading/writing of <bin>.tix.
682 
683 Previously, you needed to compile Main to allow coverage to operate.
684 
685 This changes the file format for .hi files; you will need to recompile every library.
686 
687]
688[Handle unlifted tycons and tuples correctly during vectorisation
689Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717064816]
690[Initialise global vectorisation environment properly
691Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717064233]
692[Vectorise type declarations
693Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717063309]
694[Vectorisation of data declarations (incomplete)
695Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717061306]
696[Add vectorisation environment transformers
697Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717054943]
698[Refactor
699Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717052835]
700[Remove mapping from tycons to PA dictionaries from vect environment
701Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717052323]
702[Add datacons to vectorisation environment
703Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717052239]
704[Add fixV
705Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717051527]
706[Classification of tycons for vectorisation
707Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717050337]
708[Clean up
709Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717041957]
710[Move type vectorisation code to a separate module
711Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070717041645]
712[Pass correct dictionary to lengthPA for single-element environments
713Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716110819]
714[Abstract over all in-scope type variables when creating closures
715Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716105847]
716[Pass PA dictionaries after all type arguments
717Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716105619
718 
719 This makes the code slightly simpler but only works because we do not support
720 rank-n types.
721]
722[Fix bug in lifted environment inspection code
723Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716072338]
724[Lifting contexts have type Int#
725Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716065155
726 
727 This tracks the corresponding change in package ndp. With this patch, we
728 finally can vectorise something (f x = x).
729]
730[Fix bug in vectorisation
731Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716063548]
732[Fix bad bug in type vectorisation
733Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716062833]
734[Make vectorisation part of the optimiser pipeline
735Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716061900]
736[Get NDP prelnames from the right modules
737Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716061816]
738[Vectorise top-level bindings of a module
739Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716052406]
740[Vectorisation of top-level bindings
741Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716051139]
742[Store hoisted bindings in the global environment during vectorisation
743Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716050019]
744[Add support for name cloning to vectorisation monad
745Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716044826]
746[Refactoring
747Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716044801]
748[Adapt interface file code for vectorisation
749Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716035739
750 
751 For the most part, this patch simply renames functions which had been used
752 for closure conversion and hence have CC in their name. It also changes the
753 OccNames generated by vectorisation.
754]
755[Collect hoisted vectorised functions
756Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070716021151]
757[First incomplete version of closure vectorisation
758Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713073318]
759[Refactor slightly
760Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713073304]
761[Add utility function for vectorisation
762Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713073227]
763[Add closedV
764Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070713072843]
765[Export wrapFamInstBody and unwrapFamInstScrut
766Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070712045434]
767[Refactoring
768Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070711044820]
769[Add whitespace
770Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070711035839]
771[Only vectorise rank-1 expressions
772Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070711035616]
773[Move some vectorisation utility functions
774Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710140934]
775[Modify PA dictionary computation to work with the class-based scheme
776Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710140221]
777[Clean up handling of PA dictionaries
778Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710133124]
779[FIX problem with not using the compat lib for Set in hpc tools.
780andy@galois.com**20070715213602]
781[Properly parse GC blocks for functions with info tables
782Michael D. Adams <adamsmd@cs.indiana.edu>**20070715204116]
783[Removed 'allow_header_set' argument from 'pack_continuation'.
784Michael D. Adams <adamsmd@cs.indiana.edu>**20070715202235
785 Because branches might now go to continuations and become calls to
786 continuations, 'allow_header_set' isn't always correct.
787 Removing that parameter makes the conservative approximation.
788 A better approximation might save one memory store is some cases.
789]
790[Fixed conditional branches to proc points
791Michael D. Adams <adamsmd@cs.indiana.edu>**20070715202033
792 These could occur due to GC checks.
793]
794[Removed unused variable from compiler/cmm/CmmCPS.hs
795Michael D. Adams <adamsmd@cs.indiana.edu>**20070715201717]
796[Removed unused import from compiler/cmm/CmmCPS.hs
797Michael D. Adams <adamsmd@cs.indiana.edu>**20070715201638]
798[Keep the CPS pass from creating proc points due to unreachable parents.
799Michael D. Adams <adamsmd@cs.indiana.edu>**20070715162003
800 
801 The parser/flattener will generate an extra block after an if/else
802 statement even if both branches exit the function.  So it is possible
803 for the input to the CPS pass to have dead/unreachable blocks.
804 
805 If a dead block goes to a live block then the live block would
806 have more parents than the dead block and prior to this patch
807 the live block would then be identified as a proc point.
808 This is fixed by adding a check to see if the parent
809 has at least one owner.
810]
811[Fixed CPS to account for info tables not being next to code
812Michael D. Adams <adamsmd@cs.indiana.edu>**20070715011141]
813[Fix the CPS pass to pack the continuation with correct label form.
814Michael D. Adams <adamsmd@cs.indiana.edu>**20070714184955
815 It was using the return point label before; now it uses the info label.
816]
817[Typo
818Ian Lynagh <igloo@earth.li>**20070716235635]
819[Corrections for warnings in the user guide
820Ian Lynagh <igloo@earth.li>**20070716231741]
821[Sync the UG entries for -Wall, -w etc with reality
822Ian Lynagh <igloo@earth.li>**20070716221943]
823[-w should turn off /all/ options, not just the -Wall ones
824Ian Lynagh <igloo@earth.li>**20070716221442]
825[Implement -fwarn-dodgy-imports
826Ian Lynagh <igloo@earth.li>**20070716220635
827 You used to only be able to enable Opt_WarnDodgyImports with -W or -Wall.
828 This patch adds the flag to en/disable it by name.
829 (DodgyImports == importing T(..) when only T is exported).
830]
831[Doc tweaks
832Ian Lynagh <igloo@earth.li>**20070716212813]
833[Remove note that -E behaviour has changed (6.0 has the same note)
834Ian Lynagh <igloo@earth.li>**20070716183624]
835[Doc tweaks
836Ian Lynagh <igloo@earth.li>**20070716183540]
837[User guide tweaks
838Ian Lynagh <igloo@earth.li>**20070716180352]
839[Doc tweak
840Ian Lynagh <igloo@earth.li>**20070716174735]
841[Doc tweak
842Ian Lynagh <igloo@earth.li>**20070716174428]
843[Correct user guide on when .ghci is read
844Ian Lynagh <igloo@earth.li>**20070716172448]
845[Tweak punctuation in the user guide
846Ian Lynagh <igloo@earth.li>**20070716171550]
847[ghci command docs tweaks
848Ian Lynagh <igloo@earth.li>**20070716170601]
849[Fix alphabetical ordering in :? output
850Ian Lynagh <igloo@earth.li>**20070716165149]
851[Fix alphabetical ordering in user guide
852Ian Lynagh <igloo@earth.li>**20070716155544]
853[Typo
854Ian Lynagh <igloo@earth.li>**20070716153413]
855[Remove another instance of the banner from the user guide
856Ian Lynagh <igloo@earth.li>**20070715221444]
857[In user guide, don't claim that ghci never generates .hi files
858Ian Lynagh <igloo@earth.li>**20070715221119
859 With -fobject-code it now can do.
860]
861[ghci debugger documentation tweaks
862Ian Lynagh <igloo@earth.li>**20070715220517]
863[Fix typo
864Ian Lynagh <igloo@earth.li>**20070715122229]
865[ghci doc tweaks
866Ian Lynagh <igloo@earth.li>**20070715122128]
867[Fix for print022 (round up when dividing type size by word size)
868Ian Lynagh <igloo@earth.li>**20070714223940
869 From Pepe Iborra (mnislaih)
870]
871[Automatic RTTI for ghci bindings
872Pepe Iborra <mnislaih@gmail.com>**20070714114946
873 
874 With this patch, ghci runs rtti (bounded in the term treewith a max. depth of 10)
875 automatically after evaluating any expression in the interactive env.
876 In addition, a rtti step is performed on the local bindings in a breakpoint,
877 before returning control to the user
878 
879 Let's see how well this works in practice
880 
881]
882[Teach :print to not panic when the DataCon for a closure is not exposed by the .hi file
883Pepe Iborra <mnislaih@gmail.com>**20070712174323
884 
885 Previously the behaviour was to panic.
886 Now it will print an approximated representation,
887 using the names (enclosed in keys, i.e. "<...>")
888 and the pointed subterms. Non pointed subterms cannot
889 be included in this representation:
890 
891 Prelude> let se = Data.Sequence.fromList (map Just "abc")
892 Prelude> :eval se
893 ()
894 Prelude> :p se
895 se = <Data.Sequence.Deep> (<Data.Sequence.One> (_t1::t)) () (<Data.Sequence.Two> (_t2::t) (_t3::t))
896 Prelude> :eval _t2
897 ()
898 Prelude> :p se
899 se = <Data.Sequence.Deep> (<Data.Sequence.One> (_t4::t1)) () (<Data.Sequence.Two> (Just 'b') (_t5::t1))
900 Prelude>
901 
902 This patch also includes some fixes in the pretty printer
903 for the Term datatype
904 
905 
906]
907[Fix an array indexing bug in getClosureData (used by :print)
908Pepe Iborra <mnislaih@gmail.com>**20070712163012]
909[remove some leftovers of the first ghci debugger prototype
910Pepe Iborra <mnislaih@gmail.com>**20070711234514]
911[Fix imports & add missing type signatures
912Pepe Iborra <mnislaih@gmail.com>**20070711101749]
913[Ask for a HscEnv instead of a Session in InteractiveEval.obtainTerm
914Pepe Iborra <mnislaih@gmail.com>**20070711095421
915 
916 This does a better job of showing that obtainTerm does not alter the Session
917]
918[Add a max depth bound to the bfs implementation in cvReconstructType,
919Pepe Iborra <mnislaih@gmail.com>**20070711092006
920 
921 to avoid looping when reconstructing insufficiently evaluated, circular structures
922]
923[FIX panic from the GHC API
924David Waern <davve@dtek.chalmers.se>**20070714124743
925 In hscFileCheck, initialize md_vect_info with noVectInfo instead of
926 a panic value, since this is a strict field.
927]
928[init mg_inst_env when reading ext core
929Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070713073729]
930[Warning Police: No newline at end of file
931Michael D. Adams <adamsmd@cs.indiana.edu>**20070713204028]
932[Warning Police: Unused imports
933Michael D. Adams <adamsmd@cs.indiana.edu>**20070713201913]
934[Added libraries/parallel to .darcs-boring
935Michael D. Adams <adamsmd@cs.indiana.edu>**20070713182117]
936[Adding draft and show to hpc
937andy@galois.com**20070712194200
938 
939 we now have
940   
941   hpc draft <TIX_FILE>
942 
943 This drafts up a candidate overlay for 100% coverage.
944 
945 and
946 
947   hpc show  <TIX_FILE>
948 
949 This show verbose details about a tix file; mainly for debugging.
950 
951 
952]
953[Fixing Hpc SrcSpan usage; rejecting SrcSpans that are not in the source file
954andy@galois.com**20070712171646
955 
956 Now, if you #include a file, you do not get any hpc-info from the included file.
957 Previously, you got wrong information.
958 
959 Thanks to Neil Mitchell for pointing out the problem.
960 
961]
962[Revert the $* patch for earlier Perls as it breaks the build. Sorry. :/
963audreyt@audreyt.org**20070712054351]
964[In mangler, lift the multiline-match pragma to toplevel and document it better.
965audreyt@audreyt.org**20070711210449]
966[* Evil Mangler broke under Perl 5.9+ because $* is gone; this fixes it.
967audreyt@audreyt.org**20070711182430
968 
969   Perl 4's special variable $* controls multi-line matching; it's been
970   deprecated from Perl 5's inception, and is finally removed in Perl
971   versions 5.9 (soon to be 5.10).
972 
973   Since GHC depends on Perl 5.6+ anyway, this patch introduces an
974   equivalent effect to $* without using that special variable, by
975   hooking into Perl's regex parsing process to add the /m flag.
976 
977]
978[Remove import
979David Waern <davve@dtek.chalmers.se>**20070711194005]
980[Remove comment
981David Waern <davve@dtek.chalmers.se>**20070711193504]
982[* Future-proof autoconf's Perl version test.
983audreyt@audreyt.org**20070711165851
984 
985   GHC only works with Perl versions 5.6 and later; however
986   the current test greps in a rather non-future-proof way
987   (explicitly against 5.6 and 5.8).
988   
989   We instead exploit the "v-string" change in 5.6, which
990   displays the version string as "v5.x.y", rather than
991   the earlier format "version 5.xxx_yyy".  Hence grepping
992   against "v5" will make it future proof for a while.
993   (At least until Perl 6 is installed as the system perl.)
994 
995]
996[Fix putting hsicon.ico into the Windows installer; fixes #1515
997Ian Lynagh <igloo@earth.li>**20070714161312
998 It was done in a bit of the Makefile that was if'ed out for Windows.
999]
1000[Update the ghci "loading" section of the user guide
1001Ian Lynagh <igloo@earth.li>**20070714001346]
1002[Don't show the ghci :? output in the user guide
1003Ian Lynagh <igloo@earth.li>**20070713223017
1004 The ghci command list is now much larger than it used to be, and it
1005 tends to go out of sync with the docs anyway.
1006]
1007[User guide tweaks
1008Ian Lynagh <igloo@earth.li>**20070713222656]
1009[User guide tweaks
1010Ian Lynagh <igloo@earth.li>**20070713221258]
1011[Tweak Windows installation instructions in the user guide
1012Ian Lynagh <igloo@earth.li>**20070713220628]
1013[Update the contents of the library directy in the user guide
1014Ian Lynagh <igloo@earth.li>**20070713214004]
1015[User guide tweaks
1016Ian Lynagh <igloo@earth.li>**20070713210049]
1017[Don't talk about nfib from the user guide now that we no longer ship it
1018Ian Lynagh <igloo@earth.li>**20070713200442]
1019[Remove "What bundles there are" now we only have the standard one
1020Ian Lynagh <igloo@earth.li>**20070713195341]
1021[Update bundle installation instructions
1022Ian Lynagh <igloo@earth.li>**20070713194424]
1023[In the users guide, talk about configure flags
1024Ian Lynagh <igloo@earth.li>**20070712021759
1025 (rather than talking about tweaking the Makefile(-vars) by hand)
1026]
1027[Remove "install in-place" blurb from the docs as it no longer works
1028Ian Lynagh <igloo@earth.li>**20070712015440]
1029[doc tweak
1030Ian Lynagh <igloo@earth.li>**20070712015340]
1031[Remove outdated bundle-contents description
1032Ian Lynagh <igloo@earth.li>**20070712015216]
1033[Merge *UnboxedTuples flags
1034Ian Lynagh <igloo@earth.li>**20070712011254
1035 Merge
1036     ExpressionSignaturesUnboxedTuples
1037     TypeSynonymUnboxedTuples
1038 into
1039     UnboxedTuples
1040]
1041[Adding hpcError, that improves error messages with usage
1042andy@galois.com**20070711072454]
1043[Adding support for packages into hpc tools
1044andy@galois.com**20070711072349]
1045[Adding tick boxes to the interface syntax; fixes #1510
1046andy@galois.com**20070711072002]
1047[calling pprPanic rather than error when something goes wrong
1048andy@galois.com**20070711071935]
1049[Adding better support for HsSyn
1050andy@galois.com**20070711071842]
1051[Adding support for package names into hpc outputed code
1052andy@galois.com**20070711070555
1053 We store .mix files in
1054 
1055  .hpc/<package>/<the.module.name>.mix
1056 
1057 The package main the empty package (aka other naming passes),
1058 so Main just is stored in
1059 
1060  .hpc/Main.tix
1061 
1062 This change in backwards compatable.
1063 
1064]
1065[Stoping constant folding of calls to chr# that are invalid
1066andy@galois.com**20070711063520
1067 
1068 import GHC.Exts
1069 main = print (C# (chr# 0xffffffff#))
1070 
1071 This crashed at compile time (with or without hpc)
1072 Tickled by pending cross-module hpc inlining patch.
1073 
1074]
1075[PA is now a class instead of a record
1076Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710113822]
1077[Add dsLookupClass
1078Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710113543]
1079[Lookup of class and family instances in vectorisation monad
1080Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070710084949]
1081[oops, revert part of the +RTS -V0 patch which was accidentally included
1082Simon Marlow <simonmar@microsoft.com>**20070710075428]
1083[FIX rts build failure for powerPC build
1084andy@galois.com**20070710071713
1085 
1086 The rts was failing with
1087 
1088 ../compiler/ghc-inplace -H64m -Onot -fasm -optc-O2 -static -I../gmp/gmpbuild -I. -#include HCIncludes.h -dcmm-lint  -hisuf thr_p_hi -hcsuf thr_p_hc -osuf thr_p_o -optc-DTHREADED_RTS -prof -#include posix/Itimer.h  -c PrimOps.cmm -o PrimOps.thr_p_o
1089 ghc-6.7.20070709: panic! (the 'impossible' happened)
1090   (GHC version 6.7.20070709 for powerpc-apple-darwin):
1091         iselExpr64(powerpc) %MO_U_Conv_I32_I64(16 / 4 - 2)
1092 
1093 There was a special case for x86; so it has been transliterated to the PPC, and the output code looks plausable.
1094 
1095]
1096[Add vectorisation modules to package ghc
1097Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710060623]
1098[Put vectorisation monad into a separate file
1099Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710060528]
1100[Vectorisation of type abstractions
1101Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710042502]
1102[Utility functions for vectorisation
1103Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070710042319]
1104[Fix #1505; failure to catch syntax error in :break command
1105Simon Marlow <simonmar@microsoft.com>**20070709210706]
1106[Fix the +RTS -V0 option introduced recently; it didn't work at all, now it does.
1107Simon Marlow <simonmar@microsoft.com>**20070708194423
1108 Also, I documented it.  +RTS -V0 disables the internal RTS timer
1109 completely, which is useful for repeatable debugginng.
1110]
1111[FIX -fexcess-precision
1112Simon Marlow <simonmar@microsoft.com>**20070708192120
1113 Ugly hack; see comments for details
1114]
1115[Tweak the start of the bin-dist docs in teh users guide
1116Ian Lynagh <igloo@earth.li>**20070711123755]
1117[Remove reference to the now-dead fptools
1118Ian Lynagh <igloo@earth.li>**20070711000002]
1119[Remove references to non-existent mailing lists
1120Ian Lynagh <igloo@earth.li>**20070710235838]
1121[Remove the -bugs mailing list from the UG
1122Ian Lynagh <igloo@earth.li>**20070710235156
1123 We now have a separate bit on reporting bugs, via a different method, so
1124 this section didn't really make sense any more.
1125]
1126[Users guide: Update FAQ URL
1127Ian Lynagh <igloo@earth.li>**20070710234509]
1128[Users guide: GHC no longer comes with so many libraries
1129Ian Lynagh <igloo@earth.li>**20070710234236]
1130[Update copyright date in teh users guide
1131Ian Lynagh <igloo@earth.li>**20070710233912]
1132[Alpha-rename a variable
1133Ian Lynagh <igloo@earth.li>**20070710233308]
1134[Opt_GlasgowExts is no longer used, so remove it
1135Ian Lynagh <igloo@earth.li>**20070710232635]
1136[Implement -XStandaloneDeriving, the lexer is now glaexts-free
1137Ian Lynagh <igloo@earth.li>**20070710210129]
1138['a'# syntax is enabled by the MagicHash extension
1139Ian Lynagh <igloo@earth.li>**20070710203924]
1140["Foo"# syntax is enabled by the MagicHash extension
1141Ian Lynagh <igloo@earth.li>**20070710203606]
1142[5# syntax is enabled by the MagicHash extension
1143Ian Lynagh <igloo@earth.li>**20070710203319]
1144[{| and |} are -fgenerics syntax
1145Ian Lynagh <igloo@earth.li>**20070710202129]
1146[Rank 2 and rank n types enable explicit forall syntax
1147Ian Lynagh <igloo@earth.li>**20070710202109]
1148[RULES pragmas only need explicitForallEnabled, no -fglasgow-exts
1149Ian Lynagh <igloo@earth.li>**20070710180629]
1150[Implement -XDeriveDataTypeable flag
1151Ian Lynagh <igloo@earth.li>**20070710180130]
1152[Be finer-grained when turning on extensions for generated code
1153Ian Lynagh <igloo@earth.li>**20070710152406]
1154[Tweak error message
1155Ian Lynagh <igloo@earth.li>**20070710130214]
1156[Fix tcInstHeadTyNotSynonym
1157Ian Lynagh <igloo@earth.li>**20070710124738
1158 It was returning False for type variables amongst other things, so
1159 "instance C a" was telling us to use -XTypeSynonymInstances.
1160]
1161[Add flag -XConstrainedClassMethods
1162Ian Lynagh <igloo@earth.li>**20070709204343]
1163[Just alpha-rename a variable
1164Ian Lynagh <igloo@earth.li>**20070709200249]
1165[Add -XUnliftedFFITypes flag
1166Ian Lynagh <igloo@earth.li>**20070709195408]
1167[Implement unboxed tuples flags
1168Ian Lynagh <igloo@earth.li>**20070709193056
1169 -XUnboxedTuples
1170 -XExpressionSignaturesUnboxedTuples
1171 -XTypeSynonymUnboxedTuples
1172]
1173[Tweak the undecidable-instance-checking logic
1174Ian Lynagh <igloo@earth.li>**20070709182209
1175 Just looking at Opt_GlasgowExts is not sufficient to see if we need
1176 to do an instance undecidability check. Rather than try to enumerate
1177 all the extensions that may require us to do the check we now always
1178 do it.
1179]
1180[Define -XPartiallyAppliedClosedTypeSynonyms flag
1181Ian Lynagh <igloo@earth.li>**20070709181455]
1182[Add -XPatternSigs flag
1183Ian Lynagh <igloo@earth.li>**20070709175411]
1184[Vectorise lets
1185Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709063753]
1186[Split vectorisation environment into a global and a local part
1187Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709062505]
1188[First cut at vectorisation of expressions
1189Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053934]
1190[Construction of PA dictionaries for vectorisation
1191Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053918]
1192[Vectorisation-specific imports
1193Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053906]
1194[Utilities for handling closure types during vectorisation
1195Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053819]
1196[Add orElse combinator for vectorisation monad
1197Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053740]
1198[Extend vectorisation environment
1199Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709053709]
1200[Allow variables to be mapped to arbitrary CoreExprs in vectorisation monad
1201Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709042251]
1202[Add failure to vectorisation monad
1203Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070709040406]
1204[Fixing native code generator for PowerPC
1205andy@galois.com**20070708074329]
1206[FIX #1472 (also #249, which was not completely fixed previously): -caf-all bugs
1207Simon Marlow <simonmar@microsoft.com>**20070707192102]
1208[allow build settings to be overriden by adding mk/validate.mk
1209Simon Marlow <simonmar@microsoft.com>**20070707191853]
1210[undo: Get the path right for :list
1211Simon Marlow <simonmar@microsoft.com>**20070706152132
1212 This is breaking :list for someone.  If there's a problem here, we
1213 should fix it another way.
1214]
1215[Remove unused binding
1216Ian Lynagh <igloo@earth.li>**20070709153350]
1217[Add -XTypeOperators flag
1218Ian Lynagh <igloo@earth.li>**20070709153137]
1219[Add -fprint-explicit-foralls flag; fixes trac #1474
1220Ian Lynagh <igloo@earth.li>**20070709143551]
1221[Add -XFlexibleContexts flag
1222Ian Lynagh <igloo@earth.li>**20070709131353]
1223[Add -XExistentialQuantification flag
1224Ian Lynagh <igloo@earth.li>**20070709124436]
1225[Implement -XPolymorphicComponents
1226Ian Lynagh <igloo@earth.li>**20070709120415]
1227[rename tv -> explicitForall
1228Ian Lynagh <igloo@earth.li>**20070709112505]
1229[Implement -XUnicodeSyntax
1230Ian Lynagh <igloo@earth.li>**20070709093415]
1231[libraries/hpc is boring (in the GHC repo)
1232Ian Lynagh <igloo@earth.li>**20070708173246]
1233[Add flags for Rank2Types and RankNTypes
1234Ian Lynagh <igloo@earth.li>**20070708173150]
1235[Make CPP a -X flag
1236Ian Lynagh <igloo@earth.li>**20070708165045]
1237[Add PatternGuards flag
1238Ian Lynagh <igloo@earth.li>**20070708164236]
1239[Add flags for TypeSynonymInstances and FlexibleInstances
1240Ian Lynagh <igloo@earth.li>**20070708162507]
1241[Implement -XFunctionalDependencies
1242Ian Lynagh <igloo@earth.li>**20070708153236]
1243[Implement -XRecursiveDo
1244Ian Lynagh <igloo@earth.li>**20070708150631]
1245[Implement -XGeneralizedNewtypeDeriving
1246Ian Lynagh <igloo@earth.li>**20070708144354]
1247[Add -XParallelListComp
1248Ian Lynagh <igloo@earth.li>**20070708134252]
1249[Add -XMultiParamTypeClasses flag
1250Ian Lynagh <igloo@earth.li>**20070708122753]
1251[Implement -XKindSignatures
1252Ian Lynagh <igloo@earth.li>**20070708120553]
1253[Add -XEmptyDataDecls flag
1254Ian Lynagh <igloo@earth.li>**20070708112907]
1255[Support the MagicHash extension as a flag and LANGUAGE pragma
1256Ian Lynagh <igloo@earth.li>**20070708111041]
1257[Tidy up comments in DynFlags
1258Ian Lynagh <igloo@earth.li>**20070708102322]
1259[Remove foldl' from Util; use the Data.List one instead
1260Ian Lynagh <igloo@earth.li>**20070706205410]
1261[-ddump-hi-diffs shouldn't imply -fforce-recomp, that defeats the purpose
1262Simon Marlow <simonmar@microsoft.com>**20070705135320]
1263[Added comment to the Cmm parser showing code for use one CPS is enabled
1264Michael D. Adams <t-madams@microsoft.com>**20070705170703]
1265[Eliminated use of 'fromJust' from the CPS pass
1266Michael D. Adams <t-madams@microsoft.com>**20070705170637]
1267[Fixed a bug in the CPS pass
1268Michael D. Adams <t-madams@microsoft.com>**20070705170515]
1269[Updated the call to the CPS pass for the factoring out of cmmToRawCmm
1270Michael D. Adams <t-madams@microsoft.com>**20070705145031
1271 That call was and is commented out, but it serves as documentation
1272 for when the CPS pass will be turned on.
1273]
1274[Added support for GC block declaration to the Cmm syntax
1275Michael D. Adams <t-madams@microsoft.com>**20070705144820]
1276[Ensure no statements after CmmReturn are emitted
1277Michael D. Adams <t-madams@microsoft.com>**20070705094702]
1278[FIX BUILD (Windows)
1279Simon Marlow <simonmar@microsoft.com>**20070706075931]
1280[Vectorise unlifted and tuple tycons
1281Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704055652]
1282[Vectorisation of types
1283Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704055239]
1284[Add TyCons to vectorisation  monad
1285Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704051512]
1286[Vectorisation monad
1287Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070704045445]
1288[Add ndp docs
1289Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070703063738]
1290[Include vectorisation into the simplifier pipeline
1291Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629051943]
1292[Add vectorise subdirectory and dummy module
1293Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629051316]
1294[Add -fvectorise
1295Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629043246]
1296[Add NDP-related PrelNames
1297Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629041605]
1298[Make package ndp wired-in
1299Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070629015456]
1300[FIX BUILD (OS X): Include correct gmp.h if using GMP.framework
1301Roman Leshchinskiy <rl@cse.unsw.edu.au>**20070706045649
1302 
1303 On OS X, we have to #include <GMP/gmp.h> if we are using GMP.framework. Before
1304 the recent GMP changes, gcc (incorrectly) used the gmp.h supplied by ghc but
1305 that is gone now.
1306]
1307[FIX BUILD (with GHC 6.2.x): System.Directory.Internals is no more
1308Simon Marlow <simonmar@microsoft.com>**20070705194647
1309 Update functions in Compat.Directory from originals in System.Directory
1310]
1311[Warning Police
1312Michael D. Adams <t-madams@microsoft.com>**20070705142936]
1313[hpc is now a corelib, so always build it
1314Ian Lynagh <igloo@earth.li>**20070705223137]
1315[Update the in-tree GMP; fixes trac #832
1316Ian Lynagh <igloo@earth.li>**20070705215240
1317 gmp is now in a top-level directory and we only have the tarball in the
1318 darcs repo. It gets untarred if it is needed.
1319]
1320[Tidy up IsIrred (no need for argument any more)
1321simonpj@microsoft.com**20070705075937]
1322[Fix Trace #1494
1323simonpj@microsoft.com**20070704222221
1324 
1325 A tricky bug to do with the way the implication constraints are
1326 solved in TcSimplify.  See Note [Reducing implication constraints].
1327 
1328]
1329[Use $(HC), not $(GHC) to compile ghc-inplace
1330Simon Marlow <simonmar@microsoft.com>**20070704135704
1331 
1332 $(GHC) is always the installed compiler, $(HC) changes depending on
1333 the stage.  This has the nice effect that we build stage2/ghc-inplace
1334 using the stage1 compiler, and get to take advantage of bugfixes in
1335 stage1 relative to $(GHC) (in particular I want the non-blocking stdin
1336 fix for stage2, otherwise piping the testsuite output through tee
1337 fails).
1338]
1339[We don't need a SIGCONT handler any more
1340Simon Marlow <simonmar@microsoft.com>**20070704123606
1341 The SIGCONT handler was used to put stdin back in O_NONBLOCK mode,
1342 after the process is resumed, but we don't want to do that now: the
1343 standard handles are kept in blocking mode.
1344]
1345[Add first cut of the validate script
1346Simon Marlow <simonmar@microsoft.com>**20070704122241]
1347[Added support for update frames to the CPS pass
1348Michael D. Adams <t-madams@microsoft.com>**20070703214413
1349 (This required a bit of refactoring of CmmInfo.)
1350]
1351[Fix error message in CPS pass
1352Michael D. Adams <t-madams@microsoft.com>**20070703212555]
1353[Factor cmmToRawCmm completely out of CPS
1354Michael D. Adams <t-madams@microsoft.com>**20070703211734
1355 This patch also fixes how the CPS handles functions with an empty body.
1356 Factoring cmmToRawCmm out of the CPS pass made that fix easier.
1357]
1358[Remove dead code in the CPS pass
1359Michael D. Adams <t-madams@microsoft.com>**20070703094735]
1360[Minor formatting cleanup.
1361Michael D. Adams <t-madams@microsoft.com>**20070703093625]
1362[Moved 'continuationToProc' into a separate file, 'CmmCPSGen.hs'.
1363Michael D. Adams <t-madams@microsoft.com>**20070703093444]
1364[Finished support for foreign calls in the CPS pass
1365Michael D. Adams <t-madams@microsoft.com>**20070703091320]
1366[Multiple improvements to CPS algorithm.
1367Michael D. Adams <t-madams@microsoft.com>**20070702084221
1368 These include:
1369  - Stack size detection now includes function arguments.
1370  - Stack size detection now avoids stack checks just because of
1371    the GC block.
1372  - A CmmCall followed by a CmmBranch will no longer generate an extra
1373    continuation consisting just of the brach.
1374  - Multiple CmmCall/CmmBranch pairs that all go to the same place
1375    will try to use the same continuation.  If they can't (because
1376    the return value signature is different), adaptor block are built.
1377  - Function entry statements are now in a separate block.
1378    (Fixed bug with branches to the entry block having unintended effects.)
1379  - Other changes that I can't recall right now.
1380]
1381[Allow safety information on calls in Cmm files
1382Michael D. Adams <t-madams@microsoft.com>**20070628101133]
1383[FIX BUILD (Windows): catch up with changes to .cmm syntax
1384Simon Marlow <simonmar@microsoft.com>**20070703205234]
1385[Improve formatting of errors, and fix a typo
1386simonpj@microsoft.com**20070703162814]
1387[Fix for function info tables: the SRT field cannot be omitted if there are fields following it
1388Simon Marlow <simonmar@microsoft.com>**20070703140506]
1389[pprTypeInfo: print slow entry pt
1390Simon Marlow <simonmar@microsoft.com>**20070703140304]
1391[fix compilation for x86_64
1392Simon Marlow <simonmar@microsoft.com>**20070628124544]
1393[Fix stack check amount for user declared continuation functions
1394Michael D. Adams <t-madams@microsoft.com>**20070628111812]
1395[Remove unused parameter in force_gc_block for CPS
1396Michael D. Adams <t-madams@microsoft.com>**20070628101734]
1397[Fix a bug in the Cmm parser where formal params didn't get bound
1398Michael D. Adams <t-madams@microsoft.com>**20070628101312]
1399[Make CPS account for on-stack arguments when doing the stack check
1400Michael D. Adams <t-madams@microsoft.com>**20070628101006]
1401[Comment and formatting updates for the CPS pass
1402Michael D. Adams <t-madams@microsoft.com>**20070628082543]
1403[Fix typo from amend-record
1404Michael D. Adams <t-madams@microsoft.com>**20070627160555]
1405[Implemented and fixed bugs in CmmInfo handling
1406Michael D. Adams <t-madams@microsoft.com>**20070627152130]
1407[Formatting only
1408Michael D. Adams <t-madams@microsoft.com>**20070627151751]
1409[Added stack checks to the CPS algorithm
1410Michael D. Adams <t-madams@microsoft.com>**20070627151503
1411 
1412 This eliminates one of the panics introduced by
1413 the previous patch:
1414 'First pass at implementing info tables for CPS'
1415   
1416 The other panic introduced by that patch still remains.
1417 It was due to the need to convert from a
1418   ContinuationInfo to a CmmInfo.
1419   (codeGen/CgInfoTbls.hs:emitClosureCodeAndInfoTable)
1420   (codeGen/CgInfoTbls.hs:emitReturnTarget)
1421]
1422[First pass at implementing info tables for CPS
1423Michael D. Adams <t-madams@microsoft.com>**20070627151257
1424 
1425 This is a fairly complete implementation, however
1426 two 'panic's have been placed in the critical path
1427 where the implementation is still a bit lacking so
1428 do not expect it to run quite yet.
1429 
1430 One call to panic is because we still need to create
1431 a GC block for procedures that don't have them yet.
1432 (cmm/CmmCPS.hs:continuationToProc)
1433 
1434 The other is due to the need to convert from a
1435 ContinuationInfo to a CmmInfo.
1436 (codeGen/CgInfoTbls.hs:emitClosureCodeAndInfoTable)
1437 (codeGen/CgInfoTbls.hs:emitReturnTarget)
1438]
1439[Added an SRT to each CmmCall and added the current SRT to the CgMonad
1440Michael D. Adams <t-madams@microsoft.com>**20070627150903]
1441[Added pointerhood to LocalReg
1442Michael D. Adams <t-madams@microsoft.com>**20070627150133
1443 This version should compile but is still incomplete as it introduces
1444 potential bugs at the places marked 'TODO FIXME NOW'.
1445 It is being recorded to help keep track of changes.
1446]
1447[Fix bug relating to the return values of prim ops
1448Michael D. Adams <t-madams@microsoft.com>**20070626192352
1449 The return values were getting put in a LocalReg
1450 but that LocalReg needed to be stored into the enclosing
1451 expression's return register (e.g. R1).
1452]
1453[Removed trailing whitespace
1454Michael D. Adams <t-madams@microsoft.com>**20070621084047]
1455[Fixed typo in comment
1456Michael D. Adams <t-madams@microsoft.com>**20070619085834]
1457[Add forgotten compiler/cmm/CmmInfo.hs
1458Michael D. Adams <t-madams@microsoft.com>**20070613105643]
1459[Add formal parameters to the Cmm parser
1460Michael D. Adams <t-madams@microsoft.com>**20070606090510
1461 This patch is incomplete and will probably not compile by itself
1462 but it is being recorded to help keep track of later changes.
1463]
1464[Minor comment update
1465Michael D. Adams <t-madams@microsoft.com>**20070606085328]
1466[Changed C-- parser to allow multiple return values
1467Michael D. Adams <t-madams@microsoft.com>**20070529174553]
1468[Added early draft of parameter passing to the CPS converter
1469Michael D. Adams <t-madams@microsoft.com>**20070529150616]
1470[Minor code cleanup
1471Michael D. Adams <t-madams@microsoft.com>**20070529150436]
1472[Fix bug with proc-point detection (only a temporary fix)
1473Michael D. Adams <t-madams@microsoft.com>**20070529150206]
1474[Move global register saving from the backend to codeGen (CPS specific parts)
1475Michael D. Adams <t-madams@microsoft.com>**20070525195732]
1476[Moved global register saving from the backend to codeGen
1477Michael D. Adams <t-madams@microsoft.com>**20070525193804
1478 
1479 This frees the Cmm data type from keeping a list of live global registers
1480 in CmmCall which helps prepare for the CPS conversion phase.
1481 
1482 CPS conversion does its own liveness analysis and takes input that should
1483 not directly refer to parameter registers (e.g. R1, F5, D3, L2).  Since
1484 these are the only things which could occur in the live global register
1485 list, CPS conversion makes that field of the CmmCall constructor obsolite.
1486 
1487 Once the CPS conversion pass is fully implemented, global register saving
1488 will move from codeGen into the CPS pass.  Until then, this patch
1489 is worth scrutinizing and testing to ensure it doesn't cause any performance
1490 or correctness problems as the code passed to the backends by the CPS
1491 converting will look very similar to the code that this patch makes codeGen
1492 pass to the backend.
1493]
1494[Formatting changes for CPS code.
1495Michael D. Adams <t-madams@microsoft.com>**20070525170845]
1496[Formatted documentation for compiler/cmm/Dataflow.hs
1497Michael D. Adams <t-madams@microsoft.com>**20070524161414]
1498[Renamed CmmCPSData to CmmBrokenBlock and documented it
1499Michael D. Adams <t-madams@microsoft.com>**20070524160128]
1500[Minor re-organizing of compiler/cmm/CmmCPS.hs
1501Michael D. Adams <t-madams@microsoft.com>**20070523121521]
1502[Fixed missing '#include "HsVersions.h"'
1503Michael D. Adams <t-madams@microsoft.com>**20070523112830]
1504[Factored proc-point analysis into separate file (compiler/cmm/CmmProcPoint)
1505Michael D. Adams <t-madams@microsoft.com>**20070523112729]
1506[Removed an older version of selectStackFormat
1507Michael D. Adams <t-madams@microsoft.com>**20070523105248]
1508[Refined the handling of stack frame headers
1509Michael D. Adams <t-madams@microsoft.com>**20070523105112]
1510[Misc. cleanups to CPS converter
1511Michael D. Adams <t-madams@microsoft.com>**20070523094904]
1512[Fixed CPS converter to preserve function names
1513Michael D. Adams <t-madams@microsoft.com>**20070523094721]
1514[Added Proc-Point analysis to the CPS converter (not polished yet)
1515Michael D. Adams <t-madams@microsoft.com>**20070522153133]
1516[Make CmmProc take CmmFormals as argument
1517Michael D. Adams <t-madams@microsoft.com>**20070522152008
1518 
1519 Since a CmmCall returns CmmFormals which may include
1520 global registers (and indeed one place in the code
1521 returns the results of a CmmCall into BaseReg) and
1522 since CPS conversion will change those return slots
1523 into formal arguments for the continuation of the call,
1524 CmmProc has to have CmmFormals for the formal arguments.
1525 
1526 Oddly, the old code never made use of procedure arguments
1527 so this change only effects the types and not any of the code.
1528 (Because [] is both of type [LocalReg] and CmmFormals.)
1529]
1530[A small move of the comments in ./compiler/cmm/Dataflow.hs
1531Michael D. Adams <t-madams@microsoft.com>**20070522135305]
1532[Added forgotten ./compiler/cmm/CmmLive.hs
1533Michael D. Adams <t-madams@microsoft.com>**20070521182517]
1534[Document use of no-break space in lexer for C--
1535Michael D. Adams <t-madams@microsoft.com>**20070521090939]
1536[Renamed BlockExitInfo to FinalStmt and all its constructors to match usage
1537Michael D. Adams <t-madams@microsoft.com>**20070521090028]
1538[Major cleanup of the CPS code (but more is still to come)
1539Michael D. Adams <t-madams@microsoft.com>**20070518213458]
1540[Added listSplitUniqSupply to ./compiler/basicTypes/UniqSupply.lhs
1541Michael D. Adams <t-madams@microsoft.com>**20070518200942
1542 
1543 The function
1544   listSplitUniqSupply :: UniqSupply -> [UniqSupply]
1545 splits a UniqSupply into an infinite list of supplies.
1546 It is a generalization of splitUniqSupply.
1547]
1548[Second working draft of a CPS algorithm for C--.
1549Michael D. Adams <t-madams@microsoft.com>**20070518180004
1550 This is a safety check-in, before I begin a cleanup.
1551]
1552[Fixed missing space in pretty printer for CmmJump
1553Michael D. Adams <t-madams@microsoft.com>**20070518132432]
1554[Added spLimReg to complement spReg and hpReg
1555Michael D. Adams <t-madams@microsoft.com>**20070518132317]
1556[Added types CmmActuals and CmmFormals for function parameters to Cmm
1557Michael D. Adams <t-madams@microsoft.com>**20070518132031]
1558[First complete draft of a CPS algorithm.  (Still hackish needs polishing)
1559Michael D. Adams <t-madams@microsoft.com>**20070516160124]
1560[Added "C--" foreign calling convention
1561Michael D. Adams <t-madams@microsoft.com>**20070516155758]
1562[Added 'return' to C--, and made arguments to 'jump' into CmmExpr
1563Michael D. Adams <t-madams@microsoft.com>**20070516155337]
1564[Typo fix in a comment.
1565Michael D. Adams <t-madams@microsoft.com>**20070514121231]
1566[Fixed liveness analysis to use a slower but more correct solution
1567Michael D. Adams <t-madams@microsoft.com>**20070510135250]
1568[Hooked the C-- CPS pass into the compilation pipeline
1569Michael D. Adams <t-madams@microsoft.com>**20070510134600
1570 At present it just annotates each block with a comment
1571 indicating what local registers are live at the start
1572 of the block.
1573]
1574[Added compiler/cmm/Dataflow.hs
1575Michael D. Adams <t-madams@microsoft.com>**20070510103650
1576 Dataflow.hs contains an early draft of the live variable analysis.
1577 This draft contains known bugs and is being recorded only to provide
1578 a point to be revert back to if necessary.
1579]
1580[Generate .LC_ indirection-symbols also on x86_64 (as on all other archs running Linux)
1581Clemens Fruhwirth <clemens@endorphin.org>**20070628102432]
1582[Restrict .type directives to Linux targets only
1583Clemens Fruhwirth <clemens@endorphin.org>**20070630082243]
1584[Try harder to avoid making a variable with RULES into a loop-breaker
1585simonpj@microsoft.com**20070702132431
1586 
1587 See Note [Recursive rules] in OccurAnal
1588 
1589]
1590[clean installPackage too
1591Simon Marlow <simonmar@microsoft.com>**20070621113023]
1592[FIX #1471: print strings using Haskell quoting syntax
1593Simon Marlow <simonmar@microsoft.com>**20070702092257]
1594[The standard SUBDIRS in the top level Makefile should include libraries
1595Ian Lynagh <igloo@earth.li>**20070704140855]
1596[Have the users guide just refer to the wiki page on how to report a bug
1597Ian Lynagh <igloo@earth.li>**20070702140936]
1598[Remove mapAccumL, mapAccumR, mapAccumB
1599Ian Lynagh <igloo@earth.li>**20070702122651
1600 mapAccumL and mapAccumR are in Data.List now.
1601 mapAccumB is unused.
1602]
1603[Remove the unused "Eager monad"
1604Ian Lynagh <igloo@earth.li>**20070702115204]
1605[Add a type signature
1606Ian Lynagh <igloo@earth.li>**20070702114924]
1607[Remove unused functions (applyToPair, applyToFst, applyToSnd)
1608Ian Lynagh <igloo@earth.li>**20070702114812]
1609[Remove unused cfst (== const)
1610Ian Lynagh <igloo@earth.li>**20070702114709]
1611[Remove prefixMatch and suffixMatch from Util
1612Ian Lynagh <igloo@earth.li>**20070702114208
1613 Use standard isPrefixOf/isSuffixOf instead.
1614]
1615[Remove the large ghci banner, and the flags to choose which banner to show
1616Ian Lynagh <igloo@earth.li>**20070702110155
1617 Fans of the banner can add
1618     putStrLn "   ___         ___ _"
1619     putStrLn "  / _ \\ /\\  /\\/ __(_)"
1620     putStrLn " / /_\\// /_/ / /  | |   GHC Interactive, for Haskell 98."
1621     putStrLn "/ /_\\\\/ __  / /___| |   http://www.haskell.org/ghc/"
1622     putStrLn "\\____/\\/ /_/\\____/|_|   Type :? for help."
1623     putStrLn ""
1624 to their ~/.ghci
1625]
1626[Print the right usage message
1627Ian Lynagh <igloo@earth.li>**20070702102651
1628 The logic for printing the ghc and ghci usage messages was inverted.
1629 However, the ghci case will never actually happen with the current code,
1630 as we print a usage message when cli_mode == ShowUsage and choose the
1631 ghci usage message if cli_mode == DoInteractive. This should be fixed
1632 as part of a larger options handling overhaul.
1633]
1634[-fasm doesn't really take an argument
1635Ian Lynagh <igloo@earth.li>**20070702102629]
1636[Need to build filepath before directory
1637Ian Lynagh <igloo@earth.li>**20070630141518]
1638[Improve loop-breaker scoring in OccAnal (idea from Roman)
1639simonpj@microsoft.com**20070629215717
1640 
1641 See Note [Closure conversion] in OccurAnal for details of this
1642 patch (which merely involves *deleting* a test!).  The test case
1643 was produced by Roman, and shows up when doing closure conversion
1644 and vectorisation for data parallelism.  But perhaps other times too.
1645 
1646]
1647[Many comments about oclose, plus a fix for Trac #1456
1648simonpj@microsoft.com**20070629215334
1649 
1650 There was a rather subtle bug in the way 'oclose' works when
1651 generalising top-level function definitions.  See
1652        Note [Important subtlety in oclose]
1653 in FunDeps for an explanatoin.
1654 
1655 I also tidied up duplication in comments while I was here.
1656 
1657]
1658[Improve error message (Trac #1446)
1659simonpj@microsoft.com**20070629203219]
1660[Fixing hpc tools for 6.2 and 6.4
1661andy@galois.com**20070629185307]
1662[Refine printing of names in unification mis-match
1663simonpj@microsoft.com**20070629161337]
1664[Improve name-printing on unification mis-matches, when types share a common occurrence name
1665simonpj@microsoft.com**20070629114833
1666 
1667 This improvement arose from a suggestion in Trac #1465
1668 
1669]
1670[Add flags for record extensions; still not working properly though
1671simonpj@microsoft.com**20070628082949]
1672[Tidy up -keep* flags
1673Ian Lynagh <igloo@earth.li>**20070630133944]
1674[FIX BUILD: we need --exclude-module Trace.* too
1675Simon Marlow <simonmar@microsoft.com>**20070629110240]
1676[unbreak "recompile utils with stage 1"
1677Simon Marlow <simonmar@microsoft.com>**20070629090705]
1678[Checking that type indexes contain no synonym family applications
1679Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070629063656]
1680[RHS of a type instance must be a tau type
1681Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070629045931]
1682[Overlap check for type families
1683Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070629042007
1684 - If two "type instance"s overlap, they right-hand sides must be syntactically
1685   equal under the overlap substitution.  (Ie, we admit limited overlap, but
1686   require the system to still be confluent.)
1687]
1688[Further compileToCore improvements
1689Tim Chevalier <chevalier@alum.wellesley.edu>**20070629014831
1690 
1691 Per suggestions from Simon M:
1692 
1693 * Changed GHC.checkModule so that it doesn't call depanal.
1694 * Changed GHC.checkModule to optionally return Core bindings
1695 as a component of the CheckedModule that it returns (and
1696 resulting changes to HscMain.hscFileCheck).
1697 * As a result, simplified GHC.compileToCore and changed it
1698 to load the given file so that the caller doesn't have to.
1699]
1700[Fixed a documentation error
1701Michael D. Adams <t-madams@microsoft.com>**20070608091157]
1702[disable .type directives on Windows; they confuse mingw's assembler
1703Simon Marlow <simonmar@microsoft.com>**20070628104516]
1704[Set .type @object for all global symbols in NCG
1705Clemens Fruhwirth <clemens@endorphin.org>**20070627165150
1706 
1707 When linking against a dynamic library, the linker will emit a warning
1708 if no type information is present within the library. We generate the
1709 most trivial type for all externally visible labels, namely @object.
1710]
1711[Also make proper references when not using fPIC but linking against dynamic libs
1712Clemens Fruhwirth <clemens@endorphin.org>**20070619142931]
1713[Generate RelocatableReadOnlyData as .data
1714Clemens Fruhwirth <clemens@endorphin.org>**20070627160640
1715 
1716 The GNU linker expects read-only sections to be relocation
1717 free. Presumably because the dynamic linker maps all read-only
1718 sections as read-only mmaps and hence can't do relocations.
1719 
1720 If we want text-relocation-free shared libraries we have to put all
1721 relocations into writable sections, hence .data.  See
1722 http://www.mail-archive.com/cvs-all@haskell.org/msg15119.html
1723]
1724[Generalize linkDynLib for ELF platforms
1725Clemens Fruhwirth <clemens@endorphin.org>**20070627090819
1726 
1727 To create a dynamic shared object (DSO) on ELF platforms, we invoke
1728 "gcc -shared". This in turn invokes ld. We supply -Bsymbolic to the
1729 linker, as "ld -Bsymbolic -shared -o <lib> <objs>" resolves all
1730 references from <objs> to <objs> at library creation time.
1731 
1732 See http://hackage.haskell.org/trac/ghc/wiki/Commentary/PositionIndependentCode
1733 
1734]
1735[Renames functions and constructors to fit their new ability for dynamic linking
1736Clemens Fruhwirth <clemens@endorphin.org>**20070627090100
1737 function: staticLink -> linkBinary (will link non static binaries too)
1738 function: doMkDLL -> linkDynLib (as we can link on ELF too where DLL is an inappropriate term)
1739 constructor: MkDLL -> LinkDynLib
1740]
1741[PprMach.hs more accurate hack for x86-64, CmmLabelOff is not a relative reference.
1742Clemens Fruhwirth <clemens@endorphin.org>**20070626134636
1743 
1744 CmmLabelDiffOff are generated in .text and if printed as .quad, causes
1745 the assembler to emit a PC64 relocation. binutils prior to 2.17 don't
1746 understand PC64 relocation properly.
1747 
1748 pprDataItem is also used for printing SRT description tables. They are
1749 part of the .data section and there no PC relative relocations are
1750 emited. Hence, if we print a .long here, we get a absolute 32-bit
1751 relocation. 32-bit relocations are problematic in dynamic libraries,
1752 because dynamic library load addresses are loaded beyond the 32 bit
1753 boundary, causing the dynamic linker to warn at dynamic linking
1754 (loading the executable) that there are overflows in the
1755 relocation. The executable still seems to work because of the small
1756 memory model, but this is obviously wrong. Hence, remove CmmLabelOff
1757 from the classification, causing these references to be printed as
1758 .quad, causing correct 64-bit relocation as in the rest of the .data
1759 section. 
1760 
1761 So, this hack now prints PC32 relocations in .text (mostly in the info
1762 tables), and absolute 64-bit relocations in .data.
1763 
1764]
1765[Fix typechecking bug with implicit parameters (Trac #1445)
1766simonmar@microsoft.com**20070628081105
1767 
1768 tcSplitFunTy_maybe wasn't dealing with types like
1769        (?x::Bool) => Int
1770 Here, tcSplitFunTy_maybe should fail (as it would if there
1771 was a for-all), because the type is a quantified type.
1772 
1773 See Trac #1445, and test tc230.
1774 
1775]
1776[White space only
1777simonmar@microsoft.com**20070628080203]
1778[Improve error message when there is instance overlap
1779simonpj@microsoft.com**20070628073641]
1780[Modify compileToCore to take just a filename
1781Tim Chevalier <chevalier@alum.wellesley.edu>**20070627224809
1782 
1783 Modified compileToCore to take just a session and a
1784 filename, rather than a module name as well, since the module
1785 name can be computed from the filename.
1786]
1787[making hpc live
1788andy@galois.com**20070627181513]
1789[+RTS -xbXXXXX sets the "heap base" to 0xXXXXXX
1790Simon Marlow <simonmar@microsoft.com>**20070627093646
1791 When debugging the GC and storage manager we often want repeated runs
1792 of the program to allocate memory at the same addresses, so that we
1793 can set watch points.  Unfortunately the OS doesn't always give us
1794 memory at predictable addresses.  This flag gives the OS a hint as to
1795 where we would like our memory allocated.  Previously I did this by
1796 changing the HEAP_BASE setting in MBlock.h and recompiling, this patch
1797 just adds a flag so I don't have to recompile.
1798]
1799[+RTS -V0 disables the interval timer completely (for repeatable debugging)
1800Simon Marlow <simonmar@microsoft.com>**20070627092941]
1801[FIX BUILD (on Windows): follow changes to make threaded RTS compile with -fasm
1802simonmar@microsoft.com**20070627101604]
1803[Fix names of coercions in newtype instances
1804Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070627094200
1805 - Thanks to Roman for spotting the problem.
1806]
1807[Cleaning up Hpc.c; adding support for reflection into Hpc.
1808andy@galois.com**20070627063631]
1809[Fixing Makefile hpc to use compat
1810andy@galois.com**20070627060721]
1811[Adding Tix to compat library, so that hpc in utils can use it
1812andy@galois.com**20070627060430]
1813[fixing creation of directory for html output; fixing html markup for 0% bars.
1814andy@galois.com**20070627054846]
1815[Fixing -fhpc flag to allow -fno-hpc
1816andy@galois.com**20070627053808]
1817[Fixed deriving of associated data types
1818Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070627054834
1819 - We forgot to pull the data declarations nested in class instances out of
1820   the instances when collecting all the predicates that we need derive.
1821   Thanks to Roman for spotting this.
1822]
1823[add missing case for compiling 64-bit operations on x86
1824Simon Marlow <simonmar@microsoft.com>**20070626211153]
1825[Make the threaded RTS compilable using -fasm
1826Simon Marlow <simonmar@microsoft.com>**20070626211058
1827 We needed to turn some inline C functions and C macros into either
1828 real C functions or C-- macros.
1829]
1830[x86_64: fix a few bugs in the >8 floating point args case
1831Simon Marlow <simonmar@microsoft.com>**20070626103055]
1832[make inplace scripts less sensitive to /bin/sh quoting by avoiding \
1833Simon Marlow <simonmar@microsoft.com>**20070623200006]
1834[excluding Trace.Hpc.* when using the compat library
1835andy@galois.com**20070626072219]
1836[Making -fhpc work with a stage1 build, via the compat 'package'.
1837andy@galois.com**20070626053429]
1838[Adding hpc lib as part of the compat 'package'
1839andy@galois.com**20070626051136]
1840[Cleanup Hpc sub-system, remove hpc-tracer implementation.
1841andy@galois.com**20070626041958]
1842[Add a compileToCore function to the GHC API
1843Tim Chevalier <chevalier@alum.wellesley.edu>**20070625220608
1844 
1845 Added a compileToCore function to the GHC API that takes a
1846   session, module, and filename, and returns a list of Core
1847   bindings if successful. This is just a first try and could
1848   probably be improved (for example, there's probably a way to
1849   get the filename from the module so that it doesn't have to
1850   be passed in, I just don't see it offhand.)
1851 
1852]
1853[withExtendedLinkerState: don't revert the whole state
1854Simon Marlow <simonmar@microsoft.com>**20070625151455
1855 Fixes test failures print017 and print024
1856]
1857[Print infix type constructors in an infix way
1858simonpj@microsoft.com**20070625152858
1859 
1860 Fixes Trac #1425.  The printer for types doesn't know about fixities.
1861 (It could be educated to know, but it doesn't at the moment.)  So it
1862 treats all infix tycons as of precedence less than application and function
1863 arrrow.
1864 
1865 I took a slight shortcut and reused function-arrow prededence, so I think
1866 you may get
1867        T -> T :% T
1868 meaning
1869        T -> (T :% T)
1870 
1871 If that becomes a problem we can fix it.
1872 
1873]
1874[Clamp -O flag to beween 0 and 2
1875simonpj@microsoft.com**20070625152616
1876 
1877 Fixes Trac #1272
1878 
1879]
1880[Adding hpc tools, as a single program.
1881andy@galois.com**20070625070943]
1882[Define SUBDIRS in Makefile (needed for clean; fixes trac #1440)
1883Ian Lynagh <igloo@earth.li>**20070625174952]
1884[Tweak the configuration and installation slightly
1885Ian Lynagh <igloo@earth.li>**20070625174011
1886 Make it so that the documentation ends up where Cabal expects it to be
1887 on Windows (prep-bin-dist-mingw used to move it).
1888]
1889[Update version numbering policy in the users guide
1890Ian Lynagh <igloo@earth.li>**20070623224440]
1891[Fix an error message
1892Ian Lynagh <igloo@earth.li>**20070623190653
1893 `y' in the error message
1894     `x' is not a (visible) method of class `y'
1895 had gone missing.
1896]
1897[turning off -fhpc in stage1 built ghc
1898andy@galois.com**20070622225226]
1899[removing -fhpc-tracer from ghc, is subsumed by the GHC debugger
1900andy@galois.com**20070622224226]
1901[Stage2 now used the package hpc to get the hpc datastructures
1902andy@galois.com**20070622224038
1903 Stage1 no longer supports hpc (-fhpc is ignored)
1904 
1905]
1906[Fix typo in Makefile
1907Ian Lynagh <igloo@earth.li>**20070622222133]
1908[Adding hpc package to ghc core libraries
1909andy@galois.com**20070622171851]
1910[Change how the libraries Makefile adds --configure-option= flags; fixes #1431
1911Ian Lynagh <igloo@earth.li>**20070622160951
1912 We now assume that each configure option is quoted with '', and thus
1913 replace " '" with " --configure-option='".
1914]
1915[update with new libraries
1916Simon Marlow <simonmar@microsoft.com>**20070622131211]
1917[FIX BUILD on Windows: horrible hack to work around make(?) bug
1918Simon Marlow <simonmar@microsoft.com>*-20070621144519]
1919[FIX BUILD (on Windows): Cabal must invoke compiler/stage1/ghc-inplace
1920Simon Marlow <simonmar@microsoft.com>**20070622111634
1921 not compiler/ghc-inplace, which is a symlink.
1922 
1923]
1924[remove unnecessary cruft
1925Simon Marlow <simonmar@microsoft.com>**20070622075602]
1926[FIX BUILD: all builds need --template, not just Windows
1927Simon Marlow <simonmar@microsoft.com>**20070622075444]
1928[ignore all but the last --template option
1929Simon Marlow <simonmar@microsoft.com>**20070622075417]
1930[Unbreak the stage-2 compiler (record-type changes)
1931simonpj@microsoft.com**20070621170131]
1932[-fglasgow-exts implies -X=GADTs
1933simonpj@microsoft.com**20070621162152]
1934[FIX read040: patterns with type sig on LHS of do-binding
1935simonpj@microsoft.com**20070621143721
1936 
1937 f () = do { x :: Bool <- return True; ... }
1938 
1939 For some reason the production for 'pat' required 'infixexp' on the
1940 LHS of a do-notation binding.  This patch makes it an 'exp', which
1941 thereby allows an expression with a type sig.
1942 
1943 Happily, there are no new shift-reduce errors, so I don't think this
1944 will break anything else.
1945 
1946 
1947 
1948]
1949[Another wibble to the head-exploded error message (suggested by David Roundy)
1950simonpj@microsoft.com**20070621141144]
1951[Use the correct flag for controlling scoped type variables in an instance decl
1952simonpj@microsoft.com**20070621141114]
1953[Improve 'my head exploded' error message
1954simonpj@microsoft.com**20070621131650]
1955[FIX BUILD: add missing prime!
1956simonpj@microsoft.com**20070621131625]
1957[FIX BUILD on Windows: horrible hack to work around make(?) bug
1958Simon Marlow <simonmar@microsoft.com>**20070621144519]
1959[yet more fixes: Cygwin broke this time
1960Simon Marlow <simonmar@microsoft.com>**20070621140653]
1961[fix bugs with hsc2hs-inplace
1962Lemmih <lemmih@gmail.com>**20070621132825]
1963[mk/build.mk is optional
1964Lemmih <lemmih@gmail.com>**20070621130727]
1965[further fixes to the inplace scripts
1966Lemmih <lemmih@gmail.com>**20070621130657]
1967[use a binary for hsc2hs-inplace too
1968Simon Marlow <simonmar@microsoft.com>**20070621121426]
1969[Fix problems with new inplace stuff on Cygwin
1970Simon Marlow <simonmar@microsoft.com>**20070621114147]
1971[FIX BUILD: can't build the makefiles during make boot
1972Simon Marlow <simonmar@microsoft.com>**20070621095154]
1973[clean up lib/{GNUmakefile,Makefile.local}
1974Simon Marlow <simonmar@microsoft.com>**20070620132809]
1975[default_target should be "all", not "build"
1976Simon Marlow <simonmar@microsoft.com>**20070620132001]
1977[add comment
1978Simon Marlow <simonmar@microsoft.com>**20070620131949]
1979[Fix a problem with package.mk being included too early
1980Simon Marlow <simonmar@microsoft.com>**20070620122224]
1981[Use setup makefile + make by default to build libraries
1982Simon Marlow <simonmar@microsoft.com>**20070620122009
1983 
1984 The advantages of this are
1985   (a) it's a step closer to getting -j working again (make -j works in
1986       an individual library, but not in libraries/ yet).
1987   (b) it's easier to hack on libraries: make dist/build/Foo.o
1988   (c) it's a step closer to getting HC bootstrapping again
1989 
1990 The build system creates <lib>/GNUmakefile as part of 'make boot'.
1991 This was chosen so as not to interfere with existing Makefiles, but
1992 it's a bit of a hack.  (previously I used CabalMakefile, but that
1993 means adding -f CabalMakefile each time you run make, and that's a
1994 pain).
1995]
1996[Use a real binary instead of scripts for ghc-inplace
1997Simon Marlow <simonmar@microsoft.com>**20070621101324
1998 Fixes various problems with getting the scripts right on Windows.
1999 Binaries are universally executable by /bin/sh, cmd.exe and rawSystem,
2000 so this allows us to remove some platform-specific hacks.
2001]
2002[Add several new record features
2003Lemmih <lemmih@gmail.com>**20070621091552
2004 
2005 1. Record disambiguation (-fdisambiguate-record-fields)
2006 
2007 In record construction and pattern matching (although not
2008 in record updates) it is clear which field name is intended
2009 even if there are several in scope.  This extension uses
2010 the constructor to disambiguate.  Thus
2011        C { x=3 }
2012 uses the 'x' field from constructor C (assuming there is one)
2013 even if there are many x's in scope.
2014 
2015 
2016 2. Record punning (-frecord-puns)
2017 
2018 In a record construction or pattern match or update you can
2019 omit the "=" part, thus
2020        C { x, y }
2021 This is just syntactic sugar for
2022        C { x=x, y=y }
2023 
2024 
2025 3.  Dot-dot notation for records (-frecord-dot-dot)
2026 
2027 In record construction or pattern match (but not update)
2028 you can use ".." to mean "all the remaining fields".  So
2029 
2030        C { x=v, .. }
2031 
2032 means to fill in the remaining fields to give
2033 
2034        C { x=v, y=y }
2035 
2036 (assuming C has fields x and y).  This might reasonably
2037 considered very dodgy stuff.  For pattern-matching it brings
2038 into scope a bunch of things that are not explictly mentioned;
2039 and in record construction it just picks whatver 'y' is in
2040 scope for the 'y' field.   Still, Lennart Augustsson really
2041 wants it, and it's a feature that is extremely easy to explain.
2042 
2043 
2044 Implementation
2045 ~~~~~~~~~~~~~~
2046 I thought of using the "parent" field in the GlobalRdrEnv, but
2047 that's really used for import/export and just isn't right for this.
2048 For example, for import/export a field is a subordinate of the *type
2049 constructor* whereas here we need to know what fields belong to a
2050 particular *data* constructor.
2051 
2052 The main thing is that we need to map a data constructor to its
2053 fields, and we need to do so in the renamer.   For imported modules
2054 it's easy: just look in the imported TypeEnv.  For the module being
2055 compiled, we make a new field tcg_field_env in the TcGblEnv.
2056 The important functions are
2057        RnEnv.lookupRecordBndr
2058        RnEnv.lookupConstructorFields
2059 
2060 There is still a significant infelicity in the way the renamer
2061 works on patterns, which I'll tackle next.
2062 
2063 
2064 I also did quite a bit of refactoring in the representation of
2065 record fields (mainly in HsPat).***END OF DESCRIPTION***
2066 
2067 Place the long patch description above the ***END OF DESCRIPTION*** marker.
2068 The first line of this file will be the patch name.
2069 
2070 
2071 This patch contains the following changes:
2072 
2073 M ./compiler/deSugar/Check.lhs -3 +5
2074 M ./compiler/deSugar/Coverage.lhs -6 +7
2075 M ./compiler/deSugar/DsExpr.lhs -6 +13
2076 M ./compiler/deSugar/DsMeta.hs -8 +8
2077 M ./compiler/deSugar/DsUtils.lhs -1 +1
2078 M ./compiler/deSugar/MatchCon.lhs -2 +2
2079 M ./compiler/hsSyn/Convert.lhs -3 +3
2080 M ./compiler/hsSyn/HsDecls.lhs -9 +25
2081 M ./compiler/hsSyn/HsExpr.lhs -13 +3
2082 M ./compiler/hsSyn/HsPat.lhs -25 +63
2083 M ./compiler/hsSyn/HsUtils.lhs -3 +3
2084 M ./compiler/main/DynFlags.hs +6
2085 M ./compiler/parser/Parser.y.pp -13 +17
2086 M ./compiler/parser/RdrHsSyn.lhs -16 +18
2087 M ./compiler/rename/RnBinds.lhs -2 +2
2088 M ./compiler/rename/RnEnv.lhs -22 +82
2089 M ./compiler/rename/RnExpr.lhs -34 +12
2090 M ./compiler/rename/RnHsSyn.lhs -3 +2
2091 M ./compiler/rename/RnSource.lhs -50 +78
2092 M ./compiler/rename/RnTypes.lhs -50 +84
2093 M ./compiler/typecheck/TcExpr.lhs -18 +18
2094 M ./compiler/typecheck/TcHsSyn.lhs -20 +21
2095 M ./compiler/typecheck/TcPat.lhs -8 +6
2096 M ./compiler/typecheck/TcRnMonad.lhs -6 +15
2097 M ./compiler/typecheck/TcRnTypes.lhs -2 +11
2098 M ./compiler/typecheck/TcTyClsDecls.lhs -3 +4
2099 M ./docs/users_guide/flags.xml +7
2100 M ./docs/users_guide/glasgow_exts.xml +42
2101]
2102[Remove the unused HsExpr constructor DictPat
2103Lemmih <lemmih@gmail.com>**20070618124605]
2104[Fix a bug in MatchCon, and clarify what dataConInstOrigArgTys does
2105Lemmih <lemmih@gmail.com>**20070607213837
2106 
2107 There was an outright bug in MatchCon.matchOneCon, in the construction
2108 of arg_tys.  Easily fixed.  It never showed up becuase the arg_tys are
2109 only used in WildPats, and they in turn seldom have their types looked
2110 (except by hsPatType).  So I can't make a test case for htis.
2111 
2112 While I was investigating, I added a bit of clarifation and
2113 invariant-checking to dataConInstOrigArgTys and dataConInstArgTys
2114 
2115]
2116[Do not perform a worker/wrapper split for a NOINLINE function
2117Lemmih <lemmih@gmail.com>**20070607213523
2118 
2119 This came up in an email exchange with Duncan Coutts in May 2007.
2120 If a function is marked NOINLINE there is really no point in
2121 doing a worker/wrapper split, because the wrapper will never
2122 be inlined.
2123 
2124 
2125]
2126[Fix Trac #1402: typo in specialiser
2127Lemmih <lemmih@gmail.com>**20070607185534
2128 
2129 This patch fixes a plain bug in the specialiser (rhs_bndrs instead
2130 of rhs_ids) which made GHC crash in obscure cases. 
2131 
2132 It exposed a case in which we might not do all possible specialisation;
2133 see Note [Specialisation shape].  It's not an important case, but I've
2134 added a warning in DEBUG mode.
2135 
2136 Trac #1402.  Test is spec003.hs
2137 
2138]
2139[Wibble: make -fno-implicit-prelude work
2140simonpj@microsoft.com**20070621072456]
2141[Remove an incorrect claim that [t| ... |] isn't implemented yet
2142Ian Lynagh <igloo@earth.li>**20070621003103]
2143[Make building haddock docs opt-in rather than opt-out
2144Ian Lynagh <igloo@earth.li>**20070620235909]
2145[Don't assume that the main repo is called "ghc" in darcs-all
2146Ian Lynagh <igloo@earth.li>**20070620234007
2147 Fixes working in branches where that isn't true.
2148]
2149[Trivial fix to clear Trac #1386
2150simonpj@microsoft.com**20070620165836]
2151[Wibbles in flaggery, concerning backward compatibility with -f flags
2152simonpj@microsoft.com**20070620165801]
2153[Implement -X=GADTs and -X=RelaxedPolyRec
2154simonpj@microsoft.com**20070620163359
2155 
2156 Two new -X flags, one for GADTs and one for relaxed polymorphic recursion
2157 
2158 This also fixes a rather confusing error message that the Darcs folk
2159 tripped over.
2160 
2161]
2162[Use -X for language extensions
2163simonpj@microsoft.com**20070620162656
2164 
2165 We've often talked about having a separate flag for language extensions,
2166 and now we have one. You can say
2167 
2168        -XImplicitParams
2169        -X=ImplicitParams
2170        -Ximplicit-params
2171 
2172 as you like.  These replace the "-f" flags with similar names (though
2173 the -f prefix will serve as a synonym for -X for a while). 
2174 
2175 There's an optional "=", and the flag is normalised by removing hyphens
2176 and lower-casing, so all the above variants mean the same thing.
2177 
2178 The nomenclature is intended to match the LANGUAGE pramgas, which are
2179 defined by Cabal.  So you can also say
2180 
2181        {-# LANGUAGE ImplicitParams #-}
2182 
2183 But Cabal doesn't have as many language options as GHC does, so the -X
2184 things are a superset of the LANGUAGE things.
2185 
2186 The optional "=" applies to all flags that take an argument, so you can,
2187 for example, say
2188       
2189        -pgmL=/etc/foo
2190 
2191 I hope that's ok.  (It's an unforced change; just fitted in.)
2192 
2193 I hope we'll add more -X flags, to replace the portmanteau -fglasgow-exts
2194 which does everything! 
2195 
2196 I have updated the manual, but doubtless missed something.
2197 
2198 
2199 
2200]
2201[Unused import
2202simonpj@microsoft.com**20070620161341]
2203[turning back on case liberation when using hpc
2204andy@galois.com**20070620150244]
2205[remove debugging code accidentally left in
2206Simon Marlow <simonmar@microsoft.com>**20070620125742]
2207[Improve the handling of deriving, in error cases
2208simonpj@microsoft.com**20070620102828
2209 
2210 I'd been too ambitious with error handling for 'deriving', and got it
2211 entirely wrong.  This fixes it.  See extensive
2212        Note [Exotic derived instance contexts]
2213 in TcSimplify.  (Most of the extra lines are comments!)
2214 
2215]
2216[More refactoring in TcSimplify
2217simonpj@microsoft.com**20070620093646
2218 
2219 This re-jig tides up the top-level simplification, and combines in one
2220 well-commented function, approximateImplications, the rather ad-hoc
2221 way of simplifying implication constraints during type inference.
2222 
2223 Error messages get a bit better too.
2224 
2225]
2226[Fix egregious sharing bug in LiberateCase
2227simonpj@microsoft.com**20070620075648
2228 
2229 Andy Gill writes: consider the following code
2230 
2231        f = g (case v of
2232                 V a b -> a : t f)
2233 
2234 where g is expensive. Liberate case will turn this into
2235 
2236        f = g (case v of
2237                V a b -> a : t (letrec f = g (case v of
2238                                              V a b -> a : f t)
2239                                 in f)
2240              )
2241 Yikes! We evaluate g twice. This leads to a O(2^n) explosion
2242 if g calls back to the same code recursively.
2243 
2244 This may be the same as Trac #1366. 
2245 
2246 
2247]
2248[Turning off case liberation when using the hpc option, for now
2249andy@galois.com**20070620064943
2250 
2251 Consider the following code
2252 
2253      f = g (case v of
2254               V a b -> a : t f)
2255 
2256 where g is expensive. Liberate case will turn this into
2257 
2258      f = g (case v of
2259              V a b -> a : t (letrec f = g (case v of
2260                                            V a b -> a : f t)
2261                               in f)
2262            )
2263 
2264 Yikes! We evaluate g twice. This leads to a O(2^n) explosion
2265 if g calls back to the same code recursively.
2266 
2267 This happen sometimes in HPC, because every tick is a liberate-able case,
2268 but is a general problem to case liberation (I think).
2269 
2270]
2271[Improve misleading warning (Trac #1422)
2272simonpj@microsoft.com**20070619165354]
2273[Fix a bug in the handling of implication constraints (Trac #1430)
2274simonpj@microsoft.com**20070619162613
2275 
2276 Trac #1430 showed up quite a nasty bug in the handling of implication
2277 constraints when we are *inferring* the type of a function. 
2278 See Note [Inference and implication constraints]:
2279 
2280   We can't (or at least don't) abstract over implications.  But we might
2281   have an implication constraint (perhaps arising from a nested pattern
2282   match) like
2283        C a => D a
2284   when we are now trying to quantify over 'a'.  Our best approximation
2285   is to make (D a) part of the inferred context, so we can use that to
2286   discharge the implication. Hence getImplicWanteds.
2287 
2288 My solution is not marvellous, but it's better than before.  I transferred
2289 function getDefaultableDicts from Inst to TcSimplify (since it's only
2290 called there).  Many of the remaining 50 new lines are comments.  But
2291 there is undoubtedly more code than before (sigh).
2292 
2293 Test is tc228. 
2294 
2295 
2296 
2297]
2298[Comments only
2299simonpj@microsoft.com**20070619162603]
2300[Remove erroneous requirement to import Control.Monad.Fix when using mdo
2301simonpj@microsoft.com**20070619084634
2302 
2303 See Trac #1426
2304 
2305]
2306[First cut at documentation for HPC option in GHC
2307andy@galois.com**20070619055654]
2308[Build package ndp if present
2309Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070619011510]
2310[Use .NOTPARALLEL for the libraries Makefile
2311Ian Lynagh <igloo@earth.li>**20070620120723]
2312[Add --core-only flag to push-all
2313Ian Lynagh <igloo@earth.li>**20070619200546]
2314[Add a push-all script
2315Ian Lynagh <igloo@earth.li>**20070619192820]
2316[typo
2317Simon Marlow <simonmar@microsoft.com>**20070618111817]
2318[Several changes to the code dealing with newtypes in :print
2319Pepe Iborra <mnislaih@gmail.com>**20070617193435
2320 
2321 I simplified the code, killed some unreachable blocks, and renamed it so that it corresponds more accurately with what is explained in the technical report
2322 
2323 http://www.dsic.upv.es/docs/bib-dig/informes/etd-04042007-111431/papernew2.pdf
2324 
2325 Also, fixed a bug related to newtypes in the pretty printer
2326 
2327]
2328[Remove now non-existant "Breakpoints" entry from package.conf.in
2329Pepe Iborra <mnislaih@gmail.com>**20070613092102]
2330[More debugger output order consistency
2331Ian Lynagh <igloo@earth.li>**20070618102850]
2332[Sort names before printing them in the debugger so output order is consistent
2333Ian Lynagh <igloo@earth.li>**20070617215205]
2334[Use %d rather than %zd on Windows
2335Ian Lynagh <igloo@earth.li>**20070616193745]
2336[Add missing quotes in generated script
2337Ian Lynagh <igloo@earth.li>**20070615184527]
2338[Fix size mismatch errors in mkDerivedConstants.c
2339Ian Lynagh <igloo@earth.li>**20070615182337]
2340[workaround for #1421 (Solaris linker being picky about .size)
2341Simon Marlow <simonmar@microsoft.com>**20070614095727]
2342[I didn't quite fix #1424 completely - hopefully this gets it right
2343Simon Marlow <simonmar@microsoft.com>**20070613144505]
2344[FIX #1424: x86_64 NCG generated wrong code for foreign call with >8 double args
2345Simon Marlow <simonmar@microsoft.com>**20070613142431
2346 I guess we have a missing test... I'll add one
2347]
2348[another fix for -hb: we appear to be freeing the hash table and arena twice
2349Simon Marlow <simonmar@microsoft.com>**20070613111552]
2350[FIX #1418 (partially)
2351Simon Marlow <simonmar@microsoft.com>**20070613102928
2352 When the con_desc field of an info table was made into a relative
2353 reference, this had the side effect of making the profiling fields
2354 (closure_desc and closure_type) also relative, but only when compiling
2355 via C, and the heap profiler was still treating them as absolute,
2356 leading to crashes when profiling with -hd or -hy.
2357 
2358 This patch fixes up the story to be consistent: these fields really
2359 should be relative (otherwise we couldn't make shared versions of the
2360 profiling libraries), so I've made them relative and fixed up the RTS
2361 to know about this.
2362]
2363[should be using GET_CON_DESC() to get the constructor name
2364Simon Marlow <simonmar@microsoft.com>**20070613095201]
2365[warning police
2366Simon Marlow <simonmar@microsoft.com>**20070613095144]
2367[Use $(if...) to get lazy tests instead of if..endif in a few places
2368Simon Marlow <simonmar@microsoft.com>**20070613085138
2369 This means it should be possible to set GhcUnregisterised=YES in
2370 build.mk and the rest of the settings should follow automatically
2371 (GhcWithNativeCodeGen, SplitObjs, GhcWithSMP).
2372]
2373[TAG 2007-06-12
2374Ian Lynagh <igloo@earth.li>**20070612213440]
2375Patch bundle hash:
23765b71c9479f7334074fba3ebc80fa003a2c5fcffa