Wersja Nima 1.2.0

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

Dodaj komentarz