Skip to content

Latest commit

 

History

History
120 lines (88 loc) · 4.59 KB

README.md

File metadata and controls

120 lines (88 loc) · 4.59 KB

FUNAR Mai 2024

Technische Vorbereitung

Bei der Schulung ist es sinnvoll, den Code nachzuvollziehen bzw. eigenen zu schreiben.

Vorkurs

Für den Vorkurs bitte Racket installieren, mindestens Version 8.7:

https://download.racket-lang.org/

Hauptteil

Je nach Betriebssystem haben sich unterschiedliche Installationsmethoden als universell brauchbar herauskristallisiert. Die Windows-Variante baut auf Docker auf und sollte grundsätzlich auch auf Linux funktionieren, hat aber in der Vergangenheit in speziellen Setups Probleme durch UID-Mapping bereitet.

Via Docker (Windows, macOS, Linux, ...)

  • Docker installieren
  • für macOS und Windows: der Docker-VM ggf. mindestens 6GB Speicher geben
  • Visual Studio Code installieren
  • die Extension "Dev Containers" (ms-vscode-remote.remote-containers) installieren: Auf das Extensions-Icon links klicken, nach "Containers" suchen, "Dev Containers" anwählen, auf "Install" klicken
  • auf das Datei-Icon links oben klicken
  • oben im Menü "View" -> "Command Palette", dort "containers" tippen, "Remote - Containers: Open Folder in Container" selektieren
  • das Top-Level-Verzeichnis (Ort des geklonten Repos) selektieren

Da sollte jetzt eine Meldung erscheinen, dass ein Docker-Image gebaut bzw. geladen wird. Das kann eine Weile dauern, sollte aber ohne Fehlermeldung vonstatten gehen.

  • In der Datei haskell-code/Intro.hs das module verunstalten (z. B. einen Buchstaben entfernen)

Nach etwas initialer Ladezeit sollten in der Datei Anmerkungen des Linters erscheinen.

UID-Remapping-Problem (u. U. nur Linux)

Falls im Docker-Container Berechtigungsprobleme auftreten, kann es helfen, das Image bauen zu lassen (statt herunterzuladen). Dazu:

  • In devcontainer.json statt "image" die Zeile mit "dockerFile" einkommentieren
  • Im Dockerfile im dokumentierten Abschnitt die 1000 durch die jeweils eigene UID und GID ersetzen
  • VSCode neustarten und den Ordner wieder im Container öffnen -> es sollte nun ein Image frisch gebaut werden, was etwas dauert

Via Nix-Installation (Linux, macOS, vmtl. WSL2)

  • Die Single-User-Variante von Nix installieren (Multi-User funktioniert auch, ist aber schwieriger wieder vom System zu entfernen, falls man das möchte)

  • Flakes einschalten: in der Regel bedeutet das, in ~/.config/nix/nix.conf die folgende Zeile einzutragen:

    experimental-features = nix-command flakes
    
  • cd <path-to>/funar

  • nix develop .#withVSCode ausführen -> Sie befinden sich nun in einer projektspezifischen, entsprechend gekennzeichneten Umgebung

  • Mit code . VSCode in diesem Ordner öffnen

  • In der Datei haskell-code/Intro.hs das module verunstalten (z. B. einen Buchstaben beim where entfernen)

  • Nach etwas Wartezeit (in der unteren Leiste sollte "Processing" oder ähnlich zu sehen sein) sollte etwas rot unterschlängelt werden

Anmerkungen
  • Falls Sie Ihr "eigenes" VSCode nutzen möchten (auf eigene Gefahr), schreiben Sie bitte einfach nix develop (lassen also das .#withVSCode weg). Sie benötigen dann noch die Extension haskell.haskell.
  • Diese Instruktionen funktionieren auch auf macOS, allerdings ist dort keine Single-User-Installation von Nix (mehr) möglich.

Fallback: Gitpod

Falls lokale Installationen (z. B. Docker) nicht funktionieren oder nicht erlaubt sind, ist Gitpod eine mögliche Alternative. Bei Klick auf den Button öffnet sich eine browserbasierte VSCode-Umgebung, in der FUNAR lauffähig sein sollte. Falls ein Popup erscheint, das fragt, wie der Haskell-Language-Server gefunden werden soll, dann bitte "Manually via PATH" auswählen!

Open in Gitpod

Bei Problemen:

... bitte Mike Sperber kontaktieren.

Elm

Falls Model-View-Update drankommt, werden wir Elm brauchen. Anleitung zur Installation hier:

https://guide.elm-lang.org/install/

Falls Sie nix verwenden, dann ist elm bereits in der Entwicklungsumgebung (nix develop) vorhanden.

Literatur