Została udostępniona nowa wersja języka programowania systemu Nim. Wykazuje częściową niezgodność z wersją 1.0, na przykład ze względu na bardziej rygorystyczną konwersję typów. Ale w tym przypadku istnieje flaga -useVersion:1.0.
Główną innowacją jest nowy moduł zbierający elementy bezużyteczne, włączany opcją -gc:arc. Autor języka, Andreas Rumpf, napisze szczegółowy artykuł o zaletach ARC, ale na razie zaprasza do lektury z jego występem w FOSDEM, który pokazuje wyniki testów porównawczych.
- Kompilator obsługuje teraz opcję --asm dla wygodniejszego sprawdzania wytworzonego kodu asemblera.
- Pragmy wyrównania można używać na zmiennych obiektowych i polach, jest to podobne do wyrównania w C/C++.
- Operator =sink jest teraz opcjonalny. Kompilator może teraz używać kombinacji =destroy i copyMem do wydajnego przenoszenia obiektów.
- Konwersje na liczby całkowite bez znaku nie są sprawdzane w czasie wykonywania. Szczegóły w https://github.com/nim-lang/RFCs/issues/175
- Nowa składnia lwartości: var b {.byaddr.} = wyrażenie, połączenie poprzez import std/decls
- Kompilator obsługuje nowy przełącznik -panics:on, który zamienia błędy czasu wykonania, takie jak IndexError lub OverflowError, w błędy krytyczne, których nie można wychwycić za pomocą próby. Może to poprawić wydajność środowiska wykonawczego i rozmiar programu.
- Wygenerowany kod JS używa tylko spacji zamiast mieszaniny spacji i tabulatorów.
- Kompilator dodał obsługę pragmy .localPassc, której można używać do obsługi specjalnych opcji zaplecza C(++) dla pliku C(++) generowanego z bieżącego modułu Nim.
- Nimpretty nie akceptuje już negatywnego argumentu za ustawienie wcięcia, ponieważ powodowało to uszkodzenie plików.
- Dodano nowe makra (zbieranie, kopiowanie, przechwytywanie), połączone poprzez import cukru.
Ponadto do standardowej biblioteki dodano wiele zmian i wiele poprawek błędów.
Źródło: linux.org.ru