Lingua di prugrammazione GNU Guile 3.0.10 dispunibule

A liberazione di GNU Guile 3.0.10 hè stata publicata, una implementazione libera di u linguaghju di prugrammazione funzionale Scheme, chì sustene a capacità di incrustà codice in applicazioni in altre lingue di prugrammazione. Guile pò esse usatu cum'è una lingua per sviluppà estensioni di l'applicazione, definisce a cunfigurazione, o sviluppà cumpunenti per cunnette e diverse primitive furnite da l'applicazione. Guile hè a lingua ufficiale di sviluppu di l'estensione per u sistema operatore GNU.

A guilda hè basata annantu à macchina virtuale, chì esegue un inseme d'istruzzioni purtabile generatu da un compilatore d'ottimisazione dedicatu. A macchina virtuale Guile s'integra facilmente cù u codice di l'applicazione C è C++. In più di Scheme, per u quale hè implementatu u supportu per e specificazioni R5RS, R6RS è R7RS, u prughjettu Guile hà sviluppatu compilatori per altri linguaggi, cum'è ECMAScript, Emacs Lisp è Lua (in sviluppu). U pacchettu include una biblioteca di moduli chì implementanu funzioni di serviziu cumuni, cum'è u travagliu cù u protocolu HTTP, l'analisi XML è l'usu di metudi di prugrammazione orientati à l'ughjettu.

Trà i cambiamenti in a nova versione:

  • Una interfaccia sperimentale per l'usu di backend di terzu hè stata implementata. I sviluppatori sò datu l'uppurtunità di utilizà u frontend esistente, chì cunverte u codice fonte in rapprisintazioni interna, è l'ottimisatore Guile cù altri backends chì realizanu a generazione di codice.
  • Introduce un backend esternu per generà u codice intermediu WebAssembly chì pò esse eseguitu in u navigatore. In u futuru, hè pussibule chì WebAssembly serà inclusu trà i principali obiettivi di compilazione supportati in Guile.
  • L'usu di "define" in u cuntestu di "quandu", "unless", "cond", "case", "and-let*" è espressioni "with-fluids" hè permessu.
  • Aghjunghje supportu per u mecanismu di porti persunalizati, deskrittu in u dialettu di lingua Scheme R6RS, chì permette di cunnette i gestori per a trasfurmazioni di dati (per esempiu, compressione / decompressione o mudificazione di codificazione di caratteri) processati in funzioni cum'è
    leghje, scrive è vede. Guile offre ancu un modulu "(ice-9 soft-ports)", chì furnisce una interfaccia "soft port", chì hè posizionata cum'è un analogu più simplice di "ports custom".
  • Aghjunghje un supportu per a sintassi di wisp simplificata, chì vi permette di scrive un codice più leggibile, per esempiu:

    definisce : fattoriale n
    si : zero ? n
    . 1
    * n : fattoriale (- n 1)
    display: fattoriale 5
    nova linea

    invece di

    (definisce (n fattore)
    (se (zeru? n)
    1
    (* n (fattoriale (- n 1)))))

    (visualizza (fattoriale 5))
    (nova linea)

  • U compilatore hà implementatu un novu avvisu chì hè emessu quandu i moduli chì e so funzioni ùn sò micca utilizati sò impurtati in u codice.
  • Aggiunta una nova annotazione "forse inutilizata" chì supprime l'avvirtimenti nantu à e prucedure inutilizate.
  • L'output di traccia di stack di chjama hè avà tagliatu à 500 caratteri invece di 80 (pò esse cambiatu cù a larghezza di frame predefinita).
  • U paràmetru "#:copy-on-write" hè statu aghjuntu à a prucedura "copy-file", chì permette u mecanismu di copia-on-scrittura per esse utilizatu in i sistemi di schedari chì u supportanu.
  • Ottimisazione aghjunta per assicurà l'espansione in linea di e chjama di prucedura cù argumenti di keyword.

Source: opennet.ru

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster