Sgaoileadh cànan prògramadh Go 1.18

Tha foillseachadh cànan prògramadh Go 1.18 air a thaisbeanadh, a tha ga leasachadh le Google le com-pàirt na coimhearsnachd mar fhuasgladh tar-chinealach a tha a’ cothlamadh àrd-choileanadh chànanan cruinnichte le buannachdan leithid de chànanan sgrìobhaidh cho furasta ‘s a tha còd sgrìobhaidh. , astar leasachaidh agus dìon mhearachdan. Tha còd a’ phròiseict air a sgaoileadh fo chead BSD.

Tha co-chòrdadh Go stèidhichte air eileamaidean eòlach den chànan C le cuid de iasadan bhon chànan Python. Tha an cànan gu math pongail, ach tha an còd furasta a leughadh agus a thuigsinn. Tha còd Go air a chur ri chèile ann am faidhlichean so-ghnìomhaichte dà-chànanach a bhios a’ ruith gu dùthchasach gun a bhith a’ cleachdadh inneal brìgheil (pròifil, modalan deasbaid, agus fo-shiostaman lorg duilgheadas runtime eile air am filleadh a-steach mar cho-phàirtean runtime), a leigeas le coileanadh a tha coltach ri prògraman C.

Tha am pròiseact air a leasachadh an toiseach le sùil ri prògramadh ioma-snàthainn agus obrachadh èifeachdach air siostaman ioma-cridhe, a’ toirt a-steach a bhith a’ toirt seachad dòighean aig ìre gnìomhaiche airson coimpiutaireachd co-shìnte a chuir air dòigh agus eadar-obrachadh eadar modhan cur an gnìomh co-shìnte. Tha an cànan cuideachd a’ toirt dìon a-staigh an-aghaidh blocaichean cuimhne a tha ro-riaraichte agus a’ toirt comas neach-cruinneachaidh sgudail a chleachdadh.

Bidh an dreach ùr a’ cur taic ri gnìomhan agus seòrsaichean coitcheann (generics), le cuideachadh bhon urrainn do leasaiche gnìomhan a mhìneachadh agus a chleachdadh a tha air an dealbhadh gus obrachadh le grunn sheòrsaichean aig an aon àm. Tha e comasach cuideachd eadar-aghaidh a chleachdadh gus seòrsachan aonaichte a chruthachadh a tha a’ cuairteachadh grunn sheòrsaichean dàta. Tha taic airson generics air a bhuileachadh gun a bhith a’ briseadh air ais co-chòrdalachd leis a’ chòd a th’ ann mar-thà. // Luachan seata suim, ag obair airson int64 agus seòrsaichean float64 func SumIntsOrFloats[K coimeasach, V int64 | float64](m mapa[K]V) V { var s V airson _, v := raon m { s + = v } tilleadh s } // Roghainn eile le mìneachadh seòrsa coitcheann: seòrsa Eadar-aghaidh àireamh { int64 | float64 } func Àireamhan suim[K coimeasach, V Àireamh] (m mapa[K]V) V { var s V airson _, v := raon m { s + = v } tilleadh s }

Leasachaidhean eile:

  • Tha goireasan airson deuchainn còd fuzzing air am filleadh a-steach don inneal àbhaisteach. Rè deuchainnean fuzzing, thèid sruth de gach cothlamadh air thuaiream de dhàta cuir a-steach a chruthachadh agus thathas a’ clàradh fàilligidhean a dh’ fhaodadh a bhith ann rè an giullachd. Ma bhuaileas sreath no nach eil e a’ freagairt ris an fhreagairt ris a bheil dùil, tha an giùlan seo glè choltach gum bi e a’ nochdadh biast no so-leòntachd.
  • Taic a bharrachd airson àiteachan-obrach ioma-mhodal, a’ toirt cothrom dhut òrdughan a chuir an gnìomh air grunn mhodalan aig an aon àm, a’ toirt cothrom dhut còd a thogail agus a ruith ann an ioma-mhodalan aig an aon àm.
  • Chaidh optimizations coileanaidh cudromach a dhèanamh airson siostaman stèidhichte air pròiseasairean Apple M1, ARM64 agus PowerPC64. Cuir an comas clàran a chleachdadh an àite a’ chruach gus argamaidean a thoirt seachad gu gnìomhan agus an toradh a thilleadh. Fuasgladh lùban in-loidhne nas fheàrr leis an inneal-cruinneachaidh. Chaidh sgrùdadh seòrsa san inneal-cruinneachaidh ath-dhealbhadh gu tur. Tha cuid de dheuchainnean a’ nochdadh àrdachadh 20% ann an coileanadh còd an coimeas ris an fhoillseachadh roimhe, ach bheir an cruinneachadh fhèin timcheall air 15% nas fhaide.
  • Ann an ùine ruith, tha èifeachdas cuimhne saor air ais don t-siostam obrachaidh air a mheudachadh agus tha gnìomhachd an neach-cruinneachaidh sgudail air a leasachadh, agus tha an giùlan air fàs nas ro-innseach.
  • Chaidh pacaidean ùra net/netip agus debug/buildinfo a chur ris an leabharlann àbhaisteach. Tha taic airson TLS 1.0 agus 1.1 à comas gu bunaiteach ann an còd teachdaiche. Tha am modal crypto/x509 air stad a bhith ag obrachadh theisteanasan soidhnichte a’ cleachdadh hash SHA-1.
  • Chaidh na riatanasan airson na h-àrainneachd ann an Linux a thogail; gus obrachadh, feumaidh tu a-nis kernel Linux de dhreach 2.6.32 co-dhiù. Anns an ath fhoillseachadh, tha dùil ri atharrachaidhean coltach ris airson FreeBSD (thèid taic airson meur FreeBSD 11.x a stad) agus co-dhiù bidh feum air FreeBSD 12.2 gus obrachadh.

Source: fosgailtenet.ru

Cuir beachd ann