storable-record: Elegant definition of Storable instances for records

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

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:

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.

Properties

Versions 0.0.1, 0.0.2, 0.0.2.1, 0.0.2.2, 0.0.2.3, 0.0.2.4, 0.0.2.5, 0.0.3, 0.0.3.1, 0.0.4, 0.0.4, 0.0.4.1, 0.0.5, 0.0.6, 0.0.7
Change log None available
Dependencies base (>=1.0 && <2 || >=3 && <6), semigroups (>=0.1 && <1.0), special-functors (>=1.0 && <1.1), storablevector (>=0.2.7 && <0.3), timeit (>=1.0 && <1.1), transformers (>=0.2 && <0.6), utility-ht (>=0.0.1 && <0.1) [details]
License BSD-3-Clause
Author Henning Thielemann <storable@henning-thielemann.de>
Maintainer Henning Thielemann <storable@henning-thielemann.de>
Category Data, Foreign
Home page http://code.haskell.org/~thielema/storable-record/
Source repo head: darcs get http://code.haskell.org/~thielema/storable-record/
this: darcs get http://code.haskell.org/~thielema/storable-record/ --tag 0.0.4
Uploaded by HenningThielemann at 2018-02-17T17:36:16Z

Modules

[Index]

Flags

Automatic Flags
NameDescriptionDefault
splitbase

Choose the new smaller, split-up base package.

Enabled
buildtests

Build speed test

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees