Specification
How to read the Sounio language spec and where it may differ from the implementation.
Specification
A especificação continua importante, mas no repositório atual ela deve ser lida como uma camada da verdade, e não como a verdade completa. Uma documentação abrangente precisa explicar como usar a especificação em conjunto com artefatos, testes e a estrutura do código-fonte, em vez de tratá-la como uma descrição completa do comportamento no presente.
Como usar a especificação corretamente
- Use a especificação para entender o modelo de linguagem pretendido e a terminologia.
- Use
souc check, fixtures e artefatos de status para entender o que o artefato atualmente recomendado realmente aplica. - Use diretórios de código-fonte como
self-hosted/check/,self-hosted/parser/eself-hosted/native/para entender como o trabalho de implementação está estruturado hoje.
Para que a especificação é especialmente boa
- Conceitos transversais como efeitos, tipos epistêmicos, unidades e refinamentos.
- Intenção de design de longo alcance que abrange mais de um backend ou subsistema.
- Vocabulário e enquadramento formal que ajudam a dar sentido aos documentos do repositório mais voltados à implementação.
O que a especificação não substitui
- O status atual do artefato via
souc info. - Provas respaldadas por fixtures em
tests/run-pass/,tests/compile-fail/etests/stdlib/. - Artefatos de status legíveis por máquina em
artifacts/stdlib/.