packages feed

fregel-1.2.0: fregel.cabal

cabal-version:      3.0
-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.

-- Initial package description 'fregel' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:               fregel

-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary:     +-+------- breaking API changes
--                  | | +----- non-breaking API additions
--                  | | | +--- code changes with no API change
version:            1.2.0

-- A short (one-line) description of the package.
synopsis: A functional DSL for vertex-centric large-scale graph processing

-- A longer description of the package.
description:
  Fregel (Functional Pregel) is a functional domain-specific language for developing programs of vertex-centric (i.e., Pregel) style of big graph processing, in which the computation at every vertex is abstracted as a higher-order function. Fregel has clear functional semantics and supports declarative description of vertex computation. 

  The current Fregel processor is a translator (compiler) from Fregel code into Giraph code in Java / Pregel+ code in C++.

  Technical details can be found in the JFP paper (DOI: https://doi.org/10.1017/S0956796821000277 ). 

  Note that some optimization options need Z3, an SMT solver, to be installed in your system.

-- URL for the project homepage or repository.
homepage:           https://ipl.cs.uec.ac.jp/~iwasaki/Fregel

-- The license under which the package is released.
license:            MIT

-- The file containing the license text.
license-file:       LICENSE

-- The package author(s).
author:             Hideya Iwasaki, Kento Emoto, Akimasa Morihata, Kiminori Matsuzaki, Zhenjiang Hu

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:         emoto@csn.kyutech.ac.jp, iwasaki@cs.meiji.ac.jp 

-- A copyright notice.
-- copyright:
category:           Language
build-type:         Simple

-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files:    CHANGELOG.md

-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
-- extra-source-files:

common warnings
    ghc-options: -Wall

executable fregel
    -- Import common warning flags.
    import:           warnings

    -- .hs or .lhs file containing the Main module.
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    other-modules:
        ASTData
        , ASTTrans
        , AggregatorExtraction
        , Analysis
        , Convert0
        , DependencySimple
        , GenSMT
        , IR
        , IRtoPregel
        , Inlining
        , Lexer
        , Normalization
        , NtoIR
        , Parser
        , Spec
        , Spec0
        , TypeChecker
        , TypeInstantiation
        , VCOutputNormalization


    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:

    -- Other library packages from which modules are imported.
    build-depends:
        base >=4.14.0.0 && < 4.19.0.0
        , array ^>=0.5.4.0
        , groom ^>=0.1.2.1
        , process ^>=1.6.16.0
        , mtl ^>=2.2.2

    -- Directories containing source files.
    hs-source-dirs:   compiler

    -- needs happy and alex
    build-tool-depends:         happy:happy, alex:alex

    -- Base language which the package is written in.
    default-language: Haskell2010