Optimised day 19
[advent-of-code-22.git] / advent-of-code22.cabal
index 4da149943892651dee569ae23bb403c6e19c84cc..2301cd28bdc69a561ceeba7271e6c84bf898cee8 100644 (file)
@@ -62,7 +62,7 @@ common common-extensions
                         , RecordWildCards
                         , ScopedTypeVariables
                         , TemplateHaskell
-                        , TransformListComp
+                        -- , TransformListComp
                         , TupleSections
                         , TypeApplications
                         , TypeFamilies
@@ -73,6 +73,8 @@ common common-extensions
 common build-directives
   build-depends:       base >=4.16
   default-language:    Haskell2010
+  hs-source-dirs:      ., app, src
+  other-modules:       AoC
   ghc-options:         -O2 
                        -Wall 
                        -threaded 
@@ -87,9 +89,15 @@ executable advent-of-code22
     -- LANGUAGE extensions used by modules in this package.
     -- other-extensions:
     build-depends:    base ^>=4.16.4.0
-    hs-source-dirs:   app
+    hs-source-dirs:   app, src
     default-language: Haskell2010
 
+library
+  import: common-extensions
+  build-depends:  base >=4.16
+  hs-source-dirs: ., app, src
+  exposed-modules: AoC
+
 executable advent01
   import: common-extensions, build-directives
   main-is: advent01/Main.hs
@@ -99,3 +107,261 @@ executable advent02
   import: common-extensions, build-directives
   main-is: advent02/Main.hs
   build-depends: text, attoparsec
+
+executable advent03
+  import: common-extensions, build-directives
+  main-is: advent03/Main.hs
+  build-depends: containers, split
+
+executable advent04
+  import: common-extensions, build-directives
+  main-is: advent04/Main.hs
+  build-depends: text, attoparsec
+
+executable advent04i
+  import: common-extensions, build-directives
+  main-is: advent04/Main-interval.hs
+  build-depends: text, attoparsec, intervals
+
+executable advent05
+  import: common-extensions, build-directives
+  main-is: advent05/Main.hs
+  build-depends: text, attoparsec, containers
+
+executable advent06
+  import: common-extensions, build-directives
+  main-is: advent06/Main.hs
+executable advent07
+  import: common-extensions, build-directives
+  main-is: advent07/Main.hs
+  build-depends: text, attoparsec, containers, rosezipper
+
+executable advent08
+  import: common-extensions, build-directives
+  main-is: advent08/Main.hs
+
+executable advent09
+  import: common-extensions, build-directives
+  main-is: advent09/Main.hs
+  build-depends: text, attoparsec, containers, linear, lens
+
+executable advent10
+  import: common-extensions, build-directives
+  main-is: advent10/Main.hs
+  build-depends: text, attoparsec, split
+
+executable advent11
+  import: common-extensions, build-directives
+  main-is: advent11/Main.hs
+  build-depends: text, attoparsec, containers, lens, mtl
+
+executable advent12
+  import: common-extensions, build-directives
+  main-is: advent12/Main.hs
+  build-depends: containers, linear, array, pqueue, mtl, lens
+
+executable advent13
+  import: common-extensions, build-directives
+  main-is: advent13/Main.hs
+  build-depends: text, attoparsec
+
+executable advent14
+  import: common-extensions, build-directives
+  main-is: advent14/Main.hs
+  build-depends: text, attoparsec, containers, linear, lens
+
+executable advent15original
+  import: common-extensions, build-directives
+  main-is: advent15/MainOriginal.hs
+  build-depends: text, attoparsec, containers, linear, lens
+
+executable advent15sorted
+  import: common-extensions, build-directives
+  main-is: advent15/MainSorted.hs
+  build-depends: text, attoparsec, containers, linear, lens
+
+executable advent15lazy
+  import: common-extensions, build-directives
+  main-is: advent15/MainLazy.hs
+  build-depends: text, attoparsec, containers, linear, lens
+
+executable advent15directpar
+  import: common-extensions, build-directives
+  main-is: advent15/MainDirectParallel.hs
+  build-depends: text, attoparsec, containers, linear, lens, parallel, deepseq
+  
+executable advent15
+  import: common-extensions, build-directives
+  main-is: advent15/Main.hs
+  build-depends: text, attoparsec, containers, linear, lens, parallel, deepseq, split
+
+executable advent15prof
+  import: common-extensions, build-directives
+  main-is: advent15/Main.hs
+  build-depends: text, attoparsec, containers, linear, lens, parallel, deepseq, split
+  ghc-options:         -O2 
+                       -Wall 
+                       -threaded 
+                       -eventlog
+                       -rtsopts "-with-rtsopts=-N -p -s -hT -ls"
+
+executable advent16original
+  import: common-extensions, build-directives
+  main-is: advent16/MainOriginal.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+
+executable advent16originalnobeam
+  import: common-extensions, build-directives
+  main-is: advent16/MainOriginalNoBeam.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+
+executable advent16sort
+  import: common-extensions, build-directives
+  main-is: advent16/MainEstSort.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+
+executable advent16beam
+  import: common-extensions, build-directives
+  main-is: advent16/MainBeam.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+
+executable advent16customclosed
+  import: common-extensions, build-directives
+  main-is: advent16/MainCustomClosed.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+
+executable advent16spar
+  import: common-extensions, build-directives
+  main-is: advent16/MainSPar.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split, parallel, deepseq
+
+executable advent16sparprof
+  import: common-extensions, build-directives
+  main-is: advent16/MainSPar.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split, parallel, deepseq
+  ghc-options:         -O2 
+                       -Wall 
+                       -threaded 
+                       -eventlog
+                       -fprof-auto
+                       -rtsopts "-with-rtsopts=-N -p -s -hT -ls"
+
+executable advent16subsets
+  import: common-extensions, build-directives
+  main-is: advent16/MainSubsets.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+
+executable advent16subsetsprof
+  import: common-extensions, build-directives
+  main-is: advent16/MainSubsets.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+  ghc-options:         -O2 
+                       -Wall 
+                       -threaded 
+                       -eventlog
+                       -fprof-auto
+                       -rtsopts "-with-rtsopts=-N -p -s -hT -ls"
+
+executable advent16
+  import: common-extensions, build-directives
+  main-is: advent16/Main.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, split
+
+executable advent17
+  import: common-extensions, build-directives
+  main-is: advent17/Main.hs
+  build-depends: containers, linear, lens
+
+executable advent18
+  import: common-extensions, build-directives
+  main-is: advent18/Main.hs
+  build-depends: text, attoparsec, containers, linear, lens
+
+executable advent19original
+  import: common-extensions, build-directives
+  main-is: advent19/MainOriginal.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, multiset, parallel, deepseq
+
+executable advent19
+  import: common-extensions, build-directives
+  main-is: advent19/Main.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, multiset, parallel, deepseq
+
+executable advent19prof
+  import: common-extensions, build-directives
+  main-is: advent19/Main.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, multiset, parallel, deepseq
+  ghc-options:         -O2 
+                       -Wall 
+                       -threaded 
+                       -fprof-auto
+                       -rtsopts "-with-rtsopts=-N -p -s -hT"
+                       -- add -ls for generating the eventlog
+
+executable advent19excl
+  import: common-extensions, build-directives
+  main-is: advent19/MainExplicitClosed.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, multiset, parallel, deepseq
+
+executable advent19exprof
+  import: common-extensions, build-directives
+  main-is: advent19/MainExplicitClosed.hs
+  build-depends: text, attoparsec, containers, pqueue, mtl, lens, multiset, parallel, deepseq
+  ghc-options:         -O2 
+                       -Wall 
+                       -threaded 
+                       -fprof-auto
+                       -rtsopts "-with-rtsopts=-N -p -s -hT"
+
+executable advent20
+  import: common-extensions, build-directives
+  main-is: advent20/Main.hs
+  build-depends: data-clist , lens
+
+executable advent21
+  import: common-extensions, build-directives
+  main-is: advent21/Main.hs
+  build-depends: text, attoparsec, containers, lens
+
+executable advent22
+  import: common-extensions, build-directives
+  main-is: advent22/Main.hs
+  build-depends: containers, linear, lens, mtl
+
+executable advent23original
+  import: common-extensions, build-directives
+  main-is: advent23/MainOriginal.hs
+  build-depends: containers, linear, lens, mtl, multiset
+
+executable advent23u
+  import: common-extensions, build-directives
+  main-is: advent23/MainUnordered.hs
+  build-depends: unordered-containers, hashable, linear, lens, mtl, multiset
+
+executable advent23
+  import: common-extensions, build-directives
+  main-is: advent23/Main.hs
+  build-depends: linear, lens, mtl, array
+
+executable advent23prof
+  import: common-extensions, build-directives
+  main-is: advent23/Main.hs
+  build-depends: linear, lens, mtl, array
+  ghc-options:         -O2 
+                       -Wall 
+                       -threaded 
+                       -rtsopts "-with-rtsopts=-N -p -s -hT"
+
+executable advent24
+  import: common-extensions, build-directives
+  main-is: advent24/Main.hs
+  build-depends: containers, pqueue, mtl, lens, linear, array
+
+executable advent25
+  import: common-extensions, build-directives
+  main-is: advent25/Main.hs
+
+executable scrambled-mess
+  import: common-extensions, build-directives
+  main-is: scrambled-mess/Main.hs
\ No newline at end of file