Changelog History
Page 7
-
v0.18.0.2 Changes
October 16, 2013๐ Bug fixes:
- โช Regression: Work around a bug in optparse-applicative 0.6 that prevents
--strict
from being used.
- โช Regression: Work around a bug in optparse-applicative 0.6 that prevents
-
v0.18.0.1 Changes
October 16, 2013- Source maps for top level definitions, use
--sourcemap
๐ Bug fixes:
- Regression: Equality checks for (G)ADTs (
deriving Eq
) - ๐ Fix
--strict
for top level ADT values (such asmodule M where g = R
) - Regression: Serialization in the presence of compression/renaming
- Pass NoImplicitPrelude (and other enabled extensions) to haskell-names to resolve ambiguities when Prelude isn't imported.
Minor:
- โฌ๏ธ Bump optparse-applicative to 0.6.*
- โฌ๏ธ Bump haskell-names to 0.3.1 to allow compilation with Cabal 1.14
- Ignore more declarations (useful when code sharing with GHC)
- Source maps for top level definitions, use
-
v0.18.0.0 Changes
September 24, 2013๐ 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.
- ๐ Support for qualified imports. Note: You still can't have multiple constructors with the same name in the FFI since the
-
v0.17.0.0 Changes
August 27, 2013With the
RebindableSyntax
andOverloadedStrings
extensions Fay will treat Haskell string literals as JavaScript Strings. Add this in all modules and import Fay.Text (from thefay-text
package). This is not a breaking change, without these extensions in a moduleString
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 definefromInteger
when using this with Num literals.๐ The type signature of
Fay.FFI.ffi
(in fay) andFFI.ffi
(in fay-base) has been generalized toIsString s => s -> a
to supportRebindableSyntax
.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
-
v0.16.0.3 Changes
August 23, 2013- ๐ Support for tuple constructors (
(,,) 1,2,3
)
Minor:
- โฌ๏ธ Bump
pretty-show
to>= 1.6
- โ Remove the
-fdevel
flag (when compiling fay itself)
- ๐ Support for tuple constructors (
-
v0.16.0.2 Changes
August 21, 2013Minor:
- โฌ๏ธ Bump
haskell-src-exts
to>= 1.14
- โฌ๏ธ Bump
-
v0.16.0.1 Changes
August 08, 2013๐ Bugfixes:
- Allow combining multiline strings with CPP
-
v0.16.0.0 Changes
August 05, 2013- New module generation, modules generate code separately in the format
My.Module.foo
instead ofMy$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
andFay$$jsToFayUserDefined
, instead callFay$$fayToJs
andFay$$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 toFay.FFI
(as before, Fay code can importFFI
fromfay-base
)
Minor:
- Print location of parse errors
- 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)
- New module generation, modules generate code separately in the format
-
v0.15.0.0 Changes
June 08, 2013- 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 andChar
- 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
- Expression level FFI calls,
-
v0.14.5.0 Changes
April 24, 2013- ๐ 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