Changelog for swarm-0.3.0.0
Revision history for swarm
0.3.0.0 - 2023-01-30
This is the first release of 2023! It contains:
- various new features and bugfixes (see subsections below)
- UI tweaks
- fewer typos (thanks @bwignall and @kostmo)
- upgraded dependencies (
>=lsp-1.6
and>=brick-1.5
) and raised Stack resolver to use GHC 9.4 #1001 - a ton of internal refactoring
Fixed bugs
- copy parent robot context to child when executing
build
by @byorgey in #817 - Merge new requirements context with existing when running from REPL by @byorgey in #965
- Reset
lastFrameTime
when starting a new scenario by @byorgey in #855 - Fix capability checking, and refactor/add lots of comments by @byorgey in #959
- Fix
EntityMap
merging by @byorgey in #962 - Fix: add first heard message to log by @xsebek in #842
- Fix hypothetical result of condition by @xsebek in #940
- One file per achievement record by @kostmo in #954
- Show duplicate robot logs by @xsebek in #1022
- Copy requirements map to robot context when loading a new
ProcessedTerm
by @byorgey in #827 - Set REPL to
Working
when base hasprogram
field specified by @byorgey in #846 - Create swarm subdirectories as necessary by @xsebek in #943
New Features
Swarm language
- implement Equip/Unequip by @kostmo in #887
- The great
install
/equip
switch by @byorgey in #989
- The great
- Meeting other robots by @byorgey in #920
- New
heading
command by @byorgey in #955 - Add
isempty : cmd bool
to check whether current cell has an entity by @byorgey in #968
Entities
- Add
GPS receiver
device to providesenseloc
capability by @byorgey in #956 - Device with recipe for 'appear' capability by @kostmo in #1027
- device for setname by @kostmo in #1028
LSP improvements
- swarm-lang IDE hover by @kostmo in #972
- Include
SrcLoc
info with variable binding sites by @byorgey in #993 - Annotate ASTs with types at every node by @byorgey in #991
- Improve OnHover for Def/Let, App and Const by @xsebek in #986
- warn of unused variables by @kostmo in #983
Web API
- Expose REPL history via web interface by @kostmo in #821
Command line options
- Add full color mode option by @xsebek in #851
New scenarios
- New ranching scenario by @kostmo in #835
- new bind tutorial by @kostmo in #895
- A "bucket brigade" of robots by @kostmo in #885
- Ice Cream Shop by @kostmo in #1008
- word search by @kostmo in #999
- Wolf, Goat, Cabbage scenario by @kostmo in #944
- swarm logo animation by @kostmo in #1018
Scenario development
- Boolean expressions of objective prerequisites by @kostmo in #927
- support 'orientationMap' by @kostmo in #1023
- support custom attributes defined in scenarios by @kostmo in #1058
UI enhancements
- show devices that enable commands by @kostmo in #899
- Add a "driving mode" to the REPL by @kostmo in #819
Achievements
- achievements board by @kostmo in #796
- first tutorial completion achievement by @kostmo in #925
- Add achievement for losing by @kostmo in #945
Debugging
- Better CESK machine pretty-printing by @byorgey in #948
- Add the full expected location for the data directory by @TristanCacqueray in #908
- Extend logs for warnings by @xsebek in #982
0.2.0.0 - 2022-11-01
A bunch of small fixes and improvements; special thanks to new contributors @0xcefaedfe, @kostmo, @ussgarci, and @valyagolev. Notable changes include:
- New UI features:
- REPL improvements:
- Improve user experience around quitting & moving between tutorial challenges (#754)
autoplay
flag for automatically demonstrating scenario solutions (#792)- Improved inventory sorting and user-controllable sort criteria (#793)
- Ability to temporarily hide robots so you can see what's under them (#802)
- New language features:
- New
void
type (#735)
- New
- Bug fixes:
- Documentation:
- Generate all wiki "cheat sheets" automatically (#769)
- Support for building on GHC 9.4 (#752)
There were several other small fixes and improvements; see the full changelog here.
0.1.1.0 - 2022-10-14
A couple new features and an important bugfix for the Hackage release.
- Update to
hsnoise-0.0.3
, fixing some world generation bugs that only showed up in the Hackage release. (#746) - New "blank" creative scenario (#741)
- REPL improvements
0.1.0.1 - 2022-10-06
A bugfix release for a few minor bugs that plagued the first release:
- Fall back to to the swarm data directory when a
run
file is not found (#730)- This bug caused the move tutorial to be unplayable because it tried to execute
run "data/scenarios/Tutorials/move_system.sw"
- This bug caused the move tutorial to be unplayable because it tried to execute
- Fix version check when there is no GitInfo
(#729)
- This bug caused the game to always report that there was a new version available even when you already had the latest (and only!) version.
0.1.0.0 - 2022-10-06
First Swarm release! Swarm already has:
- a programming language based on the polymorphic lambda calculus + recursion, with a command monad for describing first-class imperative actions
- scenarios which can be loaded from YAML files
- the release comes with official challenges and an in-game tutorial
- the default Classic and Creative modes use the same YAML syntax
- we include JSON schemas for editor support when writing scenarios
- procedural 2D world generation
- LSP server built into the Swarm executable
- Terminal UI interface
- running the executable opens the Main menu by default
- game screen with a world view, inventory and REPL
- popup windows for messages, challenge descriptions, etc.