Go programmeerimiskeele versiooni 1.13 väljaanne

Esitletud programmeeri keele väljaanne Go 1.13, mis on arendatud Google'i koostöös kogukonnaga, on hübriidlahendus, mis ühendab kompileeritavate keelte kõrge jõudluse skriptikeelte eelistega, nagu koodi lihtsus, kiire arendamine ja vigade vältimise kaitse. Projekti kood GNU Üldine Avaliku litsentsi alusel. BSD litsentsi alusel.

Go süntaks põhineb tuttavatel elementidel C-keeles, kuid sisaldab ka laenatud komponente Pythonist. Keel on piisavalt lakooniline, kuid samas on kood kergesti loetav ja arusaadav. Go kood kompileeritakse eraldiseisvateks binaarseteks täideviimistoodeteks, mis töötavad natiivselt ilma virtuaalmasina kasutamiseta (profiliseerimise, silumise ja teiste probleemide tuvastamise alamprogrammide moodulid integreeritakse runtime-komponentide), mis võimaldab saavutada jõudlust, mis on võrreldav C-keeles kirjutatud programmidega.

Projekt on algselt välja töötatud silmas pidades mitme lõime programmeerimist ja tõhusat töötamist mitme tuumaga süsteemides, pakkudes sealhulgas operaatorite tasemel rakendatud tööriistu paralleelsete arvutuste korraldamiseks ja paralleelselt töötavate meetodite vaheliseks suhtlemiseks. Keel pakub ka sisseehitatud kaitsevahendeid lubamatute mäluplokkide ületamise vastu ja võimaldab kasutusele võtta prügikoristajat.

Peamised uuendused, mis on esitatud Go 1.13 väljaandes:

  • Paketis crypto/tls on vaikimisi aktiveeritud TLS-protokolli TLS 1.3. Uue paketina on lisatud "crypto/ed25519" koos Ed25519 digitaalsete allkirjade toega;
  • Lisatud toetus uutele digitaalsete fiktiivide eesliidetele binaarsete arvude määratlemiseks (nt 0b101), oktali (0o377), kompleksarvude (2.71828i) ja ujukoma kuuekümnendate (0x1p-1021) jaoks, samuti võimalus kasutada sümbolit «_» suurte arvude visuaalseks jagamiseks (1_000_000);
  • Eemaldatud piirang kasutada ainult ilma märketa loendeid nihkeoperatsioonides, mis võimaldab vältida tarbetuid teisendusi uint tüüpi enne operaatorite «‹‹» ja «››» kasutamist;
  • Lisatud toetus Illumose platvormile (GOOS=illumos). Tagatud ühilduvus Android 10 platvormiga. Suurendatud minimaalsete nõuete versioonidele FreeBSD (11.2) ja macOS (10.11 «El Capitan»).
  • Uue moodulite süsteemi täiendamisel on edasi liigutud, mida saab kasutada GOPATH alternatiivina. Vaatamata varasematele plaanidele ei ole see süsteem Go 1.13 versioonis vaikimisi sisse lülitatud ja selle aktiveerimiseks on vajalik seada muutujaks GO111MODULE=on või kasutada konteksti, kus moodulid aktiveeritakse automaatselt. Uus moodulite süsteem eristub integreeritud versioonihalduse toe, pakettide tarnimisvahendite ja parendatud sõltuvuste haldamise süsteemiga. Moodulite abil ei ole arendajad enam seotud ainult GOPATH puu sees töötamisega ning nad saavad selgelt määratleda sõltuvusi, arvestades versioone, ja luua korduvaid kogusid.

    Erinevalt varasematest väljaannetest aktiveeritakse uus süsteem nüüd automaatselt, kui käivitatakse go käsk praeguses töökataloogis või selle vanemates kataloogides, kus asub go.mod fail, sealhulgas GOPATH/src kataloogis. Uued keskkonnamuutujad on lisatud: GOPRIVATE, mis määratleb privaatsete moodulite teed, ja GOSUMDB, mis seadistab parameetrid moodulite kontrollsummade andmebaasi juurdepääsu osas, mis ei ole loetletud go.sum failis;

  • Juhendis «go» on vaikimisi tagatud moodulite laadimine ja nende terviklikkuse kontrollimine, kasutades Google'i (proxy.golang.org, sum.golang.org ja index.golang.org) toetatud peegeldusi ja krüptovaluutabaasi.
  • Ainult binaarsete paketide toetus on lõpetatud; paketi koostamine režiimis «//go:binary-only-package» viib nüüd vea väljundini.
  • Juhendisse «go get» on lisatud toetus suffiksile «@patch», mis näitab, et moodul tuleks värskendada viimasele parandava väljaandele, kuid ilma praeguse peamise või vahepealse versiooni muutmiseta.
  • Moodulite väljavõtmisel versioonihaldussüsteemidest teostab juhend «go» nüüd täiendava versiooninumbri kontrolli, püüdes sobitada pseudo-versioonide numbreid hoidla metainformatsiooniga.
  • Lisatud tugi vea inspektsioon (error wrapping) läbi mähiste loomise, mis võimaldavad kasutada tüüp-põhiseid vea töötlejaid. Näiteks, viga «e» võib olla mähatud vea «w» kohal, pakkudes meetodit Unwrap, tagastades „w“. Mõlemad vead „e“ ja „w“ on programmides saadaval ning lahendused põhinevad veal „w“, kuid „e“ annab täiendavat konteksti „w“ kohta või tõlgendab seda teistmoodi;
  • On optimeeritud runtime-komponentide jõudlust (kiirusetõus on kuni 30%) ja rakendatud agressiivsem mälu tagastamine operatsioonisüsteemile (varem tagastati mälu viie või enama minuti pärast, nüüd aga kohe pärast kuhja suuruse vähendamist).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster