Modules et compilation séparée
use "path" importe un module source ou une interface .sdi avec élimination de source. Les déclarations sont privées sauf si elles sont marquées pub.
use "math_library"
pub struct measurement {
pub value: i64
}
pub fn double(value: i64) -> i64 {
value * 2
}
Le compilateur propre résout les problèmes relatifs source/interfaces, manifeste local path dépendances et installé target/ABI-qualified forfaits. .sdi préserve les types publics, génériques templates/common instances, effets, propriété, provenance, destructor/clone contrats, hachages de dépendances, cibles et ABI identité. Les changements de mise en œuvre privée peuvent laisser l’identité du consommateur stable ; publique semantic/ABI les changements l’invalident.
Disposition du paquet
package/
├── seed.toml
├── src/main.sd
├── src/lib.sd
└── tests/*.sd
Le lanceur de référentiel prend en charge new, check, format, incrémentiel build, run, test, doc, lint, commandes de package, LSP et publish --check. Les bibliothèques compilées locales peuvent être installées à l'aide du compilateur direct --install-library, --install-interface, et --package choix. Dynamique seed les dépendances sont hébergées par défaut ; --static sélectionne les archives statiques installées.
seed pkg resolve/add/update/prune fournit une sélection déterministe de versions sémantiques, seed.lock, Objets immuables SHA-256, HTTPS/file les registres, path/git remplacements, réutilisation hors ligne, publication atomique et extraction d'archives défensives. Les sources résolues sont exposées sous .seed/deps; les artefacts compilés restent target/ABI-qualified dans le magasin de la bibliothèque du compilateur. La publication à distance réelle est délibérément séparée ; seed publish --check valide un package localement sans exécuter de scripts de construction sans restriction.
Ne considérez pas les anciens noms Grove ou les éléments intégrés llvm-v1 comme automatiquement visibles. Une bibliothèque ordinaire API n'existe que lorsque la source importée/.sdi la déclare.