Skip to content
Adam Bergmark edited this page Sep 30, 2013 · 65 revisions

See full history at: https://github.com/faylang/fay/commits

0.18.0.0 (2013-09-24)

New features:

  • Support for qualified imports. Note: You still can't have multiple constructors with the same name in the FFI since the instance field in the serialization is still unqualified.
  • Automatic transcoding now works for functions. See Calling Fay From JavaScript
  • --strict modulename[, ..] generates strict and transcoding wrappers for a module's exports. See Calling Fay From JavaScript
  • --typecheck-only just runs the GHC type checker with the appropriate Fay flags.
  • --runtime-path FILEPATH allows you to supply a custom runtime. Probably only useful for debugging.

Bug fixes:

  • Don't crash when trying to get the fayToJsFun of an object without constructor.name
  • Fixed bug that accidentally flattened list arguments in jsToFay
  • Fix construction with RecordWildCards not taking already listed fields into account

Breaking Changes:

  • Fay.Compiler.Debug has been removed (for now)
  • The interactive compilation mode has been removed (for now)

Internal changes:

  • Migrated to haskell-src-ext's annotated AST.
  • Name resolution is now done using haskell-names, Fay's name resolution code is now pure and a lot simpler.

fay-jquery 0.4.0.1

  • Fixed bug in definition of clone
  • Don't define fromIntegral.

fay-text 0.2.0.0

  • Added a (large) subset of functions from Data.Text. These use the FFI so they should be pretty fast.
  • Added Eq instance for Text.
  • The Text type has been moved to Fay.Text.Type (re-exported by Fay.Text) in case you only want the type.

fay-base 0.18.0.0

  • Fixed implementation of >> and >>= (this bug didn't affect normal usage)
  • Add fail
  • Generalize type signatures for fromIntegral and fromInteger

0.17.0.0 (2013-08-27)

  • With the RebindableSyntax and OverloadedStrings extensions Fay will treat Haskell string literals as JavaScript Strings. Add this in all modules and import Fay.Text (from the fay-text package). This is not a breaking change, without these extensions in a module String will be used, as before. All modules can still interoperate normally even if only some of them use this feature. Note that you may have to define fromInteger when using this with Num literals.

  • The type signature of Fay.FFI.ffi (in fay) and FFI.ffi (in fay-base) has been generalized to IsString s => s -> a to support RebindableSyntax.

  • Much faster compile time (of the compiler itself) by having the executables depend on the library.

Bugfixes:

  • The empty list and unit is now serialized to null when using Automatic (it used to throw an error).

Minor:

  • Restrict upper bound on language-ecmascript to < 1.0

Other packages:

  • fay-base 0.17.0.0 Prelude now exports ifThenElse as a default for RebindableSyntax
  • fay-text 0.1.0.0 has been released
  • fay-jquery 0.4.0.0 has been updated to use fay-text, which fixes bugs in the ajax FFI calls.

0.16.0.3 (2013-08-23)

  • Support for tuple constructors ((,,) 1,2,3)

Minor:

  • Bump pretty-show to >= 1.6
  • Remove the -fdevel flag (when compiling fay itself)

0.16.0.2 (2013-08-21)

Minor:

  • Bump haskell-src-exts to >= 1.14

0.16.0.1 (2013-08-08)

Bugfixes:

  • Allow combining multiline strings with CPP

0.16.0.0 (2013-08-05)

  • New module generation, modules generate code separately in the format My.Module.foo instead of My$Module$foo
  • Transcoding information is also produced separately for each module
  • Removed --naked, --dispatcher, and --no-dispatcher. They are probably not needed anymore
  • Removed Fay$$fayToJsUserDefined and Fay$$jsToFayUserDefined, instead call Fay$$fayToJs and Fay$$jsToFay respectively
  • Escape semi reserved words from Object when printing (constructor -> $constructor). This only matters if you call Fay from JS
  • Automatic now handles lists and tuples (#251)
  • Language.Fay.FFI renamed to Fay.FFI (as before, Fay code can import FFI from fay-base)

Minor:

  • Print location of parse errors
  • More Ratio functions, and moved these into Data.Ratio (fay-base)
  • Compile with -XNoImplicitPrelude
  • Support for testing nested modules (module A, module A.B)
  • Bump language-ecmascript to >= 0.15 (new API)
  • Rename/remove some CompileErrors
  • All tests are now included in dist

Bug fixes:

  • Force cars in string serialization (#306)

0.15.0.0 (2013-06-08)

  • Expression level FFI calls, ffi "alert('hello!')" :: Fay ()
  • Support let pattern matches
  • Smaller output for serialization code
  • --base-path flag to use a custom base (mainly for fay-prim)
  • Allow ExistentialQuantification, FlexibleContexts, FlexibleInstances, KindSignatures
  • Verify that GADTs using non-record syntax works
  • JS->Fay function serialization
  • Serialization support for (), tuples and Char
  • Add more reserved words for Google Closure

Bugfixes:

  • Fix a bug when an imported module contains types
  • Fix a bug with EModuleContents exports
  • Fix where clause inside pattern guards in function definitions
  • Fix type variables in serialization for multiple constructors
  • Fix EThingAll exports for types with constructors with a different name
  • Don't export types in EThingAll and EThingWith

0.14.5.0 (2013-04-24)

  • Support for newtypes (with no runtime cost!)
  • --base-path flag to specify custom locations for fay-base
  • Fix a bug where imports shadowing local bindings would prevent the local binding from being exported

0.14.4.0 (2013-04-21)

  • Fix record updates on IE <= 8
  • Import tweaks, will make compilation a lot faster (4x reported) when there are a lot of imports
  • Parse hs sources with base fixities