Apprends à installer 8th en local pour résoudre les exercices d'Exercism sur ta propre machine
8th est distribué dans un fichier ZIP tout-en-un, qui contient les versions d'8th pour toutes les plateformes prises en charge par la version que tu as téléchargée. Tes versions d'8th te sont concédées sous licence à titre personnel et ne peuvent pas être partagées.
À partir de la page Get 8th,
Pour pouvoir utiliser 8th, tu devras décompresser le fichier zip dans n'importe quel dossier auquel tu as accès.
Le zip contient un certain nombre de dossiers :
| dossier | description |
|---|---|
| bin | les exécutables d'8th pour toutes les plateformes prises en charge |
| docs | le manuel et les tutoriels |
| libs | les bibliothèques de support d'8th (du code 8th) |
| samples | du code d'exemple pour compléter les tutoriels et le manuel |
| keys | le fichier 'id.blob' contenant tes clés et tes informations d'inscription |
Utilisateurs Pro+ : note que les clés de chiffrement contenues dans id.blob sont propres à chaque version d'8th que tu télécharges, et qu'elles sont importantes pour construire des applications chiffrées et déployables. Si tu déplaces 8th en dehors de son paquet de distribution et qu'il ne trouve pas id.blob, alors si tu lances 8th -v, il indiquera custid: id.blob? pour te rappeler qu'il ne trouve pas les informations d'identification.
Quelle que soit la plateforme sur laquelle tu développes, tu peux produire des applications pour toutes les plateformes prises en charge par 8th.
Une fois le fichier zip décompressé, tu peux lancer 8th directement. Par exemple, si tu l'as installé dans /opt/8th sur un Linux 64 bits, tu devrais pouvoir taper /opt/8th/bin/lin64/8th avec les paramètres que tu veux, et ça devrait fonctionner correctement. Fais la même chose sous macOS ou Windows.
Ajouter le dossier du binaire 8th à la variable d'environnement PATH de ton système te permettra de simplement taper 8th au lieu de saisir le chemin complet.
8th est en soi un programme en ligne de commande : il n'est pas prévu pour être lancé en cliquant sur une icône du bureau. Tu peux créer avec lui des programmes à interface graphique classiques, qui eux peuvent se lancer de cette façon, mais le compilateur 8th lui-même est un programme en ligne de commande (CLI, autrement dit une interface en ligne de commande).
Si tu utilises Windows et que tu travailles dans un shell MSys ou Cygwin, tu devras peut-être aussi utiliser le programme winpty, disponible gratuitement, pour que tes programmes en mode console fonctionnent correctement. Les versions récentes de Windows 10 ne semblent pas en avoir besoin.
Si tu utilises macOS, lis ce fil de discussion du forum 8th.
La ligne de commande d'8th ressemble à ceci :
8th [options] [[-f] file...] [-e 'code'...]
Ici, l'option [-f] file signifie « interpréter le contenu du fichier », et -e code signifie « interpréter ce code 8th précis ». Ces deux options peuvent être données plusieurs fois sur la ligne de commande, et leur effet est cumulatif. Autrement dit :
8th -f first.8th -f second.8th
interprétera le contenu du fichier first.8th, puis le contenu du fichier second.8th. Note que si tu veux simplement exécuter un seul fichier 8th, tu n'as pas besoin d'écrire 8th -f first.8th : tu peux juste taper 8th first.8th.
Voici toutes les options de ligne de commande que 8th comprend :
| option | description |
|---|---|
| -b | lance l'utilitaire bin/build |
| -D dir | définit le homedir sur dir (la valeur par défaut dépend du système d'exploitation) |
| -e str | interprète la string str comme du code 8th |
| -ee str | interprète la string str comme du code 8th, puis quitte |
| -f nm | interprète le fichier nommé nm |
| -g | active le débogage et les vérifications SED |
| -G | définit la version de GL requise (par ex. 3.1) |
| -h | affiche l'aide |
| -H N | définit la taille de l'historique de la console à N lignes (par défaut : 100) |
| -k N | définit la taille des piles de données et r-stack à N éléments (par défaut : 128K) |
| -l | davantage d'informations de débogage |
| -r N | définit la taille de la pile de données des callbacks à N éléments (par défaut : 256) |
| -s N | définit la taille de la pile de récursion à N octets (par défaut : 0, ce qui signifie la valeur par défaut du système) |
| -S | liste les pilotes SDL détectés, puis quitte |
| -v | affiche la version d'8th, puis quitte |
| -vv | identique à -v, mais avec des informations supplémentaires à des fins de débogage |
| -x | désactive la vérification des types et des bornes de la pile |
| -z | active le comptage des éléments de données |
| -Z | comme -z, mais inclut la bibliothèque 'debug/allocs' |
| -? nm | affiche l'aide pour l'élément 'nm' |
| -- | signale la fin des options d'8th |
En général, tu ne devrais pas avoir besoin des options -k, -r ou -s ; elles sont fournies au cas où tu les trouverais utiles, par exemple si 128K éléments sur la pile en même temps, c'est trop peu (honnêtement, si c'est le cas, tu devrais changer d'algorithme...).
Si tu te rends compte que tu utilises souvent des options en ligne de commande, tu peux simplement écrire un « shell script » (sous macOS ou Linux) ou un « batch file » (sous Windows ; aussi appelé « command file ») pour lancer 8th avec les options que tu préfères.
Tu peux aussi créer un fichier source 8th dans le dossier app:datadir, nommé settings.8th. S'il est présent, le REPL d'8th le chargera au démarrage et affichera un message en ce sens. Pour des raisons de sécurité, ce fichier ne sera ni recherché ni chargé dans une application packagée.
Pour quitter 8th, tu peux faire l'une des choses suivantes :
bye et appuie sur Entrée. Cela demande à 8th de quitter normalement1 die et appuie sur Entrée. Cela demande à 8th de quitter anormalement et de renvoyer le code de statut 1 au système d'exploitationthrow provoque une exception. Si tu lances tout depuis la console d'8th, tu y reviendras dans la plupart des cas ; si tu exécutes un fichier ou une application packagée, un message sera affiché et l'application sera arrêtée.8th peut exécuter tes programmes de plusieurs façons :
| mode | description |
|---|---|
| interactive | lance simplement 8th et tape ton code dans la console |
| script | mets ton code dans un fichier texte et exécute-le avec 8th mycode.8th (par exemple). Voir l'astuce ci-dessous... |
| app | convertis ton code en une application packagée à l'aide du script build (ou de l'option -b en ligne de commande) |
Utilisateurs Pro+ : tu peux créer des applications chiffrées pour dissuader les pirates et autres individus malveillants.
Dans les deux derniers cas, ton code doit se trouver dans des fichiers en texte brut (par exemple, pas dans un format de traitement de texte). Les fichiers annexes doivent être placés dans le même dossier que ton code, ou dans un sous-dossier de celui-ci. Tu peux accéder à ces autres fichiers en 8th en appelant app:asset.
Une « app » est un programme autonome qui s'exécute tout seul comme n'importe quel autre programme de la plateforme cible, et qui n'a pas besoin d'être lancé par 8th en ligne de commande. Comme indiqué plus haut, son contenu peut être chiffré pour dissuader les pirates. Les détails de la création d'applications autonomes se trouvent dans la section consacrée à l'utilisation de l'outil de build.
Astuce : si tu utilises macOS, Linux ou un système RPI, tu peux faire en sorte que ton script s'exécute comme une commande système classique :
chmod +x scriptname
#! /usr/bin/env 8th
Cela fonctionne aussi avec une appdata packagée : si tu as utilisé bin/build pour créer un exécutable, tu peux utiliser l'appdata qu'il a produite de la même manière, en faisant :
cat - path/to/appdata > newappdata
#! /usr/bin/env 8th<ENTER><CTRL+D>
chmod +x newappdata