MyNixOS website logo
Description

Generic Programming Use in Hackage.

GP analysis of Hackage README

For the report and documentation of the project, check the file report.pdf

There is also the presentation we gave at the file presentation.pdf

Building

runghc Setup.lhs configure
runghc Setup.lhs build
runghc Setup.lhs install

Before running

You have to fetch the the entire hackage repository and its activity log. You can automatically do that with:

gpah --fetch

Running the analysis

After building the program, run it with

gpah args

Generic Programming Use in Hackage Project v0.0.1

gpah [OPTIONS]

Common flags:
     --fetch                Fetch the Hackage archive tarball and Hackage
                            activity log
  -d --deriving[=FILE]      Run the deriving analysis and output it to the
                            specified file
  -f --function[=FILE]      Run the function analysis and output it to the
                            specified file
  -u --uniplate[=FILE]      Run the uniplate analysis and output it to the
                            specified file
  -h --misc_hackage[=FILE]  Print general analysis info or output it to the
                            specified file
  -t --misc_date[=FILE]     Get syb+uniplate date info and output it to the
                            specified file (implies --misc_hackage)
     --hackage-dir=DIR      Set the hackage archive directory
     --hackage-log=FILE     Set the hackage archive log file
  -c --cpp[=FILE]           Run preprocessing in hackage that yields an
                            analysis with less failed-to-parse modules
  -i --interpret[=FILE]     Do type-checking interpretation on modules that
                            depend on SYB or Uniplate
  -e --derive[=FILE]        Do analysis on packages that build on derive
  -? --help                 Display help message
  -V --version              Print version information

For a detailed description of the accepted arguments run:

gpah --help.

Metadata

Version

0.0.2

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows