name: fay
version: 0.9.2.0
x-revision: 3
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/
.
* Fix name encoding.
.
* Add content-type to HTML generation.
.
* Add calculator example.
.
* Support built-in operators as (+), (*), etc.
.
* Fix self-referential thunks (see #89).
.
* Don't import modules twice.
.
* Handle where bindings in function definitions.
.
* Support record updates.
.
* Move to GHC type-checking (with --no-ghc).
.
* Remove invalid chars from UTF-8 tests.
.
* Remove --autorun, now it's the default.
.
* Fix nullary constructor comparison.
.
* Replace . with $ in module name generation.
.
* Reverse -fdevel flag.
.
* Skip type declarations in where.
.
* Add true/false to keywords.
.
* Add laziness back to infix operators.
.
* Switch to applicative parsing of options.
.
* Fix parens in conversion functions.
.
See full history at:
homepage: http://fay-lang.org/
license: BSD3
license-file: LICENSE
author: Chris Done
maintainer: chrisdone@gmail.com
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/caseList.js tests/Double2.js
tests/fromInteger.hs tests/List.js
tests/RecCon.hs tests/recordPatternMatch2
tests/String.js tests/asPatternMatch.js
tests/caseWildcard tests/Double3
tests/fromInteger.js tests/Monad tests/RecCon.js
tests/recordPatternMatch2.hs tests/tailRecursion
tests/basicFunctions tests/caseWildcard.hs
tests/Double3.hs
tests/Monad2 tests/RecDecl
tests/recordPatternMatch2.js
tests/tailRecursion.hs tests/basicFunctions.hs
tests/caseWildcard.js tests/Double3.js
tests/HierarchicalImport tests/Monad2.hs
tests/RecDecl.hs tests/recordPatternMatch.hs
tests/tailRecursion.js tests/basicFunctions.js
tests/do tests/Double4
tests/Monad2.js
tests/RecDecl.js tests/recordPatternMatch.js
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/Double4.js
tests/Monad.js
tests/recordFunctionPatternMatch
tests/records.hs tests/then.js tests/Bool.js
tests/doAssingPatternMatch.js tests/Double.hs
tests/HierarchicalImport.js
tests/mutableReference
tests/recordFunctionPatternMatch.hs
tests/records.js tests/utf8 tests/case
tests/doBindAssign tests/Double.js
tests/infixDataConst tests/mutableReference.hs
tests/recordFunctionPatternMatch.js
tests/recordUseBeforeDefine tests/utf8.hs
tests/case2 tests/doBindAssign.hs
tests/emptyMain tests/infixDataConst.hs
tests/mutableReference.js
tests/RecordImport_Export
tests/recordUseBeforeDefine.hs tests/utf8.js
tests/case2.hs tests/doBindAssign.js
tests/emptyMain.hs tests/infixDataConst.js
tests/patternGuards tests/RecordImport_Export.hs
tests/recordUseBeforeDefine.js tests/where
tests/case2.js tests/do.hs tests/emptyMain.js
tests/List tests/patternGuards.hs
tests/RecordImport_Export.js tests/reservedWords
tests/where.hs tests/case.hs tests/do.js
tests/fix tests/List2 tests/patternGuards.js
tests/RecordImport_Import tests/reservedWords.hs
tests/where.js tests/case.js tests/Double
tests/fix.hs tests/List2.hs
tests/patternMatchFail.hs
tests/RecordImport_Import.hs
tests/reservedWords.js tests/caseList
tests/Double2 tests/fix.js tests/List2.js
tests/patternMatchFail.js
tests/RecordImport_Import.js 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
other-modules: Language.Fay.Print, Control.Monad.IO, Language.Fay.Stdlib, System.Process.Extra, Paths_fay
ghc-options: -O2 -Wall
build-depends: base >= 4 && < 4.7,
mtl,
haskell-src-exts < 1.14,
aeson < 0.7,
unordered-containers,
attoparsec,
vector,
text,
utf8-string,
bytestring,
pretty-show,
data-default,
safe,
language-ecmascript,
syb,
process,
filepath,
directory,
groom
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 < 0.5,
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 && < 4.7,
mtl,
haskell-src-exts < 1.14,
aeson < 0.7,
unordered-containers,
attoparsec,
vector,
text,
utf8-string,
bytestring,
pretty-show,
process,
data-default,
safe,
language-ecmascript,
directory,
filepath,
groom,
optparse-applicative < 0.5,
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 && < 4.7,
mtl,
haskell-src-exts < 1.14,
aeson < 0.7,
unordered-containers,
attoparsec,
vector,
text,
utf8-string,
bytestring,
pretty-show,
HUnit,
process,
filepath,
directory,
data-default,
safe,
language-ecmascript,
groom,
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 && < 4.7,
mtl,
haskell-src-exts < 1.14,
aeson < 0.7,
unordered-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