Desenvolvimento
Arquitetura interna, convenções e material para quem contribui.
Arquitetura
- Aipo — Visão Geral da Arquitetura (Waves 1–2)A direção das dependências é estritamente unidirecional e acíclica: CLI → Runtime / VM → Bytecode → Core IR → Sema → HIR → AST → Syntax → Lexer →…
- ADR 001: Linha de Base Arquitetural e Princípios de Clean Architecture
- Bytecode & Máquina VirtualA execução nativa do Aipo ocorre em uma máquina virtual de bytecode determinística, otimizada para baixo consumo de memória e rápido despacho de…
- Contrato de Arquitetura e Clean CodeEste documento define o contrato mandatório de engenharia de software para todas as implementações deste projeto.
- Frontend do CompiladorO frontend do Aipo é responsável por processar o código-fonte em texto puro até a geração da representação semântica validada.
- Contratos das Crates do WorkspaceO repositório do Aipo é composto por crates modulares em Rust, cada uma com limites estritos de responsabilidade e dependências lineares sem ciclos.
- Host ABI & SandboxingA Host ABI (aipo-host) define a interface de isolamento e segurança entre os scripts em Aipo e o ambiente que hospeda o runtime (seja um jogo, uma…
- Backend JavaScript (aipo-js)O backend JavaScript do Aipo permite transpilar código-fonte Aipo para JavaScript moderno (ES2022) com garantia de paridade comportamental total.
Decisões
- ADP-001 — Tipos Core e Bytes como ValoresA linguagem Aipo necessitava de uma estratégia clara para tratamento de streams de dados binários brutos, fatiamento de coleções (slicing) e…
- ADP-002 — Hooks de Construção e Contratos em RuntimeA linguagem precisava de um mecanismo unificado e de baixo custo cognitivo para validar os estados internos das estruturas de dados sem obrigar os…
- ADP-003 — Orçamentos de ExecuçãoPara executar scripts não-confiáveis em ambientes hospedeiros (sandboxing de jogos, plugins ou automações), é fundamental impedir laços infinitos que…
- ADP-004 — Política de Identificadores UnicodeIdentificadores Unicode com diferentes formas de normalização (NFC vs NFD) podem parecer idênticos na tela mas representam sequências distintas de…
- ADP-005 — Limites de Recursão do ParserParsers descendentes recursivos podem sofrer estouro de pilha (stack overflow) ao processar expressões artificialmente aninhadas em excesso (ex…
- ADP-006 — Decisões Abertas de Wave 3 e Wave 4Consolidação de decisões semânticas abertas para concorrência assíncrona, combinadores de tarefas e a arquitetura de capacidades da Host ABI.
- ADP-007 — Identidade e Distribuição de PacotesA linguagem precisava de um gerenciador de dependências moderno que evitasse os problemas históricos de ecossistemas como NPM e Pip: ataques de…
- ADP-008 — Delimitação da Release v0.1.0 da LinguagemApós a conclusão das Waves 0 a 5, era essencial definir uma fronteira firme para o primeiro lançamento público estável (v0.1.0), evitando escopo…
- ADP-009 — C ABI Síncrona VersionadaPara permitir que a linguagem Aipo seja utilizada como motor de script em projetos escritos em C, C++, Zig ou outras linguagens de sistemas sem…
- ADP-010 — Provas Finas de Interoperabilidade (Rust, C, JS)Garantir que a promessa de interoperabilidade da v0.1.0 não seja apenas teórica, mas validada por testes reais em cada um dos ecossistemas suportados.
- ADP-011 — Roteiro de Performance Estrutural e ErgonomiaDurante a fase P04 e início de P05, sete experimentos locais de micro-otimização falharam em produzir ganhos reprodutíveis e foram devidamente…
- ADP-012 — Especificação de Ergonomia Sintática e Filosofia de Design Canônico
- ADP-013 — Migração para Substrato de Execução WebAssembly e Roteiro de Self-HostingDurante o desenvolvimento da release v0.1.0 da linguagem Aipo, foram implementadas e medidas empiricamente otimizações profundas no interpretador de…
- ADR-001 — Sintaxe canônica AipoNão-objetivos explícitos: brevity deExpert, densidade deexpressão, compatibilidade com outras linguagens.
- Roteiro: decided · deferred · pendingRegistro vivo das decisões de superfície da linguagem Aipo, para não perder contexto entre conversas. Opção rejeitada permanece registrada aqui de…
Propostas (ADP)
- ADP-001 — Byte, Bytes e tipos como valores no Prelude V1A política de não invenção (prumo.json → risk, docs/language/authority-map.md) exige que toda decisão semântica material sem resposta em canon vire…
- ADP-002 — Hooks de construção, invariantes e contratos em runtimeA política de não invenção (prumo.json → risk) exige que toda lacuna entre canon e implementação seja registrada, não silenciada. O slice S11 montou…
- ADP-003 — Orçamentos de Execução para Programas Não Confiáveis (fuel, memória, interrupção)Este ADP se encerra quando um goal de design especificar o sinal, o escopo, a contabilização e a regra de paridade acima, com fixtures que provem…
- ADP-004 — Política de Identificadores Unicode e de Segurança
- ADP-005 — Limites de Recursão do Parser (Limites de Aninhamento)
- ADP-006 — Decisões em Aberto das Waves 3/4 (async, coleções, packing, host)O canon mostra Set como um tipo com .lazy(), mas não define literal nem forma de chamada, e a V1 estabeleceu que List/Dict/Bytes não têm forma de…
- ADP-007 — Package identity e distribuiçãoExemplo: acme.http. O coordinate é a identidade canônica usada no manifest, lockfile, SourceMap e diagnósticos. Os segmentos usam a gramática ASCII…
- ADP-008 — Release aipo v0.1.0 e fronteira de interoperabilidadeAipo já possui uma base executável: linguagem, VM, backend JavaScript, async, contratos, host ABI interna, packages locais/GitHub e tooling básica. O…
- ADP-009 — C ABI síncrona e versionadaA aipo v0.1.0 expõe uma ABI C síncrona, single-threaded e versionada. A ABI será implementada em um crate separado, sem expor structs, referências…
- ADP-010 — Thin proofs de interoperabilidade Rust, C e JavaScriptA escolha da biblioteca considera API clara, licença compatível, manutenção, ownership e testabilidade. Popularidade e tamanho não são critérios…
- ADP-011 — Roteiro de Performance Estrutural e Ergonomia de LinguagemDurante a fase P04 e início de P05, sete experimentos locais de micro-otimização (pool de nomes, layout denso com 2 vetores, cache de flags fixed por…
Governança
- Changelog Oficial do ProjetoTodas as alterações notáveis, releases e marcos do Aipo são documentados neste arquivo, em conformidade com o formato Keep a Changelog e aderindo ao…
- Prumo CLI & Metodologia LPCO Aipo utiliza o Prumo v0.6 como framework de governança contínua e a metodologia Lean Progressive Context (LPC) para coordenação entre…
- Governança de Repositório
- Segurança & SandboxingA segurança da linguagem Aipo é baseada no modelo de mínimo privilégio e na prevenção ativa de vulnerabilidades de runtime.
- Padrões de Código & Estratégia de TestesA integridade do Aipo é sustentada por uma pirâmide abrangente de testes automatizados e regras estritas de compilação em Rust 2024.
Evidências
- Matriz de Conformance da LinguagemA suíte de conformidade (conformance suite) do Aipo é a garantia de que as decisões semânticas da especificação são rigorosamente obedecidas em todas…
- Benchmarks Cross-LanguageO Aipo conta com um harness de benchmark padronizado (aipo-bench --compare) que confronta os tempos de execução e o consumo de memória (Peak RSS)…
- Evidência — P00-G09 / Slice S9 (Runtime & Stdlib Mínima)Anexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório.
- Evidência — P00-G10 / Conclusão do Backend (lacunas dentro de S1–S9)Anexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório.
- Evidência — P00-G11 / Slice S10 (CLI + Formatter)Anexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório.
- Evidência — P00-G12 / Slice S11 (Hardening de Conformidade & Gate do MVP)Anexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório. O layout do corpus e a matriz de snapshots estão…
- Evidência — P00-G13 / Hooks de Construção do MVP & BytesAnexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório.
- Evidência — P00-G14 / Imposição de Contratos em RuntimeAnexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório.
- Evidência — P00-G15 / Contratos Estáticos e Conformidade de InterfacesAnexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório.
- Evidência — P00-G16 / Revisão de Saída da Wave 1Anexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório. A especificação do corpus está em…
- Evidência — P01-G01 / Paridade JS para o Subset Completo do MVPAnexos de prova dos gates exigidos. Os comandos são reproduzíveis a partir da raiz do repositório. O plano da Wave 2 está em…
- Evidência — P01-G02 / Deep Quality Gauntlet23 exemplos (01–05 pré-existentes, 06–24 novos), cada um com .stdout commitado, cada um verificado na VM e no Node por examples.rs. A tabela…
- Evidência — P02-G01 / Wave 3 Tipos e Valores (Set, Sequence, Bytes Packing, Task, Duration)
- Evidência — P02-G02 / Wave 3 Stdlib: Combinadores Assíncronos e Operações de Task
- Evidência — P02-G03 / Wave 3 Infra: Sintaxe async fn, await do e Diagnósticos Estáticosprumo validate / prumo doctor não podem ser executados neste ambiente: a instalação local do prumo 0.6.0 está sem seus recursos de framework…
- Evidência — P03-G01 / Host ABI: Modelo de Capabilities, Valores do Host e Handles GeracionaisA integração pendente foi adaptada ao CLI atual, preservando os comandos de pacotes, Wasm e as APIs públicas de embedding. --ahs carrega uma…
- Evidência — P03-G02 / Adapter Poppy e Demo Headless Determinística
- A Saga de Otimização & Rigor MetodológicoUma das maiores lições de engenharia do projeto Aipo é a disciplina de medição empírica: código que parece uma otimização no papel muitas vezes não…
- Registro Histórico de SlicesCada fatia vertical (vertical slice) e meta de implementação no Aipo é concluída somente após a validação de evidências automatizadas e o registro de…
Desempenho
- Baseline de Performance do AipoEstes números são baselines para comparação futura em um runner dedicado, não limiares de aprovação/reprovação. Para o protocolo multi-runtime, as…
- Aipo Cross-Language BenchmarksComparar custo de workloads equivalentes sem esconder a diferença entre interpretador, JIT, VM e código nativo. Rust nativo é um controle…
Design
Zoe
- Primeiros Passos com Zoe UIEste guia orienta a inicialização, configuração e ciclo de vida de uma aplicação com Zoe UI.
- Componentes AvançadosWidgets especializados de alta complexidade para ferramentas profissionais, editores e IDEs.
- Botões e Controles de SeleçãoComponentes interativos para disparar ações e alternar modos.
- Criando Componentes CustomizadosUma das maiores forças do Zoe UI é seu protocolo aberto e uniforme de autoria de componentes. Qualquer desenvolvedor pode criar novos elementos sem…
- Campos de Entrada (Inputs)Campos interativos calibrados para ferramentas técnicas e edição numérica.
- Contêineres de LayoutContêineres estruturais para organização espacial com o motor Leona.
- O Motor de Layout Leona 2.0O Leona é o motor de layout canônico do Zoe UI. Desenvolvido inteiramente em Aipo, ele resolve coordenadas $(x, y)$, larguras e alturas relativas com…
- Navegação e Listas HierárquicasComponentes para alternância de abas e navegação em árvores de dados.
- Playground Interativo do Zoe UIExperimente o Zoe UI e o motor de layout Leona diretamente na documentação.
- Reatividade & Sinais no Zoe UIO Zoe UI adota um modelo reativo baseado em Sinais (*Signals*), combinando ergonomia declarativa a alto desempenho sem reconciliações virtuais…
Llm
- Aipo V1 — Cheat Sheet para Prompts e LLMs (Ultra-Compacto)
- Aipo — Clean Code, Ergonomia Cognitiva e Padrões de ProjetoAipo é desenhada sob o princípio de baixa sobrecarga cognitiva e acessibilidade neurodivergente (W3C COGA). Em Aipo, "Clean Code" não significa criar…
- Aipo — Organização e Arquitetura de Projetos (Aplicações e Bibliotecas)Este documento define os padrões canônicos para organização de código, diretórios, manifestos aipo.toml e estratégias de teste em Aipo V1.
- Aipo — Regras Gramaticais Positivas e Negativas (Guia para LLMs)Este documento estabelece o contrato estrito de conformidade sintática para modelos de linguagem. Qualquer violação destas regras produz erro de…