aboutsummaryrefslogtreecommitdiff
#+title: Haskell Code Explorer

This is an updated version of [[https://github.com/alexwl/haskell-code-explorer][Haskell Code Explorer]], it works with
GHC-9.2.2 with Cabal-3.6.2.0, and possibly other adjacent versions.

* Install

#+begin_src sh
cabal install
#+end_src

* Usage

You'll need to index a package before serving it.

A typical indexing workflow is as follows, take sqlite-simple as an
example:

#+begin_src sh
cabal unpack sqlite-simple
cd sqlite-simple-x.y.z.w
cabal configure --enable-testsuites --enable-benchmarks
cabal build all
haskell-code-indexer -p .
#+end_src

After this you can do

#+begin_src sh
haskell-code-server -p /path/to/package1 -p /path/to/package2 ...
#+end_src

and the app will be available at localhost:3000.

For the readme of the original version, see README.md.original in the
project tree, also available at
https://g.ypei.me/haskell-code-explorer.git/tree/README.md.original.

* Difference from the original version

The indexer of this version looks for all build targets, including
testsuites and benchmarks, in the .cabal file, therefore you'll need
to build them all before indexing, otherwise the indexer will complain
about missing files.

* Contact and Copyright

The original haskell-code-explorer is written by Alexey Kiryushin
(alexey.a.kiryushin@gmail.com), hosted at [[https://github.com/alexwl/haskell-code-explorer][github]].

The port to 9.2.2 is done by Yuchen Pei (id@ypei.org).

The original work is under the [[https://www.gnu.org/licenses/license-list.html#Expat][expat license]], while the changes by
Yuchen Pei are covered by [[https://www.gnu.org/licenses/agpl-3.0.en.html][GNU AGPLv3+]] and you may find the license
text in a file named COPYING.agpl3 in the project tree.  As a
combination, this work as a whole is licensed under [[https://www.gnu.org/licenses/agpl-3.0.en.html][GNU AGPLv3+]]
([[https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean][why?]]).