Rilascio del linguaggio di programmazione Hare 0.25.2

Drew DeVault, autore dell'ambiente utente Sway, del client di posta Aerc e della piattaforma di sviluppo collaborativo SourceHut, ha pubblicato la versione 0.25.2 del linguaggio di programmazione Hare. Il numero di versione è formato come 0.YY.Q, dove YY sono le ultime due cifre dell'anno e Q è il numero del trimestre; l'uscita precedente, Hare 0.24.2, è stata pubblicata un anno fa. Hare è presentato come un linguaggio di programmazione di sistema, simile al C, ma più semplice. Il codice sorgente del compilatore e degli strumenti è distribuito sotto licenza GPLv3, mentre il codice della libreria standard è sotto licenza MPL (Mozilla Public License).

Il linguaggio è ottimizzato per affrontare compiti a basso livello, come lo sviluppo di sistemi operativi, compilatori, applicazioni di rete e utilità di sistema, per i quali è richiesta l'ottimizzazione delle prestazioni e il controllo completo sull'esecuzione. Nel linguaggio viene utilizzata la gestione manuale della memoria e un sistema di tipi statico in cui ogni variabile deve avere esplicitamente assegnato un tipo specifico.

Per l'esecuzione dell'applicazione è fornito un runtime minimo, mentre per lo sviluppo viene distribuita una libreria standard di funzioni che offre accesso alle interfacce di base del sistema operativo, oltre a fornire funzioni per lavorare con algoritmi tipici, protocolli e formati, inclusi strumenti per utilizzare espressioni regolari e crittografia. Per lo sviluppo di applicazioni grafiche viene sviluppato lo strumento hare-wayland, così come binding per accedere alle funzionalità di GTK, Vulkan, OpenGL, SDL2 e libui.

Nella nuova versione:

  • Le funzionalità di input/output bufferizzati sono state ampliate. Nel modulo «memio::» è stata aggiunta la modalità di streaming «nonblocking». Sono disponibili opzioni per configurare il comportamento nella gestione della fine del file in bufio::scanner e modalità di gestione dei flussi in bufio::stream. Sono state aggiunte le funzioni os::open_buffered e os::create_buffered.
  • Nell'utilità «haredoc» è stata implementata la possibilità di estrarre una breve descrizione dei moduli dai file README e visualizzarla durante l'output dell'elenco dei moduli.
  • È stato implementato il supporto per le API Unix/POSIX: io::fsync, io::fdatasync, unix::getrlimit, unix::setrlimit e fcntl (attraverso os::getflags e os::setflags). Per il sistema operativo NetBSD è stato portato il supporto per la memoria condivisa.
  • Nell'utilità hare è stata aggiunta la supporto per l'integrazione di gestori esterni, invocati tramite il sottocomando «hare tool». Ad esempio, è stata fornita l'integrazione con lo strumento «hare-update» tramite tale gestore.
  • La gestione degli errori in caso di esaurimento della memoria è stata dichiarata obbligatoria. È stato aggiunto un nuovo tipo primitivo «nomem», restituito dalle funzioni di allocazione della memoria quando non è possibile allocare la quantità richiesta di memoria.
  • API migliorato per la gestione di date e orari. Ampliate le funzionalità di gestione dei fusi orari e aggiunta la compatibilità con le regole PETZ (POSIX Extending TZ). Molte funzioni sono state trasferite dal modulo time::chrono a time::date.
  • Aggiunta la supporto per annotazioni semantiche del codice, consentendo l'aggiunta di metadati a un codice che vengono ignorati dal compilatore, ma possono essere considerati dall'analizzatore lessicale nella libreria standard. #[json::gen] export type player = struct { name: str, #[json::field(name = «X», omit_null=true)] x: *f64, #[json::field(name = «Y», omit_null=true)] y: *f64, };
  • Aggiunta l'utilità hare-update per semplificare la migrazione del codice verso nuove versioni degli strumenti Hare, che contengono modifiche che compromettono la retrocompatibilità. Ad esempio, l'utilità può essere utilizzata per adattare il codice esistente all'obbligo di gestire gli errori di allocazione della memoria, introdotto in questa versione.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster