Moduli e compilazione separata
use "path" importa un modulo sorgente o un'interfaccia .sdi con elisione sorgente. Le dichiarazioni sono private a meno che non siano contrassegnate con pub.
use "math_library"
pub struct measurement {
pub value: i64
}
pub fn double(value: i64) -> i64 {
value * 2
}
Il compilatore pulito risolve relative source/interfaces, manifesto locale path dipendenze e installato target/ABI-qualified pacchetti. .sdi preserva i tipi pubblici, generici templates/common istanze, effetti, proprietà, provenienza, destructor/clone contratti, hash delle dipendenze, target e ABI identità. I cambiamenti nell’implementazione privata possono lasciare stabile l’identità del consumatore; pubblico semantic/ABI le modifiche lo invalidano.
Disposizione del pacchetto
package/
├── seed.toml
├── src/main.sd
├── src/lib.sd
└── tests/*.sd
Il launcher del repository supporta new, check, format, incrementale build, run, test, doc, lint, comandi del pacchetto, LSP e publish --check. Le librerie compilate locali possono essere installate utilizzando il compilatore diretto --install-library, --install-interface, e --package opzioni. Dinamico seed le dipendenze sono l'impostazione predefinita ospitata; --static seleziona gli archivi statici installati.
seed pkg resolve/add/update/prune fornisce una selezione deterministica della versione semantica, seed.lock, Oggetti immutabili SHA-256, HTTPS/file registri, path/git sostituzioni, riutilizzo offline, pubblicazione atomica ed estrazione difensiva degli archivi. Le fonti risolte sono esposte sotto .seed/deps; rimangono gli artefatti compilati target/ABI-qualified nell'archivio della libreria del compilatore. La pubblicazione remota effettiva è deliberatamente separata; seed publish --check convalida un pacchetto localmente senza eseguire script di compilazione senza restrizioni.
Non considerare i nomi Grove legacy o i componenti integrati llvm-v1 come automaticamente visibili. Una libreria ordinaria API esiste solo quando la sorgente importata/.sdi la dichiara.