packages feed

Cabal revisions of storable-record-0.0.3.1

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-Name:         storable-record-Version:      0.0.3.1-Category:     Data, Foreign-Synopsis:     Elegant definition of Storable instances for records-Description:-  With this package-  you can build a Storable instance of a record type-  from Storable instances of its elements in an elegant way.-  It does not do any magic,-  just a bit arithmetic to compute the right offsets,-  that would be otherwise done manually-  or by a preprocessor like C2HS.-  I cannot promise that the generated memory layout-  is compatible with that of a corresponding C struct.-  However, the module generates the smallest layout-  that is possible with respect to the alignment of the record elements.-  If you encounter, that a record does not have a compatible layout,-  we should fix that.-  But also without C compatibility this package is useful-  e.g. in connection with StorableVector.-  .-  We provide Storable instance support for several cases:-  .-  * If you wrap a type in a @newtype@,-    then you can lift its 'Storable' instance to that @newtype@-    with the module "Foreign.Storable.Newtype".-    This way you do not need the @GeneralizedNewtypeDeriving@ feature of GHC.-  .-  * If you have a type that is an instance of 'Traversable',-    you can use that feature for implementation of 'Storable' methods.-    The module "Foreign.Storable.Traversable"-    allows manipulation of the portion of your type,-    that is accessible by 'Traversable' methods.-    For instance with the type-    @data T a = Cons Int [a]@-    and an according 'Traversable' implementation,-    you can load and store the elements of the contained list.-    This may be part of a 'Storable' implementation of the whole type.-  .-  * If you have a record containing elements of various types,-    then you need module "Foreign.Storable.Record".-  .-  Note however that the Storable instances-  defined with this package are quite slow in (up to) GHC-6.12.1.-  I'm afraid this is due to incomplete inlining,-  but we have still to investigate the problem.-  .-  For examples see packages @storable-tuple@ and @sample-frame@.-License:             BSD3-License-file:        LICENSE-Author:              Henning Thielemann <storable@henning-thielemann.de>-Maintainer:          Henning Thielemann <storable@henning-thielemann.de>-Homepage:            http://code.haskell.org/~thielema/storable-record/-Stability:           Experimental-Build-Type:          Simple-Tested-With:         GHC==6.8.2, GHC==6.10.4, GHC==6.12.1, GHC==8.0.1-Cabal-Version:       >=1.6--Source-Repository head-  Type:     darcs-  Location: http://code.haskell.org/~thielema/storable-record/--Source-Repository this-  Type:     darcs-  Location: http://code.haskell.org/~thielema/storable-record/-  Tag:      0.0.3.1--Flag splitBase-  description: Choose the new smaller, split-up base package.--Flag buildTests-  description: Build speed test-  default:     False--Library-  Build-Depends:-    transformers >=0.2 && <0.6,-    utility-ht >=0.0.1 && <0.1-  If flag(splitBase)-    Build-Depends:-      base >= 3 && < 6-  Else-    Build-Depends:-      special-functors >= 1.0 && <1.1,-      base >= 1.0 && < 2--  GHC-Options:         -Wall-  Hs-Source-Dirs:      src--  Exposed-Modules:-    Foreign.Storable.Record-    Foreign.Storable.Newtype-    Foreign.Storable.Traversable-    Foreign.Storable.FixedArray-  Other-Modules:-    Foreign.Storable.RecordMinimalSize-    Foreign.Storable.RecordReaderPtr-    Foreign.Storable.TraversableUnequalSizes--Executable storable-record-speed-  If flag(buildTests)-    Build-Depends:-      storablevector >=0.2.7 && <0.3,-      timeit >=1.0 && <1.1-  Else-    Buildable: False--  GHC-Options:         -Wall-  Hs-Source-Dirs:      src-  Main-Is:             SpeedTest.hs+Name:         storable-record
+Version:      0.0.3.1
+x-revision: 1
+Category:     Data, Foreign
+Synopsis:     Elegant definition of Storable instances for records
+Description:
+  With this package
+  you can build a Storable instance of a record type
+  from Storable instances of its elements in an elegant way.
+  It does not do any magic,
+  just a bit arithmetic to compute the right offsets,
+  that would be otherwise done manually
+  or by a preprocessor like C2HS.
+  I cannot promise that the generated memory layout
+  is compatible with that of a corresponding C struct.
+  However, the module generates the smallest layout
+  that is possible with respect to the alignment of the record elements.
+  If you encounter, that a record does not have a compatible layout,
+  we should fix that.
+  But also without C compatibility this package is useful
+  e.g. in connection with StorableVector.
+  .
+  We provide Storable instance support for several cases:
+  .
+  * If you wrap a type in a @newtype@,
+    then you can lift its 'Storable' instance to that @newtype@
+    with the module "Foreign.Storable.Newtype".
+    This way you do not need the @GeneralizedNewtypeDeriving@ feature of GHC.
+  .
+  * If you have a type that is an instance of 'Traversable',
+    you can use that feature for implementation of 'Storable' methods.
+    The module "Foreign.Storable.Traversable"
+    allows manipulation of the portion of your type,
+    that is accessible by 'Traversable' methods.
+    For instance with the type
+    @data T a = Cons Int [a]@
+    and an according 'Traversable' implementation,
+    you can load and store the elements of the contained list.
+    This may be part of a 'Storable' implementation of the whole type.
+  .
+  * If you have a record containing elements of various types,
+    then you need module "Foreign.Storable.Record".
+  .
+  Note however that the Storable instances
+  defined with this package are quite slow in (up to) GHC-6.12.1.
+  I'm afraid this is due to incomplete inlining,
+  but we have still to investigate the problem.
+  .
+  For examples see packages @storable-tuple@ and @sample-frame@.
+License:             BSD3
+License-file:        LICENSE
+Author:              Henning Thielemann <storable@henning-thielemann.de>
+Maintainer:          Henning Thielemann <storable@henning-thielemann.de>
+Homepage:            http://code.haskell.org/~thielema/storable-record/
+Stability:           Experimental
+Build-Type:          Simple
+Tested-With:         GHC==6.8.2, GHC==6.10.4, GHC==6.12.1, GHC==8.0.1
+Cabal-Version:       >=1.6
+
+Source-Repository head
+  Type:     darcs
+  Location: http://code.haskell.org/~thielema/storable-record/
+
+Source-Repository this
+  Type:     darcs
+  Location: http://code.haskell.org/~thielema/storable-record/
+  Tag:      0.0.3.1
+
+Flag splitBase
+  description: Choose the new smaller, split-up base package.
+
+Flag buildTests
+  description: Build speed test
+  default:     False
+
+Library
+  Build-Depends:
+    transformers >=0.2 && <0.6,
+    utility-ht >=0.0.1 && <0.1
+  If flag(splitBase)
+    Build-Depends:
+      base >= 3 && < 4.11
+  Else
+    Build-Depends:
+      special-functors >= 1.0 && <1.1,
+      base >= 1.0 && < 2
+
+  GHC-Options:         -Wall
+  Hs-Source-Dirs:      src
+
+  Exposed-Modules:
+    Foreign.Storable.Record
+    Foreign.Storable.Newtype
+    Foreign.Storable.Traversable
+    Foreign.Storable.FixedArray
+  Other-Modules:
+    Foreign.Storable.RecordMinimalSize
+    Foreign.Storable.RecordReaderPtr
+    Foreign.Storable.TraversableUnequalSizes
+
+Executable storable-record-speed
+  If flag(buildTests)
+    Build-Depends:
+      storablevector >=0.2.7 && <0.3,
+      timeit >=1.0 && <1.1
+  Else
+    Buildable: False
+
+  GHC-Options:         -Wall
+  Hs-Source-Dirs:      src
+  Main-Is:             SpeedTest.hs