packages feed

MagicHaskeller-0.9.6.4.4: MagicHaskeller.cabal

Name:            MagicHaskeller
Version:         0.9.6.4.4
Cabal-Version:   >= 1.8
License:         BSD3
License-file:	 LICENSE 
Author:	         Susumu Katayama
Maintainer:      Susumu Katayama <skata@cs.miyazaki-u.ac.jp>
Stability:       experimental
Homepage:        http://nautilus.cs.miyazaki-u.ac.jp/~skata/MagicHaskeller.html
bug-reports:     mailto:skata@cs.miyazaki-u.ac.jp
Synopsis:        Automatic inductive functional programmer by systematic search
Description:     MagicHaskeller is an inductive functional programming system for Haskell.
		 This package contains the MagicHaskeller library, which can be used within GHCi or as an API for inductive program synthesis.
		 It also contains the MagicHaskeller executable that is a standalone synthesis program which can be used interactively or as a backend server,
		 and the MagicHaskeller.cgi executable that is a CGI frontend for providing the Web interface.
Build-Type:      Simple
Category:        Language
data-files:      ExperimIOP.hs MagicHaskeller/predicates MagicHaskeller/predicatesAug2014 MagicHaskeller.conf MagicHaskeller/predicatesServed
Extra-source-files: xlmap
-- Tested-with:     GHC == 6.12.1
Tested-with:     GHC == 7.4.1, GHC == 7.6.3, GHC == 7.8.4

Flag TFRANDOM
  Description: Use the tf-random package instead of the random package
  Default:     True

Flag GHCAPI
  Description: Enable execution using the GHC API rather than the combinatory interpreter
  Default:     True

Flag READFILE
  Description: Enable to read a component library file
  Default:     True

Flag DEBUG
  Description: Force typechecking at each dynamic application
  Default:     False

Flag NETWORKURI
  Description: Find Network.URI in network-uri rather than in network < 2.6 (This is a workaround for the changes made in those packages.)
  Default:     True

-- Flag ForcibleTO
-- Flag Debug
-- Flag Benchmark

Library
  Build-depends:   old-time, template-haskell, base >= 4 && < 5, syb, containers, array, random, directory, bytestring, mtl, html, pretty, hashable
  Exposed-modules: MagicHaskeller, Control.Monad.Search.Combinatorial, Control.Monad.Search.Best, MagicHaskeller.ProgGen, MagicHaskeller.ProgGenSF,
                   MagicHaskeller.ProgGenSFIORef, MagicHaskeller.Expression, MagicHaskeller.LibTH, MagicHaskeller.Analytical, MagicHaskeller.Options, MagicHaskeller.Classification, MagicHaskeller.GetTime, MagicHaskeller.Minimal, MagicHaskeller.IOGenerator, MagicHaskeller.FastRatio, MagicHaskeller.LibExcel
  Other-modules:   MagicHaskeller.MemoToFiles, MagicHaskeller.ShortString, 
                   MagicHaskeller.Types, MagicHaskeller.PriorSubsts, Data.Memo, MagicHaskeller.ClassifyTr,
                   MagicHaskeller.CoreLang, MagicHaskeller.DebMT, MagicHaskeller.TyConLib,
                   MagicHaskeller.FakeDynamic, MagicHaskeller.PolyDynamic, MagicHaskeller.ReadTypeRep,
                   MagicHaskeller.ReadTHType, MagicHaskeller.TimeOut, MagicHaskeller.Execute, MagicHaskeller.T10,
                   MagicHaskeller.Instantiate, MagicHaskeller.Classify, MagicHaskeller.MHTH, MagicHaskeller.MyCheck,
                   MagicHaskeller.ExprStaged, MagicHaskeller.Combinators, MagicHaskeller.ReadDynamic,
                   MagicHaskeller.MyDynamic, MagicHaskeller.ClassifyDM, MagicHaskeller.ProgramGenerator, MagicHaskeller.Analytical.FMExpr,
                   MagicHaskeller.Analytical.Parser, MagicHaskeller.Analytical.Syntax, MagicHaskeller.Analytical.UniT, MagicHaskeller.Analytical.Synthesize,
                   MagicHaskeller.ExpToHtml, MagicHaskeller.FMType, MagicHaskeller.NearEq, MagicHaskeller.ClassLib, MagicHaskeller.LibExcelStaged
                   MagicHaskeller.ExpToHtml, MagicHaskeller.FMType, MagicHaskeller.NearEq, MagicHaskeller.ClassLib, MagicHaskeller.LibExcelStaged, MagicHaskeller.LibExcelStagedStaged
                   Paths_MagicHaskeller
  Extensions:    CPP, TemplateHaskell
  cpp-options:   -DCHTO -DCABAL

  if flag(TFRANDOM)
    Build-depends:   tf-random <= 0.3
    cpp-options:     -DTFRANDOM

  if flag(GHCAPI) && !os(windows)
    Build-depends:   ghc >= 6.10, ghc-paths
    Exposed-modules: MagicHaskeller.RunAnalytical, MagicHaskeller.ExecuteAPI610

  if flag(READFILE)
    Build-depends:   haskell-src
    cpp-options:     -DHASKELLSRC
    Other-modules:   MagicHaskeller.ReadHsType

  if flag(DEBUG)
    cpp-options:     -DREALDYNAMIC

  if flag(NETWORKURI)
     Build-depends:  network >= 2.6, network-uri >= 2.6
  else
     Build-depends:  network < 2.6, network-uri < 2.6

Executable MagicHaskeller
   Main-is: MagicHaskeller/SimpleServer.hs
   Build-depends:   MagicHaskeller, old-time, template-haskell, base >= 4 && < 5, syb, containers, array, random, directory, bytestring, mtl, html, pretty, hashable, process, monad-par, transformers, abstract-par, ghc-paths, ghc
   GHC-options:    -threaded -feager-blackholing -rtsopts
   -- In my experience we should never use -O2 here --- it causes memory leak when compiled with GHC 7.6.3.
   Extensions:     CPP, TemplateHaskell
   cpp-options:    -DCHTO -DCABAL
 
   if !os(windows)
     Build-depends:   unix
     cpp-options:     -DUNIX

   if flag(TFRANDOM)
     Build-depends:   tf-random
     cpp-options:     -DTFRANDOM
 
   -- just for avoiding rebuilding everything
   if flag(READFILE)
     Build-depends:   haskell-src
     cpp-options:     -DHASKELLSRC
 
   if impl(ghc >= 7)
     GHC-options:     -with-rtsopts=-N

   if flag(NETWORKURI)
      Build-depends:  network >= 2.6, network-uri >= 2.6
   else
      Build-depends:  network < 2.6, network-uri < 2.6

-- It is strongly recommended to use a UNIX server for the CGI frontend.
-- Non-UNIX servers cannot use mueval, which means the functionality of generating input/output examples is not available.
Executable MagicHaskeller.cgi
  Main-is: CGI.lhs
  Build-depends:   old-time, template-haskell, base >= 4 && < 5, syb, containers, array, random, directory, bytestring, mtl, html, pretty, hashable,
                   MagicHaskeller, cgi, hint, extensible-exceptions, haskell-src
  Other-modules:   MagicHaskeller.CGI

  cpp-options:   -DCHTO -DCABAL

  if !os(windows)
    Build-depends:   mueval
    cpp-options:     -DUNIX

  if flag(TFRANDOM)
    Build-depends:   tf-random
    cpp-options:     -DTFRANDOM

  if flag(NETWORKURI)
     Build-depends:  network >= 2.6, network-uri >= 2.6
  else
     Build-depends:  network < 2.6, network-uri < 2.6