Ticket #2442: HelpfulErrors-Doc.patch

File HelpfulErrors-Doc.patch, 55.5 KB (added by batterseapower, 5 years ago)
Line 
1Sun Jul 13 02:55:39 BST 2008  Max Bolingbroke <batterseapower@hotmail.com>
2  * Documentation for helpful errors
3
4New patches:
5
6[Documentation for helpful errors
7Max Bolingbroke <batterseapower@hotmail.com>**20080713015539] hunk ./docs/users_guide/flags.xml 98
8+           <row>
9+             <entry><option>-fhelpful-errors</option></entry>
10+             <entry>attempt to suggest fixes for misspelt or erroneously unqualified names</entry>
11+             <entry>dynamic</entry>
12+             <entry><option>-fno-helpful-errors</option></entry>
13+           </row>
14
15Context:
16
17[Add PostfixOperators flag for (e op) postfix operators; fixes trac #1824
18Ian Lynagh <igloo@earth.li>**20080712203725
19 -fglasgow-exts also turns it on.
20]
21[Remove the hack to avoid darcs-all operating on bootstrapping directories
22Ian Lynagh <igloo@earth.li>**20080712170638
23 We no longer create those directories
24]
25[Teach installPackage about --distpref and --enable-shell-wrappers
26Ian Lynagh <igloo@earth.li>**20080712134346]
27[Handle passing hsc2hs to Cabal better
28Ian Lynagh <igloo@earth.li>**20080711214358
29 If it has been built then we pass it, even if we are still using the
30 bootstrapping compiler.
31]
32[Move installPackage out into its own cabal package under utils/
33Ian Lynagh <igloo@earth.li>**20080711211615]
34[Split up Cabal configure flag variables for more flexibility
35Ian Lynagh <igloo@earth.li>**20080711151448]
36[Move -fno-cse flags from Makefile into pragmas
37Ian Lynagh <igloo@earth.li>**20080711123151
38 These are needed for GLOBAL_VAR's to work properly
39]
40[Remove the need for undecidable instances in LazyUniqFM
41Ian Lynagh <igloo@earth.li>**20080711131421]
42[add "ghc-pkg dump" (fixes #2201)
43Simon Marlow <marlowsd@gmail.com>**20080711121739]
44[small improvement to an error message
45Simon Marlow <marlowsd@gmail.com>**20080711120153]
46[#2371: try to explain the difference between :module and :load
47Simon Marlow <marlowsd@gmail.com>**20080711120046]
48[FIX #2381, and improve the fix for #1565
49Simon Marlow <marlowsd@gmail.com>**20080711101839]
50[Change pragma order to stop GHC 6.4 getting confused
51Ian Lynagh <igloo@earth.li>**20080710190614]
52[-H80m isn't allowed in an options pragma. Just remove it for now.
53Ian Lynagh <igloo@earth.li>**20080710163048]
54[Remove a commented-out flag
55Ian Lynagh <igloo@earth.li>**20080710141129]
56[Remove an HPUX-only flag which has no comment explaining its purpose
57Ian Lynagh <igloo@earth.li>**20080710141032
58 It's probably to work around a long-dead bug
59]
60[Move more flags from the Makefile into pragmas
61Ian Lynagh <igloo@earth.li>**20080710140757]
62[Move the definition of NONEXISTENT into the central cabal-flags.mk
63Ian Lynagh <igloo@earth.li>**20080710135213]
64[Define CABAL in mk/cabal-flags.mk, rather than everywhere we use it
65Ian Lynagh <igloo@earth.li>**20080710134928]
66[Typo fixed
67Ian Lynagh <igloo@earth.li>**20080710134748]
68[Remove a redundant comment
69Ian Lynagh <igloo@earth.li>**20080710134656]
70[Remove remnants of javaGen
71Ian Lynagh <igloo@earth.li>**20080710132654]
72[Remove some remnants of ilxgen
73Ian Lynagh <igloo@earth.li>**20080710132417]
74[Remove a comment for GHC <= 4.08
75Ian Lynagh <igloo@earth.li>**20080710132107]
76[Remove .hi-boot-[56] stuff from the Makefile
77Ian Lynagh <igloo@earth.li>**20080710131528]
78[Remove a flag that a comment claims is for GHC < 5
79Ian Lynagh <igloo@earth.li>**20080710130925]
80[We can now unconditionally use -fno-warn-orphans
81Ian Lynagh <igloo@earth.li>**20080710125948
82 ...which is good, as the conditional test was broken anyway!
83]
84[Move another flag from the Makefile into a pragma
85Ian Lynagh <igloo@earth.li>**20080710125422]
86[Move some flags from the Makefile into module pragmas
87Ian Lynagh <igloo@earth.li>**20080710124827]
88[Move "main/BinIface_HC_OPTS += -O" into a pragma in iface/BinIface.hs
89Ian Lynagh <igloo@earth.li>**20080710124141
90 I assume that we still want this, despite it having been disconnected
91 when the module was moved.
92]
93[Remove an ancient commented out "parser/Parser_HC_OPTS += -fasm"
94Ian Lynagh <igloo@earth.li>**20080710123655]
95[add threadStatus# primop, for querying the status of a ThreadId#
96Simon Marlow <marlowsd@gmail.com>**20080710151406]
97[oops, fix more register clobberage
98Simon Marlow <marlowsd@gmail.com>**20080710115221
99 fixes crash with -threaded -debug for me
100]
101[rts_evalStableIO: start the new thread in blocked mode
102Simon Marlow <marlowsd@gmail.com>**20080709135447]
103[add new primop: asyncExceptionsBlocked# :: IO Bool
104Simon Marlow <marlowsd@gmail.com>**20080709135337]
105[ObjectIO is no longer an extralib
106Ian Lynagh <igloo@earth.li>**20080709135722]
107[Remove all references to -mno-cygwin
108Ian Lynagh <igloo@earth.li>**20080709125554
109 We shouldn't need it, as we don't call cygwin's gcc, and it was causing
110 problems with the nightly builders passing it to GHC.
111]
112[#1205: ':load foo.hs' in GHCi always compiles to bytecode
113Simon Marlow <marlowsd@gmail.com>**20080709110830
114 
115 So now
116 
117   :load foo.hs       loads bytecode for foo.hs, even if foo.o exists
118   :load foo          is just shorthand for :load foo.hs
119   :load M            loads a module M, as object code if possible
120                      (no change here)
121 
122   :set -fobject-code
123   :load foo.hs       loads foo.hs as object code; an existing foo.o
124                      can be used.
125   
126 This turned out to be very straightforward: when building the
127 ModSummary for a file (summariseFile) we just ignore the object file
128 unless -fobject-code is on.
129]
130[add -fwarn-dodgy-foreign-imports (see #1357)
131Simon Marlow <marlowsd@gmail.com>**20080709102143
132 
133 From the entry in the User's guide:
134 
135 -fwarn-dodgy-foreign-imports causes a warning to be emitted for
136 foreign imports of the following form:
137 
138 foreign import "f" f :: FunPtr t
139 
140 on the grounds that it probably should be
141 
142 foreign import "&f" f :: FunPtr t
143 
144 The first form declares that `f` is a (pure) C function that takes no
145 arguments and returns a pointer to a C function with type `t`, whereas
146 the second form declares that `f` itself is a C function with type
147 `t`.  The first declaration is usually a mistake, and one that is hard
148 to debug because it results in a crash, hence this warning.
149]
150[Treat the Unicode "Letter, Other" class as lowercase letters (#1103)
151Simon Marlow <marlowsd@gmail.com>**20080709091252
152 This is an arbitrary choice, but it's strictly more useful than the
153 current situation, where these characters cannot be used in
154 identifiers at all.
155 
156 In Haskell' we may revisit this decision (it's on my list of things to
157 discuss), but for now this is an improvement for those using caseless
158 languages.
159]
160[FIX part of #2301, and #1619
161Simon Marlow <marlowsd@gmail.com>**20080709084916
162 
163 2301: Control-C now causes the new exception (AsyncException
164 UserInterrupt) to be raised in the main thread.  The signal handler
165 is set up by GHC.TopHandler.runMainIO, and can be overriden in the
166 usual way by installing a new signal handler.  The advantage is that
167 now all programs will get a chance to clean up on ^C.
168 
169 When UserInterrupt is caught by the topmost handler, we now exit the
170 program via kill(getpid(),SIGINT), which tells the parent process that
171 we exited as a result of ^C, so the parent can take appropriate action
172 (it might want to exit too, for example).
173 
174 One subtlety is that we have to use a weak reference to the ThreadId
175 for the main thread, so that the signal handler doesn't prevent the
176 main thread from being subject to deadlock detection.
177 
178 1619: we now ignore SIGPIPE by default.  Although POSIX says that a
179 SIGPIPE should terminate the process by default, I wonder if this
180 decision was made because many C applications failed to check the exit
181 code from write().  In Haskell a failed write due to a closed pipe
182 will generate an exception anyway, so the main difference is that we
183 now get a useful error message instead of silent program termination.
184 See #1619 for more discussion.
185]
186[Fix some random register clobbering in takeMVar/putMVar
187Simon Marlow <marlowsd@gmail.com>**20080709083128
188 This showed up as a crash in conc032 for me.
189]
190[ANSI-ise a function declaration
191Simon Marlow <marlowsd@gmail.com>**20080708110430]
192[remove old #ifdef SMP bits
193Simon Marlow <marlowsd@gmail.com>**20080708110410]
194[Fix build; Opt_LinkHaskell98 is now Opt_AutoLinkPackages
195Ian Lynagh <igloo@earth.li>**20080708224005]
196[Extend the flag for not automatically linking haskell98
197Ian Lynagh <igloo@earth.li>**20080708165654
198 It now also doesn't automatically link base and rts either.
199 We need this when we've done a build, so base and rts are in the
200 package.conf, but we've then cleaned the libraries so they don't
201 physically exist any more.
202]
203[Remove all .hi-boot-6 files
204Ian Lynagh <igloo@earth.li>**20080708150059
205 From 6.4 onwards we use .(l)hs-boot instead.
206 Spotted by Max Bolingbroke.
207]
208[Add some missing deps in libraries/Makefile
209Ian Lynagh <igloo@earth.li>**20080708142752]
210[Get rid of compat/
211Ian Lynagh <igloo@earth.li>**20080708002717
212 Compat.Unicode is not utils/Unicode in the compiler.
213 We build the hpc package with the stage1 compiler.
214 Nothing else in the compat package was still used.
215]
216[Add a comment in validate saying where the hpc HTML is put
217Ian Lynagh <igloo@earth.li>**20080707103816]
218[FIX #1736, and probably #2169, #2240
219Simon Marlow <marlowsd@gmail.com>**20080707095836
220 appendStringBuffer was completely bogus - the arguments to copyArray
221 were the wrong way around, which meant that corruption was very likely
222 to occur by overwriting the end of the buffer in the first argument.
223 
224 This definitely fixes #1736.  The other two bugs, #2169 and #2240 are
225 harder to reproduce, but we can see how they could occur: in the case
226 of #2169, the options parser is seeing the contents of an old buffer,
227 and in the case of #2240, appendStringBuffer is corrupting an
228 interface file in memory, since strng buffers and interface files are
229 both allocated in the pinned region of memory.
230]
231[Fix Trac #2414: occurrs check was missed
232simonpj@microsoft.com**20080707103201
233 
234 This is an embarassing one: a missing occurs check meant that a type-incorrect
235 program could leak through.  Yikes! 
236 
237 (An indirect consequence of extra complexity introduced by boxy types. Sigh.)
238 
239 Merge to 6.8.4 if we release it.
240 
241 
242]
243[White space only
244simonpj@microsoft.com**20080707103145]
245[White space only
246simonpj@microsoft.com**20080707103110]
247[Fix Trac #2386: exceesive trimming of data types with Template Haskell
248simonpj@microsoft.com**20080707102941
249 
250 See Note [Trimming and Template Haskell] in TidyPgm.
251 
252 Merge to 6.8.4 if we ever release it.
253 
254 
255]
256[Add hsc2hs.wrapper
257Ian Lynagh <igloo@earth.li>**20080705214104]
258[Fix hsc2hs finding its template file on Windows
259Ian Lynagh <igloo@earth.li>**20080705185829]
260[On cygwin, convert happy's path to a native path
261Ian Lynagh <igloo@earth.li>**20080705163113]
262[On cygwin, convert Haddock's path to a native path
263Ian Lynagh <igloo@earth.li>**20080705162154]
264[On cygwin, convert alex's path to a native path
265Ian Lynagh <igloo@earth.li>**20080705155559]
266[libffi now doesn't have an artificial make boot/all split
267Ian Lynagh <igloo@earth.li>**20080705155025]
268[Need to make all in gmp, not boot
269Ian Lynagh <igloo@earth.li>**20080705153245]
270[gmp didn't really fit into the make boot/all cycle, so don't try to force it
271Ian Lynagh <igloo@earth.li>**20080705140354
272 Now we just run make in it at the start of the stage1 build
273]
274[Build hsc2hs with Cabal
275Ian Lynagh <igloo@earth.li>**20080705134208
276 This is very rough around teh edges at the moment.
277]
278[Add a flag to disable linking with the haskell98 package
279Ian Lynagh <igloo@earth.li>**20080705134115]
280[Use the last compiler if more than one is specified
281Ian Lynagh <igloo@earth.li>**20080705121426]
282[Improve error messages from pwd
283Ian Lynagh <igloo@earth.li>**20080704233343]
284[In utils/hsc2hs, add LICENSE and hsc2hs.cabal from the standalone repo
285Ian Lynagh <igloo@earth.li>**20080704222206]
286[Remove fgl from the libraries Makefile
287Ian Lynagh <igloo@earth.li>**20080704221026
288 It's no longer an extralib
289]
290[Tell the bootstrapping Cabal where ghc-pkg is
291Ian Lynagh <igloo@earth.li>**20080704152713]
292[FIX #2398: file locking wasn't thread-safe
293Simon Marlow <marlowsd@gmail.com>**20080704144626]
294[Remove out of date comments and point to the commentary
295Simon Marlow <marlowsd@gmail.com>**20080620135258
296 The wiki commentary is now the official description of recompilation
297 checking.
298 
299 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
300]
301[Remove Cabal modules from compat
302Ian Lynagh <igloo@earth.li>**20080703224633
303 We now get them from the bootstrapping package.conf instead
304]
305[Fix trac #2307: conflicting functional dependencies
306Ian Lynagh <igloo@earth.li>**20080703192540
307 We were accepting some instances that should have been rejected as
308 their fundep constraints were violated. e.g. we accepted
309     class C a b c | b -> c
310     instance C Bool Int Float
311     instance C Char Int Double
312]
313[If we know where alex, haddock and happy are then tell Cabal; fixes trac #2373
314Ian Lynagh <igloo@earth.li>**20080703191031]
315[Don't clean bootstrapping bits when cleaning libraries
316Ian Lynagh <igloo@earth.li>**20080703154647]
317[More libraries/Makefile fixes
318Ian Lynagh <igloo@earth.li>**20080703141016]
319[Shove the GHC path through cygpath -m
320Ian Lynagh <igloo@earth.li>**20080703132614]
321[Tweak the configure script Windows-specific bits
322Ian Lynagh <igloo@earth.li>**20080703132437]
323[Use cygpath -m, rather than fudging it ourselves with sed
324Ian Lynagh <igloo@earth.li>**20080703131725]
325[Fix build on Windows
326Ian Lynagh <igloo@earth.li>**20080703124553]
327[Include ghc.spec in tarballs; patch from, and fixes, trac #2390
328Ian Lynagh <igloo@earth.li>**20080703161457]
329[Add a program for describing unexpected tests in testlog
330Ian Lynagh <igloo@earth.li>**20080703134003
331 This goes through the testlog and spits out any sections that contain
332 "unexpected".
333]
334[Teach cabal-bin how to build Setup programs
335Ian Lynagh <igloo@earth.li>**20080703001300
336 
337 We now build a copy of Cabal and put it in a bootstrapping package.conf.
338 
339 We also make boot in libraries much earlier in the build process, so we
340 can use cabal-bin for more stuff in the future.
341]
342[Wibble cabal-bin's error message
343Ian Lynagh <igloo@earth.li>**20080702155937
344 We don't need to put the program name in it, as that happens automatically
345]
346[Add type signatures
347Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080703023635]
348[Command-line options for selecting DPH backend
349Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080702022202
350 
351 It's -fdph-seq and -fdph-par at the moment, I'll think of a nicer setup later.
352]
353[Add missing dph package to Makefile
354Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080702022142]
355[Slight refactoring
356Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701025227]
357[Rename *NDP* -> *DPH*
358Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701024559]
359[Parametrise vectoriser with DPH package
360Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701024515]
361[Don't use DPH backend directly in vectoriser
362Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701021436]
363[Make dph-seq and dph-par wired-in packages
364Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080701020214]
365[FIX #2313 do not include BFD symbols in RTS when the BFD library is not available for linking
366Karel Gardas <karel.gardas@centrum.cz>**20080528093139]
367[Add --slow (and --fast) options to validate
368Ian Lynagh <igloo@earth.li>**20080701175927
369 slow mode is 14% slower than normal. It uses -DDEBUG for the stage 2
370 compiler, and -XGenerics for the stage 2 compiler and the libraries.
371 I believe that most of the slowdown is actually caused by -XGenerics
372 rather than -DDEBUG.
373]
374[Fix Trac #2307: need to nub bad fundep reports
375simonpj@microsoft.com**20080701165830]
376[Easy fix for Trac #2409
377simonpj@microsoft.com**20080701163722
378 
379 Yurgh. See Note [Desugaring seq (3)]
380 
381 
382]
383[Make a "validate --hpc"; shows how much of the compiler the testsuite tests
384Ian Lynagh <igloo@earth.li>**20080701124515
385 Currently it causes a load of ghci-debugger tests to fail and takes
386 63% longer.
387]
388[Allow the exact HPC tix filename to be given in the HPCTIXFILE env var
389Ian Lynagh <igloo@earth.li>**20080701124320]
390[array is now warning-free
391Ian Lynagh <igloo@earth.li>**20080630204126]
392[Several fixes to 'deriving' including Trac #2378
393simonpj@microsoft.com**20080701120908
394 
395 This patch collects several related things together.
396 
397 * Refactor TcDeriv so that the InstInfo and the method bindings are renamed
398   together.  This was messy before, and is cleaner now.  Fixes a bug caused
399   by interaction between the "auxiliary bindings" (which were given
400   Original names before), and stand-alone deriving (which meant that those
401   Original names came from a different module). Now the names are purely
402   local an ordinary.
403 
404   To do this, InstInfo is parameterised like much else HsSyn stuff.
405 
406 * Improve the location info in a dfun, which in turn improves location
407   info for error messages, e.g. overlapping instances
408 
409 * Make sure that newtype-deriving isn't used for Typeable1 and friends.
410   (Typeable was rightly taken care of, but not Typeable1,2, etc.)
411 
412 * Check for data types in deriving Data, so that you can't do, say,
413        deriving instance Data (IO a)
414 
415 * Decorate the derived binding with location info from the *instance*
416   rather than from the *tycon*.  Again, this really only matters with
417   standalone deriving, but it makes a huge difference there.
418 
419 I think that's it.  Quite a few error messages change slightly.
420 
421 If we release 6.8.4, this should go in if possible.
422 
423]
424[Follow Cabal changes
425Ian Lynagh <igloo@earth.li>**20080629211633]
426[Rename cabal to cabal-bin
427Ian Lynagh <igloo@earth.li>**20080629110003
428 Avoids conflicts with the Cabal library on case-insensitive filesystems
429]
430[mkdirhier.sh now accepts -q, which makes it be quiet
431Ian Lynagh <igloo@earth.li>**20080627233528]
432[Update .darcs-boring
433Ian Lynagh <igloo@earth.li>**20080627181410]
434[Update darcs-boring
435Ian Lynagh <igloo@earth.li>**20080627154142]
436[Update .darcs-boring
437Ian Lynagh <igloo@earth.li>**20080627145633]
438[Follow Cabal changes
439Ian Lynagh <igloo@earth.li>**20080626202749]
440[Absolutify a path
441Ian Lynagh <igloo@earth.li>**20080626181134
442 When building ghc-prim/Setup we weren't putting the hi files in the
443 right place.
444]
445[Remove fgl from extralibs
446Ian Lynagh <igloo@earth.li>**20080626112739]
447[Use a program similar to cabal-install to build the libraries
448Ian Lynagh <igloo@earth.li>**20080626112511
449 This means that we don't have to make a Setup program for each library
450 individually, and also simplifies the build system a bit.
451]
452[Fix Trac #2394: test for non-algebraic types in standalone deriving
453simonpj@microsoft.com**20080625160204]
454[() is now in ghc-prim:GHC.Unit
455Ian Lynagh <igloo@earth.li>**20080624144849]
456[Generate a warning-free GHC.PrimopWrappers. ghc-prim is now -Wall clean.
457Ian Lynagh <igloo@earth.li>**20080624122529]
458[Fix some inconsistencies in the code and docs of primitives
459Ian Lynagh <igloo@earth.li>**20080623223454
460 We were inconsistent about whether to use the name "MutArr#" or
461 "MutableArray#". Likewise ByteArr#/ByteArray# and
462 MutByteArr#/MutableByteArray#.
463]
464[Fix the build with GHC 6.4
465Ian Lynagh <igloo@earth.li>**20080623144426]
466[Don't rebuild things with the stage2 compiler
467Ian Lynagh <igloo@earth.li>**20080622134613
468 It leads to annoying rebuilding when working in a built tree.
469 We'll handle this differently for 6.10.
470]
471[editline is now warning-free
472Ian Lynagh <igloo@earth.li>**20080620212110]
473[Remove special handling for character types of characters >= 128, <= 255
474Ian Lynagh <igloo@earth.li>**20080621171100
475 Many of the character types were wrong. Now the asc* names really do mean
476 ASCII, rather than latin-1.
477]
478[Remove code that isn't used now that we assume that GHC >= 6.4
479Ian Lynagh <igloo@earth.li>**20080620193003]
480[Now that we require GHC >= 6.4.2, System.IO.Error is always available
481Ian Lynagh <igloo@earth.li>**20080620191059]
482[hpc is -Wall clean
483Ian Lynagh <igloo@earth.li>**20080620142058]
484[filepath is now warning-free
485Ian Lynagh <igloo@earth.li>**20080620135652]
486[pretty is now -Wall clean
487Ian Lynagh <igloo@earth.li>**20080620135335]
488[process is now -Wall clean
489Ian Lynagh <igloo@earth.li>**20080620011832]
490[directory is now -Wall clean
491Ian Lynagh <igloo@earth.li>**20080620011335]
492[integer-gmp is warning-free
493Ian Lynagh <igloo@earth.li>**20080619235925]
494[packedstring is now -Wall clean
495Ian Lynagh <igloo@earth.li>**20080619235612]
496[old-time is now warning-free
497Ian Lynagh <igloo@earth.li>**20080619233127]
498[old-locale is now warning-free
499Ian Lynagh <igloo@earth.li>**20080619232152]
500[random is now -Wall clean
501Ian Lynagh <igloo@earth.li>**20080619140211]
502[document some RTS options I added a while ago: -qm, -qw
503Simon Marlow <marlowsd@gmail.com>**20080619121227]
504[Document the change to +RTS -S/-s/-t
505Simon Marlow <marlowsd@gmail.com>**20080619121201]
506[document paralel GC option: +RTS -g
507Simon Marlow <marlowsd@gmail.com>**20080619121111]
508[+RTS -S -RTS now sends output to stderr (also -s)
509Simon Marlow <marlowsd@gmail.com>**20080619113329
510 Previously +RTS -Sstderr -RTS was required to send output to stderr,
511 but this is the most common usage and I got tired of typing "stderr".
512 The old default behaviour of sending output to <prog>.stat is now gone
513 (I don't think we use it anywhere). 
514 
515 Temporarily we allowed +RTS -S- -RTS to mean stderr; there were
516 objections to this, so it is now also gone.
517]
518[bytestring is -Wall clean
519Ian Lynagh <igloo@earth.li>**20080619010702]
520[Cabal is -Wall clean
521Ian Lynagh <igloo@earth.li>**20080619010436]
522[The haskell98 library is -Wall clean
523Ian Lynagh <igloo@earth.li>**20080619010124]
524[template-haskell is now -Wall clean
525Ian Lynagh <igloo@earth.li>**20080619005811]
526[containers is now -Wall clean
527Ian Lynagh <igloo@earth.li>**20080618233651]
528[fix a tiny bug spotted by gcc 4.3
529Simon Marlow <marlowsd@gmail.com>**20080619100904]
530[Fix up inlines for gcc 4.3
531Simon Marlow <marlowsd@gmail.com>**20080619100849
532 gcc 4.3 emits warnings for static inline functions that its heuristics
533 decided not to inline.  The workaround is to either mark appropriate
534 functions as "hot" (a new attribute in gcc 4.3), or sometimes to use
535 "extern inline" instead.
536 
537 With this fix I can validate with gcc 4.3 on Fedora 9.
538]
539[fix warnings with gcc 4.3
540Simon Marlow <marlowsd@gmail.com>**20080618144307]
541[it's time to retire ghcprof & friends
542Simon Marlow <marlowsd@gmail.com>**20080618140228]
543[Make the wired-in packages code handle ndp mapping to ndp-seq or ndp-par
544Ian Lynagh <igloo@earth.li>**20080618162233
545 It's getting a bit crufty - could probably do with a rewrite.
546]
547[Put the infrastructure in place for getting the libraries -Wall clean
548Ian Lynagh <igloo@earth.li>**20080617020145
549 libraries/Makefile.local now lists those for which we need to pass -w
550 (currently this is every library).
551]
552[utils/Digraph doesn't need -fglasgow-exts passed specially
553Ian Lynagh <igloo@earth.li>**20080616225949]
554[Fix Trac #2321: bug in SAT
555simonpj@microsoft.com**20080616201700
556   This is a fairly substantial rewrite of the Static Argument Transformatoin,
557   done by Max Bolingbroke and reviewed and modified by Simon PJ.
558   
559   * Fix a subtle scoping problem; see Note [Binder type capture]
560   * Redo the analysis to use environments
561   * Run gentle simlification just before the transformation
562 
563]
564[define NeedVarargsPrototypes to avoid segfault on x86_64
565Simon Marlow <marlowsd@gmail.com>**20080618132116]
566[Fix an example where we weren't doing case-of-case when we should
567Simon Marlow <marlowsd@gmail.com>**20080617123510
568 That's 1 line of new code and 38 lines of new comments
569]
570[fix gcc warnings for printf formats on 32-bit
571Simon Marlow <marlowsd@gmail.com>**20080618094018]
572[FIX BUILD on Windows
573Simon Marlow <marlowsd@gmail.com>**20080618094700]
574[Sort the mi_deps into a canonical ordering before fingerprinting.
575Simon Marlow <marlowsd@gmail.com>**20080617152117
576 This may help do a little less recompilation with make (GHC's --make
577 is unaffected).
578]
579[Fix another "urk! lookup local fingerprint" in nofib/real/bspt/GeomNum.lhs
580Simon Marlow <marlowsd@gmail.com>**20080617151530]
581[small interpreter fix
582Simon Marlow <marlowsd@gmail.com>**20080617134651]
583[fix some printf formats for 64 bits
584Simon Marlow <marlowsd@gmail.com>**20080617101102]
585[64-bit fixes
586Simon Marlow <marlowsd@gmail.com>**20080617101045]
587[don't try to parallelise marking GC (yet)
588Simon Marlow <marlowsd@gmail.com>**20080616073111]
589[another stableptr003 fix
590Simon Marlow <marlowsd@gmail.com>**20080609191722]
591[Experimental "mark-region" strategy for the old generation
592Simon Marlow <marlowsd@gmail.com>**20080609174943
593 Sometimes better than the default copying, enabled by +RTS -w
594]
595[threadStackUnderflow: fix up the bd->free pointers in the split blocks
596Simon Marlow <marlowsd@gmail.com>**20080609171617]
597[fix allocated blocks calculation, and add more sanity checks
598Simon Marlow <marlowsd@gmail.com>**20080608073754]
599[Put the contents of Evac.c-inc back in Evac.c, and just compile the file twice
600Simon Marlow <marlowsd@gmail.com>**20080603073119
601 Similarly for Scav.c/Scav.c-inc.
602]
603[+RTS -N also sets +RTS -g
604Simon Marlow <marlowsd@gmail.com>**20080603072701]
605[DECLARE_GCT for when we have no register variable
606Simon Marlow <marlowsd@gmail.com>**20080603072608]
607[comment updates
608Simon Marlow <marlowsd@gmail.com>**20080603072527]
609[fix some types for 64-bit platforms
610Simon Marlow <marlowsd@gmail.com>**20080603032625]
611[+RTS -S- is the same as +RTS -Sstderr
612Simon Marlow <marlowsd@gmail.com>**20080603032557]
613[move the spinlock counts inside +RTS -S
614Simon Marlow <marlowsd@gmail.com>**20080603032534]
615[FIX #2164: check for ThreadRelocated in isAlive()
616Simon Marlow <marlowsd@gmail.com>**20080528063904]
617[FIX the compacting GC again
618Simon Marlow <simonmarhaskell@gmail.com>**20080424205829]
619[FIX #2185: sparks should not be treated as roots by the GC
620Simon Marlow <simonmarhaskell@gmail.com>**20080424205813]
621[turn off the usleep() in the GC thread idle loop (tmp, for portability)
622Simon Marlow <simonmarhaskell@gmail.com>**20080417220221]
623[declare the GC thread register variable more portably
624Simon Marlow <simonmarhaskell@gmail.com>**20080417220157]
625[remove EVACUATED: store the forwarding pointer in the info pointer
626Simon Marlow <simonmarhaskell@gmail.com>**20080417212707]
627[tso->link is now tso->_link  (fix after merge with HEAD)
628Simon Marlow <simonmarhaskell@gmail.com>**20080417180016]
629[Don't look at all the threads before each GC.
630Simon Marlow <simonmarhaskell@gmail.com>**20080416234446
631 We were looking at all the threads for 2 reasons:
632  1. to catch transactions that might be looping as a
633     result of seeing an inconsistent view of memory.
634  2. to catch threads with blocked exceptions that are
635     themselves blocked.
636 For (1) we now check for this case whenever a thread yields, and for
637 (2) we catch these threads in the GC itself and send the exceptions
638 after GC (see performPendingThrowTos).
639]
640[Don't traverse the entire list of threads on every GC (phase 1)
641Simon Marlow <simonmarhaskell@gmail.com>**20080416234420
642 Instead of keeping a single list of all threads, keep one per step
643 and only look at the threads belonging to steps that we are
644 collecting.
645]
646[optimisation for isAlive()
647Simon Marlow <simonmarhaskell@gmail.com>**20080416234349]
648[refactoring
649Simon Marlow <simonmarhaskell@gmail.com>**20080416234324]
650[add [] to foreign calls
651Simon Marlow <simonmarhaskell@gmail.com>**20080416234234]
652[remove GRAN/PAR code
653Simon Marlow <simonmarhaskell@gmail.com>**20080416234135]
654[bugfix for traverseBlackHoleQueue
655Simon Marlow <simonmarhaskell@gmail.com>**20080416234042]
656[Add a write barrier to the TSO link field (#1589)
657Simon Marlow <simonmarhaskell@gmail.com>**20080416233951]
658[fix trace
659Simon Marlow <simonmarhaskell@gmail.com>**20080416233922]
660[tmp: alloc one block at a time
661Simon Marlow <simonmarhaskell@gmail.com>**20080416233830]
662[add debugging code to check for fragmentation
663Simon Marlow <simonmarhaskell@gmail.com>**20080416233058]
664[do a better job of re-using partial blocks in subsequent GCs
665Simon Marlow <simonmarhaskell@gmail.com>**20080416232949]
666[Use the BF_EVACUATED flag to indicate to-space consistently
667Simon Marlow <simonmarhaskell@gmail.com>**20080416232906
668 BF_EVACUATED is now set on all blocks except those that we are
669 copying.  This means we don't need a separate test for gen>N in
670 evacuate(), because in generations older than N, BF_EVACUATED will be
671 set anyway.  The disadvantage is that we have to reset the
672 BF_EVACUATED flag on the blocks of any generation we're collecting
673 before starting GC.  Results in a small speed improvement.
674]
675[rearrange: we were calling markSomeCapabilities too often
676Simon Marlow <simonmarhaskell@gmail.com>**20080416232825]
677[debug output: show mem in use
678Simon Marlow <simonmarhaskell@gmail.com>**20080416232739]
679[make +RTS -G1 work again
680Simon Marlow <simonmarhaskell@gmail.com>**20080416232510]
681[pad step_workspace to 64 bytes, to speed up access to gct->steps[]
682Simon Marlow <simonmarhaskell@gmail.com>**20080416232433]
683[update copyrights in rts/sm
684Simon Marlow <simonmarhaskell@gmail.com>**20080416232355]
685[Reorganisation to fix problems related to the gct register variable
686Simon Marlow <simonmarhaskell@gmail.com>**20080416232232
687   - GCAux.c contains code not compiled with the gct register enabled,
688     it is callable from outside the GC
689   - marking functions are moved to their relevant subsystems, outside
690     the GC
691   - mark_root needs to save the gct register, as it is called from
692     outside the GC
693]
694[faster block allocator, by dividing the free list into buckets
695Simon Marlow <simonmarhaskell@gmail.com>**20080416224541]
696[allocate more blocks in one go, to reduce contention for the block allocator
697Simon Marlow <simonmarhaskell@gmail.com>**20080416223824]
698[measure GC(0/1) times and work imbalance
699Simon Marlow <simonmarhaskell@gmail.com>**20080416222539]
700[remove outdated comment
701Simon Marlow <simonmarhaskell@gmail.com>**20080416222319]
702[calculate and report slop (wasted space at the end of blocks)
703Simon Marlow <simonmarhaskell@gmail.com>**20080416221516]
704[free empty blocks at the end of GC
705Simon Marlow <simonmarhaskell@gmail.com>**20080416221356]
706[move the scan block pointer into the gct structure
707Simon Marlow <simonmarhaskell@gmail.com>**20080416221331]
708[improvements to +RTS -s output
709Simon Marlow <simonmarhaskell@gmail.com>**20080416221224
710 - count and report number of parallel collections
711 - calculate bytes scanned in addition to bytes copied per thread
712 - calculate "work balance factor"
713 - tidy up the formatting a bit
714]
715[wait for threads to start up properly
716Simon Marlow <simonmarhaskell@gmail.com>**20080416221002]
717[debug output tweaks
718Simon Marlow <simonmarhaskell@gmail.com>**20080416220807]
719[Keep track of an accurate count of live words in each step
720Simon Marlow <simonmarhaskell@gmail.com>**20080416220620
721 This means we can calculate slop easily, and also improve
722 predictability of GC.
723]
724[Allow work units smaller than a block to improve load balancing
725Simon Marlow <simonmarhaskell@gmail.com>**20080416220347]
726[in scavenge_block1(), we can use the lock-free recordMutableGen()
727Simon Marlow <simonmarhaskell@gmail.com>**20080416220104]
728[update the debug counters following changes to scav_find_work()
729Simon Marlow <simonmarhaskell@gmail.com>**20080416215945]
730[change the find-work strategy: use oldest-first consistently
731Simon Marlow <simonmarhaskell@gmail.com>**20080416215815]
732[per-thread debug output when using multiple threads, not just major gc
733Simon Marlow <simonmarhaskell@gmail.com>**20080416215741]
734[small debug output improvements
735Simon Marlow <simonmarhaskell@gmail.com>**20080416215649]
736[allow parallel minor collections too
737Simon Marlow <simonmarhaskell@gmail.com>**20080416215503]
738[Specialise evac/scav for single-threaded, not minor, GC
739Simon Marlow <simonmarhaskell@gmail.com>**20080416215405
740 So we can parallelise minor collections too.  Sometimes it's worth it.
741]
742[move usleep(1) to gc_thread_work() from any_work()
743Simon Marlow <simonmarhaskell@gmail.com>**20080416215325]
744[use RTS_VAR()
745Simon Marlow <simonmarhaskell@gmail.com>**20080416215245]
746[treat the global work list as a queue rather than a stack
747Simon Marlow <simonmarhaskell@gmail.com>**20080416215109]
748[GC: move static object processinng into thread-local storage
749Simon Marlow <simonmarhaskell@gmail.com>**20080416214825]
750[tmp: usleep(1) during anyWork() if no work
751Simon Marlow <simonmarhaskell@gmail.com>**20080416214023]
752[anyWork(): count the number of times we don't find any work
753Simon Marlow <simonmarhaskell@gmail.com>**20080416213945]
754[stats fixes
755Simon Marlow <simonmarhaskell@gmail.com>**20080416213532]
756[Add +RTS -vg flag for requesting some GC trace messages, outside DEBUG
757Simon Marlow <simonmarhaskell@gmail.com>**20080416213504
758 DEBUG imposes a significant performance hit in the GC, yet we often
759 want some of the debugging output, so -vg gives us the cheap trace
760 messages without the sanity checking of DEBUG, just like -vs for the
761 scheduler.
762]
763[GC: rearrange storage to reduce memory accesses in the inner loop
764Simon Marlow <simonmarhaskell@gmail.com>**20080416213436]
765[Add profiling of spinlocks
766Simon Marlow <simonmarhaskell@gmail.com>**20080416213358]
767[rename StgSync to SpinLock
768Simon Marlow <simonmarhaskell@gmail.com>**20080416211152]
769[Release some of the memory allocated to a stack when it shrinks (#2090)
770simonmar@microsoft.com**20080228153129
771 When a stack is occupying less than 1/4 of the memory it owns, and is
772 larger than a megablock, we release half of it.  Shrinking is O(1), it
773 doesn't need to copy the stack.
774]
775[scavengeTSO might encounter a ThreadRelocated; cope
776simonmar@microsoft.com**20080228152403]
777[Updating a thunk in raiseAsync might encounter an IND; cope
778simonmar@microsoft.com**20080228152332
779 There was already a check to avoid updating an IND, but it was
780 originally there to avoid a bug which doesn't exist now.  Furthermore
781 the test and update are not atomic, so another thread could be
782 updating this thunk while we are.  We have to just go ahead and update
783 anyway - it might waste a little work, but this is a very rare case.
784]
785[add GC(0) and GC(1) time
786Simon Marlow <simonmar@microsoft.com>**20080222142008]
787[round_to_mblocks: should use StgWord not nat
788Simon Marlow <simonmar@microsoft.com>**20080220130139]
789[debugging code
790Simon Marlow <simonmar@microsoft.com>**20080219102651]
791[refactoring
792simonmar@microsoft.com**20080218135458]
793[fix off-by-one
794simonmar@microsoft.com**20080215134017]
795[measure mut_elapsed_time
796simonmar@microsoft.com**20080215133850]
797[fix build with 6.8
798simonmar@microsoft.com**20080215133836]
799[add ROUNDUP_BYTES_TO_WDS
800simonmar@microsoft.com**20080215133040]
801[Allow +RTS -H0 as a way to override a previous -H<size>
802simonmar@microsoft.com**20080131153645]
803[comment out a bogus assertion
804simonmar@microsoft.com**20080130150934]
805[memInventory: optionally dump the memory inventory
806simonmar@microsoft.com**20080130150921
807 in addition to checking for leaks
808]
809[calcNeeded: fix the calculation, we weren't counting G0 step 1
810simonmar@microsoft.com**20080130150730]
811[calcNeeded: add in the large blocks too
812simonmar@microsoft.com**20080130135418]
813[update a comment
814Simon Marlow <simonmar@microsoft.com>**20080130101504]
815[tell Emacs these files are C
816simonmar@microsoft.com**20080130100047]
817[fix an assertion
818Simon Marlow <simonmar@microsoft.com>**20080118160910]
819[cut-and-pasto
820Simon Marlow <simonmar@microsoft.com>**20080116103751]
821[small rearrangement
822simonmar@microsoft.com**20080115095736]
823[recordMutableGen_GC: we must call the spinlocked version of allocBlock()
824Simon Marlow <simonmar@microsoft.com>**20080111135453]
825[remove unused declaration
826simonmar@microsoft.com**20080111105821]
827[more fixes for THUNK_SELECTORs
828Simon Marlow <simonmar@microsoft.com>**20080110122820]
829[Fix bug in eval_thunk_selector()
830simonmar@microsoft.com**20080110105628]
831[move markSparkQueue into GC.c, as it needs the register variable defined
832Simon Marlow <simonmar@microsoft.com>**20080109162828]
833[Windows fix
834Simon Marlow <simonmar@microsoft.com>**20080109162732]
835[Fix bug: eval_thunk_selector was calling the unlocked evacuate()
836Simon Marlow <simonmar@microsoft.com>**20080109144937]
837[add GC elapsed time
838simonmar@microsoft.com**20080107134838]
839[update to match Mb -> MB change in -s output
840simonmar@microsoft.com**20071220145855]
841[use "MB" rather than "Mb" for abbreviating megabytes
842simonmar@microsoft.com**20071218145135]
843[findSlop: useful function for tracking down excessive slop in gdb
844simonmar@microsoft.com**20071214135909]
845[calculate wastage due to unused memory at the end of each block
846simonmar@microsoft.com**20071214135842]
847[bugfix: check for NULL before testing isPartiallyFull(stp->blocks)
848simonmar@microsoft.com**20071214103223]
849[have each GC thread call GetRoots()
850simonmar@microsoft.com**20071213165013
851 
852]
853[use synchronised version of freeChain() in scavenge_mutable_list()
854simonmar@microsoft.com**20071213164525]
855[remove declarations for variables that no longer exist
856simonmar@microsoft.com**20071213150946]
857[remove old comment
858simonmar@microsoft.com**20071212163329]
859[GC: small improvement to parallelism
860simonmar@microsoft.com**20071129154927
861 don't cache a work block locally if the global queue is empty
862]
863[EVACUATED: target is definitely HEAP_ALLOCED(), no need to check
864simonmar@microsoft.com**20071129120021]
865[in scavenge_block(), keep going if we're scanning the todo block
866simonmar@microsoft.com**20071127160747]
867[count the number of todo blocks, and add a trace
868simonmar@microsoft.com**20071127160717]
869[oops, restore accidentally disabled hash-consing for Char
870simonmar@microsoft.com**20071123162522]
871[kill the PAR/GRAN debug flags
872simonmar@microsoft.com**20071122122327]
873[stats: print elapsed time for GC in each generation
874simonmar@microsoft.com**20071122105024]
875[assertion fix
876simonmar@microsoft.com**20071121164736]
877[cache bd->todo_bd->free and the limit in the workspace
878Simon Marlow <simonmar@microsoft.com>**20071121155851
879 avoids cache contention: bd->todo_bd->free may clash with any cache
880 line, so we localise it.
881]
882[warning fix
883simonmar@microsoft.com**20071121164747]
884[fix boundary bugs in a couple of for-loops
885simonmar@microsoft.com**20071120133835]
886[improvements to PAPI support
887simonmar@microsoft.com**20071120133635
888 - major (multithreaded) GC is measured separately from minor GC
889 - events to measure can now be specified on the command line, e.g
890      prog +RTS -a+PAPI_TOT_CYC
891 
892]
893[use SRC_CC_OPTS rather than SRC_HC_OPTS for C options
894simonmar@microsoft.com**20071119111630]
895[allow PAPI to be installed somewhere non-standard
896Simon Marlow <simonmar@microsoft.com>**20071101150325]
897[fix warnings
898Simon Marlow <simonmar@microsoft.com>**20071101150258]
899[fix a warning
900Simon Marlow <simonmar@microsoft.com>**20071101150228]
901[fix a warning
902Simon Marlow <simonmar@microsoft.com>**20071101150200]
903[rename n_threads to n_gc_threads
904Simon Marlow <simonmar@microsoft.com>**20071031163147]
905[Refactor PAPI support, and add profiling of multithreaded GC
906Simon Marlow <simonmar@microsoft.com>**20071031163015]
907[fix merge errors
908Simon Marlow <simonmar@microsoft.com>**20071031153839]
909[refactoring of eager_promotion in scavenge_block()
910Simon Marlow <simonmar@microsoft.com>**20071031153417]
911[compile special minor GC versions of evacuate() and scavenge_block()
912Simon Marlow <simonmar@microsoft.com>**20071031153339
913 
914 This is for two reasons: minor GCs don't need to do per-object locking
915 for parallel GC, which is fairly expensive, and secondly minor GCs
916 don't need to follow SRTs.
917]
918[fixes for eval_thunk_selector() in parallel GC
919Simon Marlow <simonmar@microsoft.com>**20071031153252]
920[Remove the optimisation of avoiding scavenging for certain objects
921Simon Marlow <simonmar@microsoft.com>**20071031144542
922 
923 Some objects don't need to be scavenged, in particular if they have no
924 pointers.  This seems like an obvious optimisation, but in fact it
925 only accounts for about 1% of objects (in GHC, for example), and the
926 extra complication means it probably isn't worth doing.
927]
928[GC refactoring: change evac_gen to evac_step
929Simon Marlow <simonmar@microsoft.com>**20071031144230
930 
931 By establishing an ordering on step pointers, we can simplify the test
932   (stp->gen_no < evac_gen)
933 to
934   (stp < evac_step)
935 which is common in evacuate().
936]
937[GC refactoring: make evacuate() take an StgClosure**
938Simon Marlow <simonmar@microsoft.com>**20071031143634
939 
940 Change the type of evacuate() from
941   StgClosure *evacuate(StgClosure *);
942 to
943   void evacuate(StgClosure **);
944 
945 So evacuate() itself writes the source pointer, rather than the
946 caller.  This is slightly cleaner, and avoids a few memory writes:
947 sometimes evacuate() doesn't move the object, and in these cases the
948 source pointer doesn't need to be written.  It doesn't have a
949 measurable impact on performance, though.
950]
951[tiny optimisation in evacuate()
952Simon Marlow <simonmar@microsoft.com>**20071031130935]
953[Initial parallel GC support
954Simon Marlow <simonmar@microsoft.com>**20071031130718
955 
956 eg. use +RTS -g2 -RTS for 2 threads.  Only major GCs are parallelised,
957 minor GCs are still sequential. Don't use more threads than you
958 have CPUs.
959 
960 It works most of the time, although you won't see much speedup yet.
961 Tuning and more work on stability still required.
962]
963[Refactoring of the GC in preparation for parallel GC
964Simon Marlow <simonmar@microsoft.com>**20071031125136
965   
966 This patch localises the state of the GC into a gc_thread structure,
967 and reorganises the inner loop of the GC to scavenge one block at a
968 time from global work lists in each "step".  The gc_thread structure
969 has a "workspace" for each step, in which it collects evacuated
970 objects until it has a full block to push out to the step's global
971 list.  Details of the algorithm will be on the wiki in due course.
972 
973 At the moment, THREADED_RTS does not compile, but the single-threaded
974 GC works (and is 10-20% slower than before).
975]
976[also count total dispatch stalls in +RTS -as
977Simon Marlow <simonmar@microsoft.com>**20071030144509]
978[move GetRoots() to GC.c
979Simon Marlow <simonmar@microsoft.com>**20071030130052]
980[Tweak a comment to talk about UnboxedTuples rather than -fglasgow-exts
981Ian Lynagh <igloo@earth.li>**20080616225248]
982[Suggest -XRelaxedPolyRec rather than -fglasgow-exts in an error message
983Ian Lynagh <igloo@earth.li>**20080616213438]
984[Fix the splitter with perl 5.10; patch from Audrey Tang
985Ian Lynagh <igloo@earth.li>**20080611122837]
986[Remove some build system code that can't happen
987Ian Lynagh <igloo@earth.li>**20080616181425
988 ghc_ge_601 is no longer defined
989]
990[Fix Trac #2358: 1-tuples in Template Haskell
991simonpj@microsoft.com**20080614123939
992 
993 fons points out that TH was treating 1-tuples inconsistently.  Generally
994 we make a 1-tuple into a no-op, so that (e) and e are the same.  But
995 I'd forgotten to do this for types.
996 
997 It is possible to have a type with an un-saturated 1-tuple type
998 constructor. That now elicits an error message when converting from
999 TH syntax to Hs syntax
1000 
1001]
1002[Fix nasty Simplifier scoping bug
1003simonpj@microsoft.com**20080614023937
1004 
1005 This bug was somehow tickled by the new code for desugaring
1006 polymorphic bindings, but the bug has been there a long time.  The
1007 bindings floated out in simplLazyBind, generated by abstractFloats,
1008 were getting processed by postInlineUnconditionally. But that was
1009 wrong because part of their scope has already been processed.
1010 
1011 That led to a bit of refactoring in the simplifier.  See comments
1012 with Simplify.addPolyBind.
1013 
1014 In principle this might happen in 6.8.3, but in practice it doesn't seem
1015 to, so probably not worth merging.
1016 
1017]
1018[CoreLint should check for out-of-scope worker
1019simonpj@microsoft.com**20080614023809]
1020[More commandline flag improvements
1021Ian Lynagh <igloo@earth.li>**20080616142917
1022 * Allow -ffoo flags to be deprecated
1023 * Mark some -ffoo flags as deprecated
1024 * Avoid using deprecated flags in error messages, in the build system, etc
1025 * Add a flag to en/disable the deprecated flag warning
1026]
1027[Remove an ifdef
1028Ian Lynagh <igloo@earth.li>**20080616111114]
1029[Add ghc_ge_609
1030Ian Lynagh <igloo@earth.li>**20080615134636]
1031[Remove an ifdef
1032Ian Lynagh <igloo@earth.li>**20080615133743]
1033[Don't compile Cabal with -cpp -fffi
1034Ian Lynagh <igloo@earth.li>**20080615010826
1035 Instead rely on the sources having suitable pragmas
1036]
1037[Remove a typo
1038Ian Lynagh <igloo@earth.li>**20080615005956]
1039[Allow -X flags to be deprecated, and deprecate RecordPuns; fixes #2320
1040Ian Lynagh <igloo@earth.li>**20080615000041]
1041[Fix a warning in DsForeign
1042Ian Lynagh <igloo@earth.li>**20080614215346]
1043[Fix warnings in Linker
1044Ian Lynagh <igloo@earth.li>**20080614212627]
1045[Use the right set of linkables in unload_wkr
1046Ian Lynagh <igloo@earth.li>**20080614211539]
1047[Use bracket_ rather than bracket in withExtendedLinkEnv
1048Ian Lynagh <igloo@earth.li>**20080614211414]
1049[Remove more ifdeffery
1050Ian Lynagh <igloo@earth.li>**20080614205131]
1051[Remove more ifdeffery
1052Ian Lynagh <igloo@earth.li>**20080614204234]
1053[Remove more ifdeffery
1054Ian Lynagh <igloo@earth.li>**20080614203215]
1055[Remove some ifdeffery
1056Ian Lynagh <igloo@earth.li>**20080614202640]
1057[Fix some warnings in ParsePkgConf
1058Ian Lynagh <igloo@earth.li>**20080614201558]
1059[Fix warnings in DsForeign
1060Ian Lynagh <igloo@earth.li>**20080614200820]
1061[Fix warnings in PprCore
1062Ian Lynagh <igloo@earth.li>**20080614195611]
1063[Fix warnings in Main
1064Ian Lynagh <igloo@earth.li>**20080614194120]
1065[Set -Wall in compiler/Makefile.ghcbin
1066Ian Lynagh <igloo@earth.li>**20080614193536]
1067[Use maybePrefixMatch in StaticFlags rather than redefining it ourselves
1068Ian Lynagh <igloo@earth.li>**20080614190505]
1069[Use -fforce-recomp rather than -no-recomp
1070Ian Lynagh <igloo@earth.li>**20080614181740]
1071[Tweak the deprecated flags warning
1072Ian Lynagh <igloo@earth.li>**20080614174850]
1073[Use -O0 rather than -Onot in compiler/Makefile
1074Ian Lynagh <igloo@earth.li>**20080614171256]
1075[Don't use -recomp whem compiling GHC, as it's the default (and now deprecated)
1076Ian Lynagh <igloo@earth.li>**20080614165649]
1077[Use -fforce-recomp rather than -no-recomp when building genapply
1078Ian Lynagh <igloo@earth.li>**20080614161927]
1079[Get -recomp and -no-recomp the right way round
1080Ian Lynagh <igloo@earth.li>**20080614161851]
1081[Fix conversions between Double/Float and simple-integer
1082Ian Lynagh <igloo@earth.li>**20080614152337]
1083[Use unified diff
1084Ian Lynagh <igloo@earth.li>**20080603172947]
1085[Use -O0 rather than the deprecated -Onot
1086Ian Lynagh <igloo@earth.li>**20080614152131]
1087[Handle errors in an OPTIONS pragma when preprocessing
1088Ian Lynagh <igloo@earth.li>**20080614145840]
1089[Allow flags to be marked as deprecated
1090Ian Lynagh <igloo@earth.li>**20080614144829]
1091[eta-reduce a Monad type synonym, so we can use it non-applied
1092Ian Lynagh <igloo@earth.li>**20080614142056]
1093[Use a proper datatype, rather than pairs, for flags
1094Ian Lynagh <igloo@earth.li>**20080614133848]
1095[Fix warnings in DriverMkDepend
1096Ian Lynagh <igloo@earth.li>**20080614133224]
1097[Fix whitespace in DriverMkDepend
1098Ian Lynagh <igloo@earth.li>**20080614132914]
1099[Fix the last warnings in DynFlags
1100Ian Lynagh <igloo@earth.li>**20080614125033
1101 We might want to put the values initSysTools finds in their own type,
1102 rather than having them flattened into DynFlags
1103]
1104[Pass dynflags down to loadPackageConfig rather than using defaultDynFlags
1105Ian Lynagh <igloo@earth.li>**20080614123427]
1106[Make initSysTools use the dflags it is passed, rather than defaultDynFlags
1107Ian Lynagh <igloo@earth.li>**20080614122834]
1108[Remove some unused bindings from HaddockLex
1109Ian Lynagh <igloo@earth.li>**20080614122057]
1110[Pass dynflags down through to pragState
1111Ian Lynagh <igloo@earth.li>**20080614121156
1112 so we no longer need to use defaultDynFlags there
1113]
1114[Whitespace only in DynFlags
1115Ian Lynagh <igloo@earth.li>**20080614120316]
1116[Define and use is_decdigit for lexing escapes; fixes trac #2304
1117Ian Lynagh <igloo@earth.li>**20080613203553]
1118[Make SysTools warning-free
1119Ian Lynagh <igloo@earth.li>**20080612141738]
1120[Remove some CPPery with the help of a new value isWindowsHost in Util
1121Ian Lynagh <igloo@earth.li>**20080612002711
1122 isWindowsHost is True iff mingw32_HOST_OS is defined.
1123]
1124[Remove unused FFI import GetTempPathA (getTempPath)
1125Ian Lynagh <igloo@earth.li>**20080612001936]
1126[Whitespace only, in SysTools
1127Ian Lynagh <igloo@earth.li>**20080611233129]
1128[Get rid of the last remnants of PROJECT_DIR
1129Ian Lynagh <igloo@earth.li>**20080611230433
1130 This disappeared when we stopped being "fptools" and became just "ghc"
1131]
1132[Tell the testsuite how many threads we want it to use when validating
1133Ian Lynagh <igloo@earth.li>**20080611155456]
1134[Fix warnings in LexCore
1135Ian Lynagh <igloo@earth.li>**20080610125317]
1136[Fix warnings in Ctype
1137Ian Lynagh <igloo@earth.li>**20080610124223]
1138[Fix warnings in TcPat
1139Ian Lynagh <igloo@earth.li>**20080610123343]
1140[Fix warnings in TcEnv
1141Ian Lynagh <igloo@earth.li>**20080610121819]
1142[Fix warnings in TcRnTypes
1143Ian Lynagh <igloo@earth.li>**20080606234704]
1144[Fix warnings in TcTyClsDecls
1145Ian Lynagh <igloo@earth.li>**20080606213239]
1146[Fix warnings in TcHsType
1147Ian Lynagh <igloo@earth.li>**20080606204854]
1148[Fix warnings in TcSimplify
1149Ian Lynagh <igloo@earth.li>**20080606202435]
1150[Fix warnings in TcRules
1151Ian Lynagh <igloo@earth.li>**20080606200800]
1152[Fix warnings in TcInstDcls
1153Ian Lynagh <igloo@earth.li>**20080606200534]
1154[Fix warnings in TcMType
1155Ian Lynagh <igloo@earth.li>**20080606194931]
1156[Fix warnings in TcForeign
1157Ian Lynagh <igloo@earth.li>**20080606192610]
1158[Fix warnings in TcClassDcl
1159Ian Lynagh <igloo@earth.li>**20080606191413]
1160[Fix a bug in eqPatType
1161Ian Lynagh <igloo@earth.li>**20080606184631
1162 One of the conditions we were checking was
1163     t2 `eqPatLType` t2
1164 rather than
1165     t1 `eqPatLType` t2
1166]
1167[Show whether DEBUG is on in ghc --info
1168Ian Lynagh <igloo@earth.li>**20080606184415]
1169[Use -fno-toplevel-reorder with gcc >= 4.2 on sparc-solaris; fixes trac #2312
1170Ian Lynagh <igloo@earth.li>**20080606133817]
1171[Teach configure about amd64/NetBSD; fixes trac #2348
1172Ian Lynagh <igloo@earth.li>**20080606130955]
1173[Enable the mangler for netbsd/amd64; fixes trac #2347
1174Ian Lynagh <igloo@earth.li>**20080606130706]
1175[Improve documentation for standalone deriving
1176simonpj@microsoft.com**20080606122459]
1177[Fix Trac #2334: validity checking for type families
1178simonpj@microsoft.com**20080606121730
1179 
1180 When we deal with a family-instance declaration (TcTyClsDecls.tcFamInstDecl)
1181 we must check the TyCon for validity; for example, that a newtype has exactly
1182 one field.  That is done all-at-once for normal declarations, and had been
1183 forgotten altogether for families.
1184 
1185 I also refactored the interface to tcFamInstDecl1 slightly.
1186 
1187 
1188 A slightly separate matter: if there's an error in family instances
1189 (e.g. overlap) we get a confusing error message cascade if we attempt to
1190 deal with 'deriving' clauses too; this patch bales out earlier in that case.
1191 
1192 
1193 Another slightly separate matter: standalone deriving for family
1194 instances can legitimately have more specific types, just like normal
1195 data decls. For example
1196   
1197    data instance F [a] = ...
1198    deriving instance (Eq a, Eq b) => Eq (F [(a,b)])
1199 
1200 So tcLookupFamInstExact can a bit more forgiving than it was.
1201 
1202 
1203]
1204[Vital follow-up to fix of Trac #2045
1205simonpj@microsoft.com**20080605165434
1206 
1207 Sorry -- my 'validate' didn't work right and I missed a trick.
1208 This patch must accompany
1209 
1210  * Fix Trac #2045: use big-tuple machiney for implication constraints
1211 
1212 
1213]
1214[Fix Trac #2045: use big-tuple machiney for implication constraints
1215simonpj@microsoft.com**20080605145617]
1216[Comments only
1217simonpj@microsoft.com**20080605134743]
1218[Desugar multiple polymorphic bindings more intelligently
1219simonpj@microsoft.com**20080605124423
1220 
1221 Occasionally people write very large recursive groups of definitions.
1222 In general we desugar these to a single definition that binds tuple,
1223 plus lots of tuple selectors.  But that code has quadratic size, which
1224 can be bad.
1225 
1226 This patch adds a new case to the desugaring of bindings, for the
1227 situation where there are lots of polymorphic variables, but no
1228 dictionaries.  (Dictionaries force us into the general case.)
1229 
1230 See Note [Abstracting over tyvars only]. 
1231 
1232 The extra behaviour can be disabled with the (static) flag
1233 
1234        -fno-ds-multi-tyvar
1235 
1236 in case we want to experiment with switching it on or off.  There is
1237 essentially-zero effect on the nofib suite though.
1238 
1239 I was provoked into doing this by Trac #1136.  In fact I'm not sure
1240 it's the real cause of the problem there, but it's a good idea anyway.
1241 
1242]
1243[Add non-recursive let-bindings for types
1244simonpj@microsoft.com**20080605123612
1245 
1246 This patch adds to Core the ability to say
1247        let a = Int in <body>
1248 where 'a' is a type variable.  That is: a type-let.
1249 See Note [Type let] in CoreSyn.
1250 
1251 * The binding is always non-recursive
1252 * The simplifier immediately eliminates it by substitution
1253 
1254 So in effect a type-let is just a delayed substitution.  This is convenient
1255 in a couple of places in the desugarer, one existing (see the call to
1256 CoreTyn.mkTyBind in DsUtils), and one that's in the next upcoming patch.
1257 
1258 The first use in the desugarer was previously encoded as
1259        (/\a. <body>) Int
1260 rather that eagerly substituting, but that was horrid because Core Lint
1261 had do "know" that a=Int inside <body> else it would bleat.  Expressing
1262 it directly as a 'let' seems much nicer.
1263 
1264 
1265]
1266[Fix Trac #2339: reify (mkName "X")
1267simonpj@microsoft.com**20080604150207]
1268[Fix Trac #2310: result type signatures are not supported any more
1269simonpj@microsoft.com**20080604145115
1270 
1271 We have not supported "result type signatures" for some time, but
1272 using one in the wrong way caused a crash.  This patch tidies it up.
1273 
1274]
1275[Sort modules and packages in debug print (reduce test wobbles)
1276simonpj@microsoft.com**20080604144049
1277 
1278 This affects only the debug print TcRnDriver.pprTcGblEnv, and eliminates
1279 test-suite wobbling (affected me for tc168, tc231)
1280 
1281]
1282[Fix #2334: tyvar binders can have Names inside (equality predicates)
1283Simon Marlow <marlowsd@gmail.com>**20080604113002]
1284[fix pointer tagging bug in removeIndirections (fixes stableptr003)
1285Simon Marlow <marlowsd@gmail.com>**20080604105458]
1286[Fix unreg build
1287Simon Marlow <marlowsd@gmail.com>**20080604093653]
1288[tiny tweak to the stack squeezing heuristic (fixes cg060)
1289Simon Marlow <marlowsd@gmail.com>**20080604091244]
1290[MacOS installer: don't quote XCODE_EXTRA_CONFIGURE_ARGS
1291Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080604021321]
1292[MacOS installer: terminate build on intermediate failure
1293Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080604020155]
1294[Fix Trac #2331 (error message suggestion)
1295simonpj@microsoft.com**20080603134645]
1296[Improve documentation of RULES
1297simonpj@microsoft.com**20080530155137]
1298[Improve documentation for INLINE pragma
1299simonpj@microsoft.com**20080530133307]
1300[add debugDumpTcRn and use it for some debugging output
1301Simon Marlow <marlowsd@gmail.com>**20080603112030]
1302[Turn "NOTE: Simplifier still going..." message into a WARN()
1303Simon Marlow <marlowsd@gmail.com>**20080603105431]
1304[remove the "expanding to size" messages
1305Simon Marlow <marlowsd@gmail.com>**20080603094546]
1306[New flag: -dno-debug-output
1307Simon Marlow <marlowsd@gmail.com>**20080603082924
1308 From the docs:
1309    <para>Suppress any unsolicited debugging output.  When GHC
1310      has been built with the <literal>DEBUG</literal> option it
1311      occasionally emits debug output of interest to developers.
1312      The extra output can confuse the testing framework and
1313      cause bogus test failures, so this flag is provided to
1314      turn it off.</para>
1315]
1316[-no-link-chk has been a no-op since at least 6.0; remove it
1317Simon Marlow <marlowsd@gmail.com>**20080603082041]
1318[-no-link-chk is a relic
1319Simon Marlow <marlowsd@gmail.com>**20080603081904]
1320[Shorten debug messages
1321simonpj@microsoft.com**20080603121208]
1322[Fix minor layout issue (whitespace only)
1323simonpj@microsoft.com**20080602130611]
1324[MacOS installer: clean up Xcode project spec
1325Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080602070705]
1326[Fix validate: -Werror bug in patch "Replacing copyins and copyouts..."
1327Simon Marlow <marlowsd@gmail.com>**20080602144945]
1328[FIX #2231: add missing stack check when applying a PAP
1329Simon Marlow <marlowsd@gmail.com>**20080602143726
1330 This program makes a PAP with 203 arguments :-)
1331]
1332[-fforce-recomp should be unnecessary for Main.hs in stage[23] now
1333Simon Marlow <marlowsd@gmail.com>**20080602133801]
1334[Missing import in C-- parser
1335dias@eecs.harvard.edu**20080602103156]
1336[TAG 2008-06-01
1337Ian Lynagh <igloo@earth.li>**20080601155241]
1338Patch bundle hash:
1339790c76f6bdba2a4915703119397f0d52b14aafb2