Changelog for threepenny-gui-0.8.0.0
Changelog for the threepenny-gui package
0.8.0.0 — Snapshot release
Graphics.UI.Threepenny
- Fix
getElementByIdto properly returnNothingwhen no element with the givenidattribute is present. #129. - Bring back
loadFileandloadDirectory. #110 - Add
MonadUItypeclass for easier lifting in custom monad stacks. #173
JavaScript FFI
-
Implement batching / buffering for FFI calls. #131. Several calls to the
runFunctionfunction 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.mdfor more.- The
UImonad now supports exception handling by being an instance of the type classesMonadThrowandMonadCatch. - The function
callFunctioncan now throw aJavaScriptExceptionexception to the Haskell side. - The function
runFunctionnow terminates the connection to the browser window whenever the JavaScript code within throws an exception.
- The
-
Exceptions in the
UImonad that are not handled are now printed properly for better debugging. #145 -
Clarify semantics of the
disconnectevent. It is now triggered more reliably. #133. -
Remove unnecessary client response when exporting event handlers. #131.
-
Add option
jsWindowReloadOnDisconnectto 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
aeson1.2 - Bump dependencies to allow
websockets0.11
0.7.0.1 — Maintenance release
- Bump dependencies to allow
aeson1.1 - Bump dependencies to allow
vector0.12 - Bump dependencies to allow
websockets0.10
0.7.0.0 — Maintenance and snapshot release
-
JavaScript FFI: Reduce communication from browser to server when creating
Elements. New functionunsafeCreateJSObjectto create JavaScript objects without waiting for a client response. #131 -
JavaScript FFI: Implement escape sequence '%%' when calling JavaScript functions. #132.
-
Change type of
onEventfunction to allow unregistering events. -
Add function
timestampfor simple performance measurements. -
Update JavaScript dependencies to jQuery 2.2.3
-
Adapt to GHC 8.0.1. #138
-
Bump dependencies to allow
aeson1.0 -
Bump dependencies to allow
data-default0.7 -
Bump dependencies to allow
snap-core1.0 andsnap-server1.0 -
Bump dependencies to allow
template-haskell2.11 -
Bump dependencies to allow
websockets-snap0.10
0.6.0.6 — Maintenance release
- Bump dependencies to allow
base4.9 - Bump dependencies to allow
aeson0.11
0.6.0.5 — Maintenance release
- Bump dependencies to allow
async2.1 - Bump dependencies to allow
transformers0.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
ADDRenvironment variable is now parsed correctly. - Now builds on GHC 7.8 and GHC 7.10
- The example source code in the
samplesfolder 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.JavaScriptexports a bare JavaScript FFI in case you want to write a custom GUI framework. However, the moduleGraphics.UI.Threepennyis not compatible with it, even though it builds on top of it. - The fields of
Configtype for server configuration are now prefixed withjsinstead oftp. Example:jsPort,jsStatic. - The functions
loadFileandloadDirectoryhave been removed, as I felt that thejsStaticoption 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
callDeferredFunctionfunction. Graphics.UI.Threepenny.Canvas.SVGfor creating SVG elements and attributes.- 2D graphics API in
Graphics.UI.Threepenny.Canvasis beginning to grow. Boolis now correctly marshalled to JavaScript.Textcan now be marshalled to JavaScrtip.
0.4.2.0 — Maintenance release.
- Dependency
bytestring >=0.9.2is now implemented correctly. - Allow newer versions of
aesondependency. - Allow newer versions of
network,transformersandtemplate-haskelldependencies. - Helper scripts in the
samplesdirectory now assume that you use a cabal sandbox for development. - The
UImonad is now an instance of theApplicativeclass.
0.4.1.0 — Maintenance release.
- Dependency on
textpackage now from version 0.11 to 1.1.*. - Dependency on
aesonpackage replaces the former dependency on thejsonpackage. - 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
gridfunction.
0.4.0.1 — Maintenance release.
- Adjust package dependencies.
0.4.0.0 — Snapshot release.
-
New
UImonad 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
websockets0.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.