Módulos e compilação separada
use "path" importa um módulo de origem ou uma interface .sdi com origem excluída. As declarações são privadas, a menos que estejam marcadas como pub.
use "math_library"
pub struct measurement {
pub value: i64
}
pub fn double(value: i64) -> i64 {
value * 2
}
O compilador limpo resolve problemas relativos source/interfaces, manifesto local path dependências e instaladas target/ABI-qualified pacotes. .sdi preserva tipos públicos, genéricos templates/common instâncias, efeitos, propriedade, proveniência, destructor/clone contratos, hashes de dependência, destino e ABI identidade. Mudanças na implementação privada podem deixar a identidade do consumidor estável; público semantic/ABI mudanças o invalidam.
Layout do pacote
package/
├── seed.toml
├── src/main.sd
├── src/lib.sd
└── tests/*.sd
O iniciador de repositório suporta new, check, format, incremental build, run, test, doc, lint, comandos de pacote, LSP e publish --check. Bibliotecas compiladas locais podem ser instaladas usando o compilador direto --install-library, --install-interfacee --package opções. Dinâmico seed dependências são o padrão hospedado; --static seleciona arquivos estáticos instalados.
seed pkg resolve/add/update/prune fornece seleção determinística de versão semântica, seed.lock, Objetos imutáveis SHA-256, HTTPS/file registros, path/git substituições, reutilização offline, publicação atômica e extração defensiva de arquivos. Fontes resolvidas são expostas em .seed/deps; artefatos compilados permanecem target/ABI-qualified no armazenamento da biblioteca do compilador. A publicação remota real é deliberadamente separada; seed publish --check valida um pacote localmente sem executar scripts de construção irrestritos.
Não trate nomes herdados Grove ou integrados llvm-v1 como automaticamente visíveis. Uma biblioteca comum API existe apenas quando a fonte importada/.sdi a declara.