0.8.0.0 — Snapshot release
Graphics.UI.Threepenny
- Fix
getElementById
to properly returnNothing
when no element with the givenid
attribute is present. #129. - Bring back
loadFile
andloadDirectory
. #110 - Add
MonadUI
typeclass for easier lifting in custom monad stacks. #173
JavaScript FFI
- Implement batching / buffering for FFI calls. #131. Several calls to the
runFunction
function may now buffer the JavaScript code and send it to the browser window in a single message at a later time. This improves performance considerably. - Clarify semantics for exceptions. See the file
doc/javascript-ffi.md
for more.- The
UI
monad now supports exception handling by being an instance of the type classesMonadThrow
andMonadCatch
. - The function
callFunction
can now throw aJavaScriptException
exception to the Haskell side. - The function
runFunction
now terminates the connection to the browser window whenever the JavaScript code within throws an exception.
- The
- Exceptions in the
UI
monad that are not handled are now printed properly for better debugging. #145 - Clarify semantics of the
disconnect
event. It is now triggered more reliably. #133. - Remove unnecessary client response when exporting event handlers. #131.
- Add option
jsWindowReloadOnDisconnect
to reload the browser window #130 whenever the WebSocket connection is broken. This is useful for e.g. mobile devices, which tend to disconnect WebSocket connections very often.
Dependencies
- Add dependency on
exceptions
0.7.0.2 — Maintenance release
- Bump dependencies to allow
aeson
1.2 - Bump dependencies to allow
websockets
0.11
0.7.0.1 — Maintenance release
- Bump dependencies to allow
aeson
1.1 - Bump dependencies to allow
vector
0.12 - Bump dependencies to allow
websockets
0.10
0.7.0.0 — Maintenance and snapshot release
- JavaScript FFI: Reduce communication from browser to server when creating
Element
s. New functionunsafeCreateJSObject
to create JavaScript objects without waiting for a client response. #131 - JavaScript FFI: Implement escape sequence '%%' when calling JavaScript functions. #132.
- Change type of
onEvent
function to allow unregistering events. - Add function
timestamp
for simple performance measurements. - Update JavaScript dependencies to jQuery 2.2.3
- Adapt to GHC 8.0.1. #138
- Bump dependencies to allow
aeson
1.0 - Bump dependencies to allow
data-default
0.7 - Bump dependencies to allow
snap-core
1.0 andsnap-server
1.0 - Bump dependencies to allow
template-haskell
2.11 - Bump dependencies to allow
websockets-snap
0.10
0.6.0.6 — Maintenance release
- Bump dependencies to allow
base
4.9 - Bump dependencies to allow
aeson
0.11
0.6.0.5 — Maintenance release
- Bump dependencies to allow
async
2.1 - Bump dependencies to allow
transformers
0.5
0.6.0.4 — Maintenance release.
- Elements that have become unreachable, for instance because they have been removed from the DOM and are no longer reachable in the Haskell code, will be garbage collected again. Fix #109, #113.
- Adjust dependencies.
- Add
<meta>
tag to indicate UTF8 encoding in html file. #116
0.6.0.3 — Maintenance release.
- Temporary fix for #109, which was causing event handlers to be discarded. Unfortunately, this means that elements are currently not garbage collected after they have been removed from the DOM tree.
0.6.0.2 — Maintenance release.
- Remove unused direct dependencies, in particular ** attoparsec-enumerator ** utf8-string ** MonadCatchIO-transformers ** time
0.6.0.1 — Maintenance release.
- The
ADDR
environment variable is now parsed correctly. - Now builds on GHC 7.8 and GHC 7.10
- The example source code in the
samples
folder has been reorganized and consolidated.
0.6.0.0 — Snapshot release.
- The internals of the JavaScript FFI has been reimplemented completely. A new module
Foreign.JavaScript
exports a bare JavaScript FFI in case you want to write a custom GUI framework. However, the moduleGraphics.UI.Threepenny
is not compatible with it, even though it builds on top of it. - The fields of
Config
type for server configuration are now prefixed withjs
instead oftp
. Example:jsPort
,jsStatic
. - The functions
loadFile
andloadDirectory
have been removed, as I felt that thejsStatic
option is sufficient for most use cases.
0.5.0.0 — Snapshot release.
- Possibility to specify IP address to bind the server to.
- FFI now supports callbacks into Haskell. Remove
callDeferredFunction
function. Graphics.UI.Threepenny.Canvas.SVG
for creating SVG elements and attributes.- 2D graphics API in
Graphics.UI.Threepenny.Canvas
is beginning to grow. Bool
is now correctly marshalled to JavaScript.Text
can now be marshalled to JavaScrtip.
0.4.2.0 — Maintenance release.
- Dependency
bytestring >=0.9.2
is now implemented correctly. - Allow newer versions of
aeson
dependency. - Allow newer versions of
network
,transformers
andtemplate-haskell
dependencies. - Helper scripts in the
samples
directory now assume that you use a cabal sandbox for development. - The
UI
monad is now an instance of theApplicative
class.
0.4.1.0 — Maintenance release.
- Dependency on
text
package now from version 0.11 to 1.1.*. - Dependency on
aeson
package replaces the former dependency on thejson
package. - Unicode characters are now transmitted correctly to the browser. #75, #62.
- Change default port number to 8023. #64
0.4.0.2 — Bugfix release.
- Fix CSS bug for
grid
function.
0.4.0.1 — Maintenance release.
- Adjust package dependencies.
0.4.0.0 — Snapshot release.
- New
UI
monad for easier JavaScript FFI and recursion in FRP. - Garbage collection for DOM elements. (Unfortunately, this doesn't support using custom HTML files anymore, see issue #60.)
- First stab at widgets.
- Bump dependencies to allow
websockets
0.8
0.3.0.0 — Snapshot release.
- Browser communication with WebSockets.
- First stab at FRP integration.
0.2.0.0 — Snapshot release.
- First stab at easy JavaScript FFI.
0.1.0.0
- Initial release.