Izdaja programskega jezika Go 1.13

Predložil izdaja programskega jezika Pojdi 1.13, ki ga Google razvija s sodelovanjem skupnosti kot hibridno rešitev, ki združuje visoko zmogljivost prevedenih jezikov s prednostmi skriptnih jezikov, kot so enostavnost pisanja kode, hitrost razvoja in zaščita pred napakami. Koda projekta distributer pod licenco BSD.

Sintaksa programa Go temelji na znanih elementih jezika C z nekaterimi izposojami iz jezika Python. Jezik je precej jedrnat, vendar je koda lahko berljiva in razumljiva. Koda Go je prevedena v samostojne binarne izvedljive datoteke, ki se izvajajo izvorno brez uporabe navideznega stroja (profiliranje, odpravljanje napak in drugi podsistemi za odkrivanje težav med izvajanjem so integrirani kot komponente izvajalnega okolja), ki omogoča doseganje zmogljivosti, primerljive s programi C.

Projekt je bil prvotno razvit z mislijo na večnitno programiranje in učinkovito delovanje na večjedrnih sistemih, vključno z zagotavljanjem sredstev na ravni operaterja za organiziranje vzporednega računalništva in interakcije med vzporedno izvedenimi metodami. Jezik ponuja tudi vgrajeno zaščito pred preveč dodeljenimi bloki pomnilnika in omogoča uporabo zbiralnika smeti.

Glavni inovacijepredstavljeno v izdaji Go 1.13:

  • Paket crypto/tls ima privzeto omogočeno podporo za protokol TLS 1.3. Dodan nov paket "crypto/ed25519" s podporo za digitalne podpise Ed25519;
  • Dodana podpora za nove numerične dobesedne predpone za definiranje binarnih števil (npr. 0b101), osmiških (0o377), imaginarnih (2.71828i) in šestnajstiške plavajoče vejice (0x1p-1021) ter možnost uporabe znaka "_" za vizualno ločevanje števk v velikem številu (1_000_000);
  • Odstranjena je bila omejitev uporabe samo nepredznačenih števcev v operacijah premikov, s čimer se izognete nepotrebnim pretvorbam v tip uint pred uporabo operatorjev “‹‹” in “››”;
  • Dodana podpora za platformo Illumos (GOOS=illumos). Zagotovljena je združljivost s platformo Android 10. Zahteve za minimalne različice FreeBSD (11.2) in macOS (10.11 »El Capitan«) so bile povečane.
  • Nadaljevanje razvoja novega sistema modulov, ki se lahko uporablja kot alternativa GOPATH. V nasprotju s predhodno napovedanimi načrti v Go 1.13 ta sistem ni privzeto omogočen in zahteva aktivacijo prek spremenljivke GO111MODULE=on ali uporabo konteksta, v katerem se moduli samodejno uporabljajo. Nov sistem modulov vključuje integrirano podporo za urejanje različic, zmožnosti dostave paketov in izboljšano upravljanje odvisnosti. Z moduli razvijalci niso več vezani na delo znotraj drevesa GOPATH, lahko izrecno definirajo različice odvisnosti in ustvarijo ponovljive gradnje.

    Za razliko od prejšnjih izdaj samodejna uporaba novega sistema zdaj deluje, ko je datoteka go.mod prisotna v trenutnem delovnem imeniku ali nadrejenem imeniku, ko izvajate ukaz go, vključno s tem, ko je v imeniku GOPATH/src. Dodane so bile nove spremenljivke okolja: GOPRIVATE, ki določa poti javno dostopnih modulov, in GOSUMDB, ki določa parametre dostopa do podatkovne baze kontrolnih vsot za module, ki niso navedeni v datoteki go.sum;

  • Ukaz »pojdi« privzeto naloži module in preveri njihovo celovitost s pomočjo zrcalne baze modulov in kontrolne vsote, ki jo vzdržuje Google (proxy.golang.org, sum.golang.org in index.golang.org);
  • Podpora samo za binarne pakete je bila ukinjena; sestavljanje paketa v načinu »//go:binary-only-package« zdaj povzroči napako;
  • Dodana je podpora za pripono »@patch« ukazu »go get«, ki nakazuje, da je treba modul posodobiti na najnovejšo vzdrževalno izdajo, vendar brez spreminjanja trenutne glavne ali manjše različice;
  • Pri pridobivanju modulov iz sistemov za nadzor izvorov ukaz "go" zdaj izvede dodatno preverjanje niza različice in poskuša ujemati številke psevdo različice z metapodatki iz repozitorija;
  • Dodana podpora pregled napak (ovijanje napak) z ustvarjanjem ovojev, ki omogočajo uporabo standardnih obdelovalcev napak. na primer napaka "e" je mogoče oviti okoli napake "w" z zagotavljanjem metode Odvijte, vrača "w". Obe napaki "e" in "w" sta na voljo v programu in odločitve se sprejemajo na podlagi napake "w", vendar "e" zagotavlja dodaten kontekst za "w" ali ga razlaga drugače;
  • Optimizirano je bilo delovanje komponent izvajalnega okolja (opaženo je bilo povečanje hitrosti do 30 %) in uvedeno je bilo bolj agresivno vračanje pomnilnika v operacijski sistem (prej je bil pomnilnik vrnjen po petih ali več minutah, zdaj pa takoj po zmanjšanju velikosti kopice).

Vir: opennet.ru

Dodaj komentar