Vydanie programovacieho jazyka Go 1.15

Predloženej vydanie programovacieho jazyka Choďte na 1.15, ktorý je vyvíjaný spoločnosťou Google za účasti komunity ako hybridné riešenie, ktoré kombinuje vysoký výkon kompilovaných jazykov s výhodami skriptovacích jazykov, ako je jednoduchosť písania kódu, rýchlosť vývoja a ochrana pred chybami. Kód projektu distribuovaný pod licenciou BSD.

Syntax Go je založená na známych 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 ďalšie podsystémy na detekciu problémov pri behu sú integrované ako runtime komponenty), čo umožňuje dosiahnuť výkon porovnateľný s programami C.

Projekt je pôvodne vyvinutý s ohľadom na viacvláknové programovanie a efektívnu prevádzku na viacjadrových systémoch, vrátane poskytovania prostriedkov na úrovni operátora na organizáciu paralelných výpočtov a interakciu medzi paralelne vykonávanými metódami. Jazyk tiež poskytuje vstavanú ochranu pred nadmerne alokovanými pamäťovými blokmi a poskytuje možnosť používať zberač odpadu.

Hlavné inováciepredstavené vo vydaní Go 1.15:

  • Výrazne sa zlepšila práca linkera, a to ako vo zvyšovaní rýchlosti prevádzky a znižovaní spotreby pamäte, tak aj v smere zjednodušenia údržby kódu. Pri testovaní na operačných systémoch používajúcich formát spustiteľného súboru ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris) bola typická sada veľkých aplikácií Go vytvorená o 20 % rýchlejšie a spotreba pamäte sa znížila v priemere o 30 %. Zvýšenie produktivity bolo umožnené prechodom na nový formát objektového súboru a prepracovaním vnútorných etáp s cieľom zvýšiť úroveň paralelizácie práce. Natívny linker sa teraz štandardne používa na systémoch linux/amd64 a linux/arm64 v "-buildmode=pie", ktorý už nevyžaduje použitie C linkera.
  • Za behu sa výrazne zlepšila distribúcia malých objektov na systémoch s veľkým počtom jadier CPU a znížila sa latencia. V prípade porúch sa namiesto zobrazenia adresy zobrazia hodnoty s číselnými a reťazcovými typmi. Pri odosielaní signálov SIGSEGV, SIGBUS a SIGFPE do aplikácie Go v prípade absencie obslužného programu os/signal.Notify aplikácia skončí s výstupom sledovania zásobníka (predtým bolo správanie nepredvídateľné).
  • Kompilátor bol optimalizovaný tak, aby zmenšil veľkosť generovaných spustiteľných súborov v priemere o 5 % zastavením zahrnutia niektorých metadát pre garbage collector a agresívnejším čistením nepoužívaných metadát.
  • Do kompilátora a assembleru bol pridaný príznak „-spectre“, aby sa umožnila ochrana pred útokmi triedy Spectre (pre väčšinu programov to nie je potrebné; povolenie tejto možnosti môže byť opodstatnené len pre niektoré veľmi špecifické prípady).
  • V certifikátoch X.509 je pole CommonName zastarané, ktoré sa už nepovažuje za názov hostiteľa, ak pole Subject Alternative Names chýba.
  • Príkaz "go" v premennej prostredia GOPROXY teraz môže uvádzať viacero proxy serverov oddelených čiarkou alebo "|". Ak prvý proxy v zozname vráti chybu (404 alebo 410), vykoná sa pokus o spojenie cez druhý proxy atď.
  • Pomôcka veterinára pridala varovanie o pokuse o konverziu z reťazca (x), ak "x" je celý typ iného čísla ako runa alebo bajt.
  • Príznak "-gnu" bol pridaný do nástroja objdump na podporu syntaxe GNU assembleru.
  • Pridaný nový balík čas/tzdata, ktorý umožňuje integrovať do programu databázu s údajmi o časovom pásme.
  • Zo zdrojových textov a dokumentácie odstránený frázy whitelist/blacklist a master/slave, ktoré sú teraz nahradené „allowlist“, „blocklist“, „process“, „pty“, „proc“ a „control“.
  • Veľká časť menších vylepšení bola vykonaná v štandardnej knižnici.
  • Pridaná podpora pre OpenBSD 6.7 v režimoch GOARCH=arm a GOARCH=arm64 (predtým boli podporované iba GOARCH=386 a GOARCH=amd64).
  • Pokračoval vývoj 64-bitovej platformy RISC-V (GOOS=linux, GOARCH=riscv64).
  • Pre 32-bitové x86 systémy zvýši ďalšie vydanie minimálne systémové požiadavky – naďalej budú podporované iba procesory s SSE2. Na zostavenie v režime GOARCH=386 budete potrebovať aspoň Intel Pentium 4 (vydané v roku 2000) alebo AMD Opteron/Athlon 64 (vydané v roku 2003).

Zdroj: opennet.ru

Pridať komentár