Go 1.19 har redan släppts och det här är dess nyheter

nyligen lanseringen av den nya versionen av programmeringsspråket «Go 1.19» tillkännagavs, en version som förbättrar den tidigare utgåvan genom att lägga till olika förbättringar och framför allt buggfixar.Av de nyheter som vi kan lyfta fram är bland annat förbättringar inom minneshantering, säkerhetsförbättringar.

För dig som är ny på Go bör du veta att detta är ett programmeringsspråk som är utvecklat med deltagande av communityn som en hybridlösning som kombinerar hög prestanda hos kompilerade språk med fördelar som skriptspråk som t.ex. det är lätt att skriva kod, utveckling och buggskydd.

Syntaxen för Go är baserad på de vanliga elementen i C-språket. med några lån från Python-språket. Språket är ganska kortfattat, men koden är lätt att läsa och förstå.

Go-koden kompileras till separata binära körbara filer som körs inbyggt, utan att använda en virtuell maskin (profilering, felsökning och andra runtime-felsökningsundersystem är inbyggda som runtime-komponenter).

Gå 1.19 huvudnyheter

I den här nya versionen av Go 1.19 som presenteras markeras det arbete har gjorts med att förfina stödet för funktioner och generiska typer läggs till i den senaste versionen, med hjälp av vilken utvecklaren kan definiera och använda funktioner utformade för att fungera med flera typer samtidigt, plus prestandaoptimering av vissa program som använder generika har ökats med 20%.

En annan förändring som sticker ut från den nya versionen är att lagt till stöd för länkar, listor och enklare syntax för att definiera rubriker i dokumentkommentarer. Gofmt-verktyget tillhandahåller formatering med de avancerade funktionerna i kommentarer i åtanke med API-dokumentationen.

Förutom det reviderad Go-minnesmodell för att anpassas till C, C++, Java, JavaScript, Rust och Swift som inte medger sekventiellt konsekventa atomvärden. Nya typer som atomic.Int64 och atomic.Pointer[T] har introducerats i sync/atomic-paketet för att göra det lättare att använda atomvärden.

Å andra sidan nämns det också garbage collector har nu möjlighet att definiera mjuka gränser, som upprätthålls genom att begränsa storleken på högen och återföra minnet till systemet mer aggressivt, det vill säga att förbrukningen inte är garanterad att ligga inom de angivna gränserna under alla förhållanden. Mjuka gränser kan vara användbara för att optimera program som körs i fasta minnesbehållare.

Det framhävs också att på Unix-system aktiveras ytterligare filbeskrivningar automatiskt (genom att öka RLIMIT_NOFILE-gränsen), för att påskynda uttryck för stora förändringar på x86-64- och ARM64-system, används hopptabeller, som gör att uttryck för stora förändringar kan bearbetas upp till 20 % snabbare.

På riscv64-system implementerades överföring av funktionsargument via CPU-register, vilket möjliggjorde en prestandaökning på cirka 10%.

Av de andra förändringarna som sticker ut från den här nya versionen:

  • Många prestandaoptimeringar har implementerats.
  • Lade till stöd för att dynamiskt ställa in rutinstackstorleken för att minska storleken på den kopierade datan
  • Lade till experimentellt stöd för Linux-miljöer på system med Loongson-processorer baserade på 64-bitars LoongArch-arkitekturen (GOARCH=loong64).
  • Att ändra minnesmodellen påverkade inte kompatibiliteten med tidigare skriven kod.
  • Lade till en ny "unix" byggbegränsning som kan användas i "go:build"-linjer för att filtrera bort Unix-liknande system (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • För att förbättra säkerheten ignorerar os/exec-modulen nu relativa sökvägar när miljövariabeln PATH expanderas (till exempel när sökvägen till en körbar fil bestäms kontrolleras inte längre den aktuella katalogen).

Slutligen, om du är intresserad av att lära dig mer om den här nya versionen, kan du kontrollera detaljerna på följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.