Installare 8th in locale

Scopri come installare 8th in locale per risolvere gli esercizi di Exercism sulla tua macchina


Installare 8th

8th è distribuito in un unico file ZIP che contiene le versioni di 8th per tutte le piattaforme supportate dalla versione che hai scaricato. Le tue versioni di 8th sono concesse in licenza specificamente a te e non possono essere condivise.

Ottenere il file zip

Partendo dalla pagina Get 8th,

  • compila il modulo con il tuo nome e la tua email e seleziona la versione Free. Devi accettare la licenza di 8th.
  • 8th-dev ti invierà un'email per verificarti. Clicca il link nell'email di registrazione.
  • 8th-dev preparerà per te un file zip unico e ti invierà un'email al riguardo. Cerca il link "download here" in quell'email.

Installazione

Per usare 8th, dovrai scompattare il file zip in una cartella qualsiasi a cui hai accesso.

Nel file zip sono incluse diverse cartelle:

cartella descrizione
bin Eseguibili di 8th per tutte le piattaforme supportate
docs Il manuale ed i tutorial
libs Librerie di supporto di 8th (codice 8th)
samples Codice di esempio a corredo dei tutorial e del manuale
keys Il file 'id.blob' che contiene le tue chiavi e le informazioni di registrazione

Utenti Pro+: nota che le chiavi di crittografia in id.blob sono uniche per ogni specifica versione di 8th che scarichi e sono importanti per creare applicazioni crittografate da rilasciare. Se sposti 8th fuori dal suo pacchetto di distribuzione e non riesce a trovare id.blob, allora se esegui 8th -v segnalerà custid: id.blob? come promemoria del fatto che non riesce a trovare le informazioni di identificazione.

Indipendentemente dalla piattaforma su cui sviluppi, puoi produrre applicazioni per qualsiasi piattaforma supportata da 8th.

Dopo aver scompattato il file zip, puoi eseguire 8th direttamente. Ad esempio, se lo hai installato in /opt/8th su Linux a 64 bit, dovresti riuscire a digitare /opt/8th/bin/lin64/8th con i parametri che preferisci e dovrebbe funzionare correttamente. Fai qualcosa di simile su macOS o Windows.

Aggiungere la cartella del binario di 8th alla variabile d'ambiente PATH del tuo sistema ti permetterà di digitare semplicemente 8th invece di scrivere tutto il percorso.

Usare 8th

8th è di per sé un programma a riga di comando: non è pensato per essere avviato cliccando su un'icona del desktop. Con esso puoi creare normali programmi con interfaccia grafica che si possono avviare in quel modo, ma il compilatore di 8th è di per sé un programma CLI (interfaccia a riga di comando).

Se usi Windows e una shell MSys o Cygwin, potresti anche aver bisogno del programma winpty, disponibile gratuitamente, perché i tuoi programmi in modalità console funzionino correttamente. Le versioni recenti di Windows 10 non sembrano richiederlo.

Se usi MacOS, leggi questo thread del forum di 8th.

La riga di comando di 8th è questa:

8th [options] [[-f] file...] [-e 'code'...]

Dove l'opzione [-f] file significa «interpretare il contenuto del file», e -e code significa «interpretare quel preciso codice 8th». Entrambe le opzioni possono essere indicate più di una volta sulla riga di comando e l'effetto è cumulativo. In altre parole:

8th -f first.8th -f second.8th

interpreterà il contenuto del file first.8th e poi il contenuto del file second.8th. Nota che se vuoi eseguire un solo file 8th, non devi scrivere 8th -f first.8th: puoi invece digitare semplicemente 8th first.8th.

Ecco tutte le opzioni della riga di comando che 8th comprende:

opzione descrizione
-b Richiama l'utilità bin/build
-D dir imposta la homedir su dir (il valore predefinito dipende dal sistema operativo)
-e str Interpreta la stringa str come codice 8th
-ee str Interpreta la stringa str come codice 8th e poi termina
-f nm Interpreta il file chiamato nm
-g Abilita il debug/controllo SED
-G Imposta la versione di GL richiesta (ad es. 3.1)
-h Mostra la guida
-H N Imposta la dimensione della cronologia della console su N righe (predefinito: 100)
-k N Imposta le dimensioni dello stack dati e dello stack r su N elementi (predefinito: 128K)
-l Più informazioni di debug
-r N Imposta la dimensione dello stack dati delle callback su N elementi (predefinito: 256)
-s N Imposta la dimensione dello stack di ricorsione su N byte (predefinito: 0, che significa valore predefinito del sistema)
-S Elenca i driver SDL rilevati e termina
-v Stampa la versione di 8th e termina
-vv Come -v, ma con informazioni aggiuntive per il debug
-x Disattiva il controllo dei tipi e dei limiti dello stack
-z Attiva il conteggio degli elementi dati
-Z Come -z, ma include la libreria 'debug/allocs'
-? nm Stampa la guida per l'elemento 'nm'
-- Segnala la fine delle opzioni di 8th

In generale non dovresti aver bisogno di usare le opzioni -k, -r o -s; sono fornite nel caso ti risultino utili, ad esempio se 128K elementi sullo stack in una sola volta sono troppo pochi (a dire il vero, se è così dovresti cambiare algoritmo...).

Se ti accorgi di usare spesso le opzioni della riga di comando, puoi semplicemente usare uno «shell script» (su macOS o Linux) o un «batch file» (su Windows, chiamato anche «command file») per avviare 8th con le opzioni che preferisci.

Puoi anche creare un file sorgente di 8th nella cartella app:datadir, chiamato settings.8th. Se è presente, il REPL di 8th lo caricherà all'avvio e stamperà un messaggio in tal senso. Per motivi di sicurezza, quel file non verrà cercato né caricato in un'app pacchettizzata.

Per uscire da 8th, fai una delle seguenti cose:

  • Digita bye e premi INVIO. Questo dirà a 8th di uscire normalmente
  • Digita 1 die e premi INVIO. Questo dirà a 8th di uscire in modo anomalo e di restituire al sistema operativo il codice di stato 1
  • Premi due volte in rapida successione il tasto Ctrl+C, oppure una volta Ctrl+D. In entrambi i casi 8th esce immediatamente
  • In un'applicazione in esecuzione, chiamare throw provocherà un'eccezione. Se stai eseguendo dalla console di 8th, nella maggior parte dei casi tornerai lì; se stai eseguendo un file o un'applicazione pacchettizzata, verrà stampato un messaggio e l'app verrà terminata.

Eseguire i programmi di 8th

8th può eseguire i tuoi programmi in diverse modalità:

modalità descrizione
interactive avvia semplicemente 8th e digita il tuo codice nella console
script metti il tuo codice in un file di testo ed eseguilo con 8th mycode.8th (per esempio). Vedi il suggerimento qui sotto...
app converti il tuo codice in un'applicazione pacchettizzata usando lo script di build (o l'opzione -b della riga di comando)

Utenti Pro+: puoi creare applicazioni crittografate per scoraggiare gli hacker e le altre parti malintenzionate

Nei due scenari successivi, il tuo codice deve trovarsi in file di testo semplice (ad esempio, non in un formato di videoscrittura). Gli eventuali file di supporto vanno collocati nella stessa cartella del tuo codice, o in una sua sottocartella. In 8th puoi accedere a quegli altri file chiamando app:asset.

Un «app» è un programma autonomo che si esegue da solo come qualsiasi altro programma per la piattaforma di destinazione e non ha bisogno di essere eseguito da 8th dalla riga di comando. Il contenuto può essere crittografato per scoraggiare gli hacker, come accennato sopra. I dettagli per produrre applicazioni autonome si trovano nella sezione sull'uso dello strumento di build.

Suggerimento: se usi macOS, Linux o sistemi RPI, puoi far eseguire il tuo script come un normale comando di sistema:

  • Rendendo eseguibile il file: chmod +x scriptname
  • Mettendo come prima riga del tuo codice: #! /usr/bin/env 8th
  • Assicurandoti che un eseguibile di 8th adatto sia nel tuo PATH

Funzionerà anche con appdata pacchettizzati, quindi se hai usato bin/build per creare un eseguibile puoi usare allo stesso modo l'appdata che ha creato, facendo così:

cat - path/to/appdata > newappdata
#! /usr/bin/env 8th<ENTER><CTRL+D>
chmod +x newappdata