mirror of
https://github.com/swarm-game/swarm.git
synced 2024-08-17 02:20:31 +03:00
Closes #1847. ## Demo ### Production https://swarmgame.net/list-games.html ### Local testing ``` tournament/scripts/demo/server-native.sh ``` and ``` scripts/test/run-tests.sh swarm:test:tournament-host ``` ## Authentication flow 1. Users are represented by a GitHub username (primary key) and an "authentication cookie" in the SQLite database. 2. Site prompts user to login when the client's cookie is nonexistent or does not match any user in the database. 3. GitHub flow: 1. Clicking the "Login" link redirects user to the GitHub login page. 2. GitHub sends a `code` to our callback URL. 3. use that `code` to get an "access token" 4. use the "access token" to look up the username of the person who is logging in. 5. generate and store a new cookie in the database row for that username 6. set the cookie value on the user's client. 4. As long as the client keeps sending the cookie value known to the server, all uploads/activity will be attributed to their GitHub username. ## New features * Login/Logout * All uploaded content is attributed to an authenticated GitHub user * Separate pages for scenario lists and solution lists * Download a solution file
919 lines
23 KiB
Plaintext
919 lines
23 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.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.Direction
|
|
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-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.Location
|
|
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.Area
|
|
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.Navigation.Waypoint
|
|
Swarm.Game.Scenario.Topography.Placement
|
|
Swarm.Game.Scenario.Topography.Structure
|
|
Swarm.Game.Scenario.Topography.Structure.Assembly
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Log
|
|
Swarm.Game.Scenario.Topography.Structure.Recognition.Precompute
|
|
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.WorldDescription
|
|
Swarm.Game.Scenario.Topography.WorldPalette
|
|
Swarm.Game.State.Config
|
|
Swarm.Game.State.Landscape
|
|
Swarm.Game.Terrain
|
|
Swarm.Game.Universe
|
|
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
|
|
Swarm.Util.Effect
|
|
|
|
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,
|
|
nonempty-containers >=0.3.4 && <0.3.5,
|
|
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,
|
|
transformers >=0.5 && <0.7,
|
|
transformers >=0.5.6.2 && <0.6.2.0,
|
|
vector >=0.12 && <0.14,
|
|
vty >=6.1 && <6.3,
|
|
witch >=1.1.1.0 && <1.3,
|
|
witherable >=0.4 && <0.5,
|
|
yaml >=0.11 && <0.11.12.0,
|
|
|
|
build-depends:
|
|
swarm:swarm-lang,
|
|
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-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-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.Util
|
|
Swarm.Util.Erasable
|
|
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,
|
|
filepath >=1.4 && <1.5,
|
|
fused-effects >=1.1.1.1 && <1.2,
|
|
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,
|
|
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-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,
|
|
swarm:swarm-scenario,
|
|
|
|
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
|
|
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-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,
|
|
swarm:swarm-engine,
|
|
swarm:swarm-lang,
|
|
swarm:swarm-scenario,
|
|
swarm:swarm-util,
|
|
tasty-bench >=0.3.1 && <0.4,
|
|
text,
|
|
|
|
default-language: Haskell2010
|
|
ghc-options:
|
|
-threaded
|
|
-with-rtsopts=-A32m
|
|
-fproc-alignment=64
|