Κυκλοφόρησε το GNU Guile 3.0

πήρε θέση απελευθέρωση GNU Guile 3.0, μια δωρεάν υλοποίηση μιας γλώσσας λειτουργικού προγραμματισμού Σχέδιο, το οποίο υποστηρίζει τη δυνατότητα ενσωμάτωσης κώδικα σε εφαρμογές σε άλλες γλώσσες προγραμματισμού. Το Guile μπορεί να χρησιμοποιηθεί ως γλώσσα για την ανάπτυξη επεκτάσεων εφαρμογών, τον καθορισμό παραμέτρων ή την ανάπτυξη στοιχείων για τη σύνδεση των διαφόρων πρωτόγονων που παρέχονται από την εφαρμογή. Το Guile είναι η επίσημη γλώσσα ανάπτυξης επέκτασης για το λειτουργικό σύστημα GNU.

Στην καρδιά του Guile βρίσκεται μια αποτελεσματική εικονική μηχανή που εκτελεί ένα φορητό σύνολο εντολών που δημιουργούνται από έναν ειδικό μεταγλωττιστή βελτιστοποίησης. Η εικονική μηχανή Guile ενσωματώνεται εύκολα με τον κώδικα εφαρμογής σε C και C++. Εκτός από τη γλώσσα Scheme, για την οποία υλοποιείται υποστήριξη προδιαγραφών R5RS, R6RS и R7RS, το έργο Guile έχει αναπτύξει μεταγλωττιστές για άλλες γλώσσες, όπως ECMAScript, Emacs Lisp και Lua (υπό ανάπτυξη). Το πακέτο περιλαμβάνει μια βιβλιοθήκη ενοτήτων που υλοποιούν τυπικές λειτουργίες υπηρεσιών, όπως η εργασία με το πρωτόκολλο HTTP, η ανάλυση XML και η χρήση αντικειμενοστρεφών μεθόδων προγραμματισμού.

Η βασική καινοτομία στο GNU Guile 3.0 ήταν η εισαγωγή ενός μεταγλωττιστή JIT, εκτός από τον προηγουμένως προσφερόμενο μεταγλωττιστή διερμηνέα και bytecode, που εκτελούνταν σε μια ειδική εικονική μηχανή συνδεδεμένη με την εφαρμογή με τη μορφή βιβλιοθήκης. Το JIT σάς επιτρέπει να δημιουργείτε κώδικα μηχανής εν κινήσει και επιταχύνει σημαντικά την εκτέλεση των εφαρμογών Guile (οι δοκιμές δείχνουν επιτάχυνση έως και 4 φορές). Ο μεταγλωττιστής JIT υποστηρίζει αρχιτεκτονικές x86-64, i686, ARMv7 και AArch64.

Μερικές άλλες βελτιώσεις:

  • Υποστήριξη για τη νέα προδιαγραφή γλώσσας Scheme R7RS και ενότητες βιβλιοθήκης που ορίζονται σε αυτό.
  • Η εικονική μηχανή Guile παρέχει υποστήριξη για bytecode χαμηλότερου επιπέδου, επιτρέποντας προηγμένες βελτιστοποιήσεις.
  • Υποστήριξη για συνδυασμό εσωτερικών ορισμών και εκφράσεων (για παράδειγμα, "(define _ (begin (foo) #f))");
  • Προτείνεται μια ενοποιημένη υλοποίηση ενός δομημένου τύπου δεδομένων («αρχεία»).
  • Εξαιρέσεις χειρισμού πρωτόγονων (ρίψη και πιάσιμο) έχουν επεξεργαστεί εκ νέου.
  • Καθορισμένες δεσμεύσεις για εκτεταμένη σύνταξη "else", "=>", "..." και "_";
  • Στο http-request, http-get και άλλες διαδικασίες που σχετίζονται με το πρόγραμμα-πελάτη Ιστού, προστέθηκε η δυνατότητα λήψης περιεχομένου μέσω κρυπτογραφημένου καναλιού επικοινωνίας χρησιμοποιώντας TLS με σωστή επαλήθευση πιστοποιητικού.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο