Ticket #3594: PPC-CodeGen-PicBaseReg.patch

File PPC-CodeGen-PicBaseReg.patch, 37.4 KB (added by PHO, 4 years ago)
Line 
11 patch for repository http://darcs.haskell.org/ghc:
2
3Sat May  8 23:39:00 JST 2010  pho@cielonegro.org
4  * PIC support for PowerPC
5 
6  PPC.CodeGen.getRegister was not properly handling PicBaseReg.
7  It seems working with this patch, but I'm not sure this change is correct.
8-----BEGIN PGP SIGNED MESSAGE-----
9Hash: SHA1
10
11
12New patches:
13
14[PIC support for PowerPC
15pho@cielonegro.org**20100508143900
16 Ignore-this: 3673859a305398c4acae3f4d7c997615
17 
18 PPC.CodeGen.getRegister was not properly handling PicBaseReg.
19 It seems working with this patch, but I'm not sure this change is correct.
20] hunk ./compiler/nativeGen/PPC/CodeGen.hs 380
21 
22 getRegister :: CmmExpr -> NatM Register
23 
24+getRegister (CmmReg (CmmGlobal PicBaseReg))
25+  = do
26+      reg <- getPicBaseNat archWordSize
27+      return (Fixed archWordSize reg nilOL)
28+
29 getRegister (CmmReg reg)
30   = return (Fixed (cmmTypeSize (cmmRegType reg))
31                  (getRegisterReg reg) nilOL)
32
33Context:
34
35[Fix crash in nested callbacks (#4038)
36Simon Marlow <marlowsd@gmail.com>**20100507093222
37 Ignore-this: cade85e361534ce711865a4820276388
38 Broken by "Split part of the Task struct into a separate struct
39 InCall".
40]
41[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
42Simon Marlow <marlowsd@gmail.com>**20100428205241
43 Ignore-this: 1db8bccf92099785ecac39aebd27c92d
44 Default currently NO.
45 
46 Validate passed with GhcDynamic=YES on x86/Linux here.
47 
48 The compiler is currently slower on x86 when linked -dynamic,
49 because the GC inner loop has been adversely affected by -fPIC, I'm
50 looking into how to fix it.
51]
52[omit "dyn" from the way appended to the __stginit label
53Simon Marlow <marlowsd@gmail.com>**20100428204914
54 Ignore-this: 14183f3defa9f2bde68fda6729b740bc
55 When GHCi is linked dynamically, we still want to be able to load
56 non-dynamic object files.
57]
58[improvements to findPtr(), a neat hack for browsing the heap in gdb
59Simon Marlow <marlowsd@gmail.com>**20100506115427
60 Ignore-this: ac57785bb3e13b97a5945f753f068738
61]
62[Fix +RTS -G1
63Simon Marlow <marlowsd@gmail.com>**20100506110739
64 Ignore-this: 86a5de39a94d3331a4ee1213f82be497
65]
66[Enable the "redundant specialise pragmas" warning; fixes trac #3855
67Ian Lynagh <igloo@earth.li>**20100506175351]
68[Find the correct external ids when there's a wrapper
69simonpj@microsoft.com**20100506164135
70 Ignore-this: 636266407b174b05b2b8646cc73062c0
71 
72 We were failing to externalise the wrapper id for a function
73 that had one.
74]
75[Add a comment about pattern coercions
76simonpj@microsoft.com**20100506164027
77 Ignore-this: 17428089f3df439f65d892e23e8ed61a
78]
79[Comments only
80simonpj@microsoft.com**20100506163829
81 Ignore-this: 169167b6463873ab173cc5750c5be469
82]
83[Make a missing name in mkUsageInfo into a panic
84simonpj@microsoft.com**20100506163813
85 Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
86 
87 We really want to know about this!
88]
89[Refactoring of hsXxxBinders
90simonpj@microsoft.com**20100506163737
91 Ignore-this: 97c6667625262b160f9746f7bea1c980
92 
93 This patch moves various functions that extract the binders
94 from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
95 them consistent names.
96]
97[Fix Trac #3966: warn about useless UNPACK pragmas
98simonpj@microsoft.com**20100506163337
99 Ignore-this: 5beb24b686eda6113b614dfac8490df1
100 
101 Warning about useless UNPACK pragmas wasn't as easy as I thought.
102 I did quite a bit of refactoring, which improved the code by refining
103 the types somewhat.  In particular notice that in DataCon, we have
104 
105     dcStrictMarks   :: [HsBang]
106     dcRepStrictness :: [StrictnessMarks]
107 
108 The former relates to the *source-code* annotation, the latter to
109 GHC's representation choice.
110]
111[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
112simonpj@microsoft.com**20100506162719
113 Ignore-this: d000bca15b0e127e297378ded1bfb81b
114 
115 The tcg_dus field used to contain *uses* of type and class decls,
116 but not *defs*.  That was inconsistent, and it really went wrong
117 for Template Haskell bracket.  What happened was that
118  foo = [d| data A = A
119                   f :: A -> A
120                   f x = x |]
121 would find a "use" of A when processing the top level of the module,
122 which in turn led to a mkUsageInfo panic in MkIface.  The cause was
123 the fact that the tcg_dus for the nested quote didn't have defs for
124 A.
125]
126[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
127simonpj@microsoft.com**20100506161523
128 Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
129 
130 The issue here is that
131 
132     g :: A -> A
133     f
134     data A = A
135 
136 is treated as if you'd written $(f); that is the call of
137 f is a top-level Template Haskell splice.  This patch
138 makes sure that we *first* check the -XTemplateHaskellFlag
139 and bleat about a parse error if it's off.  Othewise we
140 get strange seeing "A is out of scope" errors.
141]
142[Change an assert to a warn
143simonpj@microsoft.com**20100506161111
144 Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
145 
146 This is in the constraint simplifier which I'm about
147 to rewrite, so I'm hoping the assert isn't fatal!
148]
149[Tidy up debug print a little
150simonpj@microsoft.com**20100506161027
151 Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
152]
153[Remove useless UNPACK pragmas
154simonpj@microsoft.com**20100506161012
155 Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
156]
157[Add WARNM2 macro, plus some refactoring
158simonpj@microsoft.com**20100506160808
159 Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
160]
161[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
162simonpj@microsoft.com**20100506160750
163 Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
164]
165[Fix Trac #3966: warn about unused UNPACK pragmas
166simonpj@microsoft.com**20100409201812
167 Ignore-this: c96412596b39c918b5fb9b3c39ce2119
168]
169[Fix Trac #3953: fail earlier when using a bogus quasiquoter
170simonpj@microsoft.com**20100409201748
171 Ignore-this: ef48e39aa932caed538643985234f043
172]
173[Fix Trac #3965: tighten conditions when deriving Data
174simonpj@microsoft.com**20100409184420
175 Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
176 
177 It's tricky to set up the context for a Data instance.  I got it wrong
178 once, and fixed it -- hence the "extra_constraints" in
179 TcDeriv.inferConstraints. 
180 
181 But it still wasn't right!  The tricky bit is that dataCast1 is only
182 generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
183 the code in TcGenDeriv for dataCastX.
184]
185[Fix Trac #3964: view patterns in DsArrows
186simonpj@microsoft.com**20100409165557
187 Ignore-this: d823c182831d5e2e592e995b16180e2f
188 
189 Just a missing case; I've eliminated the catch-all so
190 that we get a warning next time we extend HsPat
191]
192[Fix Trac #3955: renamer and type variables
193simonpj@microsoft.com**20100409163710
194 Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
195 
196 The renamer wasn't computing the free variables of a type declaration
197 properly.  This patch refactors a bit, and makes it more robust,
198 fixing #3955 and several other closely-related bugs.  (We were
199 omitting some free variables and that could just possibly lead to a
200 usage-version tracking error.
201]
202[Layout only
203simonpj@microsoft.com**20100409163506
204 Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
205]
206[Give a better deprecated message for INCLUDE pragmas; fixes #3933
207Ian Lynagh <igloo@earth.li>**20100506130910
208 We now have a DeprecatedFullText constructor, so we can override the
209 "-#include is deprecated: " part of the warning.
210]
211[De-haddock a comment that confuses haddock
212Ian Lynagh <igloo@earth.li>**20100506123607]
213[Fix comment to not confuse haddock
214Ian Lynagh <igloo@earth.li>**20100506113642]
215[Detect EOF when trying to parse a string in hp2ps
216Ian Lynagh <igloo@earth.li>**20100506000830]
217[Make the demand analyser sdd demands for strict constructors
218simonpj@microsoft.com**20100505200936
219 Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
220 
221 This opportunity was spotted by Roman, and is documented in
222 Note [Add demands for strict constructors] in DmdAnal.
223]
224[Fix interaction of exprIsCheap and the lone-variable inlining check
225simonpj@microsoft.com**20100505200723
226 Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
227 
228 See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
229 
230 This buglet meant that a nullary definition with an INLINE pragma
231 counter-intuitively didn't get inlined at all.  Roman identified
232 the bug.
233]
234[Matching cases in SpecConstr and Rules
235simonpj@microsoft.com**20100505200543
236 Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
237 
238 This patch has zero effect.  It includes comments,
239 a bit of refactoring, and a tiny bit of commment-out
240 code go implement the "matching cases" idea below.
241 
242 In the end I've left it disabled because while I think
243 it does no harm I don't think it'll do any good either.
244 But I didn't want to lose the idea totally. There's
245 a thread called "Storable and constant memory" on
246 the libraries@haskell.org list (Apr 2010) about it.
247 
248 Note [Matching cases]
249 ~~~~~~~~~~~~~~~~~~~~~
250 {- NOTE: This idea is currently disabled.  It really only works if
251          the primops involved are OkForSpeculation, and, since
252         they have side effects readIntOfAddr and touch are not.
253         Maybe we'll get back to this later .  -}
254   
255 Consider
256    f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
257       case touch# fp s# of { _ ->
258       I# n# } } )
259 This happened in a tight loop generated by stream fusion that
260 Roman encountered.  We'd like to treat this just like the let
261 case, because the primops concerned are ok-for-speculation.
262 That is, we'd like to behave as if it had been
263    case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
264    case touch# fp s# of { _ ->
265    f (I# n# } } )
266]
267[Comments only
268simonpj@microsoft.com**20100504163629
269 Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
270]
271[Comments only
272simonpj@microsoft.com**20100504163529
273 Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
274]
275[Comments only
276simonpj@microsoft.com**20100504163457
277 Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
278]
279[Comments only (about type families)
280simonpj@microsoft.com**20100417145032
281 Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
282]
283[Fix hp2ps when the .hp file has large string literals
284Ian Lynagh <igloo@earth.li>**20100505191921]
285[In build system, call package-config after including package data
286Ian Lynagh <igloo@earth.li>**20100504225035
287 Otherwise the $1_$2_HC_OPTS variable gets clobbered.
288]
289[runghc: flush stdout/stderr on an exception (#3890)
290Simon Marlow <marlowsd@gmail.com>**20100505133848
291 Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
292]
293[Remove the Unicode alternative for ".." (#3894)
294Simon Marlow <marlowsd@gmail.com>**20100505121202
295 Ignore-this: 2452cd67281667106f9169747b6d784f
296]
297[tidyup; no functional changes
298Simon Marlow <marlowsd@gmail.com>**20100505115015
299 Ignore-this: d0787e5cdeef1dee628682fa0a46019
300]
301[Make the running_finalizers flag task-local
302Simon Marlow <marlowsd@gmail.com>**20100505114947
303 Ignore-this: 345925d00f1dca203941b3c5d84c90e1
304 Fixes a bug reported by Lennart Augustsson, whereby we could get an
305 incorrect error from the RTS about re-entry from a finalizer,
306]
307[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
308Simon Marlow <marlowsd@gmail.com>**20100505114746
309 Ignore-this: efea04991d6feed04683a42232fc85da
310]
311[Allow filepath-1.2.*
312Simon Marlow <marlowsd@gmail.com>**20100505101139
313 Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
314]
315[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
316Simon Marlow <marlowsd@gmail.com>**20100505094534
317 Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
318]
319[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
320Simon Marlow <marlowsd@gmail.com>**20100505094506
321 Ignore-this: 302616931f61667030d77ddfbb02374e
322]
323[Fix build with GHC 6.10
324Ian Lynagh <igloo@earth.li>**20100504180302
325 In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
326 so we need to jump through some hoops to get the more general type.
327]
328[The libffi patches are no longer needed
329Ian Lynagh <igloo@earth.li>**20100504171603]
330[Use the in-tree windres; fixes trac #4032
331Ian Lynagh <igloo@earth.li>**20100504170941]
332[Print unfoldings on lambda-bound variables
333Simon PJ <simonpj@microsoft.com>**20100503181822
334 Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
335 
336 ...in the unusual case where they have one;
337 see Note [Case binders and join points] in Simplify.lhs
338]
339[Replace FiniteMap and UniqFM with counterparts from containers.
340Milan Straka <fox@ucw.cz>**20100503171315
341 Ignore-this: a021972239163dbf728284b19928cebb
342 
343 The original interfaces are kept. There is small performance improvement:
344 - when compiling for five nofib, we get following speedups:
345     Average                -----           -2.5%
346     Average                -----           -0.6%
347     Average                -----           -0.5%
348     Average                -----           -5.5%
349     Average                -----          -10.3%
350 - when compiling HPC ten times, we get:
351     switches                          oldmaps   newmaps
352     -O -fasm                          117.402s  116.081s (98.87%)
353     -O -fasm -fregs-graph             119.993s  118.735s (98.95%)
354     -O -fasm -fregs-iterative         120.191s  118.607s (98.68%)
355]
356[Make the demand analyser take account of lambda-bound unfoldings
357Simon PJ <simonpj@microsoft.com>**20100503151630
358 Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
359 
360 This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
361 in DmdAnal.
362 
363 I'm still not really happy with this lambda-bound-unfolding stuff.
364]
365[Fix dynamic libs on OS X, and enable them by default
366Ian Lynagh <igloo@earth.li>**20100503150302]
367[Switch back to using bytestring from the darcs repo; partially fixes #3855
368Ian Lynagh <igloo@earth.li>**20100502113458]
369[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
370Ian Lynagh <igloo@earth.li>**20100428150700]
371[Fix "make 2"
372Ian Lynagh <igloo@earth.li>**20100427162212
373 The new Makefile logic was enabling the stage 1 rules when stage=2,
374 so "make 2" was rebuilding stage 1.
375]
376[Inplace programs depend on their shell wrappers
377Ian Lynagh <igloo@earth.li>**20100427160038]
378[--make is now the default (#3515), and -fno-code works with --make (#3783)
379Simon Marlow <marlowsd@gmail.com>**20100427122851
380 Ignore-this: 33330474fa4703f32bf9997462b4bf3c
381 If the command line contains any Haskell source files, then we behave
382 as if --make had been given.
383 
384 The meaning of the -c flag has changed (back): -c now selects one-shot
385 compilation, but stops before linking.  However, to retain backwards
386 compatibility, -c is still allowed with --make, and means the same as
387 --make -no-link.  The -no-link flag has been un-deprecated.
388 
389 -fno-code is now allowed with --make (#3783); the fact that it was
390 disabled before was largely accidental, it seems.  We also had some
391 regressions in this area: it seems that -fno-code was causing a .hc
392 file to be emitted in certain cases.  I've tidied up the code, there
393 was no need for -fno-code to be a "mode" flag, as far as I can tell.
394 
395 -fno-code does not emit interface files, nor does it do recompilation
396 checking, as suggested in #3783.  This would make Haddock emit
397 interface files, for example, and I'm fairly sure we don't want to do
398 that.  Compiling with -fno-code is pretty quick anyway, perhaps we can
399 get away without recompilation checking.
400]
401[remove duplicate docs for -e in --help output (#4010)
402Simon Marlow <marlowsd@gmail.com>**20100426140642
403 Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
404]
405[workaround for #4003, fixes HEAD build with 6.12.2
406Simon Marlow <marlowsd@gmail.com>**20100426103428
407 Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
408]
409[Make sure all the clean rules are always included
410Ian Lynagh <igloo@earth.li>**20100424181823
411 In particular, this fixes a problem where stage3 bits weren't being cleaned
412]
413[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
414Ian Lynagh <igloo@earth.li>**20100424132830
415 We weren't getting sharedlibs on amd64/FreeBSD because of this
416]
417[Include DPH docs in bindists
418Ian Lynagh <igloo@earth.li>**20100424123101]
419[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
420Simon Marlow <marlowsd@gmail.com>**20100423124853
421 Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
422]
423[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
424Simon Marlow <marlowsd@gmail.com>**20100422213605
425 Ignore-this: 525c062d2456c224ec8d0e083edd3b55
426]
427[Add missing constant folding and optimisation for unsigned division
428Simon Marlow <marlowsd@gmail.com>**20100422213443
429 Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
430 Noticed by Denys Rtveliashvili <rtvd@mac.com>, see #4004
431]
432[Fix the GHC API link in the main doc index.html
433Ian Lynagh <igloo@earth.li>**20100422213226]
434[Give the right exit code in darcs-all
435Ian Lynagh <igloo@earth.li>**20100421171339
436 Our END block was calling system, which alters $?. So now we save and
437 restore it.
438]
439[Use StgWord64 instead of ullong
440Ian Lynagh <igloo@earth.li>**20100421162336
441 This patch also fixes ullong_format_string (renamed to showStgWord64)
442 so that it works with values outside the 32bit range (trac #3979), and
443 simplifies the without-commas case.
444]
445[Implement try10Times in Makefile
446Ian Lynagh <igloo@earth.li>**20100420165909
447 Avoid using seq, as FreeBSD has jot instead.
448]
449[Fix crash in non-threaded RTS on Windows
450Simon Marlow <marlowsd@gmail.com>**20100420122125
451 Ignore-this: 28b0255a914a8955dce02d89a7dfaca
452 The tso->block_info field is now overwritten by pushOnRunQueue(), but
453 stg_block_async_info was assuming that it still held a pointer to the
454 StgAsyncIOResult.  We must therefore save this value somewhere safe
455 before putting the TSO on the run queue.
456]
457[Expand the scope of the event_buf_mutex to cover io_manager_event
458Simon Marlow <marlowsd@gmail.com>**20100420122026
459 Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
460 I once saw a failure that I think was due to a race on
461 io_manager_event, this should fix it.
462]
463[Flags -auto and -auto-all operate only on functions not marked INLINE.
464Milan Straka <fox@ucw.cz>**20100331191050
465 Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
466]
467[Spelling correction for LANGUAGE pragmas
468Max Bolingbroke <batterseapower@hotmail.com>**20100413192825
469 Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
470]
471[Update the user guide so it talks about the newer "do rec" notation everywhere
472Ian Lynagh <igloo@earth.li>**20100416205416
473 Some of the problems highlighted in trac #3968.
474]
475[Fix typo
476Ian Lynagh <igloo@earth.li>**20100416205412]
477[Fix Trac #3950: unifying types of different kinds
478simonpj@microsoft.com**20100412151845
479 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
480 
481 I was assuming that the unifer only unified types of the
482 same kind, but now we can "defer" unsolved constraints that
483 invariant no longer holds.  Or at least is's more complicated
484 to ensure. 
485 
486 This patch takes the path of not assuming the invariant, which
487 is simpler and more robust.  See
488 Note [Mismatched type lists and application decomposition]
489]
490[Fix Trac #3943: incorrect unused-variable warning
491simonpj@microsoft.com**20100412151630
492 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
493 
494 In fixing this I did the usual little bit of refactoring
495]
496[Convert boot and boot-pkgs to perl
497Ian Lynagh <igloo@earth.li>**20100415143919
498 This stops us having to worry about sh/sed/... portability.
499]
500[Use $(MAKE), not make, when recursively calling make
501Ian Lynagh <igloo@earth.li>**20100415121453]
502[Remove the ghc_ge_609 makefile variables
503Ian Lynagh <igloo@earth.li>**20100412235658
504 They are now guaranteed to be YES
505]
506[Increase the minimum version number required to 6.10 in configure.ac
507Ian Lynagh <igloo@earth.li>**20100412235313]
508[The bootstrapping compiler is now required to be > 609
509Ian Lynagh <igloo@earth.li>**20100409161046]
510[Handle IND_STATIC in isRetainer
511Ian Lynagh <igloo@earth.li>**20100409104207
512 IND_STATIC used to be an error, but at the moment it can happen
513 as isAlive doesn't look through IND_STATIC as it ignores static
514 closures. See trac #3956 for a program that hit this error.
515]
516[Add Data and Typeable instances to HsSyn
517David Waern <david.waern@gmail.com>**20100330011020
518 Ignore-this: c3f2717207b15539fea267c36b686e6a
519 
520 The instances (and deriving declarations) have been taken from the ghc-syb
521 package.
522]
523[Fix for derefing ThreadRelocated TSOs in MVar operations
524Simon Marlow <marlowsd@gmail.com>**20100407092824
525 Ignore-this: 94dd7c68a6094eda667e2375921a8b78
526]
527[sanity check fix
528Simon Marlow <marlowsd@gmail.com>**20100407092746
529 Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
530]
531[get the reg liveness right in the putMVar# heap check
532Simon Marlow <marlowsd@gmail.com>**20100407092724
533 Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
534]
535[initialise the headers of MSG_BLACKHOLE objects properly
536Simon Marlow <marlowsd@gmail.com>**20100407081712
537 Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
538]
539[initialise the headers of MVAR_TSO_QUEUE objects properly
540Simon Marlow <marlowsd@gmail.com>**20100407081514
541 Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
542]
543[undo debugging code
544Simon Marlow <marlowsd@gmail.com>**20100406142740
545 Ignore-this: 323c2248f817b6717c19180482fc4b00
546]
547[putMVar#: fix reg liveness in the heap check
548Simon Marlow <marlowsd@gmail.com>**20100406135832
549 Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
550]
551[account for the new BLACKHOLEs in the GHCi debugger
552Simon Marlow <marlowsd@gmail.com>**20100406133406
553 Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
554]
555[don't forget to deRefTSO() in tryWakeupThread()
556Simon Marlow <marlowsd@gmail.com>**20100406130411
557 Ignore-this: 171d57c4f8653835dec0b69f9be9881c
558]
559[Fix bug in popRunQueue
560Simon Marlow <marlowsd@gmail.com>**20100406091453
561 Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
562]
563[fix bug in migrateThread()
564Simon Marlow <marlowsd@gmail.com>**20100401105840
565 Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
566]
567[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
568Simon Marlow <marlowsd@gmail.com>**20100401093519
569 Ignore-this: 95f2480c8a45139835eaf5610217780b
570 These are no longer used: once upon a time they used to have different
571 layout from IND and IND_PERM respectively, but that is no longer the
572 case since we changed the remembered set to be an array of addresses
573 instead of a linked list of closures.
574]
575[Change the representation of the MVar blocked queue
576Simon Marlow <marlowsd@gmail.com>**20100401091605
577 Ignore-this: 20a35bfabacef2674df362905d7834fa
578 
579 The list of threads blocked on an MVar is now represented as a list of
580 separately allocated objects rather than being linked through the TSOs
581 themselves.  This lets us remove a TSO from the list in O(1) time
582 rather than O(n) time, by marking the list object.  Removing this
583 linear component fixes some pathalogical performance cases where many
584 threads were blocked on an MVar and became unreachable simultaneously
585 (nofib/smp/threads007), or when sending an asynchronous exception to a
586 TSO in a long list of thread blocked on an MVar.
587 
588 MVar performance has actually improved by a few percent as a result of
589 this change, slightly to my surprise.
590 
591 This is the final cleanup in the sequence, which let me remove the old
592 way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
593 new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent).  It
594 is now the case that only the Capability that owns a TSO may modify
595 its state (well, almost), and this simplifies various things.  More of
596 the RTS is based on message-passing between Capabilities now.
597]
598[eliminate some duplication with a bit of CPP
599Simon Marlow <marlowsd@gmail.com>**20100330154355
600 Ignore-this: 838f7d341f096ca14c86ab9c81193e36
601]
602[Make ioManagerDie() idempotent
603Simon Marlow <marlowsd@gmail.com>**20100401100705
604 Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
605 Avoids screeds of "event buffer overflowed; event dropped" in
606 conc059(threaded1).
607]
608[Move a thread to the front of the run queue when another thread blocks on it
609Simon Marlow <marlowsd@gmail.com>**20100329144521
610 Ignore-this: c518ff0d41154680edc811d891826a29
611 This fixes #3838, and was made possible by the new BLACKHOLE
612 infrastructure.  To allow reording of the run queue I had to make it
613 doubly-linked, which entails some extra trickiness with regard to
614 GC write barriers and suchlike.
615]
616[remove non-existent MUT_CONS symbols
617Simon Marlow <marlowsd@gmail.com>**20100330152600
618 Ignore-this: 885628257a9d03f2ece2a754d993014a
619]
620[change throwTo to use tryWakeupThread rather than unblockOne
621Simon Marlow <marlowsd@gmail.com>**20100329144613
622 Ignore-this: 10ad4965e6c940db71253f1c72218bbb
623]
624[tiny GC optimisation
625Simon Marlow <marlowsd@gmail.com>**20100329144551
626 Ignore-this: 9e095b9b73fff0aae726f9937846ba92
627]
628[New implementation of BLACKHOLEs
629Simon Marlow <marlowsd@gmail.com>**20100329144456
630 Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
631 
632 This replaces the global blackhole_queue with a clever scheme that
633 enables us to queue up blocked threads on the closure that they are
634 blocked on, while still avoiding atomic instructions in the common
635 case.
636 
637 Advantages:
638 
639  - gets rid of a locked global data structure and some tricky GC code
640    (replacing it with some per-thread data structures and different
641    tricky GC code :)
642 
643  - wakeups are more prompt: parallel/concurrent performance should
644    benefit.  I haven't seen anything dramatic in the parallel
645    benchmarks so far, but a couple of threading benchmarks do improve
646    a bit.
647 
648  - waking up a thread blocked on a blackhole is now O(1) (e.g. if
649    it is the target of throwTo).
650 
651  - less sharing and better separation of Capabilities: communication
652    is done with messages, the data structures are strictly owned by a
653    Capability and cannot be modified except by sending messages.
654 
655  - this change will utlimately enable us to do more intelligent
656    scheduling when threads block on each other.  This is what started
657    off the whole thing, but it isn't done yet (#3838).
658 
659 I'll be documenting all this on the wiki in due course.
660 
661]
662[Fix warnings (allow pushOnRunQueue() to not be inlined)
663Simon Marlow <marlowsd@gmail.com>**20100401114559
664 Ignore-this: f40bfbfad70a5165a946d11371605b7d
665]
666[remove out of date comment
667Simon Marlow <marlowsd@gmail.com>**20100401105853
668 Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
669]
670[tidy up spacing in stderr traces
671Simon Marlow <marlowsd@gmail.com>**20100326163122
672 Ignore-this: 16558b0433a274be217d4bf39aa4946
673]
674[Fix an assertion that was not safe when running in parallel
675Simon Marlow <marlowsd@gmail.com>**20100325143656
676 Ignore-this: cad08fb8900eb3a475547af0189fcc47
677]
678[Never jump directly to a thunk's entry code, even if it is single-entry
679Simon Marlow <marlowsd@gmail.com>**20100325114847
680 Ignore-this: 938da172c06a97762ef605c8fccfedf1
681 I don't think this fixes any bugs as we don't have single-entry thunks
682 at the moment, but it could cause problems for parallel execution if
683 we ever did re-introduce update avoidance.
684]
685[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
686Milan Straka <fox@ucw.cz>**20100331153626
687 Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
688]
689[Add -pa and -V to the documentation of time profiling options.
690Milan Straka <fox@ucw.cz>**20100329191121
691 Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
692]
693[Keep gcc 4.5 happy
694Simon Marlow <marlowsd@gmail.com>**20100330120425
695 Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
696]
697[Fix warning compiling Linker.c for PPC Mac
698naur@post11.tele.dk**20100403182355
699 Ignore-this: e2d2448770c9714ce17dd6cf3e297063
700 The warning message eliminated is:
701 > rts/Linker.c:4756:0:
702 >      warning: nested extern declaration of 'symbolsWithoutUnderscore'
703]
704[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
705naur@post11.tele.dk**20100403181656
706 Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
707 The error messages eliminated are:
708 > compiler/nativeGen/AsmCodeGen.lhs:875:31:
709 >     Not in scope: `mkRtsCodeLabel'
710 > compiler/nativeGen/AsmCodeGen.lhs:879:31:
711 >     Not in scope: `mkRtsCodeLabel'
712 > compiler/nativeGen/AsmCodeGen.lhs:883:31:
713 >     Not in scope: `mkRtsCodeLabel'
714]
715[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
716naur@post11.tele.dk**20100403180643
717 Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
718 The error message eliminated is:
719 > compiler/nativeGen/AsmCodeGen.lhs:637:16:
720 >     Not in scope: data constructor `DestBlockId'
721]
722[Fix boot-pkgs's sed usage to work with Solaris's sed
723Ian Lynagh <igloo@earth.li>**20100401153441]
724[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
725Ian Lynagh <igloo@earth.li>**20100331144707
726 This seems to fix this failure:
727 [...]
728 ** BUILD SUCCEEDED **
729 rm -f -f GHC-system.pmdoc/*-contents.xml
730 /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
731              -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
732 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
733 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
734 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
735 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
736 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
737     2511962091,
738     2447007291,
739     2511961547,
740     2511961610,
741     2432803204,
742     453371,
743     447720,
744     436209,
745     435510,
746     9986,
747     9918
748 )
749 make[1]: *** [framework-pkg] Trace/BPT trap
750 make: *** [framework-pkg] Error 2
751]
752[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
753Ian Lynagh <igloo@earth.li>**20100331161302
754 Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
755]
756[Avoid a non-portable use of tar reported by Roman Leshchinskiy
757Ian Lynagh <igloo@earth.li>**20100330145802]
758[Don't install EXTRA_PACKAGES by default
759Simon Marlow <marlowsd@gmail.com>**20100330142714
760 Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
761]
762[fix a non-portable printf format
763Simon Marlow <marlowsd@gmail.com>**20100330134437
764 Ignore-this: d41c23c54ec29654cb2049de1e588570
765]
766[avoid single quote in #error
767Simon Marlow <marlowsd@gmail.com>**20100330120346
768 Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
769]
770[use FMT_Word64 instead of locally-defined version
771Simon Marlow <marlowsd@gmail.com>**20100330114650
772 Ignore-this: 82697b8095dffb3a8e196c687006ece0
773]
774[remove old/unused DotnetSupport and GhcLibsWithUnix
775Simon Marlow <marlowsd@gmail.com>**20100330123732
776 Ignore-this: c68814868b3671abdc369105bbeafe6c
777]
778[fix return type cast in f.i.wrapper when using libffi (#3516)
779Simon Marlow <marlowsd@gmail.com>**20100329154220
780 Ignore-this: f898eb8c9ae2ca2009e539735b92c438
781 
782 Original fix submitted by
783   Sergei Trofimovich <slyfox@community.haskell.org>
784 modified by me:
785  - exclude 64-bit types
786  - compare uniques, not strings
787  - #include "ffi.h" is conditional
788]
789[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
790Simon Marlow <marlowsd@gmail.com>**20100329135734
791 Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
792 Submitted by: Sergei Trofimovich <slyfox@community.haskell.org>
793 Re-recorded against HEAD.
794]
795[avoid a fork deadlock (see comments)
796Simon Marlow <marlowsd@gmail.com>**20100329132329
797 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
798]
799[tidy up the end of the all_tasks list after forking
800Simon Marlow <marlowsd@gmail.com>**20100329132253
801 Ignore-this: 819d679875be5f344e816210274d1c29
802]
803[Add a 'setKeepCAFs' external function (#3900)
804Simon Marlow <marlowsd@gmail.com>**20100329110036
805 Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
806]
807[Explicitly check whether ar supports the @file syntax
808Ian Lynagh <igloo@earth.li>**20100329123325
809 rather than assuming that all GNU ar's do.
810 Apparently OpenBSD's older version doesn't.
811]
812[Fix the format specifier for Int64/Word64 on Windows
813Ian Lynagh <igloo@earth.li>**20100327182126
814 mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
815 than 64-bit. We use %I64u/%I64d instead.
816]
817[Fix the ghci startmenu item
818Ian Lynagh <igloo@earth.li>**20100326235934
819 I'm not sure what changed, but it now doesn't work for me without
820 the "Start in" field being set.
821]
822[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
823Ian Lynagh <igloo@earth.li>**20100326155917]
824[Add a licence file for the Windows installer to use
825Ian Lynagh <igloo@earth.li>**20100326155130]
826[Add gcc-g++ to the inplace mingw installation; fixes #3893
827Ian Lynagh <igloo@earth.li>**20100326154714]
828[Add the licence file to the Windows installer. Fixes #3934
829Ian Lynagh <igloo@earth.li>**20100326152449]
830[Quote the paths to alex and happy in configure
831Ian Lynagh <igloo@earth.li>**20100325143449
832 Ignore-this: d6d6e1a250f88985bbeea760e63a79db
833]
834[Use </> rather than ++ "/"
835Ian Lynagh <igloo@earth.li>**20100325133237
836 This stops us generating paths like
837     c:\foo\/ghc460_0/ghc460_0.o
838 which windres doesn't understand.
839]
840[Append $(exeext) to utils/ghc-pkg_dist_PROG
841Ian Lynagh <igloo@earth.li>**20100324233447
842 Fixes bindist creation
843]
844[A sanity check
845Simon Marlow <marlowsd@gmail.com>**20100325110500
846 Ignore-this: 3b3b76d898c822456857e506b7531e65
847]
848[do_checks: do not set HpAlloc if the stack check fails
849Simon Marlow <marlowsd@gmail.com>**20100325110328
850 Ignore-this: 899ac8c29ca975d03952dbf4608d758
851 
852 This fixes a very rare heap corruption bug, whereby
853 
854  - a context switch is requested, which sets HpLim to zero
855    (contextSwitchCapability(), called by the timer signal or
856    another Capability).
857 
858  - simultaneously a stack check fails, in a code fragment that has
859    both a stack and a heap check.
860 
861 The RTS then assumes that a heap-check failure has occurred and
862 subtracts HpAlloc from Hp, although in fact it was a stack-check
863 failure and retreating Hp will overwrite valid heap objects.  The bug
864 is that HpAlloc should only be set when Hp has been incremented by the
865 heap check.  See comments in rts/HeapStackCheck.cmm for more details.
866 
867 This bug is probably incredibly rare in practice, but I happened to be
868 working on a test that triggers it reliably:
869 concurrent/should_run/throwto001, compiled with -O -threaded, args 30
870 300 +RTS -N2, run repeatedly in a loop.
871]
872[comments and formatting only
873Simon Marlow <marlowsd@gmail.com>**20100325104617
874 Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
875]
876[Change how perl scripts get installed; partially fixes #3863
877Ian Lynagh <igloo@earth.li>**20100324171422
878 We now regenerate them when installing, which means the path for perl
879 doesn't get baked in
880]
881[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
882Ian Lynagh <igloo@earth.li>**20100324171408
883 This means we don't rely on baking a path to gcc into the executable
884]
885[Quote the ar path in configure
886Ian Lynagh <igloo@earth.li>**20100324162043]
887[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
888Ian Lynagh <igloo@earth.li>**20100324145048]
889[Remove unused cCONTEXT_DIFF
890Ian Lynagh <igloo@earth.li>**20100324145013]
891[Remove unused cEnableWin32DLLs
892Ian Lynagh <igloo@earth.li>**20100324144841]
893[Remove unused cGHC_CP
894Ian Lynagh <igloo@earth.li>**20100324144656]
895[Fix the build for non-GNU-ar
896Ian Lynagh <igloo@earth.li>**20100324132907]
897[Tweak the Makefile code for making .a libs; fixes trac #3642
898Ian Lynagh <igloo@earth.li>**20100323221325
899 The main change is that, rather than using "xargs ar" we now put
900 all the filenames into a file, and do "ar @file". This means that
901 ar adds all the files at once, which works around a problem where
902 files with the same basename in a later invocation were overwriting
903 the existing file in the .a archive.
904]
905[Enable shared libraries on Windows; fixes trac #3879
906Ian Lynagh <igloo@earth.li>**20100320231414
907 Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
908]
909[Add the external core PDF to the new build system
910Ian Lynagh <igloo@earth.li>**20100321161909]
911[Allow specifying $threads directly when validating
912Ian Lynagh <igloo@earth.li>**20100321112835]
913[Remove LazyUniqFM; fixes trac #3880
914Ian Lynagh <igloo@earth.li>**20100320213837]
915[UNDO: slight improvement to scavenging ...
916Simon Marlow <marlowsd@gmail.com>**20100319153413
917 Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
918 
919 Accidnetally pushed this patch which, while it validates, isn't
920 correct.
921 
922 rolling back:
923 
924 Fri Mar 19 11:21:27 GMT 2010  Simon Marlow <marlowsd@gmail.com>
925   * slight improvement to scavenging of update frames when a collision has occurred
926 
927     M ./rts/sm/Scav.c -19 +15
928]
929[slight improvement to scavenging of update frames when a collision has occurred
930Simon Marlow <marlowsd@gmail.com>**20100319112127
931 Ignore-this: 6de2bb9614978975f17764a0f259d9bf
932]
933[Don't install the utf8-string package
934Ian Lynagh <igloo@earth.li>**20100317212709]
935[Don't use -Bsymbolic when linking the RTS
936Ian Lynagh <igloo@earth.li>**20100316233357
937 This makes the RTS hooks work when doing dynamic linking
938]
939[Fix Trac #3920: Template Haskell kinds
940simonpj@microsoft.com**20100317123519
941 Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
942 
943 Fix two places where we were doing foldl instead of foldr
944 after decomposing a Kind.  Strange that the same bug appears
945 in two quite different places!
946]
947[copy_tag_nolock(): fix write ordering and add a write_barrier()
948Simon Marlow <marlowsd@gmail.com>**20100316143103
949 Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
950 
951 Fixes a rare crash in the parallel GC.
952 
953 If we copy a closure non-atomically during GC, as we do for all
954 immutable values, then before writing the forwarding pointer we better
955 make sure that the closure itself is visible to other threads that
956 might follow the forwarding pointer.  I imagine this doesn't happen
957 very often, but I just found one case of it: in scavenge_stack, the
958 RET_FUN case, after evacuating ret_fun->fun we then follow it and look
959 up the info pointer.
960]
961[Add sliceP mapping to vectoriser builtins
962benl@ouroborus.net**20100316060517
963 Ignore-this: 54c3cafff584006b6fbfd98124330aa3
964]
965[Comments only
966benl@ouroborus.net**20100311064518
967 Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
968]
969[TAG 2010-03-16
970Ian Lynagh <igloo@earth.li>**20100316005137
971 Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
972]
973Patch bundle hash:
9746504b7b03d50d62c0031c7f96399a4b10022a697
975-----BEGIN PGP SIGNATURE-----
976Version: GnuPG v1.4.10 (Darwin)
977
978iD8DBQFL5XgkFOecpxqG73IRAtd0AJ9/zz7RfFaEGMlp2lj3CFENrrLPpQCgoEMZ
979STAGwu43SlZTSvuGOlI4n9s=
980=86eP
981-----END PGP SIGNATURE-----