GNU Guile 3.0 hè stata liberata

hè accadutu liberazione GNU Guile 3.0, una implementazione libera di una lingua di prugrammazione funziunale Scheme, chì sustene a capacità di incrustà u 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.

À u core di Guile hè una macchina virtuale efficiente chì eseguisce un inseme portable di struzzioni generati da un compilatore d'ottimisazione speciale. A macchina virtuale Guile si integra facilmente cù u codice di l'applicazione in C è C++. In più di a lingua Scheme, per quale u supportu di specificazione hè implementatu R5RS, R6RS и R7RS, u prughjettu Guile hà sviluppatu compilatori per altre lingue, cum'è ECMAScript, Emacs Lisp è Lua (in sviluppu). U pacchettu include una biblioteca di moduli chì implementanu funzioni di serviziu standard, cum'è u travagliu cù u protocolu HTTP, l'analisi XML è l'usu di metudi di prugrammazione orientata à l'ughjettu.

L'innuvazione chjave in GNU Guile 3.0 hè stata l'intruduzione di un compilatore JIT, in più di l'interprete offrittu prima è u compilatore di bytecode, eseguitu in una macchina virtuale speciale ligata à l'applicazione in forma di biblioteca. JIT vi permette di generà codice di macchina à a mosca è accelera significativamente l'esekzione di l'applicazioni Guile (i testi mostranu accelerazione finu à 4 volte). U compilatore JIT supporta l'architetture x86-64, i686, ARMv7 è AArch64.

Alcune altre migliure:

  • Supportu per a nova specificazione di lingua Scheme R7RS è i moduli di biblioteca definiti in questu;
  • A macchina virtuale Guile furnisce supportu per bytecode di livellu più bassu, chì permette ottimisazioni avanzate;
  • Supportu per cumminà definizioni internu è espressioni (per esempiu, "(define _ (begin (foo) #f))");
  • Una implementazione unificata di un tipu di dati strutturatu ("records") hè pruposta;
  • I primitivi di manipolazione d'eccezzioni (throw and catch) sò stati rielaborati;
  • Ligami definiti per a sintassi allargata "else", "=>", "..." è "_";
  • In http-request, http-get è altre prucedure relative à u cliente web, a capacità di scaricà u cuntenutu nantu à un canale di cumunicazione criptata utilizendu TLS cù a verificazione di certificatu curretta hè stata aghjunta.

Source: opennet.ru

Add a comment