Η έκδοση Nim 0.20 μπορεί να θεωρηθεί υποψήφια για την πρώτη σταθερή έκδοση 1.0, ενσωματώνοντας αρκετές αλλαγές διαλειτουργικότητας που απαιτούνται για να σχηματιστεί ο πρώτος σταθερός κλάδος που θα δεσμεύσει την κατάσταση της γλώσσας. Η έκδοση 1.0 διαφημίζεται ως μια σταθερή, μακροπρόθεσμη έκδοση υποστήριξης που θα είναι εγγυημένη ότι θα διατηρήσει τη συμβατότητα προς τα πίσω στο σταθεροποιημένο τμήμα της γλώσσας. Ξεχωριστά, ο μεταγλωττιστής θα έχει επίσης διαθέσιμη μια πειραματική λειτουργία, στην οποία θα αναπτυχθούν νέες δυνατότητες που ενδέχεται να παραβιάζουν τη συμβατότητα προς τα πίσω.
Μεταξύ των αλλαγών που προτείνονται στο Nim 0.20 είναι:
- Το "όχι" είναι τώρα πάντα ένας μοναδικός τελεστής, δηλ. εκφράσεις όπως "δηλώνω (όχι α)" δεν επιτρέπονται πλέον και επιτρέπεται μόνο "υποστηρίζω όχι α".
- Ενεργοποίησε αυστηρούς ελέγχους για τη μετατροπή ακεραίων και πραγματικών αριθμών στο στάδιο της μεταγλώττισης, π.χ. η έκφραση "const b = uint16(-1)" θα οδηγήσει τώρα σε σφάλμα, αφού το -1 δεν μπορεί να μετατραπεί σε ανυπόγραφο ακέραιο τύπο.
- Παρέχεται αποσυσκευασία των πλειάδων για σταθερές και μεταβλητές βρόχου.
Για παράδειγμα, τώρα μπορείτε να χρησιμοποιήσετε αναθέσεις όπως 'const (d, e) = (7, "eight")" και "for (x, y) in f"; - Παρέχεται προεπιλεγμένη προετοιμασία των κατακερματισμών και των πινάκων. Για παράδειγμα, αφού δηλώσετε "var s: HashSet[int]", μπορείτε να εκτελέσετε αμέσως το "s.incl(5)", το οποίο προηγουμένως οδήγησε σε σφάλμα.
- Βελτιωμένες πληροφορίες σφάλματος για προβλήματα που σχετίζονται με τον τελεστή "περίπτωση" και το ευρετήριο πίνακα εκτός ορίων.
- Απαγορεύεται η αλλαγή του μήκους του πίνακα κατά την επανάληψη.
Πηγή: opennet.ru