Crossreferenced GHC 8.0.2
palotai.robin at gmail.com
Tue Jul 4 05:44:41 UTC 2017
FYI I added GHC 8.2.1-rc2 source to the index. Please tell if some source
you would be interested in is obviously missing. Thanks!
2017-06-30 22:41 GMT+02:00 Robin Palotai <palotai.robin at gmail.com>:
> Hello Matthew,
> Please see inline
> 2017-06-30 11:57 GMT+02:00 Matthew Pickering <matthewtpickering at gmail.com>
>> Hi Robin,
>> This looks really useful for developers.
>> 1. Would it be possible to provide a script which allows developers to
>> build this index for themselves easily?
> First, build and install the `ghc_kythe_wrapper` (instructions at
> Then build GHC with `make`, and capture the build log. Here's the hacky
> script I used: https://gist.github.com/robinp/
> It filters the log and replaces GHC calls to call the wrapper, which emits
> Kythe entries.
> Finally run `serve.sh` of the repo to postprocess and serve the entries
> through HTTP.
> This is all pretty new, so feedback or questions welcome. If the method
> distills, could try to write a more formal guide.
>> 2. Is it possible to use this tool to detect dead code? Functions
>> which are not used anywhere in the compiler.
> We'll get there eventually, but for now the emitted data is not
> fine-grained enough. The main missing piece is recording what are exported
> entities of a module (Kythe schema discussion in progress). Without this,
> unused locals (which anyway surface with -Wall) would be presented and
> Also, one would probably need to postprocess the data a bit for this, like
> loading into a graph database or other ways.
> Did you see https://github.com/ndmitchell/weeder by the way? Might work.
>> 3. How are you pretty printing the output whilst retaining the source
>> formatting? I had a quick look at the source but I couldn't see where
>> the output was being produced.
> The haskell-indexer-frontend-kythe emits Kythe (http://kythe.io) schema
> data. We just export the source offsets, and it's the Kythe postprocessing
> / serving pipeline that does all the formatting.
>> On Fri, Jun 30, 2017 at 8:55 AM, Robin Palotai <palotai.robin at gmail.com>
>> > Hello GHC devs,
>> > I ran haskell-indexer  on the GHC 8.0.2 tarball, partly because I
>> > myself reading GHC source from time to time while working on the
>> > and partly since it's fun.
>> > First, here you can click around  and find where beloved functions
>> > called from:
>> > http://stuff.codereview.me/#ghc/compiler/hsSyn/HsBinds.hs?co
>> > (scroll down a bit, imports are not linked yet).
>> > Second, the way I indexed was pretty simple. I took the output of
>> > replaced the ghc used with the ghc_kythe_wrapper, and filtered the lines
>> > which included '-c', since I noticed that those duplicate previous large
>> > compile lines. This only indexes the stage1 compilation AFAIU.
>> > Feel free to suggest a better way to tap into the compilations to get
>> > everything properly indexed (and possibly only once).
>> > Any comments welcome!
>> > Robin
>> > : https://github.com/google/haskell-indexer
>> > : TLDR UI quirks:
>> > - Click the :: in top-left to navigate file tree
>> > - Ctrl-Click (on linux) to go directly to definition (otherwise click
>> > stuff from bottom pane)
>> > - Bottom pane often hides content, close it if stuck.
>> > _______________________________________________
>> > ghc-devs mailing list
>> > ghc-devs at haskell.org
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ghc-devs