[haskell-platform] #86: Proposal: Add Package: binary

haskell-platform haskell-platform at projects.haskell.org
Sat Aug 8 15:28:08 EDT 2009


#86: Proposal: Add Package: binary
------------------------------+---------------------------------------------
 Reporter:  dons              |        Owner:  dons    
     Type:  defect            |       Status:  new     
 Priority:  major             |    Milestone:  2009.4.0
Component:  Package Addition  |   Resolution:          
 Keywords:                    |  
------------------------------+---------------------------------------------
Old description:

> http://www.haskell.org/pipermail/libraries/2009-August/012231.html
>
>  * Proposal discussion threads:
> http://www.haskell.org/pipermail/libraries/2009-August/012257.html
>
>  * Package name: binary
>  * Package url: http://hackage.haskell.org/package/binary
>  * Package category: Data
>  * Package cabal file :
> http://hackage.haskell.org/packages/archive/binary/0.5.0.1/binary.cabal
>
> ||'''Heuristic'''||'''Status'''||'''Notes'''||
> ||What functionality does the package provide?||Efficient, pure binary
> serialisation using lazy ByteStrings. Haskell values may be encoded to
> and from binary formats, written to disk as binary, or sent over the
> network.||||
> ||What language features/extensions does the package
> require?||CPP,FlexibleContexts||||
> ||How popular is the package in
> [http://www.galois.com/~dons/hackage/popularity.html Hackage
> downloads]?|| Rank 6 / 1200||||
> ||How many packages depend on this package (what does it enable to
> build)?|| [http://aur.archlinux.org/packages.php?ID=19402 68 packages]
> ||||
> ||Do any applications of note depend on this package?|| yi||||
> ||Does it provide some foundational, general purpose
> functionality?||parsing binary data from streams of bytes||||
> ||Are there equivalent libraries in the Python (or other)
> [http://docs.python.org/library/ base libraries]?|| Yes,
> "[http://docs.python.org/library/struct.html struct] - Interpret strings
> as packed binary data", though this is more general ||||
> ||Is this package portable to all platforms?|| Yes, and to Hugs||||
> ||Does this package require additional C libraries?|| No||||
> ||Does the package follow the
> [http://www.haskell.org/haskellwiki/Package_versioning_policy package
> versioning policy]?|| Yes. ||||
> ||Is the code of high quality?|| Yes. ||||
> ||What is the bug history of this code?|| There have been a handful of
> bugs, none in the last 3 or so releases ||||
> ||Is the code [http://www.haskell.org/cabal/ cabalized] and hosted on
> [http://hackage.haskell.org/packages/archive/pkg-list.html Hackage]?||
> Yes||||
> ||Does it build with cabal-install?|| Yes||||
> ||Does it provide [http://www.haskell.org/haddock/ haddock
> documentation]?||
> [http://hackage.haskell.org/packages/archive/binary/0.5.0.1/doc/html
> /Data-Binary.html Yes]||||
> ||Does it have a test suite? Does it have test coverage data?|| Yes,
> [http://code.haskell.org/~dons/tests/binary/hpc_index.html Yes]. ||||
> ||Who is the maintainer of the code?|| Lennart Kolmodin, Don Stewart ||||
> ||Does the package add new dependencies?|| No. ||||
> ||Does the package build with build-style: Simple?|| Yes. ||||
> ||Does this package duplicate existing functionality in the Haskell
> Platform?|| No. ||||
> ||Does the package reuse types and data from the Haskell Platform? What
> types does it define?|| It reuses lazy bytestrings, and base word types
> ||||
> ||Does the package use the hierarchical naming conventions?|| Yes. ||||
> ||Does the package build with -Wall?|| Yes. ||||
> ||Does the package have performance figures/complexity annotations?|| It
> has performance figures. ||||
> ||What license does the library have?||BSD3||||
> ||Is the library "Haskell-ish"?|| It provides a purely functional, lazy
> interface to binary encoding/decoding.||||
> ||Is the library thread safe?||Yes. ||||
> ||Is the package a stop-gap for a more general solution?|| A strict
> version would also be useful.||||
> ||What other packages provide similar functionality?|| binary-strict,
> attoparsec to some degree, various bit parsing libs ||||
> ||Will the maintainer adhear to the release schedule for the platform?||
> Yes.||||
> ||Other relevant criteria?|| ||||
>
> Action Items
>
>  * Establish benchmarks for the default instances shipped with Binary.
>      * Krasimir confirms stack overflows and performance issues of
> concern have gone.
>  * Documentation for how to catch parse failures with Binary
>  * An easier to catch failure mode.
>  * Variable width encoding for Int instance?

New description:

 http://www.haskell.org/pipermail/libraries/2009-August/012231.html

  * Proposal discussion threads:
 http://www.haskell.org/pipermail/libraries/2009-August/012257.html

  * Package name: binary
  * Package url: http://hackage.haskell.org/package/binary
  * Package category: Data
  * Package cabal file :
 http://hackage.haskell.org/packages/archive/binary/0.5.0.1/binary.cabal

 ||'''Heuristic'''||'''Status'''||'''Notes'''||
 ||What functionality does the package provide?||Efficient, pure binary
 serialisation using lazy ByteStrings. Haskell values may be encoded to and
 from binary formats, written to disk as binary, or sent over the
 network.||||
 ||What language features/extensions does the package
 require?||CPP,FlexibleContexts||||
 ||How popular is the package in
 [http://www.galois.com/~dons/hackage/popularity.html Hackage downloads]?||
 Rank 6 / 1200||||
 ||How many packages depend on this package (what does it enable to
 build)?|| [http://aur.archlinux.org/packages.php?ID=19402 68 packages]
 ||||
 ||Do any applications of note depend on this package?|| yi||||
 ||Does it provide some foundational, general purpose
 functionality?||parsing binary data from streams of bytes||||
 ||Are there equivalent libraries in the Python (or other)
 [http://docs.python.org/library/ base libraries]?|| Yes,
 "[http://docs.python.org/library/struct.html struct] - Interpret strings
 as packed binary data", though this is more general ||||
 ||Is this package portable to all platforms?|| Yes, and to Hugs||||
 ||Does this package require additional C libraries?|| No||||
 ||Does the package follow the
 [http://www.haskell.org/haskellwiki/Package_versioning_policy package
 versioning policy]?|| Yes. ||||
 ||Is the code of high quality?|| Yes. ||||
 ||What is the bug history of this code?|| There have been a handful of
 bugs, none in the last 3 or so releases ||||
 ||Is the code [http://www.haskell.org/cabal/ cabalized] and hosted on
 [http://hackage.haskell.org/packages/archive/pkg-list.html Hackage]?||
 Yes||||
 ||Does it build with cabal-install?|| Yes||||
 ||Does it provide [http://www.haskell.org/haddock/ haddock
 documentation]?||
 [http://hackage.haskell.org/packages/archive/binary/0.5.0.1/doc/html/Data-
 Binary.html Yes]||||
 ||Does it have a test suite? Does it have test coverage data?|| Yes,
 [http://code.haskell.org/~dons/tests/binary/hpc_index.html Yes]. ||||
 ||Who is the maintainer of the code?|| Lennart Kolmodin, Don Stewart ||||
 ||Does the package add new dependencies?|| No. ||||
 ||Does the package build with build-style: Simple?|| Yes. ||||
 ||Does this package duplicate existing functionality in the Haskell
 Platform?|| No. ||||
 ||Does the package reuse types and data from the Haskell Platform? What
 types does it define?|| It reuses lazy bytestrings, and base word types
 ||||
 ||Does the package use the hierarchical naming conventions?|| Yes. ||||
 ||Does the package build with -Wall?|| Yes. ||||
 ||Does the package have performance figures/complexity annotations?|| It
 has performance figures. ||||
 ||What license does the library have?||BSD3||||
 ||Is the library "Haskell-ish"?|| It provides a purely functional, lazy
 interface to binary encoding/decoding.||||
 ||Is the library thread safe?||Yes. ||||
 ||Is the package a stop-gap for a more general solution?|| A strict
 version would also be useful.||||
 ||What other packages provide similar functionality?|| binary-strict,
 attoparsec to some degree, various bit parsing libs ||||
 ||Will the maintainer adhear to the release schedule for the platform?||
 Yes.||||
 ||Other relevant criteria?|| ||||

 Action Items

  * Establish benchmarks for the default instances shipped with Binary.
      * Krasimir confirms stack overflows and performance issues of concern
 have gone.
  * Documentation for how to catch parse failures with Binary (via
 evaluate/catch).
  * An easier to catch failure mode.
  * Variable width encoding for Int instance?
  * a piece of documentation on the side could do until haddock supports
 documenting instances

-- 
Ticket URL: <http://trac.haskell.org/haskell-platform/ticket/86#comment:4>
haskell-platform <http://trac.haskell.org/haskell-platform>
The Haskell Platform: a comprehensive and robust collection of Haskell libraries


More information about the Haskell-platform mailing list