seed Panoramica

seed è un linguaggio di sistema tipizzato staticamente, imperativo e orientato alle espressioni. Mira a una leggibilità semplice simile a Python, ove possibile, mantenendo il controllo C/Rust-class su layout, esecuzione, collegamento e accesso hardware di basso livello.

Il linguaggio non ha GC, sintassi di durata, rimozione delle eccezioni, runtime asincrono nascosto o libc obbligatorio. I costi come l'allocazione, la clonazione profonda, la conservazione del conteggio dei riferimenti, il blocco, le chiamate di sistema e il caricamento dinamico sono espliciti.

Identità attuale

Modello fondamentale

Piccolo nucleo ed ecosistema

File, reti, processi, serializzazione, formattazione, raccolte e sincronizzazione risiedono in librerie compilate separatamente. Le librerie ospitate sono condivise dinamicamente per impostazione predefinita; il collegamento statico è esplicito. I programmi indipendenti, il kernel, il driver e i programmi di avvio utilizzano la stessa lingua con profili di runtime limitati.

Limiti attuali

Il compilatore pulito implementa stringhe f di fase 1 e fase 2 per testo, bool, numeri interi, numeri in virgola mobile IEEE-754, specificatori di formato e statici display/debug tratti. Non implementa l'eredità typeADT basati su ADT, nomi nominali del caso serpente inferiore, ret, elif, # commenti, integrati chan<t>/send/recv, spawn distaccato, macro o un handle a livello di lingua restituito direttamente da spawn. La libreria delle attività fornisce risultati strutturati tipizzati. Pacchetti riproducibili, LSP, doc/lint e gli artefatti incrementali esatti vengono implementati da Gate 15 utensili.

Gate 14 la portabilità è chiusa per le sue righe registrate: Windows x86-64 passa sotto Wine richiesto, e macOS x86-64 chiuso dall'esecuzione Intel nativa richiesta. La matrice canonica è compiler/llvm/tests/GATE14_TARGET_MATRIX.tsv, di cui macOS rimane la riga arm64 cross-link-only; quella linea di base afferma che non deve essere presentata come eseguita finché un corridore arm64 fidato non supera la suite. Il supporto degli oggetti non è uguale al supporto ospitato degli eseguibili.

Inizia qui