Nim 1.2.0 release

En ny version av systemprogrammeringsspråket Nim har släppts. Den har delvis inkompatibilitet med version 1.0, till exempel på grund av striktare typkonvertering. Men i det här fallet finns det en flagga -useVersion:1.0.

Den huvudsakliga innovationen är en ny sophämtare, aktiverad av alternativet -gc:arc. Språkets författare, Andreas Rumpf, kommer att skriva en detaljerad artikel om fördelarna med ARC, men tills vidare inbjuder han dig att läsa med sitt framträdande på FOSDEM, som visar benchmarkresultaten.

  • Kompilatorn stöder nu alternativet --asm för en mer bekväm granskning av den producerade monteringskoden.
  • Align pragman kan användas på objektvariabler och fält, detta liknar alignas i C/C++.
  • =sink-operatören är nu valfri. Kompilatorn kan nu använda en kombination av =destroy och copyMem för att flytta runt objekt effektivt.
  • Omvandlingar till osignerade heltal kontrolleras inte vid körning. Detaljer i https://github.com/nim-lang/RFCs/issues/175
  • Ny syntax för lvalue: var b {.byaddr.} = expr, ansluten via import std/decls
  • Kompilatorn stöder en ny switch -panics:on, som förvandlar runtime-fel som IndexError eller OverflowError till fatala fel som inte kan fångas upp via försök. Detta kan förbättra körtidseffektiviteten och programstorleken.
  • Den genererade JS-koden använder bara mellanslag istället för en sammanblandning av mellanslag och tabbar.
  • Kompilatorn har lagt till stöd för .localPassc-pragman, som kan användas för att hantera speciella C(++)-backend-alternativ för en C(++)-fil som genereras från den aktuella Nim-modulen.
  • Nimpretty accepterar inte längre ett negativt argument för att sätta indrag, eftersom detta var att bryta filer.
  • Nya makron har lagts till (samla, dup, fånga), kopplade via importsocker.

Dessutom har många ändringar lagts till i standardbiblioteket och många buggfixar.

Källa: linux.org.ru

Lägg en kommentar