1. 23 Jun, 2006 2 commits
  2. 22 Jun, 2006 2 commits
  3. 21 Jun, 2006 5 commits
    • simonpj@microsoft.com's avatar
      Comment only · 5542157c
      simonpj@microsoft.com authored
    • simonpj@microsoft.com's avatar
      Transfer INLINE to specialised functions · 8d227e35
      simonpj@microsoft.com authored
      When the Specialise pass generates a specialised copy of a function,
      it should transfer the INLINE information to the specialised function.
      Otherwise, whether or not the INLNE happens can depend on whether
      specialisation happens, which seems wrong.  See Note [Inline specialisation]
      in Specialise.lhs
      Here's the example Roman reported
          primWriteMU :: UAE e => MUArr e s -> Int -> e -> ST s ()
          {-# INLINE primWriteMU #-}
          primWriteMU = writeMBU . unMUAPrim
          The problem is that primWriteMU doesn't get inlined *sometimes*, which
          results in code like
          case Data.Array.Parallel.Unlifted.Flat.UArr.$sprimWriteMU
      	    @ s11_X1nJ
      	    (GHC.Base.I# sc_s27F)
      	    of wild3_a1Dd { (# new_s1_X1F9, r_a1Dc #) -> ...
      Note the fact that we have a call to the *specialised* $sprimWriteMU.
    • simonpj@microsoft.com's avatar
      Arity and eta-expansion tuning · 182ce7e2
      simonpj@microsoft.com authored
      Roman found that 
          loop :: STRef s a -> Int -> ST s Int
          loop ref n = case n of
                         0 -> return n
                         n -> loop ref (n-1)
      wasn't eta-expanding nicely, despite the 'state hack'
      (see Id.isStateHackType).  The reason was two-fold:
        a) a bug in CoreUtils.arityType (the Var case)
        b) the arity of a recursive function was not being
      	exposed in its RHS (see commments with
      The commit fixes both.  
    • Simon Marlow's avatar
      documentation for TH w/ profiling · d4f8ccee
      Simon Marlow authored
    • Simon Marlow's avatar
      Allow Template Haskell to be used with -prof · 6f5d7744
      Simon Marlow authored
      In order for this to work, you need to build the program first in the
      normal way (without -prof), and then again with -prof and a suitable
      -osuf (eg. -osuf p_o).  The compiler will pick up the object files
      from the normal way for running TH expressions, when it sees -prof
      together with -osuf.  If you omit the -osuf, you get an error message:
          Dynamic linking required, but this is a non-standard build (eg. prof).
          You need to build the program twice: once the normal way, and then
          in the desired way using -osuf to set the object file suffix.
      If you use -osuf, but haven't built the program the normal way first,
      then you see:
          cannot find normal object file `TH_genExLib.o'
          while linking an interpreted expression
      Documentation to follow.
      Fixes: #651
  4. 20 Jun, 2006 1 commit
  5. 16 Jun, 2006 8 commits
  6. 14 Jun, 2006 2 commits
  7. 13 Jun, 2006 1 commit
  8. 12 Jun, 2006 3 commits
  9. 11 Jun, 2006 1 commit
  10. 10 Jun, 2006 1 commit
    • Don Stewart's avatar
      Don't emit 'Skipping' messages unless -v2 or higher is on · 01a51143
      Don Stewart authored
      Following GNU make, this patch makes GHC not emit messages about modules
      its skipping. This makes builds much quieter, and its a lot easier to
      work out what effects a change had on the code.
      The current behaviour can be recovered with -v2
  11. 12 Jun, 2006 2 commits
  12. 09 Jun, 2006 1 commit
  13. 08 Jun, 2006 9 commits
    • Simon Marlow's avatar
      fix possible ^C problems · 7434fb5b
      Simon Marlow authored
      Calling prodAllCapabilities() from interruptStgRts() was wrong, for
      the same reasons that we stopped doing it in handle_tick().  We now
      use the same mechanism (send a byte down the pipe to the IO manager
      thread), but abstract it in a wakeUpRts() function in the scheduler.
    • Simon Marlow's avatar
      New tracing interface · 5a2769f0
      Simon Marlow authored
      A simple interface for generating trace messages with timestamps and
      thread IDs attached to them.  Most debugging output goes through this
      interface now, so it is straightforward to get timestamped debugging
      traces with +RTS -vt.  Also, we plan to use this to generate
      parallelism profiles from the trace output.
    • Simon Marlow's avatar
      fix warnings · 3f10646c
      Simon Marlow authored
    • Simon Marlow's avatar
      fix warnings · b6c66a92
      Simon Marlow authored
    • Simon Marlow's avatar
      Make it so that StgWord/StgInt are longs · 1046d334
      Simon Marlow authored
      This means we can use a %ld format specifier for StgWord/StgInt with
      printf and not get shouted at by gcc.
    • Simon Marlow's avatar
      more warning fixage · a9e6c441
      Simon Marlow authored
    • Simon Marlow's avatar
      fix a warning · 0caf5ba4
      Simon Marlow authored
    • Simon Marlow's avatar
      fix some warnings · e9b4997c
      Simon Marlow authored
    • Simon Marlow's avatar
      Add new RTS flags for tracing: · d2847b05
      Simon Marlow authored
        -vs       Trace scheduler events (see also -Ds with -debug)
        -vt       Time-stamp trace messages
      the intention is that we will pipe the -vs output into a
      profile-generating tool.  This commit includes the flags only,
      functionality to follow.
  14. 07 Jun, 2006 2 commits