cabal-version: 2.4 name: swarm version: 0.5.0.0 synopsis: 2D resource gathering game with programmable robots description: Swarm is a 2D programming and resource gathering game. Program your robots to explore the world and collect resources, which in turn allows you to build upgraded robots that can run more interesting and complex programs. See the for more information and instructions on how to play or contribute! . == Module organization For developers getting oriented, Swarm's modules are organized into roughly the following layers, from inner to outer: . * utilities * swarm language * swarm game * swarm TUI * swarm app . To maintain this separation, inner layers should avoid introducing dependencies on layers above them. license: BSD-3-Clause license-file: LICENSE author: Brent Yorgey maintainer: byorgey@gmail.com bug-reports: https://github.com/swarm-game/swarm/issues copyright: Brent Yorgey 2021 category: Game tested-with: GHC ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.5 || ==9.6.2 extra-source-files: CHANGELOG.md example/*.sw editors/emacs/*.el editors/vscode/syntaxes/*.json editors/vim/*.vim editors/vim/*.lua data-dir: data/ data-files: *.yaml, worlds/*.world, scenarios/**/*.yaml, scenarios/**/*.txt, scenarios/**/*.sw, *.txt, test/language-snippets/**/*.sw source-repository head type: git location: git://github.com/swarm-game/swarm.git flag ci description: Make warnings error default: False manual: True common common if flag(ci) ghc-options: -Werror ghc-options: -Wall -Wcompat -Widentities -Wincomplete-uni-patterns -Wincomplete-record-updates -Wno-star-is-type if impl(ghc >= 8.4) ghc-options: -Wpartial-fields default-language: Haskell2010 common stan-config ghc-options: -fwrite-ide-info -hiedir=.hie -- Harmless extensions from GHC2021 common ghc2021-extensions ghc-options: -Wprepositive-qualified-module default-extensions: BangPatterns DeriveAnyClass DeriveDataTypeable DeriveFunctor DeriveGeneric DeriveTraversable ExplicitForAll FlexibleContexts FlexibleInstances GADTSyntax MultiParamTypeClasses NumericUnderscores RankNTypes ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeOperators -- Note we warn on prequalified ImportQualifiedPost -- Not GHC2021, but until we get \cases we use \case a lot LambdaCase library import: stan-config, common, ghc2021-extensions exposed-modules: Control.Carrier.Accum.FixedStrict Data.BoolExpr.Simplify Swarm.App Swarm.Constant Swarm.Doc.Gen Swarm.Doc.Pedagogy Swarm.Doc.Schema.Arrangement Swarm.Doc.Schema.Parse Swarm.Doc.Schema.Refined Swarm.Doc.Schema.Render Swarm.Doc.Schema.SchemaType Swarm.Doc.Util Swarm.Game.Failure Swarm.Game.Achievement.Attainment Swarm.Game.Achievement.Definitions Swarm.Game.Achievement.Description Swarm.Game.Achievement.Persistence Swarm.Game.CESK Swarm.Game.Display Swarm.Game.Entity Swarm.Game.Exception Swarm.Game.Location Swarm.Game.Recipe Swarm.Game.ResourceLoading Swarm.Game.Robot Swarm.Game.Scenario Swarm.Game.Scenario.Topography.Cell Swarm.Game.Universe Swarm.Log Swarm.TUI.Launch.Controller Swarm.TUI.Launch.Model Swarm.TUI.Launch.Prep Swarm.TUI.Launch.View Swarm.Game.Scenario.Objective Swarm.Game.Scenario.Objective.Graph Swarm.Game.Scenario.Objective.Logic Swarm.Game.Scenario.Objective.Validation Swarm.Game.Scenario.Objective.WinCheck Swarm.Game.Scenario.RobotLookup Swarm.Game.Scenario.Scoring.Best Swarm.Game.Scenario.Scoring.CodeSize Swarm.Game.Scenario.Scoring.ConcreteMetrics Swarm.Game.Scenario.Scoring.GenericMetrics Swarm.Game.Scenario.Status Swarm.Game.Scenario.Style Swarm.Game.Scenario.Topography.EntityFacade Swarm.Game.Scenario.Topography.Navigation.Portal Swarm.Game.Scenario.Topography.Navigation.Util Swarm.Game.Scenario.Topography.Navigation.Waypoint Swarm.Game.Scenario.Topography.Placement Swarm.Game.Scenario.Topography.Structure Swarm.Game.Scenario.Topography.WorldDescription Swarm.Game.Scenario.Topography.WorldPalette Swarm.Game.ScenarioInfo Swarm.Game.State Swarm.Game.Step Swarm.Game.Step.Combustion Swarm.Game.Step.Pathfinding Swarm.Game.Step.Util Swarm.Game.Terrain Swarm.Game.Value Swarm.Game.World Swarm.Game.World.Abstract Swarm.Game.World.Compile Swarm.Game.World.Coords Swarm.Game.World.Eval Swarm.Game.World.Gen Swarm.Game.World.Interpret Swarm.Game.World.Load Swarm.Game.World.Modify Swarm.Game.World.Parse Swarm.Game.World.Render Swarm.Game.World.Syntax Swarm.Game.World.Typecheck Swarm.Language.Capability Swarm.Language.Context Swarm.Language.Direction Swarm.Language.Elaborate Swarm.Language.Key Swarm.Language.LSP Swarm.Language.LSP.Hover Swarm.Language.LSP.VarUsage Swarm.Language.Module Swarm.Language.Parse Swarm.Language.Parse.QQ Swarm.Language.Pipeline Swarm.Language.Pipeline.QQ Swarm.Language.Pretty Swarm.Language.Requirement Swarm.Language.Syntax Swarm.Language.Text.Markdown Swarm.Language.Typecheck Swarm.Language.Typecheck.Unify Swarm.Language.Typed Swarm.Language.Types Swarm.Language.Value Swarm.ReadableIORef Swarm.TUI.View.Attribute.CustomStyling Swarm.TUI.View.Attribute.Attr Swarm.TUI.View.Attribute.Util Swarm.TUI.Border Swarm.Game.Scenario.Topography.Area Swarm.TUI.Editor.Controller Swarm.TUI.Editor.Json Swarm.TUI.Editor.Masking Swarm.TUI.Editor.Model Swarm.TUI.Editor.Palette Swarm.TUI.Editor.Util Swarm.TUI.Editor.View Swarm.TUI.Controller Swarm.TUI.Controller.Util Swarm.TUI.Inventory.Sorting Swarm.TUI.List Swarm.TUI.Model Swarm.TUI.Model.Goal Swarm.TUI.Model.Menu Swarm.TUI.Model.Name Swarm.TUI.Model.Repl Swarm.TUI.Model.StateUpdate Swarm.TUI.Model.UI Swarm.TUI.Panel Swarm.TUI.View Swarm.TUI.View.Achievement Swarm.TUI.View.CellDisplay Swarm.TUI.View.Objective Swarm.TUI.View.Util Swarm.Util Swarm.Util.Effect Swarm.Util.Erasable Swarm.Util.Lens Swarm.Util.Parse Swarm.Util.UnitInterval Swarm.Util.WindowedCounter Swarm.Util.Yaml Swarm.Version Swarm.Web other-modules: Paths_swarm autogen-modules: Paths_swarm build-depends: base >= 4.14 && < 4.19, brick-list-skip >= 0.1.1.2 && < 0.2, aeson >= 2 && < 2.2, array >= 0.5.4 && < 0.6, astar >= 0.3 && < 0.3.1, blaze-html >= 0.9.1 && < 0.9.2, boolexpr >= 0.2 && < 0.3, brick >= 1.10 && < 1.11, bytestring >= 0.10 && < 0.12, clock >= 0.8.2 && < 0.9, colour >= 2.3.6 && < 2.4, commonmark >= 0.2 && < 0.3, commonmark-extensions >= 0.2 && < 0.3, containers >= 0.6.2 && < 0.7, directory >= 1.3 && < 1.4, dotgen >= 0.4 && < 0.5, either >= 5.0 && < 5.1, extra >= 1.7 && < 1.8, filepath >= 1.4 && < 1.5, fused-effects >= 1.1.1.1 && < 1.2, fused-effects-lens >= 1.2.0.1 && < 1.3, fuzzy >= 0.1 && < 0.2, githash >= 0.1.6 && < 0.2, hashable >= 1.3.4 && < 1.5, hsnoise >= 0.0.3 && < 0.1, http-client >= 0.7 && < 0.8, http-client-tls >= 0.3 && < 0.4, http-types >= 0.12 && < 0.13, lens >= 4.19 && < 5.3, linear >= 1.21.6 && < 1.23, lsp >= 1.6 && < 1.7, megaparsec >= 9.0 && < 9.6, minimorph >= 0.3 && < 0.4, transformers >= 0.5 && < 0.7, mtl >= 2.2.2 && < 2.4, pandoc >= 3.0 && < 3.2, pandoc-types >= 1.23 && < 1.24, murmur3 >= 1.0.4 && < 1.1, natural-sort >= 0.1.2 && < 0.2, palette >= 0.3 && < 0.4, parser-combinators >= 1.2 && < 1.4, prettyprinter >= 1.7.0 && < 1.8, random >= 1.2.0 && < 1.3, scientific >= 0.3.6 && < 0.3.8, servant >= 0.19 && < 0.21, servant-docs >= 0.12 && < 0.14, servant-server >= 0.19 && < 0.21, SHA >= 1.6.4 && < 1.6.5, simple-enumeration >= 0.2 && < 0.3, split >= 0.2.3 && < 0.3, stm >= 2.5.0 && < 2.6, syb >= 0.7 && < 0.8, tagged >= 0.8 && < 0.9, template-haskell >= 2.16 && < 2.21, text >= 1.2.4 && < 2.1, text-rope >= 0.2 && < 0.3, text-zipper >= 0.10 && < 0.14, time >= 1.9 && < 1.14, transformers >= 0.5.6.2 && < 0.6.2.0, unification-fd >= 0.11 && < 0.12, unordered-containers >= 0.2.14 && < 0.3, vector >= 0.12 && < 0.14, vty >= 5.33 && < 5.39, wai >= 3.2 && < 3.3, warp >= 3.2 && < 3.4, witch >= 1.1.1.0 && < 1.3, witherable >= 0.4 && < 0.5, word-wrap >= 0.5 && < 0.6, yaml >= 0.11 && < 0.11.12.0, hs-source-dirs: src default-language: Haskell2010 default-extensions: -- Avoid unexpected unevaluated thunk buildup -- See discussion in #415 StrictData executable swarm import: stan-config, common main-is: Main.hs build-depends: optparse-applicative >= 0.16 && < 0.19, githash >= 0.1.6 && < 0.2, terminal-size >= 0.3 && < 1.0, -- Imports shared with the library don't need bounds base, text, prettyprinter, swarm hs-source-dirs: app default-language: Haskell2010 ghc-options: -threaded default-extensions: ImportQualifiedPost test-suite swarm-unit import: stan-config, common, ghc2021-extensions main-is: Main.hs type: exitcode-stdio-1.0 other-modules: TestEval TestInventory TestModel TestPedagogy TestNotification TestLanguagePipeline TestPretty TestBoolExpr TestCommand TestLSP TestScoring TestUtil build-depends: tasty >= 0.10 && < 1.6, tasty-hunit >= 0.10 && < 0.11, tasty-quickcheck >= 0.10 && < 0.11, QuickCheck >= 2.14 && < 2.15, -- Imports shared with the library don't need bounds aeson, base, boolexpr, containers, filepath, hashable, lens, linear, mtl, swarm, text, time, witch, vty hs-source-dirs: test/unit default-language: Haskell2010 ghc-options: -threaded test-suite swarm-integration import: stan-config, common, ghc2021-extensions main-is: Main.hs type: exitcode-stdio-1.0 build-depends: tasty >= 0.10 && < 1.6, tasty-hunit >= 0.10 && < 0.11, tasty-expected-failure >= 0.12 && < 0.13, -- Imports shared with the library don't need bounds base, containers, directory, filepath, fused-effects, lens, linear, mtl, swarm, text, transformers, witch, yaml hs-source-dirs: test/integration default-language: Haskell2010 ghc-options: -threaded benchmark benchmark import: stan-config, common, ghc2021-extensions main-is: Benchmark.hs hs-source-dirs: test/bench type: exitcode-stdio-1.0 build-depends: tasty-bench >= 0.3.1 && < 0.4, base, lens, linear, mtl, random, swarm, text, containers, default-language: Haskell2010 ghc-options: -threaded