swarm/stack.yaml

20 lines
963 B
YAML
Raw Normal View History

2021-08-25 17:21:38 +03:00
extra-deps:
- fused-effects-lens-1.2.0.1@sha256:675fddf183215b6f3c1f2a0823359a648756435fd1966284e61830ec28ad61fa,1466
- hsnoise-0.0.3@sha256:260b39175b8a3e3b1719ad3987b7d72a3fd7a0fa99be8639b91cf4dc3f1c8796,1476
- simple-enumeration-0.2.1@sha256:8625b269c1650d3dd0e3887351c153049f4369853e0d525219e07480ea004b9f,1178
- boolexpr-0.2@sha256:07f38a0206ad63c2c893e3c6271a2e45ea25ab4ef3a9e973edc746876f0ab9e8,853
Update to depend on `lsp-2.4.0.0` (#1762) Update to use the `lsp-2.4` API. Closes #1350. Initially I hoped that any `lsp-2.x` would work. However, the `SeverDefinition` record changed in `2.2` so I initially set that as a lower bound. But then it turns out that `2.4` changed which module it is importing `Rope` from; since we work with ropes in the `Hover` module it matters since we have to import the matching module. Updating to the new `Rope` type also required some changes as the API provided by the new `Rope.Mixed` module is a bit different than the old module, so we would not even be able to easily put in CPP to conditionally depend on the right rope module depending on the `lsp` version. Finally, this means dropping support for GHC 9.0 since `lsp-2.4` does not support it. Along the way I also fixed a minor issue related to showing type information returned by the LSP server, so that it uses `prettyTypeLine` to display the type on a single line (in my editor, when the type does not use a single line it gets cut off). For comparison see also #1610. This refactoring was a big pain because a lot of things (names of types and constructors, locations of exports, etc...) changed from 1.x to 2.x, but there was not much in the way of documenting what had changed. =( I am pretty sure that all functionality has been preserved but I would appreciate independent confirmation. This is also a prerequisite for updating other dependencies such as the `base` version (I will open a follow-up PR soon) since the old `lsp-1.x` versions do not allow many newer versions of various dependencies.
2024-02-12 20:05:39 +03:00
- unification-fd-0.11.2@sha256:b2e11811b703b63682076ae326bd856fd47caf7db881e9e5b896a6342bceb51f,3736
- logict-0.8.0.0@sha256:3d5d87a1d892a4732351c9a0b022d2d07bbb14e60582967c3c703c6ed69de88a,1800
- lsp-2.4.0.0
- vty-6.2
- vty-crossplatform-0.4.0.0@sha256:50593f91ad16777d921138475a8d2784d538fd206addd30664c620278d6c8544,3172
- vty-unix-0.2.0.0@sha256:2af3d0bdae3c4b7b7e567ee374efe32c7439fabdf9096465ce011a6c6736e9ae,2932
- vty-windows-0.2.0.1
- brick-2.3
- brick-list-skip-0.1.1.11
- astar-0.3.0.0
- megaparsec-9.6.1
Structure browser and recognizer (#1579) Closes #1575 Implements structure recognition. ## Features * Structure browsing dialog (`F6`) that becomes available if a scenario declares any recognizable structures * Automatically recognizes statically-placed structures upon scenario initialization, accounting for occlusion by other entity/structure placement * New `structure` command for querying location of recognized structures (primarily intended for system robots and goal checking) * Efficiently recognizes structures immediately upon completion * Accounts for removal of structures * Several new integration tests * Structured web-interface log to help understand/debug the recognition process * Re-uses much of the functionality built previously for defining structures (#1332) Other changes: * Improved validation for static structure placement (ensure valid structure names instead of failing silently) * Moved a few functions (`getNeighborLocs`, `zoomWorld`, `entityAt`, `robotWithID`, `robotWithName`) out of `Step.Util` and into `State` so that recognizer initialization, which becomes a field in `GameState`, could use them * split `scenarioToGameState` into pure and non-pure functions ## Optimizations Scenarios that do not make use of structure recognition are entirely unaffected, performance-wise. Some optimizations include: * Structure definitions must "opt-in" to participate in automatic recognition * Aho-Corasick automatons optimized by: * only initiate structure search if a placed entity exists on a participating structure template * initializing different automatons for each type of "placed entity" * pruning inapplicable row candidates for 2-D search The row-level structure recognition cache described in #1575 was not implemented; it's probably not worth the complexity cost. # UI Demo scripts/play.sh -i scenarios/Testing/1575-structure-recognizer/1575-browse-structures.yaml --autoplay 1. Press `F6` for Structure Browser dialog 2. View http://localhost:5357/recognize/log and http://localhost:5357/recognize/found ![image](https://github.com/swarm-game/swarm/assets/261693/e32d3572-7e53-42d6-84cd-393c57a8aeac) # Future improvements * Refactor `State.hs` so that the new helper functions can live elsewhere * Support non-rectangular recognizable structures * Allow flip/rotate of recognizable structures * Structure ownership by robots * Consolidate code between the Goals and Structures modal dialogs, and the Achievements browser * Enforce minimum/maximum dimensions for structure definitions
2023-11-08 09:44:27 +03:00
- AhoCorasick-0.0.4
Update to depend on `lsp-2.4.0.0` (#1762) Update to use the `lsp-2.4` API. Closes #1350. Initially I hoped that any `lsp-2.x` would work. However, the `SeverDefinition` record changed in `2.2` so I initially set that as a lower bound. But then it turns out that `2.4` changed which module it is importing `Rope` from; since we work with ropes in the `Hover` module it matters since we have to import the matching module. Updating to the new `Rope` type also required some changes as the API provided by the new `Rope.Mixed` module is a bit different than the old module, so we would not even be able to easily put in CPP to conditionally depend on the right rope module depending on the `lsp` version. Finally, this means dropping support for GHC 9.0 since `lsp-2.4` does not support it. Along the way I also fixed a minor issue related to showing type information returned by the LSP server, so that it uses `prettyTypeLine` to display the type on a single line (in my editor, when the type does not use a single line it gets cut off). For comparison see also #1610. This refactoring was a big pain because a lot of things (names of types and constructors, locations of exports, etc...) changed from 1.x to 2.x, but there was not much in the way of documenting what had changed. =( I am pretty sure that all functionality has been preserved but I would appreciate independent confirmation. This is also a prerequisite for updating other dependencies such as the `base` version (I will open a follow-up PR soon) since the old `lsp-1.x` versions do not allow many newer versions of various dependencies.
2024-02-12 20:05:39 +03:00
resolver: lts-22.10
2022-07-27 22:54:10 +03:00