Go programovací jazyk verze 1.15

Předložené vydání programovacího jazyka Přejděte na 1.15, který je vyvíjen společností Google za účasti komunity jako hybridní řešení, které kombinuje vysoký výkon kompilovaných jazyků s výhodami skriptovacích jazyků, jako je snadné psaní kódu, rychlost vývoje a ochrana proti chybám. Kód projektu distribuovány pod licencí BSD.

Syntaxe Go je založena na známých prvcích jazyka C s některými výpůjčkami z jazyka Python. Jazyk je poměrně stručný, ale kód je snadno čitelný a srozumitelný. Go kód je zkompilován do samostatných binárních spustitelných souborů, které běží nativně bez použití virtuálního stroje (profilování, ladění a další subsystémy pro detekci problémů za běhu jsou integrovány jako runtime komponenty), což umožňuje dosáhnout výkonu srovnatelného s programy C.

Projekt je zpočátku vyvíjen s ohledem na vícevláknové programování a efektivní provoz na vícejádrových systémech, včetně poskytování prostředků implementovaných na úrovni operátora pro organizaci paralelních výpočtů a interakci mezi paralelně prováděnými metodami. Jazyk také poskytuje vestavěnou ochranu proti přetečení alokovaných paměťových bloků a poskytuje možnost používat garbage collector.

hlavní inovacepředstaveno ve verzi Go 1.15:

  • Podstatně se zlepšila práce linkeru jak ve zvýšení rychlosti provozu a snížení spotřeby paměti, tak ve směru zjednodušení údržby kódu. Při testování na operačních systémech používajících formát spustitelných souborů ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris) byla typická sada velkých aplikací Go vytvořena o 20 % rychleji a spotřeba paměti se snížila v průměru o 30 %. Zvýšení produktivity bylo umožněno přechodem na nový formát objektových souborů a přepracováním vnitřních fází pro zvýšení úrovně paralelizace práce. Nativní linker se nyní standardně používá na systémech linux/amd64 a linux/arm64 v "-buildmode=pie", který již nevyžaduje použití C linkeru.
  • Za běhu se výrazně zlepšila distribuce malých objektů na systémech s velkým počtem jader CPU a snížila se latence. V případě selhání se místo adresy zobrazí hodnoty s číselnými a řetězcovými typy. Při odesílání signálů SIGSEGV, SIGBUS a SIGFPE do aplikace Go v nepřítomnosti obslužné rutiny os/signal.Notify aplikace skončí s výstupem trasování zásobníku (dříve bylo chování nepředvídatelné).
  • Kompilátor byl optimalizován tak, aby zmenšil velikost generovaných spustitelných souborů v průměru o 5 % zastavením zahrnutí některých metadat pro garbage collector a agresivnějším čištěním nepoužívaných metadat.
  • Do kompilátoru a assembleru byl přidán příznak „-spectre“, aby byla povolena ochrana proti útokům třídy Spectre (pro většinu programů to není vyžadováno; povolení této možnosti lze ospravedlnit pouze pro některé velmi specifické případy).
  • V certifikátech X.509 bylo pole CommonName zastaralé, které již není považováno za název hostitele, pokud pole Subject Alternative Names chybí.
  • Příkaz "go" v proměnné prostředí GOPROXY nyní může vypsat více proxy serverů oddělených čárkou nebo "|". Pokud první proxy v seznamu vrátí chybu (404 nebo 410), bude proveden pokus o spojení prostřednictvím druhého proxy atd.
  • Obslužný program vet přidal varování o pokusu o převod z string(x), pokud je "x" celočíselný typ jiný než runa nebo byte.
  • Do nástroje objdump byl přidán příznak "-gnu", který podporuje rozebrání syntaxe assembleru GNU.
  • Přidán nový balíček čas/tzdata, který umožňuje integrovat do programu databázi s údaji o časovém pásmu.
  • Ze zdrojových textů a dokumentace odstraněno fráze whitelist/blacklist a master/slave, které jsou nyní nahrazeny „allowlist“, „blocklist“, „process“, „pty“, „proc“ a „control“.
  • Ve standardní knihovně byla provedena velká část drobných vylepšení.
  • Přidána podpora pro OpenBSD 6.7 v režimech GOARCH=arm a GOARCH=arm64 (dříve byly podporovány pouze GOARCH=386 a GOARCH=amd64).
  • Pokračoval vývoj 64bitové platformy RISC-V (GOOS=linux, GOARCH=riscv64).
  • U 32bitových x86 systémů příští vydání zvýší minimální systémové požadavky – nadále budou podporovány pouze procesory s SSE2. K sestavení v režimu GOARCH=386 budete potřebovat alespoň Intel Pentium 4 (vydáno v roce 2000) nebo AMD Opteron/Athlon 64 (vydáno v roce 2003).

Zdroj: opennet.ru

Přidat komentář