Go 1.19 již vyšel a toto jsou jeho novinky

Nedávno bylo oznámeno vydání nové verze programovacího jazyka «Go 1.19», verze, která vylepšuje předchozí vydání přidáním různých vylepšení a především oprav chyb. Z novinek můžeme vyzdvihnout mimo jiné vylepšení správy paměti, vylepšení zabezpečení.

Pro ty, kteří jsou v Go noví, měli byste vědět, že se jedná o programovací jazyk, který je vyvíjen za účasti komunity jako hybridní řešení, které kombinuje vysoký výkon kompilovaných jazyků s výhodami, jako jsou skriptovací jazyky, jako je např. snadnost psaní kódu, vývoj a ochrana proti chybám.

Syntaxe Go je založena na obvyklý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 odstraňování problémů za běhu jsou zabudovány jako komponenty runtime).

Přejít na hlavní novinky 1.19

V této nové verzi Go 1.19, která je představena, je to zdůrazněno byla odvedena práce na vylepšení podpory funkcí a generických typů přidána v nejnovější verzi, s jejíž pomocí může vývojář definovat a používat funkce určené pro práci s více typy najednou, navíc byla o 20 % zvýšena výkonová optimalizace některých programů pomocí generik.

Další změnou, která vyčnívá z nové verze, je ta přidána podpora odkazů, seznamů a jednodušší syntaxe k definování záhlaví v komentářích dokumentu. Nástroj gofmt poskytuje formátování s pokročilými funkcemi komentářů s ohledem na dokumentaci API.

Kromě toho revidovaný model paměti Go, aby byl v souladu s C, C++, Java, JavaScript, Rust a Swift které nepřipouštějí sekvenčně konzistentní atomové hodnoty. V balíčku sync/atomic byly zavedeny nové typy jako atomic.Int64 a atomic.Pointer[T], které usnadňují používání atomických hodnot.

Na druhou stranu se také uvádí, že garbage collector má nyní možnost definovat měkké limity, které jsou vynuceny omezením velikosti haldy a vracením paměti do systému agresivněji, to znamená, že není zaručeno, že spotřeba bude za všech podmínek ve stanovených mezích. Měkké limity mohou být užitečné pro optimalizaci programů, které běží v pevných paměťových kontejnerech.

To je také zdůrazněno v systémech Unix jsou automaticky povoleny další deskriptory souborů (zvýšením limitu RLIMIT_NOFILE) se pro urychlení výrazů velkých změn na systémech x86-64 a ARM64 používají tabulky skoků, které umožňují zpracovat výrazy velkých změn až o 20 % rychleji.

Na systémech riscv64 bylo implementováno předávání argumentů funkcí přes registry CPU, což umožnilo zvýšení výkonu o přibližně 10 %.

Z dalších změn které vyčnívají z této nové verze:

  • Bylo implementováno mnoho optimalizací výkonu.
  • Přidána podpora pro dynamické nastavení velikosti zásobníku rutin, aby se zmenšila velikost kopírovaných dat
  • Přidána experimentální podpora pro prostředí Linuxu na systémech s procesory Loongson založenými na 64bitové architektuře LoongArch (GOARCH=loong64).
  • Změna paměťového modelu neovlivnila kompatibilitu s dříve napsaným kódem.
  • Přidáno nové omezení sestavení „unix“, které lze použít v řádcích „go:build“ k odfiltrování systémů podobných Unixu (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • Pro zlepšení zabezpečení nyní modul os/exec ignoruje relativní cesty při rozšiřování proměnné prostředí PATH (například při určování cesty ke spustitelnému souboru se již nekontroluje aktuální adresář).

A konečně, pokud se chcete dozvědět více o této nové verzi, můžete zkontrolovat podrobnosti na adrese následující odkaz.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.