name: fay
version: 0.10.0.0
synopsis: A compiler for Fay, a Haskell subset that compiles to JavaScript.
description: Fay is a proper subset of Haskell which can be compiled (type-checked)
with GHC, and compiled to JavaScript. It is lazy, pure, with a Fay monad,
an FFI, tail-recursion optimization (experimental). It implements no type
system, for type-checking you should use GHC.
.
/Documentation/
.
See documentation at or build your own documentation with:
.
> $ cabal unpack fay
> $ cd fay-*
> $ cabal install
> $ dist/build/fay-docs/fay-docs
.
.
/Examples/
.
See .
.
/Release Notes/
.
* Add TCO optimization.
.
* Added uncurrying optimization for non-partial applications.
.
* Add simple benchmarking program.
.
* Add SVG logo.
.
* Added Defined type and appropriate serialization.
.
* Treat Maybe as a nullable value in conversions.
.
* Added oscillator example.
.
* Add optimization flag.
* Support tuple serialization.
* Fix list length in pats (closes #145).
.
* Name resolution and some export list support.
* Add codeworld space invaders example.
.
* NoImplicitPrelude is now passed automatically to GHC. Does not break code that uses the pragma (see #134).
.
* Add support for list comprehensions using desugaring from Haskell report. See #40 and #132.
.
* Make error messages a tiny bit friendlier, and some general house-keeping.
.
* Support negation expressions (see #116).
.
* Rewrite readFromFay using only Data, no Read/Show requirements (see #112).
.
See full history at:
homepage: http://fay-lang.org/
license: BSD3
license-file: LICENSE
author: Chris Done, Adam Bergmark
maintainer: chrisdone@gmail.com, adam@edea.se
copyright: 2012 Chris Done
category: Development
build-type: Custom
cabal-version: >=1.8
data-files: js/runtime.js
hs/stdlib.hs
src/Language/Fay/Stdlib.hs
extra-source-files: examples/ref.hs examples/alert.hs examples/console.hs examples/dom.hs
examples/tailrecursive.hs examples/data.hs examples/canvaswater.hs
examples/canvaswater.html examples/haskell.png
-- Test cases
tests/ints.hs tests/ints tests/asPatternMatch
tests/caseList.hs tests/Double2.hs
tests/fromInteger tests/List.hs tests/RecCon
tests/recordPatternMatch tests/String.hs
tests/asPatternMatch.hs tests/fromInteger.hs
tests/RecCon.hs tests/recordPatternMatch2
tests/caseWildcard tests/Double3 tests/Monad
tests/recordPatternMatch2.hs tests/tailRecursion
tests/basicFunctions tests/caseWildcard.hs
tests/Double3.hs tests/Monad2 tests/RecDecl
tests/tailRecursion.hs tests/basicFunctions.hs
tests/HierarchicalImport tests/Monad2.hs
tests/RecDecl.hs tests/recordPatternMatch.hs
tests/do tests/Double4 tests/then tests/Bool
tests/doAssingPatternMatch tests/Double4.hs
tests/HierarchicalImport.hs tests/Monad.hs
tests/records tests/then.hs tests/Bool.hs
tests/doAssingPatternMatch.hs
tests/recordFunctionPatternMatch tests/records.hs
tests/Double.hs tests/mutableReference
tests/recordFunctionPatternMatch.hs tests/utf8
tests/case tests/doBindAssign
tests/infixDataConst tests/mutableReference.hs
tests/recordUseBeforeDefine tests/utf8.hs
tests/case2 tests/doBindAssign.hs tests/emptyMain
tests/infixDataConst.hs tests/RecordImport_Export
tests/recordUseBeforeDefine.hs tests/case2.hs
tests/emptyMain.hs tests/patternGuards
tests/RecordImport_Export.hs tests/where
tests/do.hs tests/List tests/patternGuards.hs
tests/reservedWords tests/where.hs tests/case.hs
tests/fix tests/List2 tests/RecordImport_Import
tests/reservedWords.hs tests/Double tests/fix.hs
tests/List2.hs tests/patternMatchFail.hs
tests/RecordImport_Import.hs tests/caseList
tests/Double2 tests/String
tests/Hierarchical/Export.hs
tests/Hierarchical/RecordDefined.hs
-- Documentation files
docs/beautify.js docs/highlight.pack.js docs/home.css docs/jquery.js
docs/analytics.js
-- Documentation snippets
docs/snippets/conditions.hs
docs/snippets/data.hs
docs/snippets/declarations.hs
docs/snippets/dom.hs
docs/snippets/enums.hs
docs/snippets/ffi.hs
docs/snippets/functions.hs
docs/snippets/lists.hs
docs/snippets/patterns.hs
docs/snippets/tail.hs
docs/home.hs
Flag devel
Description: Don't build fay-tests and fay-docs if this flag is supplied
Default: False
library
hs-source-dirs: src
exposed-modules: Language.Fay, Language.Fay.Types, Language.Fay.FFI, Language.Fay.Prelude, Language.Fay.Convert, Language.Fay.Compiler, Language.Fay.Compiler.Misc, Language.Fay.Compiler.FFI, Language.Fay.Compiler.Optimizer
other-modules: Language.Fay.Print, Control.Monad.IO, Language.Fay.Stdlib, System.Process.Extra, Data.List.Extra, Paths_fay
ghc-options: -O2 -Wall
build-depends: base >= 4 && < 5,
mtl,
haskell-src-exts,
aeson,
unordered-containers,
containers,
attoparsec,
vector,
text,
utf8-string,
bytestring,
pretty-show,
data-default,
safe,
language-ecmascript,
syb,
process,
filepath,
directory,
groom,
random
if !flag(devel)
build-depends:
-- Requirements for the executables which
-- `cabal-dev ghci' needs.
HUnit,
blaze-html >= 0.5,
blaze-markup,
bytestring,
time,
optparse-applicative,
split,
test-framework,
test-framework-hunit,
test-framework-th
executable fay
hs-source-dirs: src
ghc-options: -O2 -Wall
ghc-prof-options: -fprof-auto
main-is: Main.hs
build-depends: base >= 4 && < 5,
mtl,
haskell-src-exts,
aeson,
syb,
unordered-containers,
containers,
attoparsec,
vector,
text,
utf8-string,
bytestring,
pretty-show,
process,
data-default,
safe,
language-ecmascript,
directory,
filepath,
groom,
random,
optparse-applicative,
split,
haskeline
executable fay-tests
if flag(devel)
buildable: False
hs-source-dirs: src
ghc-options: -O2 -Wall -threaded -with-rtsopts=-N
ghc-prof-options: -fprof-auto
main-is: Tests.hs
other-modules: Language.Fay.Compiler Test.Convert Test.Api Test.CommandLine Test.Util
build-depends: base >= 4 && < 5,
mtl,
haskell-src-exts,
aeson,
syb,
unordered-containers,
containers,
attoparsec,
vector,
text,
utf8-string,
bytestring,
pretty-show,
HUnit,
process,
filepath,
directory,
data-default,
safe,
language-ecmascript,
groom,
random,
test-framework,
test-framework-hunit,
test-framework-th
executable fay-docs
if flag(devel)
buildable: False
hs-source-dirs: src
ghc-options: -O2 -Wall
main-is: Docs.hs
other-modules: Text.Blaze.Extra
build-depends: base >= 4 && < 5,
mtl,
haskell-src-exts,
aeson,
syb,
unordered-containers,
containers,
attoparsec,
vector,
text,
utf8-string,
bytestring,
pretty-show,
HUnit,
process,
filepath,
directory,
blaze-html >= 0.5,
blaze-markup,
bytestring,
time,
data-default,
safe,
language-ecmascript,
groom,
random