Lerne, wie du 8th lokal installierst, um die Übungen von Exercism auf deinem eigenen Rechner zu lösen
8th wird als alles enthaltende ZIP-Datei verteilt, die Versionen von 8th für alle Plattformen enthält, die von der Version unterstützt werden, die du heruntergeladen hast. Deine 8th-Versionen sind speziell auf dich lizenziert und dürfen nicht weitergegeben werden.
Beginne auf der Seite Get 8th und
Um 8th zu verwenden, musst du die ZIP-Datei in einen beliebigen Ordner entpacken, auf den du zugreifen kannst.
In der ZIP-Datei sind mehrere Ordner enthalten:
| Ordner | Beschreibung |
|---|---|
| bin | Ausführbare 8th-Dateien für alle unterstützten Plattformen |
| docs | Das Handbuch und die Tutorials |
| libs | Unterstützungsbibliotheken von 8th (8th-Code) |
| samples | Beispielcode als Ergänzung zu den Tutorials und zum Handbuch |
| keys | Die Datei 'id.blob' mit deinen Schlüsseln und Registrierungsdaten |
Nutzer von Pro+: Beachte, dass die Verschlüsselungsschlüssel in der id.blob für jede einzelne Version von 8th, die du herunterlädst, einzigartig sind. Sie sind wichtig, wenn du verschlüsselte Anwendungen bauen willst, die du ausrollen kannst. Wenn du 8th aus seinem Distributionspaket herausbewegst und es id.blob nicht finden kann, dann meldet 8th -v den Wert custid: id.blob?, um dich daran zu erinnern, dass es die Identifikationsinformationen nicht finden kann.
Unabhängig davon, auf welcher Plattform du entwickelst, kannst du Anwendungen für jede von 8th unterstützte Plattform erstellen.
Sobald du die ZIP-Datei entpackt hast, kannst du 8th direkt ausführen. Wenn du es zum Beispiel unter 64-Bit-Linux in /opt/8th installiert hast, solltest du /opt/8th/bin/lin64/8th mit beliebigen Parametern eingeben können, und es sollte korrekt funktionieren. Auf macOS oder Windows machst du es ähnlich.
Wenn du den Ordner der 8th-Binärdatei zur PATH-Umgebungsvariable deines Systems hinzufügst, kannst du einfach 8th eingeben, statt den vollständigen Pfad dazu zu tippen.
8th selbst ist ein Kommandozeilenprogramm. Es ist nicht dafür gedacht, durch Anklicken eines Symbols auf dem Desktop gestartet zu werden. Du kannst damit normale GUI-Programme erstellen, die sich so starten lassen, aber der 8th-Compiler selbst ist ein Programm für die Kommandozeile (CLI).
Wenn du unter Windows arbeitest und eine MSys- oder Cygwin-Shell verwendest, brauchst du möglicherweise zusätzlich das frei verfügbare Programm winpty, damit deine Konsolenprogramme richtig funktionieren. Neuere Versionen von Windows 10 scheinen das nicht mehr zu benötigen.
Wenn du auf MacOS arbeitest, lies diesen Thread im 8th-Forum.
Die 8th-Kommandozeile sieht so aus:
8th [options] [[-f] file...] [-e 'code'...]
Dabei bedeutet die Option [-f] file „den Inhalt der Datei interpretieren" und -e code „diesen speziellen 8th-Code interpretieren". Beide Optionen dürfen auf der Kommandozeile mehr als einmal angegeben werden, und ihre Wirkung summiert sich. Mit anderen Worten:
8th -f first.8th -f second.8th
interpretiert den Inhalt der Datei first.8th und danach den Inhalt der Datei second.8th. Beachte, dass du nicht 8th -f first.8th eingeben musst, wenn du nur eine einzelne 8th-Datei ausführen willst; du kannst stattdessen einfach 8th first.8th eingeben.
Hier sind alle Kommandozeilenoptionen, die 8th versteht:
| Option | Beschreibung |
|---|---|
| -b | Ruft das Hilfsprogramm bin/build auf |
| -D dir | Legt das Home-Verzeichnis auf dir fest (Standard ist betriebssystemabhängig) |
| -e str | Interpretiert die Zeichenkette str als 8th-Code |
| -ee str | Interpretiert die Zeichenkette str als 8th-Code und beendet danach |
| -f nm | Interpretiert die Datei namens nm |
| -g | Aktiviert SED-Debug und -Überprüfung |
| -G | Legt die erforderliche GL-Version fest (z. B. 3.1) |
| -h | Zeigt die Hilfe an |
| -H N | Legt die Größe der Konsolen-Historie auf N Zeilen fest (Standard: 100) |
| -k N | Legt die Größe des Daten- und des r-Stacks auf N Elemente fest (Standard: 128K) |
| -l | Mehr Debugging-Informationen |
| -r N | Legt die Größe des Callback-Daten-Stacks auf N Elemente fest (Standard: 256) |
| -s N | Legt die Größe des Rekursionsstacks auf N Bytes fest (Standard: 0, das bedeutet Systemstandard) |
| -S | Listet die erkannten SDL-Treiber auf und beendet |
| -v | Gibt die 8th-Version aus und beendet |
| -vv | Wie -v, aber mit zusätzlichen Informationen zum Debuggen |
| -x | Schaltet die Überprüfung von Stack-Typ und -Grenzen ab |
| -z | Schaltet die Zählung der Datenelemente ein |
| -Z | Wie -z, aber die Bibliothek 'debug/allocs' wird eingebunden |
| -? nm | Gibt die Hilfe für das Element 'nm' aus |
| -- | Signalisiert das Ende der 8th-Optionen |
Im Allgemeinen solltest du die Optionen -k, -r und -s nicht brauchen; sie sind für den Fall gedacht, dass du sie nützlich findest, zum Beispiel wenn 128K Elemente auf einmal auf dem Stack zu wenige sind (um ehrlich zu sein: wenn das der Fall ist, solltest du deinen Algorithmus ändern ...).
Wenn du merkst, dass du Kommandozeilenoptionen oft verwendest, kannst du einfach ein „Shell-Skript" (unter macOS oder Linux) oder eine „Batchdatei" (unter Windows; auch „Befehlsdatei" genannt) verwenden, um 8th mit deinen bevorzugten Optionen zu starten.
Du kannst im Ordner app:datadir auch eine 8th-Quelldatei namens settings.8th anlegen. Wenn sie vorhanden ist, lädt die 8th-REPL sie beim Start und gibt eine entsprechende Meldung aus. Aus Sicherheitsgründen wird in einer gepackten Anwendung nicht nach dieser Datei gesucht und sie wird auch nicht geladen.
Um 8th zu beenden, kannst du eine der folgenden Möglichkeiten nutzen:
bye ein und drücke ENTER. Damit weist du 8th an, normal zu beenden.1 die ein und drücke ENTER. Damit weist du 8th an, mit einem Fehlerstatus zu beenden und den Statuscode 1 an das Betriebssystem zurückzugeben.throw eine Ausnahme aus. Wenn du von der 8th-Konsole aus arbeitest, landest du in den meisten Fällen wieder dort; wenn du eine Datei oder eine gepackte Anwendung ausführst, wird eine Meldung ausgegeben und die Anwendung beendet.8th kann deine Programme in mehreren Modi ausführen:
| Modus | Beschreibung |
|---|---|
| interaktiv | Starte einfach 8th und tippe deinen Code in die Konsole |
| Skript | Schreibe deinen Code in eine Textdatei und führe ihn zum Beispiel mit 8th mycode.8th aus. Siehe den Tipp unten ... |
| App | Verwandle deinen Code mit dem Build-Skript (oder der Kommandozeilenoption -b) in eine gepackte Anwendung |
Nutzer von Pro+: Du kannst verschlüsselte Anwendungen erstellen, um Hacker und andere böswillige Akteure abzuschrecken.
In den beiden letztgenannten Szenarien muss dein Code in Nur-Text-Dateien vorliegen (also nicht in einem Textverarbeitungsformat). Alle unterstützenden Dateien sollten im selben Ordner wie dein Code oder in einem Unterordner davon liegen. Du kannst in 8th auf diese anderen Dateien zugreifen, indem du app:asset aufrufst.
Eine „App" ist ein eigenständiges Programm, das wie jedes andere Programm für die Zielplattform für sich allein läuft und nicht von 8th über die Kommandozeile ausgeführt werden muss. Der Inhalt kann verschlüsselt sein, um Hacker abzuschrecken, wie oben erwähnt. Einzelheiten zum Erstellen eigenständiger Anwendungen findest du im Abschnitt über die Verwendung des Build-Tools.
Tipp: Wenn du auf macOS-, Linux- oder RPI-Systemen arbeitest, kannst du dein Skript wie einen normalen Systembefehl ausführbar machen:
chmod +x scriptname
#! /usr/bin/env 8th
Das funktioniert auch mit gepackten Appdata. Wenn du also bin/build verwendet hast, um eine ausführbare Datei zu erstellen, kannst du die von ihr erzeugten Appdata auf dieselbe Weise verwenden:
cat - path/to/appdata > newappdata
#! /usr/bin/env 8th<ENTER><CTRL+D>
chmod +x newappdata