Pular para o conteúdo

Roadmap

O que já foi implementado, o que falta e em que ordem.

Esta página reflete o estado real do repositório. O documento completo, com a auditoria técnica que originou o plano, está em doc/ANALISE_E_ROADMAP.md.

O que a 1.0 entrega#

Núcleo#

ItemEstado
Analisador estáticofeitodataforge check
Stack tracesfeito — arquivo, linha, coluna e cadeia
Recordsfeito — imutáveis, igualdade estrutural, with
Enumsfeito — valores associados, integração com match
Desestruturaçãofeito — listas, records, vaults, ...resto
Spreadfeito — literais, vaults, chamadas
Compreensõesfeito — de lista e de vault
Null safetyfeito?? e ?.
Pattern matchingfeito — tipo, sequência, mapa, record, enum, guardas
OOP completafeito — propriedades, estáticos, visibilidade, operadores, abstratos
Genericsfeitoblueprint Pilha<T>, action primeiro<T>()

Ferramentas#

ItemEstado
Formatadorfeitodataforge fmt
Linterfeito — 13 regras
Executor de testesfeitodataforge test
Gerador de documentaçãofeitodataforge doc
REPLfeito:type, :ast, :check, :load, histórico
Coloração no editorfeitodataforge editor, instalada pelo instalador
LSPfeitodataforge lsp, 10 recursos
Depuradorpendente

Módulos e biblioteca#

ItemEstado
forge.tomlfeitoinit, info, scripts nomeados
Escopo real entre módulosfeitorelay controla o que sai
Imports seletivosfeitoadopt M.{a, b}
Detecção de ciclosfeito
22 módulos, 753 símbolosfeito
Gerenciador de pacotesfeitodataforge add, semver, lockfile
Kiln — framework webfeito — sintaxe própria, 46 funções
Planilhas .xlsxfeitoArcane.Excel, sem dependência

1.1 — Confiança#

  • Verificação de exaustividade em match sobre enum: avisar quando um membro ficou de fora. É o item de melhor relação custo/benefício que sobrou.
  • Contrato de trait: falhar na declaração quando o blueprint não implementa os métodos, em vez de só na chamada.
  • Generics com restrição — hoje <T> documenta e o analisador o aceita; falta <T extends Comparable> para o checker provar mais.
  • Menos unário no formatador: hoje yield -1 vira yield - 1, e por isso ninguém roda dataforge fmt.

1.2 — Ferramental#

  • Depurador: breakpoints, passo a passo, inspeção de variáveis.
  • Cobertura de testes no dataforge test.

1.3 — Ecossistema#

  • Registro hospedado com autenticação — hoje publicar é abrir um PR no repositório do registro. Basta para começar, mas não escala para milhares de pacotes nem permite revogar uma versão comprometida.
  • Espelho corporativo — para quem não pode buscar pacotes na internet aberta.
  • `dataforge audit` — avisar quando uma dependência instalada tem versão com correção conhecida.

2.0 — Runtime#

  • IR e máquina virtual de bytecode — hoje é interpretador de árvore, sem otimização.
  • Cache de compilação.
  • Empacotamento — gerar um executável com o runtime embutido.

Concorrência#

  • Mutex, Semaphore, Atomic — hoje só channel é seguro
  • receive bloqueante
  • TaskGroup e cancelamento
  • parallel tratando blocos em vez de instruções
  • Isolamento de transação por thread no Arcane.Database — hoje a conexão serializa os acessos, mas duas threads em begin/commit compartilham a mesma transação

Uma decisão pendente#

frame, train e predict são marcadores sintáticos: existem no lexer, no parser e no interpretador, mas devolvem um vault com __type__ e nada acontece.

Ou se implementa — DataFrame de verdade, ajuste de modelo — ou se remove. Manter sintaxe sem semântica é pior que não ter, porque quem lê a referência assume que funciona.

Estado verificado#

VerificaçãoResultado
Testes automatizados502 passando
Exercícios200/200
Exemplos42/42
Projetos completos4, com 61 testes
Análise estática sobre o repositório0 erros em 302 arquivos
Módulos da biblioteca22/22 carregam
Instalação via curl | shverificada em produção
Imagem Dockeramd64 e arm64, verificada após docker pull