cabal-version: 2.4 name: large-records version: 0.1.0.0 x-revision: 1 synopsis: Efficient compilation for large records, linear in the size of the record description: 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. bug-reports: https://github.com/well-typed/large-records/issues license: BSD-3-Clause author: Edsko de Vries maintainer: edsko@well-typed.com category: Generics extra-source-files: CHANGELOG.md source-repository head type: git location: https://github.com/well-typed/large-records library exposed-modules: Data.Record.Generic Data.Record.Generic.Eq Data.Record.Generic.GHC Data.Record.Generic.JSON Data.Record.Generic.Lens.Micro Data.Record.Generic.LowerBound Data.Record.Generic.Rep Data.Record.Generic.Rep.Internal Data.Record.Generic.Show Data.Record.Generic.SOP Data.Record.Generic.Transform Data.Record.QQ.CodeGen Data.Record.QQ.CodeGen.HSE Data.Record.QQ.CodeGen.Parser Data.Record.QQ.Runtime.MatchHasField Data.Record.TH Data.Record.TH.CodeGen Data.Record.TH.CodeGen.Tree Data.Record.TH.Config.Options Data.Record.TH.Runtime Data.Record.Internal.CodeGen Data.Record.Internal.Naming Data.Record.Internal.Record Data.Record.Internal.Record.Parser Data.Record.Internal.Record.Resolution Data.Record.Internal.Record.Resolution.GHC Data.Record.Internal.Record.Resolution.Internal Data.Record.Internal.TH.Name Data.Record.Internal.TH.Util Data.Record.Internal.Util build-depends: base >= 4.13 && < 4.15 , aeson >= 1.4.4 && < 1.6 , containers >= 0.6.2 && < 0.7 , generics-sop >= 0.5 && < 0.6 , 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 && < 1.1 , sop-core >= 0.5 && < 0.6 , syb >= 0.7 && < 0.8 , text >= 1.2.4 && < 1.5 , vector >= 0.12 && < 0.13 -- whatever version is bundled with ghc , template-haskell hs-source-dirs: src default-language: Haskell2010 default-extensions: NoStarIsType ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates -Wpartial-fields -Widentities -Wredundant-constraints -Wmissing-export-lists test-suite test-large-records type: exitcode-stdio-1.0 main-is: TestLargeRecords.hs other-modules: Test.Record.Prop.Show Test.Record.Prop.Show.Regular Test.Record.Prop.Show.Large Test.Record.Prop.ToFromJSON Test.Record.Sanity.Derive Test.Record.Sanity.EqualFieldTypes Test.Record.Sanity.ErrorsAndWarnings Test.Record.Sanity.ErrorsAndWarnings.Stage1 Test.Record.Sanity.Generics Test.Record.Sanity.GhcGenerics Test.Record.Sanity.HigherKinded Test.Record.Sanity.HKD Test.Record.Sanity.Laziness Test.Record.Sanity.Lens.Micro Test.Record.Sanity.OverloadingNoDRF Test.Record.Sanity.PatternMatch Test.Record.Sanity.QualifiedImports Test.Record.Sanity.QualifiedImports.A Test.Record.Sanity.QualifiedImports.B Test.Record.Sanity.RecordConstruction Test.Record.Sanity.Strictness Test.Record.Sanity.Transform Test.Record.Size.After.HK010 Test.Record.Size.After.R0010 Test.Record.Size.Before.Baseline Test.Record.Size.Before.R010 Test.Record.Size.Infra Test.Record.Size.Sanity Test.Record.Util build-depends: base , aeson , generics-sop , json-sop , generic-deriving -- TODO: Remove: , ghc-dump-core , large-records , newtype , microlens , mtl , record-dot-preprocessor , record-hasfield , sop-core , tasty , tasty-hunit , tasty-quickcheck , template-haskell , transformers , vector , QuickCheck build-tool-depends: record-dot-preprocessor:record-dot-preprocessor hs-source-dirs: test default-language: Haskell2010 ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates -Wpartial-fields -Widentities -- Needed for the AllZip tests -freduction-depth=2000 if flag(profile-allzip) cpp-options: -DPROFILE_ALLZIP if flag(use-ghc-dump) cpp-options: -DUSE_GHC_DUMP build-depends: ghc-dump-core if flag(build-all-modules) other-modules: Test.Record.Size.After.HK020 Test.Record.Size.After.HK030 Test.Record.Size.After.HK040 Test.Record.Size.After.HK050 Test.Record.Size.After.HK060 Test.Record.Size.After.HK070 Test.Record.Size.After.HK080 Test.Record.Size.After.HK090 Test.Record.Size.After.HK100 Test.Record.Size.After.R0020 Test.Record.Size.After.R0030 Test.Record.Size.After.R0040 Test.Record.Size.After.R0050 Test.Record.Size.After.R0060 Test.Record.Size.After.R0070 Test.Record.Size.After.R0080 Test.Record.Size.After.R0090 Test.Record.Size.After.R0100 Test.Record.Size.After.R0200 Test.Record.Size.After.R0300 Test.Record.Size.After.R0400 Test.Record.Size.After.R0500 Test.Record.Size.After.R0600 Test.Record.Size.After.R0700 Test.Record.Size.After.R0800 Test.Record.Size.After.R0900 Test.Record.Size.After.R1000 Test.Record.Size.Before.R020 Test.Record.Size.Before.R030 Test.Record.Size.Before.R040 Test.Record.Size.Before.R050 Test.Record.Size.Before.R060 Test.Record.Size.Before.R070 Test.Record.Size.Before.R080 Test.Record.Size.Before.R090 Test.Record.Size.Before.R100 Flag build-all-modules Description: Build all test modules in Size Default: False Flag use-ghc-dump Description: use ghc-dump to output AST sizes Default: False Flag profile-allzip Description: Include experiment to verify size of AllZip is linear Default: False