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.ro...@gmail.com>: > Hello Matthew, > > Please see inline > > 2017-06-30 11:57 GMT+02:00 Matthew Pickering <matthewtpicker...@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 > https://github.com/google/haskell-indexer). > > Then build GHC with `make`, and capture the build log. Here's the hacky > script I used: https://gist.github.com/robinp/ > 222cf3a39cc19178ec8691522056d7fe > > 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 > noisy. > > 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. > > >> Cheers, >> >> Matt >> >> On Fri, Jun 30, 2017 at 8:55 AM, Robin Palotai <palotai.ro...@gmail.com> >> wrote: >> > Hello GHC devs, >> > >> > I ran haskell-indexer [1] on the GHC 8.0.2 tarball, partly because I >> find >> > myself reading GHC source from time to time while working on the >> indexer, >> > and partly since it's fun. >> > >> > First, here you can click around [2] and find where beloved functions >> are >> > called from: >> > http://stuff.codereview.me/#ghc/compiler/hsSyn/HsBinds.hs?co >> rpus&signature >> > (scroll down a bit, imports are not linked yet). >> > >> > Second, the way I indexed was pretty simple. I took the output of >> `make`, >> > 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 >> > >> > [1]: https://github.com/google/haskell-indexer >> > >> > [2]: 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@haskell.org >> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> > >> > >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs