<div dir="ltr">What's the minimal amount of work we need to do to just get the dwarf data in the codegen by 7.10 (RC late december) so we can start using e.g. linux perf events to profile Haskell programs?</div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Wed, Aug 13, 2014 at 7:31 PM, Arash Rouhani <span dir="ltr"><<a href="mailto:rarash@student.chalmers.se" target="_blank">rarash@student.chalmers.se</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hi Johan!<br>
    <br>
    I haven't done much (just been lazy) lately, I've tried to benchmark
    my results but I don't get any sensible results at all yet.<br>
    <br>
    Last time Peter said he's working on a more portable way to read
    dwarf information that doesn't require Linux. But I'm sure he'll
    give a more acurate update than me soon in this mail thread.<br>
    <br>
    As for stack traces, I don't think there's any big tasks left, but I
    summarize what I have in mind:<br>
    <ul>
      <li>The haskell interface is done and I've iterated on it a bit,
        so it's in a decent shape at least. Some parts still need
        testing.</li>
      <li>I wish I could implement the `forceCaseContinuation` that I've
        described in my thesis. If someone is good with code generation
        (I just suck at it, it's probably simple) and is willing to
        assist me a bit, please say so. :)</li>
      <li>I tried benchmarking, I gave up after not getting any useful
        results.<br>
      </li>
      <li>I'm unfortunately totally incapable to help out with dwarf
        debug data generation, only Peter knows that part, particularly
        I never grasped his theoretical framework of causality in
        Haskell.</li>
      <li>Peter and I have finally agreed on a simple and sensible way
        to implement `catchWithStack` that have all most good properties
        you would like. I just need to implement it and test it. I can
        definitely man up and implement this. :)<br>
      </li>
    </ul>
    Here's my master thesis btw [1], it should answer Ömer's question of
    how we retrieve a stack from a language you think won't have a
    stack. :)<br>
    <br>
    Cheers,<br>
    Arash<br>
    <br>
    [1]: <a href="http://arashrouhani.com/papers/master-thesis.pdf" target="_blank">http://arashrouhani.com/papers/master-thesis.pdf</a><div><div class="h5"><br>
    <br>
    <br>
    <br>
    <br>
    <div>On 2014-08-13 17:02, Johan Tibell
      wrote:<br>
    </div>
    </div></div><blockquote type="cite"><div><div class="h5">
      
      <div dir="ltr">Hi,
        <div><br>
        </div>
        <div>How's the integration of DWARF support coming along? It's
          probably one of the most important improvements to the runtime
          in quite some time since unlocks *two* important features,
          namely</div>
        <div><br>
        </div>
        <div> * trustworthy profiling (using e.g. Linux perf events and
          other low-overhead, code preserving, sampling profilers), and</div>
        <div> * stack traces.</div>
        <div><br>
        </div>
        <div>The former is really important to move our core libraries
          performance up a notch. Right now -prof is too invasive for it
          to be useful when evaluating the hotspots in these libraries
          (which are already often heavily tuned).</div>
        <div><br>
        </div>
        <div>The latter one is really important for real life Haskell on
          the server, where you can sometimes can get some crash that
          only happens once a day under very specific conditions.
          Knowing where the crash happens is then *very* useful.</div>
        <div><br>
        </div>
        <div>-- Johan</div>
        <div><br>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><div class=""><pre>_______________________________________________
ghc-devs mailing list
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a>
<a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a>
</pre>
    </div></blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
<br></blockquote></div><br></div>