Wydanie Nim 1.2.0

Nowa wersja systemowego języka programowania Nim została wydana. Wprowadza częściową niekompatybilność z wersją 1.0, na przykład z powodu bardziej rygorystycznego przekształcania typów. Ale istnieje flag —useVersion:1.0, aby to uwzględnić.

Najważniejsza nowość to nowy zbieracz śmieci, aktywowany opcją —gc:arc. Autor języka, Andreas Rumpf, zamierza napisać szczegółowy artykuł na temat zalet ARC, a na razie zachęca do zapoznania się z jego wystąpieniem na FOSDEM, gdzie zaprezentowane są wyniki benchmarków.

  • Kompilator teraz wspiera opcję —asm, co ułatwia analizę generowanego kodu assemblera.
  • Pragma align może być używana dla zmiennych oraz pól obiektów, podobnie jak alignas w C/C++.
  • =sink operator jest teraz opcjonalny. Kompilator może teraz wykorzystać kombinację =destroy i copyMem do efektywnego przenoszenia obiektów.
  • Przekształcenia do unsigned integers nie są sprawdzane w czasie wykonywania. Szczegóły w https://github.com/nim-lang/RFCs/issues/175
  • Nowa składnia dla lvalue: var b {.byaddr.} = expr, aktywowana za pomocą import std/decls
  • Kompilator wspiera nowy klucz —panics:on, który przekształca błędy runtime, takie jak IndexError lub OverflowError, w błędy fatalne, których nie można przechwycić za pomocą try. Może to poprawić wydajność runtime oraz rozmiar programu.
  • Generowany kod JS używa tylko spacji, zamiast mieszanki spacji i tabulatorów.
  • Do kompilatora dodano wsparcie dla pragma .localPassc, które pozwala na przetwarzanie specjalnych opcji backendu C(++) dla pliku C(++) generowanego z bieżącego modułu Nim.
  • Nimpretty nie akceptuje teraz ujemnych argumentów do ustawiania wcięć, ponieważ łamało to pliki.
  • Dodano nowe makra (collect, dup, capture), aktywowane za pomocą import sugar.

Oprócz tego dodano wiele zmian w standardowej bibliotece i wiele poprawek błędów.

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster