large-records: Efficient compilation for large records, linear in the size of the record

[ bsd3, generics, library ] [ Propose Tags ]

For many reasons, the internal code generated for modules that contain records is quadratic in the number of record fields. For large records (more than 30 fields, say), this can become problematic, leading to large compilation times and high memory requirements for ghc. The large-records library provides a way to define records that is guaranteed to result in ghc core that is linear in the number of record fields.

Versions [RSS] [faq] 0.1.0.0
Change log CHANGELOG.md
Dependencies aeson (>=1.4.4 && <1.6), base (>=4.13 && <4.15), containers (>=0.6.2 && <0.7), generics-sop (==0.5.*), haskell-src-exts (>=1.21.1 && <1.24), haskell-src-meta (>=0.8.3 && <0.9), microlens (>=0.1.5 && <0.5), mtl (>=2.2.1 && <2.3), record-hasfield (==1.0.*), sop-core (==0.5.*), syb (==0.7.*), template-haskell, text (>=1.2.4 && <1.5), vector (==0.12.*) [details]
License BSD-3-Clause
Author Edsko de Vries
Maintainer edsko@well-typed.com
Revised Revision 1 made by EdskoDeVries at 2021-08-19T11:19:39Z
Category Generics
Bug tracker https://github.com/well-typed/large-records/issues
Source repo head: git clone https://github.com/well-typed/large-records
Uploaded by EdskoDeVries at 2021-08-19T09:45:05Z
Distributions NixOS:0.1.0.0
Downloads 47 total (6 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2021-08-19 [all 1 reports]

Modules

[Index] [Quick Jump]

Manual Flags

NameDescriptionDefault
Automatic Flags
NameDescriptionDefault
build-all-modules

Build all test modules in Size

Disabled
use-ghc-dump

use ghc-dump to output AST sizes

Disabled
profile-allzip

Include experiment to verify size of AllZip is linear

Disabled

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

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Candidates