Curr(y)gle is a search engine for the functional logic programming language Curry. It is intended to find entities (modules, functions, types, classes, and signatures) defined in modules of published Curry packages. Additionally, Curr(y)gle searches in description and author information. One can also restrict the search restrictions to non-deterministic or deterministic as well as rigid or flexible operations.
Since Curry(g)le is written in Curry, the installation requires a Curry implementation. Since the size of the processed data is big, it is recommended to use KiCS2 or another efficient Curry implementation.
To install Curr(y)gle from this repository,
check and adapt the variable definitions in the Makefile
(in particular, CURRYHOME, WEBDIR, and CDOC) and run
> make install
> make deploy
to install all executables in the directory WEBDIR.
After the sucessful installation, go into the directory WEBDIR.
Fill the directory CDOC with the .cdoc files from the documentation
of all Curry packages (which are generated by the CurryDoc documentation
generator when packages are uploaded).
This directory contains for each package (where only the newest version
should be stored) a subdirectory named with the package version identifier.
For instance, the .cdoc files of the documentation of package
base version 3.3.0 must be stored in the subdirectory CDOC/base-3.3.0.
When this directory contains all relevant data, run
> make index
to generate the index files used by Curry(g)le. Then one can test Curry(g)le in a terminal mode by
> bin/currygle --interactive
Since the index files are too large to read them for every search request in the web interface (reading the index files takes a couple of seconds), one can start the Curr(y)gle server by
> make start
This will also be done by the web interface if the server is not reachable.
Then one can use the web interface by referring to the URL of the
WEBDIR directory in a browser. There is also a ready-to-use
installation of Curr(y)gle
in the Curry home page.
The possible search queries are described in the initial default page
of Curr(y)gle.