Roteiro Técnico Rul (.rl) — De Motor v0.4 a Linguagem de Sistemas de Uso Geral v1.0
Roteiro de engenharia em quatro marcos expandindo o Rul (.rl) de um motor de computação colunar de 29 opcodes (v0.4) para uma linguagem de sistemas de uso geral que substitui Rust e Go para software gerado por IA (v1.0).
Por Que Começamos com Pipelines de Dados (v0.1 a v0.4)
Para provar que o formato de instrução binária de 16 bytes funciona em silício real antes de adicionar construções de linguagem de uso geral, restringimos as Fases v0.1 a v0.4 a pipelines de processamento de arrays e vetores (29 opcodes) — comprovando verificação O(N) em ~5.78 ns/nó, compilação ELF64 autônoma em ~6.4 µs e vazão de 51.53 GB/s.
Quatro Marcos até a Linguagem de Sistemas de Uso Geral v1.0
Núcleo SSA-DAG Colunar de 29 Opcodes, Rastreador Caixa-Branca & AOT AVX2 ELF64
Provou o formato de instrução binária de 16 bytes, verificador O(N) de passagem única (~5.8 ns/nó), motor de execução de 3 níveis, servidor rul-mcp e compilador nativo Linux ELF64 sem LLVM (~6.4 µs) em hardware real.
- 01. RulHeader de 64 bytes, ArenaDescriptor de 16 bytes, ProofEntry de 16 bytes e NodeFrame de 16 bytes em 29 opcodes.
- 02. Montador simbólico sem perdas .rls <-> .rl, CLI rul autônomo, rul-bench e servidor rul-mcp de 6 ferramentas.
- 03. Alocador de registradores YMM por varredura linear (ymm2..ymm13) atingindo 51.53 GB/s (4.72x sobre C) em arrays de 80 MB.
Fluxo de Controle de Uso Geral, Funções & Tipos de Dados Compostos
Expandir o conjunto de instruções de 16 bytes além de arrays numéricos para suportar escalares gerais, structs, enums, strings UTF-8, hash maps, ramificações condicionais e loops com terminação comprovada.
- 01. Suporte de primeira classe a i64, i32, u8, f32, structs de layout fixo, uniões rotuladas algébricas, strings UTF-8 validadas e hash maps de arena.
- 02. SelectBranch: ramificação condicional exigindo que ambos os ramos se fundam em um estado idêntico de versão de memória (verificado em O(1)).
- 03. RegionLoop & Call: loops delimitados com testemunhas de terminação ProofEntry e funções modulares verificadas sem inlining do programa inteiro.
Posse de Heap Nível Rust & Tempos de Vida de Structs em Tempo O(N)
Generalizar versões TokenOp de 32 bits e testemunhas ProofEntry de 16 bytes de arrays planos para alocações de heap baseadas em regiões e empréstimos de campos de structs.
- 01. Alocação e desalocação determinística de heap em regiões vinculadas a tokens de posse linear com zero GC e zero fragmentação de malloc/free.
- 02. Testemunhas auxiliares ProofEntry para mutações disjuntas de campos de structs e tempos de vida de sub-fatias zero-copy verificados em O(1) por instrução.
- 03. Proteção total contra use-after-free, double-free e aliasing sem resolução de restrições de borrow-checker de vários segundos.
Concorrência Determinística Estilo Go & E/S de SO Controlada por Capacidades
Introduzir tarefas leves, canais com transferência de posse e bits granulares de capacidade no cabeçalho governando chamadas de sistema de arquivo, rede e processo.
- 01. Enviar um buffer por um canal tipado realiza um AffineConsume no token do remetente e transfere a posse para o destinatário — prevenindo corridas de dados no carregamento sem GC.
- 02. Estender o RulHeader.capability_mask de 64 bits para controlar leituras/gravações de arquivos, sockets de rede, temporizadores e subprocessos.
- 03. Um binário .rl com CAP_NONE (0x0) é matematicamente bloqueado de fazer qualquer chamada de rede ou disco antes do início da execução.
Backends Nativos Multi-Arquitetura (x86_64, ARM64, WASI) & Provas Formais de Solidez
Emitir executáveis autônomos para Linux, macOS, Windows e WebAssembly sem LLVM, respaldados por model checking Kani e uma suíte de conformidade v1.0 de 50 programas.
- 01. Geração de código nativo sem LLVM para x86_64 e AArch64 (ARM64) em Linux, macOS e Windows, além de módulos WASI determinísticos.
- 02. Provas de model-checking limitado (Kani) e fuzzing diferencial contínuo no decodificador binário, verificador O(N) e gerador de código nativo.
- 03. Especificação binária .rl v1.0 congelada e suíte pública de testes de conformidade de 50 programas.
Regras Centrais de Engenharia (Não-Objetivos)
Toda propriedade de segurança (tipos, posse, limites, terminação de loop, capacidades de E/S) deve ser verificável em uma única passagem direta O(N).
Zero pausas de GC e zero threads ocultas de runtime; o tempo de vida da memória é rastreado explicitamente via arenas e regiões versionadas.
Cada nível de execução (Tier 0, Tier 1, Tier 2 e ELF64 AOT) deve produzir resultados correspondentes ou falhar de forma fechada com um erro determinístico.