rust

9 posts

AutoVerus transforma 40 horas de escrita de proof em 3 chamadas de LLM. O truque é saber quando desistir.

AutoVerus utiliza uma rede de agents LLM para gerar proofs de correção Verus para código Rust, automatizando mais de 90% das proof obligations por meio de um loop gerar-reparar-discharge impulsionado pelo feedback do solver SMT.

A parte mais difícil da verificação formal nunca foi o verificador. É escrever o proof. Dê a um engenheiro sênior de Rust o Verus, o verificador baseado em SMT…

LLMs conseguem gerar código Rust. Provas formais são um problema completamente diferente.

Grandes modelos de linguagem escrevem código Rust surpreendentemente bom, mas quando você pede uma prova formal, eles alucinam invariantes e inventam sintaxe que nenhum verificador aceita. Veja o que eles realmente acertam, onde falham e como usá-los mesmo assim.

LLMs conseguem escrever Rust que compila e até passa em . O que não conseguem fazer de forma confiável é escrever uma prova formal de que o código está correto…

Você pode provar que seu código Rust está correto sem escrever uma única prova, mas o espaço de estados é a conta

Ferramentas de model checking como Kani permitem verificar propriedades de Rust com assertions em vez de provas formais. O problema é o que acontece quando seus loops não têm limites pequenos.

Você pode provar que seu código Rust está correto sem escrever uma única prova. A ferramenta que faz isso se chama model checker, e para Rust o mais prático no…

Suas dependências podem ler qualquer arquivo no disco. cap-std faz com que elas peçam permissão.

A biblioteca padrão do Rust concede autoridade de sistema de arquivos ambiente a toda dependência. cap-std a substitui por APIs baseadas em capabilities que forçam o código a provar que tem direito de acessar um caminho antes de abri-lo.

Qualquer crate na sua árvore de dependências pode abrir , escrever no seu diretório ou enumerar todos os arquivos do seu projeto. A biblioteca padrão do Rust…

Mutation Testing em Rust Funciona, mas Seus Tempos de Compilação Vão Odiar Você

cargo-mutants encontra os testes que apenas fingem verificar seu código. Veja como mutation testing funciona para Rust, o que ele captura e se o custo de tempo de compilação vale a pena.

Você tem 100% de cobertura de linhas. Cada branch é executada. Cada função é chamada. Aí alguém muda um para na sua lógica de precificação, executa os testes e…

Testes Baseados em Propriedades em Rust Encontram os Bugs que Seus unit tests Deixam Passar

Testes baseados em exemplos cobrem apenas as entradas que você imaginou. Testes baseados em propriedades geram dados aleatórios, verificam invariantes e reduzem falhas aos contraexemplos mínimos.

Você escreveu uma função . Testou com e . Passou. Enviou para produção. Um usuário passa um slice de um único elemento. Sua função o ignora silenciosamente.…

Contratos de Runtime em Rust Podem Ser Gratuitos em Builds de Release, mas o compiler Não Vai Fazer Isso por Você

Rust remove debug assertions automaticamente, mas design-by-contract de verdade precisa de mais do que debug_assert!. Veja como construir contratos de runtime com custo zero que desaparecem do seu binário de release.

Rust pode impor contratos de runtime em desenvolvimento e apagá-los completamente das builds de release. A ressalva é que a linguagem não trata contracts como…