Utgivning av programmeringsspråket Go 1.25

Efter sex månaders utveckling har programmeringsspråket Go, utvecklat av Google med deltagande av communityn, släppts som version 1.25. Språket kombinerar den höga prestandan hos kompilerade språk med fördelarna med skriptspråk som lätt att skriva kod, hög utvecklingshastighet och felskydd. Projektkoden distribueras under BSD-licensen.

Gos syntax är baserad på välbekanta delar av C-språket med några lån från Oberon-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 användning av en virtuell maskin (profilering, felsökningsmoduler och andra delsystem för upptäckt av runtimeproblem är integrerade som runtime-komponenter), vilket möjliggör prestanda jämförbar med C-program.

Projektet är initialt utvecklat med sikte på flertrådsprogrammering och effektiv drift på flerkärniga system. Till exempel på operatörsnivå implementeras verktyg för att organisera parallella beräkningar och interaktion mellan parallella metoder. Språket ger också inbyggt buffertöverskridande skydd och skräpinsamlingsmöjligheter.

Bland ändringarna i den nya utgåvan:

  • Lade till den experimentella sophämtaren "greenteagc", utformad för att förbättra prestandan för att skapa och skanna små objekt. Program som använder sophämtning i stor utsträckning, med hjälp av "greenteagc", har visat sig minska sophämtningskostnaderna med 10–40 %.
  • De experimentella paketen encoding/json/v2 och encoding/json/jsontext har lagts till. Det första paketet innehåller en omskriven, högpresterande implementering av encoding/json-paketet. Det andra paketet tillhandahåller funktioner för lågnivåbearbetning av JSON-syntax.
  • Ett nytt testing/synctest-paket har lagts till för att testa synkronisering mellan olika trådar med parallell kod.
  • Kommandot "go build" har alternativet "-asan" aktiverat som standard, vilket kontrollerar minnesläckor när programmet avslutas.
  • De nya analysverktygen "waitgroup" och "hostport" har lagts till i kommandot "go vet" för att kontrollera om sync.WaitGroup.Add och fmt.Sprintf("%s:%d", host, port) används felaktigt.
  • Vid beräkning av GOMAXPROCS-värdet anger det nu inte bara antalet tillgängliga logiska processorer, utan tar även hänsyn till de CPU-prestandagränser som tillämpas i containrar.
  • Kompilatorn och länkaren stöder nu generering av felsökningsinformation i DWARF5-formatet, vilket ger en mer kompakt representation av data.

Källa: opennet.ru

Lägg en kommentar