Ticket #4848: solaris-shared-libs-support.dpatch

File solaris-shared-libs-support.dpatch, 34.5 KB (added by kgardas, 3 years ago)

Darcs patch for i386/solaris support for shared libraries including patch comment

Line 
1
2Hello,
3
4following three patches add support for shared libs on i386/solaris2
5platform. One patch fixes CPP misdetection of Solaris in NCG. I've
6used this oportunity to rename OSSolaris to OSSolaris2 to be
7consistent with other OSes there. Feel free to stay with OSSolaris if
8you prefer, but then the patch will require small
9modification. Another provides shared libs support which was really
10easy to do thanks to Solaris being ELF system and thanks to GHC ELF
11support in place. The last fixes linker errors which we get when we
12try to link code compiled with -fno-PIC into shared object on
13Solaris. i.e. we cannot use this RTS speed hack on Solaris.
14
15Any chance those patches will be reviewed/incorporated?
16
17Thanks,
18Karel
19
203 patches for repository http://darcs.haskell.org/ghc:
21
22Fri Dec 17 09:45:10 CET 2010  Karel Gardas <karel.gardas@centrum.cz>
23  * fix CPP detection of Solaris in NCG
24
25Fri Dec 17 09:46:17 CET 2010  Karel Gardas <karel.gardas@centrum.cz>
26  * provide shared libraries support on i386-unknown-solaris2 platform
27
28Fri Dec 17 09:51:33 CET 2010  Karel Gardas <karel.gardas@centrum.cz>
29  * do not compile part of shared lib RTS with -fno-PIC on Solaris
30
31New patches:
32
33[fix CPP detection of Solaris in NCG
34Karel Gardas <karel.gardas@centrum.cz>**20101217084510
35 Ignore-this: 9d1ce59d469294eab1f0cbc697e48d69
36] {
37hunk ./compiler/nativeGen/Platform.hs 49
38        = OSUnknown
39        | OSLinux
40        | OSDarwin
41-       | OSSolaris
42+       | OSSolaris2
43        | OSMinGW32
44        | OSFreeBSD
45        | OSOpenBSD
46hunk ./compiler/nativeGen/Platform.hs 95
47 defaultTargetOS        = OSLinux
48 #elif darwin_TARGET_OS
49 defaultTargetOS        = OSDarwin
50-#elif solaris_TARGET_OS
51-defaultTargetOS        = OSSolaris
52+#elif solaris2_TARGET_OS
53+defaultTargetOS        = OSSolaris2
54 #elif mingw32_TARGET_OS
55 defaultTargetOS        = OSMinGW32
56 #elif freebsd_TARGET_OS
57}
58[provide shared libraries support on i386-unknown-solaris2 platform
59Karel Gardas <karel.gardas@centrum.cz>**20101217084617
60 Ignore-this: b6079c6a39a71200a1ee863573e40828
61] {
62hunk ./compiler/HsVersions.h 20
63 #include "ghc_boot_platform.h"
64 
65 /* This macro indicates that the target OS supports ELF-like shared libraries */
66-#if linux_TARGET_OS || freebsd_TARGET_OS || openbsd_TARGET_OS
67+#if linux_TARGET_OS || freebsd_TARGET_OS || openbsd_TARGET_OS || solaris2_TARGET_OS
68 #define elf_OBJ_FORMAT 1
69 #endif
70 
71hunk ./compiler/nativeGen/Platform.hs 61
72 osElfTarget OSLinux   = True
73 osElfTarget OSFreeBSD = True
74 osElfTarget OSOpenBSD = True
75+osElfTarget OSSolaris2 = True
76 osElfTarget _         = False
77 
78 -- | This is the target platform as far as the #ifdefs are concerned.
79hunk ./mk/config.mk.in 112
80        i386-unknown-freebsd x86_64-unknown-freebsd \
81        i386-unknown-openbsd x86_64-unknown-openbsd \
82        i386-unknown-mingw32 \
83+       i386-unknown-solaris2 \
84        i386-apple-darwin powerpc-apple-darwin),YES,NO)
85 
86 # Build a compiler that will build *unregisterised* libraries and
87}
88[do not compile part of shared lib RTS with -fno-PIC on Solaris
89Karel Gardas <karel.gardas@centrum.cz>**20101217085133
90 Ignore-this: 8c8dbb45cac0578a58a3557f1e03c66
91] {
92hunk ./rts/ghc.mk 312
93 # by the default small memory can't be resolved at runtime).  So we
94 # only do this on i386.
95 #
96-# This apparently doesn't work on OS X (Darwin) where we get errors of
97-# the form
98+# This apparently doesn't work on OS X (Darwin) nor on Solaris.
99+# On Darwin we get errors of the form
100 #
101 #  ld: absolute addressing (perhaps -mdynamic-no-pic) used in _stg_ap_0_fast from rts/dist/build/Apply.dyn_o not allowed in slidable image
102 #
103hunk ./rts/ghc.mk 321
104 #
105 #  ld: warning codegen in _stg_ap_pppv_fast (offset 0x0000005E) prevents image from loading in dyld shared cache
106 #
107+# On Solaris we get errors like:
108+#
109+# Text relocation remains                         referenced
110+#     against symbol                  offset      in file
111+# .rodata (section)                   0x11        rts/dist/build/Apply.dyn_o
112+#   ...
113+# ld: fatal: relocations remain against allocatable but non-writable sections
114+# collect2: ld returned 1 exit status
115+
116+ifeq "$(TargetArch_CPP)" "i386"
117+i386_SPEED_HACK := "YES"
118+ifeq "$(TargetOS_CPP)" "darwin"
119+i386_SPEED_HACK := "NO"
120+endif
121+ifeq "$(TargetOS_CPP)" "solaris2"
122+i386_SPEED_HACK := "NO"
123+endif
124+endif
125+
126 ifeq "$(TargetArch_CPP)" "i386"
127hunk ./rts/ghc.mk 341
128-ifneq "$(TargetOS_CPP)" "darwin"
129+ifeq "$(i386_SPEED_HACK)" "YES"
130 rts/sm/Evac_HC_OPTS           += -fno-PIC
131 rts/sm/Evac_thr_HC_OPTS       += -fno-PIC
132 rts/sm/Scav_HC_OPTS           += -fno-PIC
133}
134
135Context:
136
137[refactor and tidy up the section on RTS options
138Simon Marlow <marlowsd@gmail.com>**20101216123151
139 Ignore-this: 9cdafd687351d8a3ff879b64347f85d3
140]
141[Related to #4826: Some minor tweaks to the wording of the User Guide, section 4.16
142Orphi <MathematicalOrchid@hotmail.com>**20101209170440
143 Ignore-this: c3d942d58594be7d4c2eb4dc3a22f19
144]
145[FIX #4826 partial: Add -rtsopts and -with-rtsopts to User Guide section 4.11.6
146Orphi <MathematicalOrchid@hotmail.com>**20101209165152
147 Ignore-this: 2fc1c0abbb783695773ab0f9c013bbaa
148]
149[FIX #4826 partially: Change -f to -? in User Guide section F4.16
150Orphi <MathematicalOrchid@hotmail.com>**20101209144148
151 Ignore-this: 73410b350e80c8943ae722dec8dea44b
152]
153[fix #3910
154Simon Marlow <marlowsd@gmail.com>**20101216114452
155 Ignore-this: 410e95e188344a523520e192a3fb58ea
156]
157[remove an optimisation that wasn't
158Simon Marlow <marlowsd@gmail.com>**20101215152656
159 Ignore-this: e8413f58e8292c6e7463087d885b3a7d
160]
161[fix a warning
162Simon Marlow <marlowsd@gmail.com>**20101216105723
163 Ignore-this: ed6024378021a698ce638267ed3e21ab
164]
165[use EXTERN_INLINE instead of STATIC_INLINE to avoid some gcc warnings
166Simon Marlow <marlowsd@gmail.com>**20101216105709
167 Ignore-this: d4e1586cf318883a8e611b55df7fbf10
168]
169[remove dead code
170Simon Marlow <marlowsd@gmail.com>**20101216104944
171 Ignore-this: 97a04a3e37c1b28abc222a28bab3d17d
172]
173[fix retainer profiling: add missing case for TSO
174Simon Marlow <marlowsd@gmail.com>**20101216103900
175 Ignore-this: 11bda81ac159f638d719c1f6177702fb
176]
177[add a missing STACK case
178Simon Marlow <marlowsd@gmail.com>**20101216102100
179 Ignore-this: ac1c036b5cbf4209b1d10b6ab1c83f27
180]
181[Remove code that is dead now that we need >= 6.12 to build
182Ian Lynagh <igloo@earth.li>**20101215201006]
183[fix for large stack allocations
184Simon Marlow <marlowsd@gmail.com>**20101215152419
185 Ignore-this: d9aca17d68bd99214c126989a2318e79
186]
187[Implement stack chunks and separate TSO/STACK objects
188Simon Marlow <marlowsd@gmail.com>**20101215120843
189 Ignore-this: 73fa9460314d4a4e54456af12bef7960
190 
191 This patch makes two changes to the way stacks are managed:
192 
193 1. The stack is now stored in a separate object from the TSO.
194 
195 This means that it is easier to replace the stack object for a thread
196 when the stack overflows or underflows; we don't have to leave behind
197 the old TSO as an indirection any more.  Consequently, we can remove
198 ThreadRelocated and deRefTSO(), which were a pain.
199 
200 This is obviously the right thing, but the last time I tried to do it
201 it made performance worse.  This time I seem to have cracked it.
202 
203 2. Stacks are now represented as a chain of chunks, rather than
204    a single monolithic object.
205 
206 The big advantage here is that individual chunks are marked clean or
207 dirty according to whether they contain pointers to the young
208 generation, and the GC can avoid traversing clean stack chunks during
209 a young-generation collection.  This means that programs with deep
210 stacks will see a big saving in GC overhead when using the default GC
211 settings.
212 
213 A secondary advantage is that there is much less copying involved as
214 the stack grows.  Programs that quickly grow a deep stack will see big
215 improvements.
216 
217 In some ways the implementation is simpler, as nothing special needs
218 to be done to reclaim stack as the stack shrinks (the GC just recovers
219 the dead stack chunks).  On the other hand, we have to manage stack
220 underflow between chunks, so there's a new stack frame
221 (UNDERFLOW_FRAME), and we now have separate TSO and STACK objects.
222 The total amount of code is probably about the same as before.
223 
224 There are new RTS flags:
225 
226    -ki<size> Sets the initial thread stack size (default 1k)  Egs: -ki4k -ki2m
227    -kc<size> Sets the stack chunk size (default 32k)
228    -kb<size> Sets the stack chunk buffer size (default 1k)
229 
230 -ki was previously called just -k, and the old name is still accepted
231 for backwards compatibility.  These new options are documented.
232]
233[comments on SRC_HC_OPTS (#4829)
234Simon Marlow <marlowsd@gmail.com>**20101214101340
235 Ignore-this: e2bdec00f07b68e82837e77a4faf6514
236]
237[fix another sanity error, and refactor/tidy up
238Simon Marlow <marlowsd@gmail.com>**20101209163919
239 Ignore-this: d5ce953ac78e90fc0e22cd9848d26e2e
240]
241[Fix a bug in functorLikeTraverse, which was giving wrong answer for tuples
242simonpj@microsoft.com**20101215123725
243 Ignore-this: 560220e92429b5b1a6197a62f94a4ff2
244 
245 This bug led to Trac #4816, which is hereby fixed
246]
247[Improve printing for -ddump-deriv
248simonpj@microsoft.com**20101215121955
249 Ignore-this: 3181c948c4c2471bd99b32c5ee487a1e
250]
251[Tighten up what it means to be an "enumeration data constructor"
252simonpj@microsoft.com**20101215121927
253 Ignore-this: 459b3f9f7994a13094ed87b0768b33a8
254 
255 See Note [Enumeration types] in TyCon, and comments in Trac #4528
256]
257[Allow enumerations to have phantom arguments.
258simonpj@microsoft.com**20101215121817
259 Ignore-this: 32ef8cb869e6e38c2e43b3ae87b1b9a8
260 
261 The bytecode generator was being too eager.
262 Fixes Trac #4528, or rather, a near variant.
263]
264[Instance declaration overlap allowed if *either* has -XOverlappingInstances
265simonpj@microsoft.com**20101214180500
266 Ignore-this: f1b1492541a7e0464ebc6adb45510a2e
267 
268 This satisfies Trac #3877.  Documentation is changed too.
269 I'm not sure if this should go in 7.0.2.
270]
271[Fix Trac #4841: behave right with TypeSynonymInstances and NoFlexibleInstances
272simonpj@microsoft.com**20101214174755
273 Ignore-this: dccd707fdca84904b7885170a296ecb6
274 
275 When we have TypeSynonymInstances without FlexibleInstances we should still
276 insist on a H98-style instance head, after looking through the synonym.
277 
278 This patch also make FlexibleInstances imply TypeSynonymInstances.  Anything
279 else is a bit awkward, and not very useful.
280 
281]
282[Fix Trac #3731: more superclass subtlety (sigh)
283simonpj@microsoft.com**20101214180344
284 Ignore-this: f4168e59f3164303ba7be022ba19c37b
285 
286 I will add more comments, but I want to commit this tonight,
287 so the overnight builds get it.
288]
289[Less verbose debug print
290simonpj@microsoft.com**20101214180248
291 Ignore-this: e405e8545763e913155abe43daf7e36c
292]
293[Wibble to InstEnv.instanceHead
294simonpj@microsoft.com**20101214082939
295 Ignore-this: 851db517f8638a0aeb7ad461298f7e9f
296 
297 Fixes an accidental glitch in T1835
298]
299[Remove dead code now that we require the bootstrapping compiler be >= 6.12
300Ian Lynagh <igloo@earth.li>**20101214011011]
301[GHC 6.12 is now needed to build the HEAD
302Ian Lynagh <igloo@earth.li>**20101214010923]
303[Add libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to mingw tarballs
304Ian Lynagh <igloo@earth.li>**20101213223153]
305[Fix recursive superclasses (again).  Fixes Trac #4809.
306simonpj@microsoft.com**20101213171511
307 Ignore-this: b91651397918fd8f0183812f9a070073
308 
309 This patch finally deals with the super-delicate question of
310 superclases in possibly-recursive dictionaries.  The key idea
311 is the DFun Superclass Invariant (see TcInstDcls):
312 
313      In the body of a DFun, every superclass argument to the
314      returned dictionary is
315        either   * one of the arguments of the DFun,
316        or       * constant, bound at top level
317 
318 To establish the invariant, we add new "silent" superclass
319 argument(s) to each dfun, so that the dfun does not do superclass
320 selection internally.  There's a bit of hoo-ha to make sure that
321 we don't print those silent arguments in error messages; a knock
322 on effect was a change in interface-file format.
323 
324 A second change is that instead of the complex and fragile
325 "self dictionary binding" in TcInstDcls and TcClassDcl,
326 using the same mechanism for existential pattern bindings.
327 See Note [Subtle interaction of recursion and overlap] in TcInstDcls
328 and Note [Binding when looking up instances] in InstEnv.
329 
330 Main notes are here:
331 
332   * Note [Silent Superclass Arguments] in TcInstDcls,
333     including the DFun Superclass Invariant
334 
335 Main code changes are:
336 
337   * The code for MkId.mkDictFunId and mkDictFunTy
338 
339   * DFunUnfoldings get a little more complicated;
340     their arguments are a new type DFunArg (in CoreSyn)
341 
342   * No "self" argument in tcInstanceMethod
343   * No special tcSimplifySuperClasss
344   * No "dependents" argument to EvDFunApp
345 
346 IMPORTANT
347    It turns out that it's quite tricky to generate the right
348    DFunUnfolding for a specialised dfun, when you use SPECIALISE
349    INSTANCE.  For now I've just commented it out (in DsBinds) but
350    that'll lose some optimisation, and I need to get back to
351    this.
352]
353[Doing the smart canonicalization only if we are not simplifying a Rule LHS.
354dimitris@microsoft.com**20101210132221
355 Also, same thing now applies for adding superclasses.
356 
357]
358[Moved canonicalisation inside solveInteract
359dimitris@microsoft.com**20101209141215
360 
361 Moreover canonicalisation now is "clever", i.e. it never canonicalizes a class
362 constraint if it can already discharge it from some other inert or previously
363 encountered constraints. See Note [Avoiding the superclass explosion]
364 
365]
366[GHCi linker: Assume non-Haskell libraries are dynamic libs
367Ian Lynagh <igloo@earth.li>**20101213124930
368 Ignore-this: aa153a8f6e309c7b3dae7e46bb7a9583
369 This works around a segfault we get when trying to load libiconv.a on
370 some platforms.
371]
372[Add --version support to ghc-cabal
373Ian Lynagh <igloo@earth.li>**20101212213600
374 Ignore-this: ef696dcb1b96a23765f9f18e75a56f5
375]
376[Don't link the GHC RTS into our C-only programs
377Ian Lynagh <igloo@earth.li>**20101210185402
378 Ignore-this: 56f620f7eb16a03e7497a161bc48458e
379]
380[Build a copy of ghc-cabal with the in-tree compiler, for the bindist
381Ian Lynagh <igloo@earth.li>**20101210181123]
382[Add a test that all programs in the bindist were built with the right GHC
383Ian Lynagh <igloo@earth.li>**20101210161218
384 They should use the GHC from the build tree, not the bootstrapping compiler.
385]
386[Fix Trac #4534: renamer bug
387simonpj@microsoft.com**20101210084530
388 Ignore-this: 8163bfa3a56344cfe89ad17c62e9655d
389   
390 The renamer wasn't attaching the right used-variables to a
391 TransformStmt constructor.
392 
393 The real modification is in RnExpr; the rest is just
394 pretty-printing and white space.
395]
396[White space only
397simonpj@microsoft.com**20101210084255
398 Ignore-this: 3fcf8a4fc8c15052c379a135951d53ea
399]
400[Comments only
401simonpj@microsoft.com**20101210084116
402 Ignore-this: 55bb1de129b1c9513751885eaa84b884
403]
404[Make the case-to-let transformation a little less eager
405simonpj@microsoft.com**20101208172251
406 Ignore-this: 55eaa1b5753af31aeb32ec792cb6b662
407 
408 See Note [Case elimination: lifted case].
409 Thanks to Roman for identifying this case.
410]
411[warning fix: don't redefine BLOCKS_PER_MBLOCK
412Simon Marlow <marlowsd@gmail.com>**20101210094002
413 Ignore-this: cadba57f1c38f5e2af1de37d0a79c7ee
414]
415[Only reset the event log if logging is turned on (addendum to #4512)
416Simon Marlow <marlowsd@gmail.com>**20101210093951
417 Ignore-this: c9f85f0de2b11a37337672fba59aecc6
418]
419[allocate enough room for the longer filename (addendum to #4512)
420Simon Marlow <marlowsd@gmail.com>**20101210093906
421 Ignore-this: 270dc0219d98f1e0f9e006102ade7087
422]
423[Fix Windows build: move rtsTimerSignal to the POSIX-only section
424Simon Marlow <marlowsd@gmail.com>**20101210090045
425 Ignore-this: aa1844b70b9f1a44447787c4bbe10d44
426]
427[Default the value of -dppr-cols when the static flags aren't initialised yet
428Ben Lippmeier <benl@ouroborus.net>**20101210060154
429 Ignore-this: 4cea29085ef904f379a8829714c9e180
430 If GHC's command line options are bad then the options parser uses the
431 pretty printer before the -dppr-cols flag has been read.
432]
433[Defensify naked read in LLVM mangler
434Ben Lippmeier <benl@ouroborus.net>**20101210045922
435 Ignore-this: 1373f597863851bd03e7a7254558ed04
436]
437[Formatting only
438Ben Lippmeier <benl@ouroborus.net>**20101210042600
439 Ignore-this: 20bbcd95c70b59094d0bb8a63e459103
440]
441[Always ppr case alts on separate lines
442Ben Lippmeier <benl@ouroborus.net>**20101208070508
443 Ignore-this: 7e2edd57a61427621aeb254aef84f0f7
444]
445[Add -dppr-colsN to set width of dumps
446Ben Lippmeier <benl@ouroborus.net>**20101208070245
447 Ignore-this: edc64fee6c373b895bb80b83b549ce1a
448]
449[Add -dppr-case-as-let to print "strict lets" as actual lets
450Ben Lippmeier <benl@ouroborus.net>**20101208065548
451 Ignore-this: eb1d122dbd73b5263cae3a9f8259a838
452]
453[Suppress more info with -dsuppress-idinfo
454Ben Lippmeier <benl@ouroborus.net>**20101208063037
455 Ignore-this: 5e8213d7b8d2905e245917aa3e83efc5
456]
457[Implement -dsuppress-type-signatures
458Ben Lippmeier <benl@ouroborus.net>**20101208062814
459 Ignore-this: 34dbefe5f8d7fe58ecb26d6a748d1c71
460]
461[Add more suppression flags
462Ben Lippmeier <benl@ouroborus.net>**20101208020723
463 Ignore-this: b010ba9789a2fde6b815f33494fcc23c
464  -dsuppress-all
465  -dsuppress-type-applications
466  -dsuppress-idinfo
467]
468[fix ticket number (#4505)
469Simon Marlow <marlowsd@gmail.com>**20101209120404
470 Ignore-this: 5769c5ce2a8d69d62d977a9ae138ec23
471]
472[fix warnings
473Simon Marlow <marlowsd@gmail.com>**20101209115844
474 Ignore-this: ffff37feb2abbfc5bd12940c7007c208
475]
476[Catch too-large allocations and emit an error message (#4505)
477Simon Marlow <marlowsd@gmail.com>**20101209114005
478 Ignore-this: c9013ab63dd0bd62ea045060528550c6
479 
480 This is a temporary measure until we fix the bug properly (which is
481 somewhat tricky, and we think might be easier in the new code
482 generator).
483 
484 For now we get:
485 
486 ghc-stage2: sorry! (unimplemented feature or known bug)
487   (GHC version 7.1 for i386-unknown-linux):
488         Trying to allocate more than 1040384 bytes.
489 
490 See: http://hackage.haskell.org/trac/ghc/ticket/4550
491 Suggestion: read data from a file instead of having large static data
492 structures in the code.
493]
494[Export the value of the signal used by scheduler (#4504)
495Dmitry Astapov <dastapov@gmail.com>**20101208183755
496 Ignore-this: 427bf8c2469283fc7a6f759440d07d87
497]
498[Tweak the "sorry" message a bit
499Simon Marlow <marlowsd@gmail.com>**20101208163212
500 Ignore-this: aa1ce5bc3c27111548204b740572efbe
501 
502 -              "sorry! (this is work in progress)\n"
503 +              "sorry! (unimplemented feature or known bug)\n"
504]
505[:unset settings support
506Boris Lykah <lykahb@gmail.com>**20101123190132
507 Ignore-this: 5e97c99238f5d2394592858c34c004d
508 Added support for settings [args, prog, prompt, editor and stop].
509 Now :unset supports the same set of options as :set.
510]
511[Fix Windows memory freeing: add a check for fb == NULL; fixes trac #4506
512Ian Lynagh <igloo@earth.li>**20101208152349
513 Also added a few comments, and a load of code got indented 1 level deeper.
514]
515[Fixes for #4512: EventLog.c - provides ability to terminate event logging, Schedule.c - uses them in forkProcess.
516Dmitry Astapov <dastapov@gmail.com>**20101203133950
517 Ignore-this: 2da7f215d6c22708a18291a416ba8881
518]
519[Make CPPFLAGS variables, as well as CFLAGS and LDFLAGS
520Ian Lynagh <igloo@earth.li>**20101207010033
521 Ignore-this: 2fc1ca1422aae1988d0fe1d29a8485d9
522 This fixes the "does unsetenv return void" test in the unix package on
523 OS X, if I tell it to make 10.4-compatible binaries. The test uses
524 CPPFLAGS but not CFLAGS, so it thought it returned int (as it was
525 in 10.5-mode), but the C compiler (using CFLAGS, so in 10.4 mode)
526 thought it returned void.
527 
528 I also added CONF_LD_OPTS_STAGE$3 to the list of things in LDFLAGS,
529 which looks like an accidental ommission.
530]
531[Add a configure message
532Ian Lynagh <igloo@earth.li>**20101206215201]
533[Link even programs containing no Haskell modules with GHC
534Ian Lynagh <igloo@earth.li>**20101206203329
535 I don't remember why we made it use gcc instead, but going back to
536 using ghc doesn't seem to break anything, and should fix the build
537 on OS X 10.6.
538]
539[Correct the stage that the includes/ tools are built in
540Ian Lynagh <igloo@earth.li>**20101206203125]
541[Tweak the cleaning of inplace/; fixes trac #4320
542Ian Lynagh <igloo@earth.li>**20101205212048]
543[Close .ghci files after reading them; fixes trac #4487
544Ian Lynagh <igloo@earth.li>**20101205205301]
545[Fix the behaviour of :history for ticks surrounding top level functions
546pepeiborra@gmail.com**20101203202346
547 Ignore-this: 8059d4859c52c0c9a235b937cb8cde1d
548]
549[Don't warn of duplicate exports in case of module exports.
550Michal Terepeta <michal.terepeta@gmail.com>**20101127212116
551 Ignore-this: ea225d517826f971c400bbb68d1405b8
552 
553 But only when the module exports refer to different modules.
554 See ticket #4478.
555]
556[Fix whitespace/layout in RnNames.
557Michal Terepeta <michal.terepeta@gmail.com>**20101030171303
558 Ignore-this: 707a7955fc4fc51683cc5a1dfe57f93
559]
560[Tell gcc to support back to OS X 10.5
561Ian Lynagh <igloo@earth.li>**20101203201558
562 Ignore-this: f02d70e5b9cce50137981c6cb2b62a18
563]
564[Make RelaxedLayout off by default
565Ian Lynagh <igloo@earth.li>**20101202140808
566 I suspect this is a vary rarely used extension to the official layout
567 rule.
568]
569[Fix up TcInstDcls
570simonpj@microsoft.com**20101203180758
571 Ignore-this: 9311aeb4ee67c799704afec90b5982d0
572 
573 I really don't know how this module got left out of my last
574 patch, namely
575   Thu Dec  2 12:35:47 GMT 2010  simonpj@microsoft.com
576   * Re-jig simplifySuperClass (again)
577 
578 I suggest you don't pull either the patch above, or this
579 one, unless you really have to.  I'm not fully confident
580 that it works properly yet.  Ran out of time. Sigh.
581]
582[throwTo: report the why_blocked value in the barf()
583Simon Marlow <marlowsd@gmail.com>**20101203094840
584 Ignore-this: 3b167c581be1c51dfe3586cc6359e1d0
585]
586[handle ThreadMigrating in throwTo() (#4811)
587Simon Marlow <marlowsd@gmail.com>**20101203094818
588 Ignore-this: 8ef8cb7fd3b50a27f83c29968131d461
589 If a throwTo targets a thread that has just been created with
590 forkOnIO, then it is possible the exception strikes while the thread
591 is still in the process of migrating.  throwTo() didn't handle this
592 case, but it's fairly straightforward.
593]
594[removeThreadFromQueue: stub out the link field before returning (#4813)
595Simon Marlow <marlowsd@gmail.com>**20101202160838
596 Ignore-this: 653ae17bc1120d7f4130da94665002a1
597]
598[small tidyup
599Simon Marlow <marlowsd@gmail.com>**20101126140620
600 Ignore-this: 70b1d5ed4c81a7b29dd5980a2d84aae1
601]
602[Fix a recomp bug: make classes/datatypes depend directly on DFuns (#4469)
603Simon Marlow <marlowsd@gmail.com>**20101202122349
604 Ignore-this: 61c765583bb1d97caa88cf9b4f45b87c
605 And remove the old mechanism of recording dfun uses separately,
606 because it didn't work.
607 
608 This wiki page describes recompilation avoidance and fingerprinting.
609 I'll update it to describe the new method and what went wrong with the
610 old method:
611 
612 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
613]
614[make a panic message more informative and suggest -dcore-lint (see #4534)
615Simon Marlow <marlowsd@gmail.com>**20101201151706
616 Ignore-this: 2a10761925d6f9f52675948baa30f7a
617]
618[Re-jig simplifySuperClass (again)
619simonpj@microsoft.com**20101202123547
620 Ignore-this: fe4062b8988258f6748ebd8fbd6515b5
621 
622 This fixes the current loop in T3731, and will fix other
623 reported loops.  The loops show up when we are generating
624 evidence for superclasses in an instance declaration.
625 
626 The trick is to make the "self" dictionary simplifySuperClass
627 depend *explicitly* on the superclass we are currently trying
628 to build.  See Note [Dependencies in self dictionaries] in TcSimplify.
629 
630 That in turn means that EvDFunApp needs a dependency-list, used
631 when chasing dependencies in isGoodRecEv.
632]
633[A little refactoring (remove redundant argument passed to isGoodRecEv)
634simonpj@microsoft.com**20101202123110
635 Ignore-this: e517c5c12109a230f08dafb4d1e386df
636]
637[Make rebindable if-then-else a little more permissive
638simonpj@microsoft.com**20101202122540
639 Ignore-this: ddb552cfe307607b42d1e4baf4e3bf21
640 
641 See Note [Rebindable syntax for if].  Fixes Trac #4798.
642 Thanks to Nils Schweinsberg <mail@n-sch.de>
643]
644[Improve error message (Trac #4799)
645simonpj@microsoft.com**20101202102706
646 Ignore-this: d9896e4d182936de1f256c820b96a8cf
647]
648[Fix a nasty bug in RULE matching: Trac #4814
649simonpj@microsoft.com**20101202102618
650 Ignore-this: ba058ad46a02bd2faf3a14de93fd19c6
651 
652 See Note [Matching lets], which explains it all in detail.
653 It took me a day to think of a nice way to fix the bug,
654 but I think the result is quite respectable. Subtle, though.
655]
656[Rename -XPArr to -XParallelArrays
657Ben Lippmeier <benl@ouroborus.net>**20101130075415
658 Ignore-this: 21b37680a7f25800d1200b59ad0b6b39
659]
660[FIX #1845 (unconditional relative branch out of range)
661pho@cielonegro.org**20101130143014
662 Ignore-this: df234bd8ad937104c455656fe3c33732
663 
664 Don't use mmap on powerpc-apple-darwin as mmap doesn't support
665 reallocating but we need to allocate jump islands just after each
666 object images. Otherwise relative branches to jump islands can fail
667 due to 24-bits displacement overflow.
668]
669[rts/Linker.c (loadArchive):
670pho@cielonegro.org**20101130142700
671 Ignore-this: bc84f9369ce5c2d289440701b7a3a2ab
672 
673 This routine should be aware of Mach-O misalignment of malloc'ed memory regions.
674]
675[rts/Linker.c (machoGetMisalignment):
676pho@cielonegro.org**20101130123355
677 Ignore-this: 75425600049efd587e9873578e26392f
678 
679 Use fseek(3) instead of rewind(3) to move the file position indicator back to the initial position. Otherwise we can't use this function in loadArchive().
680]
681[rts/Linker.c (ocFlushInstructionCache):
682pho@cielonegro.org**20101130121425
683 Ignore-this: 1e2c207e4b1d17387617ec5d645204b7
684 
685 I found this function causes a segfault when ocAllocateSymbolExtras() has allocated a separate memory region for jump islands.
686]
687[Remove NewQualifiedOperators
688Ian Lynagh <igloo@earth.li>**20101201181117
689 The extension was rejected by Haskell', and deprecated in 7.0.
690]
691[fix ref to utils/ext-core, which moved to Hackage (extcore package)
692Simon Marlow <marlowsd@gmail.com>**20101201092147
693 Ignore-this: 272a7daaa335ef60bcc645db70b4d68b
694]
695[fix floating-point/FFI section: fenv is C99, not POSIX
696Simon Marlow <marlowsd@gmail.com>**20101201092119
697 Ignore-this: ce8b3edd428e4f77691dd739b5b4ae73
698]
699[Fixed some 'unused vars' warnings
700keller@cse.unsw.edu.au**20101130013425
701 Ignore-this: 35790d443faa23b87e4ba442e62376a3
702]
703[vectScalarLam handles int, float, and double now
704keller@cse.unsw.edu.au**20101129231043
705 Ignore-this: 6d67bdc8dd8577184040e791e6f3d0
706]
707[Handling of lets, letrec and case when checking if a lambda expr needs to be vectorised
708keller@cse.unsw.edu.au**20101115051225
709 Ignore-this: 1db6ed63d7b3f6d093e019322b407ff7
710]
711[Document the behaviour of fenv.h functions with GHC (#4391)
712Simon Marlow <marlowsd@gmail.com>**20101126125336
713 Ignore-this: bc4eab49428d567505a28add6fed90f1
714]
715[Remove the no-ghci-lib warning in ghc-pkg
716Ian Lynagh <igloo@earth.li>**20101127235805
717 GHCi libs are no longer necessary, as we can use the .a or .so versions
718 instead.
719]
720[Add GNU-variant support to the .a parser, and other improvements/tidyups
721Ian Lynagh <igloo@earth.li>**20101127223945]
722[Re-indent only
723Ian Lynagh <igloo@earth.li>**20101127191646]
724[Improve linker debugging for archive files
725Ian Lynagh <igloo@earth.li>**20101127190907]
726[Always enable the archive-loading code
727Ian Lynagh <igloo@earth.li>**20101127173000
728 If the GHCi .o lib doesn't exist, load the .a instead
729]
730[Inherit the ForceSpecConstr flag in non-recursive nested bindings
731Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127125025
732 Ignore-this: 401391eae25cefcb4afaba2e357decc1
733 
734 This makes sure that join points are fully specialised in loops which are
735 marked as ForceSpecConstr.
736]
737[Document -ddump-rule-firings and -ddump-rule-rewrites
738Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127123528
739 Ignore-this: beade2efe0cd767c0ce9d4f45a3380ba
740]
741[New flag -dddump-rule-rewrites
742Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127122022
743 Ignore-this: c0ef5b8a199fbd1ef020258d2cde85a3
744 
745 Now, -ddump-rule-firings only shows the names of the rules that fired (it would
746 show "before" and "after" with -dverbose-core2core previously) and
747 -ddump-rule-rewrites always shows the "before" and "after" bits, even without
748 -dverbose-core2core.
749]
750[Acutally, wild-card variables *can* have occurrences
751simonpj@microsoft.com**20101126162409
752 Ignore-this: 544bffed75eeccef03a1097f98524eea
753 
754 This patch removes the Lint test, and comments why
755]
756[Tidy up the handling of wild-card binders, and make Lint check it
757simonpj@microsoft.com**20101126133210
758 Ignore-this: 9e0be9f7867d53046ee5b0e478a0f433
759 
760 See Note [WildCard binders] in SimplEnv.  Spotted by Roman.
761]
762[Substitution should just substitute, not optimise
763simonpj@microsoft.com**20101125172356
764 Ignore-this: 657628d9b6796ceb5f915c43d56e4a06
765 
766 This was causing Trac #4524, by optimising
767      (e |> co)  to   e
768 on the LHS of a rule.  Result, the template variable
769 'co' wasn't bound any more.
770 
771 Now that substition doesn't optimise, it seems sensible to call
772 simpleOptExpr rather than substExpr when substituting in the
773 RHS of rules.  Not a big deal either way.
774]
775[Make SpecConstr "look through" identity coercions
776simonpj@microsoft.com**20101125172138
777 Ignore-this: c1cc585ed890a7702c33987e971e0af6
778]
779[Comment only
780simonpj@microsoft.com**20101125172011
781 Ignore-this: 3c7be8791badd00dcca9610ebb8981d1
782]
783[White space only
784simonpj@microsoft.com**20101101080748
785 Ignore-this: f7133fc6b22ae263c6672543a8534a6f
786]
787[Keep a maximum of 6 spare worker threads per Capability (#4262)
788Simon Marlow <marlowsd@gmail.com>**20101125135729
789 Ignore-this: a020786569656bf2f3a1717b65d463bd
790]
791[Unicide OtherNumber category should be allowed in identifiers (#4373)
792Simon Marlow <marlowsd@gmail.com>**20101115095444
793 Ignore-this: e331b6ddb17550163ee91bd283348800
794]
795[vectoriser: fix warning
796Ben Lippmeier <benl@ouroborus.net>**20101126044036
797 Ignore-this: e1a66bb405bf2f3f56b42c3b13fd4bf3
798]
799[vectoriser: fix warning
800Ben Lippmeier <benl@ouroborus.net>**20101126042950
801 Ignore-this: df8dd25bcfb3946c2974b13953a2f2c7
802]
803[vectoriser: take class directly from the instance tycon
804Ben Lippmeier <benl@ouroborus.net>**20101126042900
805 Ignore-this: 626a416717a5a059f39e53f4ec95fc66
806]
807[vectoriser: comments only
808Ben Lippmeier <benl@ouroborus.net>**20101125073201
809 Ignore-this: 8846ea8895307083bd1ebbc5d7fb1c5
810]
811[vectoriser: follow changes in mkClass
812Ben Lippmeier <benl@ouroborus.net>**20101125062349
813 Ignore-this: d5018cc022686d4272e126ca9a12283a
814]
815[vectoriser: tracing wibbles
816Ben Lippmeier <benl@ouroborus.net>**20101125062332
817 Ignore-this: c2024d8f03bc03bee2851f4f1c139fd5
818]
819[mkDFunUnfolding wants the type of the dfun to be a PredTy
820benl@ouroborus.net**20100914062939
821 Ignore-this: 7aa6e6b140746184cf00355b50c83b66
822]
823[vectoriser: fix conflicts
824Ben Lippmeier <benl@ouroborus.net>**20101125060904
825 Ignore-this: cc3decab1affada8629ca3818b76b3bf
826]
827[Comments and formatting only
828benl@ouroborus.net**20100914062903
829 Ignore-this: b0fc25f0952cafd56cc25353936327d4
830]
831[Comments and formatting to type environment vectoriser
832benl@ouroborus.net**20100909080405
833 Ignore-this: ab8549d53f845c9d82ed9a525fda3906
834]
835[Don't mix implicit and explicit layout
836Ian Lynagh <igloo@earth.li>**20101124231514]
837[Whitespace only
838Ian Lynagh <igloo@earth.li>**20101124230655]
839[Separate NondecreasingIndentation out into its own extension
840Ian Lynagh <igloo@earth.li>**20101124220507]
841[Add another GHC layout rule relaxation to RelaxedLayout
842Ian Lynagh <igloo@earth.li>**20101124205957]
843[Remove an unused build system variable: GhcDir
844Ian Lynagh <igloo@earth.li>**20101124140455]
845[Remove unused build system variable: GhcHasEditline
846Ian Lynagh <igloo@earth.li>**20101124140415]
847[Remove unused variables from the build system: HBC, NHC, MKDEPENDHS
848Ian Lynagh <igloo@earth.li>**20101124140052]
849[Remove references to Haskell 98
850Ian Lynagh <igloo@earth.li>**20101123233536
851 They are no longer right, as we have Haskell' generating new Haskell
852 standards.
853]
854[Tweak a configure test
855Ian Lynagh <igloo@earth.li>**20101123170621]
856[Add a configure test for the visibility hidden attribute
857Ian Lynagh <igloo@earth.li>**20101123170541]
858[sanity: fix places where we weren't filling fresh memory with 0xaa
859Simon Marlow <marlowsd@gmail.com>**20101029092843
860 Ignore-this: 2cb18f7f5afcaf33371aeffce67e218f
861]
862[Just some alpha renaming
863Ian Lynagh <igloo@earth.li>**20101121144455
864 Ignore-this: d5e807c5470840efc199e29f7d50804c
865]
866[Fix bug #3165 (:history throws irrefutable pattern failed)
867pepeiborra@gmail.com**20101115223623
868 Ignore-this: 73edf56e502b4d0385bc044133b27946
869 
870 I ran across this bug and took the time to fix it, closing
871 a long time due TODO in InteractiveEval.hs
872 
873 Instead of looking around to find the enclosing declaration
874 of a tick, this patch makes use of the information already collected during the
875 coverage desugaring phase
876]
877[For bindists, build ghc-pwd with stage 1
878Ian Lynagh <igloo@earth.li>**20101121183520
879 Ignore-this: a3b5c8b78c81ec1b6d5fbf23da346ff5
880 rather then the bootstrapping compiler. This fixes problems where the
881 bootstrapping compiler dynamically links against libraries not on the
882 target machine.
883]
884[Makefile tweak
885Ian Lynagh <igloo@earth.li>**20101121183342
886 Ignore-this: cd55a2819c1a5fd36da1bc7a75d2ded1
887]
888[Fix a makefile include ordering sanity check
889Ian Lynagh <igloo@earth.li>**20101121174916
890 Ignore-this: d0bdd41c4b618944d04ecb4f54fdd0f1
891]
892[Add an extension for GHC's layout-rule relaxations
893Ian Lynagh <igloo@earth.li>**20101120215340
894 Still TODO: Add the other relaxation (#1060) and update the alternative
895 layout rule to use the extension.
896]
897[Tweak the bindist configure.ac.in
898Ian Lynagh <igloo@earth.li>**20101120173735]
899[configure.ac tweaks
900Ian Lynagh <igloo@earth.li>**20101120170245]
901[When testing the bindist, tell it where gcc is
902Ian Lynagh <igloo@earth.li>**20101120155920
903 The location isn't baked into the bindist, as it may differ from
904 machine to machine.
905]
906[Comments only
907simonpj@microsoft.com**20101119100153
908 Ignore-this: 7abd5d965ea805770449d6f8dadbb921
909]
910[ForceSpecConstr now forces specialisation even for arguments which aren't scrutinised
911Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101118212839
912 Ignore-this: db45721d29a694e53746f8b76513efa4
913]
914[Move the superclass generation to the canonicaliser
915simonpj@microsoft.com**20101118120533
916 Ignore-this: 5e0e525402a240b709f2b8104c1682b2
917 
918 Doing superclass generation in the canonicaliser (rather than
919 TcInteract) uses less code, and is generally more efficient.
920 
921 See Note [Adding superclasses] in TcCanonical.
922 
923 Fixes Trac #4497.
924]
925[Fix the generation of in-scope variables for IfaceLint check
926simonpj@microsoft.com**20101118090057
927 Ignore-this: bbcdba61ddf89d07fe69ca99c2017e3f
928]
929[Comments only
930simonpj@microsoft.com**20101118090034
931 Ignore-this: fa2936d35a0f7be4e4535ea9e2b7bf7b
932]
933[Omit bogus test for -XDeriveFunctor
934simonpj@microsoft.com**20101118090028
935 Ignore-this: a534243011809ebbb788b910961601c5
936 
937 It was duplicated in the case of 'deriving( Functor )'
938 and wrong for 'deriving( Foldable )'
939]
940[Improve error message on advice from a user
941simonpj@microsoft.com**20101118085306
942 Ignore-this: bd4f3858ff24e602e985288f27d536f3
943 
944 See Trac #4499
945]
946[TAG 2010-11-18
947Ian Lynagh <igloo@earth.li>**20101118011554
948 Ignore-this: ccadbe7fadd1148d2ee3caa8c8821ec5
949]
950Patch bundle hash:
95149f9e9a49dea515dca76dc9a7bbbe5ac1d6f6ee7