- 1Instalar e rodar o primeiro arquivo
um
.dfque roda na sua máquina, e o REPL para experimentar - 2
- 3Decidir e repetir
exercícios →given/orif/otherwise,cycle,persist— e por quecycletem escopo próprio - 4Coleções, fatias e compreensões
cluster e vault,
exercícios →[expr cycle x in xs given cond], spread e desestruturação - 5
- 6Erros que dizem o que fazer
exercícios →monitor/handle/ensure,trigger,defer— e as 215 classes do catálogo - 7As ferramentas de linha de comando
check,fmt,lint,test— o analisador acusa antes de rodar
Roadmap
O mapa da linguagem
Duas perguntas que a documentação, lida página a página, não responde: por onde eu começo e o que esta linguagem é por dentro. Abaixo, sete trilhas e três mapas.
Os mapas mostram o que não existe junto com o que existe — e é isso que os separa de propaganda. Os números saem de Arcane.Ecossistema, que confere cada componente contra o disco nas duas direções: o que o mapa cita e sumiu, e o módulo que existe e nenhum componente reivindica.
- módulos
- 76
- símbolos
- 2134
- comandos
- 63
- componentes
- 41
A arquitetura, em três dimensões
Arraste para girar, clique num ponto para abrir o que ele é. A posição de cada nó é determinística — a mesma peça fica sempre no mesmo lugar, porque um mapa que muda de forma a cada recarregamento não é um mapa.
arraste para girar · clique num ponto
As dez fases por que passa um arquivo `.df`. A décima é medida em zero e marcada como não percorrida — executar é o que o programa faz, e um arquivo de verdade abre soquete e escreve em disco.
O que não existe
Esta lista sai de Arcane.Ecossistema.o_que_nao_existe(), e por isso ela encolhe sozinha quando um item passa a existir. Escrita à mão, ela envelheceria exatamente no dia em que alguém implementasse um deles — e ninguém apaga a linha que diz que o próprio trabalho não estava feito.
LLVM Backend
dfc — o compiladoremitir IR do LLVM e deixa-lo gerar codigo nativo
No lugar dele: o backend e 'compilador.py': a arvore e percorrida uma vez e vira fechamentos Python, o que tira o despacho do caminho quente. Medido: 1,5x a 1,8x
Code Generator
dfc — o compiladoremitir codigo de maquina
No lugar dele: nao ha. O que sai do compilador e um fechamento, e quem o executa e 'interpreter.py'
Allocator
Runtimeum alocador proprio, com arena, pool e estrategia escolhida por quem escreve
No lugar dele: o alocador e o do CPython. 'Arcane.Memoria' da arena, referencia fraca, mapa fraco e controle do coletor (ligar, desligar, limiares, congelar)
Bare-Metal Runtime
Runtimerodar sem sistema operacional
No lugar dele: nao ha, e nao ha caminho a partir daqui: o runtime e o CPython
Bare-Metal
Alvossem sistema operacional
No lugar dele: nao ha
As trilhas
Cada passo diz o que você sabe fazer depois dele, e não o que ele contém — um índice já existe na barra lateral. Onde há exercícios do repositório que exercitam o assunto, eles estão ao lado.
As fases e os componentes desta página são gerados por site/scripts/gerar_roadmap.py a partir do próprio código, e há teste comparando o arquivo versionado com o que o gerador produz. As trilhas são escritas à mão — e todo destino delas é conferido contra as rotas que existem.