63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# Agenda - Gfx Fault Semantics and Command Contract
|
|
|
|
## Problema
|
|
|
|
`gfx` parece dominio command-style com pouca necessidade de status, mas a politica concreta entre `Trap`, no-op deterministico e fallback ainda nao esta consolidada.
|
|
|
|
Exemplos atuais:
|
|
|
|
- `GfxSetSprite` usa fallback estavel quando asset nao e encontrado;
|
|
- indices fora da faixa podem virar no-op em vez de fault;
|
|
- argumentos ausentes ainda sobem como `Panic` por detalhe de helper.
|
|
|
|
## Dor
|
|
|
|
- a surface de `gfx` pode ficar inconsistente entre comandos;
|
|
- detalhes acidentais de implementacao podem ser confundidos com politica de dominio;
|
|
- `Panic` pode vazar para o app em casos que sao apenas erro de comando ou comando ignoravel.
|
|
|
|
## Hotspots Atuais
|
|
|
|
- [dispatch.rs](/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs#L178)
|
|
- [dispatch.rs](/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs#L213)
|
|
- [dispatch.rs](/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs#L227)
|
|
|
|
## Alvo da Discussao
|
|
|
|
Fixar a politica de fault de `gfx` como dominio de comando.
|
|
|
|
## O Que Precisa Ser Definido
|
|
|
|
1. Erros estruturais.
|
|
Confirmar o que continua `Trap`:
|
|
- tipo invalido;
|
|
- aridade invalida;
|
|
- capability ausente.
|
|
|
|
2. Parametros fora da faixa.
|
|
Decidir por comando:
|
|
- clamp;
|
|
- no-op;
|
|
- `Trap`.
|
|
|
|
3. Asset/sprite name ausente em `set_sprite`.
|
|
Decidir se fallback atual vira contrato oficial.
|
|
|
|
4. Indices fora da faixa.
|
|
Decidir se sprite index invalido e no-op ou `Trap`.
|
|
|
|
5. Panic cleanup.
|
|
Remover `Panic` acidental por argumento ausente/helper onde isso nao representa falha estrutural do runtime.
|
|
|
|
## Dependencias
|
|
|
|
- `../specs/16a-syscall-policies.md`
|
|
|
|
## Critério de Saida Desta Agenda
|
|
|
|
Pode virar PR quando houver decisao escrita sobre:
|
|
|
|
- matriz de `Trap`/no-op/fallback para `gfx`;
|
|
- politica de `set_sprite`;
|
|
- reducao de `Panic` acidental no dominio.
|