2024-02-19 23:07:15 +03:00
|
|
|
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
|
2024-05-13 20:25:00 +03:00
|
|
|
sublibraries. Roughly in order from inner to outer, they are:
|
2024-02-19 23:07:15 +03:00
|
|
|
|
2024-05-13 20:25:00 +03:00
|
|
|
* 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
|
2024-02-19 23:07:15 +03:00
|
|
|
|
|
|
|
<<docs/image/sublibrary-graph.svg>>
|
|
|
|
|
2024-05-13 20:25:00 +03:00
|
|
|
See the [Swarm module guide](https://github.com/swarm-game/swarm/wiki/Module-guide)
|
|
|
|
for a more in-depth guide to the codebase.
|
|
|
|
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2024-05-10 22:43:41 +03:00
|
|
|
tested-with: ghc ==9.2.8 || ==9.4.8 || ==9.6.5 || ==9.8.2
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2021-08-22 02:18:07 +03:00
|
|
|
|
2021-08-27 05:05:46 +03:00
|
|
|
source-repository head
|
2024-02-19 23:07:15 +03:00
|
|
|
type: git
|
|
|
|
location: git://github.com/swarm-game/swarm.git
|
2021-08-27 05:05:46 +03:00
|
|
|
|
2021-09-25 16:47:49 +03:00
|
|
|
flag ci
|
|
|
|
description: Make warnings error
|
2024-02-19 23:07:15 +03:00
|
|
|
default: False
|
|
|
|
manual: True
|
2021-09-25 16:47:49 +03:00
|
|
|
|
|
|
|
common common
|
|
|
|
if flag(ci)
|
2024-02-19 23:07:15 +03:00
|
|
|
ghc-options: -Werror
|
|
|
|
ghc-options:
|
|
|
|
-Wall
|
|
|
|
-Wcompat
|
|
|
|
-Widentities
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
-Wno-star-is-type
|
|
|
|
-Wpartial-fields
|
|
|
|
|
2021-09-25 16:47:49 +03:00
|
|
|
default-language: Haskell2010
|
|
|
|
|
2021-09-04 17:20:42 +03:00
|
|
|
common stan-config
|
2024-02-19 23:07:15 +03:00
|
|
|
ghc-options:
|
|
|
|
-fwrite-ide-info
|
|
|
|
-hiedir=.hie
|
2021-09-04 17:20:42 +03:00
|
|
|
|
2022-07-01 12:07:41 +03:00
|
|
|
-- Harmless extensions from GHC2021
|
|
|
|
common ghc2021-extensions
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2024-04-28 00:52:31 +03:00
|
|
|
BangPatterns
|
|
|
|
DeriveAnyClass
|
|
|
|
DeriveDataTypeable
|
|
|
|
DeriveFunctor
|
|
|
|
DeriveGeneric
|
|
|
|
DeriveTraversable
|
|
|
|
ExplicitForAll
|
|
|
|
FlexibleContexts
|
|
|
|
FlexibleInstances
|
|
|
|
GADTSyntax
|
|
|
|
ImportQualifiedPost
|
|
|
|
LambdaCase
|
2024-02-19 23:07:15 +03:00
|
|
|
MultiParamTypeClasses
|
2024-04-28 00:52:31 +03:00
|
|
|
NumericUnderscores
|
2024-02-19 23:07:15 +03:00
|
|
|
RankNTypes
|
|
|
|
ScopedTypeVariables
|
|
|
|
StandaloneDeriving
|
|
|
|
TupleSections
|
|
|
|
TypeApplications
|
2024-04-28 00:52:31 +03:00
|
|
|
TypeOperators
|
2022-07-01 12:07:41 +03:00
|
|
|
|
2024-01-05 00:21:02 +03:00
|
|
|
library swarm-lang
|
2024-02-19 23:07:15 +03:00
|
|
|
import: stan-config, common, ghc2021-extensions
|
|
|
|
visibility: public
|
|
|
|
-- cabal-gild: discover src/swarm-lang
|
|
|
|
exposed-modules:
|
2024-04-28 00:52:31 +03:00
|
|
|
Swarm.Effect.Unify
|
|
|
|
Swarm.Effect.Unify.Common
|
|
|
|
Swarm.Effect.Unify.Fast
|
|
|
|
Swarm.Effect.Unify.Naive
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Language.Capability
|
|
|
|
Swarm.Language.Context
|
|
|
|
Swarm.Language.Elaborate
|
2024-05-14 14:32:03 +03:00
|
|
|
Swarm.Language.Format
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Language.Key
|
2024-05-29 01:52:11 +03:00
|
|
|
Swarm.Language.Kindcheck
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Language.LSP
|
|
|
|
Swarm.Language.LSP.Hover
|
|
|
|
Swarm.Language.LSP.VarUsage
|
|
|
|
Swarm.Language.Module
|
2024-05-12 04:31:54 +03:00
|
|
|
Swarm.Language.Parser
|
2024-05-14 14:32:03 +03:00
|
|
|
Swarm.Language.Parser.Comment
|
2024-05-12 04:31:54 +03:00
|
|
|
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
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Language.Pipeline
|
|
|
|
Swarm.Language.Pipeline.QQ
|
|
|
|
Swarm.Language.Pretty
|
|
|
|
Swarm.Language.Requirement
|
|
|
|
Swarm.Language.Syntax
|
2024-05-18 15:57:37 +03:00
|
|
|
Swarm.Language.Syntax.AST
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Language.Syntax.CommandMetadata
|
2024-05-18 15:57:37 +03:00
|
|
|
Swarm.Language.Syntax.Comments
|
|
|
|
Swarm.Language.Syntax.Constants
|
|
|
|
Swarm.Language.Syntax.Loc
|
|
|
|
Swarm.Language.Syntax.Pattern
|
|
|
|
Swarm.Language.Syntax.Util
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-04-28 00:52:31 +03:00
|
|
|
data-fix >=0.3 && <0.4,
|
|
|
|
deriving-compat >=0.6 && <0.7,
|
2024-02-19 23:07:15 +03:00
|
|
|
extra,
|
2024-04-28 00:52:31 +03:00
|
|
|
free >=5.2 && <5.3,
|
|
|
|
fused-effects,
|
2024-02-19 23:07:15 +03:00
|
|
|
hashable,
|
|
|
|
lens,
|
2024-05-10 22:43:41 +03:00
|
|
|
lsp >=2.4 && <2.7,
|
2024-02-19 23:07:15 +03:00
|
|
|
megaparsec,
|
|
|
|
mtl,
|
|
|
|
parser-combinators,
|
|
|
|
prettyprinter,
|
|
|
|
split,
|
|
|
|
syb >=0.7 && <0.8,
|
|
|
|
template-haskell,
|
2024-05-14 14:32:03 +03:00
|
|
|
terminal-size >=0.3 && <1.0,
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2024-01-05 00:21:02 +03:00
|
|
|
|
2024-06-02 23:53:34 +03:00
|
|
|
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
|
|
|
|
|
2024-01-25 00:11:14 +03:00
|
|
|
library swarm-scenario
|
2024-02-19 23:07:15 +03:00
|
|
|
import: stan-config, common, ghc2021-extensions
|
|
|
|
visibility: public
|
|
|
|
-- cabal-gild: discover src/swarm-scenario
|
|
|
|
exposed-modules:
|
|
|
|
Swarm.Constant
|
|
|
|
Swarm.Game.Achievement.Definitions
|
Capability exercise cost (#1777)
Closes #1684
Closes #1262
# Demo
A simple "puzzle" that makes use of consumables:
scripts/play.sh -i data/scenarios/Testing/1777-capability-cost.yaml --autoplay
Demo of enabled commands and costs display in left pane:
scripts/play.sh -i data/scenarios/Testing/1262-display-device-commands.yaml
![Screenshot from 2024-03-01 22-39-12](https://github.com/swarm-game/swarm/assets/261693/03fc0e4f-d219-4aa1-8775-cb5112eb0b90)
# In this PR
* Supports specifying capabilities both as plain lists and as maps from capabilities to ingredients in YAML
* JSON Schema support for both capability specification styles
* New integration test
* Removed redundant `tshow` implementation from `Swarm.Doc.Util`
# Entity lookup approaches
The cost of exercising a capability in terms of "ingredients" is specified by the `_entityCapabilities` field within an `Entity` definition. Each ingredient itself is an entity, specified by name.
For many purposes, having ingredients just of type `EntityName` is sufficient. But for `Swarm.Game.Recipe.findLacking` in particular, the ingredients list must be actual `Entity` objects, not just names of entities. So at some point the names need to be looked up in the global entity map to be promoted to `Entity` objects.
The full list of entities is not available at `Entity` parse time to look up an ingredient entity by name, so we cannot store ingredients lists of type `(Count, Entity)` within a parent `Entity` object.
Approaches considered were:
* Store a copy of the `entityMap` in `RobotR`, for use by the `equippedDevices` lens
* Introduce a type parameter to `Entity` representing a "parse phase"
* **Allow a redundant "entity lookup" (and validation) at command execution time**
## Store `entityMap` in `RobotR`
One approach explored was to add a field to `RobotR`:
```
, _globalEntityMap :: EntityMap
```
This allowed the `equippedDevices` lens implementation to promote the `EntityName`s to `Entity`s when setting the value of the `_robotCapabilities` field. However, it was rather invasive as it entailed threading the `EntityMap` through many new code paths.
## `Entity` type parameter
Currently, `Entity` has a field:
```
_entityCapabilities :: SingleEntityCapabilities EntityName
```
This would entail a huge refactoring, with:
```
data Entity e = Entity
...
, _entityCapabilities :: SingleEntityCapabilities e
```
At initial parse time we would obtain a list of `Entity EntityName`, but somewhere later during `Scenario` parse time, we can do another pass to obtain `Entity Entity` objects.
This would at least have the advantage of doing the entity lookup/validation on ingredient lists in exactly one place, at parse time.
## Defer `EntityName -> Entity` promotion to command execution time
This is what is implemented in this PR. The global set of capability costs is validated at scenario parse time. But it is also redundantly validated in the `payExerciseCost` function, which is not ideal.
2024-04-25 22:39:54 +03:00
|
|
|
Swarm.Game.Device
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Game.Display
|
|
|
|
Swarm.Game.Entity
|
|
|
|
Swarm.Game.Entity.Cosmetic
|
|
|
|
Swarm.Game.Entity.Cosmetic.Assignment
|
|
|
|
Swarm.Game.Failure
|
Capability exercise cost (#1777)
Closes #1684
Closes #1262
# Demo
A simple "puzzle" that makes use of consumables:
scripts/play.sh -i data/scenarios/Testing/1777-capability-cost.yaml --autoplay
Demo of enabled commands and costs display in left pane:
scripts/play.sh -i data/scenarios/Testing/1262-display-device-commands.yaml
![Screenshot from 2024-03-01 22-39-12](https://github.com/swarm-game/swarm/assets/261693/03fc0e4f-d219-4aa1-8775-cb5112eb0b90)
# In this PR
* Supports specifying capabilities both as plain lists and as maps from capabilities to ingredients in YAML
* JSON Schema support for both capability specification styles
* New integration test
* Removed redundant `tshow` implementation from `Swarm.Doc.Util`
# Entity lookup approaches
The cost of exercising a capability in terms of "ingredients" is specified by the `_entityCapabilities` field within an `Entity` definition. Each ingredient itself is an entity, specified by name.
For many purposes, having ingredients just of type `EntityName` is sufficient. But for `Swarm.Game.Recipe.findLacking` in particular, the ingredients list must be actual `Entity` objects, not just names of entities. So at some point the names need to be looked up in the global entity map to be promoted to `Entity` objects.
The full list of entities is not available at `Entity` parse time to look up an ingredient entity by name, so we cannot store ingredients lists of type `(Count, Entity)` within a parent `Entity` object.
Approaches considered were:
* Store a copy of the `entityMap` in `RobotR`, for use by the `equippedDevices` lens
* Introduce a type parameter to `Entity` representing a "parse phase"
* **Allow a redundant "entity lookup" (and validation) at command execution time**
## Store `entityMap` in `RobotR`
One approach explored was to add a field to `RobotR`:
```
, _globalEntityMap :: EntityMap
```
This allowed the `equippedDevices` lens implementation to promote the `EntityName`s to `Entity`s when setting the value of the `_robotCapabilities` field. However, it was rather invasive as it entailed threading the `EntityMap` through many new code paths.
## `Entity` type parameter
Currently, `Entity` has a field:
```
_entityCapabilities :: SingleEntityCapabilities EntityName
```
This would entail a huge refactoring, with:
```
data Entity e = Entity
...
, _entityCapabilities :: SingleEntityCapabilities e
```
At initial parse time we would obtain a list of `Entity EntityName`, but somewhere later during `Scenario` parse time, we can do another pass to obtain `Entity Entity` objects.
This would at least have the advantage of doing the entity lookup/validation on ingredient lists in exactly one place, at parse time.
## Defer `EntityName -> Entity` promotion to command execution time
This is what is implemented in this PR. The global set of capability costs is validated at scenario parse time. But it is also redundantly validated in the `payExerciseCost` function, which is not ideal.
2024-04-25 22:39:54 +03:00
|
|
|
Swarm.Game.Ingredients
|
2024-02-29 09:22:21 +03:00
|
|
|
Swarm.Game.Land
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Game.Recipe
|
|
|
|
Swarm.Game.ResourceLoading
|
|
|
|
Swarm.Game.Robot
|
2024-03-10 04:31:35 +03:00
|
|
|
Swarm.Game.Robot.Walk
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
aeson >=2.2 && <2.3,
|
2024-02-19 23:07:15 +03:00
|
|
|
array >=0.5.4 && <0.6,
|
2024-05-10 22:43:41 +03:00
|
|
|
base >=4.14 && <4.20,
|
2024-02-19 23:07:15 +03:00
|
|
|
boolexpr >=0.2 && <0.3,
|
|
|
|
bytestring >=0.10 && <0.13,
|
|
|
|
clock >=0.8.2 && <0.9,
|
|
|
|
colour >=2.3.6 && <2.4,
|
2024-05-10 22:43:41 +03:00
|
|
|
containers >=0.6.2 && <0.8,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
lens >=4.19 && <5.4,
|
|
|
|
linear >=1.21.6 && <1.24,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-06-02 23:53:34 +03:00
|
|
|
swarm:swarm-topography,
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-util,
|
|
|
|
|
|
|
|
hs-source-dirs: src/swarm-scenario
|
|
|
|
default-language: Haskell2010
|
|
|
|
default-extensions:
|
|
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
|
|
-- See discussion in #415
|
|
|
|
StrictData
|
2024-01-25 00:11:14 +03:00
|
|
|
|
|
|
|
library swarm-engine
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2024-04-29 05:34:56 +03:00
|
|
|
Swarm.Game.Step.Validate
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
aeson >=2.2 && <2.3,
|
2024-02-19 23:07:15 +03:00
|
|
|
array >=0.5.4 && <0.6,
|
|
|
|
astar >=0.3 && <0.3.1,
|
2024-05-10 22:43:41 +03:00
|
|
|
base >=4.14 && <4.20,
|
2024-02-19 23:07:15 +03:00
|
|
|
boolexpr >=0.2 && <0.3,
|
|
|
|
bytestring,
|
|
|
|
clock >=0.8.2 && <0.9,
|
2024-05-10 22:43:41 +03:00
|
|
|
containers >=0.6.2 && <0.8,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
lens >=4.19 && <5.4,
|
|
|
|
linear >=1.21.6 && <1.24,
|
2024-05-12 03:32:21 +03:00
|
|
|
megaparsec >=9.6 && <9.7,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
time >=1.9 && <1.15,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-06-02 23:53:34 +03:00
|
|
|
swarm:swarm-topography,
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-util,
|
|
|
|
|
|
|
|
hs-source-dirs: src/swarm-engine
|
|
|
|
default-language: Haskell2010
|
|
|
|
default-extensions:
|
|
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
|
|
-- See discussion in #415
|
|
|
|
StrictData
|
2024-01-05 21:26:06 +03:00
|
|
|
|
|
|
|
library swarm-web
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
wai-app-static >=3.1.8 && <3.2,
|
2024-02-19 23:07:15 +03:00
|
|
|
warp,
|
|
|
|
witch,
|
|
|
|
|
|
|
|
build-depends:
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-doc,
|
|
|
|
swarm:swarm-engine,
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-lang,
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-scenario,
|
2024-06-02 23:53:34 +03:00
|
|
|
swarm:swarm-topography,
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-tui,
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-util,
|
|
|
|
|
|
|
|
hs-source-dirs: src/swarm-web
|
|
|
|
default-language: Haskell2010
|
|
|
|
default-extensions:
|
|
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
|
|
-- See discussion in #415
|
|
|
|
StrictData
|
2024-01-05 21:26:06 +03:00
|
|
|
|
2024-04-25 23:11:11 +03:00
|
|
|
library swarm-tournament
|
|
|
|
import: stan-config, common, ghc2021-extensions
|
|
|
|
visibility: public
|
|
|
|
-- cabal-gild: discover src/swarm-tournament
|
|
|
|
exposed-modules:
|
2024-05-22 03:27:21 +03:00
|
|
|
Swarm.Web.Auth
|
2024-04-25 23:11:11 +03:00
|
|
|
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,
|
2024-05-22 03:27:21 +03:00
|
|
|
cookie,
|
|
|
|
exceptions,
|
2024-04-25 23:11:11 +03:00
|
|
|
extra,
|
|
|
|
fused-effects,
|
2024-05-22 03:27:21 +03:00
|
|
|
http-client,
|
|
|
|
http-client-tls >=0.3.6.3 && <0.3.7,
|
2024-04-25 23:11:11 +03:00
|
|
|
http-types,
|
|
|
|
lens,
|
|
|
|
mtl,
|
|
|
|
servant-docs,
|
|
|
|
servant-multipart,
|
|
|
|
servant-server >=0.19 && <0.21,
|
2024-05-12 23:45:08 +03:00
|
|
|
sqlite-simple >=0.4.19.0 && <0.4.20,
|
2024-04-25 23:11:11 +03:00
|
|
|
text,
|
|
|
|
time,
|
|
|
|
transformers,
|
2024-05-22 03:27:21 +03:00
|
|
|
utf8-string,
|
2024-04-25 23:11:11 +03:00
|
|
|
wai >=3.2 && <3.3,
|
2024-05-10 22:43:41 +03:00
|
|
|
wai-app-static >=3.1.8 && <3.2,
|
2024-04-25 23:11:11 +03:00
|
|
|
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
|
|
|
|
|
2024-01-05 21:26:06 +03:00
|
|
|
library swarm-util
|
2024-02-19 23:07:15 +03:00
|
|
|
import: stan-config, common, ghc2021-extensions
|
|
|
|
visibility: public
|
|
|
|
-- cabal-gild: discover src/swarm-util
|
|
|
|
exposed-modules:
|
|
|
|
Control.Carrier.Accum.FixedStrict
|
|
|
|
Data.BoolExpr.Simplify
|
2024-06-02 23:53:34 +03:00
|
|
|
Swarm.Language.Syntax.Direction
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Util
|
2024-05-28 21:36:10 +03:00
|
|
|
Swarm.Util.Effect
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Util.Erasable
|
2024-05-28 06:10:53 +03:00
|
|
|
Swarm.Util.JSON
|
2024-02-19 23:07:15 +03:00
|
|
|
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:
|
2024-05-10 22:43:41 +03:00
|
|
|
aeson >=2.2 && <2.3,
|
|
|
|
base >=4.14 && <4.20,
|
2024-02-19 23:07:15 +03:00
|
|
|
boolexpr >=0.2 && <0.3,
|
|
|
|
clock >=0.8.2 && <0.9,
|
2024-05-10 22:43:41 +03:00
|
|
|
containers >=0.6.2 && <0.8,
|
2024-02-19 23:07:15 +03:00
|
|
|
directory >=1.3 && <1.4,
|
|
|
|
either >=5.0 && <5.1,
|
2024-05-28 21:36:10 +03:00
|
|
|
extra >=1.7 && <1.8,
|
2024-02-19 23:07:15 +03:00
|
|
|
filepath >=1.4 && <1.5,
|
|
|
|
fused-effects >=1.1.1.1 && <1.2,
|
2024-06-02 23:53:34 +03:00
|
|
|
hashable >=1.3.4 && <1.5,
|
2024-05-10 22:43:41 +03:00
|
|
|
lens >=4.19 && <5.4,
|
2024-02-19 23:07:15 +03:00
|
|
|
minimorph >=0.3 && <0.4,
|
|
|
|
mtl >=2.2.2 && <2.4,
|
|
|
|
servant-docs >=0.12 && <0.14,
|
2024-05-10 22:43:41 +03:00
|
|
|
template-haskell >=2.16 && <2.22,
|
2024-02-19 23:07:15 +03:00
|
|
|
text >=1.2.4 && <2.2,
|
|
|
|
transformers >=0.5 && <0.7,
|
|
|
|
vector >=0.12 && <0.14,
|
|
|
|
witch >=1.1.1.0 && <1.3,
|
2024-05-28 21:36:10 +03:00
|
|
|
witherable >=0.4 && <0.5,
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2024-01-05 21:26:06 +03:00
|
|
|
|
2024-05-11 05:08:49 +03:00
|
|
|
library swarm-doc
|
2024-02-19 23:07:15 +03:00
|
|
|
import: stan-config, common, ghc2021-extensions
|
2024-05-11 05:08:49 +03:00
|
|
|
visibility: public
|
|
|
|
-- cabal-gild: discover src/swarm-doc
|
2024-02-19 23:07:15 +03:00
|
|
|
exposed-modules:
|
|
|
|
Swarm.Doc.Command
|
2024-05-11 05:08:49 +03:00
|
|
|
Swarm.Doc.Gen
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Doc.Keyword
|
|
|
|
Swarm.Doc.Pedagogy
|
2024-05-11 05:08:49 +03:00
|
|
|
Swarm.Doc.Schema.Arrangement
|
|
|
|
Swarm.Doc.Schema.Parse
|
|
|
|
Swarm.Doc.Schema.Refined
|
|
|
|
Swarm.Doc.Schema.Render
|
|
|
|
Swarm.Doc.Schema.SchemaType
|
2024-02-19 23:07:15 +03:00
|
|
|
Swarm.Doc.Util
|
2024-05-11 05:08:49 +03:00
|
|
|
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
|
2024-05-12 02:10:54 +03:00
|
|
|
visibility: public
|
|
|
|
-- cabal-gild: discover src/swarm-tui
|
2024-05-11 05:08:49 +03:00
|
|
|
exposed-modules:
|
2024-02-19 23:07:15 +03:00
|
|
|
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:
|
2024-05-10 22:43:41 +03:00
|
|
|
aeson >=2.2 && <2.3,
|
2024-02-19 23:07:15 +03:00
|
|
|
array >=0.5.4 && <0.6,
|
2024-05-10 22:43:41 +03:00
|
|
|
base >=4.14 && <4.20,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
containers >=0.6.2 && <0.8,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
lens >=4.19 && <5.4,
|
|
|
|
linear >=1.21.6 && <1.24,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-10 22:43:41 +03:00
|
|
|
time >=1.9 && <1.15,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-06-02 23:53:34 +03:00
|
|
|
swarm:swarm-topography,
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-util,
|
|
|
|
|
2024-05-12 02:10:54 +03:00
|
|
|
hs-source-dirs: src/swarm-tui
|
2024-02-19 23:07:15 +03:00
|
|
|
default-language: Haskell2010
|
|
|
|
default-extensions:
|
|
|
|
-- Avoid unexpected unevaluated thunk buildup
|
|
|
|
-- See discussion in #415
|
|
|
|
StrictData
|
2021-08-23 21:31:57 +03:00
|
|
|
|
2021-08-23 19:47:04 +03:00
|
|
|
executable swarm
|
2024-02-19 23:07:15 +03:00
|
|
|
import: stan-config, common
|
|
|
|
main-is: Main.hs
|
|
|
|
other-modules: Swarm.App
|
|
|
|
build-depends:
|
|
|
|
-- Imports shared with the library don't need bounds
|
|
|
|
base,
|
2024-03-08 22:15:39 +03:00
|
|
|
blaze-html >=0.9.1 && <0.10,
|
2024-02-19 23:07:15 +03:00
|
|
|
brick,
|
|
|
|
fused-effects,
|
|
|
|
githash >=0.1.6 && <0.2,
|
|
|
|
lens,
|
|
|
|
optparse-applicative >=0.16 && <0.19,
|
|
|
|
prettyprinter,
|
|
|
|
servant >=0.19 && <0.21,
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-engine,
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-lang,
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-scenario,
|
|
|
|
swarm:swarm-tui,
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2021-09-28 05:39:39 +03:00
|
|
|
|
2024-01-29 21:01:56 +03:00
|
|
|
executable swarm-scene
|
2024-02-19 23:07:15 +03:00
|
|
|
import: stan-config, common, ghc2021-extensions
|
|
|
|
main-is: Main.hs
|
|
|
|
build-depends:
|
|
|
|
base,
|
|
|
|
optparse-applicative >=0.16 && <0.19,
|
2024-06-02 23:53:34 +03:00
|
|
|
|
|
|
|
build-depends:
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-scenario,
|
2024-06-02 23:53:34 +03:00
|
|
|
swarm:swarm-topography,
|
2024-02-19 23:07:15 +03:00
|
|
|
|
|
|
|
hs-source-dirs: app/scene
|
|
|
|
default-language: Haskell2010
|
|
|
|
ghc-options: -threaded
|
|
|
|
default-extensions: ImportQualifiedPost
|
2024-01-29 21:01:56 +03:00
|
|
|
|
2023-12-04 06:45:07 +03:00
|
|
|
executable swarm-docs
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-doc,
|
2024-02-19 23:07:15 +03:00
|
|
|
text,
|
|
|
|
|
|
|
|
hs-source-dirs: app/doc
|
|
|
|
default-language: Haskell2010
|
|
|
|
ghc-options: -threaded
|
|
|
|
default-extensions: ImportQualifiedPost
|
2023-12-04 06:45:07 +03:00
|
|
|
|
2024-04-25 23:11:11 +03:00
|
|
|
executable swarm-host-tournament
|
|
|
|
import: stan-config, common, ghc2021-extensions
|
|
|
|
main-is: Main.hs
|
|
|
|
build-depends:
|
|
|
|
base,
|
|
|
|
optparse-applicative >=0.16 && <0.19,
|
2024-05-22 03:27:21 +03:00
|
|
|
sqlite-simple,
|
2024-04-25 23:11:11 +03:00
|
|
|
transformers,
|
|
|
|
warp,
|
2024-05-22 03:27:21 +03:00
|
|
|
yaml,
|
2024-04-25 23:11:11 +03:00
|
|
|
|
|
|
|
build-depends:
|
|
|
|
swarm:swarm-engine,
|
|
|
|
swarm:swarm-tournament,
|
|
|
|
|
|
|
|
hs-source-dirs: app/tournament
|
|
|
|
default-language: Haskell2010
|
|
|
|
ghc-options: -threaded
|
|
|
|
default-extensions: ImportQualifiedPost
|
|
|
|
|
2021-09-28 05:39:39 +03:00
|
|
|
test-suite swarm-unit
|
2024-02-19 23:07:15 +03:00
|
|
|
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
|
2024-05-26 04:25:54 +03:00
|
|
|
TestOverlay
|
2024-05-12 03:32:21 +03:00
|
|
|
TestParse
|
2024-02-19 23:07:15 +03:00
|
|
|
TestPedagogy
|
|
|
|
TestPretty
|
|
|
|
TestRecipeCoverage
|
2024-04-25 22:20:31 +03:00
|
|
|
TestRepl
|
2024-02-19 23:07:15 +03:00
|
|
|
TestScoring
|
|
|
|
TestUtil
|
|
|
|
|
|
|
|
build-depends:
|
|
|
|
-- Imports shared with the library don't need bounds
|
2024-05-10 22:43:41 +03:00
|
|
|
QuickCheck >=2.14 && <2.16,
|
2024-02-19 23:07:15 +03:00
|
|
|
aeson,
|
|
|
|
base,
|
|
|
|
boolexpr,
|
|
|
|
containers,
|
|
|
|
filepath,
|
|
|
|
hashable,
|
|
|
|
lens,
|
2024-05-12 03:32:21 +03:00
|
|
|
megaparsec,
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
|
|
|
|
2024-04-25 22:20:31 +03:00
|
|
|
build-depends:
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-doc,
|
2024-04-25 22:20:31 +03:00
|
|
|
swarm:swarm-engine,
|
|
|
|
swarm:swarm-lang,
|
|
|
|
swarm:swarm-scenario,
|
2024-06-02 23:53:34 +03:00
|
|
|
swarm:swarm-topography,
|
2024-05-11 05:08:49 +03:00
|
|
|
swarm:swarm-tui,
|
2024-04-25 22:20:31 +03:00
|
|
|
swarm:swarm-util,
|
|
|
|
|
2024-02-19 23:07:15 +03:00
|
|
|
hs-source-dirs: test/unit
|
|
|
|
default-language: Haskell2010
|
|
|
|
ghc-options: -threaded
|
2021-09-28 05:39:39 +03:00
|
|
|
|
2021-10-19 05:49:32 +03:00
|
|
|
test-suite swarm-integration
|
2024-02-19 23:07:15 +03:00
|
|
|
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,
|
|
|
|
|
2024-05-11 05:08:49 +03:00
|
|
|
build-depends:
|
|
|
|
swarm:swarm-doc,
|
|
|
|
swarm:swarm-engine,
|
|
|
|
swarm:swarm-lang,
|
|
|
|
swarm:swarm-scenario,
|
|
|
|
swarm:swarm-tui,
|
|
|
|
swarm:swarm-util,
|
|
|
|
|
2024-02-19 23:07:15 +03:00
|
|
|
hs-source-dirs: test/integration
|
|
|
|
default-language: Haskell2010
|
|
|
|
ghc-options: -threaded
|
2021-10-01 14:59:34 +03:00
|
|
|
|
2024-04-25 23:11:11 +03:00
|
|
|
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
|
|
|
|
|
2021-10-01 14:59:34 +03:00
|
|
|
benchmark benchmark
|
2024-02-19 23:07:15 +03:00
|
|
|
import: stan-config, common, ghc2021-extensions
|
|
|
|
main-is: Benchmark.hs
|
2023-10-09 07:45:27 +03:00
|
|
|
hs-source-dirs: test/bench
|
2024-02-19 23:07:15 +03:00
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
build-depends:
|
|
|
|
base,
|
|
|
|
containers,
|
|
|
|
extra,
|
|
|
|
lens,
|
|
|
|
mtl,
|
2024-06-02 23:53:34 +03:00
|
|
|
tasty-bench >=0.3.1 && <0.4,
|
|
|
|
text,
|
|
|
|
|
|
|
|
build-depends:
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-engine,
|
|
|
|
swarm:swarm-lang,
|
|
|
|
swarm:swarm-scenario,
|
2024-06-02 23:53:34 +03:00
|
|
|
swarm:swarm-topography,
|
2024-02-19 23:07:15 +03:00
|
|
|
swarm:swarm-util,
|
|
|
|
|
2021-10-01 14:59:34 +03:00
|
|
|
default-language: Haskell2010
|
2024-02-19 23:07:15 +03:00
|
|
|
ghc-options:
|
|
|
|
-threaded
|
|
|
|
-with-rtsopts=-A32m
|
|
|
|
-fproc-alignment=64
|