Go 1.19 er allerede utgitt, og dette er nyhetene

nylig lanseringen av den nye versjonen av programmeringsspråket «Go 1.19» ble annonsert, en versjon som forbedrer den forrige utgivelsen ved å legge til ulike forbedringer og fremfor alt feilrettinger.Av nyhetene som vi kan trekke frem er blant annet forbedringer innen minneadministrasjon, sikkerhetsforbedringer.

For de som er nye på Go, bør du vite at dette er et programmeringsspråk som er utviklet med deltakelse fra fellesskapet som en hybridløsning som kombinerer høy ytelse til kompilerte språk med fordeler som skriptspråk som f.eks. det er enkelt å skrive kode, utvikling og feilbeskyttelse.

Syntaksen til Go er basert på de vanlige elementene i C-språket. med noen lån fra Python-språket. Språket er ganske kortfattet, men koden er lett å lese og forstå.

Go-koden er kompilert til separate binære kjørbare filer som kjører naturlig, uten å bruke en virtuell maskin (profilering, feilsøking og andre undersystemer for kjøretidsfeilsøking er innebygd som kjøretidskomponenter).

De viktigste nye funksjonene i Go 1.19

I denne nye versjonen av Go 1.19 som presenteres, er det fremhevet at det er gjort et arbeid med å avgrense støtte for funksjoner og generiske typer lagt til i den nyeste versjonen, ved hjelp av hvilken utvikleren kan definere og bruke funksjoner designet for å jobbe med flere typer samtidig, pluss at ytelsesoptimalisering av enkelte programmer som bruker generiske midler er økt med 20%.

En annen endring som skiller seg ut fra den nye versjonen er at lagt til støtte for lenker, lister og enklere syntaks for å definere overskrifter i dokumentkommentarer. Gofmt-verktøyet gir formatering med de avanserte funksjonene til kommentarer i tankene med API-dokumentasjonen.

Foruten det revidert Go-minnemodell for å tilpasses C, C++, Java, JavaScript, Rust og Swift som ikke innrømmer sekvensielt konsistente atomverdier. Nye typer som atomic.Int64 og atomic.Pointer[T] har blitt introdusert i sync/atomic-pakken for å gjøre det enklere å bruke atomverdier.

På den annen side nevnes det også at garbage collector har nå muligheten til å definere myke grenser, som håndheves ved å begrense størrelsen på haugen og returnere minnet til systemet mer aggressivt, det vil si at forbruket ikke er garantert å være innenfor de angitte grensene under alle forhold. Myke grenser kan være nyttige for å optimalisere programmer som kjører i faste minnebeholdere.

Det er også fremhevet at på Unix-systemer aktiveres ytterligere filbeskrivelser automatisk (øker RLIMIT_NOFILE-grensen), for å øke hastigheten på store endringsuttrykk på x86-64 og ARM64-systemer, brukes hopptabeller, som lar store endringsuttrykk behandles opptil 20 % raskere.

På riscv64-systemer ble overføring av funksjonsargumenter via CPU-registre implementert, noe som muliggjorde en ytelsesøkning på rundt 10%.

Av de andre endringene som skiller seg ut fra denne nye versjonen:

  • Tallrike ytelsesoptimaliseringer er implementert.
  • Lagt til støtte for dynamisk innstilling av rutinestabelstørrelsen for å redusere størrelsen på de kopierte dataene
  • Lagt til eksperimentell støtte for Linux-miljøer på systemer med Loongson-prosessorer basert på 64-bit LoongArch-arkitekturen (GOARCH=loong64).
  • Endring av minnemodell påvirket ikke kompatibiliteten med tidligere skrevet kode.
  • Lagt til en ny "unix" byggebegrensning som kan brukes i "go:build"-linjer for å filtrere ut Unix-lignende systemer (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • For å forbedre sikkerheten ignorerer os/exec-modulen nå relative stier når PATH-miljøvariabelen utvides (for eksempel, når du bestemmer banen til en kjørbar fil, sjekkes ikke lenger gjeldende katalog).

Til slutt, hvis du er interessert i å lære mer om denne nye utgivelsen, kan du sjekke detaljene på følgende lenke.


Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.