GNU Guile 3.0 chiqarildi

bo'lib o'tdi reliz GNU Guile 3.0, funktsional dasturlash tilini bepul amalga oshirish Sxema, bu boshqa dasturlash tillaridagi ilovalarga kod kiritish imkoniyatini qo'llab-quvvatlaydi. Guile ilova kengaytmalarini ishlab chiqish, konfiguratsiyani aniqlash yoki dastur tomonidan taqdim etilgan turli xil primitivlarni ulash uchun komponentlarni ishlab chiqish uchun til sifatida ishlatilishi mumkin. Guile GNU operatsion tizimi uchun rasmiy kengaytmani ishlab chiqish tilidir.

Guile markazida maxsus optimallashtiruvchi kompilyator tomonidan yaratilgan portativ ko'rsatmalar to'plamini bajaradigan samarali virtual mashina mavjud. Guile virtual mashinasi C va C++ tillarida dastur kodi bilan osongina birlashadi. Sxema tiliga qo'shimcha ravishda, spetsifikatsiyani qo'llab-quvvatlash amalga oshiriladi R5RS, R6RS ΠΈ R7RS, Guile loyihasi ECMAScript, Emacs Lisp va Lua (ishlab chiqilmoqda) kabi boshqa tillar uchun kompilyatorlarni ishlab chiqdi. Paket HTTP protokoli bilan ishlash, XML tahlili va ob'ektga yo'naltirilgan dasturlash usullaridan foydalanish kabi standart xizmat funktsiyalarini amalga oshiradigan modullar kutubxonasini o'z ichiga oladi.

GNU Guile 3.0 dagi asosiy yangilik avval taklif qilingan tarjimon va bayt-kod kompilyatoriga qo'shimcha ravishda kutubxona ko'rinishidagi ilovaga bog'langan maxsus virtual mashinada bajariladigan JIT kompilyatorining joriy etilishi bo'ldi. JIT tez orada mashina kodini yaratishga imkon beradi va Guile ilovalarining bajarilishini sezilarli darajada tezlashtiradi (sinovlar 4 martagacha tezlikni ko'rsatadi). JIT kompilyatori x86-64, i686, ARMv7 va AArch64 arxitekturalarini qo'llab-quvvatlaydi.

Boshqa ba'zi yaxshilanishlar:

  • Yangi sxema tili spetsifikatsiyasini qo'llab-quvvatlash R7RS va unda belgilangan kutubxona modullari;
  • Guile virtual mashinasi quyi darajadagi bayt-kodni qo'llab-quvvatlaydi, bu esa ilg'or optimallashtirish imkonini beradi;
  • Ichki ta'riflar va ifodalarni birlashtirishni qo'llab-quvvatlash (masalan, "(define _ (begin (foo) #f))");
  • Strukturaviy ma'lumotlar turini ("yozuvlar") yagona amalga oshirish taklif etiladi;
  • Istisnolarni qayta ishlash primitivlari (otish va ushlash) qayta ishlangan;
  • Kengaytirilgan "else", "=>", "..." va "_" sintaksisi uchun belgilangan bog'lanishlar;
  • Http-request, http-get va veb-mijoz bilan bog'liq boshqa protseduralarda to'g'ri sertifikat tekshiruvi bilan TLS yordamida shifrlangan aloqa kanali orqali kontentni yuklab olish imkoniyati qo'shildi.

Manba: opennet.ru

a Izoh qo'shish