Ticket #2452: no-implicit-import-qualified-flag.dpatch

File no-implicit-import-qualified-flag.dpatch, 58.3 KB (added by jcpetruzza, 6 years ago)

patch that adds this flag (ghc 6.9)

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