Matriz de compatibilidade da 0.1.0-rc.6
Esta matriz resume o estado de Pop 0.1.0-rc.6 voltado ao usuário. “Implementado” significa que o recurso é verificado e executável em seu caminho documentado. “Limitado” significa que existe uma base real, mas sua interface pública está incompleta.
Linguagem
Seção intitulada “Linguagem”| Recurso | Estado | Limite |
|---|---|---|
| Funções e parâmetros/resultados tipados | Implementado | anotações de resultado não são inferidas |
| Inferência de variáveis locais inicializadas e atribuição | Implementado | a atribuição nunca altera o tipo inferido |
if, elseif, valores condicionais |
Implementado | condições exatamente Boolean e tipo comum aos ramos |
while, repeat, for numérico |
Implementado | intervalos inclusivos de inteiros; break e continue |
for value in iterable generalizado |
Implementado | protocolos nominais exatos; String produz Rune |
| Funções locais e closures | Implementado | o estado mutável capturado é compartilhado |
| Inteiros e floats de largura fixa | Implementado | floats decimais, ordenação completa, conversões explícitas verificadas |
| Strings | Implementado | escapes, .., interpolação com crases, formatação de primitivos |
| Pacotes fixos, tuplas, atribuição múltipla | Implementado | aridade exata; projeção estática de tupla com base um |
| Valores de função | Implementado | sem igualdade de funções |
| Arrays | Implementado | comprimento fixo, base um, operações limitadas |
| Tabelas tipadas | Implementado | consulta opcional e inserção/substituição; sem API de exclusão ou iteração |
Registros e with |
Implementado | literais agregados exigem um contexto esperado |
Uniões discriminadas e match exaustivo |
Implementado | sem curingas, guardas ou resultado de expressão |
| Classes | Implementado | identidade nominal; sem herança geral compatível |
| Interfaces | Implementado | implementação nominal explícita; sem corpos padrão |
| Constantes e funções em tempo de compilação | Implementado | grafo fechado de chamadas em tempo de compilação, com efeitos limitados |
| Atributos tipados | Implementado | sem um sistema geral de macros que geram código |
| Enums e aliases de tipo | Implementado | enums nominais sem payload; aliases apagados não genéricos |
| Genéricos explícitos | Implementado | funções, registros e uniões; sem inferência de argumentos de tipo |
| Exceções | Não implementado | traps do runtime não podem ser capturados em código Pop |
Standard e ferramentas
Seção intitulada “Standard e ferramentas”| Recurso | Estado | Limite |
|---|---|---|
print(String) e print(Int) |
Implementado | apenas saída com quebra de linha |
APIs de coleções, texto, bytes, matemática e tempo da Pop.Standard |
Implementado | namespaces tipados; consulte o mapa e o baseline |
Rede e I/O explícito de host da Pop.Standard |
Implementado | operações limitadas, handles, deadlines e cancelamento |
Pop.Http |
Implementado | Package HTTP/1.1 separado sobre o transporte Standard |
| Compilação e execução nativas com LLVM | Implementado | arquivos de versão para Linux |
| Transpilador C11 | Limitado | apenas o subconjunto sem runtime |
| Interpretador MIR | Interno | mecanismo de conformidade, sem comando público de CLI |
Fluxos de projeto bubble.toml |
Implementado | grafo local/bloqueado e comandos explícitos |
| Formatador, lint, documentação, test e benchmark | Implementado | comandos de manifesto e diagnósticos estruturados |
| Registro/publicação de pacotes | Limitado | artefatos locais/bloqueados; transporte de registro fica fora |
Palavras reservadas e identidades internas de tipos não são promessas de funcionalidade no nível do código-fonte. Use os capítulos desta versão do livro e pop --help, e não nomes voltados ao futuro, como contrato de compatibilidade.
