GNU Guile 3.0 telah dirilis

ambil tempat melepaskan Tipuan GNU 3.0, implementasi gratis dari bahasa pemrograman fungsional Skema, yang mendukung kemampuan untuk menyematkan kode ke dalam aplikasi dalam bahasa pemrograman lain. Guile dapat digunakan sebagai bahasa untuk mengembangkan ekstensi aplikasi, menentukan konfigurasi, atau mengembangkan komponen untuk menghubungkan berbagai primitif yang disediakan oleh aplikasi. Guile adalah bahasa pengembangan ekstensi resmi untuk sistem operasi GNU.

Inti dari Guile adalah mesin virtual efisien yang mengeksekusi serangkaian instruksi portabel yang dihasilkan oleh kompiler pengoptimalan khusus. Mesin virtual Guile dengan mudah terintegrasi dengan kode aplikasi di C dan C++. Selain bahasa Skema, yang dukungan spesifikasinya diterapkan R5RS, R6RS ΠΈ R7RS, proyek Guile telah mengembangkan kompiler untuk bahasa lain, seperti ECMAScript, Emacs Lisp dan Lua (sedang dikembangkan). Paket ini mencakup perpustakaan modul yang mengimplementasikan fungsi layanan standar, seperti bekerja dengan protokol HTTP, penguraian XML, dan penggunaan metode pemrograman berorientasi objek.

Inovasi utama dalam GNU Guile 3.0 adalah pengenalan kompiler JIT, selain interpreter dan kompiler bytecode yang ditawarkan sebelumnya, yang dieksekusi dalam mesin virtual khusus yang diikat ke aplikasi dalam bentuk perpustakaan. JIT memungkinkan Anda menghasilkan kode mesin dengan cepat dan secara signifikan mempercepat eksekusi aplikasi Guile (pengujian menunjukkan peningkatan kecepatan hingga 4 kali lipat). Kompiler JIT mendukung arsitektur x86-64, i686, ARMv7 dan AArch64.

Beberapa perbaikan lainnya:

  • Dukungan untuk spesifikasi bahasa Skema baru R7RS dan modul perpustakaan yang ditentukan di dalamnya;
  • Mesin virtual Guile menyediakan dukungan untuk bytecode tingkat rendah, memungkinkan pengoptimalan tingkat lanjut;
  • Dukungan untuk menggabungkan definisi dan ekspresi internal (misalnya, "(define _ (begin (foo) #f))");
  • Implementasi terpadu dari tipe data terstruktur (β€œcatatan”) diusulkan;
  • Primitif penanganan pengecualian (melempar dan menangkap) telah dikerjakan ulang;
  • Binding yang ditentukan untuk sintaksis yang diperluas "else", "=>", "..." dan "_";
  • Dalam http-request, http-get, dan prosedur lain yang terkait dengan klien web, kemampuan untuk mengunduh konten melalui saluran komunikasi terenkripsi menggunakan TLS dengan verifikasi sertifikat yang benar telah ditambahkan.

Sumber: opennet.ru

Tambah komentar