Cópia estática
Copiado de docs/trajectory/wave-3-async.md em https://github.com/poppy-team/aipo-lang (MIT). Fixado na revisão ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob 4e47f922ca8eca2b27169583fbfbcc009e402506. 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 Wave 3 introduziu novos tipos de dados estruturais na linguagem e consolidou a infraestrutura de concorrência assíncrona cooperativa com scheduler determinístico.
Set: Coleção de elementos únicos com preservação estrita da ordem original de inserção.Sequence: Geradores de avaliação preguiçosa (lazy evaluation), permitindo pipelines de processamento contínuo sem alocação intermediária.Bytes Packing: Métodos de leitura e escrita tipados em memória contígua (read_u16_le, write_u32_be, etc.), ideais para protocolos binários e I/O de alta velocidade.Duration: Tipo nativo para intervalos de tempo precisos.async fn passam a retornar handles de tarefas cooperativas.await do ... end, evitando a dispersão de await soltos em subexpressões e prevenindo condições de corrida sutis.AIPO_SEM_AWAIT_IN_SUBEXPRESSION: Bloqueia o uso de await fora de blocos dedicados.AIPO_SEM_FORGOTTEN_TASK: Alerta quando uma tarefa criada não é aguardada nem associada a um grupo.AIPO_SEM_NESTED_AWAIT_DO: Proíbe aninhamento confuso de blocos de espera.task.sleep, await).task completa: task.spawn, task.sleep, task.all, task.race, task.timeout, task.cancel, task.group.AIPO_RT_AWAIT_CYCLE), impedindo deadlocks silenciosos.