Ticket #3730: libm-fix.dpatch

File libm-fix.dpatch, 32.6 KB (added by slyfox, 5 years ago)

libm-fix.dpatch - fixes LIBM detection

Line 
1Fri Dec  4 23:40:12 EET 2009  Sergei Trofimovich <slyfox@inbox.ru>
2  * configure.ac: fix libm checks (Trac #3730)
3 
4  libbfd pulled libm as dependency and broke LIBM= detection.
5 
6  Patch moves libm in library tests as early as possible.
7  Thanks to asuffield for suggesting such a simple fix.
8  Thanks to Roie Kerstein and Renato Gallo for finding
9  and tracking down the issue.
10
11New patches:
12
13[configure.ac: fix libm checks (Trac #3730)
14Sergei Trofimovich <slyfox@inbox.ru>**20091204214012
15 Ignore-this: f3372535a68f3833247f679b023745c8
16 
17 libbfd pulled libm as dependency and broke LIBM= detection.
18 
19 Patch moves libm in library tests as early as possible.
20 Thanks to asuffield for suggesting such a simple fix.
21 Thanks to Roie Kerstein and Renato Gallo for finding
22 and tracking down the issue.
23] {
24hunk ./configure.ac 716
25   AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.])
26 fi
27 
28-dnl ** check whether this machine has BFD and liberty installed (used for debugging)
29-dnl    the order of these tests matters: bfd needs liberty
30-AC_CHECK_LIB(iberty, xmalloc)
31-AC_CHECK_LIB(bfd,    bfd_init)
32-
33 dnl ** check for math library
34hunk ./configure.ac 717
35+dnl    Keep that check as early as possible.
36+dnl    as we need to know whether we need libm
37+dnl    for math functions or not
38+dnl    (see http://hackage.haskell.org/trac/ghc/ticket/3730)
39 AC_CHECK_FUNC(atan,[fp_libm_not_needed=yes;LIBM=],[fp_libm_not_needed=dunno])
40 if test x"$fp_libm_not_needed" = xdunno; then
41    AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"],[LIBM=])
42hunk ./configure.ac 727
43 fi
44 AC_SUBST([LIBM])
45 
46+dnl ** check whether this machine has BFD and liberty installed (used for debugging)
47+dnl    the order of these tests matters: bfd needs liberty
48+AC_CHECK_LIB(iberty, xmalloc)
49+AC_CHECK_LIB(bfd,    bfd_init)
50+
51 dnl ################################################################
52 dnl Check for libraries
53 dnl ################################################################
54}
55
56Context:
57
58[Link all dynamic libraries with the correct install_name on Mac OS/X.
59Ian Lynagh <igloo@earth.li>**20091204143614
60 This is a rerecord of
61     Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20090930222855
62 to avoid conflicts.
63]
64[Document the new -dylib-install-name option in the user's guide.
65Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20091001051637
66 Ignore-this: 568f6ad423f737ccda3a79f2d8efdb97
67]
68[Add -dylib-install-name option to GHC so the install name can be set for dynamic libs on Mac OS/X.
69Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20090930223708
70 Ignore-this: 2323929595c0dc03a2e2ea802477a930
71]
72[Force -fPIC when linking against dynamic libraries on Mac OS/X.
73Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20090928203800
74 Ignore-this: 465433af2349779b510f500dc79768f3
75 Otherwise you get
76 /tmp/ghc7602_0/ghc7602_0.s:207:0:
77    non-relocatable subtraction expression, "___stginit_Lib_dyn" minus "L1x2;4"
78 /tmp/ghc7602_0/ghc7602_0.s:207:0:
79    symbol: "___stginit_Lib_dyn" can't be undefined in a subtraction expression
80]
81[evaluate_large: evaluate large objects to bd->dest rather than gen->to
82Simon Marlow <marlowsd@gmail.com>**20091204111037
83 Ignore-this: 6c77407750d4a6178851aeb79ded20d1
84 This fixes aging of large objects in the new scheme.  Bug found by
85 perf/space_leaks/space_leak_001.  Yay perf regressions tests.
86]
87[Correction to the allocation stats following earlier refactoring
88Simon Marlow <marlowsd@gmail.com>**20091204110839
89 Ignore-this: 7ac497c67706bedd29c79091c100d22f
90]
91[export g0
92Simon Marlow <marlowsd@gmail.com>**20091203165209
93 Ignore-this: 69b5445beb91ac99bb018b9806de90a
94]
95[GC refactoring, remove "steps"
96Simon Marlow <marlowsd@gmail.com>**20091203150728
97 Ignore-this: 5360b8bf30c6847ccb7ffa8c431e81ff
98 
99 The GC had a two-level structure, G generations each of T steps.
100 Steps are for aging within a generation, mostly to avoid premature
101 promotion. 
102 
103 Measurements show that more than 2 steps is almost never worthwhile,
104 and 1 step is usually worse than 2.  In theory fractional steps are
105 possible, so the ideal number of steps is somewhere between 1 and 3.
106 GHC's default has always been 2.
107 
108 We can implement 2 steps quite straightforwardly by having each block
109 point to the generation to which objects in that block should be
110 promoted, so blocks in the nursery point to generation 0, and blocks
111 in gen 0 point to gen 1, and so on.
112 
113 This commit removes the explicit step structures, merging generations
114 with steps, thus simplifying a lot of code.  Performance is
115 unaffected.  The tunable number of steps is now gone, although it may
116 be replaced in the future by a way to tune the aging in generation 0.
117]
118[fix error message on Windows (fixes rtsflags001)
119Simon Marlow <marlowsd@gmail.com>**20091202141135
120 Ignore-this: 239fed52f7f5358b034acd6512d26ef4
121]
122[Fix loading of annotations
123Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091204024259
124 Ignore-this: 5750856feecbf9c6aeebfec012b1a1fd
125 
126 The problem was that we collected all annotations we knew about once when the
127 simplifier started and threaded them through the CoreM monad. If new interface
128 files were loaded during simplification, their annotations would not be
129 visible to the simplifier.
130 
131 Now, we rebuild the annotation list at the start of every simplifier pass that
132 needs it (which is only SpecConstr at the moment). This ensures that we see
133 all annotations that have been loaded so far. This is somewhat similar to how
134 RULES are handled.
135]
136[Add new ForceSpecConstr annotation
137Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091203065455
138 Ignore-this: ca5327f85d9d40c78d95e8bfe3e7fab1
139 
140 Annotating a type with {-# ANN type T ForceSpecConstr #-} makes SpecConstr
141 ignore -fspec-constr-threshold and -fspec-constr-count for recursive functions
142 that have arguments of type T. Such functions will be specialised regardless
143 of their size and there is no upper bound on the number of specialisations
144 that can be generated. This also works if T is embedded in other types such as
145 Maybe T (but not T -> T).
146 
147 T should not be a product type because it could be eliminated by the
148 worker/wrapper transformation. For instance, in
149 
150 data T = T Int Int
151 
152 foo :: T -> Int
153 foo (T m n) = ... foo (T m' n') ...
154 
155 SpecConstr will never see the T because w/w will get rid of it. I'm still
156 thinking about whether fixing this is worthwhile.
157]
158[Generate INLINE pragmas for PA methods
159Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091203031452
160 Ignore-this: 3435044aec2737ba58d269aeff915fbd
161]
162[Add a GHC layout extension to the alternative layout rule
163Ian Lynagh <igloo@earth.li>**20091203155708]
164[Fix HPC column numbers, following the column number changes in GHC
165Ian Lynagh <igloo@earth.li>**20091203135520]
166[Whitespace only
167Ian Lynagh <igloo@earth.li>**20091203132259]
168[Fix column numbers used when highlighting :list output
169Ian Lynagh <igloo@earth.li>**20091203130328]
170[add a missing lock around allocGroup()
171Simon Marlow <marlowsd@gmail.com>**20091203110209
172 Ignore-this: 5898b3de4010e16789b628b004aa77db
173]
174[remove unused cap->in_gc flag
175Simon Marlow <marlowsd@gmail.com>**20091202154240
176 Ignore-this: db2ef6c957c8d32233bbcc344e3c06b6
177]
178[Refactoring only
179Simon Marlow <marlowsd@gmail.com>**20091202123806
180 Ignore-this: 95a93f6e330f2c609c197194412cac75
181]
182[move sanity checking code from Storage.c to Sanity.c
183Simon Marlow <marlowsd@gmail.com>**20091202121141
184 Ignore-this: 216d434c3c3d2250effac22b37bc2b4d
185]
186[stg_ap_0_fast: sanity-check only the topmost frame, not the whole stack
187Simon Marlow <marlowsd@gmail.com>**20091202115109
188 Ignore-this: ad45e07c26aa961913d367d7c53efb75
189 Sanity checking was getting too slow in some cases, this returns it to
190 a constant-factor overhead.
191]
192[Fix profiling build
193Simon Marlow <marlowsd@gmail.com>**20091203085930
194 Ignore-this: ff3de527cbf7703e8bac4a48933cd8ba
195]
196[More work on the simplifier's inlining strategies
197simonpj@microsoft.com**20091202174256
198 Ignore-this: 5840392a95d9a47f37c3074f7394f2c2
199 
200 This patch collects a small raft of related changes
201 
202 * Arrange that during
203      (a) rule matching and
204      (b) uses of exprIsConApp_maybe
205   we "look through" unfoldings only if they are active
206   in the phase. Doing this for (a) required a bit of
207   extra plumbing in the rule matching code, but I think
208   it's worth it.
209 
210   One wrinkle is that even if inlining is off (in the 'gentle'
211   phase of simplification) during rule matching we want to
212   "look through" things with inlinings. 
213    See SimplUtils.activeUnfInRule.
214 
215   This fixes a long-standing bug, where things that were
216   supposed to be (say) NOINLINE, could still be poked into
217   via exprIsConApp_maybe.
218 
219 * In the above cases, also check for (non-rule) loop breakers;
220   we never look through these.  This fixes a bug that could make
221   the simplifier diverge (and did for Roman). 
222   Test = simplCore/should_compile/dfun-loop
223 
224 * Try harder not to choose a DFun as a loop breaker. This is
225   just a small adjustment in the OccurAnal scoring function
226 
227 * In the scoring function in OccurAnal, look at the InlineRule
228   unfolding (if there is one) not the actual RHS, beause the
229   former is what'll be inlined. 
230 
231 * Make the application of any function to dictionary arguments
232   CONLIKE.  Thus (f d1 d2) is CONLIKE. 
233   Encapsulated in CoreUtils.isExpandableApp
234   Reason: see Note [Expandable overloadings] in CoreUtils
235 
236 * Make case expressions seem slightly smaller in CoreUnfold.
237   This reverses an unexpected consequences of charging for
238   alternatives.
239 
240 Refactorings
241 ~~~~~~~~~~~~
242 * Signficantly refactor the data type for Unfolding (again).
243   The result is much nicer. 
244 
245 * Add type synonym BasicTypes.CompilerPhase = Int
246   and use it
247 
248 Many of the files touched by this patch are simply knock-on
249 consequences of these two refactorings.
250]
251[Fix Trac #3100: reifyType
252simonpj@microsoft.com**20091130175204
253 Ignore-this: ad1578c3d2e3da6128cd5052c8b64dc
254 
255 A type without any leading foralls may still have constraints
256    eg:  ?x::Int => Int -> Int
257 
258 But reifyType was failing in this case.
259 
260 Merge to 6.12.
261]
262[Fix Trac #3102: pre-matching polytypes
263simonpj@microsoft.com**20091130174441
264 Ignore-this: 3e3fa97e0de28b005a1aabe9e5542b32
265 
266 When *pre-matching* two types
267      forall a. C1 => t1  ~  forall a. C2 => t2
268 we were matching t1~t2, but totally ignoring C1,C2
269 That's utterly wrong when pre-matching
270        (?p::Int) => String  ~  a
271 because we emerge with a:=String!
272 
273 All this is part of the impredicative story, which is about
274 to go away, but still.
275 
276 Worth merging this to 6.12
277]
278[threadStackUnderflow: put the new TSO on the mut list if necessary
279Simon Marlow <marlowsd@gmail.com>**20091202144549
280 Ignore-this: 839e7ad7893b3d7ea6481030ce7c6fe6
281]
282[don't sanity check the whole stack when switching interp<->compiled
283Simon Marlow <marlowsd@gmail.com>**20091202134121
284 Ignore-this: 999b44d4dd096eceda81dda65f65a2df
285]
286[fix to sanity checking for ThreadRelocated TSOs
287Simon Marlow <marlowsd@gmail.com>**20091202134041
288 Ignore-this: 52364f29041e6909b550956087649220
289]
290[sanity check the top stack frame, not the whole stack
291Simon Marlow <marlowsd@gmail.com>**20091202134020
292 Ignore-this: c4c9b58c13299eecf7ec8cb79e34dc1f
293]
294[Make allocatePinned use local storage, and other refactorings
295Simon Marlow <marlowsd@gmail.com>**20091201160321
296 Ignore-this: ec1334a9a5ec0de2567aa81d74b715ba
297 
298 This is a batch of refactoring to remove some of the GC's global
299 state, as we move towards CPU-local GC. 
300 
301   - allocateLocal() now allocates large objects into the local
302     nursery, rather than taking a global lock and allocating
303     then in gen 0 step 0.
304 
305   - allocatePinned() was still allocating from global storage and
306     taking a lock each time, now it uses local storage.
307     (mallocForeignPtrBytes should be faster with -threaded).
308     
309   - We had a gen 0 step 0, distinct from the nurseries, which are
310     stored in a separate nurseries[] array.  This is slightly strange.
311     I removed the g0s0 global that pointed to gen 0 step 0, and
312     removed all uses of it.  I think now we don't use gen 0 step 0 at
313     all, except possibly when there is only one generation.  Possibly
314     more tidying up is needed here.
315 
316   - I removed the global allocate() function, and renamed
317     allocateLocal() to allocate().
318 
319   - the alloc_blocks global is gone.  MAYBE_GC() and
320     doYouWantToGC() now check the local nursery only.
321]
322[Free full_prog_argv at exit, closing a memory leak
323Simon Marlow <marlowsd@gmail.com>**20091201122801
324 Ignore-this: 8fdb41e09bfc318821c427d2f22af737
325]
326[free cap->saved_mut_lists too
327Simon Marlow <marlowsd@gmail.com>**20091201113448
328 Ignore-this: 973e1de140e104c126fe4a213791ba86
329 fixes some memory leakage at shutdown
330]
331[exitScheduler: move boundTaskExiting call outside #ifdef THREADED_RTS
332Simon Marlow <marlowsd@gmail.com>**20091201113352
333 Ignore-this: d913df43b14054f73c0fa06d0205952c
334 Fixes a little leaked memory at shutdown in non-threaded RTS
335]
336[Use dlltool from the in-tree mingw installation
337Ian Lynagh <igloo@earth.li>**20091201190544
338 We only use dlltool on Windows, and this way we don't require that
339 the user has it installed.
340]
341[Fix Commentary link in the HACKING file; trac #3706
342Ian Lynagh <igloo@earth.li>**20091201150149]
343[Add an entry fo the ghci command :run to the user guide
344Ian Lynagh <igloo@earth.li>**20091201173339]
345[Fix typo in docs
346Ian Lynagh <igloo@earth.li>**20091201170550]
347[Delay expansion of some makefile variables until they are available
348Ian Lynagh <igloo@earth.li>**20091201133609]
349[Call $(SED) rather than sed
350Ian Lynagh <igloo@earth.li>**20091201131123]
351[Look for sed as gsed first
352Ian Lynagh <igloo@earth.li>**20091201130741
353 Solaris's sed apparently doesn't understand [:space:]
354]
355[Avoid running empty for loops; fixes trac #3683
356Ian Lynagh <igloo@earth.li>**20091201125927
357 Solaris's sh gives
358     /bin/sh: syntax error at line 1: `;' unexpected
359 when faced with something like
360     for x in ; do ...; done
361 Patch from Christian Maeder.
362]
363[Fix PS file generation
364Simon Marlow <marlowsd@gmail.com>**20091201154254
365 Ignore-this: 7b7122208e845b029a8b7215149fd203
366 (the image doesn't work, but at least db2latex doesn't fall over)
367]
368[Implement a new heap-tuning option: -H
369Simon Marlow <marlowsd@gmail.com>**20091130151836
370 Ignore-this: 2089b9dfaf6c095dc0460cef39e9d586
371 
372 -H alone causes the RTS to use a larger nursery, but without exceeding
373 the amount of memory that the application is already using.  It trades
374 off GC time against locality: the default setting is to use a
375 fixed-size 512k nursery, but this is sometimes worse than using a very
376 large nursery despite the worse locality.
377 
378 Not all programs get faster, but some programs that use large heaps do
379 much better with -H.  e.g. this helps a lot with #3061 (binary-trees),
380 though not as much as specifying -H<large>.  Typically using -H<large>
381 is better than plain -H, because the runtime doesn't know ahead of
382 time how much memory you want to use.
383 
384 Should -H be on by default?  I'm not sure, it makes some programs go
385 slower, but others go faster.
386]
387[Store a destination step in the block descriptor
388Simon Marlow <marlowsd@gmail.com>**20091129164251
389 Ignore-this: c406550acfe10141fcc38d3949d67490
390 At the moment, this just saves a memory reference in the GC inner loop
391 (worth a percent or two of GC time).  Later, it will hopefully let me
392 experiment with partial steps, and simplifying the generation/step
393 infrastructure.
394]
395[Fix the prof_scc.png image in the profiling section (#3694)
396Simon Marlow <marlowsd@gmail.com>**20091130132703
397 Ignore-this: 9774bad70187274e3dd283d66703004
398]
399[document 'recache' command in the help output (#3684)
400Simon Marlow <marlowsd@gmail.com>**20091130122040
401 Ignore-this: 95a51f76e66055af27cdfc7b5ad7deb3
402]
403[Check whether the main function is actually exported (#414)
404Simon Marlow <marlowsd@gmail.com>**20091130112327
405 Ignore-this: 1afaa18d8c0c9e1d029531ac9d4865bb
406]
407[Avoid using non-standard GNU tar option --force-local
408Simon Marlow <marlowsd@gmail.com>**20091130112605
409 Ignore-this: ac066722b15eb93e752d4f63391c9e3c
410]
411[Reorder ALL_RTS_LIBS
412Matthias Kilian <kili@outback.escape.de>**20091115175405
413 Ignore-this: 795cfd5215ec73eea729aa2b3097817e
414 
415 ALL_RTS_LIBS is (ab)used for linking ghc when BootingFromHc=Yes,
416 which needs libHSrtsmain.a before libHSrts.a.
417 
418]
419[Update dependencies
420Ian Lynagh <igloo@earth.li>**20091129165534]
421[Follow Cabal changes
422Ian Lynagh <igloo@earth.li>**20091129165141]
423[Tweak layout to work with alternative layout rule
424Ian Lynagh <igloo@earth.li>**20091129163044]
425[Tweak the alternative layout rule: {} contains commas
426Ian Lynagh <igloo@earth.li>**20091129155454]
427[Correct the advanceSrcLoc calculation for tabs
428Ian Lynagh <igloo@earth.li>**20091129153933
429 It was off-by-one
430]
431[Tweak alternative layout rule
432Ian Lynagh <igloo@earth.li>**20091129152323]
433[Make the alternative layout rule cope with file pragmas
434Ian Lynagh <igloo@earth.li>**20091129145840]
435[Give more informative error messages
436Ian Lynagh <igloo@earth.li>**20091129031029
437 We used to just get
438     ghc: panic! (the 'impossible' happened)
439       (GHC version 6.13.20091128 for x86_64-unknown-linux):
440         too few bytes. Failed reading at byte position 32753
441 with no indication of what was being parsed.
442]
443[Teach advanceSrcLoc about tab characters
444Ian Lynagh <igloo@earth.li>**20091128151204]
445[Whitespace only
446Ian Lynagh <igloo@earth.li>**20091128150731]
447[Columns now start at 1, as lines already did
448Ian Lynagh <igloo@earth.li>**20091127224050
449 Also corrected a couple of line 0's to line 1
450]
451[Remove configure tests on tarballs that no longer exist
452Ian Lynagh <igloo@earth.li>**20091127150101]
453[Implement non-decreasing do indentation in the alternative layout rule
454Ian Lynagh <igloo@earth.li>**20091127011932]
455[add docs for Unicode entities in #2978
456Simon Marlow <marlowsd@gmail.com>**20091125153649
457 Ignore-this: f3d1561ef8f55606d9022ab7243e3800
458]
459[Apply patch from #2978: add more Unicode syntax
460Simon Marlow <marlowsd@gmail.com>**20090918130333
461 Ignore-this: 1393009fdf2383ca43046ba0767a51e0
462]
463[Use UTF-8 explicitly for InstalledPackageInfo
464Simon Marlow <marlowsd@gmail.com>**20091125141730
465 Ignore-this: 45be1506dd5c3339fb229a44aa958235
466 So ghc-pkg register/update takes input in UTF-8, and ghc-pkg dump
467 outputs in UTF-8.  Textual package config files in the package DB are
468 assumed to be in UTF-8.
469]
470[Comments only, esp about RecStmts
471simonpj@microsoft.com**20091126163241
472 Ignore-this: 6fb05bd70b1d0cbb55fb01cf1f17ea77
473]
474[Fix a bug in alternative layout rule
475Ian Lynagh <igloo@earth.li>**20091125231901]
476[Fix a bug in alternative layout
477Ian Lynagh <igloo@earth.li>**20091125230616
478 And make the code simpler in the process!
479]
480[Bug fix for alternative layout rule
481Ian Lynagh <igloo@earth.li>**20091125205809]
482[Tweak alternative layout rule
483Ian Lynagh <igloo@earth.li>**20091125193854]
484[Add unboxed parentheses to the alternative layout rule
485Ian Lynagh <igloo@earth.li>**20091125182421]
486[Tweak the warning suppression flags used in Lexer
487Ian Lynagh <igloo@earth.li>**20091125171815]
488[Implement the alternative layout rule
489Ian Lynagh <igloo@earth.li>**20091125171656
490 Caution: Largely untested
491]
492[Fix some warning in Lexer
493Ian Lynagh <igloo@earth.li>**20091124233726]
494[threadStackOverflow: check whether stack squeezing released some stack (#3677)
495Simon Marlow <marlowsd@gmail.com>**20091125125917
496 Ignore-this: d35089eb93f5b367b7d1c445bda79232
497 
498 In a stack overflow situation, stack squeezing may reduce the stack
499 size, but we don't know whether it has been reduced enough for the
500 stack check to succeed if we try again.  Fortunately stack squeezing
501 is idempotent, so all we need to do is record whether *any* squeezing
502 happened.  If we are at the stack's absolute -K limit, and stack
503 squeezing happened, then we try running the thread again.
504 
505 We also want to avoid enlarging the stack if squeezing has already
506 released some of it.  However, we don't want to get into a
507 pathalogical situation where a thread has a nearly full stack (near
508 its current limit, but not near the absolute -K limit), keeps
509 allocating a little bit, squeezing removes a little bit, and then it
510 runs again.  So to avoid this, if we squeezed *and* there is still
511 less than BLOCK_SIZE_W words free, then we enlarge the stack anyway.
512]
513[add a comment to TSO_MARKED
514Simon Marlow <marlowsd@gmail.com>**20091125104954
515 Ignore-this: 7111281a443533dc453dbf9481dba519
516]
517[Pass --no-user-package-conf to ghc-pkg in bindisttest
518Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091125115953]
519[Add a note saying what Haddock relies on about Instance.is_dfun
520David Waern <david.waern@gmail.com>**20091124210308]
521[Treat () as an enumeration tycon
522Ian Lynagh <igloo@earth.li>**20091124011313
523 This fixes deriving Ord (), which previously failed with
524   ghc-stage1: panic! (the 'impossible' happened)
525     (GHC version 6.13.20091123 for x86_64-unknown-linux):
526           TcGenDeriv:mk_FunBind
527]
528[Whitespace only
529Ian Lynagh <igloo@earth.li>**20091124003221]
530[inline has moved to GHC.Magic
531Ian Lynagh <igloo@earth.li>**20091123200308]
532[Use the ghc-perl tarball on Windows, instead of the msys one
533Ian Lynagh <igloo@earth.li>**20091120153953]
534[Install perl on Windows
535Ian Lynagh <igloo@earth.li>**20091120223830]
536[Remove cprAnalysis directory from hs-source-dirs
537simonpj@microsoft.com**20091120161911
538 Ignore-this: e7d3707794979e45b43136137c939af1
539]
540[Remove -fasm from mk/validate-settings.mk
541Ian Lynagh <igloo@earth.li>**20091120125656
542 Makes it easier to do unregisterised validate runs
543]
544[Fix some dependencies in bindists
545Ian Lynagh <igloo@earth.li>**20091120125342
546 We can't depend on sources in a bindist, because we don't have the sources.
547]
548[Add a rule to allow us to sdist libraries easily
549Ian Lynagh <igloo@earth.li>**20091119160527]
550[Check upper/lower bounds on various RTS flags (#3633)
551Simon Marlow <marlowsd@gmail.com>**20091119142422
552 Ignore-this: 8cbbb3f0f2c46711967491d5c028a410
553 
554 Also, make K mean 1024 rather than 1000, in RTS flags (similarly for M
555 and G).  The main reason I want to change it is that otherwise this
556 might be confusing:
557   
558 exp3_8: error in RTS option -H4k: size outside allowed range (4096 - 18446744073709551615)
559 
560 And I think the original reason for using 1000 instead of 1024,
561 worries about direct-mapped caches, is not an issue in this context
562 (even if you can find a direct-mapped cache these days).
563]
564[define HS_WORD_MAX
565Simon Marlow <marlowsd@gmail.com>**20091119140143
566 Ignore-this: ed27e7c7ac0bd03cddcd745ae7053a74
567]
568[Print the prog name in errorBelch() even if prog_argv is not set yet
569Simon Marlow <marlowsd@gmail.com>**20091119135230
570 Ignore-this: ec42e7a4f344ebc34befddfc3d74a946
571 This means we get the prog name in error messages from the flag parser
572]
573[Remove dead code
574Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091112070455
575 Ignore-this: d30b668cb3c396fe21e5e4cd9b8be151
576]
577[Remove the (very) old strictness analyser
578simonpj@microsoft.com**20091119154347
579 Ignore-this: 5d49f66b0baad989ca66c53fde8f2d23
580 
581 I finally got tired of the #ifdef OLD_STRICTNESS stuff.  I had been
582 keeping it around in the hope of doing old-to-new comparisions, but
583 have failed to do so for many years, so I don't think it's going to
584 happen.  This patch deletes the clutter.
585]
586[Make INLINE warning more precise
587simonpj@microsoft.com**20091119132711
588 Ignore-this: f1494494f37c5e618e639912ff82a7f5
589]
590[Implement -fexpose-all-unfoldings, and fix a non-termination bug
591simonpj@microsoft.com**20091119125711
592 Ignore-this: 54d029014659959151d1681842210cde
593 
594 The -fexpose-all-unfoldings flag arranges to put unfoldings for *everything*
595 in the interface file.  Of course,  this makes the file a lot bigger, but
596 it also makes it complete, and that's great for supercompilation; or indeed
597 any whole-program work.
598 
599 Consequences:
600   * Interface files need to record loop-breaker-hood.  (Previously,
601     loop breakers were never exposed, so that info wasn't necessary.)
602     Hence a small interface file format change.
603 
604   * When inlining, must check loop-breaker-hood. (Previously, loop
605     breakers didn't have an unfolding at all, so no need to check.)
606 
607   * Ditto in exprIsConApp_maybe.  Roman actually tripped this bug,
608     because a DFun, which had an unfolding, was also a loop breaker
609 
610   * TidyPgm.tidyIdInfo must be careful to preserve loop-breaker-hood
611 
612 So Id.idUnfolding checks for loop-breaker-hood and returns NoUnfolding
613 if so. When you want the unfolding regardless of loop-breaker-hood,
614 use Id.realIdUnfolding.
615 
616 I have not documented the flag yet, because it's experimental.  Nor
617 have I tested it thoroughly.  But with the flag off (the normal case)
618 everything should work.
619]
620[Re-implement the binder-swap stuff in OccurAnal
621simonpj@microsoft.com**20091119124524
622 Ignore-this: 662ed559e161be958b1eff1a49d750a3
623 
624 This is a pretty big patch, but it has a very local effect.
625 It affects only the binder-swap mechanism in OccurAnal, which
626 was not working well becuase it's more subtle than I'd realised
627 (See Note [getProxies is subtle]).  I think this does a much
628 better job.
629]
630[Try harder not to make DFuns into loop breakers
631simonpj@microsoft.com**20091119124127
632 Ignore-this: 922d9a2b3406a3dbbfc5a42d1a286e2a
633 
634 See Note [DFuns should not be loop breakers]
635]
636[Extend the GHCi FAQ slightly
637simonpj@microsoft.com**20091117132308
638 Ignore-this: 8257aaf06ff32904a91121a0734d1c4
639]
640[Add gnutar to the list of names we use when looking for GNU tar
641Ian Lynagh <igloo@earth.li>**20091119144927]
642[Add support for the man page to the new build system
643Ian Lynagh <igloo@earth.li>**20091119140811]
644[Refactor case-merging and identical-alternative optimisations
645simonpj@microsoft.com**20091119123704
646 Ignore-this: db12d31395ed99c2341cc4d7d5dca1e
647 
648 These two optimisations were originally done by SimplUtils.mkCase
649 *after* all the pieces have been simplified.  Some while ago I
650 moved them *before*, so they were done by SimplUtils.prepareAlts.
651 It think the reason was that I couldn't rely on the dead-binder
652 information on OutIds, and that info is useful in these optimisations.
653 
654 However,
655  (a) Other changes (notably moving case-binder-swap to OccurAnal)
656      have meant that dead-binder information is accurate in
657      OutIds
658 
659  (b) When there is a cascade of case-merges, they happen in
660      one sweep if you do it after, but in many sweeps if you
661      do it before.  Reason: doing it after means you are looking
662      at nice simplified Core.
663]
664[Fix a nasty infelicity in the size computation of CoreUnfold
665simonpj@microsoft.com**20091119115736
666 Ignore-this: ecff5289ab14c0df572135bf0b5179d6
667 
668 The size computation was treating gigantic case expressions as
669 practically free, which they really aren't.  It was exacerbated by
670 recent decisions to charge 0 for naked variables and constructors, so
671 the RHS of the case might look free too.  A good example was
672 Foreign.C.Error.errnoToIOError, which hsa lots of join points
673 that were getting inlined way to vigorously, so we had:
674 
675   *** Simplifier Phase 2 [main]:
676       Result size = 2983
677   *** Core Linted result of Simplifier mode 2 [main], iteration 1 out of 4:
678       Result size = 640327
679   *** Core Linted result of Simplifier mode 2 [main], iteration 2 out of 4:
680       Result size = 1659
681 
682 Notice that gigantic intermediate!
683 
684 This patch adds a small charge for each *alternative*.  Of course,
685 that'll also mean that there's a bit less inling of things involving
686 case expressions.
687]
688[Comments and white space only
689simonpj@microsoft.com**20091119115122
690 Ignore-this: dc8f9a72d6d57378d83154877b1d1126
691]
692[Fix splitAppTys
693Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091119102639
694 Ignore-this: e669950c7d151c8a67910cd4bbac9cd6
695]
696[Windows DLLs: Slurp across the actually static version of libffi
697Ben.Lippmeier@anu.edu.au**20091119000239]
698[Windows DLLs: Don't rely on stg/DLL.h being included in RtsAPI.h
699Ben.Lippmeier@anu.edu.au**20091118110548
700 Ignore-this: 7dce0ede283974d7834fe12af3f71bd5
701]
702[Fix warnings about unused imports
703Ben.Lippmeier@anu.edu.au**20091118110525
704 Ignore-this: 93841770eadabf5bd3b9f859ca2de7eb
705]
706[Windows DLLs: stifle more warnings about auto imported symbols
707Ben.Lippmeier@anu.edu.au**20091118090105]
708[Windows DLLs: stifle warnings about symbols being auto imported from DLLs
709Ben.Lippmeier@anu.edu.au**20091118051526]
710[Windows DLLs: add #ifdefery to turn off DLL import of libffi when building statically.
711Ben.Lippmeier@anu.edu.au**20091118043901]
712[Windows DLLs: disable extra shutdownHaskell() when unloading the RTS DLL
713Ben.Lippmeier@anu.edu.au**20091117050648]
714[Windows DLLs: remove dup symbol from def file
715Ben.Lippmeier@anu.edu.au**20091117043851]
716[Use opt_PIC not #defined __PIC__ in compiler source.
717Ben.Lippmeier@anu.edu.au**20091117043716]
718[Windows DLLs: CHARLIKE_closure and INTLIKE_closure aren't defined in this way.
719Ben.Lippmeier@anu.edu.au**20091114063240]
720[If a comment says "Is this correct?", it's not.
721Ben.Lippmeier@anu.edu.au**20091114063157]
722[Windows DLLs: gmp is in the integer-gmp package now.
723Ben.Lippmeier@anu.edu.au**20091114063046]
724[Use DLL aware runIO_closure instead of base_GHCziTopHandler_runIO_closure directly
725Ben.Lippmeier@anu.edu.au**20091114061559]
726[RTS also uses runSparks_closure from base
727Ben.Lippmeier@anu.edu.au**20091114061445]
728[Provide extralibs when linking Windows DLLs
729Ben.Lippmeier@anu.edu.au**20091114061109]
730[Don't share low valued Int and Char closures with Windows DLLs
731Ben.Lippmeier@anu.edu.au**20091114060455]
732[Windows DLLs: use one import lib for each DLL the RTS needs.
733Ben.Lippmeier@anu.edu.au**20091111014821]
734[Add autoconf code to locate dlltool on Windows
735Ben.Lippmeier@anu.edu.au**20091110051257]
736[Break recursive imports between the RTS and base library on Windows.
737Ben.Lippmeier@anu.edu.au**20091106062732
738 
739 The file rts/win32/libHSbase.def contains a list of all the
740 symbols from the base library that the RTS needs.
741 
742 When building the RTS into a DLL on Windows, we want to link the DLL
743 for the RTS before we link the DLL for the base library. We use
744 libHSbase.def to make the "import library" libHSbase.so.a, which
745 contains stubs for each of the symbols from the base library that
746 the RTS needs.
747]
748[Add the msysCORE*.tar.gz tarball to the list of tarballs we unpack
749Ian Lynagh <igloo@earth.li>**20091118195523]
750[Put the libffi files to be installed into a dist directory
751Ian Lynagh <igloo@earth.li>**20091118150508
752 This meakes it easier to correctly clean libffi
753]
754[Add ghc-tarballs to the list of directories that go into an sdist
755Ian Lynagh <igloo@earth.li>**20091118131047]
756[Remove redundant libffi/tarball directory
757Ian Lynagh <igloo@earth.li>**20091118124102
758 We now use the tarball in the ghc-tarballs repo
759]
760[Fix gen_contents_index on MSYS
761Ian Lynagh <igloo@earth.li>**20091117223556
762 On MSYS
763     sed 's/.*[ \t]//'
764 wasn't matching
765     version:<tab>1.0
766 so I've switched to
767     's/.*[[:space:]]//'
768 which works on Linux, cygwin and MSYS.
769]
770[include the GHC package docs in a bindist
771Simon Marlow <marlowsd@gmail.com>**20091117151133
772 Ignore-this: c4a10221b1a2a4778494018bca7d2169
773]
774[exclude some haddock-related rules during BINDIST
775Simon Marlow <marlowsd@gmail.com>**20091117151123
776 Ignore-this: 20b4194b26766d6ab701683af520a7d4
777]
778[Add an install-docs target that emits a helpful diagnostic (#3662)
779Simon Marlow <marlowsd@gmail.com>**20091116120137
780 Ignore-this: 1c5414730614b205c67919f3ea363c00
781]
782[fix install_docs dependencies, and add a missing $(INSTALL_DIR)
783Simon Marlow <marlowsd@gmail.com>**20091116115630
784 Ignore-this: 21230df54e79f12f61e9c82a0ae02fad
785]
786[Tweak to the directory-building rule
787Simon Marlow <marlowsd@gmail.com>**20091113125719
788 Ignore-this: b9e1fe6bcbfd4ff56905517f32b646f7
789 So we don't try to recreate directories just because they are older
790 than mkdirhier, since mkdirhier won't touch them.
791]
792[exprIsHNF should "look through" lets
793simonpj@microsoft.com**20091117125526
794 Ignore-this: 3e77d029c0f314c53171f0378939b496
795 
796 I can't quite remember when I spotted this, but exprIsHNF (and
797 similarly exprIsConLike) should ignore enclosing let-bindings,
798 since they don't affect termination.
799]
800[Improvement to typecheck higher-rank rules better
801simonpj@microsoft.com**20091117125417
802 Ignore-this: c5791cbe9540376b9ff46e2a6563bcc2
803 
804 See Note [Typechecking rules] in TcRules. 
805 Suggested by Roman
806]
807[Apply RULES to simplified arguments
808simonpj@microsoft.com**20091117104437
809 Ignore-this: 9a3475a9871f45ffa115dec44e376e3c
810 
811 See Note [RULEs apply to simplified arguments] in Simplify.lhs
812 A knock-on effect is that rules apply *after* we try inlining
813 (which uses un-simplified arguments), but that seems fine.
814]
815[Improvements to pretty-printing of Core
816simonpj@microsoft.com**20091117103626
817 Ignore-this: ad386865644b4dbcd98adab409d7c523
818]
819[Fix formatting of module deprecation/warning messages
820Duncan Coutts <duncan@well-typed.com>**20091115155617
821 Ignore-this: a41444bdda003aee4412eb56a0e7d052
822 It was accidentally using list syntax. Fixes #3303 again.
823]
824[Wibble to comment
825simonpj@microsoft.com**20091113145944
826 Ignore-this: 730f7cad452ac96d59ee2e74a855c19d
827]
828[TAG 2009-11-15
829Ian Lynagh <igloo@earth.li>**20091115155059]
830Patch bundle hash:
8315b9eb8b9a34fb7d58e1927fdec768004eaf32b11