Changelog of @hackage/blaze-builder 0.3.2.0

  • 0.3.2.0

    • added 'writeToByteString' to construct a strict bytestring in a single step. We can actually view 'Write's as strict-bytestring builders.
  • 0.3.1.1

    • Changed imports of Foreign.Unsafe to make it GHC 7.8 compatible
    • -Wall clean on GHC 7.0 - 7.6
  • 0.3.1.0

    • Widened dependencies on text and bytestring
  • 0.3.0.1

    • Fix build warning in Blaze.ByteString.Builder.Word (contributed by Greg Weber)
  • 0.3.0.1

    • Remove comparison to the 'text' library encoding functions of 'Blaze.Builder.Char.Utf8.fromText' and 'Blaze.Builder.Char.Utf8.fromLazyText'. Bryan O'Sullivan reported that on his 64-bit system with GHC 7.0.3 the 'text' library is 5x faster than the 'blaze-builder' library.
  • 0.3.0.0

    • Renamings in internal modules: WriteIO -> Poke and associated functions.
  • 0.2.1.4

    • Fixed bug: appending to 'chunkedTransferEncoding somebuilder' also encoded the appended builder, which is obviously wrong.
  • 0.2.1.3

    • Fixed bug: 'chunkedTransferTerminator' is now correctly set to "0\r\n\r\n".
  • 0.2.1.2

  • 0.2.1.1

    • Reexport 'Write' datatype and 'fromWriteList', 'fromWriteSingleton', 'fromWrite' functions together with writes and builders for storables.
    • Add 'MonoPatBinds' language extension to (hopefully) solve the issues caused by GHC bug http://hackage.haskell.org/trac/ghc/ticket/4498
  • 0.2.1.0

    Incorporated several design changes:

    • Writable buffer range is now represented in a packed form. This improves speed slightly, as less currying is used.
    • Writes are abstracted such that their internal representation can be exchanged without breaking other library code.
    • Writes are represented in a form that allows for efficient monoid instances for branching code like UTF-8 encoding. For single character encoding this results currently in a slight slowdown due to GHC not recognizing the strictness of the returned value. This will be fixed in the future.
    • BuildSteps support returning a result in Done, which enables to implement a Put monad using CPS.
    • chunked list writes were removed, as they result in worse performance when writing non-trivial lists. (cf. benchmarks)
    • An internal buffering abstraction is introduced, which is used both by the adaption of the binary package, as well as by the blaze-builder-enumeratee package, to execute puts and builders. It will be used later also by the execution functions of the blaze-builder package.

    Implemented new functionality

    • Blaze.ByteString.Builder.HTTP provides a builder transformer for doing in-buffer chunked HTTP encoding of an arbitary other builder.
    • Blaze.ByteString.Builder.Char8 provides functions to serialize the lower 8-bits of characters similiar to what Data.ByteString.Char8 provides for bytestrings.
  • 0.2.0.3

    Loosen 'text' dependency to '>= 0.10 && < 0.12'

  • 0.2.0.2

    Fixed bug: use ' instead of ' for HTML escaping '

  • 0.2.0.1

    Added a missing benchmark file.

  • blaze-builder-0.2.0.0

    Heavily restructured 'blaze-builder' such that 'Blaze.ByteString.Builder' serves as a drop-in replacement of 'binary:Data.Binary.Builder' which it improves upon with respect to both speed as well as expressivity. See the documentation and the benchmarks for details on improvements and new functionality.

    Changed module structure: Blaze.ByteString.Builder.Core -> Blaze.ByteString.Builder Blaze.ByteString.Builder.Utf8 -> Blaze.ByteString.Builder.Char.Utf8 Blaze.ByteString.Builder.Html -> Blaze.ByteString.Builder.Html.Utf8

    Changed function names: writeByte -> writeWord8 fromByte -> fromWord8 fromWriteList -> fromWrite1List

    Possibly performance sensitive implementation changes:

    • 'fromByteString' and 'fromLazyByteString' check now if a direct insertion of the bytestring(s) would be cheaper than copying it. See their documentation on how to recover the old behaviour.

    Deprecated functions: 'empty' : use 'mempty' instead 'singleton': use 'fromWord8' instead 'append' : use 'mappend' instead

  • blaze-builder-0.1

    This is the first version of 'blaze-builder'. It is explicitely targeted at fast generation of UTF-8 encoded HTML documents in the 'blaze-html' and the 'hamlet' HTML templating libraries.