Hamba ulwimi lwenkqubo 1.18 ukukhululwa

Ukukhutshwa kolwimi lwenkqubo ye-Go 1.18 kubonisiwe, ephuhliswa nguGoogle ngokuthatha inxaxheba koluntu njengesisombululo esidibeneyo esidibanisa ukusebenza okuphezulu kweelwimi ezihlanganisiweyo kunye nezibonelelo zeelwimi zokubhala ngokulula ukubhala ikhowudi. , isantya sophuhliso kunye nokukhuselwa kwempazamo. Ikhowudi yeprojekthi ihanjiswa phantsi kwelayisensi ye-BSD.

Isivakalisi sikaGo sisekwe kwizinto eziqhelekileyo zolwimi lwe-C kunye nokubolekwa kulwimi lwePython. Ulwimi lufutshane, kodwa ikhowudi ifundeka lula kwaye iqondwe. Ikhowudi yeGo iqokelelwe kwiifayile ezisebenzayo ezizimeleyo ezisebenza ngokwendalo ngaphandle kokusebenzisa umatshini wenyani (iprofayili, iimodyuli zokulungisa iimpazamo, kunye nezinye iinkqubo ezisezantsi zokubona ingxaki zidityaniswe njengamacandelo exesha lokubaleka), evumela ukusebenza okuthelekiswa neenkqubo zeC.

Iprojekthi iqale iphuhliswe ngeso kwiprogram ye-multi-threaded kunye nokusebenza ngokufanelekileyo kwiinkqubo ezininzi ezingundoqo, kubandakanywa nokubonelela ngeendlela zomgangatho womqhubi wokuququzelela i-computing ehambelanayo kunye nokusebenzisana phakathi kweendlela eziqhutywe ngokuhambelanayo. Ulwimi lukwabonelela ngokhuseleko olwakhelwe ngaphakathi kwiibhloko zememori ezabiwe ngokugqithisileyo kwaye lubonelela ngokukwazi ukusebenzisa umqokeleli wenkunkuma.

Uguqulelo olutsha longeza inkxaso kwimisebenzi eqhelekileyo kunye neentlobo (generics), ngoncedo apho umphuhlisi unokuchaza kwaye asebenzise imisebenzi eyilelwe ukusebenza neendidi ezininzi ngexesha elinye. Kuyenzeka kwakhona ukusebenzisa ujongano ukwenza iindidi ezidityanisiweyo ezithatha iindidi ezininzi zedatha. Inkxaso yeegenerics iphunyezwa ngaphandle kokwaphula umva ukuhambelana nekhowudi ekhoyo. // Imilinganiselo yokumisela isimbuku, isebenza kwiintlobo ze-int64 kunye nefloat64 func SumIntsOrFloats[K iyathelekiseka, V int64 | float64](m imephu[K]V) V { var s V for _, v := uluhlu m { s += v } buyisela s } // Olunye ukhetho olunenkcazo yohlobo oluqhelekileyo: uhlobo lojongano lwenombolo { int64 | float64} func SumNumbers[K kuthelekiseka, V Inani](m imephu[K]V) V { var s V ye _, v := uluhlu m { s += v } ukubuya s }

Olunye uphuculo:

  • Izixhobo zokuvavanya ikhowudi yokudibanisa zihlanganiswe kwi-toolkit eqhelekileyo. Ngexesha lovavanyo lwe-fuzzing, umjelo wazo zonke iindibaniselwano ezinokuthi zenzeke zedatha yegalelo zenziwe kwaye ukusilela okunokwenzeka ngexesha lokucubungula kwabo kurekhodwa. Ukuba ulandelelwano luyangqubana okanye aluhambelani nempendulo elindelekileyo, ngoko ke le ndlela yokuziphatha ibonakala ibonakalisa impazamo okanye ubuthathaka.
  • Inkxaso eyongeziweyo yeendawo zokusebenza ezininzi zeemodyuli, ezikuvumela ukuba wenze imiyalelo kwiimodyuli ezininzi ngaxeshanye, kukuvumela ukuba kwangaxeshanye wakhe kwaye usebenzise ikhowudi kwiimodyuli ezininzi.
  • Ukulungiswa kokusebenza okubalulekileyo kwenziwe kwiinkqubo ezisekwe kwi-Apple M1, ARM64 kunye ne-PowerPC64 processors. Yenza ukukwazi ukusebenzisa iirejista endaweni yesitaki ukudlulisa iimpikiswano kwimisebenzi kunye nokubuyisela isiphumo. Ukuphuculwa kokuvulwa kwe-loops engaphakathi ngumqokeleli. Uhlobo lokujonga kwi-compiler luyilwe ngokutsha ngokupheleleyo. Ezinye iimvavanyo zibonisa ukunyuka kwe-20% kwintsebenzo yekhowudi xa kuthelekiswa nokukhululwa kwangaphambili, kodwa ukudibanisa ngokwayo kuthatha malunga ne-15% ixesha elide.
  • Ngexesha lokusebenza, ukusebenza kakuhle kokubuyisela imemori ekhululekile kwinkqubo yokusebenza kuye kwanda kwaye ukusebenza komqokeleli wenkunkuma kuphuculwe, ukuziphatha okuye kwaqikelelwa ngakumbi.
  • Iipakethe ezintsha ze-net/netip kunye ne-debug/buildinfo zongeziwe kwithala leencwadi elisemgangathweni. Inkxaso ye-TLS 1.0 kunye ne-1.1 ikhutshaziwe ngokungagqibekanga kwikhowudi yomxhasi. Imodyuli ye-crypto/x509 iyekile ukucubungula izatifikethi ezisayinwe kusetyenziswa i-SHA-1 hash.
  • Iimfuno zokusingqongileyo kwi-Linux ziphakanyisiwe; Ekukhutshweni okulandelayo, utshintsho olufanayo lulindelekile kwi-FreeBSD (inkxaso ye-FreeBSD 2.6.32.x yesebe iya kupheliswa) kwaye ubuncinane i-FreeBSD 11 iya kufuneka ukuba isebenze.

umthombo: opennet.ru

Yongeza izimvo