<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    If we go down that road, it's not cabal-repl that would need to be
    extended. AFAIK, it's just a wrapper around GHCi that calls that
    latter with package info extracted from the cabal file and,
    optionally, the sandbox. So, really, it's GHCi that would need to be
    extended. I think, something as simple as adding an option to output
    JSON (or some other structured format with wide support in editors)
    instead of plain text would go a long way to allow editors to
    consume it's output: they could just pipe commands via stdin and
    read the JSON output via stdout, parse it and display the info in
    the buffer. Depending on how GHCi looks inside and how amenable it
    is to such modifications, it might actually be a doable summer
    project. Am I missing any technical gotchas?<br>
    <br>
    /Andrey<br>
    <br>
    <div class="moz-cite-prefix">On 03/10/2014 05:11 PM, Michal
      Antkiewicz wrote:<br>
    </div>
    <blockquote
cite="mid:CAGW9QSzhkoNb0vhNGCnu5CgPsjwV+5wxYQ=KDe+Kb1QUjG-M4Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">Cabal repl is absolutely great! Are there any
        reasons why it couldn't provide all information that ghc-mod and
        hdevtools do? It could be run as a background process, right? It
        knows about sandboxes as well. <br>
        <br>
        That would be a great SoC project - extend cabal repls to
        subsume ghc-mod and hdevtools.<br>
        <br>
        Michal<br>
        <div class="gmail_extra"><br>
          <br>
          <div class="gmail_quote">On Mon, Mar 10, 2014 at 4:59 PM,
            Andrey Chudnov <span dir="ltr"><<a
                moz-do-not-send="true" href="mailto:achudnov@gmail.com"
                target="_blank">achudnov@gmail.com</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"> While I do not
                condone Mr. Verdi's verbal bashing of the efforts of the
                Haskell community to provide development tools, I do
                feel his pain. There is quite a bit of divided effort
                which seems to result in having multiple inferior
                solutions.<br>
                <br>
                My all-time favorite is ghc-mod because "it just works",
                but it can be very slow for large projects, especially
                involving template-haskell (and there are no easy fixes
                for that). <br>
                <br>
                HDevTools, in theory, is great: a persistent server,
                allowing incremental builds/checks etc., but it's
                oblivious to .cabal files, let alone sandboxes, which
                makes it completely impractical for any degree of
                serious Haskell development (on that note, how come pull
                request 30 [1] is still open?! /rant). <br>
                <br>
                Finally, GHCi is supposed to be enough for IDE support
                in editors. However, as I understand it, the problem is
                that its output is not easily parsed and, hence,
                consumed by editors; on top of that, using it with
                .cabal files and sandboxes requires calling 'cabal
                repl', so using another tool. <br>
                <br>
                So, maybe, GHCi could be augmented with an easily
                consumed output format (like JSON), and 'cabal' be given
                support for that mode as well? Since it's that time of
                the year again (I mean, the GSoC proposal time :)),
                maybe, someone would look into this idea?<br>
                <br>
                [1] <a moz-do-not-send="true"
                  href="https://github.com/bitc/hdevtools/pull/30"
                  target="_blank">https://github.com/bitc/hdevtools/pull/30</a><span
                  class="HOEnZb"><font color="#888888"><br>
                    <br>
                    /Andrey</font></span>
                <div>
                  <div class="h5"><br>
                    <br>
                    On 03/10/2014 03:44 PM, Vagif Verdi wrote:<br>
                  </div>
                </div>
                <blockquote type="cite">
                  <div>
                    <div class="h5">
                      <div dir="ltr">Sorry, i meant ghci not cabal.<br>
                        <br>
                        As for hsdev, in order to provide its features
                        it will have to load and keep track of entire
                        project information which is already done by
                        ghc-mod and hdevtools separately. So you 
                        ushould see how much effort is wasted on doing
                        the same thing again and again in each of 4
                        different tools (ghci, ghc-mod, hdevtools and
                        hsdev)<br>
                        <br>
                        On Monday, March 10, 2014 12:32:25 PM UTC-7,
                        Niklas Hambüchen wrote:
                        <blockquote class="gmail_quote"
                          style="margin:0;margin-left:0.8ex;border-left:1px
                          #ccc solid;padding-left:1ex">On 10/03/14
                          18:41, Vagif Verdi wrote: <br>
                          > This is an excellent illustration of how
                          fragmentation in this specific <br>
                          > area hurts community. Not only you are
                          forced to use 3 different tools <br>
                          > (ghc-mod, hdevtools, cabal) each of which
                          basically provides the same <br>
                          > service but in an incompatible and
                          incomplete way. But you decided to <br>
                          > create yet another one instead of
                          contributing to the ones you already <br>
                          > use (they are all open source) <br>
                          <br>
                          I'm not sure what you mean to say; ghc-mod and
                          cabal certainly do not do <br>
                          the same. Hsdev doesn't either, and claiming
                          that we don't contribute to <br>
                          these projects is strange. <br>
                          _______________________________________________

                          <br>
                          Haskell-Cafe mailing list <br>
                          <a moz-do-not-send="true">Haskel...@haskell.org</a>
                          <br>
                          <a moz-do-not-send="true"
                            href="http://www.haskell.org/mailman/listinfo/haskell-cafe"
                            target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a>
                          <br>
                        </blockquote>
                      </div>
                      <br>
                      <fieldset></fieldset>
                      <br>
                    </div>
                  </div>
                  <div class="">
                    <pre>_______________________________________________
Haskell-Cafe mailing list
<a moz-do-not-send="true" href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a>
<a moz-do-not-send="true" href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a>
</pre>
                  </div>
                </blockquote>
                <br>
              </div>
              <br>
              _______________________________________________<br>
              Haskell-Cafe mailing list<br>
              <a moz-do-not-send="true"
                href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
              <a moz-do-not-send="true"
                href="http://www.haskell.org/mailman/listinfo/haskell-cafe"
                target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
              <br>
            </blockquote>
          </div>
          <br>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>