Fri Dec  4 23:40:12 EET 2009  Sergei Trofimovich <[email protected]>
  * configure.ac: fix libm checks (Trac #3730)
  
  libbfd pulled libm as dependency and broke LIBM= detection.
  
  Patch moves libm in library tests as early as possible.
  Thanks to asuffield for suggesting such a simple fix.
  Thanks to Roie Kerstein and Renato Gallo for finding
  and tracking down the issue.
New patches:

[configure.ac: fix libm checks (Trac #3730)
Sergei Trofimovich <[email protected]>**20091204214012
 Ignore-this: f3372535a68f3833247f679b023745c8
 
 libbfd pulled libm as dependency and broke LIBM= detection.
 
 Patch moves libm in library tests as early as possible.
 Thanks to asuffield for suggesting such a simple fix.
 Thanks to Roie Kerstein and Renato Gallo for finding
 and tracking down the issue.
] {
hunk ./configure.ac 716
   AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.])
 fi
 
-dnl ** check whether this machine has BFD and liberty installed (used for debugging)
-dnl    the order of these tests matters: bfd needs liberty
-AC_CHECK_LIB(iberty, xmalloc)
-AC_CHECK_LIB(bfd,    bfd_init)
-
 dnl ** check for math library
hunk ./configure.ac 717
+dnl    Keep that check as early as possible.
+dnl    as we need to know whether we need libm
+dnl    for math functions or not
+dnl    (see http://hackage.haskell.org/trac/ghc/ticket/3730)
 AC_CHECK_FUNC(atan,[fp_libm_not_needed=yes;LIBM=],[fp_libm_not_needed=dunno])
 if test x"$fp_libm_not_needed" = xdunno; then
    AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"],[LIBM=])
hunk ./configure.ac 727
 fi
 AC_SUBST([LIBM])
 
+dnl ** check whether this machine has BFD and liberty installed (used for debugging)
+dnl    the order of these tests matters: bfd needs liberty
+AC_CHECK_LIB(iberty, xmalloc)
+AC_CHECK_LIB(bfd,    bfd_init)
+
 dnl ################################################################
 dnl Check for libraries
 dnl ################################################################
}

Context:

[Eliminate mkdependC
Ian Lynagh <[email protected]>**20091209123929
 We now just call gcc to get the dependencies directly
] 
[Change some HC_OPTS to CC_OPTS, so they are used when making dependencies
Ian Lynagh <[email protected]>**20091208200315] 
[Add -Iincludes to hp2ps's CC_OPTS
Ian Lynagh <[email protected]>**20091208175718
 Making C deps for hp2ps always failed, but we used to carry on regardless
] 
[add locking in mkWeakForeignEnv#
Simon Marlow <[email protected]>**20091208101229
 Ignore-this: 3902631687fc252c0e6794d58641371b
] 
[declare g0 (fixes compilation failure with -fvia-C)
Simon Marlow <[email protected]>**20091208100925] 
[simplify weak pointer processing
Simon Marlow <[email protected]>**20091208094822
 Ignore-this: d88091b23860eeba6cd971282b05c2e6
] 
[simplification/optimisation: update tso->bound->tso when scavenging the TSO
Simon Marlow <[email protected]>**20091208085739
 Ignore-this: 401e2c67e42de9671191ba9d18c3fcf7
] 
[threadStackUnderflow: fix recently introduced bug (conc068(threaded1) failure)
Simon Marlow <[email protected]>**20091207170127
 Ignore-this: cab7b66b3b1478d44ad5272eeec84004
 
 bug introduced by "threadStackUnderflow: put the new TSO on the mut
 list if necessary"
] 
[need locking around use of weak_ptr_list in mkWeak#
Simon Marlow <[email protected]>**20091207145213
 Ignore-this: 9c7d506c30652de4dd5c47d1989022c1
] 
[remove global 'total_allocated', seems to be the same as 'GC_tot_alloc'
Simon Marlow <[email protected]>**20091207115359
 Ignore-this: d174f167a2be6864bbab672f3d5b7c5
] 
[Add some explanation about overlapping instances
[email protected]**20091207153915
 Ignore-this: 627db39187f0ed8a10fe46e667a849a
 
 Trac #3734 suggested addding some extra guidance about 
 incoherence and overlap; now done
] 
[Tidy up deriving error messages
[email protected]**20091207130850
 Ignore-this: 4e134f6b62814ea6f361df7525c25a2d
 
 I did this in response to a suggestion in Trac #3702
] 
[Fix profiling build
Simon Marlow <[email protected]>**20091207092314
 Ignore-this: eb397ec713cb7a8f6e56f409e0663ffe
] 
[Minor refactoring to remove redundant code
[email protected]**20091207083312
 Ignore-this: 3203447fa823823ae27565f53d39bd10
] 
[Fix a nasty (and long-standing) FloatOut performance bug
[email protected]**20091207083246
 Ignore-this: a64b98992fa4ced434d1edf0b89842ec
 
 The effect was that, in deeply-nested applications, FloatOut would
 take quadratic time.  A good example was compiling 
     programs/barton-mangler-bug/Expected.hs
 in which FloatOut had a visible pause of a couple of seconds!
 Profiling showed that 40% of the entire compile time was being
 consumbed by the single function partitionByMajorLevel.
 
 The bug was that the floating bindings (type FloatBinds) was kept
 as a list, which was partitioned at each binding site.  In programs
 with deeply nested lists, such as
        e1 : e2 : e3 : .... : e5000 : []
 this led to quadratic behaviour.
 
 The solution is to use a proper finite-map representation;
 see the new definition of FloatBinds near the bottom of FloatOut.
] 
[Add a new to-do to cmm-notes
[email protected]**20091207081130
 Ignore-this: fc835da15dd8a206c2c1bdc6c7053c5b
] 
[Comments only, principally about IfaceDeclExtras
[email protected]**20091207081108
 Ignore-this: 1004303ab0df7802295d67c613c4ab24
] 
[Comments only, about RULE plumbing
[email protected]**20091207080442
 Ignore-this: 1a559744f6ad75e151afbfb2281bceb4
] 
[Add splitUFM to UniqFM (used in a forthcoming patch)
[email protected]**20091204160820
 Ignore-this: 332aa029f25ec3f22e4f195ecd44b40b
 
 splitUFM :: Uniquable key => UniqFM elt -> key -> (UniqFM elt, Maybe elt, UniqFM elt)
    -- Splits a UFM into things less than, equal to, and greater than the key
] 
[Add lengthBag to Bag (using in forthcoming patch)
[email protected]**20091204155055
 Ignore-this: 5af0f45d6b51bc77e54c5cb0e2b1e607
] 
[Use addToUFM_Acc where appropriate
[email protected]**20091204155036
 Ignore-this: 38e768c4a9f00d7870a631a9472e6edc
 
 This way of extending a UniqFM has existed for some time, but
 we weren't really using it.
 
 addToUFM_Acc	:: Uniquable key =>
 			      (elt -> elts -> elts)	-- Add to existing
 			   -> (elt -> elts)		-- New element
 			   -> UniqFM elts 		-- old
 			   -> key -> elt 		-- new
 			   -> UniqFM elts		-- result
] 
[Add comments to "OPTIONS_GHC -fno-warn-orphans" pragmas
Ian Lynagh <[email protected]>**20091205165721] 
[Add some missing exports back for GHC package users; fixes trac #3715
Ian Lynagh <[email protected]>**20091205153532] 
[Add some comments on the alternative layout rule state
Ian Lynagh <[email protected]>**20091205152039] 
[Tweak layout for alternative layout rule
Ian Lynagh <[email protected]>**20091203164424] 
[Link all dynamic libraries with the correct install_name on Mac OS/X.
Ian Lynagh <[email protected]>**20091204143614
 This is a rerecord of
     Stephen Blackheath <[email protected]>**20090930222855
 to avoid conflicts.
] 
[Document the new -dylib-install-name option in the user's guide.
Stephen Blackheath <[email protected]>**20091001051637
 Ignore-this: 568f6ad423f737ccda3a79f2d8efdb97
] 
[Add -dylib-install-name option to GHC so the install name can be set for dynamic libs on Mac OS/X.
Stephen Blackheath <[email protected]>**20090930223708
 Ignore-this: 2323929595c0dc03a2e2ea802477a930
] 
[Force -fPIC when linking against dynamic libraries on Mac OS/X.
Stephen Blackheath <[email protected]>**20090928203800
 Ignore-this: 465433af2349779b510f500dc79768f3
 Otherwise you get
 /tmp/ghc7602_0/ghc7602_0.s:207:0:
    non-relocatable subtraction expression, "___stginit_Lib_dyn" minus "L1x2;4"
 /tmp/ghc7602_0/ghc7602_0.s:207:0:
    symbol: "___stginit_Lib_dyn" can't be undefined in a subtraction expression
] 
[evaluate_large: evaluate large objects to bd->dest rather than gen->to
Simon Marlow <[email protected]>**20091204111037
 Ignore-this: 6c77407750d4a6178851aeb79ded20d1
 This fixes aging of large objects in the new scheme.  Bug found by
 perf/space_leaks/space_leak_001.  Yay perf regressions tests.
] 
[Correction to the allocation stats following earlier refactoring
Simon Marlow <[email protected]>**20091204110839
 Ignore-this: 7ac497c67706bedd29c79091c100d22f
] 
[export g0
Simon Marlow <[email protected]>**20091203165209
 Ignore-this: 69b5445beb91ac99bb018b9806de90a
] 
[GC refactoring, remove "steps"
Simon Marlow <[email protected]>**20091203150728
 Ignore-this: 5360b8bf30c6847ccb7ffa8c431e81ff
 
 The GC had a two-level structure, G generations each of T steps.
 Steps are for aging within a generation, mostly to avoid premature
 promotion.  
 
 Measurements show that more than 2 steps is almost never worthwhile,
 and 1 step is usually worse than 2.  In theory fractional steps are
 possible, so the ideal number of steps is somewhere between 1 and 3.
 GHC's default has always been 2.
 
 We can implement 2 steps quite straightforwardly by having each block
 point to the generation to which objects in that block should be
 promoted, so blocks in the nursery point to generation 0, and blocks
 in gen 0 point to gen 1, and so on.
 
 This commit removes the explicit step structures, merging generations
 with steps, thus simplifying a lot of code.  Performance is
 unaffected.  The tunable number of steps is now gone, although it may
 be replaced in the future by a way to tune the aging in generation 0.
] 
[fix error message on Windows (fixes rtsflags001)
Simon Marlow <[email protected]>**20091202141135
 Ignore-this: 239fed52f7f5358b034acd6512d26ef4
] 
[Fix loading of annotations
Roman Leshchinskiy <[email protected]>**20091204024259
 Ignore-this: 5750856feecbf9c6aeebfec012b1a1fd
 
 The problem was that we collected all annotations we knew about once when the
 simplifier started and threaded them through the CoreM monad. If new interface
 files were loaded during simplification, their annotations would not be
 visible to the simplifier.
 
 Now, we rebuild the annotation list at the start of every simplifier pass that
 needs it (which is only SpecConstr at the moment). This ensures that we see
 all annotations that have been loaded so far. This is somewhat similar to how
 RULES are handled.
] 
[Add new ForceSpecConstr annotation
Roman Leshchinskiy <[email protected]>**20091203065455
 Ignore-this: ca5327f85d9d40c78d95e8bfe3e7fab1
 
 Annotating a type with {-# ANN type T ForceSpecConstr #-} makes SpecConstr
 ignore -fspec-constr-threshold and -fspec-constr-count for recursive functions
 that have arguments of type T. Such functions will be specialised regardless
 of their size and there is no upper bound on the number of specialisations
 that can be generated. This also works if T is embedded in other types such as
 Maybe T (but not T -> T).
 
 T should not be a product type because it could be eliminated by the
 worker/wrapper transformation. For instance, in
 
 data T = T Int Int
 
 foo :: T -> Int
 foo (T m n) = ... foo (T m' n') ...
 
 SpecConstr will never see the T because w/w will get rid of it. I'm still
 thinking about whether fixing this is worthwhile.
] 
[Generate INLINE pragmas for PA methods
Roman Leshchinskiy <[email protected]>**20091203031452
 Ignore-this: 3435044aec2737ba58d269aeff915fbd
] 
[Add a GHC layout extension to the alternative layout rule
Ian Lynagh <[email protected]>**20091203155708] 
[Fix HPC column numbers, following the column number changes in GHC
Ian Lynagh <[email protected]>**20091203135520] 
[Whitespace only
Ian Lynagh <[email protected]>**20091203132259] 
[Fix column numbers used when highlighting :list output
Ian Lynagh <[email protected]>**20091203130328] 
[add a missing lock around allocGroup()
Simon Marlow <[email protected]>**20091203110209
 Ignore-this: 5898b3de4010e16789b628b004aa77db
] 
[remove unused cap->in_gc flag
Simon Marlow <[email protected]>**20091202154240
 Ignore-this: db2ef6c957c8d32233bbcc344e3c06b6
] 
[Refactoring only
Simon Marlow <[email protected]>**20091202123806
 Ignore-this: 95a93f6e330f2c609c197194412cac75
] 
[move sanity checking code from Storage.c to Sanity.c
Simon Marlow <[email protected]>**20091202121141
 Ignore-this: 216d434c3c3d2250effac22b37bc2b4d
] 
[stg_ap_0_fast: sanity-check only the topmost frame, not the whole stack
Simon Marlow <[email protected]>**20091202115109
 Ignore-this: ad45e07c26aa961913d367d7c53efb75
 Sanity checking was getting too slow in some cases, this returns it to
 a constant-factor overhead.
] 
[Fix profiling build
Simon Marlow <[email protected]>**20091203085930
 Ignore-this: ff3de527cbf7703e8bac4a48933cd8ba
] 
[More work on the simplifier's inlining strategies
[email protected]**20091202174256
 Ignore-this: 5840392a95d9a47f37c3074f7394f2c2
 
 This patch collects a small raft of related changes
 
 * Arrange that during 
      (a) rule matching and 
      (b) uses of exprIsConApp_maybe
   we "look through" unfoldings only if they are active
   in the phase. Doing this for (a) required a bit of 
   extra plumbing in the rule matching code, but I think
   it's worth it.
 
   One wrinkle is that even if inlining is off (in the 'gentle'
   phase of simplification) during rule matching we want to
   "look through" things with inlinings.  
    See SimplUtils.activeUnfInRule.
 
   This fixes a long-standing bug, where things that were
   supposed to be (say) NOINLINE, could still be poked into
   via exprIsConApp_maybe. 
 
 * In the above cases, also check for (non-rule) loop breakers; 
   we never look through these.  This fixes a bug that could make
   the simplifier diverge (and did for Roman).  
   Test = simplCore/should_compile/dfun-loop
 
 * Try harder not to choose a DFun as a loop breaker. This is 
   just a small adjustment in the OccurAnal scoring function
 
 * In the scoring function in OccurAnal, look at the InlineRule
   unfolding (if there is one) not the actual RHS, beause the
   former is what'll be inlined.  
 
 * Make the application of any function to dictionary arguments
   CONLIKE.  Thus (f d1 d2) is CONLIKE.  
   Encapsulated in CoreUtils.isExpandableApp
   Reason: see Note [Expandable overloadings] in CoreUtils
 
 * Make case expressions seem slightly smaller in CoreUnfold.
   This reverses an unexpected consequences of charging for
   alternatives.
 
 Refactorings
 ~~~~~~~~~~~~
 * Signficantly refactor the data type for Unfolding (again). 
   The result is much nicer.  
 
 * Add type synonym BasicTypes.CompilerPhase = Int
   and use it
 
 Many of the files touched by this patch are simply knock-on
 consequences of these two refactorings.
] 
[Fix Trac #3100: reifyType
[email protected]**20091130175204
 Ignore-this: ad1578c3d2e3da6128cd5052c8b64dc
 
 A type without any leading foralls may still have constraints
    eg:  ?x::Int => Int -> Int
 
 But reifyType was failing in this case.
 
 Merge to 6.12.
] 
[Fix Trac #3102: pre-matching polytypes
[email protected]**20091130174441
 Ignore-this: 3e3fa97e0de28b005a1aabe9e5542b32
 
 When *pre-matching* two types
      forall a. C1 => t1  ~  forall a. C2 => t2
 we were matching t1~t2, but totally ignoring C1,C2
 That's utterly wrong when pre-matching
        (?p::Int) => String  ~  a
 because we emerge with a:=String!
 
 All this is part of the impredicative story, which is about
 to go away, but still.
 
 Worth merging this to 6.12
] 
[threadStackUnderflow: put the new TSO on the mut list if necessary
Simon Marlow <[email protected]>**20091202144549
 Ignore-this: 839e7ad7893b3d7ea6481030ce7c6fe6
] 
[don't sanity check the whole stack when switching interp<->compiled
Simon Marlow <[email protected]>**20091202134121
 Ignore-this: 999b44d4dd096eceda81dda65f65a2df
] 
[fix to sanity checking for ThreadRelocated TSOs
Simon Marlow <[email protected]>**20091202134041
 Ignore-this: 52364f29041e6909b550956087649220
] 
[sanity check the top stack frame, not the whole stack
Simon Marlow <[email protected]>**20091202134020
 Ignore-this: c4c9b58c13299eecf7ec8cb79e34dc1f
] 
[Make allocatePinned use local storage, and other refactorings
Simon Marlow <[email protected]>**20091201160321
 Ignore-this: ec1334a9a5ec0de2567aa81d74b715ba
 
 This is a batch of refactoring to remove some of the GC's global
 state, as we move towards CPU-local GC.  
 
   - allocateLocal() now allocates large objects into the local
     nursery, rather than taking a global lock and allocating
     then in gen 0 step 0.
 
   - allocatePinned() was still allocating from global storage and
     taking a lock each time, now it uses local storage. 
     (mallocForeignPtrBytes should be faster with -threaded).
     
   - We had a gen 0 step 0, distinct from the nurseries, which are
     stored in a separate nurseries[] array.  This is slightly strange.
     I removed the g0s0 global that pointed to gen 0 step 0, and
     removed all uses of it.  I think now we don't use gen 0 step 0 at
     all, except possibly when there is only one generation.  Possibly
     more tidying up is needed here.
 
   - I removed the global allocate() function, and renamed
     allocateLocal() to allocate().
 
   - the alloc_blocks global is gone.  MAYBE_GC() and
     doYouWantToGC() now check the local nursery only.
] 
[Free full_prog_argv at exit, closing a memory leak
Simon Marlow <[email protected]>**20091201122801
 Ignore-this: 8fdb41e09bfc318821c427d2f22af737
] 
[free cap->saved_mut_lists too
Simon Marlow <[email protected]>**20091201113448
 Ignore-this: 973e1de140e104c126fe4a213791ba86
 fixes some memory leakage at shutdown
] 
[exitScheduler: move boundTaskExiting call outside #ifdef THREADED_RTS
Simon Marlow <[email protected]>**20091201113352
 Ignore-this: d913df43b14054f73c0fa06d0205952c
 Fixes a little leaked memory at shutdown in non-threaded RTS
] 
[Use dlltool from the in-tree mingw installation
Ian Lynagh <[email protected]>**20091201190544
 We only use dlltool on Windows, and this way we don't require that
 the user has it installed.
] 
[Fix Commentary link in the HACKING file; trac #3706
Ian Lynagh <[email protected]>**20091201150149] 
[Add an entry fo the ghci command :run to the user guide
Ian Lynagh <[email protected]>**20091201173339] 
[Fix typo in docs
Ian Lynagh <[email protected]>**20091201170550] 
[Delay expansion of some makefile variables until they are available
Ian Lynagh <[email protected]>**20091201133609] 
[Call $(SED) rather than sed
Ian Lynagh <[email protected]>**20091201131123] 
[Look for sed as gsed first
Ian Lynagh <[email protected]>**20091201130741
 Solaris's sed apparently doesn't understand [:space:]
] 
[Avoid running empty for loops; fixes trac #3683
Ian Lynagh <[email protected]>**20091201125927
 Solaris's sh gives
     /bin/sh: syntax error at line 1: `;' unexpected
 when faced with something like
     for x in ; do ...; done
 Patch from Christian Maeder.
] 
[Fix PS file generation
Simon Marlow <[email protected]>**20091201154254
 Ignore-this: 7b7122208e845b029a8b7215149fd203
 (the image doesn't work, but at least db2latex doesn't fall over)
] 
[Implement a new heap-tuning option: -H
Simon Marlow <[email protected]>**20091130151836
 Ignore-this: 2089b9dfaf6c095dc0460cef39e9d586
 
 -H alone causes the RTS to use a larger nursery, but without exceeding
 the amount of memory that the application is already using.  It trades
 off GC time against locality: the default setting is to use a
 fixed-size 512k nursery, but this is sometimes worse than using a very
 large nursery despite the worse locality.
 
 Not all programs get faster, but some programs that use large heaps do
 much better with -H.  e.g. this helps a lot with #3061 (binary-trees),
 though not as much as specifying -H<large>.  Typically using -H<large>
 is better than plain -H, because the runtime doesn't know ahead of
 time how much memory you want to use.
 
 Should -H be on by default?  I'm not sure, it makes some programs go
 slower, but others go faster.
] 
[Store a destination step in the block descriptor
Simon Marlow <[email protected]>**20091129164251
 Ignore-this: c406550acfe10141fcc38d3949d67490
 At the moment, this just saves a memory reference in the GC inner loop
 (worth a percent or two of GC time).  Later, it will hopefully let me
 experiment with partial steps, and simplifying the generation/step
 infrastructure.
] 
[Fix the prof_scc.png image in the profiling section (#3694)
Simon Marlow <[email protected]>**20091130132703
 Ignore-this: 9774bad70187274e3dd283d66703004
] 
[document 'recache' command in the help output (#3684)
Simon Marlow <[email protected]>**20091130122040
 Ignore-this: 95a51f76e66055af27cdfc7b5ad7deb3
] 
[Check whether the main function is actually exported (#414)
Simon Marlow <[email protected]>**20091130112327
 Ignore-this: 1afaa18d8c0c9e1d029531ac9d4865bb
] 
[Avoid using non-standard GNU tar option --force-local
Simon Marlow <[email protected]>**20091130112605
 Ignore-this: ac066722b15eb93e752d4f63391c9e3c
] 
[Reorder ALL_RTS_LIBS
Matthias Kilian <[email protected]>**20091115175405
 Ignore-this: 795cfd5215ec73eea729aa2b3097817e
 
 ALL_RTS_LIBS is (ab)used for linking ghc when BootingFromHc=Yes,
 which needs libHSrtsmain.a before libHSrts.a.
 
] 
[Update dependencies
Ian Lynagh <[email protected]>**20091129165534] 
[Follow Cabal changes
Ian Lynagh <[email protected]>**20091129165141] 
[Tweak layout to work with alternative layout rule
Ian Lynagh <[email protected]>**20091129163044] 
[Tweak the alternative layout rule: {} contains commas
Ian Lynagh <[email protected]>**20091129155454] 
[Correct the advanceSrcLoc calculation for tabs
Ian Lynagh <[email protected]>**20091129153933
 It was off-by-one
] 
[Tweak alternative layout rule
Ian Lynagh <[email protected]>**20091129152323] 
[Make the alternative layout rule cope with file pragmas
Ian Lynagh <[email protected]>**20091129145840] 
[Give more informative error messages
Ian Lynagh <[email protected]>**20091129031029
 We used to just get
     ghc: panic! (the 'impossible' happened)
       (GHC version 6.13.20091128 for x86_64-unknown-linux):
         too few bytes. Failed reading at byte position 32753
 with no indication of what was being parsed.
] 
[Teach advanceSrcLoc about tab characters
Ian Lynagh <[email protected]>**20091128151204] 
[Whitespace only
Ian Lynagh <[email protected]>**20091128150731] 
[Columns now start at 1, as lines already did
Ian Lynagh <[email protected]>**20091127224050
 Also corrected a couple of line 0's to line 1
] 
[Remove configure tests on tarballs that no longer exist
Ian Lynagh <[email protected]>**20091127150101] 
[Implement non-decreasing do indentation in the alternative layout rule
Ian Lynagh <[email protected]>**20091127011932] 
[add docs for Unicode entities in #2978
Simon Marlow <[email protected]>**20091125153649
 Ignore-this: f3d1561ef8f55606d9022ab7243e3800
] 
[Apply patch from #2978: add more Unicode syntax
Simon Marlow <[email protected]>**20090918130333
 Ignore-this: 1393009fdf2383ca43046ba0767a51e0
] 
[Use UTF-8 explicitly for InstalledPackageInfo
Simon Marlow <[email protected]>**20091125141730
 Ignore-this: 45be1506dd5c3339fb229a44aa958235
 So ghc-pkg register/update takes input in UTF-8, and ghc-pkg dump
 outputs in UTF-8.  Textual package config files in the package DB are
 assumed to be in UTF-8.
] 
[Comments only, esp about RecStmts
[email protected]**20091126163241
 Ignore-this: 6fb05bd70b1d0cbb55fb01cf1f17ea77
] 
[Fix a bug in alternative layout rule
Ian Lynagh <[email protected]>**20091125231901] 
[Fix a bug in alternative layout
Ian Lynagh <[email protected]>**20091125230616
 And make the code simpler in the process!
] 
[Bug fix for alternative layout rule
Ian Lynagh <[email protected]>**20091125205809] 
[Tweak alternative layout rule
Ian Lynagh <[email protected]>**20091125193854] 
[Add unboxed parentheses to the alternative layout rule
Ian Lynagh <[email protected]>**20091125182421] 
[Tweak the warning suppression flags used in Lexer
Ian Lynagh <[email protected]>**20091125171815] 
[Implement the alternative layout rule
Ian Lynagh <[email protected]>**20091125171656
 Caution: Largely untested
] 
[Fix some warning in Lexer
Ian Lynagh <[email protected]>**20091124233726] 
[threadStackOverflow: check whether stack squeezing released some stack (#3677)
Simon Marlow <[email protected]>**20091125125917
 Ignore-this: d35089eb93f5b367b7d1c445bda79232
 
 In a stack overflow situation, stack squeezing may reduce the stack
 size, but we don't know whether it has been reduced enough for the
 stack check to succeed if we try again.  Fortunately stack squeezing
 is idempotent, so all we need to do is record whether *any* squeezing
 happened.  If we are at the stack's absolute -K limit, and stack
 squeezing happened, then we try running the thread again.
 
 We also want to avoid enlarging the stack if squeezing has already
 released some of it.  However, we don't want to get into a
 pathalogical situation where a thread has a nearly full stack (near
 its current limit, but not near the absolute -K limit), keeps
 allocating a little bit, squeezing removes a little bit, and then it
 runs again.  So to avoid this, if we squeezed *and* there is still
 less than BLOCK_SIZE_W words free, then we enlarge the stack anyway.
] 
[add a comment to TSO_MARKED
Simon Marlow <[email protected]>**20091125104954
 Ignore-this: 7111281a443533dc453dbf9481dba519
] 
[Pass --no-user-package-conf to ghc-pkg in bindisttest
Roman Leshchinskiy <[email protected]>**20091125115953] 
[Add a note saying what Haddock relies on about Instance.is_dfun
David Waern <[email protected]>**20091124210308] 
[Treat () as an enumeration tycon
Ian Lynagh <[email protected]>**20091124011313
 This fixes deriving Ord (), which previously failed with
   ghc-stage1: panic! (the 'impossible' happened)
     (GHC version 6.13.20091123 for x86_64-unknown-linux):
           TcGenDeriv:mk_FunBind
] 
[Whitespace only
Ian Lynagh <[email protected]>**20091124003221] 
[inline has moved to GHC.Magic
Ian Lynagh <[email protected]>**20091123200308] 
[Use the ghc-perl tarball on Windows, instead of the msys one
Ian Lynagh <[email protected]>**20091120153953] 
[Install perl on Windows
Ian Lynagh <[email protected]>**20091120223830] 
[Remove cprAnalysis directory from hs-source-dirs
[email protected]**20091120161911
 Ignore-this: e7d3707794979e45b43136137c939af1
] 
[Remove -fasm from mk/validate-settings.mk
Ian Lynagh <[email protected]>**20091120125656
 Makes it easier to do unregisterised validate runs
] 
[Fix some dependencies in bindists
Ian Lynagh <[email protected]>**20091120125342
 We can't depend on sources in a bindist, because we don't have the sources.
] 
[Add a rule to allow us to sdist libraries easily
Ian Lynagh <[email protected]>**20091119160527] 
[Check upper/lower bounds on various RTS flags (#3633)
Simon Marlow <[email protected]>**20091119142422
 Ignore-this: 8cbbb3f0f2c46711967491d5c028a410
 
 Also, make K mean 1024 rather than 1000, in RTS flags (similarly for M
 and G).  The main reason I want to change it is that otherwise this
 might be confusing:
   
 exp3_8: error in RTS option -H4k: size outside allowed range (4096 - 18446744073709551615)
 
 And I think the original reason for using 1000 instead of 1024,
 worries about direct-mapped caches, is not an issue in this context
 (even if you can find a direct-mapped cache these days).
] 
[define HS_WORD_MAX
Simon Marlow <[email protected]>**20091119140143
 Ignore-this: ed27e7c7ac0bd03cddcd745ae7053a74
] 
[Print the prog name in errorBelch() even if prog_argv is not set yet
Simon Marlow <[email protected]>**20091119135230
 Ignore-this: ec42e7a4f344ebc34befddfc3d74a946
 This means we get the prog name in error messages from the flag parser
] 
[Remove dead code
Roman Leshchinskiy <[email protected]>**20091112070455
 Ignore-this: d30b668cb3c396fe21e5e4cd9b8be151
] 
[Remove the (very) old strictness analyser
[email protected]**20091119154347
 Ignore-this: 5d49f66b0baad989ca66c53fde8f2d23
 
 I finally got tired of the #ifdef OLD_STRICTNESS stuff.  I had been
 keeping it around in the hope of doing old-to-new comparisions, but
 have failed to do so for many years, so I don't think it's going to
 happen.  This patch deletes the clutter.
] 
[Make INLINE warning more precise
[email protected]**20091119132711
 Ignore-this: f1494494f37c5e618e639912ff82a7f5
] 
[Implement -fexpose-all-unfoldings, and fix a non-termination bug
[email protected]**20091119125711
 Ignore-this: 54d029014659959151d1681842210cde
 
 The -fexpose-all-unfoldings flag arranges to put unfoldings for *everything*
 in the interface file.  Of course,  this makes the file a lot bigger, but
 it also makes it complete, and that's great for supercompilation; or indeed
 any whole-program work.
 
 Consequences:
   * Interface files need to record loop-breaker-hood.  (Previously,
     loop breakers were never exposed, so that info wasn't necessary.)
     Hence a small interface file format change. 
 
   * When inlining, must check loop-breaker-hood. (Previously, loop
     breakers didn't have an unfolding at all, so no need to check.)
 
   * Ditto in exprIsConApp_maybe.  Roman actually tripped this bug, 
     because a DFun, which had an unfolding, was also a loop breaker
 
   * TidyPgm.tidyIdInfo must be careful to preserve loop-breaker-hood
 
 So Id.idUnfolding checks for loop-breaker-hood and returns NoUnfolding
 if so. When you want the unfolding regardless of loop-breaker-hood, 
 use Id.realIdUnfolding.
 
 I have not documented the flag yet, because it's experimental.  Nor
 have I tested it thoroughly.  But with the flag off (the normal case)
 everything should work.
] 
[Re-implement the binder-swap stuff in OccurAnal
[email protected]**20091119124524
 Ignore-this: 662ed559e161be958b1eff1a49d750a3
 
 This is a pretty big patch, but it has a very local effect.
 It affects only the binder-swap mechanism in OccurAnal, which
 was not working well becuase it's more subtle than I'd realised
 (See Note [getProxies is subtle]).  I think this does a much
 better job.
] 
[Try harder not to make DFuns into loop breakers
[email protected]**20091119124127
 Ignore-this: 922d9a2b3406a3dbbfc5a42d1a286e2a
 
 See Note [DFuns should not be loop breakers]
] 
[Extend the GHCi FAQ slightly
[email protected]**20091117132308
 Ignore-this: 8257aaf06ff32904a91121a0734d1c4
] 
[Add gnutar to the list of names we use when looking for GNU tar
Ian Lynagh <[email protected]>**20091119144927] 
[Add support for the man page to the new build system
Ian Lynagh <[email protected]>**20091119140811] 
[Refactor case-merging and identical-alternative optimisations
[email protected]**20091119123704
 Ignore-this: db12d31395ed99c2341cc4d7d5dca1e
 
 These two optimisations were originally done by SimplUtils.mkCase
 *after* all the pieces have been simplified.  Some while ago I
 moved them *before*, so they were done by SimplUtils.prepareAlts.
 It think the reason was that I couldn't rely on the dead-binder 
 information on OutIds, and that info is useful in these optimisations.
 
 However, 
  (a) Other changes (notably moving case-binder-swap to OccurAnal)
      have meant that dead-binder information is accurate in 
      OutIds
 
  (b) When there is a cascade of case-merges, they happen in 
      one sweep if you do it after, but in many sweeps if you
      do it before.  Reason: doing it after means you are looking
      at nice simplified Core.
] 
[Fix a nasty infelicity in the size computation of CoreUnfold
[email protected]**20091119115736
 Ignore-this: ecff5289ab14c0df572135bf0b5179d6
 
 The size computation was treating gigantic case expressions as
 practically free, which they really aren't.  It was exacerbated by
 recent decisions to charge 0 for naked variables and constructors, so
 the RHS of the case might look free too.  A good example was 
 Foreign.C.Error.errnoToIOError, which hsa lots of join points
 that were getting inlined way to vigorously, so we had:
 
   *** Simplifier Phase 2 [main]:
       Result size = 2983
   *** Core Linted result of Simplifier mode 2 [main], iteration 1 out of 4:
       Result size = 640327
   *** Core Linted result of Simplifier mode 2 [main], iteration 2 out of 4:
       Result size = 1659
 
 Notice that gigantic intermediate!
 
 This patch adds a small charge for each *alternative*.  Of course,
 that'll also mean that there's a bit less inling of things involving
 case expressions.
] 
[Comments and white space only
[email protected]**20091119115122
 Ignore-this: dc8f9a72d6d57378d83154877b1d1126
] 
[Fix splitAppTys
Roman Leshchinskiy <[email protected]>**20091119102639
 Ignore-this: e669950c7d151c8a67910cd4bbac9cd6
] 
[Windows DLLs: Slurp across the actually static version of libffi
[email protected]**20091119000239] 
[Windows DLLs: Don't rely on stg/DLL.h being included in RtsAPI.h
[email protected]**20091118110548
 Ignore-this: 7dce0ede283974d7834fe12af3f71bd5
] 
[Fix warnings about unused imports
[email protected]**20091118110525
 Ignore-this: 93841770eadabf5bd3b9f859ca2de7eb
] 
[Windows DLLs: stifle more warnings about auto imported symbols
[email protected]**20091118090105] 
[Windows DLLs: stifle warnings about symbols being auto imported from DLLs
[email protected]**20091118051526] 
[Windows DLLs: add #ifdefery to turn off DLL import of libffi when building statically.
[email protected]**20091118043901] 
[Windows DLLs: disable extra shutdownHaskell() when unloading the RTS DLL
[email protected]**20091117050648] 
[Windows DLLs: remove dup symbol from def file
[email protected]**20091117043851] 
[Use opt_PIC not #defined __PIC__ in compiler source.
[email protected]**20091117043716] 
[Windows DLLs: CHARLIKE_closure and INTLIKE_closure aren't defined in this way.
[email protected]**20091114063240] 
[If a comment says "Is this correct?", it's not.
[email protected]**20091114063157] 
[Windows DLLs: gmp is in the integer-gmp package now.
[email protected]**20091114063046] 
[Use DLL aware runIO_closure instead of base_GHCziTopHandler_runIO_closure directly
[email protected]**20091114061559] 
[RTS also uses runSparks_closure from base
[email protected]**20091114061445] 
[Provide extralibs when linking Windows DLLs
[email protected]**20091114061109] 
[Don't share low valued Int and Char closures with Windows DLLs
[email protected]**20091114060455] 
[Windows DLLs: use one import lib for each DLL the RTS needs.
[email protected]**20091111014821] 
[Add autoconf code to locate dlltool on Windows
[email protected]**20091110051257] 
[Break recursive imports between the RTS and base library on Windows.
[email protected]**20091106062732
 
 The file rts/win32/libHSbase.def contains a list of all the 
 symbols from the base library that the RTS needs. 
 
 When building the RTS into a DLL on Windows, we want to link the DLL
 for the RTS before we link the DLL for the base library. We use 
 libHSbase.def to make the "import library" libHSbase.so.a, which 
 contains stubs for each of the symbols from the base library that
 the RTS needs.
] 
[Add the msysCORE*.tar.gz tarball to the list of tarballs we unpack
Ian Lynagh <[email protected]>**20091118195523] 
[Put the libffi files to be installed into a dist directory
Ian Lynagh <[email protected]>**20091118150508
 This meakes it easier to correctly clean libffi
] 
[Add ghc-tarballs to the list of directories that go into an sdist
Ian Lynagh <[email protected]>**20091118131047] 
[Remove redundant libffi/tarball directory
Ian Lynagh <[email protected]>**20091118124102
 We now use the tarball in the ghc-tarballs repo
] 
[Fix gen_contents_index on MSYS
Ian Lynagh <[email protected]>**20091117223556
 On MSYS
     sed 's/.*[ \t]//'
 wasn't matching
     version:<tab>1.0
 so I've switched to
     's/.*[[:space:]]//'
 which works on Linux, cygwin and MSYS.
] 
[include the GHC package docs in a bindist
Simon Marlow <[email protected]>**20091117151133
 Ignore-this: c4a10221b1a2a4778494018bca7d2169
] 
[exclude some haddock-related rules during BINDIST
Simon Marlow <[email protected]>**20091117151123
 Ignore-this: 20b4194b26766d6ab701683af520a7d4
] 
[Add an install-docs target that emits a helpful diagnostic (#3662)
Simon Marlow <[email protected]>**20091116120137
 Ignore-this: 1c5414730614b205c67919f3ea363c00
] 
[fix install_docs dependencies, and add a missing $(INSTALL_DIR)
Simon Marlow <[email protected]>**20091116115630
 Ignore-this: 21230df54e79f12f61e9c82a0ae02fad
] 
[Tweak to the directory-building rule
Simon Marlow <[email protected]>**20091113125719
 Ignore-this: b9e1fe6bcbfd4ff56905517f32b646f7
 So we don't try to recreate directories just because they are older
 than mkdirhier, since mkdirhier won't touch them.
] 
[exprIsHNF should "look through" lets
[email protected]**20091117125526
 Ignore-this: 3e77d029c0f314c53171f0378939b496
 
 I can't quite remember when I spotted this, but exprIsHNF (and
 similarly exprIsConLike) should ignore enclosing let-bindings,
 since they don't affect termination.
] 
[Improvement to typecheck higher-rank rules better
[email protected]**20091117125417
 Ignore-this: c5791cbe9540376b9ff46e2a6563bcc2
 
 See Note [Typechecking rules] in TcRules.  
 Suggested by Roman
] 
[Apply RULES to simplified arguments
[email protected]**20091117104437
 Ignore-this: 9a3475a9871f45ffa115dec44e376e3c
 
 See Note [RULEs apply to simplified arguments] in Simplify.lhs
 A knock-on effect is that rules apply *after* we try inlining
 (which uses un-simplified arguments), but that seems fine.
] 
[Improvements to pretty-printing of Core
[email protected]**20091117103626
 Ignore-this: ad386865644b4dbcd98adab409d7c523
] 
[Fix formatting of module deprecation/warning messages
Duncan Coutts <[email protected]>**20091115155617
 Ignore-this: a41444bdda003aee4412eb56a0e7d052
 It was accidentally using list syntax. Fixes #3303 again.
] 
[Wibble to comment
[email protected]**20091113145944
 Ignore-this: 730f7cad452ac96d59ee2e74a855c19d
] 
[TAG 2009-11-15
Ian Lynagh <[email protected]>**20091115155059] 
Patch bundle hash:
5b9eb8b9a34fb7d58e1927fdec768004eaf32b11
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to