Κυκλοφορία της γλώσσας προγραμματισμού Nim 1.2.0

Εισήχθη έκδοση γλώσσας προγραμματισμού συστήματος Nim 1.2. Η γλώσσα Nim χρησιμοποιεί στατική πληκτρολόγηση και δημιουργήθηκε με προσοχή στα Pascal, C++, Python και Lisp. Ο πηγαίος κώδικας Nim μεταγλωττίζεται σε αναπαράσταση C, C++ ή JavaScript. Στη συνέχεια, ο κώδικας C/C++ που προκύπτει μεταγλωττίζεται σε ένα εκτελέσιμο αρχείο χρησιμοποιώντας οποιονδήποτε διαθέσιμο μεταγλωττιστή (clang, gcc, icc, Visual C++), ο οποίος σας επιτρέπει να επιτύχετε απόδοση κοντά στο C, εάν δεν λάβετε υπόψη το κόστος εκτέλεσης ο συλλέκτης σκουπιδιών. Παρόμοια με την Python, το Nim χρησιμοποιεί εσοχή ως οριοθέτες μπλοκ. Υποστηρίζονται εργαλεία και δυνατότητες μεταπρογραμματισμού για τη δημιουργία γλωσσών για συγκεκριμένο τομέα (DSL). Κωδικός έργου παρέχονται υπό την άδεια του MIT.

Οι αξιοσημείωτες αλλαγές στη νέα έκδοση περιλαμβάνουν:

  • Εφαρμόστηκε νέος απορριμματοσυλλέκτης ARC ("-gc:arc").
  • Στην ενότητα "ζάχαρη"Προστέθηκαν νέες μακροεντολές συλλογή, αντιγραφή και λήψη.
  • Προστέθηκε νέα μακροεντολή "με".
  • Ένα μεγάλο μέρος νέων κλήσεων έχει προστεθεί στην τυπική βιβλιοθήκη, συμπεριλαμβανομένων των strformat.fmt, strtabs.clear, browsers.osOpen, typetraits.tupleLen, typetraits.genericParams, os.normalizePathEnd, times.fromUnixFloat, os.isRelativeLeapDay, times. , net.getPeerCertificates, jsconsole.trace, jsconsole.table, jsconsole.exception, sequtils.countIt, κ.λπ.
  • Προστέθηκαν νέες ενότητες std/stackframes και std/compilesettings.
  • Οι επιλογές «—asm» (για ανάλυση του παραγόμενου κωδικού συγκροτήματος) και «—panics:on» για αναγκαστική έξοδο στα σφάλματα IndexError και OverflowError έχουν προστεθεί στον μεταγλωττιστή, χωρίς τη δυνατότητα παρεμπόδισης από τον χειριστή «try».
  • Βελτιωμένη ανίχνευση πιθανών υπερχείλισης buffer.

Πηγή: opennet.ru

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