Cópia estática
Copiado de docs/decisions/adp-001.md em https://github.com/poppy-team/aipo-lang (MIT). Fixado na revisão ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob 804467a8a0ebf1f1c6f59ac0bad7395c2357a7b0. O repositório de origem permanece canônico; esta cópia é atualizada por um pull request de sincronização, não em tempo real.
A linguagem Aipo necessitava de uma estratégia clara para tratamento de streams de dados binários brutos, fatiamento de coleções (slicing) e operações com limites delimitados (clamp).
Bytes como Tipo de Primeira Classe:
Bytes é representado como um vetor contíguo de bytes de 8 bits sem sinal na VM, com semântica de valor e contagem de referências.read_u16_le, write_u32_be).Fatiamento Tolerante (Tolerant Slicing):
colecao[inicio..fim]) ajusta silenciosamente limites que ultrapassam o tamanho da coleção para o limite máximo real, evitando pânicos desnecessários em operações seguras de leitura.Inversão de Limites no clamp:
clamp(val, min, max) onde min > max disparam uma falha explícita de domínio em vez de produzir valores corrompidos.