3.7 KiB

Agendas

Este diretório reúne agendas de discussão arquitetural para itens pendentes ou frágeis do runtime.

Objetivo:

  • explicitar a dor real do sistema;
  • delimitar o que precisa ser decidido antes de codar;
  • servir de base para futuras PRs de implementação JVM-grade.

As agendas atuais são:

  • 001-system-run-cart.md
  • 002-packed-cartridge-loader-pmc.md
  • 005-runtime-edge-test-plan.md
  • 009-filesystem-surface-and-semantics.md
  • 010-input-intrinsics-surface.md
  • 011-input-frame-semantics-and-portability.md
  • 012-asset-fault-semantics-and-surface.md
  • 013-audio-fault-semantics-and-surface.md
  • 014-gfx-fault-semantics-and-command-contract.md
  • 015-system-fault-semantics-and-control-surface.md
  • 016-filesystem-fault-semantics.md

Sequenciamento Recomendado

Ordem sugerida para discussão e futura execução:

  1. 007-single-canonical-architecture.md
  2. 008-hardware-specs-reorganization.md
  3. 006-break-monolith-runtime.md
  4. 012-asset-fault-semantics-and-surface.md
  5. 013-audio-fault-semantics-and-surface.md
  6. 014-gfx-fault-semantics-and-command-contract.md
  7. 001-system-run-cart.md
  8. 015-system-fault-semantics-and-control-surface.md
  9. 009-filesystem-surface-and-semantics.md
  10. 016-filesystem-fault-semantics.md
  11. 010-input-intrinsics-surface.md
  12. 011-input-frame-semantics-and-portability.md
  13. 005-runtime-edge-test-plan.md
  14. 002-packed-cartridge-loader-pmc.md

Justificativa curta:

  • 007 vem primeiro porque elimina ambiguidade sobre qual documento manda.
  • 008 vem em seguida porque reorganiza o terreno documental onde specs e arquitetura se apoiam.
  • 006 entra depois porque refactor estrutural grande sem documentação estável tende a cristalizar decisões erradas.
  • a decisao 003 ja fechou o contrato base para trafego de bytes VM-owned e agora deve ser consumida, nao rediscutida aqui.
  • a decisao 004 ja fechou a taxonomia base de falhas host-backed e agora deve ser consumida pelos dominios.
  • 012, 013 e 014 quebram o refactor de fault semantics por dominio onde a dor ja esta visivel no codigo.
  • 001 vem antes de 015 porque run_cart ainda nao tem semantica funcional fechada.
  • 015 fecha a taxonomia do dominio system depois de 001.
  • 009 usa as decisoes 003 e 004 para fechar o dominio de filesystem sem texto improvisado.
  • 016 fica explicitamente depois de 009, para nao classificar falhas de uma surface que ainda pode mudar.
  • 010 e 011 isolam o dominio maior de input fora de syscall, tratando pad e touch como superfícies centrais, button como parte de pad, e explicitando a migracao da leitura de input para intrinsics.
  • 005 fecha a barra de qualidade antes das implementações mais arriscadas.
  • 001 e 002 dependem mais fortemente de contrato de sistema, ABI e documentação estáveis.

Dependências principais:

  • 008 depende de 007
  • 006 depende de 007
  • 009 depende das decisoes 003 e 004
  • 012 depende da decisao 004
  • 013 depende da decisao 004
  • 014 depende da decisao 004
  • 015 depende da decisao 004 e 001
  • 016 depende das decisoes 003, 004 e da 009
  • 010 depende de 007
  • 011 depende de 010
  • 001 depende de 007, das decisoes 003 e 004, de 005 e deve alinhar com 009 quando usar fs
  • 002 depende de 007 e deve ser alinhada com a reorganização documental de 008

Regra de uso:

  • se a implementação exigir decisão estrutural, ela deve nascer daqui antes de virar PR de código;
  • se uma agenda já estiver resolvida, a PR derivada deve citar explicitamente qual decisão foi tomada;
  • se a agenda revelar ambiguidade demais, ela não deve ser convertida em PR até o alvo ficar preciso.