The RefSerialize package

[Tags: bsd3, library]

Read, Show and Data.Binary do not check for pointers to the same address as a result, the data is duplicated when serialized. This is a waste of space in the filesystem and also a waste of serialization time. but the worst consequence is that, when the serialized data is read, it allocates multiple copies for the same object referenced multiple times. Because multiple referenced data is very typical in a pure language such is Haskell, this means that the resulting data loose the beatiful economy of space and processing time that referential transparency permits. This package allows the serialization and deserialization of large data structures without duplication of data, with the result of optimized performance and memory usage. It is also useful for debugging purposes. There are automatic derived instances for instances of Read/Show. Lists of non-chars have its own instance. The deserializer contains a subset of Parsec.Token for defining deserializing parsers. Every instance of Show/Read is also a instance of Data.RefSerialize the serialized string has the form expr( var1, ...varn) where var1=value1,..valn=valueN so that the string can ve EVALuated. So the entire deserialization can be substituted by eval. See demo.hs and tutorial. I presumably will add a entry in haskell-web.blogspot.com To develop: -derived instances for Data.Binary -serialization to/from ByteStings


Properties

Versions0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, 0.2.8.1, 0.3.0.0, 0.3.0.1, 0.3.1.0, 0.3.1.1, 0.3.1.2, 0.3.1.3
Dependenciesbase, containers
LicenseBSD3
AuthorAlberto Gómez Corona
Maintaineragocorona@gmail.com
CategoryParsing
UploadedMon Nov 3 17:24:38 UTC 2008 by AlbertoCorona
DistributionsNixOS:0.3.1.3
Downloads2613 total (159 in last 30 days)
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees