Gaan programmeertaal vrystelling 1.13

Bekendgestel programmeertaal vrystelling Gaan 1.13, wat deur Google ontwikkel word met die deelname van die gemeenskap as 'n hibriede oplossing wat die hoë werkverrigting van saamgestelde tale kombineer met die voordele van skriftale soos gemak om kode te skryf, spoed van ontwikkeling en foutbeskerming. Projek kode versprei deur onder die BSD-lisensie.

Go se sintaksis is gebaseer op bekende elemente van die C-taal met 'n paar ontlenings van die Python-taal. Die taal is redelik bondig, maar die kode is maklik om te lees en te verstaan. Go-kode word saamgestel in selfstandige binêre uitvoerbare programme wat inheems loop sonder om 'n virtuele masjien te gebruik (profilering, ontfouting en ander looptyd probleem opsporing substelsels is geïntegreer as looptyd komponente), wat jou toelaat om prestasie te behaal wat vergelykbaar is met C-programme.

Die projek is aanvanklik ontwikkel met die oog op multi-draad programmering en doeltreffende werking op multi-kern stelsels, insluitend die verskaffing van middele geïmplementeer op die operateur vlak vir die organisering van parallelle rekenaar en interaksie tussen parallel uitgevoer metodes. Die taal bied ook ingeboude beskerming teen oorskryding van toegekende geheueblokke en bied die vermoë om die vullisverwyderaar te gebruik.

Die belangrikste innovasiesbekendgestel in die Go 1.13-vrystelling:

  • Die crypto/tls-pakket het protokolondersteuning by verstek geaktiveer TLS 1.3. Bygevoeg nuwe pakket "crypto/ed25519" met ondersteuning vir Ed25519 digitale handtekeninge;
  • Bygevoeg ondersteuning vir nuwe numeriese letterlike voorvoegsels om binêre getalle (bv. 0b101), oktale (0o377), denkbeeldige (2.71828i) en heksadesimale swaaipunt (0x1p-1021) te definieer, en die vermoë om die "_" karakter te gebruik om syfers visueel te skei in groot getalle (1_000_000);
  • Die beperking op die gebruik van slegs ongetekende tellers in skofbewerkings is verwyder, wat onnodige omskakelings na die uint-tipe vermy voordat die “‹‹” en “››” operateurs gebruik word;
  • Bygevoeg ondersteuning vir die Illumos-platform (GOOS=illumos). Verenigbaarheid met die Android 10-platform is verseker.Die vereistes vir die minimum weergawes van FreeBSD (11.2) en macOS (10.11 “El Capitan”) is verhoog.
  • Voortgesette ontwikkeling van die nuwe modulestelsel, wat as alternatief vir GOPATH gebruik kan word. In teenstelling met voorheen aangekondigde planne in Go 1.13, is hierdie stelsel nie by verstek geaktiveer nie en vereis aktivering deur die GO111MODULE=on veranderlike of die gebruik van 'n konteks waarin modules outomaties toegepas word. Die nuwe modulestelsel beskik oor geïntegreerde weergawe-ondersteuning, pakketafleweringsvermoëns en verbeterde afhanklikheidsbestuur. Met modules is ontwikkelaars nie meer gebonde aan werk binne 'n GOPATH-boom nie, kan weergawes afhanklikes eksplisiet definieer en herhaalbare bouwerk skep.

    Anders as vorige vrystellings, werk outomatiese toepassing van die nuwe stelsel nou wanneer 'n go.mod-lêer in die huidige werkgids of ouergids teenwoordig is wanneer die go-opdrag uitgevoer word, insluitend wanneer dit in die GOPATH/src-gids is. Nuwe omgewingsveranderlikes is bygevoeg: GOPRIVATE, wat die paaie van publiek toeganklike modules definieer, en GOSUMDB, wat toegangsparameters tot die kontrolesomdatabasis spesifiseer vir modules wat nie in die go.sum-lêer gelys is nie;

  • Die "go"-opdrag laai by verstek modules en kontroleer hul integriteit met behulp van die modulespieël- en kontrolesomdatabasis wat deur Google in stand gehou word (proxy.golang.org, sum.golang.org en index.golang.org);
  • Ondersteuning vir slegs binêre pakkette is gestaak; die bou van 'n pakket in die "//go:binêre-slegs-pakket"-modus lei nou tot 'n fout;
  • Bygevoeg ondersteuning vir die "@patch" agtervoegsel by die "gaan kry" opdrag, wat aandui dat die module opgedateer moet word na die nuutste instandhoudingsvrystelling, maar sonder om die huidige hoof- of minderjarige weergawe te verander;
  • Wanneer modules van bronbeheerstelsels afgehaal word, voer die "go"-opdrag nou 'n bykomende kontrole uit op die weergawestring, en probeer om pseudo-weergawenommers met metadata van die bewaarplek te pas;
  • Bygevoeg ondersteuning fout inspeksie (foutomvou) deur die skepping van omhulsels wat die gebruik van standaardfouthanteerders toelaat. Byvoorbeeld, 'n fout "e" kan om fout "w" toegedraai word deur 'n metode te verskaf Pak uit, en gee "w" terug. Beide foute "e" en "w" is beskikbaar in die program en besluite word geneem op grond van fout "w", maar "e" verskaf addisionele konteks aan "w" of interpreteer dit anders;
  • Die werkverrigting van looptydkomponente is geoptimaliseer ('n spoedverhoging van tot 30% is opgemerk) en 'n meer aggressiewe terugkeer van geheue na die bedryfstelsel is geïmplementeer (voorheen is geheue na vyf of meer minute teruggestuur, maar nou onmiddellik nadat die hoopgrootte verklein is).

Bron: opennet.ru

Voeg 'n opmerking