„Go“ programavimo kalbos išleidimas 1.14

Įvesta programavimo kalbos leidimas Eiti 1.14, kurį „Google“ kuria dalyvaujant bendruomenei kaip hibridinį sprendimą, kuris sujungia aukštą sudarytų kalbų našumą su scenarijų kalbų privalumais, tokiais kaip kodo rašymo paprastumas, kūrimo greitis ir apsauga nuo klaidų. Projekto kodas išplatino pagal BSD licenciją.

„Go“ sintaksė pagrįsta pažįstamais C kalbos elementais su kai kuriomis „Python“ kalbos skolinėmis. Kalba gana glausta, tačiau kodą lengva skaityti ir suprasti. „Go“ kodas yra kompiliuojamas į atskirus dvejetainius vykdomuosius failus, kurie veikia savaime nenaudojant virtualios mašinos (profiliavimo, derinimo ir kitos vykdymo laiko problemų aptikimo posistemės yra integruotos kaip vykdymo laiko komponentai), kuri leidžia pasiekti našumą, panašų į C programas.

Iš pradžių projektas buvo sukurtas atsižvelgiant į kelių gijų programavimą ir efektyvų daugelio branduolių sistemų veikimą, įskaitant operatoriaus lygio priemones, skirtas organizuoti lygiagretųjį skaičiavimą ir lygiagrečiai vykdomų metodų sąveiką. Kalba taip pat suteikia įmontuotą apsaugą nuo per daug paskirstytų atminties blokų ir suteikia galimybę naudoti šiukšlių rinktuvą.

pagrindinis naujovespristatytas Go 1.14 leidime:

  • Naujoji modulių sistema komandoje „go“ paskelbta paruošta bendram naudojimui, įjungta pagal numatytuosius nustatymus ir rekomenduojama valdyti priklausomybę, o ne GOPATH. Naujojoje modulių sistemoje yra integruotas versijų kūrimo palaikymas, paketų pristatymo galimybės ir patobulintas priklausomybės valdymas. Naudodami modulius kūrėjai nebėra susieti su darbu GOPATH medyje, gali aiškiai apibrėžti versijų priklausomybes ir kurti kartojamas versijas.
  • Pridėta sąsajų su persidengiančių metodų rinkiniu palaikymas. Metodai iš integruotos sąsajos dabar gali turėti tuos pačius pavadinimus ir parašus kaip ir esamų sąsajų metodai. Aiškiai deklaruoti metodai išlieka unikalūs, kaip ir anksčiau.
  • „Atidėjimo“ išraiškos našumas buvo patobulintas, todėl jis beveik toks pat greitas, kaip ir tiesiogiai iškviečiama atidėta funkcija, leidžiant atidėti funkcijos vykdymą našumui jautriame kode.
  • Numatytas asinchroninis korutinų (gorutinų) išankstinis nustatymas – kilpos, kuriose nėra funkcijų iškvietimų, dabar gali sukelti planavimo įrenginio aklavietę arba atidėti šiukšlių surinkimo pradžią.
  • Atminties puslapių paskirstymo sistemos efektyvumas buvo patobulintas ir dabar yra žymiai mažiau užrakinimo ginčų konfigūracijose su didelėmis GOMAXPROCS reikšmėmis. Rezultatas – sumažėjęs delsos laikas ir padidintas pralaidumas, tuo pačiu intensyviai paskirstant didelius atminties blokus.
  • Užrakinimas buvo optimizuotas, o kontekstinių jungiklių skaičius sumažintas paleidžiant vidinius laikmačius, naudojamus time.After, time.Tick, net.Conn.SetDeadline.
  • Komandoje „go“ žyma „-mod=vendor“ įgalinta pagal numatytuosius nustatymus, jei šakninėje dalyje yra tiekėjo katalogas, skirtas išorinėms priklausomybėms, susietoms su konkrečiu tiekėju, pateikti. Pridėta atskira žyma „-mod=mod“, kad būtų galima įkelti modulius iš modulio talpyklos, o ne iš „tiekėjo“ katalogo. Jei failas go.mod yra tik skaitomas, žyma „-mod=readonly“ nustatoma pagal numatytuosius nustatymus, jei nėra aukščiausiojo „tiekėjo“ katalogo. Pridėta vėliavėlė „-modfile=file“, kad būtų nurodytas alternatyvus go.mod failas, o ne modulio šakniniame kataloge.
  • Pridėtas aplinkos kintamasis GOINSECURE, kai nustatyta, komandai go nereikia naudoti HTTPS ir praleidžia sertifikatų tikrinimą, kai moduliai įkeliami tiesiogiai.
  • Kompiliatorius pridėjo žymą „-d=checkptr“, įjungtą pagal numatytuosius nustatymus, kad patikrintų, ar kodas atitinka saugaus nesaugaus žymiklio naudojimo taisykles.
  • Į pristatymą įtraukta nauja pakuotė maiša/mafašas su nekriptografinėmis maišos funkcijomis, kad būtų sukurtos maišos lentelės savavališkoms baitų sekoms arba eilutėms.
  • Pridėtas eksperimentinis 64 bitų RISC-V platformos „Linux“ palaikymas.
  • Pridėtas FreeBSD palaikymas 64 bitų ARM sistemose.

Šaltinis: opennet.ru

Добавить комментарий