Útgáfa Go forritunarmálsins 1.18

Kynnt er útgáfa Go 1.18 forritunarmálsins, sem er þróað af Google með þátttöku samfélagsins sem blendingslausn sem sameinar mikla afköst samsettra tungumála með kostum forskriftarmála eins og auðveld ritun kóða. , þróunarhraði og villuvörn. Verkefniskóðanum er dreift undir BSD leyfinu.

Setningafræði Go er byggð á kunnuglegum þáttum C tungumálsins með nokkrum lántökum frá Python tungumálinu. Tungumálið er frekar hnitmiðað en kóðinn er auðlesinn og auðskilinn. Go kóði er settur saman í sjálfstæðar tvöfaldar keyrsluskrár sem keyra innfæddar án þess að nota sýndarvél (prófíling, kembiforrit og önnur undirkerfi fyrir uppgötvunarvandamál eru samþætt sem keyrsluhlutar), sem gerir kleift að sambærileg afköstum og C forritum.

Verkefnið er upphaflega þróað með það fyrir augum að fjölþráða forritun og skilvirkan rekstur á fjölkjarna kerfum, þar á meðal að veita rekstraraðila aðferðum til að skipuleggja samhliða tölvuvinnslu og samspil milli samhliða framkvæmda aðferða. Tungumálið veitir einnig innbyggða vörn gegn ofúthlutuðum minnisblokkum og veitir möguleika á að nota sorphirðu.

Nýja útgáfan bætir við stuðningi við almennar aðgerðir og gerðir (generics), með hjálp sem verktaki getur skilgreint og notað aðgerðir sem eru hannaðar til að vinna með nokkrar gerðir í einu. Einnig er hægt að nota viðmót til að búa til samsettar tegundir sem spanna margar gagnagerðir. Stuðningur við almenna lyf er útfærður án þess að brjóta afturábak eindrægni við núverandi kóða. // Summasett gildi, virkar fyrir int64 og float64 tegundir func SumIntsOrFloats[K sambærilegt, V int64 | float64](m kort[K]V) V { var s V fyrir _, v := svið m { s += v } skila s } // Annar valmöguleiki með almennri tegundarskilgreiningu: type Number interface { int64 | float64 } func SumNumbers[K sambærileg, V tala](m kort[K]V) V { var s V fyrir _, v := svið m { s += v } skila s }

Aðrar endurbætur:

  • Tól til að prófa óljós kóða eru samþætt í staðlaða verkfærakistuna. Við óljós prófun myndast straumur af öllum mögulegum tilviljanakenndum samsetningum inntaksgagna og mögulegar bilanir við vinnslu þeirra eru skráðar. Ef röð hrynur eða passar ekki við væntanleg svörun, þá er mjög líklegt að þessi hegðun gefi til kynna villu eða varnarleysi.
  • Bætti við stuðningi við fjöleininga vinnusvæði, sem gerir þér kleift að framkvæma skipanir á mörgum einingum í einu, sem gerir þér kleift að smíða og keyra kóða í mörgum einingum samtímis.
  • Umtalsverðar hagræðingar hafa verið gerðar fyrir kerfi sem byggjast á Apple M1, ARM64 og PowerPC64 örgjörvum. Gerði möguleika á að nota skrár í stað stafla til að senda rök til aðgerðir og skila niðurstöðunni. Bætt inline afrúlnun lykkja af þýðandanum. Tegundathugun í þýðandanum hefur verið algjörlega endurhannað. Sum próf sýna 20% aukningu á afköstum kóða miðað við fyrri útgáfu, en samantektin sjálf tekur um 15% lengri tíma.
  • Á keyrslutíma hefur skilvirkni þess að skila losuðu minni í stýrikerfið verið aukin og rekstur sorphirðu hefur verið bættur, hegðun hans hefur orðið fyrirsjáanlegri.
  • Nýjum pakka net/netip og debug/buildinfo hefur verið bætt við staðlaða bókasafnið. Stuðningur við TLS 1.0 og 1.1 er sjálfgefið óvirkur í kóða viðskiptavinarins. Dulritunar/x509 einingin hefur hætt að vinna úr skilríkjum sem eru undirrituð með SHA-1 kjötkássa.
  • Kröfur fyrir umhverfið í Linux hafa verið hækkaðar; til að virka þarftu nú að hafa Linux kjarna af að minnsta kosti útgáfu 2.6.32. Í næstu útgáfu er gert ráð fyrir svipuðum breytingum fyrir FreeBSD (stuðningur við FreeBSD 11.x útibúið verður hætt) og að minnsta kosti FreeBSD 12.2 þarf að virka.

Heimild: opennet.ru

Bæta við athugasemd