mikesperber / icfp2020

Material for ICFP 2020 tutorial on functional software architecture

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Preparation

If you have a working Haskell/Cabal setup, things might just work. There's also a working Nix configuration, which at this point requires a recent nix-unstable channel, however.

Otherwise:

  • install Docker
  • give Docker at least 6GB RAM where relevant
  • in the docker-ghcide directory, say do docker build -t ghcide . (this might take a while)
  • install Visual Studio Code
  • install VS Code Extension "Remote - Containers"
  • select "View" -> "Command Palette" (some modifiers + P), type "containers", select"Remote - Containers: Open Folder in Container"
  • open the hearts directory

VS Code will then construct a container to do its business. That might also take while.

Starting the Game

Console

The Sync module has two functions gameAlong and gameInteractive. (Very rudimentary.)

UI version

  • in the hearts directory, run ./docker-shell.sh to start a suitable shell in a Docker container

  • inside the Docker container, do cabal build to build the server

  • inside the Docker container, do ./run-server-inside-docker.sh to start the server

  • outside the Docker container:

  • install Elm

  • cd to hearts-frontend, do:

elm reactor

About

Material for ICFP 2020 tutorial on functional software architecture


Languages

Language:Haskell 59.3%Language:Elm 38.9%Language:Shell 0.8%Language:Nix 0.8%Language:Dockerfile 0.2%