Go 1.19 už vyšiel a toto sú jeho novinky

Nedávno bolo oznámené vydanie novej verzie programovacieho jazyka «Go 1.19», verzia, ktorá vylepšuje predchádzajúce vydanie pridaním rôznych vylepšení a predovšetkým opráv chýb.Z noviniek môžeme vyzdvihnúť okrem iného vylepšenia správy pamäte, vylepšenia bezpečnosti.

Pre tých, ktorí sú na Go noví, mali by ste vedieť, že ide o programovací jazyk, ktorý je vyvinutý za účasti komunity ako hybridné riešenie, ktoré kombinuje vysoký výkon kompilovaných jazykov s výhodami, ako sú skriptovacie jazyky, ako napr. jednoduchosť písania kódu, vývoj a ochrana pred chybami.

Syntax Go je založená na obvyklých prvkoch jazyka C. s niektorými výpožičkami z jazyka Python. Jazyk je pomerne stručný, ale kód je ľahko čitateľný a zrozumiteľný.

Go kód je zostavený do samostatných binárnych spustiteľných súborov ktoré bežia natívne, bez použitia virtuálneho stroja (profilovanie, ladenie a iné podsystémy na riešenie problémov pri behu sú zabudované ako komponenty runtime).

Hlavné nové funkcie aplikácie Go 1.19

V tejto novej verzii Go 1.19, ktorá je prezentovaná, je to zdôraznené bola vykonaná práca na zdokonalení podpory funkcií a generických typov pridaný v najnovšej verzii, pomocou ktorého môže vývojár definovať a používať funkcie určené na prácu s viacerými typmi naraz, plus optimalizácia výkonu niektorých programov pomocou generík bola zvýšená o 20 %.

Ďalšou zmenou, ktorá sa od novej verzie odlišuje, je táto pridaná podpora pre odkazy, zoznamy a jednoduchšia syntax na definovanie hlavičiek v komentároch dokumentu. Pomôcka gofmt poskytuje formátovanie s pokročilými funkciami komentárov s ohľadom na dokumentáciu API.

Okrem toho revidovaný model pamäte Go, aby bol v súlade s C, C++, Java, JavaScript, Rust a Swift ktoré nepripúšťajú sekvenčne konzistentné atómové hodnoty. Nové typy ako atomic.Int64 a atomic.Pointer[T] boli zavedené v balíku sync/atomic, aby sa uľahčilo používanie atómových hodnôt.

Na druhej strane sa tiež uvádza, že garbage collector má teraz možnosť definovať mäkké limity, ktoré sú vynútené obmedzením veľkosti haldy a agresívnejším vracaním pamäte do systému, to znamená, že spotreba nie je zaručená v rámci stanovených limitov za všetkých podmienok. Mäkké limity môžu byť užitočné pri optimalizácii programov, ktoré bežia v pevných pamäťových kontajneroch.

Je tiež zdôraznené, že na systémoch Unix sú automaticky povolené ďalšie deskriptory súborov (zvýšenie limitu RLIMIT_NOFILE), na urýchlenie výrazov veľkých zmien na systémoch x86-64 a ARM64 sa používajú tabuľky skokov, ktoré umožňujú spracovať výrazy veľkých zmien až o 20 % rýchlejšie.

Na systémoch riscv64 bolo implementované odovzdávanie argumentov funkcií cez registre CPU, čo umožnilo zvýšenie výkonu o približne 10 %.

Z ďalších zmien ktoré vyčnievajú z tejto novej verzie:

  • Bolo implementovaných množstvo optimalizácií výkonu.
  • Pridaná podpora pre dynamické nastavenie veľkosti zásobníka rutín, aby sa zmenšila veľkosť kopírovaných údajov
  • Pridaná experimentálna podpora pre prostredia Linux na systémoch s procesormi Loongson založenými na 64-bitovej architektúre LoongArch (GOARCH=loong64).
  • Zmena pamäťového modelu neovplyvnila kompatibilitu s predtým napísaným kódom.
  • Pridané nové obmedzenie zostavovania „unix“, ktoré možno použiť v riadkoch „go:build“ na odfiltrovanie systémov podobných Unixu (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • Na zlepšenie bezpečnosti teraz modul os/exec ignoruje relatívne cesty pri rozširovaní premennej prostredia PATH (napríklad pri určovaní cesty k spustiteľnému súboru sa už nekontroluje aktuálny adresár).

Nakoniec, ak máte záujem dozvedieť sa viac o tomto novom vydaní, podrobnosti si môžete pozrieť na adrese nasledujúci odkaz.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.