Aprende a instalar o 8th localmente para resolveres os exercícios do Exercism na tua própria máquina
O 8th é distribuído num ficheiro ZIP que inclui tudo, com versões do 8th para todas as plataformas suportadas pela versão que descarregaste. As tuas versões do 8th são licenciadas especificamente para ti e não podem ser partilhadas.
Começando na página Obter o 8th,
Para usares o 8th, tens de descomprimir o ficheiro zip para uma pasta a que tenhas acesso.
O zip inclui várias pastas:
| pasta | descrição |
|---|---|
| bin | executáveis do 8th para todas as plataformas suportadas |
| docs | O manual e os tutoriais |
| libs | Bibliotecas de suporte do 8th (código 8th) |
| samples | Código de exemplo para complementar os tutoriais e o manual |
| keys | O 'id.blob' com as tuas chaves e a tua informação de registo |
Utilizadores Pro+: repara que as chaves de encriptação no id.blob são únicas para cada versão específica do 8th que descarregares, e são importantes para construir aplicações encriptadas prontas a publicar. Se moveres o 8th para fora do seu pacote de distribuição e ele não conseguir encontrar o id.blob , então, se fizeres 8th -v , ele indica custid: id.blob? como lembrete de que não consegue encontrar a informação de identificação.
Independentemente da plataforma em que desenvolvas, podes produzir aplicações para qualquer plataforma suportada pelo 8th.
Depois de descomprimires o ficheiro zip, podes executar o 8th diretamente. Por exemplo, se o instalaste em /opt/8th no Linux de 64 bits, deves conseguir escrever /opt/8th/bin/lin64/8th com os parâmetros que quiseres, e deve funcionar corretamente. Faz algo semelhante no macOS ou no Windows.
Se adicionares a pasta do binário do 8th à variável de ambiente PATH do teu sistema, passas a poder escrever simplesmente 8th em vez de escrever o caminho completo até ele.
O próprio 8th é um programa de linha de comandos: não foi pensado para ser iniciado com um clique num ícone do ambiente de trabalho. Podes criar programas com interface gráfica normais que podem ser iniciados dessa forma, mas o próprio compilador do 8th é um programa de CLI (interface de linha de comandos).
Se estiveres a usar o Windows e uma shell MSys ou Cygwin, podes também precisar do programa winpty, disponível gratuitamente, para que os teus programas em modo consola funcionem corretamente. As versões recentes do Windows 10 parecem não precisar disso.
Se estiveres a usar o macOS, lê este tópico do fórum do 8th.
A linha de comandos do 8th é assim:
8th [options] [[-f] file...] [-e 'code'...]
Em que a opção [-f] file significa "interpretar o conteúdo do ficheiro", e -e code significa "interpretar esse código 8th específico". Ambas as opções podem ser indicadas mais do que uma vez na linha de comandos, e o efeito é cumulativo. Por outras palavras:
8th -f first.8th -f second.8th
vai interpretar o conteúdo do ficheiro first.8th e depois interpretar o conteúdo do ficheiro second.8th . Nota que, se quiseres executar apenas um ficheiro 8th, não precisas de escrever 8th -f first.8th , podes simplesmente escrever 8th first.8th .
Aqui estão todas as opções de CLI que o 8th compreende:
| opção | descrição |
|---|---|
| -b | Invoca o utilitário bin/build |
| -D dir | define o homedir como dir (o valor por omissão depende do sistema operativo) |
| -e str | Interpreta a string str como código 8th |
| -ee str | Interpreta a string str como código 8th e sai de seguida |
| -f nm | Interpreta o ficheiro chamado nm |
| -g | Ativa a depuração/verificação do SED |
| -G | Define a versão de GL necessária (por exemplo, 3.1) |
| -h | Mostra a ajuda |
| -H N | Define o tamanho do histórico da consola para N linhas (por omissão: 100) |
| -k N | Define o tamanho da pilha de dados e da r-stack para N itens (por omissão: 128K) |
| -l | Mais informação de depuração |
| -r N | Define o tamanho da pilha de dados de callback para N itens (por omissão: 256) |
| -s N | Define o tamanho da pilha de recursão para N bytes (por omissão: 0, ou seja, a predefinição do sistema) |
| -S | Lista os controladores SDL detetados e sai |
| -v | Mostra a versão do 8th e sai |
| -vv | O mesmo que -v, mas com informação adicional para fins de depuração |
| -x | Desativa a verificação de tipos e de limites da pilha |
| -z | Ativa a contagem de itens de dados |
| -Z | Como -z, mas inclui a biblioteca 'debug/allocs' |
| -? nm | Mostra a ajuda para o item 'nm' |
| -- | Assinala o fim das opções do 8th |
Em geral, não deves precisar de usar as opções -k , -r ou -s ; são fornecidas caso as consideres úteis, por exemplo se 128K itens na pilha ao mesmo tempo for demasiado pouco (sinceramente, se for esse o caso, deves mudar o teu algoritmo...).
Se deres por ti a usar frequentemente opções de linha de comandos, podes simplesmente usar um "script de shell" (no macOS ou no Linux) ou um "ficheiro batch" (no Windows; também chamado "ficheiro de comandos") para iniciar o 8th com as opções que preferires.
Também podes criar um ficheiro de código-fonte 8th na pasta app:datadir , com o nome settings.8th . Se estiver presente, o REPL do 8th carrega-o no arranque e mostra uma mensagem nesse sentido. Por razões de segurança, esse ficheiro não é procurado nem carregado numa aplicação empacotada.
Para sair do 8th, faz uma das seguintes coisas:
bye e prime ENTER . Isso diz ao 8th para sair normalmente1 die e prime ENTER . Isso diz ao 8th para sair de forma anormal e devolver o código de estado 1 ao sistema operativothrow provoca uma exceção. Se estiveres a correr a partir da consola do 8th, na maioria dos casos voltas para lá; se estiveres a correr um ficheiro ou uma aplicação empacotada, é mostrada uma mensagem e a aplicação é terminada.O 8th pode executar os teus programas de várias formas:
| modo | descrição |
|---|---|
| interativo | basta iniciar o 8th e escrever o teu código na consola |
| script | coloca o teu código num ficheiro de texto e executa-o com 8th mycode.8th (por exemplo). Vê a dica abaixo... |
| app | converte o teu código numa aplicação empacotada com o script de build (ou a opção de CLI -b) |
Utilizadores Pro+: podem criar aplicações encriptadas para ajudar a dissuadir hackers e outros intervenientes mal-intencionados
Nos dois últimos cenários, o teu código tem de estar em ficheiros de texto simples (por exemplo, não num formato de processamento de texto). Quaisquer ficheiros de apoio devem ser colocados na mesma pasta do teu código, ou numa subpasta dela. Podes aceder a esses outros ficheiros no 8th invocando app:asset .
Uma "app" é um programa autónomo que funciona por si só, como qualquer outro programa da plataforma de destino, e não precisa de ser executado pelo 8th através da linha de comandos. O conteúdo pode ser encriptado para ajudar a dissuadir hackers, como referido acima. Os detalhes sobre como produzir aplicações autónomas encontram-se na secção sobre a utilização da ferramenta de build.
Dica: se estiveres a correr em macOS, Linux ou sistemas RPI, podes fazer com que o teu script funcione como um comando normal do sistema:
chmod +x scriptname
#! /usr/bin/env 8th
Isto também funciona com appdata empacotado, por isso, se usaste bin/build para criar um executável, podes usar o appdata que ele criou da mesma forma, fazendo:
cat - path/to/appdata > newappdata
#! /usr/bin/env 8th<ENTER><CTRL+D>
chmod +x newappdata