El llançament de Nim 0.20 es pot veure com un candidat de llançament per a la primera versió estable 1.0, incloent diversos canvis de compatibilitat necessaris per formar la primera branca estable que compromet l'estat de l'idioma. La versió 1.0 es presenta com una versió de suport estable i a llarg termini que es garantirà per mantenir la compatibilitat enrere a la part estabilitzada de l'idioma. Per separat, també estarà disponible un mode experimental al compilador, en el qual es desenvoluparan noves característiques que poden trencar la compatibilitat enrere.
Dels canvis proposats a Nim 0.20, podem destacar:
- "No" és ara sempre un operador unari, és a dir. expressions com "assert(not a)" ara no són vàlides i només es permet "assert not a";
- Les comprovacions dures per convertir nombres enters i reals en temps de compilació estan habilitades, és a dir. l'expressió "const b = uint16(-1)" ara donarà lloc a un error, ja que -1 no es pot convertir en un tipus d'enter sense signe;
- Es proporciona desempaquetat de tuples per a constants i variables de bucle.
Per exemple, ara es poden utilitzar assignacions com "const (d, e) = (7, "vuit")" i "for (x, y) in f"; - Proporciona la inicialització predeterminada de hash i taules. Per exemple, després de declarar "var s: HashSet[int]", podeu executar immediatament "s.incl(5)", que solia provocar un error;
- S'ha millorat el contingut d'informació dels errors per problemes relacionats amb l'operador "cas" i l'índex de matriu fora de límits;
- Està prohibit canviar la longitud de la taula durant la iteració.
Font: opennet.ru