Go programazio hizkuntzaren bertsioa 1.13

Bidalita programazio lengoaia kaleratzea Joan 1.13, Google-k garatzen duena komunitatearen parte-hartzearekin konpilatutako lengoaien errendimendu altua eta scripting lengoaien abantailak konbinatzen dituen soluzio hibrido gisa, hala nola kodea idazteko erraztasuna, garapen-abiadura, eta akatsen babesa. Proiektuaren kodea arabera banatuta BSD lizentziapean.

Go-ren sintaxia C hizkuntzaren elementu ezagunetan oinarritzen da, Python hizkuntzaren mailegu batzuekin. Hizkuntza nahiko zehatza da, baina kodea irakurtzeko eta ulertzeko erraza da. Go kodea makina birtual bat erabili gabe natiboki exekutatzen diren fitxategi exekutagarri bitar autonomoetan konpilatzen da (profila, arazketa eta exekuzio garaiko arazoak hautemateko beste azpisistemak integratuta daude. exekuzio-denborako osagaiak), C hizkuntzako programen pareko errendimendua lortzeko aukera ematen duena.

Proiektua hasiera batean hari anitzeko programazioan eta nukleo anitzeko sistemen funtzionamendu eraginkorrari begira garatu da, operadore mailan inplementatutako bitartekoak eskaintzea barne, konputazio paraleloa eta paraleloki exekutatutako metodoen arteko elkarrekintza antolatzeko. Lengoaiak esleitutako memoria blokeen gainditzeen aurkako babes integratua eskaintzen du eta zabor biltzailea erabiltzeko gaitasuna eskaintzen du.

Nagusia berrikuntzak, Go 1.13 bertsioan aurkeztua:

  • Crypto/tls paketeak protokolo-laguntza gaituta dauka lehenespenez TLS 1.3. "crypto/ed25519" pakete berria gehitu da Ed25519 sinadura digitaletarako laguntzarekin;
  • Zenbakizko aurrizki literal berrientzako laguntza gehitu da, zenbaki bitarrak definitzeko (adibidez, 0b101), zortzikorrak (0o377), irudizkoak (2.71828i) eta hamaseitar koma mugikorrekoak (0x1p-1021), eta "_" karakterea erabiltzeko gaitasuna digituak bisualki bereizteko. kopuru handitan (1_000_000);
  • Txanda-eragiketetan sinatu gabeko kontagailuak soilik erabiltzeko murrizketa kendu da, eta horrek uint motarako alferrikako bihurketak saihesten ditu β€œβ€Ήβ€Ήβ€ eta β€œβ€Ίβ€Ίβ€ eragileak erabili aurretik;
  • Illumos plataformarako euskarria gehitu da (GOOS=illumos). Android 10 plataformarekin bateragarritasuna ziurtatu da. FreeBSD (11.2) eta macOS (10.11 β€œEl Capitan”) gutxieneko bertsioen eskakizunak handitu dira.
  • Modulu sistema berriaren etengabeko garapena, GOPATH-en alternatiba gisa erabil daitekeena. Aurretik Go 1.13-n iragarritako planen aurka, sistema hau ez dago lehenespenez gaituta eta GO111MODULE=on aldagaiaren bidez aktibatzea edo moduluak automatikoki aplikatzen diren testuinguru bat erabiltzea eskatzen du. Modulu-sistema berriak bertsioen laguntza integratua, paketeak entregatzeko gaitasunak eta mendekotasunen kudeaketa hobetua ditu. Moduluekin, garatzaileak jada ez daude GOPATH zuhaitz baten barruan lan egiteari lotuta, bertsiodun mendekotasunak esplizituki defini ditzakete eta errepika daitezkeen eraikuntzak sor ditzakete.

    Aurreko bertsioetan ez bezala, sistema berriaren aplikazio automatikoak orain funtzionatzen du go.mod fitxategi bat uneko lan-direktorioan edo guraso-direktorioan dagoenean go komandoa exekutatzen denean, baita GOPATH/src direktorioan dagoenean ere. Inguruneko aldagai berriak gehitu dira: GOPRIVATE, publikoki eskuragarri dauden moduluen bideak definitzen dituena, eta GOSUMDB, go.sum fitxategian zerrendatzen ez diren moduluen checksum datu-baserako sarbide-parametroak zehazten dituena;

  • "Go" komandoak modu lehenetsian kargatzen ditu moduluak eta haien osotasuna egiaztatzen du Google-k mantentzen duen moduluaren ispilu eta checksum datu-basea erabiliz (proxy.golang.org, sum.golang.org eta index.golang.org);
  • Pakete bitarentzako bakarrik onartzen da; pakete bat β€œ//go:binary-only-package” moduan eraikitzeak orain errore bat sortzen du;
  • "@patch" atzizkiaren euskarria gehitu zaio "go get" komandoari, modulua mantentze-lanaren azken bertsiora eguneratu behar dela adieraziz, baina egungo bertsio nagusia edo txikia aldatu gabe;
  • Iturburu-kontrol-sistemetatik moduluak berreskuratzean, "joan" komandoak bertsio-katearen egiaztapen gehigarria egiten du orain, sasi-bertsio-zenbakiak biltegiko metadatuekin lotzen saiatuz;
  • Laguntza gehitu akatsen ikuskapena (erroreen bilketa) errore-kudeatzaile estandarrak erabiltzea ahalbidetzen duten bilgarrien sorreraren bidez. Adibidez, akats bat "e" "w" errorearen inguruan bildu daiteke metodo bat emanez Desblokeatu, "w" itzuliz. "e" eta "w" akatsak biak daude programan eta erabakiak "w" akatsean oinarrituta hartzen dira, baina "e"-k testuinguru gehigarria ematen dio "w"-ri edo bestela interpretatzen du;
  • Exekuzio-denborako osagaien errendimendua optimizatu da (% 30erainoko abiaduraren igoera nabaritu da) eta sistema eragilera memoriaren itzulera oldarkorragoa ezarri da (lehen, bost minutu edo gehiagoren buruan itzultzen zen memoria, baina orain berehala). piloaren tamaina murriztu ondoren).

Iturria: opennet.ru

Gehitu iruzkin berria