Ticket #1344: ghc.patch

File ghc.patch, 92.7 KB (added by lelf, 4 years ago)
Line 
11 patch for repository http://darcs.haskell.org/ghc:
2
3Wed Jul 21 23:42:08 SAMST 2010  Anton Nikishaev <anton.nik@gmail.com>
4  * Fix numeric escape sequences parsing
5  This fixes trac bug #1344
6
7New patches:
8
9[Fix numeric escape sequences parsing
10Anton Nikishaev <anton.nik@gmail.com>**20100721194208
11 Ignore-this: dd71935b1866b5624f7975c45ad519a1
12 This fixes trac bug #1344
13] {
14hunk ./compiler/parser/Lexer.x 1352
15   where read i input = do
16          case alexGetChar' input of
17            Just (c,input') | is_digit c -> do
18-               read (i*base + conv c) input'
19+               let i' = i*base + conv c
20+               if i' > 0x10ffff
21+                  then setInput input >> lexError "numeric escape sequence out of range"
22+                  else read i' input'
23            _other -> do
24hunk ./compiler/parser/Lexer.x 1357
25-               if i >= 0 && i <= 0x10FFFF
26-                  then do setInput input; return (chr i)
27-                  else lit_error input
28+              setInput input; return (chr i)
29+
30 
31 silly_escape_chars :: [(String, Char)]
32 silly_escape_chars = [
33}
34
35Context:
36
37[add numSparks# primop (#4167)
38Simon Marlow <marlowsd@gmail.com>**20100720153746
39 Ignore-this: f3f925e7de28f3f895213aefbdbe0b0f
40]
41[LLVM: Decrease max opt level used under OSX to avoid bug
42David Terei <davidterei@gmail.com>**20100720160938
43 Ignore-this: 34b0b3550f00b27b00ad92f8232745e5
44 
45 Currently, many programs compiled with GHC at -O2 and LLVM
46 set to -O3 will segfault (only under OSX). Until this issue
47 is fixed I have simply 'solved' the segfault by lowering
48 the max opt level for LLVM used to -O2 under OSX.
49 
50 All these recent changes to OSX should mean its finally as
51 stable as Linux and Windows.
52]
53[LLVM: Fix OSX to work again with TNTC disabled.
54David Terei <davidterei@gmail.com>**20100720160845
55 Ignore-this: 8dc98139cfa536b2a64aa364d040b581
56]
57[LLVM: Fix printing of local vars so LLVM works with -fnew-codegen
58David Terei <davidterei@gmail.com>**20100720160302
59 Ignore-this: d883c433dfaed67921a8c5360e1f9f6a
60]
61[Use a separate mutex to protect all_tasks, avoiding a lock-order-reversal
62Simon Marlow <marlowsd@gmail.com>**20100716150832
63 Ignore-this: ffbdb4ee502e0f724d57acb9bfbe9d92
64 In GHC 6.12.x I found a rare deadlock caused by this
65 lock-order-reversal:
66 
67 AQ cap->lock
68   startWorkerTask
69     newTask
70       AQ sched_mutex
71 
72 scheduleCheckBlackHoles
73   AQ sched_mutex
74    unblockOne_
75     wakeupThreadOnCapabilty
76       AQ cap->lock
77 
78 so sched_mutex and cap->lock are taken in a different order in two
79 places.
80 
81 This doesn't happen in the HEAD because we don't have
82 scheduleCheckBlackHoles, but I thought it would be prudent to make
83 this less likely to happen in the future by using a different mutex in
84 newTask.  We can clearly see that the all_tasks mutex cannot be
85 involved in a deadlock, becasue we never call anything else while
86 holding it.
87]
88['make fast' in a package does not build any compilers
89Simon Marlow <marlowsd@gmail.com>**20100715125904
90 Ignore-this: f27e70faf3944831dad16e89a4e273da
91]
92[LLVM: Fix up botched last commit
93David Terei <davidterei@gmail.com>**20100719104823
94 Ignore-this: a32e0f6a38cb9e02527eb8ca69b3eb59
95]
96[LLVM: Fix warning introduce in last commit.
97David Terei <davidterei@gmail.com>**20100719103411
98 Ignore-this: e9c92a9402aff50d60ab26e6ad441bfc
99]
100[LLVM: Use mangler to fix up stack alignment issues on OSX
101David Terei <davidterei@gmail.com>**20100718231000
102 Ignore-this: 9f6e8cb855269cb3a5ac1a23480d0e71
103]
104[Fix #4195 (isGadtSyntaxTyCon returns opposite result)
105illissius@gmail.com**20100715134134
106 Ignore-this: a90403f893030432b5c15d743647f350
107]
108[Update to time 1.2.0.3
109Ian Lynagh <igloo@earth.li>**20100717181810
110 Ignore-this: 1ccb4801a73f399e6718ce556543ede1
111]
112[Reorder RTS --info output
113Ian Lynagh <igloo@earth.li>**20100717162356]
114[Fix unreg prof build: Define CCS_SYSTEM in stg/MiscClosures.h
115Ian Lynagh <igloo@earth.li>**20100717142832
116 Ignore-this: 9675f3f51b6dac40483155344e7f45b6
117]
118[Make mkDerivedConstants as a stage 1 program
119Ian Lynagh <igloo@earth.li>**20100717000827
120 Ignore-this: 5357403461b209b8606f1d33defb51cf
121 This way it gets the defines for the right platform when cross-compiling
122]
123[Don't generate Haskell dependencies if we don't have any Haskell sources
124Ian Lynagh <igloo@earth.li>**20100717000800
125 Ignore-this: 454abd0358f535b7e789327125c9206c
126]
127[Link programs that have no Haskell objects with gcc rather than ghc
128Ian Lynagh <igloo@earth.li>**20100716235303
129 Ignore-this: f65588b69675edea616cc434e769b0a4
130]
131[Use gcc to build C programs for stages >= 1
132Ian Lynagh <igloo@earth.li>**20100716223703
133 Ignore-this: 9f843a4e17285cda582117504707f9e7
134]
135[Add platform info to "ghc --info" output
136Ian Lynagh <igloo@earth.li>**20100716141953]
137[Tidy up Config.hs generation
138Ian Lynagh <igloo@earth.li>**20100716140630]
139[Fix HC porting test in makefiles
140Ian Lynagh <igloo@earth.li>**20100716010808
141 Ignore-this: 6052c1dd022a6108ab2236a299ee1d84
142 Now that we are trying to support cross compilation, we can't use
143     "$(TARGETPLATFORM)" != "$(HOSTPLATFORM)"
144 as a test for HC-porting.
145]
146[Change a BUILD var to a HOST var
147Ian Lynagh <igloo@earth.li>**20100716002558]
148[Remove an unnecessary #include
149Ian Lynagh <igloo@earth.li>**20100715233930
150 Ignore-this: dcede249de6be7e3c9305c9279c2ca07
151]
152[Split up some make commands, so that errors aren't overlooked
153Ian Lynagh <igloo@earth.li>**20100715152237
154 Ignore-this: fb69b0a25d9ca71dae5e75d38db675cd
155 When we ask make to run "a | b", if a fails then the pipeline might
156 still exit successfuly.
157]
158[Remove an unnecessary #include
159Ian Lynagh <igloo@earth.li>**20100715143000
160 Ignore-this: 4e098cac5dda2dd595ca0a0f5121853c
161]
162[Simplify some more CPP __GLASGOW_HASKELL__ tests
163Ian Lynagh <igloo@earth.li>**20100715142500]
164[Remove some code only used with GHC 6.11.*
165Ian Lynagh <igloo@earth.li>**20100715141720]
166[__GLASGOW_HASKELL__ >= 609 is now always true
167Ian Lynagh <igloo@earth.li>**20100715141544]
168[Correct the values in ghc_boot_platform.h
169Ian Lynagh <igloo@earth.li>**20100714223717
170 Ignore-this: 4c99116f7ac73fadbd6d16807f57a693
171]
172[Change some TARGET checks to HOST checks
173Ian Lynagh <igloo@earth.li>**20100714184715]
174[LLVM: Add inline assembly to binding.
175David Terei <davidterei@gmail.com>**20100714152530
176 Ignore-this: 72a7b5460c128ed511e8901e5889fe2b
177]
178[LLVM: Fix mistype in last commit which broke TNTC under win/linux.
179David Terei <davidterei@gmail.com>**20100714153339
180 Ignore-this: 302d7957e3dded80368ebade5312ab35
181]
182[Remove unnecessary #include
183Ian Lynagh <igloo@earth.li>**20100713153704
184 Ignore-this: c37d3127b1dc68f59270c07173994c28
185]
186[Change some TARGET tests to HOST tests in the RTS
187Ian Lynagh <igloo@earth.li>**20100713141034
188 Which was being used seemed to be random
189]
190[LLVM: Add in new LLVM mangler for implementing TNTC on OSX
191David Terei <davidterei@gmail.com>**20100713183243
192 Ignore-this: 394fb74d7f9657d8b454bd0148d24bf7
193]
194[Refactor where an error message is generated
195simonpj@microsoft.com**20100713115733
196 Ignore-this: f94467856238586fcbbe48537141cf78
197]
198[Comments only
199simonpj@microsoft.com**20100713115703
200 Ignore-this: 5815442c4e69b9ec331b34242a596253
201]
202[Comments on data type families
203simonpj@microsoft.com**20100713115640
204 Ignore-this: 90a333bb7f7d64a49fb7dd180d893f6b
205]
206[Fix Trac #T4136: take care with nullary symbol constructors
207simonpj@microsoft.com**20100707135945
208 Ignore-this: 2a717a24fefcd593ea41c23dad351db0
209 
210 When a nullary constructor is a symbol eg (:=:) we need
211 to take care.  Annoying.
212]
213[Fix Trac #4127 (and hence #4173)
214simonpj@microsoft.com**20100707123125
215 Ignore-this: 98bb6d0f7182b59f8c93596c61f9785d
216 
217 The change involves a little refactoring, so that the default
218 method Ids are brought into scope earlier, before the value
219 declarations are compiled.  (Since a value decl may contain
220 an instance decl in a quote.)
221 
222 See Note [Default method Ids and Template Haskell] in
223 TcTyClsDcls.
224]
225[Fix second bug in Trac #4127
226simonpj@microsoft.com**20100701140124
227 Ignore-this: c8d1cc27364fe9ee5a52acb1ecb5cdd9
228 
229 This bug concerned the awkward shadowing we do for
230 Template Haskell declaration brackets.  Lots of
231 comments in
232 
233   Note [Top-level Names in Template Haskell decl quotes]
234]
235[ia64: switch handling of 'foreign import wrapper' (FIW) to libffi
236Sergei Trofimovich <slyfox@community.haskell.org>**20100709213922
237 Ignore-this: fd07687e0089aebabf62de85d2be693
238 
239 I tried to build darcs-2.4.4 with ghc-6.12.3 and got coredumps when darcs is used
240 in interactive mode. I tried test from ticket #3516 and found out FIW code is broken.
241 Instead of fixing it I just switched to libffi. Result built successfully, passed
242 'foreign import wrapper' test from ticket #3516 and builds working darcs.
243]
244[* storage manager: preserve upper address bits on 64bit machines (thanks to zygoloid)
245Sergei Trofimovich <slyfox@community.haskell.org>**20100709115917
246 Ignore-this: 9f1958a19992091ddc2761c389ade940
247 
248 Patch does not touch amd64 as it's address lengts is 48 bits at most, so amd64 is unaffected.
249 
250 the issue: during ia64 ghc bootstrap (both 6.10.4 and 6.12.3) I
251 got the failure on stage2 phase:
252     "inplace/bin/ghc-stage2"   -H32m -O -H64m -O0 -w ...
253     ghc-stage2: internal error: evacuate: strange closure type 15
254         (GHC version 6.12.3 for ia64_unknown_linux)
255         Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
256     make[1]: *** [libraries/dph/dph-base/dist-install/build/Data/Array/Parallel/Base/Hyperstrict.o] Aborted
257 
258 gdb backtrace (break on 'barf'):
259 Breakpoint 1 at 0x400000000469ec31: file rts/RtsMessages.c, line 39.
260 (gdb) run -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
261 Starting program: /var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/lib/ghc-stage2 -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
262 [Thread debugging using libthread_db enabled]
263 
264 Breakpoint 1, barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
265 39        va_start(ap,s);
266 (gdb) bt
267 #0  barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
268 #1  0x400000000474a1e0 in evacuate (p=0x6000000000147958) at rts/sm/Evac.c:756
269 #2  0x40000000046d68c0 in scavenge_srt (srt=0x6000000000147958, srt_bitmap=7) at rts/sm/Scav.c:348
270 ...
271 
272 > 16:52:53 < zygoloid> slyfox: i'm no ghc expert but it looks like HEAP_ALLOCED_GC(q)
273 >                      is returning true for a FUN_STATIC closure
274 > 17:18:43 < zygoloid> try: p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
275 > 17:19:12 < slyfox> (gdb) p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
276 > 17:19:12 < slyfox> $1 = 0
277 > 17:19:40 < zygoloid> i /think/ that means the mblock_cache is broken
278 > 17:22:45 < zygoloid> i can't help further. however i am suspicious that you seem to have pointers with similar-looking low 33
279 >                      bits and different high 4 bits, and it looks like such pointers get put into the same bucket in
280 >                      mblock_cache.
281 ...
282 > 17:36:16 < zygoloid> slyfox: try changing the definition of MbcCacheLine to StgWord64, see if that helps
283 > 17:36:31 < zygoloid> that's in includes/rts/storage/MBlock.h
284 And it helped!
285]
286[Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
287Sergei Trofimovich <slyfox@community.haskell.org>**20100708180943
288 Ignore-this: ced99785e1f870ee97e5bec658e2504f
289 
290     /usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
291                                   dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
292     /usr/bin/ld: unrecognized option '-Wl,--relax'
293 
294 If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
295 
296 Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
297 Removing ia64 specific path.
298]
299[LLVM: Allow getelementptr to use LlvmVar for indexes.
300David Terei <davidterei@gmail.com>**20100712152529
301 Ignore-this: 9e158d9b89a86bca8abf11d082328278
302]
303[Move all the warning workarounds to one place
304Ian Lynagh <igloo@earth.li>**20100710161723]
305[xhtml is now warning-free
306Ian Lynagh <igloo@earth.li>**20100710144635]
307[Move a bit of build system code
308Ian Lynagh <igloo@earth.li>**20100709224534]
309[adapt to the new async exceptions API
310Simon Marlow <marlowsd@gmail.com>**20100709125238
311 Ignore-this: 55d845e40b9daed3575c1479d8dda1d5
312]
313[quiet some new spewage
314Simon Marlow <marlowsd@gmail.com>**20100709091521
315 Ignore-this: de7f91976bbc9789e6fd7091f05c25c0
316]
317[New asynchronous exception control API (ghc parts)
318Simon Marlow <marlowsd@gmail.com>**20100708144851
319 Ignore-this: 56320c5fc61ae3602d586609387aae22
320 
321 As discussed on the libraries/haskell-cafe mailing lists
322   http://www.haskell.org/pipermail/libraries/2010-April/013420.html
323 
324 This is a replacement for block/unblock in the asychronous exceptions
325 API to fix a problem whereby a function could unblock asynchronous
326 exceptions even if called within a blocked context.
327 
328 The new terminology is "mask" rather than "block" (to avoid confusion
329 due to overloaded meanings of the latter).
330 
331 In GHC, we changed the names of some primops:
332 
333   blockAsyncExceptions#   -> maskAsyncExceptions#
334   unblockAsyncExceptions# -> unmaskAsyncExceptions#
335   asyncExceptionsBlocked# -> getMaskingState#
336 
337 and added one new primop:
338 
339   maskUninterruptible#
340 
341 See the accompanying patch to libraries/base for the API changes.
342]
343[remove outdated comment
344Simon Marlow <marlowsd@gmail.com>**20100708100840
345 Ignore-this: afb2e9f6fe1f1acda51b0cbdf2637176
346]
347[remove 'mode: xml' emacs settings (#2208)
348Simon Marlow <marlowsd@gmail.com>**20100708100817
349 Ignore-this: 3a8d997fb90e01ca88dc47fb95feeba0
350]
351[typo in comment
352Simon Marlow <marlowsd@gmail.com>**20100616111359
353 Ignore-this: d3ef9288d6d6b9ab3bacbe09e0d9801c
354]
355[Win32 getProcessElapsedTime: use a higher-resolution time source
356Simon Marlow <marlowsd@gmail.com>**20100708093223
357 Ignore-this: 821989d4ff7ff2bff40cee71a881521c
358 QueryPerformanceCounter() on Windows gives much better resolution than
359 GetSystemTimeAsFileTime().
360]
361[alpha: switch handling of 'foreign import wrapper' (FIW) to libffi
362Sergei Trofimovich <slyfox@community.haskell.org>**20100708065318
363 Ignore-this: ddee15876737a6aa7f6dabc8ff79ce0d
364 
365 I tried to build ghc-6.12.3 and found out FIW part of code
366 does not compile anymore. It uses absent functions under #ifdef.
367 Instead of fixing it I just switched to libffi. Result built successfully
368 and passed 'foreign import wrapper' test I wrote for trac ticket #3516.
369 
370 I didn't try to build -HEAD yet, but this patch only removes code, so
371 it should not make -HEAD worse.
372]
373[Reorder the CPP flags so -optP can override the platform defines
374Ian Lynagh <igloo@earth.li>**20100708203523]
375[Add docs for DatatypeContexts extension
376Ian Lynagh <igloo@earth.li>**20100707230907
377 Ignore-this: 8158f03b35a2d7442a75fe85d6f1b1c7
378]
379[Make datatype contexts an extension (on by default) (DatatypeContexts)
380Ian Lynagh <igloo@earth.li>**20100707212529
381 Ignore-this: 6885ff510a0060610eeeba65122caef5
382]
383[LLVM: Fix various typos in comments
384David Terei <davidterei@gmail.com>**20100707220448
385 Ignore-this: 1ba3e722f150492da2f9d485c5795e80
386]
387[Handle haddock headers when looking for LANGUAGE/OPTIONS_GHC pragmas
388Ian Lynagh <igloo@earth.li>**20100707120423
389 Ignore-this: a75aa67690284a6cee3e62c943d4fd01
390]
391[Make pragState call mkPState, rather than duplicating everything
392Ian Lynagh <igloo@earth.li>**20100706173007
393 Ignore-this: 61fe24b99dbe7a42efff1a9dd703a75c
394 This also means that extsBitmap gets set, whereas is was just being set
395 to 0 before.
396]
397[LLVM: Add alias type defenitions to LlvmModule.
398David Terei <davidterei@gmail.com>**20100707142053
399 Ignore-this: eee6ad5385563ccf08e664d2634a03f2
400]
401[LLVM: Use packed structure type instead of structure type
402David Terei <davidterei@gmail.com>**20100707120320
403 Ignore-this: a06e0359d182291b81cae56993ca385e
404 
405 The regular structure type adds padding to conform to the platform ABI,
406 which causes problems with structures storing doubles under windows since
407 we don't conform to the platform ABI there. So we use packed structures
408 instead now that don't do any padding.
409]
410[Make mkPState and pragState take their arguments in the same order
411Ian Lynagh <igloo@earth.li>**20100706172611]
412[Remove an out-of-date comment
413Ian Lynagh <igloo@earth.li>**20100706172217
414 Ignore-this: 710ebd7d2dc01c1b0f1e58a5b6f85701
415]
416[LLVM: Stop llvm saving stg caller-save regs across C calls
417David Terei <davidterei@gmail.com>**20100705162629
418 Ignore-this: 28b4877b31b9358e682e38fc54b88658
419 
420 This is already handled by the Cmm code generator so LLVM is simply
421 duplicating work. LLVM also doesn't know which ones are actually live
422 so saves them all which causes a fair performance overhead for C calls
423 on x64. We stop llvm saving them across the call by storing undef to
424 them just before the call.
425]
426[LLVM: Add in literal undefined value to binding
427David Terei <davidterei@gmail.com>**20100705161544
428 Ignore-this: 95d8361b11584aaeec44c30e76916470
429]
430[LLVM: Add a literal NULL value to binding
431David Terei <davidterei@gmail.com>**20100705161308
432 Ignore-this: 9507b4b12c1157498704a9d1e5860f12
433 
434 Patch from Erik de Castro Lopo <erikd@mega-nerd.com>.
435]
436[refactor import declaration support (#2362)
437Simon Marlow <marlowsd@gmail.com>**20100705104557
438 Ignore-this: ee034ac377078a7e92bfada1907c86a0
439]
440[Disable dynamic linking optimisations on OS X
441Simon Marlow <marlowsd@gmail.com>**20100705103014
442 Ignore-this: b04420d3705c51112797758d17b2e40c
443 To improve performance of the RTS when dynamically linked on x86, I
444 previously disabled -fPIC for certain critical modules (the GC, and a
445 few others).  However, build reports suggest that the dynamic linker
446 on OS X doesn't like this, so I'm disabling this optimsation on that
447 platform.
448]
449[trac #2362 (full import syntax in ghci)
450amsay@amsay.net**20100625032632
451 Ignore-this: a9d0859d84956beb74e27b797431bf9c
452 'import' syntax is seperate from ':module' syntax
453]
454[Simplify ghc-pkg's Cabal dependencies
455Ian Lynagh <igloo@earth.li>**20100704184155
456 We no longer support building with a compiler that doesn't come with
457 base 4.
458]
459[Use Cabal to configure the dist-install ghc-pkg; fixes trac #4156
460Ian Lynagh <igloo@earth.li>**20100704132612]
461[Remove dead code (standalone deriving flag no longer used in parser)
462Ian Lynagh <igloo@earth.li>**20100701162058]
463[LLVM: Use the inbounds keyword for getelementptr instructions.
464David Terei <davidterei@gmail.com>**20100702160511
465 Ignore-this: 3708e658a4c82b78b1402393f4405541
466]
467[threadPaused: fix pointer arithmetic
468Simon Marlow <marlowsd@gmail.com>**20100701085046
469 Ignore-this: b78210e5d978f18ffd235f1c78a55a23
470 Noticed by Henrique Ferreiro <hferreiro@udc.es>, thanks!
471]
472[LLVM: Change more operations to use getelementptr
473David Terei <davidterei@gmail.com>**20100701161856
474 Ignore-this: fb24eb124e203f50680c6fec3ff9fe7d
475]
476[Add the haskell2010 package
477Simon Marlow <marlowsd@gmail.com>**20100630125532
478 Ignore-this: e9b011313f283a8ff2fcda7d029a01f
479]
480[LLVM: Use getelementptr instruction for a lot of situations
481David Terei <davidterei@gmail.com>**20100630181157
482 Ignore-this: 34d314dd8dffad9bdcffdc525261a49d
483 
484 LLVM supports creating pointers in two ways, firstly through
485 pointer arithmetic (by casting between pointers and ints)
486 and secondly using the getelementptr instruction. The second way
487 is preferable as it gives LLVM more information to work with.
488 
489 This patch changes a lot of pointer related code from the first
490 method to the getelementptr method.
491]
492[remove out of date comments; point to the wiki
493Simon Marlow <marlowsd@gmail.com>**20100625100313
494 Ignore-this: 95f363a373534b9471b1818102ec592d
495]
496[NCG: allocatableRegs is only giving us 8 SSE regs to allocate to
497benl@ouroborus.net**20100629054321
498 Ignore-this: b3e0fa0b4ce988a0258dc12261989ee0
499]
500[LLVM: Use intrinsic functions for pow, sqrt, sin, cos
501David Terei <davidterei@gmail.com>**20100628182949
502 Ignore-this: 98a0befaca3fe2b36d710d8ff9f062c4
503 
504 Instead of calling the C library for these Cmm functions
505 we use intrinsic functions provided by llvm. LLVM will
506 then either create a compile time constant if possible, or
507 use a cpu instruction or as a last resort call the C
508 library.
509]
510[LLVM: Fix test '2047' under linux-x64
511David Terei <davidterei@gmail.com>**20100628165256
512 Ignore-this: 41735d4f431a430db636621650ccd71e
513]
514[LLVM: Fix test 'ffi005' under linux-x64
515David Terei <davidterei@gmail.com>**20100628155355
516 Ignore-this: 841f3142c63cc898ac4c3f89698a837e
517]
518[LLVM: Update to use new fp ops introduced in 2.7
519David Terei <davidterei@gmail.com>**20100628144037
520 Ignore-this: 5dd2e5964e3c039d297ed586841e706b
521]
522[Add noalias and nocapture attributes to pointer stg registers
523David Terei <davidterei@gmail.com>**20100628115120
524 Ignore-this: 492a1e723cb3a62498d240d7de92dd7
525 
526 At the moment this gives a very slight performance boost of around 1 - 2%.
527 Future changes to the generated code though so that pointers are kept as
528 pointers more often instead of being cast to integer types straight away
529 should hopefully improve the benefit this brings.
530 
531]
532[during shutdown, only free the heap if we waited for foreign calls to exit
533Simon Marlow <marlowsd@gmail.com>**20100628090536
534 Ignore-this: d545384a4f641d701455d08ef1217479
535]
536[Fix typo in -ddump-pass's document.
537shelarcy <shelarcy@gmail.com>**20100620070759
538 Ignore-this: f4f1ddb53f147949e948147d89190c37
539]
540[Add #undefs for posix source symbols when including papi.h
541dmp@rice.edu**20100624163514
542 Ignore-this: 8a1cba21b880d12a75a75f7e96882053
543 
544 Validation fails when validating with PAPI support (i.e. GhcRtsWithPapi  = YES
545 in validate.mk).  The problem is that the posix symbols are defined by a header
546 included from papi.h. Compilation then fails because these symbols are
547 redefined in PosixSource.h.
548 
549 This patch adds an undefine for the posix symbols after including papi.h and
550 before including PosixSource.h. The #undefines are localized to Papi.c since
551 that is the only case where they are getting defined twice.
552]
553[Use machdepCCOpts in runPhase_MoveBinary; fixes trac #3952
554Ian Lynagh <igloo@earth.li>**20100625220953]
555[LLVM: Fix bug with calling tail with empty list
556David Terei <davidterei@gmail.com>**20100625115729
557 Ignore-this: 46b4b32c8d92372a2d49794a96fe1613
558]
559[Fix warnings
560benl@ouroborus.net**20100624091339
561 Ignore-this: 5ba4bbd6abb9c9d1fb8c5d21ab73f218
562]
563[NCG: Comments and formatting only
564benl@ouroborus.net**20100624083121
565 Ignore-this: 86002e72c30d06bcc876d8c49f4caa5a
566]
567[NCG: Do the actual reversing of SCCs
568benl@ouroborus.net**20100624082717
569 Ignore-this: 12d2027ea118e751fbb48b27126150ef
570]
571[NCG: Fix dumping of graphs in regalloc stats for graph allocator
572benl@ouroborus.net**20100624082625
573 Ignore-this: 2b971bc9e0318099a9afb0e0db135730
574]
575[NCG: Reverse SCCs after each round in the graph allocator
576benl@ouroborus.net**20100624082437
577 Ignore-this: f0152e4039d6f16f7b5a99b286538116
578]
579[NCG: Don't actually complain on unreachable code blocks
580benl@ouroborus.net**20100624081445
581 Ignore-this: e7335ae6120917cb858c38c7c6da8e24
582]
583[NCG: Do explicit check for precondition of computeLiveness
584benl@ouroborus.net**20100624080747
585 Ignore-this: e7053c4e5e4c3c746b5ebf016913424a
586 
587  computeLiveness requires the SCCs of blocks to be in reverse dependent
588  order, and if they're not it was silently giving bad liveness info,
589  yielding a bad allocation.
590 
591  Now it complains, loudly.
592]
593[NCG: Fix off-by-one error in realRegSqueeze
594benl@ouroborus.net**20100623095813
595 Ignore-this: ab0698686d4c250da8e207f734f8252d
596]
597[NCG: Handle stripping of liveness info from procs with no blocks (like stg_split_marker)
598benl@ouroborus.net**20100623091209
599 Ignore-this: c0319b6cc62ec713afe4eb03790406e3
600]
601[NCG: Emit a warning on unreachable code block instead of panicing
602benl@ouroborus.net**20100623085002
603 Ignore-this: d20314b79e3c31e764ed4cd97290c696
604]
605[NCG: Remember to keep the entry block first when erasing liveness info
606Ben.Lippmeier@anu.edu.au**20090917104429
607 Ignore-this: 1b0c1df19d622858d50ffb6a01f2cef0
608]
609[NCG: Refactor representation of code with liveness info
610Ben.Lippmeier@anu.edu.au**20090917090730
611 Ignore-this: 2aebb3b02ebd92e547c5abad9feb0f0d
612 
613  * I've pushed the SPILL and RELOAD instrs down into the
614    LiveInstr type to make them easier to work with.
615 
616  * When the graph allocator does a spill cycle it now just
617    re-annotates the LiveCmmTops instead of converting them
618    to NatCmmTops and back.
619 
620  * This saves working out the SCCS again, and avoids rewriting
621    the SPILL and RELOAD meta instructions into real machine
622    instructions.
623]
624[NCG: Add sanity checking to linear allocator
625Ben.Lippmeier@anu.edu.au**20090917090335
626 Ignore-this: 5a442be8b5087d04bc8b58dffa9ea080
627 If there are are unreachable basic blocks in the native code then the
628 linear allocator might loop. Detect this case and panic instead.
629]
630[NCG: Refactor LiveCmmTop to hold a list of SCCs instead of abusing ListGraph
631Ben.Lippmeier@anu.edu.au**20090917060332
632 Ignore-this: 3fec8d69ed0f760e53a202f873d5d9cb
633]
634[NCG: Allow the liveness map in a LiveInfo to be Nothing
635Ben.Lippmeier@anu.edu.au**20090917043937
636 Ignore-this: 5f82422d54d1b0ffc0589eb7e82fb7a4
637]
638[NCG: Also show the result of applying coalesings with -ddump-asm-regalloc-stages
639Ben.Lippmeier.anu.edu.au**20090917034427
640 Ignore-this: 76bd6d5ca43adb2167cb25832cbaa80b
641]
642[Fix panic when running "ghc -H"; trac #3364
643Ian Lynagh <igloo@earth.li>**20100624234011
644 The problem is that showing SDoc's looks at the static flags global
645 variables, but those are panics while we are parsing the static flags.
646 We work around this by explicitly using a fixed prettyprinter style.
647]
648[Allow for stg registers to have pointer type in llvm BE.
649David Terei <davidterei@gmail.com>**20100621175839
650 Ignore-this: fc09b1a8314aef0bde945c77af1124fb
651 
652 Before all the stg registers were simply a bit type or
653 floating point type but now they can be declared to have
654 a pointer type to one of these. This will allow various
655 optimisations in the future in llvm since the type is
656 more accurate.
657]
658[Add support for parameter attributes to the llvm BE binding
659David Terei <davidterei@gmail.com>**20100624111744
660 Ignore-this: 77f3c0c7bf8f81c4a154dc835ae7bcba
661 
662 These allow annotations of the code produced by the backend
663 which should bring some perforamnce gains. At the moment
664 the attributes aren't being used though.
665]
666[Cast some more nats to StgWord to be on the safe side
667Simon Marlow <marlowsd@gmail.com>**20100624105700
668 Ignore-this: e6176683856f9872fdeb2358bb065bb8
669 And add a comment about the dangers of int overflow
670]
671[comments only
672Simon Marlow <marlowsd@gmail.com>**20100624105105
673 Ignore-this: fc8f762f4c3a5ffca2f8da2bc63ac2a4
674]
675[Fix an arithmetic overflow bug causing crashes with multi-GB heaps
676Simon Marlow <marlowsd@gmail.com>**20100624104654
677 Ignore-this: 67210755aa098740ff5230347be0fd5d
678]
679[Add support for collecting PAPI native events
680dmp@rice.edu**20100622195953
681 Ignore-this: 7269f9c4dfb2912a024eb632200fcd1
682 
683 This patch extends the PAPI support in the RTS to allow collection of native
684 events. PAPI can collect data for native events that are exposed by the
685 hardware beyond the PAPI present events. The native events supported on your
686 hardware can found by using the papi_native_avail tool.
687 
688 The RTS already allows users to specify PAPI preset events from the command
689 line. This patch extends that support to allow users to specify native events.
690 The changes needed are:
691 
692 1) New option (#) for the RTS PAPI flag for native events. For example, to
693    collect the native event 0x40000000, use ./a.out +RTS -a#0x40000000 -sstderr
694 
695 2) Update the PAPI_FLAGS struct to store whether the user specified event is a
696    papi preset or a native event
697 
698 3) Update init_countable_events function to add the native events after parsing
699    the event code and decoding the name using PAPI_event_code_to_name
700 
701]
702[Don't warn about unused bindings with parents in .hs-boot files; trac #3449
703Ian Lynagh <igloo@earth.li>**20100624110351]
704[fix the home_imps filter to allow for 'import "this" <module>'
705Simon Marlow <marlowsd@gmail.com>**20100621125535
706 Ignore-this: da4e605b0513afc32a4e7caa921a2c76
707 In the PackageImports extension, import "this" means "import from the
708 current package".
709]
710[Use the standard C wrapper code for the ghc-$version.exe wrapper
711Ian Lynagh <igloo@earth.li>**20100622202859
712 Ignore-this: 60cd3e6db3afb63e6ba9e2db3b033580
713]
714[Don't rely on "-packagefoo" working; use "-package foo" instead
715Ian Lynagh <igloo@earth.li>**20100622202547]
716[Remove unnecessary C #includes
717Ian Lynagh <igloo@earth.li>**20100622172919]
718[Make the ghci.exe wrapper call the right ghc.exe
719Ian Lynagh <igloo@earth.li>**20100622172247]
720[More updates to datalayout description in llvm BE
721David Terei <davidterei@gmail.com>**20100622165339
722 Ignore-this: b0c604fe7673b0aa7c7064694d574437
723]
724[Remove LlvmAs phase as the llvm opt tool now handles this phase
725David Terei <davidterei@gmail.com>**20100622144044
726 Ignore-this: b9fd8f959702b6af014e2fa654bede3
727 
728 This phase originally invoked the llvm-as tool that turns a textual
729 llvm assembly file into a bit code file for the rest of llvm to deal
730 with. Now the llvm opt tool can do this itself, so we don't need to
731 use llvm-as anymore.
732]
733[Update datalayout info in llvm BE
734David Terei <davidterei@gmail.com>**20100622123457
735 Ignore-this: 89b043d211225dcd819f30549afe1840
736]
737[Fix handling of float literals in llvm BE
738David Terei <davidterei@gmail.com>**20100622121642
739 Ignore-this: a3b5f382ad4b5a426ad4b581664506fa
740]
741[Declare some top level globals to be constant when appropriate
742David Terei <davidterei@gmail.com>**20100621174954
743 Ignore-this: 44832f65550d4f995d11c01cc1affef5
744 
745 This involved removing the old constant handling mechanism
746 which was fairly hard to use. Now being constant or not is
747 simply a property of a global variable instead of a separate
748 type.
749]
750[Reduce the number of passes over the cmm in llvm BE
751David Terei <davidterei@gmail.com>**20100621125220
752 Ignore-this: cb2f4e54e8d0f982d5087fbeee35c73c
753]
754[Fix negate op not working for -0 in llvm backend
755David Terei <davidterei@gmail.com>**20100621123606
756 Ignore-this: c5d76e5cffa781fed074137851b1347f
757]
758[ROLLBACK: picCCOpts: -dynamic should not entail -optc-fPIC
759Simon Marlow <marlowsd@gmail.com>**20100621100409
760 Ignore-this: f2fac7df33d3919199befc59bd455414
761 and add a comment to explain why it was wrong.  This fixes the dyn
762 test failures that sprang up recently.
763]
764[Check files are really created in libffi
765Ian Lynagh <igloo@earth.li>**20100620163724
766 when we think that the libffi build creates them, so they just depend
767 on the libffi build stamp.
768]
769[Improve the missing-import-list warning
770Ian Lynagh <igloo@earth.li>**20100620124320
771 Ignore-this: 551e5fdf2dfb56b49d249e0cebaa6115
772]
773[Tweak missing-import-list warning
774Ian Lynagh <igloo@earth.li>**20100620122622
775 Ignore-this: 360cdf59ae13d66ded181129325506c4
776]
777[trac #1789 (warnings for missing import lists)
778amsay@amsay.net**20100618150649
779 Ignore-this: b0b0b1e048fbca0817c1e6fade1153fa
780]
781[Refix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
782Ian Lynagh <igloo@earth.li>**20100620103749]
783[Remove some old commented out code
784Ian Lynagh <igloo@earth.li>**20100620000459]
785[SET_ARR_HDR's last argument is now a number of bytes, rather than words
786Ian Lynagh <igloo@earth.li>**20100619235214
787 This avoids unnecessary work and potential loss of information
788]
789[Replace an (incorrect) bytes-to-words calculation with ROUNDUP_BYTES_TO_WDS
790Ian Lynagh <igloo@earth.li>**20100619234310]
791[FIX #38000 Store StgArrWords payload size in bytes
792Antoine Latter <aslatter@gmail.com>**20100101183346
793 Ignore-this: 7bf3ab4fc080c46311fc10b179361bb6
794]
795[Add win32 datalayout support to llvm backend
796David Terei <davidterei@gmail.com>**20100618131733
797 Ignore-this: 4b7bffaa8ef38c628ab852c1a6c1c009
798]
799[Remove unused 'ddump-opt-llvm' flag
800David Terei <davidterei@gmail.com>**20100618101237
801 Ignore-this: f78467496d986897e49d82646ee2907e
802]
803[generate "movl lbl(%reg1), %reg2" instructions, better codegen for -fPIC
804Simon Marlow <marlowsd@gmail.com>**20100618082258
805 Ignore-this: a25567ebff9f575303ddc8f2deafebbf
806]
807[joinToTargets: fix a case of panic "handleComponent cyclic"
808Simon Marlow <marlowsd@gmail.com>**20100618082147
809 Ignore-this: 765baeefbb5a41724004acd92405cecc
810]
811[comment typo
812Simon Marlow <marlowsd@gmail.com>**20100618082102
813 Ignore-this: e495610b7dd5ec30b02938638b56cb7
814]
815[Add support of TNTC to llvm backend
816David Terei <davidterei@gmail.com>**20100618093205
817 Ignore-this: 2c27d21668374a5b0d5e844882c69439
818 
819 We do this through a gnu as feature called subsections,
820 where you can put data/code into a numbered subsection
821 and those subsections will be joined together in descending
822 order by gas at compile time.
823]
824[Don't automatically insert a -fvia-C flag in an unregisterised compiler
825Ian Lynagh <igloo@earth.li>**20100617190901
826 Ignore-this: eb25a9a338fade9e17c153da7c5f27e9
827 The default object mode is already HscC, so it's unnecessary, and
828 -fvia-C generates a deprecated flag warning now.
829]
830[In PosixSource.h, conditionally define things based on platform
831Ian Lynagh <igloo@earth.li>**20100617174912
832 This may not be ideal, but it should get GHC building on all platforms
833 again.
834]
835[disable -fPIC for the GC for performance reasons
836Simon Marlow <marlowsd@gmail.com>**20100617140025
837 Ignore-this: c7c152bbff71ef7891eaee8ff39fc281
838 see comment for details
839]
840[picCCOpts: -dynamic should not entail -optc-fPIC
841Simon Marlow <marlowsd@gmail.com>**20100617115259
842 Ignore-this: d71e42bd56e4bd107d2c431b801855e5
843]
844[Make getAllocations() visible
845Simon Marlow <marlowsd@gmail.com>**20100617113259
846 Ignore-this: 1b7fb38a01358c0acbe8987df07d23f2
847]
848[Fix the symbol visibility pragmas
849Simon Marlow <marlowsd@gmail.com>**20100617105758
850 Ignore-this: 76552500865473a1dbebbc1cc2def9f0
851]
852[pick up changes to $(GhcStage1HcOpts) without re-configuring the ghc package
853Simon Marlow <marlowsd@gmail.com>**20100616124718
854 Ignore-this: afb56d5560c813051285607fefb15493
855]
856[Fix bindisttest Makefile
857Ian Lynagh <igloo@earth.li>**20100616205611
858 Ignore-this: 39cd352152422f378572fc3859c5a377
859]
860[Remove some more unused make variables
861Ian Lynagh <igloo@earth.li>**20100616180519]
862[Convert some more variable names to FOO_CMD, for consistency
863Ian Lynagh <igloo@earth.li>**20100616175916]
864[Rename some variables from FOO to FOO_CMD
865Ian Lynagh <igloo@earth.li>**20100616161108
866 This fixes a problem with commands like gzip, where if $GZIP is exported
867 in the environment, then when make runs a command it'll put the Makefile
868 variable's value in the environment. But gzip treats $GZIP as arguments
869 for itself, so when we run gzip it thinks we're giving it "gzip" as an
870 argument.
871]
872[Make the "show" target work anywhere in the build tree
873Ian Lynagh <igloo@earth.li>**20100616122910
874 Ignore-this: 299d40cbe16112accd9f14e56fa12158
875]
876[Change ghc-pwd's license to a string Cabal recognises
877Ian Lynagh <igloo@earth.li>**20100615204015
878 Ignore-this: c935b6ad7f605aab0168997a90b40fc6
879]
880[fix warning
881Simon Marlow <marlowsd@gmail.com>**20100604205933
882 Ignore-this: 2aaa4ed6a8b9ae1e39adc4696aaf14a3
883]
884[--install-signal-handles=no does not affect the timer signal (#1908)
885Simon Marlow <marlowsd@gmail.com>**20100527214627
886 Ignore-this: b0c51f1abdb159dc360662485095a11a
887]
888[Small optimisation: allocate nursery blocks contiguously
889Simon Marlow <marlowsd@gmail.com>**20100509194928
890 Ignore-this: e650e99e9ea9493d2efb245d565beef4
891 This lets automatic prefetching work better, for a tiny performance boost
892]
893[fix -fforce-recomp setting: module is PrimOp, not PrimOps
894Simon Marlow <marlowsd@gmail.com>**20100507084507
895 Ignore-this: f76e0d9b643682ec0e8fb7d91afdea68
896]
897[it should be an error to use relative directories (#4134)
898Simon Marlow <marlowsd@gmail.com>**20100615151740
899 Ignore-this: 2068021701832e018ca41b22877921d5
900]
901[missing include-dirs or library-dirs is only a warning now (#4104)
902Simon Marlow <marlowsd@gmail.com>**20100615151702
903 Ignore-this: e3114123cef147bbd28ccb64581a1afb
904]
905[fix #3822: desugaring case command in arrow notation
906Ross Paterson <ross@soi.city.ac.uk>**20100615225110
907 Ignore-this: 477d6c460b4174b94b4cd113fa5b9d19
908 
909 Get the set of free variables from the generated case expression:
910 includes variables in the guards and decls that were missed before,
911 and is also a bit simpler.
912]
913[Deprecate the -fvia-C flag; trac #3232
914Ian Lynagh <igloo@earth.li>**20100615151836
915 Ignore-this: c2452b2648bf7e44546465c1b964fce
916]
917[Avoid using the new ~~ perl operator in the mangler
918Ian Lynagh <igloo@earth.li>**20100615151236
919 Ignore-this: 709a7ba4e514b1596841b3ba7e5c6cc
920]
921[stmAddInvariantToCheck: add missing init of invariant->lock (#4057)
922Simon Marlow <marlowsd@gmail.com>**20100615123643
923 Ignore-this: 3b132547fa934cecf71a846db2a5f70e
924]
925[Add new LLVM code generator to GHC. (Version 2)
926David Terei <davidterei@gmail.com>**20100615094714
927 Ignore-this: 4dd2fe5854b64a3f0339d484fd5c238
928 
929 This was done as part of an honours thesis at UNSW, the paper describing the
930 work and results can be found at:
931 
932 http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
933 
934 A Homepage for the backend can be found at:
935 
936 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
937 
938 Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
939 are within 5% slower than the NCG and generally better than the C code
940 generator.  For some code though, such as the DPH projects benchmark, the LLVM
941 code generator outperforms the NCG and C code generator by about a 25%
942 reduction in run times.
943 
944]
945[Fix Trac #4127: build GlobalRdrEnv in GHCi correctly
946simonpj@microsoft.com**20100615070626
947 Ignore-this: d907e3bfa7882878cea0af172aaf6e84
948 
949 GHCi was building its GlobalRdrEnv wrongly, so that the
950 gre_par field was bogus.  That in turn fooled the renamer.
951 The fix is easy: use the right function!  Namely, call
952 RnNames.gresFromAvail rather than availsToNameSet.
953]
954[Comments, and improvement to pretty-printing of HsGroup
955simonpj@microsoft.com**20100615070409
956 Ignore-this: ec8358f2485370b20226a97ec84e9024
957]
958[Don't reverse bindings in rnMethodBinds (fix Trac #4126)
959simonpj@microsoft.com**20100614163935
960 Ignore-this: a6ffbb5af6f51b142ed0aeae8ee5e3a9
961]
962[Fix Trac #4120: generate a proper coercion when unifying forall types
963simonpj@microsoft.com**20100614134311
964 Ignore-this: 601592bb505305f1954cbe730f168da4
965 
966 This was just a blatant omission, which hasn't come up before.
967 Easily fixed, happily.
968]
969[Use mkFunTy to ensure that invariants are respected
970simonpj@microsoft.com**20100614134159
971 Ignore-this: 67dcada7a4e8d9927581cd77af71b6f
972]
973[Remove redundant debug code
974simonpj@microsoft.com**20100601154151
975 Ignore-this: e6ff11c04c631cf6aac73788cbcf02b5
976]
977[Fix Trac #4099: better error message for type functions
978simonpj@microsoft.com**20100531140413
979 Ignore-this: 3f53ca98cf770577818b9c0937482577
980 
981 Now we only want about "T is a type function and might not be
982 injective" when matchin (T x) against (T y), which is the case
983 that is really confusing.
984]
985[Gruesome fix in CorePrep to fix embarassing Trac #4121
986simonpj@microsoft.com**20100614132726
987 Ignore-this: fe82d15474afaac3e6133adfd7a7e055
988 
989 This is a long-lurking bug that has been flushed into
990 the open by other arity-related changes.  There's a
991 long comment
992 
993      Note [CafInfo and floating]
994 
995 to explain. 
996 
997 I really hate the contortions we have to do through to keep correct
998 CafRef information on top-level binders.  The Right Thing, I believe,
999 is to compute CAF and arity information later, and merge it into the
1000 interface-file information when the latter is generated.
1001 
1002 But for now, this hackily fixes the problem.
1003]
1004[Fix a bug in CorePrep that meant output invariants not satisfied
1005simonpj@microsoft.com**20100531150013
1006 Ignore-this: d34eb36d8877d3caf1cf2b20de426abd
1007 
1008 In cpePair I did things in the wrong order so that something that
1009 should have been a CprRhs wasn't.  Result: a crash in CoreToStg.
1010 Fix is easy, and I added more informative type signatures too.
1011]
1012[Robustify the treatement of DFunUnfolding
1013simonpj@microsoft.com**20100531145332
1014 Ignore-this: 8f5506ada4d89f6ab8ad1e8c3ffb09ba
1015 
1016 See Note [DFun unfoldings] in CoreSyn.  The issue here is that
1017 you can't tell how many dictionary arguments a DFun needs just
1018 from looking at the Arity of the DFun Id: if the dictionary is
1019 represented by a newtype the arity might include the dictionary
1020 and value arguments of the (single) method.
1021 
1022 So we need to record the number of arguments need by the DFun
1023 in the DFunUnfolding itself.  Details in
1024    Note [DFun unfoldings] in CoreSyn
1025]
1026[Fix spelling in comment
1027simonpj@microsoft.com**20100614132259
1028 Ignore-this: bbf0d55f2e5f10ef9c74592c12f9201c
1029]
1030[Update docs on view patterns
1031simonpj@microsoft.com**20100614074801
1032 Ignore-this: 8617b9078800d4942d71f142a5b6c831
1033]
1034[Fix printing of splices; part of #4124
1035Ian Lynagh <igloo@earth.li>**20100613154838
1036 Just putting parens around non-atomic expressions isn't sufficient
1037 for splices, as only the $x and $(e) forms are valid input.
1038]
1039[In ghci, catch IO exceptions when calling canonicalizePath
1040Ian Lynagh <igloo@earth.li>**20100613134627
1041 We now get an exception if the path doesn't exist
1042]
1043[Whitespace only
1044Ian Lynagh <igloo@earth.li>**20100612213119]
1045[Whitespace only
1046Ian Lynagh <igloo@earth.li>**20100612165450]
1047[Update ghci example output in user guide; patch from YitzGale in #4111
1048Ian Lynagh <igloo@earth.li>**20100612162250]
1049[Fix #4131 missing UNTAG_CLOSURE in messageBlackHole()
1050benl@ouroborus.net**20100611044614]
1051[messageBlackHole: fix deadlock bug caused by a missing 'volatile'
1052Simon Marlow <marlowsd@gmail.com>**20100610080636
1053 Ignore-this: 3cda3054bb45408aa9bd2d794b69c938
1054]
1055[Pass --no-tmp-comp-dir to Haddock (see comment)
1056Simon Marlow <marlowsd@gmail.com>**20100604083214
1057 Ignore-this: bfa4d74038637bd149f4d878b4eb8a87
1058]
1059[Track changes to DPH libs
1060Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607052903
1061 Ignore-this: 4dbc3f8418af3e74b3fc4f9a9dfe7764
1062]
1063[Track changes to DPH libs
1064Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607012642
1065 Ignore-this: 5d4e498171a3c57ab02621bfaea82cff
1066]
1067[In ghc-pkg, send warnings to stderr
1068Ian Lynagh <igloo@earth.li>**20100606161726
1069 Ignore-this: 56927d13b5e1c1ce2752734f0f9b665b
1070]
1071[Re-add newlines to enable layout for multi-line input.
1072Ian Lynagh <igloo@earth.li>**20100602180737
1073 Patch from Adam Vogt <vogt.adam@gmail.com>
1074 Partial fix for #3984
1075]
1076[Don't use unnecessary parens when printing types (Fix Trac 4107)
1077simonpj@microsoft.com**20100604110143
1078 Ignore-this: a833714ab13013c4345b222f4e87db1d
1079 
1080    f :: Eq a => a -> a
1081 rather than
1082    f :: (Eq a) => a -> a
1083]
1084[Track DPH library changes
1085Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100604005728
1086 Ignore-this: 32bc2fbea6ad975e89545d4c42fd7c30
1087]
1088[fix --source-entity option passed to Haddock: we needed to escape a #
1089Simon Marlow <marlowsd@gmail.com>**20100603125459
1090 Ignore-this: d52ae6188b510c482bcebb23f0e553ae
1091]
1092[__stg_EAGER_BLACKHOLE_INFO -> __stg_EAGER_BLACKHOLE_info (#4106)
1093Simon Marlow <marlowsd@gmail.com>**20100602091419
1094 Ignore-this: 293315ac8f86fd366b8d61992ecc7961
1095]
1096[Add xhtml package (a new dependency of Haddock; not installed/shipped)
1097Simon Marlow <marlowsd@gmail.com>**20100602090101
1098 Ignore-this: af0ac8b91abe98f7fdb624ea0a4dee20
1099]
1100[Use UserInterrupt rather than our own Interrupted exception (#4100)
1101Simon Marlow <marlowsd@gmail.com>**20100602082345
1102 Ignore-this: 1909acf2f452593138b9f85024711714
1103]
1104[Add the global package DB to ghc --info (#4103)
1105Simon Marlow <marlowsd@gmail.com>**20100602082233
1106 Ignore-this: fd5c0e207e70eb0f62606c45dc5b8124
1107]
1108[rts/sm/GC.c: resize_generations(): Remove unneeded check of number of generations.
1109Marco Túlio Gontijo e Silva <marcot@debian.org>**20100528115612
1110 Ignore-this: 6f1bea62917c01c7adac636146132c97
1111 
1112 This "if" is inside another "if" which checks for RtsFlags.GcFlags.generations
1113 > 1, so testing this again is redundant, assuming the number of generations
1114 won't change during program execution.
1115]
1116[rts/sm/BlockAlloc.c: Small comment correction.
1117Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205839
1118 Ignore-this: bd2fcd4597cc872d80b0e2eeb1c3998a
1119]
1120[rts/sm/GC.c: Annotate constants.
1121Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205707
1122 Ignore-this: f232edb89383564d759ed890a18f602f
1123]
1124[includes/rts/storage/GC.h: generation_: n_words: Improve comment.
1125Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526204615
1126 Ignore-this: f5d5feefa8f7b552303978f1804fea23
1127]
1128[Add PPC_RELOC_LOCAL_SECTDIFF support; patch from PHO in #3654
1129Ian Lynagh <igloo@earth.li>**20100601204211
1130 Ignore-this: 51293b7041cdce3ce7619ef11cf7ceb
1131]
1132[powerpc-apple-darwin now supports shared libs
1133Ian Lynagh <igloo@earth.li>**20100601173325]
1134[PIC support for PowerPC
1135pho@cielonegro.org**20100508143900
1136 Ignore-this: 3673859a305398c4acae3f4d7c997615
1137 
1138 PPC.CodeGen.getRegister was not properly handling PicBaseReg.
1139 It seems working with this patch, but I'm not sure this change is correct.
1140]
1141[Vectoriser: only treat a function as scalar if it actually computes something
1142Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100601045630
1143 Ignore-this: e5d99a6ddb62052e3520094a5af47552
1144]
1145[Add a release notes file for 6.14.1
1146Ian Lynagh <igloo@earth.li>**20100530171117
1147 Ignore-this: 1941e6d3d1f4051b69ca2f17a1cf84d6
1148]
1149[Check dblatex actually creates the files we tell it to
1150Ian Lynagh <igloo@earth.li>**20100530171043
1151 Ignore-this: ccc72caea2313be05cbac59bb54c0603
1152 If it fails, it still exits successfully.
1153]
1154[Add darwin to the list of OSes for which we use mmap
1155Ian Lynagh <igloo@earth.li>**20100529145016
1156 Ignore-this: a86d12a3334aaaafc86f7af9dbb0a7ae
1157 Patch from Barney Stratford
1158]
1159[Simplify the CPP logic in rts/Linker.c
1160Ian Lynagh <igloo@earth.li>**20100529144929
1161 Ignore-this: 1288f5b752cc1ab8b1c90cfd0ecfdf68
1162]
1163[Fix validate on OS X
1164Ian Lynagh <igloo@earth.li>**20100529154726]
1165[OS X x86_64 fix from Barney Stratford
1166Ian Lynagh <igloo@earth.li>**20100529122440]
1167[OS X 64 installer fixes from Barney Stratford
1168Ian Lynagh <igloo@earth.li>**20100528234935]
1169[fix warning
1170Simon Marlow <marlowsd@gmail.com>**20100525155812
1171 Ignore-this: f34eee3fe3d89579fd8d381c91ced750
1172]
1173[Fix doc bugs (#4071)
1174Simon Marlow <marlowsd@gmail.com>**20100525155728
1175 Ignore-this: aa25be196de567de360075022a1942f7
1176]
1177[Make sparks into weak pointers (#2185)
1178Simon Marlow <marlowsd@gmail.com>**20100525150435
1179 Ignore-this: feea0bb5006007b82c932bc3006124d7
1180 The new strategies library (parallel-2.0+, preferably 2.2+) is now
1181 required for parallel programming, otherwise parallelism will be lost.
1182]
1183[If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
1184Simon Marlow <marlowsd@gmail.com>**20100525085301
1185 Ignore-this: 78b740337aa460915c812cbbcdae5321
1186]
1187[Another attempt to get these #defines right
1188Simon Marlow <marlowsd@gmail.com>**20100525154313
1189 Ignore-this: 460ca0c47d81cd25eae6542114f67899
1190 Apparently on Solaris it is an error to omit _ISOC99_SOURCE when using
1191 _POSIX_C_SOURCE==200112L.
1192]
1193[Add configure flags for the location of GMP includes/library; fixes #4022
1194Ian Lynagh <igloo@earth.li>**20100525221616
1195 Ignore-this: fc3060caf995d07274ec975eeefbdf3e
1196]
1197[Refactor pretty printing of TyThings to fix Trac #4015
1198simonpj@microsoft.com**20100525153126
1199 Ignore-this: 8f15053b7554f62caa84201d2e4976d2
1200]
1201[When haddocking, we need the dependencies to have been built
1202Ian Lynagh <igloo@earth.li>**20100525145830
1203 as haddock loads the .hi files with the GHC API.
1204]
1205[Fix profiling output; spotted by jlouis
1206Ian Lynagh <igloo@earth.li>**20100525111217
1207 We were outputing the number of words allocated in a column titled "bytes".
1208]
1209[Improve printing of TyThings; fixes Trac #4087
1210simonpj@microsoft.com**20100525114045
1211 Ignore-this: da2a757a533454bba80b9b77cc5a771
1212]
1213[Spelling in comments
1214simonpj@microsoft.com**20100525114001
1215 Ignore-this: 270f3da655e526cf04e27db7a01e29c0
1216]
1217[Refactor (again) the handling of default methods
1218simonpj@microsoft.com**20100525113910
1219 Ignore-this: 6686f6cdb878d57abf6b49fec64fcbb1
1220 
1221 This patch fixes Trac #4056, by
1222 
1223  a) tidying up the treatment of default method names
1224  b) removing the 'module' argument to newTopSrcBinder
1225 
1226 The details aren't that interesting, but the result
1227 is much tidier. The original bug was a 'nameModule' panic,
1228 caused by trying to find the module of a top-level name.
1229 But TH quotes generate Internal top-level names that don't
1230 have a module, and that is generally a good thing. 
1231 
1232 Fixing that in turn led to the default-method refactoring,
1233 which also makes the Name for a default method be handled
1234 in the same way as other derived names, generated in BuildTyCl
1235 via a call newImplicitBinder.  Hurrah.
1236]
1237[Don't do SpecConstr on NOINLINE things (Trac #4064)
1238simonpj@microsoft.com**20100525112807
1239 Ignore-this: 452be0a2cef0042fb67275c2827b5f72
1240 
1241 Since the RULE from specialising gets the same Activation as
1242 the inlining for the Id itself there's no point in specialising
1243 a NOINLINE thing, because the rule will be permanently switched
1244 off.
1245 
1246 See Note [Transfer activation] in SpecConstr
1247 and Note [Auto-specialisation and RULES] in Specialise.
1248]
1249[Change our #defines to work on FreeBSD too
1250Simon Marlow <marlowsd@gmail.com>**20100524105828
1251 Ignore-this: b23ede46211e67859206c0ec57d6a86f
1252 With glibc, things like _POSIX_C_SOURCE and _ISOC99_SOURCE are
1253 additive, but on FreeBSD they are mutually exclusive.  However, it
1254 turns out we only need to define _POSIX_C_SOURCE and _XOPEN_SOURCE to
1255 get all the C99 stuff we need too, so there's no need for any #ifdefs.
1256 
1257 Submitted by: Gabor PALI <pgj@FreeBSD.org>
1258]
1259[Add a missing UNTAG_CLOSURE, causing bus errors on Sparc
1260Simon Marlow <marlowsd@gmail.com>**20100524105547
1261 Ignore-this: a590b5391d6f05d50c8c088456c3c166
1262 We just about got away with this on x86 which isn't
1263 alignment-sensitive.  The result of the memory load is compared
1264 against a few different values, but there is a fallback case that
1265 happened to be the right thing when the pointer was tagged.  A good
1266 bug to find, nonetheless.
1267]
1268[Add wiki links
1269Simon Marlow <marlowsd@gmail.com>**20100520095953
1270 Ignore-this: c22f126cde166e6207922b2eb51d29e3
1271]
1272[the 'stage=0' trick to disable all compiler builds stopped working; fix it
1273Simon Marlow <marlowsd@gmail.com>**20100520104455
1274 Ignore-this: bb6fae9056471612c8dbf06916188c33
1275]
1276[Comments and formatting only
1277benl@ouroborus.net**20100524014021
1278 Ignore-this: 64579c38154728b632e358bec751cc0b
1279]
1280[Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
1281Ian Lynagh <igloo@earth.li>**20100522225048]
1282[Correct install-name for dynamic Darwin rts
1283pho@cielonegro.org**20100508151155
1284 Ignore-this: 6d31716c8c113dcb46e9cb925c4201df
1285]
1286[Fix the RTS debug_p build
1287Ian Lynagh <igloo@earth.li>**20100522163127]
1288[Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
1289Ian Lynagh <igloo@earth.li>**20100521165005
1290 With gcc 4.4 we get
1291     Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
1292 when running gcc with the -g flag. To work around this we unset
1293 CFLAGS when running the test.
1294]
1295[Don't run "set -o igncr" before configuring libffi
1296Ian Lynagh <igloo@earth.li>**20100520162918
1297 Ignore-this: 489fa94df23f2adf4ff63c8ede2c0794
1298 It used to make the build work on cygwin, but now it breaks it instead:
1299     config.status: creating include/Makefile
1300     gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
1301     gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
1302     config.status: error: could not create include/Makefile
1303     make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
1304     make[1]: *** [all] Error 2
1305]
1306[Stop passing -Wl,-macosx_version_min to gcc
1307Ian Lynagh <igloo@earth.li>**20100520154003
1308 Fixes a build failure on OS X 10.6. When linking
1309     rts/dist/build/libHSrts-ghc6.13.20100519.dylib
1310 we got
1311     ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)
1312     collect2: ld returned 1 exit status
1313]
1314[Fix build on FreeBSD; patch from Gabor PALI
1315Ian Lynagh <igloo@earth.li>**20100519140552]
1316[Fix package shadowing order (#4072)
1317Simon Marlow <marlowsd@gmail.com>**20100519104617
1318 Ignore-this: 26ea5e4bb5dff18618b807a54c7d6ebb
1319 
1320 Later packages are supposed to shadow earlier ones in the stack,
1321 unless the ordering is overriden with -package-id flags.
1322 Unfortunately an earlier fix for something else had sorted the list of
1323 packages so that it was in lexicographic order by installedPackageId,
1324 and sadly our test (cabal/shadow) didn't pick this up because the
1325 lexicographic ordering happened to work for the test.  I've now fixed
1326 the test so it tries both orderings.
1327]
1328[Set more env variables when configuring libffi
1329Ian Lynagh <igloo@earth.li>**20100518185014
1330 We now tell it where to find ld, nm and ar
1331]
1332[Set the location of ar to be the in-tree ar on Windows
1333Ian Lynagh <igloo@earth.li>**20100518181556]
1334[Change another / to </> to avoid building paths containing \/
1335Ian Lynagh <igloo@earth.li>**20100518172015
1336 This will hopefully fix #2889.
1337]
1338[Fix #4074 (I hope).
1339Simon Marlow <marlowsd@gmail.com>**20100518113214
1340 Ignore-this: 73cd70f5bc6f5add5247b61985c03fc1
1341 
1342 1. allow multiple threads to call startTimer()/stopTimer() pairs
1343 2. disable the timer around fork() in forkProcess()
1344 
1345 A corresponding change to the process package is required.
1346]
1347[we don't have a gcc-lib in LIB_DIR any more
1348Simon Marlow <marlowsd@gmail.com>**20100401102351
1349 Ignore-this: f41acd2d8f8e6763aa8bd57a0b44a7e4
1350]
1351[In validate, use gmake if available; based on a patch from Gabor PALI
1352Ian Lynagh <igloo@earth.li>**20100517200654]
1353[Remove duplicate "./configure --help" output; fixes #4075
1354Ian Lynagh <igloo@earth.li>**20100516141206]
1355[Update various 'sh boot's to 'perl boot'
1356Ian Lynagh <igloo@earth.li>**20100516122609
1357 Spotted by Marco Túlio Gontijo e Silva
1358]
1359[add missing initialisation for eventBufMutex
1360Simon Marlow <marlowsd@gmail.com>**20100514094943
1361 Ignore-this: 7f75594a8cb54fbec5aebd46bb959f45
1362]
1363[Undo part of #4003 patch
1364Simon Marlow <marlowsd@gmail.com>**20100513142017
1365 Ignore-this: cb65db86a38a7e5ccee9f779e489d104
1366 We still need the workaround for when compiling HEAD with 6.12.2
1367 
1368]
1369[Fix makefile loop (#4050)
1370pho@cielonegro.org**20100507140707
1371 Ignore-this: 3a1cb13d0600977e74d17ac26cbef83d
1372 
1373 The libtool creates "libffi.dylib" and "libffi.5.dylib" but not "libffi.5.0.9.dylib". Having it in libffi_DYNAMIC_LIBS causes an infinite makefile loop.
1374]
1375[fix !TABLES_NEXT_TO_CODE
1376Simon Marlow <marlowsd@gmail.com>**20100510151934
1377 Ignore-this: fccb859b114bef1c3122c98e60af51
1378]
1379[looksLikeModuleName: allow apostrophe in module names (#4051)
1380Simon Marlow <marlowsd@gmail.com>**20100510094741
1381 Ignore-this: df9348f3ba90608bec57257b47672985
1382]
1383[add the proper library dependencies for GhcProfiled=YES
1384Simon Marlow <marlowsd@gmail.com>**20100506122118
1385 Ignore-this: 6236993aa308ab5b5e1e5ea5f65982a
1386]
1387[Fix Trac #4003: fix the knot-tying in checkHiBootIface
1388simonpj@microsoft.com**20100511075026
1389 Ignore-this: a9ce2a318386fdc8782848df84592002
1390 
1391 I had incorrectly "optimised" checkHiBootIface so that it forgot
1392 to update the "knot-tied" type environment.
1393 
1394 This patch fixes the HEAD
1395]
1396[Re-engineer the derived Ord instance generation code (fix Trac #4019)
1397simonpj@microsoft.com**20100510133333
1398 Ignore-this: 8fe46e4dad27fbee211a7928acf372c2
1399   
1400 As well as fixing #4019, I rejigged the way that Ord instances are
1401 generated, which should make them faster in general.  See the
1402 Note [Generating Ord instances].
1403 
1404 I tried to measure the performance difference from this change, but
1405 the #4019 fix only removes one conditional branch per iteration, and
1406 I couldn't measure a consistent improvement.  But still, tihs is
1407 better than before.
1408]
1409[Make arity of INLINE things consistent
1410simonpj@microsoft.com**20100510133005
1411 Ignore-this: 15e7abf803d1dcb3f4ca760d2d939d0d
1412 
1413 We eta-expand things with INLINE pragmas;
1414 see Note [Eta-expanding INLINE things].
1415 
1416 But I eta-expanded it the wrong amount when the function
1417 was overloaded.  Ooops.
1418]
1419[Compacting GC fix, we forgot to thread the new bq field of StgTSO.
1420Simon Marlow <marlowsd@gmail.com>**20100510082325
1421 Ignore-this: a079c8446e2ad53efff6fd95d0f3ac80
1422]
1423[Add version constraints for the boot packages; fixes trac #3852
1424Ian Lynagh <igloo@earth.li>**20100509175051
1425 When using the bootstrapping compiler, we now explicitly constrain
1426 the version of boot packages (Cabal, extensible-exceptions, etc) to the
1427 in-tree version, so that the build system is less fragile should the
1428 user have a newer version installed for the bootstrapping compiler.
1429]
1430[Don't include inter-package dependencies when compiling with stage 0; #4031
1431Ian Lynagh <igloo@earth.li>**20100509130511
1432 This fixes a problem when building with GHC 6.12 on Windows, where
1433 dependencies on stage 0 (bootstrapping compiler) packages have absolute
1434 paths c:/ghc/..., and make gets confused by the colon.
1435]
1436[Add a ghc.mk for bindisttest/
1437Ian Lynagh <igloo@earth.li>**20100508223911]
1438[Move some make variables around so they are available when cleaning
1439Ian Lynagh <igloo@earth.li>**20100508212405]
1440[Optimise checkremove a bit
1441Ian Lynagh <igloo@earth.li>**20100508202006]
1442[Improve the bindisttest Makefile
1443Ian Lynagh <igloo@earth.li>**20100508195450]
1444[Add tools to test that cleaning works properly
1445Ian Lynagh <igloo@earth.li>**20100508194105]
1446[Tweak the ghc-pkg finding code
1447Ian Lynagh <igloo@earth.li>**20100508125815
1448 It now understand the ghc-stage[123] names we use in-tree, and it won't
1449 go looking for any old ghc-pkg if it can't find the one that matches
1450 ghc.
1451]
1452[Add a way to show what cleaning would be done, without actually doing it
1453Ian Lynagh <igloo@earth.li>**20100508122438]
1454[Tidy up the "rm" flags in the build system
1455Ian Lynagh <igloo@earth.li>**20100508115745]
1456[Fix crash in nested callbacks (#4038)
1457Simon Marlow <marlowsd@gmail.com>**20100507093222
1458 Ignore-this: cade85e361534ce711865a4820276388
1459 Broken by "Split part of the Task struct into a separate struct
1460 InCall".
1461]
1462[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
1463Simon Marlow <marlowsd@gmail.com>**20100428205241
1464 Ignore-this: 1db8bccf92099785ecac39aebd27c92d
1465 Default currently NO.
1466 
1467 Validate passed with GhcDynamic=YES on x86/Linux here.
1468 
1469 The compiler is currently slower on x86 when linked -dynamic,
1470 because the GC inner loop has been adversely affected by -fPIC, I'm
1471 looking into how to fix it.
1472]
1473[omit "dyn" from the way appended to the __stginit label
1474Simon Marlow <marlowsd@gmail.com>**20100428204914
1475 Ignore-this: 14183f3defa9f2bde68fda6729b740bc
1476 When GHCi is linked dynamically, we still want to be able to load
1477 non-dynamic object files.
1478]
1479[improvements to findPtr(), a neat hack for browsing the heap in gdb
1480Simon Marlow <marlowsd@gmail.com>**20100506115427
1481 Ignore-this: ac57785bb3e13b97a5945f753f068738
1482]
1483[Fix +RTS -G1
1484Simon Marlow <marlowsd@gmail.com>**20100506110739
1485 Ignore-this: 86a5de39a94d3331a4ee1213f82be497
1486]
1487[Enable the "redundant specialise pragmas" warning; fixes trac #3855
1488Ian Lynagh <igloo@earth.li>**20100506175351]
1489[Find the correct external ids when there's a wrapper
1490simonpj@microsoft.com**20100506164135
1491 Ignore-this: 636266407b174b05b2b8646cc73062c0
1492 
1493 We were failing to externalise the wrapper id for a function
1494 that had one.
1495]
1496[Add a comment about pattern coercions
1497simonpj@microsoft.com**20100506164027
1498 Ignore-this: 17428089f3df439f65d892e23e8ed61a
1499]
1500[Comments only
1501simonpj@microsoft.com**20100506163829
1502 Ignore-this: 169167b6463873ab173cc5750c5be469
1503]
1504[Make a missing name in mkUsageInfo into a panic
1505simonpj@microsoft.com**20100506163813
1506 Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
1507 
1508 We really want to know about this!
1509]
1510[Refactoring of hsXxxBinders
1511simonpj@microsoft.com**20100506163737
1512 Ignore-this: 97c6667625262b160f9746f7bea1c980
1513 
1514 This patch moves various functions that extract the binders
1515 from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
1516 them consistent names.
1517]
1518[Fix Trac #3966: warn about useless UNPACK pragmas
1519simonpj@microsoft.com**20100506163337
1520 Ignore-this: 5beb24b686eda6113b614dfac8490df1
1521 
1522 Warning about useless UNPACK pragmas wasn't as easy as I thought.
1523 I did quite a bit of refactoring, which improved the code by refining
1524 the types somewhat.  In particular notice that in DataCon, we have
1525 
1526     dcStrictMarks   :: [HsBang]
1527     dcRepStrictness :: [StrictnessMarks]
1528 
1529 The former relates to the *source-code* annotation, the latter to
1530 GHC's representation choice.
1531]
1532[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
1533simonpj@microsoft.com**20100506162719
1534 Ignore-this: d000bca15b0e127e297378ded1bfb81b
1535 
1536 The tcg_dus field used to contain *uses* of type and class decls,
1537 but not *defs*.  That was inconsistent, and it really went wrong
1538 for Template Haskell bracket.  What happened was that
1539  foo = [d| data A = A
1540                   f :: A -> A
1541                   f x = x |]
1542 would find a "use" of A when processing the top level of the module,
1543 which in turn led to a mkUsageInfo panic in MkIface.  The cause was
1544 the fact that the tcg_dus for the nested quote didn't have defs for
1545 A.
1546]
1547[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
1548simonpj@microsoft.com**20100506161523
1549 Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
1550 
1551 The issue here is that
1552 
1553     g :: A -> A
1554     f
1555     data A = A
1556 
1557 is treated as if you'd written $(f); that is the call of
1558 f is a top-level Template Haskell splice.  This patch
1559 makes sure that we *first* check the -XTemplateHaskellFlag
1560 and bleat about a parse error if it's off.  Othewise we
1561 get strange seeing "A is out of scope" errors.
1562]
1563[Change an assert to a warn
1564simonpj@microsoft.com**20100506161111
1565 Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
1566 
1567 This is in the constraint simplifier which I'm about
1568 to rewrite, so I'm hoping the assert isn't fatal!
1569]
1570[Tidy up debug print a little
1571simonpj@microsoft.com**20100506161027
1572 Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
1573]
1574[Remove useless UNPACK pragmas
1575simonpj@microsoft.com**20100506161012
1576 Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
1577]
1578[Add WARNM2 macro, plus some refactoring
1579simonpj@microsoft.com**20100506160808
1580 Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
1581]
1582[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
1583simonpj@microsoft.com**20100506160750
1584 Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
1585]
1586[Fix Trac #3966: warn about unused UNPACK pragmas
1587simonpj@microsoft.com**20100409201812
1588 Ignore-this: c96412596b39c918b5fb9b3c39ce2119
1589]
1590[Fix Trac #3953: fail earlier when using a bogus quasiquoter
1591simonpj@microsoft.com**20100409201748
1592 Ignore-this: ef48e39aa932caed538643985234f043
1593]
1594[Fix Trac #3965: tighten conditions when deriving Data
1595simonpj@microsoft.com**20100409184420
1596 Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
1597 
1598 It's tricky to set up the context for a Data instance.  I got it wrong
1599 once, and fixed it -- hence the "extra_constraints" in
1600 TcDeriv.inferConstraints. 
1601 
1602 But it still wasn't right!  The tricky bit is that dataCast1 is only
1603 generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
1604 the code in TcGenDeriv for dataCastX.
1605]
1606[Fix Trac #3964: view patterns in DsArrows
1607simonpj@microsoft.com**20100409165557
1608 Ignore-this: d823c182831d5e2e592e995b16180e2f
1609 
1610 Just a missing case; I've eliminated the catch-all so
1611 that we get a warning next time we extend HsPat
1612]
1613[Fix Trac #3955: renamer and type variables
1614simonpj@microsoft.com**20100409163710
1615 Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
1616 
1617 The renamer wasn't computing the free variables of a type declaration
1618 properly.  This patch refactors a bit, and makes it more robust,
1619 fixing #3955 and several other closely-related bugs.  (We were
1620 omitting some free variables and that could just possibly lead to a
1621 usage-version tracking error.
1622]
1623[Layout only
1624simonpj@microsoft.com**20100409163506
1625 Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
1626]
1627[Give a better deprecated message for INCLUDE pragmas; fixes #3933
1628Ian Lynagh <igloo@earth.li>**20100506130910
1629 We now have a DeprecatedFullText constructor, so we can override the
1630 "-#include is deprecated: " part of the warning.
1631]
1632[De-haddock a comment that confuses haddock
1633Ian Lynagh <igloo@earth.li>**20100506123607]
1634[Fix comment to not confuse haddock
1635Ian Lynagh <igloo@earth.li>**20100506113642]
1636[Detect EOF when trying to parse a string in hp2ps
1637Ian Lynagh <igloo@earth.li>**20100506000830]
1638[Make the demand analyser sdd demands for strict constructors
1639simonpj@microsoft.com**20100505200936
1640 Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
1641 
1642 This opportunity was spotted by Roman, and is documented in
1643 Note [Add demands for strict constructors] in DmdAnal.
1644]
1645[Fix interaction of exprIsCheap and the lone-variable inlining check
1646simonpj@microsoft.com**20100505200723
1647 Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
1648 
1649 See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
1650 
1651 This buglet meant that a nullary definition with an INLINE pragma
1652 counter-intuitively didn't get inlined at all.  Roman identified
1653 the bug.
1654]
1655[Matching cases in SpecConstr and Rules
1656simonpj@microsoft.com**20100505200543
1657 Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
1658 
1659 This patch has zero effect.  It includes comments,
1660 a bit of refactoring, and a tiny bit of commment-out
1661 code go implement the "matching cases" idea below.
1662 
1663 In the end I've left it disabled because while I think
1664 it does no harm I don't think it'll do any good either.
1665 But I didn't want to lose the idea totally. There's
1666 a thread called "Storable and constant memory" on
1667 the libraries@haskell.org list (Apr 2010) about it.
1668 
1669 Note [Matching cases]
1670 ~~~~~~~~~~~~~~~~~~~~~
1671 {- NOTE: This idea is currently disabled.  It really only works if
1672          the primops involved are OkForSpeculation, and, since
1673         they have side effects readIntOfAddr and touch are not.
1674         Maybe we'll get back to this later .  -}
1675   
1676 Consider
1677    f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
1678       case touch# fp s# of { _ ->
1679       I# n# } } )
1680 This happened in a tight loop generated by stream fusion that
1681 Roman encountered.  We'd like to treat this just like the let
1682 case, because the primops concerned are ok-for-speculation.
1683 That is, we'd like to behave as if it had been
1684    case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
1685    case touch# fp s# of { _ ->
1686    f (I# n# } } )
1687]
1688[Comments only
1689simonpj@microsoft.com**20100504163629
1690 Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
1691]
1692[Comments only
1693simonpj@microsoft.com**20100504163529
1694 Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
1695]
1696[Comments only
1697simonpj@microsoft.com**20100504163457
1698 Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
1699]
1700[Comments only (about type families)
1701simonpj@microsoft.com**20100417145032
1702 Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
1703]
1704[Fix hp2ps when the .hp file has large string literals
1705Ian Lynagh <igloo@earth.li>**20100505191921]
1706[In build system, call package-config after including package data
1707Ian Lynagh <igloo@earth.li>**20100504225035
1708 Otherwise the $1_$2_HC_OPTS variable gets clobbered.
1709]
1710[runghc: flush stdout/stderr on an exception (#3890)
1711Simon Marlow <marlowsd@gmail.com>**20100505133848
1712 Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
1713]
1714[Remove the Unicode alternative for ".." (#3894)
1715Simon Marlow <marlowsd@gmail.com>**20100505121202
1716 Ignore-this: 2452cd67281667106f9169747b6d784f
1717]
1718[tidyup; no functional changes
1719Simon Marlow <marlowsd@gmail.com>**20100505115015
1720 Ignore-this: d0787e5cdeef1dee628682fa0a46019
1721]
1722[Make the running_finalizers flag task-local
1723Simon Marlow <marlowsd@gmail.com>**20100505114947
1724 Ignore-this: 345925d00f1dca203941b3c5d84c90e1
1725 Fixes a bug reported by Lennart Augustsson, whereby we could get an
1726 incorrect error from the RTS about re-entry from a finalizer,
1727]
1728[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
1729Simon Marlow <marlowsd@gmail.com>**20100505114746
1730 Ignore-this: efea04991d6feed04683a42232fc85da
1731]
1732[Allow filepath-1.2.*
1733Simon Marlow <marlowsd@gmail.com>**20100505101139
1734 Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
1735]
1736[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
1737Simon Marlow <marlowsd@gmail.com>**20100505094534
1738 Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
1739]
1740[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
1741Simon Marlow <marlowsd@gmail.com>**20100505094506
1742 Ignore-this: 302616931f61667030d77ddfbb02374e
1743]
1744[Fix build with GHC 6.10
1745Ian Lynagh <igloo@earth.li>**20100504180302
1746 In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
1747 so we need to jump through some hoops to get the more general type.
1748]
1749[The libffi patches are no longer needed
1750Ian Lynagh <igloo@earth.li>**20100504171603]
1751[Use the in-tree windres; fixes trac #4032
1752Ian Lynagh <igloo@earth.li>**20100504170941]
1753[Print unfoldings on lambda-bound variables
1754Simon PJ <simonpj@microsoft.com>**20100503181822
1755 Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
1756 
1757 ...in the unusual case where they have one;
1758 see Note [Case binders and join points] in Simplify.lhs
1759]
1760[Replace FiniteMap and UniqFM with counterparts from containers.
1761Milan Straka <fox@ucw.cz>**20100503171315
1762 Ignore-this: a021972239163dbf728284b19928cebb
1763 
1764 The original interfaces are kept. There is small performance improvement:
1765 - when compiling for five nofib, we get following speedups:
1766     Average                -----           -2.5%
1767     Average                -----           -0.6%
1768     Average                -----           -0.5%
1769     Average                -----           -5.5%
1770     Average                -----          -10.3%
1771 - when compiling HPC ten times, we get:
1772     switches                          oldmaps   newmaps
1773     -O -fasm                          117.402s  116.081s (98.87%)
1774     -O -fasm -fregs-graph             119.993s  118.735s (98.95%)
1775     -O -fasm -fregs-iterative         120.191s  118.607s (98.68%)
1776]
1777[Make the demand analyser take account of lambda-bound unfoldings
1778Simon PJ <simonpj@microsoft.com>**20100503151630
1779 Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
1780 
1781 This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
1782 in DmdAnal.
1783 
1784 I'm still not really happy with this lambda-bound-unfolding stuff.
1785]
1786[Fix dynamic libs on OS X, and enable them by default
1787Ian Lynagh <igloo@earth.li>**20100503150302]
1788[Switch back to using bytestring from the darcs repo; partially fixes #3855
1789Ian Lynagh <igloo@earth.li>**20100502113458]
1790[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
1791Ian Lynagh <igloo@earth.li>**20100428150700]
1792[Fix "make 2"
1793Ian Lynagh <igloo@earth.li>**20100427162212
1794 The new Makefile logic was enabling the stage 1 rules when stage=2,
1795 so "make 2" was rebuilding stage 1.
1796]
1797[Inplace programs depend on their shell wrappers
1798Ian Lynagh <igloo@earth.li>**20100427160038]
1799[--make is now the default (#3515), and -fno-code works with --make (#3783)
1800Simon Marlow <marlowsd@gmail.com>**20100427122851
1801 Ignore-this: 33330474fa4703f32bf9997462b4bf3c
1802 If the command line contains any Haskell source files, then we behave
1803 as if --make had been given.
1804 
1805 The meaning of the -c flag has changed (back): -c now selects one-shot
1806 compilation, but stops before linking.  However, to retain backwards
1807 compatibility, -c is still allowed with --make, and means the same as
1808 --make -no-link.  The -no-link flag has been un-deprecated.
1809 
1810 -fno-code is now allowed with --make (#3783); the fact that it was
1811 disabled before was largely accidental, it seems.  We also had some
1812 regressions in this area: it seems that -fno-code was causing a .hc
1813 file to be emitted in certain cases.  I've tidied up the code, there
1814 was no need for -fno-code to be a "mode" flag, as far as I can tell.
1815 
1816 -fno-code does not emit interface files, nor does it do recompilation
1817 checking, as suggested in #3783.  This would make Haddock emit
1818 interface files, for example, and I'm fairly sure we don't want to do
1819 that.  Compiling with -fno-code is pretty quick anyway, perhaps we can
1820 get away without recompilation checking.
1821]
1822[remove duplicate docs for -e in --help output (#4010)
1823Simon Marlow <marlowsd@gmail.com>**20100426140642
1824 Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
1825]
1826[workaround for #4003, fixes HEAD build with 6.12.2
1827Simon Marlow <marlowsd@gmail.com>**20100426103428
1828 Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
1829]
1830[Make sure all the clean rules are always included
1831Ian Lynagh <igloo@earth.li>**20100424181823
1832 In particular, this fixes a problem where stage3 bits weren't being cleaned
1833]
1834[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
1835Ian Lynagh <igloo@earth.li>**20100424132830
1836 We weren't getting sharedlibs on amd64/FreeBSD because of this
1837]
1838[Include DPH docs in bindists
1839Ian Lynagh <igloo@earth.li>**20100424123101]
1840[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
1841Simon Marlow <marlowsd@gmail.com>**20100423124853
1842 Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
1843]
1844[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
1845Simon Marlow <marlowsd@gmail.com>**20100422213605
1846 Ignore-this: 525c062d2456c224ec8d0e083edd3b55
1847]
1848[Add missing constant folding and optimisation for unsigned division
1849Simon Marlow <marlowsd@gmail.com>**20100422213443
1850 Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
1851 Noticed by Denys Rtveliashvili <rtvd@mac.com>, see #4004
1852]
1853[Fix the GHC API link in the main doc index.html
1854Ian Lynagh <igloo@earth.li>**20100422213226]
1855[Give the right exit code in darcs-all
1856Ian Lynagh <igloo@earth.li>**20100421171339
1857 Our END block was calling system, which alters $?. So now we save and
1858 restore it.
1859]
1860[Use StgWord64 instead of ullong
1861Ian Lynagh <igloo@earth.li>**20100421162336
1862 This patch also fixes ullong_format_string (renamed to showStgWord64)
1863 so that it works with values outside the 32bit range (trac #3979), and
1864 simplifies the without-commas case.
1865]
1866[Implement try10Times in Makefile
1867Ian Lynagh <igloo@earth.li>**20100420165909
1868 Avoid using seq, as FreeBSD has jot instead.
1869]
1870[Fix crash in non-threaded RTS on Windows
1871Simon Marlow <marlowsd@gmail.com>**20100420122125
1872 Ignore-this: 28b0255a914a8955dce02d89a7dfaca
1873 The tso->block_info field is now overwritten by pushOnRunQueue(), but
1874 stg_block_async_info was assuming that it still held a pointer to the
1875 StgAsyncIOResult.  We must therefore save this value somewhere safe
1876 before putting the TSO on the run queue.
1877]
1878[Expand the scope of the event_buf_mutex to cover io_manager_event
1879Simon Marlow <marlowsd@gmail.com>**20100420122026
1880 Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
1881 I once saw a failure that I think was due to a race on
1882 io_manager_event, this should fix it.
1883]
1884[Flags -auto and -auto-all operate only on functions not marked INLINE.
1885Milan Straka <fox@ucw.cz>**20100331191050
1886 Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
1887]
1888[Spelling correction for LANGUAGE pragmas
1889Max Bolingbroke <batterseapower@hotmail.com>**20100413192825
1890 Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
1891]
1892[Update the user guide so it talks about the newer "do rec" notation everywhere
1893Ian Lynagh <igloo@earth.li>**20100416205416
1894 Some of the problems highlighted in trac #3968.
1895]
1896[Fix typo
1897Ian Lynagh <igloo@earth.li>**20100416205412]
1898[Fix Trac #3950: unifying types of different kinds
1899simonpj@microsoft.com**20100412151845
1900 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
1901 
1902 I was assuming that the unifer only unified types of the
1903 same kind, but now we can "defer" unsolved constraints that
1904 invariant no longer holds.  Or at least is's more complicated
1905 to ensure. 
1906 
1907 This patch takes the path of not assuming the invariant, which
1908 is simpler and more robust.  See
1909 Note [Mismatched type lists and application decomposition]
1910]
1911[Fix Trac #3943: incorrect unused-variable warning
1912simonpj@microsoft.com**20100412151630
1913 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
1914 
1915 In fixing this I did the usual little bit of refactoring
1916]
1917[Convert boot and boot-pkgs to perl
1918Ian Lynagh <igloo@earth.li>**20100415143919
1919 This stops us having to worry about sh/sed/... portability.
1920]
1921[Use $(MAKE), not make, when recursively calling make
1922Ian Lynagh <igloo@earth.li>**20100415121453]
1923[Remove the ghc_ge_609 makefile variables
1924Ian Lynagh <igloo@earth.li>**20100412235658
1925 They are now guaranteed to be YES
1926]
1927[Increase the minimum version number required to 6.10 in configure.ac
1928Ian Lynagh <igloo@earth.li>**20100412235313]
1929[The bootstrapping compiler is now required to be > 609
1930Ian Lynagh <igloo@earth.li>**20100409161046]
1931[Handle IND_STATIC in isRetainer
1932Ian Lynagh <igloo@earth.li>**20100409104207
1933 IND_STATIC used to be an error, but at the moment it can happen
1934 as isAlive doesn't look through IND_STATIC as it ignores static
1935 closures. See trac #3956 for a program that hit this error.
1936]
1937[Add Data and Typeable instances to HsSyn
1938David Waern <david.waern@gmail.com>**20100330011020
1939 Ignore-this: c3f2717207b15539fea267c36b686e6a
1940 
1941 The instances (and deriving declarations) have been taken from the ghc-syb
1942 package.
1943]
1944[Fix for derefing ThreadRelocated TSOs in MVar operations
1945Simon Marlow <marlowsd@gmail.com>**20100407092824
1946 Ignore-this: 94dd7c68a6094eda667e2375921a8b78
1947]
1948[sanity check fix
1949Simon Marlow <marlowsd@gmail.com>**20100407092746
1950 Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
1951]
1952[get the reg liveness right in the putMVar# heap check
1953Simon Marlow <marlowsd@gmail.com>**20100407092724
1954 Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
1955]
1956[initialise the headers of MSG_BLACKHOLE objects properly
1957Simon Marlow <marlowsd@gmail.com>**20100407081712
1958 Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
1959]
1960[initialise the headers of MVAR_TSO_QUEUE objects properly
1961Simon Marlow <marlowsd@gmail.com>**20100407081514
1962 Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
1963]
1964[undo debugging code
1965Simon Marlow <marlowsd@gmail.com>**20100406142740
1966 Ignore-this: 323c2248f817b6717c19180482fc4b00
1967]
1968[putMVar#: fix reg liveness in the heap check
1969Simon Marlow <marlowsd@gmail.com>**20100406135832
1970 Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
1971]
1972[account for the new BLACKHOLEs in the GHCi debugger
1973Simon Marlow <marlowsd@gmail.com>**20100406133406
1974 Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
1975]
1976[don't forget to deRefTSO() in tryWakeupThread()
1977Simon Marlow <marlowsd@gmail.com>**20100406130411
1978 Ignore-this: 171d57c4f8653835dec0b69f9be9881c
1979]
1980[Fix bug in popRunQueue
1981Simon Marlow <marlowsd@gmail.com>**20100406091453
1982 Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
1983]
1984[fix bug in migrateThread()
1985Simon Marlow <marlowsd@gmail.com>**20100401105840
1986 Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
1987]
1988[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
1989Simon Marlow <marlowsd@gmail.com>**20100401093519
1990 Ignore-this: 95f2480c8a45139835eaf5610217780b
1991 These are no longer used: once upon a time they used to have different
1992 layout from IND and IND_PERM respectively, but that is no longer the
1993 case since we changed the remembered set to be an array of addresses
1994 instead of a linked list of closures.
1995]
1996[Change the representation of the MVar blocked queue
1997Simon Marlow <marlowsd@gmail.com>**20100401091605
1998 Ignore-this: 20a35bfabacef2674df362905d7834fa
1999 
2000 The list of threads blocked on an MVar is now represented as a list of
2001 separately allocated objects rather than being linked through the TSOs
2002 themselves.  This lets us remove a TSO from the list in O(1) time
2003 rather than O(n) time, by marking the list object.  Removing this
2004 linear component fixes some pathalogical performance cases where many
2005 threads were blocked on an MVar and became unreachable simultaneously
2006 (nofib/smp/threads007), or when sending an asynchronous exception to a
2007 TSO in a long list of thread blocked on an MVar.
2008 
2009 MVar performance has actually improved by a few percent as a result of
2010 this change, slightly to my surprise.
2011 
2012 This is the final cleanup in the sequence, which let me remove the old
2013 way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
2014 new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent).  It
2015 is now the case that only the Capability that owns a TSO may modify
2016 its state (well, almost), and this simplifies various things.  More of
2017 the RTS is based on message-passing between Capabilities now.
2018]
2019[eliminate some duplication with a bit of CPP
2020Simon Marlow <marlowsd@gmail.com>**20100330154355
2021 Ignore-this: 838f7d341f096ca14c86ab9c81193e36
2022]
2023[Make ioManagerDie() idempotent
2024Simon Marlow <marlowsd@gmail.com>**20100401100705
2025 Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
2026 Avoids screeds of "event buffer overflowed; event dropped" in
2027 conc059(threaded1).
2028]
2029[Move a thread to the front of the run queue when another thread blocks on it
2030Simon Marlow <marlowsd@gmail.com>**20100329144521
2031 Ignore-this: c518ff0d41154680edc811d891826a29
2032 This fixes #3838, and was made possible by the new BLACKHOLE
2033 infrastructure.  To allow reording of the run queue I had to make it
2034 doubly-linked, which entails some extra trickiness with regard to
2035 GC write barriers and suchlike.
2036]
2037[remove non-existent MUT_CONS symbols
2038Simon Marlow <marlowsd@gmail.com>**20100330152600
2039 Ignore-this: 885628257a9d03f2ece2a754d993014a
2040]
2041[change throwTo to use tryWakeupThread rather than unblockOne
2042Simon Marlow <marlowsd@gmail.com>**20100329144613
2043 Ignore-this: 10ad4965e6c940db71253f1c72218bbb
2044]
2045[tiny GC optimisation
2046Simon Marlow <marlowsd@gmail.com>**20100329144551
2047 Ignore-this: 9e095b9b73fff0aae726f9937846ba92
2048]
2049[New implementation of BLACKHOLEs
2050Simon Marlow <marlowsd@gmail.com>**20100329144456
2051 Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
2052 
2053 This replaces the global blackhole_queue with a clever scheme that
2054 enables us to queue up blocked threads on the closure that they are
2055 blocked on, while still avoiding atomic instructions in the common
2056 case.
2057 
2058 Advantages:
2059 
2060  - gets rid of a locked global data structure and some tricky GC code
2061    (replacing it with some per-thread data structures and different
2062    tricky GC code :)
2063 
2064  - wakeups are more prompt: parallel/concurrent performance should
2065    benefit.  I haven't seen anything dramatic in the parallel
2066    benchmarks so far, but a couple of threading benchmarks do improve
2067    a bit.
2068 
2069  - waking up a thread blocked on a blackhole is now O(1) (e.g. if
2070    it is the target of throwTo).
2071 
2072  - less sharing and better separation of Capabilities: communication
2073    is done with messages, the data structures are strictly owned by a
2074    Capability and cannot be modified except by sending messages.
2075 
2076  - this change will utlimately enable us to do more intelligent
2077    scheduling when threads block on each other.  This is what started
2078    off the whole thing, but it isn't done yet (#3838).
2079 
2080 I'll be documenting all this on the wiki in due course.
2081 
2082]
2083[Fix warnings (allow pushOnRunQueue() to not be inlined)
2084Simon Marlow <marlowsd@gmail.com>**20100401114559
2085 Ignore-this: f40bfbfad70a5165a946d11371605b7d
2086]
2087[remove out of date comment
2088Simon Marlow <marlowsd@gmail.com>**20100401105853
2089 Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
2090]
2091[tidy up spacing in stderr traces
2092Simon Marlow <marlowsd@gmail.com>**20100326163122
2093 Ignore-this: 16558b0433a274be217d4bf39aa4946
2094]
2095[Fix an assertion that was not safe when running in parallel
2096Simon Marlow <marlowsd@gmail.com>**20100325143656
2097 Ignore-this: cad08fb8900eb3a475547af0189fcc47
2098]
2099[Never jump directly to a thunk's entry code, even if it is single-entry
2100Simon Marlow <marlowsd@gmail.com>**20100325114847
2101 Ignore-this: 938da172c06a97762ef605c8fccfedf1
2102 I don't think this fixes any bugs as we don't have single-entry thunks
2103 at the moment, but it could cause problems for parallel execution if
2104 we ever did re-introduce update avoidance.
2105]
2106[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
2107Milan Straka <fox@ucw.cz>**20100331153626
2108 Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
2109]
2110[Add -pa and -V to the documentation of time profiling options.
2111Milan Straka <fox@ucw.cz>**20100329191121
2112 Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
2113]
2114[Keep gcc 4.5 happy
2115Simon Marlow <marlowsd@gmail.com>**20100330120425
2116 Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
2117]
2118[Fix warning compiling Linker.c for PPC Mac
2119naur@post11.tele.dk**20100403182355
2120 Ignore-this: e2d2448770c9714ce17dd6cf3e297063
2121 The warning message eliminated is:
2122 > rts/Linker.c:4756:0:
2123 >      warning: nested extern declaration of 'symbolsWithoutUnderscore'
2124]
2125[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
2126naur@post11.tele.dk**20100403181656
2127 Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
2128 The error messages eliminated are:
2129 > compiler/nativeGen/AsmCodeGen.lhs:875:31:
2130 >     Not in scope: `mkRtsCodeLabel'
2131 > compiler/nativeGen/AsmCodeGen.lhs:879:31:
2132 >     Not in scope: `mkRtsCodeLabel'
2133 > compiler/nativeGen/AsmCodeGen.lhs:883:31:
2134 >     Not in scope: `mkRtsCodeLabel'
2135]
2136[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
2137naur@post11.tele.dk**20100403180643
2138 Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
2139 The error message eliminated is:
2140 > compiler/nativeGen/AsmCodeGen.lhs:637:16:
2141 >     Not in scope: data constructor `DestBlockId'
2142]
2143[Fix boot-pkgs's sed usage to work with Solaris's sed
2144Ian Lynagh <igloo@earth.li>**20100401153441]
2145[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
2146Ian Lynagh <igloo@earth.li>**20100331144707
2147 This seems to fix this failure:
2148 [...]
2149 ** BUILD SUCCEEDED **
2150 rm -f -f GHC-system.pmdoc/*-contents.xml
2151 /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
2152              -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
2153 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
2154 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
2155 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
2156 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
2157 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
2158     2511962091,
2159     2447007291,
2160     2511961547,
2161     2511961610,
2162     2432803204,
2163     453371,
2164     447720,
2165     436209,
2166     435510,
2167     9986,
2168     9918
2169 )
2170 make[1]: *** [framework-pkg] Trace/BPT trap
2171 make: *** [framework-pkg] Error 2
2172]
2173[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
2174Ian Lynagh <igloo@earth.li>**20100331161302
2175 Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
2176]
2177[Avoid a non-portable use of tar reported by Roman Leshchinskiy
2178Ian Lynagh <igloo@earth.li>**20100330145802]
2179[Don't install EXTRA_PACKAGES by default
2180Simon Marlow <marlowsd@gmail.com>**20100330142714
2181 Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
2182]
2183[fix a non-portable printf format
2184Simon Marlow <marlowsd@gmail.com>**20100330134437
2185 Ignore-this: d41c23c54ec29654cb2049de1e588570
2186]
2187[avoid single quote in #error
2188Simon Marlow <marlowsd@gmail.com>**20100330120346
2189 Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
2190]
2191[use FMT_Word64 instead of locally-defined version
2192Simon Marlow <marlowsd@gmail.com>**20100330114650
2193 Ignore-this: 82697b8095dffb3a8e196c687006ece0
2194]
2195[remove old/unused DotnetSupport and GhcLibsWithUnix
2196Simon Marlow <marlowsd@gmail.com>**20100330123732
2197 Ignore-this: c68814868b3671abdc369105bbeafe6c
2198]
2199[fix return type cast in f.i.wrapper when using libffi (#3516)
2200Simon Marlow <marlowsd@gmail.com>**20100329154220
2201 Ignore-this: f898eb8c9ae2ca2009e539735b92c438
2202 
2203 Original fix submitted by
2204   Sergei Trofimovich <slyfox@community.haskell.org>
2205 modified by me:
2206  - exclude 64-bit types
2207  - compare uniques, not strings
2208  - #include "ffi.h" is conditional
2209]
2210[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
2211Simon Marlow <marlowsd@gmail.com>**20100329135734
2212 Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
2213 Submitted by: Sergei Trofimovich <slyfox@community.haskell.org>
2214 Re-recorded against HEAD.
2215]
2216[avoid a fork deadlock (see comments)
2217Simon Marlow <marlowsd@gmail.com>**20100329132329
2218 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
2219]
2220[tidy up the end of the all_tasks list after forking
2221Simon Marlow <marlowsd@gmail.com>**20100329132253
2222 Ignore-this: 819d679875be5f344e816210274d1c29
2223]
2224[Add a 'setKeepCAFs' external function (#3900)
2225Simon Marlow <marlowsd@gmail.com>**20100329110036
2226 Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
2227]
2228[Explicitly check whether ar supports the @file syntax
2229Ian Lynagh <igloo@earth.li>**20100329123325
2230 rather than assuming that all GNU ar's do.
2231 Apparently OpenBSD's older version doesn't.
2232]
2233[Fix the format specifier for Int64/Word64 on Windows
2234Ian Lynagh <igloo@earth.li>**20100327182126
2235 mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
2236 than 64-bit. We use %I64u/%I64d instead.
2237]
2238[Fix the ghci startmenu item
2239Ian Lynagh <igloo@earth.li>**20100326235934
2240 I'm not sure what changed, but it now doesn't work for me without
2241 the "Start in" field being set.
2242]
2243[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
2244Ian Lynagh <igloo@earth.li>**20100326155917]
2245[Add a licence file for the Windows installer to use
2246Ian Lynagh <igloo@earth.li>**20100326155130]
2247[Add gcc-g++ to the inplace mingw installation; fixes #3893
2248Ian Lynagh <igloo@earth.li>**20100326154714]
2249[Add the licence file to the Windows installer. Fixes #3934
2250Ian Lynagh <igloo@earth.li>**20100326152449]
2251[Quote the paths to alex and happy in configure
2252Ian Lynagh <igloo@earth.li>**20100325143449
2253 Ignore-this: d6d6e1a250f88985bbeea760e63a79db
2254]
2255[Use </> rather than ++ "/"
2256Ian Lynagh <igloo@earth.li>**20100325133237
2257 This stops us generating paths like
2258     c:\foo\/ghc460_0/ghc460_0.o
2259 which windres doesn't understand.
2260]
2261[Append $(exeext) to utils/ghc-pkg_dist_PROG
2262Ian Lynagh <igloo@earth.li>**20100324233447
2263 Fixes bindist creation
2264]
2265[A sanity check
2266Simon Marlow <marlowsd@gmail.com>**20100325110500
2267 Ignore-this: 3b3b76d898c822456857e506b7531e65
2268]
2269[do_checks: do not set HpAlloc if the stack check fails
2270Simon Marlow <marlowsd@gmail.com>**20100325110328
2271 Ignore-this: 899ac8c29ca975d03952dbf4608d758
2272 
2273 This fixes a very rare heap corruption bug, whereby
2274 
2275  - a context switch is requested, which sets HpLim to zero
2276    (contextSwitchCapability(), called by the timer signal or
2277    another Capability).
2278 
2279  - simultaneously a stack check fails, in a code fragment that has
2280    both a stack and a heap check.
2281 
2282 The RTS then assumes that a heap-check failure has occurred and
2283 subtracts HpAlloc from Hp, although in fact it was a stack-check
2284 failure and retreating Hp will overwrite valid heap objects.  The bug
2285 is that HpAlloc should only be set when Hp has been incremented by the
2286 heap check.  See comments in rts/HeapStackCheck.cmm for more details.
2287 
2288 This bug is probably incredibly rare in practice, but I happened to be
2289 working on a test that triggers it reliably:
2290 concurrent/should_run/throwto001, compiled with -O -threaded, args 30
2291 300 +RTS -N2, run repeatedly in a loop.
2292]
2293[comments and formatting only
2294Simon Marlow <marlowsd@gmail.com>**20100325104617
2295 Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
2296]
2297[Change how perl scripts get installed; partially fixes #3863
2298Ian Lynagh <igloo@earth.li>**20100324171422
2299 We now regenerate them when installing, which means the path for perl
2300 doesn't get baked in
2301]
2302[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
2303Ian Lynagh <igloo@earth.li>**20100324171408
2304 This means we don't rely on baking a path to gcc into the executable
2305]
2306[Quote the ar path in configure
2307Ian Lynagh <igloo@earth.li>**20100324162043]
2308[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
2309Ian Lynagh <igloo@earth.li>**20100324145048]
2310[Remove unused cCONTEXT_DIFF
2311Ian Lynagh <igloo@earth.li>**20100324145013]
2312[Remove unused cEnableWin32DLLs
2313Ian Lynagh <igloo@earth.li>**20100324144841]
2314[Remove unused cGHC_CP
2315Ian Lynagh <igloo@earth.li>**20100324144656]
2316[Fix the build for non-GNU-ar
2317Ian Lynagh <igloo@earth.li>**20100324132907]
2318[Tweak the Makefile code for making .a libs; fixes trac #3642
2319Ian Lynagh <igloo@earth.li>**20100323221325
2320 The main change is that, rather than using "xargs ar" we now put
2321 all the filenames into a file, and do "ar @file". This means that
2322 ar adds all the files at once, which works around a problem where
2323 files with the same basename in a later invocation were overwriting
2324 the existing file in the .a archive.
2325]
2326[Enable shared libraries on Windows; fixes trac #3879
2327Ian Lynagh <igloo@earth.li>**20100320231414
2328 Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
2329]
2330[Add the external core PDF to the new build system
2331Ian Lynagh <igloo@earth.li>**20100321161909]
2332[Allow specifying $threads directly when validating
2333Ian Lynagh <igloo@earth.li>**20100321112835]
2334[Remove LazyUniqFM; fixes trac #3880
2335Ian Lynagh <igloo@earth.li>**20100320213837]
2336[UNDO: slight improvement to scavenging ...
2337Simon Marlow <marlowsd@gmail.com>**20100319153413
2338 Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
2339 
2340 Accidnetally pushed this patch which, while it validates, isn't
2341 correct.
2342 
2343 rolling back:
2344 
2345 Fri Mar 19 11:21:27 GMT 2010  Simon Marlow <marlowsd@gmail.com>
2346   * slight improvement to scavenging of update frames when a collision has occurred
2347 
2348     M ./rts/sm/Scav.c -19 +15
2349]
2350[slight improvement to scavenging of update frames when a collision has occurred
2351Simon Marlow <marlowsd@gmail.com>**20100319112127
2352 Ignore-this: 6de2bb9614978975f17764a0f259d9bf
2353]
2354[Don't install the utf8-string package
2355Ian Lynagh <igloo@earth.li>**20100317212709]
2356[Don't use -Bsymbolic when linking the RTS
2357Ian Lynagh <igloo@earth.li>**20100316233357
2358 This makes the RTS hooks work when doing dynamic linking
2359]
2360[Fix Trac #3920: Template Haskell kinds
2361simonpj@microsoft.com**20100317123519
2362 Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
2363 
2364 Fix two places where we were doing foldl instead of foldr
2365 after decomposing a Kind.  Strange that the same bug appears
2366 in two quite different places!
2367]
2368[copy_tag_nolock(): fix write ordering and add a write_barrier()
2369Simon Marlow <marlowsd@gmail.com>**20100316143103
2370 Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
2371 
2372 Fixes a rare crash in the parallel GC.
2373 
2374 If we copy a closure non-atomically during GC, as we do for all
2375 immutable values, then before writing the forwarding pointer we better
2376 make sure that the closure itself is visible to other threads that
2377 might follow the forwarding pointer.  I imagine this doesn't happen
2378 very often, but I just found one case of it: in scavenge_stack, the
2379 RET_FUN case, after evacuating ret_fun->fun we then follow it and look
2380 up the info pointer.
2381]
2382[Add sliceP mapping to vectoriser builtins
2383benl@ouroborus.net**20100316060517
2384 Ignore-this: 54c3cafff584006b6fbfd98124330aa3
2385]
2386[Comments only
2387benl@ouroborus.net**20100311064518
2388 Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
2389]
2390[TAG 2010-03-16
2391Ian Lynagh <igloo@earth.li>**20100316005137
2392 Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
2393]
2394Patch bundle hash:
2395b96e559873aaae79fe863d25d3505086b4e9317f