Programmēšanas valodas Go izlaišana 1.13

Iesniedzis programmēšanas valodas izlaidums Iet 1.13, ko izstrādā Google ar kopienas līdzdalību kā hibrīdu risinājumu, kas apvieno kompilēto valodu augsto veiktspēju ar skriptu valodu priekšrocībām, piemēram, koda rakstīšanas vieglumu, izstrādes ātrumu un kļūdu aizsardzību. Projekta kods izplata saskaņā ar BSD licenci.

Go sintakse ir balstīta uz pazīstamiem C valodas elementiem ar dažiem aizguvumiem no Python valodas. Valoda ir diezgan kodolīga, bet kods ir viegli lasāms un saprotams. Go kods tiek apkopots atsevišķos bināros izpildāmos failos, kas darbojas sākotnēji, neizmantojot virtuālo mašīnu (profilēšanas, atkļūdošanas un citas izpildlaika problēmu noteikšanas apakšsistēmas ir integrētas kā izpildlaika komponenti), kas ļauj sasniegt veiktspēju, kas salīdzināma ar C programmām.

Projekts sākotnēji tika izstrādāts, ņemot vērā daudzpavedienu programmēšanu un efektīvu darbību daudzkodolu sistēmās, tostarp nodrošinot operatora līmeņa līdzekļus paralēlās skaitļošanas organizēšanai un paralēli izpildītu metožu mijiedarbībai. Valoda nodrošina arī iebūvētu aizsardzību pret pārmērīgi piešķirtiem atmiņas blokiem un nodrošina iespēju izmantot atkritumu savācēju.

Galvenais jauninājumiemieviests Go 1.13 laidienā:

  • Kripto/tls pakotnei pēc noklusējuma ir iespējots protokola atbalsts TLS 1.3. Pievienota jauna pakotne "crypto/ed25519" ar atbalstu Ed25519 ciparparakstiem;
  • Pievienots atbalsts jauniem burtiskiem ciparu prefiksiem, lai definētu bināros skaitļus (piemēram, 0b101), oktālos (0o377), iedomātos (2.71828i) un heksadecimālos peldošo komatu (0x1p-1021), kā arī iespēja izmantot rakstzīmi "_", lai vizuāli atdalītu ciparus. lielā skaitā (1_000_000);
  • Ir noņemts ierobežojums maiņu operācijās izmantot tikai neparakstītus skaitītājus, kas ļauj izvairīties no nevajadzīgas konvertēšanas uz uint tipu pirms operatoru “‹‹” un “››” izmantošanas;
  • Pievienots atbalsts Illumos platformai (GOOS=illumos). Nodrošināta saderība ar platformu Android 10. Paaugstinātas prasības FreeBSD (11.2) un macOS (10.11 “El Capitan”) minimālajām versijām.
  • Turpināta jaunās moduļu sistēmas izstrāde, ko var izmantot kā alternatīvu GOPATH. Pretēji iepriekš paziņotajiem Go 1.13 plāniem šī sistēma nav iespējota pēc noklusējuma, un tai ir nepieciešama aktivizēšana, izmantojot mainīgo GO111MODULE=on vai konteksta izmantošanu, kurā moduļi tiek lietoti automātiski. Jaunajā moduļu sistēmā ir integrēts versiju veidošanas atbalsts, pakotņu piegādes iespējas un uzlabota atkarības pārvaldība. Izmantojot moduļus, izstrādātāji vairs nav saistīti ar darbu GOPATH kokā, var skaidri definēt versiju atkarības un izveidot atkārtojamas būves.

    Atšķirībā no iepriekšējiem laidieniem, jaunās sistēmas automātiskā lietojumprogramma tagad darbojas, ja fails go.mod atrodas pašreizējā darba direktorijā vai vecākdirektorijā, palaižot komandu go, tostarp, ja tas atrodas direktorijā GOPATH/src. Ir pievienoti jauni vides mainīgie: GOPRIVATE, kas nosaka publiski pieejamo moduļu ceļus, un GOSUMDB, kas norāda piekļuves parametrus kontrolsummu datu bāzei moduļiem, kas nav norādīti failā go.sum;

  • Komanda "go" pēc noklusējuma ielādē moduļus un pārbauda to integritāti, izmantojot Google uzturēto moduļu spoguļu un kontrolsummu datu bāzi (proxy.golang.org, sum.golang.org un index.golang.org);
  • Atbalsts tikai binārajām pakotnēm ir pārtraukts; pakotnes izveide režīmā “//go:binary-only-package” tagad rada kļūdu;
  • Pievienots komandas "go get" sufiksa "@patch" atbalsts, norādot, ka modulis ir jāatjaunina uz jaunāko apkopes laidienu, taču nemainot pašreizējo galveno vai mazāko versiju;
  • Izgūstot moduļus no versiju kontroles sistēmām, komanda "go" tagad veic papildu pārbaudi versijas virknei, mēģinot saskaņot pseidoversiju numurus ar metadatiem no repozitorija;
  • Pievienots atbalsts kļūdu pārbaude (kļūdu iesaiņošana), izveidojot iesaiņojumus, kas ļauj izmantot standarta kļūdu apstrādātājus. Piemēram, kļūda "e" var ietīt ap kļūdu "w", norādot metodi Atsaukt, atgriežot "w". Programmā ir pieejamas gan kļūdas "e", gan "w", un lēmumi tiek pieņemti, pamatojoties uz kļūdu "w", bet "e" nodrošina papildu kontekstu "w" vai interpretē to atšķirīgi;
  • Optimizēta izpildlaika komponentu veiktspēja (novērots ātruma pieaugums līdz 30%) un ieviesta agresīvāka atmiņas atgriešana operētājsistēmā (iepriekš atmiņa tika atgriezta pēc piecām un vairāk minūtēm, bet tagad uzreiz pēc kaudzes izmēra samazināšanas).

Avots: opennet.ru

Pievieno komentāru