mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
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.
191 lines
4.2 KiB
Plaintext
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
|