Skip to content

Releases: swarm-game/swarm

0.6.0.0

15 Jul 19:49
c3ce3fe
Compare
Choose a tag to compare

Community

Breaking changes

  • Types are now required to start with an uppercase letter (#1583)
    • Use swarm format --v0.5 to convert old code.

Bugfixes

  • Variables in a local monadic binder escape to outer scopes
    (#681; fixed by #1928)

New Features

Language

  • volume command measuring the enclosed area around a given location
    (#1747)
  • sow command for planting growing entities that spread (#1817)
  • Type synonyms (#1865)
  • Recursive types (#1894)
  • Entity tags and related commands (#1635)
  • meetAll command now returns a list (#1999)

Entities + recipes

  • New lens entity and recipe for detonator (#1876)
  • infinite improbability drive device enabling teleport command
    (#1724)
  • Recipes for rolex, olfactometer, dozer blade, and hourglass entities
    (#2028, #2025)

New scenarios

  • Beekeeping scenario (#1599)
  • Fishing scenario (#1628)
  • Dim sum restaurant (#1686)
  • Gallery scenario (#1760)
  • Snake automata (#1699)

Scenario mechanics and authoring improvements

  • Path caching, for more efficient repeated use of the path command (#1595)
  • Render any map to PNG (#1632)
  • Extensible terrain (#1775)
  • Spreadable plant growth (#1817)
  • Exercising commands can consume entities (#1777)
  • Recognize built structures (#1579)
  • Test for point-to-point connectivity (#1721)
  • Validate palettes (#1938), map shape (#1935), subworld references (#1875)

UI enhancements

  • Fix REPL type display (#1610)
  • Handle backword kill word event in REPL (#1861)
  • Make log error messages ephemeral (#1877)
  • Pretty print code blocks according to widget size (#1897)
  • Automatically insert matching close brackets at REPL (#1953)
  • Highlight only the part of the REPL input indicated as the location
    of an error (#1957)
  • Popups for new achievements, recipes, and commands
    (#2027)
  • Save current REPL input with down arrow
    (#2000)
  • Customizable keybindings (#1979)

Command line options

  • format subcommand now tries to preserve comments (#1845)
  • Add format --v0.5 option to port code from older syntax (#1851)
  • keybindings subcommand for displaying and initializing keybinding
    configuration (#1979)
  • docs recipes subcommand now takes --forward and --next flags
    for filtering the output edges (#2033)

Building/packaging

  • Add Windows build to CI (#1974)
  • Native Windows support (#1617)

0.5.0.0

01 Nov 10:20
990195f
Compare
Choose a tag to compare

Bugfixes

  • Fix bug where some pretty-printed terms contained extra elaborated
    terms inserted by @byorgey (#1497)

New Features

Language

New scenarios

New achievements

UI enhancements

Command line options

0.4.0.0

18 Aug 02:38
e5e8ea5
Compare
Choose a tag to compare

Bugfixes

  • Save completion time immediately upon finishing scenario by @xsebek
    (#1118)
  • Fix rightward bleeding of custom attributes by @kostmo (#1137)
  • Recreate GameState from scratch when starting a scenario by @byorgey (#1277)
  • Load persistent state from disk only once and reuse for all integration tests by @byorgey (#1383)
  • Continue parsing the rest of the scenarios in a directory when one fails by @byorgey (#1391)
  • Throw an error instead of crashing on impredicative types by @byorgey (#1418)

New Features

Tutorials

  • Some tutorial improvements, and enforce in CI that commands and entities are introduced before they are required by @kostmo (#1186)

Swarm language

Entities + recipes

  • Make sand a bit harder to get by @byorgey (#1024)
  • New tweezers entity to enable debugging view and single-stepping CESK machine by @xsebek (#1081)
  • ADT calculator description now mentions unit and void types #1226
  • Allow zero-tick recipes to apply immediately by @kostmo (#1272)
  • New hourglass device that provides relative (wait) but not absolute (time) capability by @kostmo (#1261)
  • New binoculars device that provides scout command by @kostmo (#1337)
  • Separate entities to provide each text operation by @kostmo (#1339)

World features

LSP improvements

Web API

Command line options

New scenarios

UI enhancements

Achievements

0.3.0.1

01 Feb 18:52
f7e9271
Compare
Choose a tag to compare

A few critical bug fixes and improvements:

0.3.0.0

31 Jan 10:11
edeecb9
Compare
Choose a tag to compare

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

You can install it with cabal:

cabal install swarm-0.3.0.0

Or using the attached binary and compressed data - in that case please follow the installation guide:
https://github.com/swarm-game/swarm#installing-via-binaries

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 has program field specified by @byorgey in #846
  • Create swarm subdirectories as necessary by @xsebek in #943

New Features

Swarm language

Entities

LSP improvements

Web API

  • Expose REPL history via web interface by @kostmo in #821

Command line options

New scenarios

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

Achievements

Debugging

0.2.0.0

01 Nov 19:51
ca6a4e1
Compare
Choose a tag to compare

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:
      • Expose the last evaluated result as it, and previous results as itN (#734)
      • Allow clicking in the REPL input to move the cursor (#750)
      • Autocomplete entity names in the repl (#798)
      • REPL cursor no longer blinks when REPL panel is not selected (#801)
    • Improve user experience around quitting & moving between tutorial challenges (#754)
      • Add a button to the Quit dialog to restart a scenario. (#767)
      • Use scenario name as Goal dialog title (#774)
    • 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)
  • Bug fixes:
    • Fix bug in the first tutorial challenge that froze the game and ate all memory if the user said anything other than expected (#762, #810)
  • 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

14 Oct 11:21
683508f
Compare
Choose a tag to compare

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
    • Ctrl-D at an empty REPL prompt now triggers a quit (#743)
    • The REPL panel now persists in showing the type of the most recently evaluated expression (#733)

0.1.0.1

06 Oct 19:37
Compare
Choose a tag to compare

A bugfix release for a few minor bugs that plagued the first release:

  • Fall back 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"
  • 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.

You can install this release from Hackage with Cabal:

cabal install swarm-0.1.0.1

0.1.0.0

06 Oct 16:42
53b169e
Compare
Choose a tag to compare

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.

You can install this release from Hackage with Cabal:

cabal install swarm-0.1.0.0