mirror of
https://github.com/swarm-game/swarm.git
synced 2024-08-17 18:41:02 +03:00
ca4a2b809d
Towards #1043. The eventual goal of this sublibrary split is to have a self contained library that can compose 2D grids of arbitrary content (perhaps colored pixels, or boolean values). This could be useful outside of the `swarm` game. I would also like to write unit tests for the structure recognizer that are independent of the `Entity` type. # Major Changes ## Direction module * Moved `Swarm.Language.Syntax.Direction` to `swarm-util`, since both `swarm-lang` and `swarm-topology` depend on it, but not on each other. * Removed the re-export of direction things from `Swarm.Language.Syntax` ## Structure module The `Swarm.Game.Scenario.Topography.Structure` module has been split into two: * `Swarm.Game.Scenario.Topography.Structure` * `Swarm.Game.Scenario.Topography.Structure.Type` The former retains the YAML parsing logic. The latter is agnostic of `Enitiy` type and the palette . At some future point, I might want to move the YAML parsing to this sublibrary while still retaining independence of `Entity` type. ## Structure recognizer The structure recognizer is independent of the content of Cells (i.e. it does not need to know what an `Entity` is), except: 1. during initialization 2. when retrieving the original cell content after recognition Type parameters for three kinds of data have been added to the recognizer: 1. `Cell`/`PCell` 2. `Entity` 3. `EntityName` Eventually it may be possible to eliminate one or two of these type parameters, with some refactoring.
965 lines
24 KiB
Plaintext
965 lines
24 KiB
Plaintext
cabal-version: 3.8
|
|
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
|
|
<https://github.com/swarm-game/swarm/blob/main/README.md README>
|
|
for more information and instructions on how to
|
|
play or contribute!
|
|
|
|
== Module organization
|
|
For developers getting oriented, Swarm's modules are organized into
|
|
sublibraries. Roughly in order from inner to outer, they are:
|
|
|
|
* swarm-util: miscellaneous utilities
|
|
* swarm-lang: parsing, typechecking, etc. for the Swarm language
|
|
* swarm-scenario: scenario descriptions, parsing, & processing
|
|
* swarm-engine: game simulation
|
|
* swarm-doc: generating documentation
|
|
* swarm-tui: textual user interface
|
|
* swarm-web: web interface
|
|
* swarm: the swarm executable
|
|
|
|
<<docs/image/sublibrary-graph.svg>>
|
|
|
|
See the [Swarm module guide](https://github.com/swarm-game/swarm/wiki/Module-guide)
|
|
for a more in-depth guide to the codebase.
|
|
|
|
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 ==9.2.8 || ==9.4.8 || ==9.6.5 || ==9.8.2
|
|
extra-source-files:
|
|
CHANGELOG.md
|
|
editors/emacs/*.el
|
|
editors/vim/*.lua
|
|
editors/vim/*.vim
|
|
editors/vscode/syntaxes/*.json
|
|
example/*.sw
|
|
|
|
extra-doc-files: docs/image/sublibrary-graph.svg
|
|
data-dir: data/
|
|
data-files:
|
|
*.txt
|
|
*.yaml
|
|
scenarios/**/*.sw
|
|
scenarios/**/*.txt
|
|
scenarios/**/*.yaml
|
|
test/language-snippets/**/*.sw
|
|
worlds/*.world
|
|
|
|
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
|
|
-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
|
|
-Wunused-packages
|
|
|
|
default-extensions:
|
|
-- Note we warn on prequalified
|
|
-- Not GHC2021, but until we get \cases we use \case a lot
|
|
BangPatterns
|
|
DeriveAnyClass
|
|
DeriveDataTypeable
|
|
DeriveFunctor
|
|
DeriveGeneric
|
|
DeriveTraversable
|
|
ExplicitForAll
|
|
FlexibleContexts
|
|
FlexibleInstances
|
|
GADTSyntax
|
|
ImportQualifiedPost
|
|
LambdaCase
|
|
MultiParamTypeClasses
|
|
NumericUnderscores
|
|
RankNTypes
|
|
ScopedTypeVariables
|
|
StandaloneDeriving
|
|
TupleSections
|
|
TypeApplications
|
|
TypeOperators
|
|
|
|
library swarm-lang
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-lang
|
|
exposed-modules:
|
|
Swarm.Effect.Unify
|
|
Swarm.Effect.Unify.Common
|
|
Swarm.Effect.Unify.Fast
|
|
Swarm.Effect.Unify.Naive
|
|
Swarm.Language.Capability
|
|
Swarm.Language.Context
|
|
Swarm.Language.Elaborate
|
|
Swarm.Language.Format
|
|
Swarm.Language.Key
|
|
Swarm.Language.Kindcheck
|
|
Swarm.Language.LSP
|
|
Swarm.Language.LSP.Hover
|
|
Swarm.Language.LSP.VarUsage
|
|
Swarm.Language.Module
|
|
Swarm.Language.Parser
|
|
Swarm.Language.Parser.Comment
|
|
Swarm.Language.Parser.Core
|
|
Swarm.Language.Parser.Lex
|
|
Swarm.Language.Parser.QQ
|
|
Swarm.Language.Parser.Record
|
|
Swarm.Language.Parser.Term
|
|
Swarm.Language.Parser.Type
|
|
Swarm.Language.Parser.Util
|
|
Swarm.Language.Pipeline
|
|
Swarm.Language.Pipeline.QQ
|
|
Swarm.Language.Pretty
|
|
Swarm.Language.Requirement
|
|
Swarm.Language.Syntax
|
|
Swarm.Language.Syntax.AST
|
|
Swarm.Language.Syntax.CommandMetadata
|
|
Swarm.Language.Syntax.Comments
|
|
Swarm.Language.Syntax.Constants
|
|
Swarm.Language.Syntax.Loc
|
|
Swarm.Language.Syntax.Pattern
|
|
Swarm.Language.Syntax.Util
|
|
Swarm.Language.Text.Markdown
|
|
Swarm.Language.Typecheck
|
|
Swarm.Language.Typed
|
|
Swarm.Language.Types
|
|
Swarm.Language.Value
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
aeson,
|
|
base,
|
|
commonmark >=0.2 && <0.3,
|
|
commonmark-extensions >=0.2 && <0.3,
|
|
containers,
|
|
data-fix >=0.3 && <0.4,
|
|
deriving-compat >=0.6 && <0.7,
|
|
extra,
|
|
free >=5.2 && <5.3,
|
|
fused-effects,
|
|
hashable,
|
|
lens,
|
|
lsp >=2.4 && <2.7,
|
|
megaparsec,
|
|
mtl,
|
|
parser-combinators,
|
|
prettyprinter,
|
|
split,
|
|
syb >=0.7 && <0.8,
|
|
template-haskell,
|
|
terminal-size >=0.3 && <1.0,
|
|
text,
|
|
text-rope >=0.2 && <0.3,
|
|
vector,
|
|
vty,
|
|
witch,
|
|
yaml,
|
|
|
|
build-depends: swarm:swarm-util
|
|
hs-source-dirs: src/swarm-lang
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
-- See discussion in #415
|
|
StrictData
|
|
|
|
library swarm-topography
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-topography
|
|
exposed-modules:
|
|
Swarm.Game.Location
|
|
Swarm.Game.Scenario.Topography.Area
|
|
Swarm.Game.Scenario.Topography.Navigation.Waypoint
|
|
Swarm.Game.Scenario.Topography.Placement
|
|
Swarm.Game.Scenario.Topography.Structure.Assembly
|
|
Swarm.Game.Scenario.Topography.Structure.Overlay
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Log
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Registry
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Symmetry
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Type
|
|
Swarm.Game.Scenario.Topography.Structure.Type
|
|
Swarm.Game.Universe
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
AhoCorasick >=0.0.4 && <0.0.5,
|
|
aeson >=2.2 && <2.3,
|
|
base >=4.14 && <4.20,
|
|
containers >=0.6.2 && <0.8,
|
|
extra >=1.7 && <1.8,
|
|
lens,
|
|
linear >=1.21.6 && <1.24,
|
|
nonempty-containers >=0.3.4 && <0.3.5,
|
|
servant-docs >=0.12 && <0.14,
|
|
text >=1.2.4 && <2.2,
|
|
yaml >=0.11 && <0.11.12.0,
|
|
|
|
build-depends:
|
|
swarm:swarm-util
|
|
|
|
hs-source-dirs: src/swarm-topography
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
-- See discussion in #415
|
|
StrictData
|
|
|
|
library swarm-scenario
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-scenario
|
|
exposed-modules:
|
|
Swarm.Constant
|
|
Swarm.Game.Achievement.Definitions
|
|
Swarm.Game.Device
|
|
Swarm.Game.Display
|
|
Swarm.Game.Entity
|
|
Swarm.Game.Entity.Cosmetic
|
|
Swarm.Game.Entity.Cosmetic.Assignment
|
|
Swarm.Game.Failure
|
|
Swarm.Game.Ingredients
|
|
Swarm.Game.Land
|
|
Swarm.Game.Recipe
|
|
Swarm.Game.ResourceLoading
|
|
Swarm.Game.Robot
|
|
Swarm.Game.Robot.Walk
|
|
Swarm.Game.Scenario
|
|
Swarm.Game.Scenario.Objective
|
|
Swarm.Game.Scenario.Objective.Graph
|
|
Swarm.Game.Scenario.Objective.Logic
|
|
Swarm.Game.Scenario.Objective.Validation
|
|
Swarm.Game.Scenario.RobotLookup
|
|
Swarm.Game.Scenario.Style
|
|
Swarm.Game.Scenario.Topography.Cell
|
|
Swarm.Game.Scenario.Topography.Center
|
|
Swarm.Game.Scenario.Topography.EntityFacade
|
|
Swarm.Game.Scenario.Topography.Navigation.Portal
|
|
Swarm.Game.Scenario.Topography.Structure
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Precompute
|
|
Swarm.Game.Scenario.Topography.WorldDescription
|
|
Swarm.Game.Scenario.Topography.WorldPalette
|
|
Swarm.Game.State.Config
|
|
Swarm.Game.State.Landscape
|
|
Swarm.Game.Terrain
|
|
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.Util.Content
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
AhoCorasick >=0.0.4 && <0.0.5,
|
|
JuicyPixels >=3.3 && <3.4,
|
|
aeson >=2.2 && <2.3,
|
|
array >=0.5.4 && <0.6,
|
|
base >=4.14 && <4.20,
|
|
boolexpr >=0.2 && <0.3,
|
|
bytestring >=0.10 && <0.13,
|
|
clock >=0.8.2 && <0.9,
|
|
colour >=2.3.6 && <2.4,
|
|
containers >=0.6.2 && <0.8,
|
|
directory >=1.3 && <1.4,
|
|
either >=5.0 && <5.1,
|
|
extra >=1.7 && <1.8,
|
|
filepath >=1.4 && <1.5,
|
|
fused-effects >=1.1.1.1 && <1.2,
|
|
hashable >=1.3.4 && <1.5,
|
|
hsnoise >=0.0.3 && <0.1,
|
|
lens >=4.19 && <5.4,
|
|
linear >=1.21.6 && <1.24,
|
|
megaparsec >=9.6.1 && <9.7,
|
|
murmur3 >=1.0.4 && <1.1,
|
|
palette >=0.3 && <0.4,
|
|
parser-combinators >=1.2 && <1.4,
|
|
prettyprinter >=1.7.0 && <1.8,
|
|
random >=1.2.0 && <1.3,
|
|
servant-docs >=0.12 && <0.14,
|
|
simple-enumeration >=0.2 && <0.3,
|
|
tagged >=0.8 && <0.9,
|
|
text >=1.2.4 && <2.2,
|
|
vector >=0.12 && <0.14,
|
|
vty >=6.1 && <6.3,
|
|
witch >=1.1.1.0 && <1.3,
|
|
yaml >=0.11 && <0.11.12.0,
|
|
|
|
build-depends:
|
|
swarm:swarm-lang,
|
|
swarm:swarm-topography,
|
|
swarm:swarm-util,
|
|
|
|
hs-source-dirs: src/swarm-scenario
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
-- See discussion in #415
|
|
StrictData
|
|
|
|
library swarm-engine
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-engine
|
|
exposed-modules:
|
|
Swarm.Effect
|
|
Swarm.Effect.Time
|
|
Swarm.Game.Achievement.Attainment
|
|
Swarm.Game.Achievement.Description
|
|
Swarm.Game.Achievement.Persistence
|
|
Swarm.Game.CESK
|
|
Swarm.Game.Exception
|
|
Swarm.Game.Robot.Activity
|
|
Swarm.Game.Robot.Concrete
|
|
Swarm.Game.Robot.Context
|
|
Swarm.Game.Scenario.Objective.WinCheck
|
|
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.Topography.Navigation.Util
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Tracking
|
|
Swarm.Game.ScenarioInfo
|
|
Swarm.Game.State
|
|
Swarm.Game.State.Robot
|
|
Swarm.Game.State.Runtime
|
|
Swarm.Game.State.Substate
|
|
Swarm.Game.Step
|
|
Swarm.Game.Step.Arithmetic
|
|
Swarm.Game.Step.Combustion
|
|
Swarm.Game.Step.Const
|
|
Swarm.Game.Step.Flood
|
|
Swarm.Game.Step.Path.Cache
|
|
Swarm.Game.Step.Path.Cache.DistanceLimit
|
|
Swarm.Game.Step.Path.Finding
|
|
Swarm.Game.Step.Path.Type
|
|
Swarm.Game.Step.Path.Walkability
|
|
Swarm.Game.Step.RobotStepState
|
|
Swarm.Game.Step.Util
|
|
Swarm.Game.Step.Util.Command
|
|
Swarm.Game.Step.Util.Inspect
|
|
Swarm.Game.Step.Validate
|
|
Swarm.Game.Tick
|
|
Swarm.Game.Value
|
|
Swarm.Log
|
|
Swarm.Version
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
AhoCorasick >=0.0.4 && <0.0.5,
|
|
SHA >=1.6.4 && <1.6.5,
|
|
aeson >=2.2 && <2.3,
|
|
array >=0.5.4 && <0.6,
|
|
astar >=0.3 && <0.3.1,
|
|
base >=4.14 && <4.20,
|
|
boolexpr >=0.2 && <0.3,
|
|
bytestring,
|
|
clock >=0.8.2 && <0.9,
|
|
containers >=0.6.2 && <0.8,
|
|
directory >=1.3 && <1.4,
|
|
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,
|
|
githash,
|
|
hashable >=1.3.4 && <1.5,
|
|
http-client >=0.7 && <0.8,
|
|
http-client-tls >=0.3 && <0.4,
|
|
http-types >=0.12 && <0.13,
|
|
lens >=4.19 && <5.4,
|
|
linear >=1.21.6 && <1.24,
|
|
megaparsec >=9.6 && <9.7,
|
|
mtl >=2.2.2 && <2.4,
|
|
nonempty-containers >=0.3.4 && <0.3.5,
|
|
prettyprinter >=1.7.0 && <1.8,
|
|
random >=1.2.0 && <1.3,
|
|
servant-docs >=0.12 && <0.14,
|
|
text >=1.2.4 && <2.2,
|
|
time >=1.9 && <1.15,
|
|
transformers >=0.5 && <0.7,
|
|
transformers >=0.5.6.2 && <0.6.2.0,
|
|
unordered-containers >=0.2.14 && <0.3,
|
|
warp,
|
|
witch >=1.1.1.0 && <1.3,
|
|
yaml >=0.11 && <0.11.12.0,
|
|
|
|
build-depends:
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-topography,
|
|
swarm:swarm-util,
|
|
|
|
hs-source-dirs: src/swarm-engine
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
-- See discussion in #415
|
|
StrictData
|
|
|
|
library swarm-web
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-web
|
|
exposed-modules:
|
|
Swarm.Web
|
|
Swarm.Web.Worldview
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
aeson,
|
|
base,
|
|
brick,
|
|
bytestring,
|
|
colour,
|
|
commonmark,
|
|
containers,
|
|
http-types,
|
|
lens,
|
|
nonempty-containers,
|
|
palette,
|
|
servant-docs,
|
|
servant-server >=0.19 && <0.21,
|
|
text,
|
|
wai >=3.2 && <3.3,
|
|
wai-app-static >=3.1.8 && <3.2,
|
|
warp,
|
|
witch,
|
|
|
|
build-depends:
|
|
swarm:swarm-doc,
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-topography,
|
|
swarm:swarm-tui,
|
|
swarm:swarm-util,
|
|
|
|
hs-source-dirs: src/swarm-web
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
-- See discussion in #415
|
|
StrictData
|
|
|
|
library swarm-tournament
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-tournament
|
|
exposed-modules:
|
|
Swarm.Web.Auth
|
|
Swarm.Web.Tournament
|
|
Swarm.Web.Tournament.Database.Query
|
|
Swarm.Web.Tournament.Type
|
|
Swarm.Web.Tournament.Validate
|
|
Swarm.Web.Tournament.Validate.FailureMode
|
|
Swarm.Web.Tournament.Validate.Upload
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
SHA,
|
|
aeson,
|
|
base,
|
|
bytestring,
|
|
commonmark,
|
|
containers,
|
|
cookie,
|
|
exceptions,
|
|
extra,
|
|
fused-effects,
|
|
http-client,
|
|
http-client-tls >=0.3.6.3 && <0.3.7,
|
|
http-types,
|
|
lens,
|
|
mtl,
|
|
servant-docs,
|
|
servant-multipart,
|
|
servant-server >=0.19 && <0.21,
|
|
sqlite-simple >=0.4.19.0 && <0.4.20,
|
|
text,
|
|
time,
|
|
transformers,
|
|
utf8-string,
|
|
wai >=3.2 && <3.3,
|
|
wai-app-static >=3.1.8 && <3.2,
|
|
wai-extra,
|
|
warp,
|
|
yaml,
|
|
|
|
build-depends:
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-util,
|
|
|
|
hs-source-dirs: src/swarm-tournament
|
|
default-language: Haskell2010
|
|
|
|
library swarm-util
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-util
|
|
exposed-modules:
|
|
Control.Carrier.Accum.FixedStrict
|
|
Data.BoolExpr.Simplify
|
|
Swarm.Language.Syntax.Direction
|
|
Swarm.Util
|
|
Swarm.Util.Effect
|
|
Swarm.Util.Erasable
|
|
Swarm.Util.JSON
|
|
Swarm.Util.Lens
|
|
Swarm.Util.OccurrenceEncoder
|
|
Swarm.Util.ReadableIORef
|
|
Swarm.Util.RingBuffer
|
|
Swarm.Util.UnitInterval
|
|
Swarm.Util.WindowedCounter
|
|
Swarm.Util.Yaml
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
aeson >=2.2 && <2.3,
|
|
base >=4.14 && <4.20,
|
|
boolexpr >=0.2 && <0.3,
|
|
clock >=0.8.2 && <0.9,
|
|
containers >=0.6.2 && <0.8,
|
|
directory >=1.3 && <1.4,
|
|
either >=5.0 && <5.1,
|
|
extra >=1.7 && <1.8,
|
|
filepath >=1.4 && <1.5,
|
|
fused-effects >=1.1.1.1 && <1.2,
|
|
hashable >=1.3.4 && <1.5,
|
|
lens >=4.19 && <5.4,
|
|
minimorph >=0.3 && <0.4,
|
|
mtl >=2.2.2 && <2.4,
|
|
servant-docs >=0.12 && <0.14,
|
|
template-haskell >=2.16 && <2.22,
|
|
text >=1.2.4 && <2.2,
|
|
transformers >=0.5 && <0.7,
|
|
vector >=0.12 && <0.14,
|
|
witch >=1.1.1.0 && <1.3,
|
|
witherable >=0.4 && <0.5,
|
|
yaml >=0.11 && <0.11.12.0,
|
|
|
|
hs-source-dirs: src/swarm-util
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
-- See discussion in #415
|
|
StrictData
|
|
|
|
library swarm-doc
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-doc
|
|
exposed-modules:
|
|
Swarm.Doc.Command
|
|
Swarm.Doc.Gen
|
|
Swarm.Doc.Keyword
|
|
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.Doc.Wiki.Cheatsheet
|
|
Swarm.Doc.Wiki.Matrix
|
|
Swarm.Doc.Wiki.Util
|
|
|
|
build-depends:
|
|
aeson >=2.2 && <2.3,
|
|
base >=4.14 && <4.20,
|
|
containers >=0.6.2 && <0.8,
|
|
directory >=1.3 && <1.4,
|
|
dotgen >=0.4 && <0.5,
|
|
extra >=1.7 && <1.8,
|
|
filepath >=1.4 && <1.5,
|
|
fused-effects >=1.1.1.1 && <1.2,
|
|
lens >=4.19 && <5.4,
|
|
mtl >=2.2.2 && <2.4,
|
|
pandoc >=3.0 && <3.2,
|
|
pandoc-types >=1.23 && <1.24,
|
|
scientific >=0.3.6 && <0.3.8,
|
|
servant-docs >=0.12 && <0.14,
|
|
text >=1.2.4 && <2.2,
|
|
transformers >=0.5 && <0.7,
|
|
vector >=0.12 && <0.14,
|
|
|
|
build-depends:
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-util,
|
|
|
|
hs-source-dirs: src/swarm-doc
|
|
default-language: Haskell2010
|
|
default-extensions:
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
-- See discussion in #415
|
|
StrictData
|
|
|
|
library swarm-tui
|
|
import: stan-config, common, ghc2021-extensions
|
|
visibility: public
|
|
-- cabal-gild: discover src/swarm-tui
|
|
exposed-modules:
|
|
Swarm.TUI.Border
|
|
Swarm.TUI.Controller
|
|
Swarm.TUI.Controller.Util
|
|
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.Inventory.Sorting
|
|
Swarm.TUI.Launch.Controller
|
|
Swarm.TUI.Launch.Model
|
|
Swarm.TUI.Launch.Prep
|
|
Swarm.TUI.Launch.View
|
|
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.Structure
|
|
Swarm.TUI.Model.UI
|
|
Swarm.TUI.Panel
|
|
Swarm.TUI.View
|
|
Swarm.TUI.View.Achievement
|
|
Swarm.TUI.View.Attribute.Attr
|
|
Swarm.TUI.View.Attribute.CustomStyling
|
|
Swarm.TUI.View.Attribute.Util
|
|
Swarm.TUI.View.CellDisplay
|
|
Swarm.TUI.View.Logo
|
|
Swarm.TUI.View.Objective
|
|
Swarm.TUI.View.Structure
|
|
Swarm.TUI.View.Util
|
|
|
|
other-modules: Paths_swarm
|
|
autogen-modules: Paths_swarm
|
|
build-depends:
|
|
aeson >=2.2 && <2.3,
|
|
array >=0.5.4 && <0.6,
|
|
base >=4.14 && <4.20,
|
|
brick >=2.1.1 && <2.4,
|
|
brick-list-skip >=0.1.1.2 && <0.2,
|
|
bytestring >=0.10 && <0.13,
|
|
clock >=0.8.2 && <0.9,
|
|
colour >=2.3.6 && <2.4,
|
|
containers >=0.6.2 && <0.8,
|
|
extra >=1.7 && <1.8,
|
|
filepath >=1.4 && <1.5,
|
|
fused-effects >=1.1.1.1 && <1.2,
|
|
fuzzy >=0.1 && <0.2,
|
|
githash >=0.1.6 && <0.2,
|
|
lens >=4.19 && <5.4,
|
|
linear >=1.21.6 && <1.24,
|
|
mtl >=2.2.2 && <2.4,
|
|
murmur3 >=1.0.4 && <1.1,
|
|
natural-sort >=0.1.2 && <0.2,
|
|
nonempty-containers >=0.3.4 && <0.3.5,
|
|
palette >=0.3 && <0.4,
|
|
servant-docs >=0.12 && <0.14,
|
|
split >=0.2.3 && <0.3,
|
|
tagged >=0.8 && <0.9,
|
|
text >=1.2.4 && <2.2,
|
|
text-zipper >=0.10 && <0.14,
|
|
time >=1.9 && <1.15,
|
|
transformers >=0.5 && <0.7,
|
|
transformers >=0.5.6.2 && <0.6.2.0,
|
|
vector >=0.12 && <0.14,
|
|
vty >=6.1 && <6.3,
|
|
warp >=3.2 && <3.5,
|
|
witch >=1.1.1.0 && <1.3,
|
|
word-wrap >=0.5 && <0.6,
|
|
yaml >=0.11 && <0.11.12.0,
|
|
|
|
build-depends:
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-topography,
|
|
swarm:swarm-util,
|
|
|
|
hs-source-dirs: src/swarm-tui
|
|
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
|
|
other-modules: Swarm.App
|
|
build-depends:
|
|
-- Imports shared with the library don't need bounds
|
|
base,
|
|
blaze-html >=0.9.1 && <0.10,
|
|
brick,
|
|
fused-effects,
|
|
githash >=0.1.6 && <0.2,
|
|
lens,
|
|
optparse-applicative >=0.16 && <0.19,
|
|
prettyprinter,
|
|
servant >=0.19 && <0.21,
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-tui,
|
|
swarm:swarm-util,
|
|
swarm:swarm-web,
|
|
terminal-size >=0.3 && <1.0,
|
|
text,
|
|
vty,
|
|
vty-crossplatform >=0.4 && <0.5,
|
|
|
|
hs-source-dirs: app
|
|
default-language: Haskell2010
|
|
ghc-options: -threaded
|
|
default-extensions: ImportQualifiedPost
|
|
|
|
executable swarm-scene
|
|
import: stan-config, common, ghc2021-extensions
|
|
main-is: Main.hs
|
|
build-depends:
|
|
base,
|
|
optparse-applicative >=0.16 && <0.19,
|
|
|
|
build-depends:
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-topography,
|
|
|
|
hs-source-dirs: app/scene
|
|
default-language: Haskell2010
|
|
ghc-options: -threaded
|
|
default-extensions: ImportQualifiedPost
|
|
|
|
executable swarm-docs
|
|
import: stan-config, common, ghc2021-extensions
|
|
main-is: Main.hs
|
|
other-modules:
|
|
build-depends:
|
|
-- Imports shared with the library don't need bounds
|
|
base,
|
|
optparse-applicative >=0.16 && <0.19,
|
|
swarm:swarm-doc,
|
|
text,
|
|
|
|
hs-source-dirs: app/doc
|
|
default-language: Haskell2010
|
|
ghc-options: -threaded
|
|
default-extensions: ImportQualifiedPost
|
|
|
|
executable swarm-host-tournament
|
|
import: stan-config, common, ghc2021-extensions
|
|
main-is: Main.hs
|
|
build-depends:
|
|
base,
|
|
optparse-applicative >=0.16 && <0.19,
|
|
sqlite-simple,
|
|
transformers,
|
|
warp,
|
|
yaml,
|
|
|
|
build-depends:
|
|
swarm:swarm-engine,
|
|
swarm:swarm-tournament,
|
|
|
|
hs-source-dirs: app/tournament
|
|
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:
|
|
TestBoolExpr
|
|
TestCommand
|
|
TestEval
|
|
TestInventory
|
|
TestLSP
|
|
TestLanguagePipeline
|
|
TestNotification
|
|
TestOrdering
|
|
TestOverlay
|
|
TestParse
|
|
TestPedagogy
|
|
TestPretty
|
|
TestRecipeCoverage
|
|
TestRepl
|
|
TestScoring
|
|
TestUtil
|
|
|
|
build-depends:
|
|
-- Imports shared with the library don't need bounds
|
|
QuickCheck >=2.14 && <2.16,
|
|
aeson,
|
|
base,
|
|
boolexpr,
|
|
containers,
|
|
filepath,
|
|
hashable,
|
|
lens,
|
|
megaparsec,
|
|
mtl,
|
|
tasty >=0.10 && <1.6,
|
|
tasty-expected-failure >=0.12 && <0.13,
|
|
tasty-hunit >=0.10 && <0.11,
|
|
tasty-quickcheck >=0.10 && <0.11,
|
|
text,
|
|
time,
|
|
vty,
|
|
witch,
|
|
|
|
build-depends:
|
|
swarm:swarm-doc,
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-topography,
|
|
swarm:swarm-tui,
|
|
swarm:swarm-util,
|
|
|
|
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:
|
|
-- Imports shared with the library don't need bounds
|
|
base,
|
|
containers,
|
|
filepath,
|
|
fused-effects,
|
|
lens,
|
|
mtl,
|
|
tasty >=0.10 && <1.6,
|
|
tasty-hunit >=0.10 && <0.11,
|
|
text,
|
|
witch,
|
|
yaml,
|
|
|
|
build-depends:
|
|
swarm:swarm-doc,
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-tui,
|
|
swarm:swarm-util,
|
|
|
|
hs-source-dirs: test/integration
|
|
default-language: Haskell2010
|
|
ghc-options: -threaded
|
|
|
|
test-suite tournament-host
|
|
import: stan-config, common, ghc2021-extensions
|
|
main-is: Main.hs
|
|
type: exitcode-stdio-1.0
|
|
build-depends:
|
|
SHA,
|
|
base,
|
|
bytestring,
|
|
http-client,
|
|
http-types,
|
|
nonempty-containers,
|
|
tasty,
|
|
tasty-hunit,
|
|
warp,
|
|
|
|
build-depends:
|
|
swarm:swarm-engine,
|
|
swarm:swarm-tournament,
|
|
|
|
hs-source-dirs: test/tournament-host
|
|
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:
|
|
base,
|
|
containers,
|
|
extra,
|
|
lens,
|
|
mtl,
|
|
tasty-bench >=0.3.1 && <0.4,
|
|
text,
|
|
|
|
build-depends:
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-topography,
|
|
swarm:swarm-util,
|
|
|
|
default-language: Haskell2010
|
|
ghc-options:
|
|
-threaded
|
|
-with-rtsopts=-A32m
|
|
-fproc-alignment=64
|