Files
gf-core/gf.cabal
hallgren ce714fa723 Add lazy version of GF.Compile.Compute.Concrete
This patch adds GF.Compile.Compute.ConcreteLazy, which replaces the Err monad
with the Identity monad. While the Err monad makes the interpreter
(hyper)strict, the Identity monad let's the interpreter inherit Haskell's
laziness.  This can give big speedups: from 50s to 1s in one example,
from ~4 minutes to ~2 minutes for the RGL.

This is still experimental and might be buggy, so it is off by default.
You can turn it on by configuring with the -fcclazy flag, e.g.

	cabal configure -fcclazy

Let me know if anything breaks.
2011-09-01 16:39:41 +00:00

191 lines
4.2 KiB
Plaintext

name: gf
version: 3.2.8-darcs
cabal-version: >= 1.8
build-type: Custom
license: OtherLicense
license-file: LICENSE
category: Natural Language Processing, Compiler
synopsis: Grammatical Framework
description: GF, Grammatical Framework, is a programming language for multilingual grammar applications
homepage: http://www.grammaticalframework.org/
bug-reports: http://code.google.com/p/grammatical-framework/issues/list
source-repository head
type: darcs
location: http://www.grammaticalframework.org/
flag interrupt
Description: Enable Ctrl+Break in the shell
Default: True
flag server
Description: Include --server mode
Default: True
flag cclazy
Description: Switch to lazy compute_concrete (new, experimental)
Default: False
library
build-depends: base >= 4.2 && <5,
array,
fst,
containers,
bytestring,
random,
pretty,
mtl
ghc-options: -O2
hs-source-dirs: src/compiler src/runtime/haskell
extensions:
exposed-modules:
PGF
other-modules:
PGF.CId
PGF.Data
PGF.Macros
PGF.Generate
PGF.Linearize
PGF.Parse
PGF.Expr
PGF.Type
PGF.Tree
PGF.Tokenizer
PGF.Paraphrase
PGF.TypeCheck
PGF.Binary
PGF.Morphology
PGF.VisualizeTree
PGF.Printer
PGF.Probabilistic
PGF.Forest
PGF.Optimize
PGF.Signature
GF.Data.TrieMap
GF.Data.Utilities
GF.Data.SortedList
GF.Data.ErrM
GF.Data.Relation
GF.Data.Operations
-- not really part of GF but I have changed the original binary library
-- and we have to keep the copy for now.
Data.Binary
Data.Binary.Put
Data.Binary.Get
Data.Binary.Builder
Data.Binary.IEEE754
executable gf
build-depends: base >= 4.2,
array,
containers,
bytestring,
filepath,
fst,
directory,
random,
old-time,
process,
pretty,
mtl,
haskeline
if flag(server)
build-depends: httpd-shed, network, silently, utf8-string
cpp-options: -DSERVER_MODE
other-modules: GFServer
build-tools: happy, alex>=2 && <3
if os(windows)
build-depends: Win32
else
build-depends: unix
ghc-options: -O2
if impl(ghc>=7.0)
ghc-options: -rtsopts
hs-source-dirs: src/compiler src/runtime/haskell
extensions:
main-is: GF.hs
other-modules:
GF.Data.BacktrackM
GF.Data.TrieMap
GF.Data.Utilities
GF.Data.SortedList
GF.Data.ErrM
GF.Data.Operations
GF.Data.Str
GF.JavaScript.AbsJS
GF.JavaScript.PrintJS
GF.Infra.Ident
GF.Infra.Modules
GF.Infra.GetOpt
GF.Infra.Option
GF.Infra.UseIO
GF.Infra.CheckM
GF.Command.Commands
GF.Command.Interpreter
GF.Command.Abstract
GF.Command.Parse
GF.Command.Importing
GF.Grammar
GF.Grammar.Lexer
GF.Grammar.Parser
GF.Grammar.Grammar
GF.Grammar.Values
GF.Grammar.Macros
GF.Grammar.Lockfield
GF.Grammar.MMacros
GF.Grammar.Lookup
GF.Grammar.Unify
GF.Grammar.PatternMatch
GF.Grammar.Printer
GF.Grammar.ShowTerm
GF.Grammar.Binary
GF.Compile.Update
GF.Compile.CheckGrammar
GF.Compile.Refresh
GF.Compile.Rename
GF.Compile.ReadFiles
GF.Compile.GrammarToPGF
GF.Compile.ToAPI
GF.Compile.TypeCheck.Abstract
GF.Compile.TypeCheck.Concrete
GF.Compile.TypeCheck.TC
GF.Compile.Compute.Abstract
GF.Compile.Compute.Concrete
GF.Compile.Compute.AppPredefined
GF.Compile.Optimize
GF.Compile.SubExOpt
GF.Compile.GetGrammar
GF.Compile.PGFtoHaskell
GF.Compile.PGFtoProlog
GF.Compile.PGFtoJS
GF.Compile
GF.Index
GF.Quiz
PGF
PGF.CId
PGF.Data
PGF.Expr
PGF.Type
PGF.Tree
PGF.Macros
PGF.Generate
PGF.Linearize
PGF.Binary
PGF.Paraphrase
PGF.TypeCheck
PGF.Binary
PGF.Printer
PGF.Optimize
GFC
GFI
if flag(interrupt)
cpp-options: -DUSE_INTERRUPT
other-modules: GF.System.UseSignal
else
other-modules: GF.System.NoSignal
if flag(cclazy)
cpp-options: -DCC_LAZY