Ukukhishwa okusha kolimi lwe-Go, inguqulo 1.24, kuza ngemuva kwezinyanga eziyisithupha Iya ku-1.23. Iningi lezinguquko kusekusetshenzisweni kochungechunge lwamathuluzi, isikhathi sokusebenza kanye nemitapo yolwazi. Njengenjwayelo, ukukhishwa kuyahlinzeka isithembiso sokuhambisana Hamba 1. Abaklami bolimi balindele ukuthi cishe zonke izinhlelo ze-Go zizoqhubeka nokuhlanganisa futhi zisebenze njengakuqala.
Ulimi luyashintsha
I-Go 1.24 manje isekela ngokugcwele iziteketiso zohlobo olujwayelekile: uhlobo lwe-alias lungahlukaniswa njengohlobo olumenyezelwe. Imininingwane ku imininingwane yolimi. Okwamanje, lesi sici singacishwa ngokusetha GOEXPERIMENT=noaliastypeparams; Kodwa-ke, inketho ye-aliastypeparams izosuswa ku-Go 1.25.
Amathuluzi
Hamba umyalo
Amamojula we-Go manje angakwazi ukulandelela ukuncika okusebenzisekayo esebenzisa isiqondiso sethuluzi ku-go.mod. Lokhu kususa isidingo somsebenzi wangaphambilini wokwengeza amathuluzi njengokungeniswa ngaphandle okungenalutho kufayela elivame ukubizwa ngokuthi “tools.go”. Umyalo wethuluzi lokuhamba manje usungakwazi ukusebenzisa lawa mathuluzi ngaphezu kwamathuluzi afika ne-Go. Olunye ulwazi lungatholakala ku imibhalo.
Ifulegi elisha -ithuluzi lokuhamba libangela ukuthi iziqondiso zethuluzi zengezwe kumojula yamanje yamaphakheji ashiwo ngaphezu kokwengeza okudinga iziqondiso.
Kusha ithuluzi le-meta-pattern ibhekisela kuwo wonke amathuluzi akumojula yamanje. Lokhu kungasetshenziswa ukuwabuyekeza wonke ngokusebenzisa ithuluzi le-go get, noma ukuwafaka kuhla lwemibhalo yakho ye-GOBIN ngokusebenzisa ithuluzi lokungena.
Okusebenzisekayo okudalwe nge-go run kanye nokuziphatha kwethuluzi elisha lokuhamba manje sekugcinwe kunqolobane ye-Go build. Lokhu kwenza ukwethulwa okuphindaphindiwe kwenzeke ngenxa yokwanda kwenqolobane. #69290.
Imiyalo ye-go build and go faka manje yamukela ifulegi -json, elibika okukhiphayo kokwakhiwa kanye namaphutha njengokuphumayo kwe-JSON okuhleliwe kokuphumayo okujwayelekile. Fometha imininingwane, bona go help buildjson.
Ngaphezu kwalokho, i-go test -json manje ibika okukhiphayo kanye namaphutha okwakha ku-JSON, okuhlanganiswe nomphumela wokuhlola othi JSON. Angahlukaniswa ngezinhlobo ezintsha zesenzo, kodwa uma abangela izinkinga ohlelweni lokuhlanganisa lokuhlola, ungabuyela emuva ekuphumeni kombhalo wokwakha usebenzisa Ukusethwa kwe-GODEBUG getestjsonbuildtext=1.
Ukuhluka kwemvelo okusha kwe-GOAUTH kunikeza indlela eguquguqukayo yokugunyaza ukudonsa kwamamojula ayimfihlo. Ungabona imininingwane ku-go help goauth.
Umyalo wokuya wokwakha usufakiwe inguqulo yemojuli eyinhloko komambambili ohlanganisiwe, ngokusekelwe kumaka kanye/noma isibopho sokulawula inguqulo. Isijobelelo + esingcolile sizokwengezwa uma kunezinguquko ezingaphoqelekile. Ifulegi -buildvcs=false lingasetshenziswa ukukhipha ulwazi lokulawula inguqulo kumabhanari.
Okusha Ukusethwa kwe-GODEBUG toolchaintrace=1 manje ingasetshenziswa ukulandelela inqubo yokukhetha i-toolchain kumyalo wokuhamba.
Cgo
I-Cgo isekela izichasiselo ezintsha zemisebenzi ye-C ukuze kuthuthukiswe ukusebenza kwesikhathi sokusebenza. I-#cgo noescape cFunctionName itshela umdidiyeli ukuthi inkumbulo edluliselwe ku-C function cFunctionName ayibalekeki. I-#cgo nocallback cFunctionName itshela umdidiyeli ukuthi umsebenzi we-C othi cFunctionName awubuyisi noma yimiphi imisebenzi ye-Go. Olunye ulwazi lungatholakala ku cgo imibhalo.
I-Cgo okwamanje iyenqaba ukuhlanganisa amakholi kumsebenzi we-C onezimemezelo eziningi ezingahambelani. Isibonelo, uma u-f emenyezelwa njengokubili okungenalutho kuka-f(int) kanye no-void f(kabili), i-cgo izobika iphutha esikhundleni sokukhiqiza ukulandelana kocingo okungavumelekile okungu-f(0). Okusha kulokhu kukhishwa ukutholwa okuthuthukisiwe kwalesi simo sephutha lapho izimemezelo ezingahambisani zivela kumafayela ahlukene. #67699.
Objdump
Ithuluzi le-objdump manje selisekela ukuqaqa ku-64-bit LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64), kanye ne-S390X (GOARCH=s390x).
I-Vet
Umhlaziyi wokuhlola omusha ubika amaphutha avamile ekuhlolweni, i-fuzzer, ibhentshimakhi, nezimemezelo eziyisibonelo kumagumbi okuhlola, njengamagama angakhekanga kahle, amasiginesha angavumelekile, noma izibonelo ezibhala izihlonzi ezingekho. Amanye alawa maphutha angase abangele ukuthi ukuhlola kuhluleke.
Umhlaziyi we-printf okhona manje ubika ukuxilonga kwamakholi efomu elithi fmt.Printf(ama), lapho u-s eyiyunithi yezinhlamvu yefomethi engashintshi engenazo ezinye izimpikiswano. Izingcingo ezinjalo cishe zihlala ziyiphutha, njengoba inani lika-s lingase liqukathe uhlamvu %; sebenzisa i-fmt.Printa esikhundleni salokho. 60529. Lokhu kuhlola kuvame ukuthola izinto kukhodi ekhona, futhi ngakho-ke kusetshenziswa kuphela uma inguqulo yolimi (njengoba icaciswe yisiqondiso se-go.mod noma amazwana okuthi `//go:build`) okungenani ingu-Go 1.24, ukugwema ukubangela amakhefu amade okuhlanganiswa lapho uthuthukela ku-Go 1.24 toolchain.
Umhlaziyi we-buildtag manje ubika ukuxilonga uma kune-buildtag engalungile inguqulo endala ukwakha umkhawulo Ngena ku-//go:build Directive. Isibonelo, //go:build go1.23.1 ibhekisela ekukhululweni kwephoyinti; esikhundleni salokho sebenzisa //go:build go1.23. #64127.
Umhlaziyi we-copylock okhona manje ubika ukuxilonga lapho okuhlukile kumenyezelwa ngeluphu "ye" kathathu, njengokuthi kokuthi i := iter(); kwenziwe (i); i = next(i) { … }, iqukethe i-sync.Locker, njenge-sync.Mutex. Iya ku-1.22 ushintshe ukuziphatha kwalezi zihibe ukuze udale ukuguquguquka okusha kokuphindaphinda ngakunye, ukukopisha amanani kusuka ekuphindaphindweni kwangaphambilini; Lokhu kukopisha akuphephile kumangidi. #66387.
I-GOCACHEPROG
Umshini wangaphakathi we-cmd/go kanambambili kanye nokuhlola ukulondoloza inqolobane manje ungasetshenziswa ngezinqubo zengane zisebenzisa iphrothokholi ye-JSON phakathi kwethuluzi le-cmd/go kanye nenqubo yengane ebizwa ngokuhlukahluka kwemvelo ye-GOCACHEPROG. Ngaphambilini bekungokwe-GOEXPERIMENT. Imininingwane yephrothokholi ingabonwa ku imibhalo.
Isikhathi sokuqeda
Ukuthuthukiswa kokusebenza okuningana kwehlise i-CPU phezulu ngo-2-3% ngokwesilinganiso kusethi yamabhentshimakhi amele abanye. Imiphumela ingase yehluke kuye ngohlelo lokusebenza. Lokhu kuthuthukiswa kufaka phakathi ukusetshenziswa kwemephu eyakhelwe ngaphakathi esekelwe Amathebula IsiSwidi, ukunikezwa okusebenza kahle kakhudlwana kwenkumbulo yento encane, kanye nokusebenzisa okusha kwangaphakathi kwesikhathi sokusebenza kwe-mutex.
Ukuqaliswa kwemephu entsha eyakhelwe ngaphakathi kanye ne-runtime entsha ye-runtime mutex kungakhutshazwa ngokusetha i-GOEXPERIMENT=noswissmap kanye ne-GOEXPERIMENT=nospinbitmutex ngesikhathi sokwakha, ngokulandelanayo.
Umhlanganisi
Umhlanganisi usekuvimbele kakade ukuchaza izindlela ezintsha ngezinhlobo zomamukeli ezakhiwe yi-cgo, kodwa bekungenzeka ukusebenza kulo mkhawulo ngokusebenzisa uhlobo lwesiteketiso. I-Go 1.24 manje ibika njalo iphutha uma umamukeli esho uhlobo olukhiqizwe yi-cgo, ngokuqondile noma ngokungaqondile (ngohlobo lwesiteketiso).
Umxhumanisi
Isixhumi manje sikhiqiza isihlonzi sokwakha se-GNU (okufakwayo kwe-ELF NT_GNU_BUILD_ID) ezinkundleni ze-ELF kanye ne-UUID (umyalo wokulayisha we-Mach-O LC_UUID) ku-macOS ngokuzenzakalelayo. I-ID yokwakha noma i-UUID isuselwa ku-ID yokwakha ye-Go. Lokhu kungavalwa ngefulegi -B none linker, noma kukhishwe -B 0xNNNN ifulegi lesixhumanisi ngenani elishiwo umsebenzisi le-hexadecimal.
Ukuphromotha
Njengoba kushiwo ku Hamba 1.22 amanothi okukhipha, i-Go 1.24 manje idinga i-Go 1.22.6 noma eyakamuva ukuthi ifakwe. Onjiniyela balindele ukuthi i-Go 1.26 izodinga ukukhishwa kwephoyinti le-Go 1.24 noma kamuva ukuze ikhishwe.
Ilabhulali Ejwayelekile
Ukufinyelela kwesistimu yefayela okukhawulelwe ngohlu
Uhlobo olusha os.impande Inikeza amandla okwenza imisebenzi yesistimu yefayela ngaphakathi kohla lwemibhalo oluthile.
Umsebenzi os.OpenRoot ivula uhla lwemibhalo bese ibuyisela os.impande. Izindlela zivuliwe os.impande sebenzisa kulolo hlu lwemibhalo futhi ungavumeli izindlela zokubhekisela ezindaweni ezingaphandle kohlu lwemibhalo, kuhlanganise nalezo ezilandela izixhumanisi ezingokomfanekiso ezingaphandle kohlu lwemibhalo. Izindlela eziku-os.Root zibonisa imisebenzi eminingi yesistimu yefayela etholakala kuphakheji ye-os, okuhlanganisa, isibonelo, os.Umsuka.Vula, os.Umsuka.Dala, os.Umsuka.Mkdir и os.Root.Stat.
Isici esisha sebhentshimakhi
Amabhentshimakhi manje angasebenzisa indlela esheshayo, enephutha kancane ukuhlola.B.Loop ukuphindaphinda ngaphezu kwebhentshimakhi efana ne-b.Loop() { … } esikhundleni sezakhiwo ezijwayelekile zeluphu ezihlanganisa i-bN efana nobubanzi bN Lokhu kunikeza izinzuzo ezimbili ezibalulekile:
- Umsebenzi webhentshimakhi wenziwe kanye ncamashi ngokubala ngakunye, ngakho ukusetha okumba eqolo nezinyathelo zokuhlanza kwenziwa kanye kuphela.
- Ipharamitha yekholi yomsebenzi kanye nemiphumela iphila kuyo, ivimbela isihlanganisi ekwenzeni ngokugcwele umzimba we-loop.
Iziphetha ezithuthukisiwe
Isici esisha isikhathi sokusebenza.EngezaCleanup iyindlela yokuqedela evumelana nezimo kakhulu, esebenza kahle kakhulu, futhi engenamaphutha kancane kune isikhathi sokusebenza.SetFinalizer. I-AddCleanup inamathisela umsebenzi wokuhlanza entweni ezosetshenziswa ngokushesha nje lapho into ingatholakali. Kodwa-ke, ngokungafani ne-SetFinalizer, ukuhlanzwa okuningi kungaxhunywa entweni eyodwa, ukuhlanza kungaxhunyaniswa nezinkomba zangaphakathi, ukuhlanza ngokuvamile akubangeli ukuvuza lapho izinto zenza umjikelezo, futhi ukuhlanza akubambezeli ukuhanjiswa kwento noma izinto ezikhomba kuzo. Ikhodi entsha kufanele ikhethe i-AddCleanup kune-SetFinalizer.
Iphakheji elisha elibuthakathaka
Iphakheji entsha buthakathaka inikeza izinkomba ezibuthakathaka.
Izikhombi ezibuthakathaka ziyizinga eliphansi lasendulo elihlinzekelwe ukudala izakhiwo ezisebenza kahle kwinkumbulo njengezichazamazwi ezibuthakathaka zamanani emephu, izichazamazwi ze-canonicalization zanoma yini engamboziwe iphakheji. esiyingqayizivele, kanye nezinhlobo ezahlukahlukene zama-cache. Ukusekela lezi zimo zokusetshenziswa, lokhu kukhishwa nakho kuyahlinzeka isikhathi sokusebenza.EngezaCleanup и maphash.Comparable.
Iphakheji entsha ye-crypto/mlkem
Iphakheji entsha crypto/mlkem isebenzisa i-ML-KEM-768 ne-ML-KEM-1024.
I-ML-KEM iyindlela yokushintshanisa ukhiye we-post-quantum, phambilini eyayaziwa ngokuthi i-Kyber futhi icaciswe kuyo FIPS 203.
Amaphakheji amasha i-crypto/hkdf, i-crypto/pbkdf2 ne-crypto/sha3
Iphakheji entsha crypto/hkdf isebenzisa umsebenzi wokutholwa kokhiye osuselwe ku-HMAC othi “Khipha-futhi-Nweba” i-HKDF njengoba kuchazwe ku- RFC 5869.
Iphakheji entsha crypto/pbkdf2 isebenzisa umsebenzi wokutholwa kokhiye osuselwe kuphasiwedi we-PBKDF2 njengoba kuchazwe kuwo RFC 8018.
Iphakheji entsha crypto/sha3 isebenzisa umsebenzi we-SHA-3 hashi kanye ne-SHAKE kanye nemisebenzi ephumayo ye-cSHAKE eyandiswayo njengoba kuchazwe ku- FIPS 202.
Womathathu amaphakheji asekelwe kumaphakheji akhona e-golang.org/x/crypto/….
Ukuhambisana kwe-FIPS 140-3
Lokhu kukhishwa kuhlanganisa isethi entsha yezindlela zokuqinisekisa ukuthobela kwe-FIPS 140-3.
Imojula ye-Go crypto iyisethi yamaphakheji ajwayelekile omtapo wezincwadi asetshenziswa ngokusobala ukuze kusetshenziswe ama-algorithms agunyaziwe we-FIPS 140-3. Izicelo azidingi izinguquko ukuze zisebenzise imojuli ye-Go crypto kuma-algorithms agunyaziwe.
Ukushintshashintsha kwemvelo okusha kwe-GOFIPS140 kungasetshenziswa ukukhetha inguqulo yemojula ye-Go crypto ezosetshenziswa ekwakheni. Okusha Ukusethwa kwe-GODEBUG I-fips140 ingasetshenziswa ukunika amandla imodi ye-FIPS 140-3 ngesikhathi sokusebenza.
I-Go 1.24 ihlanganisa i-Go crypto module v1.0.0, okwamanje ehlolwa ngelebhu egunyazwe i-CMVP.
Ukuhlola iphakheji entsha yokuhlola/synctest
Iphakheji entsha yokuhlola ukuhlola/synctest Ihlinzeka ngosekelo lokuhlola ikhodi ngesikhathi esisodwa.
- Umsebenzi synctest.run iqhuba iqembu lama-goroutine "kubhamuza" elingalodwa. Kubhamuza lomsebenzi wephakheji isikhathi sebenzisa amawashi amanga.
- Imisebenzi synctest.linda linda kuze kube yilapho wonke ama-goroutine evinjiwe kubhamuza lamanje.
Imininingwane ingatholakala kumadokhumenti ephakheji.
Iphakheji ye-synctest ingeyokuhlola futhi kufanele ivunyelwe ngokusetha GOEXPERIMENT=synctest. Iphakheji ye-API ingase ishintshe ekukhishweni okuzayo. IN #67434 Ungabona imininingwane eyengeziwe futhi unikeze impendulo.
Izinguquko ezincane kulabhulali
Ingobo yomlando
Ukuqaliswa (*Writer.AddFS) ku-archive/zip naku-archive/tar manje kubhala unhlokweni wohlu lwemibhalo olungenalutho.
amabhayithi
Iphakheji amabhayithi yengeza imisebenzi eminingana esebenza neziphindaphinda:
- Imigqa Ibuyisela i-iterator phezu kweyunithi yezinhlamvu ehlukaniswe umugqa omusha kucezu lwebhayithi.
- I-SplitSeq ibuyisela i-iterator phezu kwawo wonke ama-subslices we-byte slice ehlukaniswe isihlukanisi.
- SplitAfterSeq ibuyisela i-iterator phezu kwezigatshana ze-byte slice, ehlukaniswa ngemva kwesenzeko ngasinye sesihlukanisi.
- I-FieldsSeq ibuyisela i-iterator phezu kwezigatshana ze-byte slice ezizungeze ukulandelana kwezinhlamvu zesikhala, njengoba kuchaziwe unicode.IsSpace
- I-FieldsFuncSeq ibuyisela i-iterator phezu kwezigatshana ze-byte slice ezizungeze ukulandelana kwamaphoyinti ekhodi ye-Unicode ukwanelisa isilandiso.
crypto/aes
Buyisela inani I-NewChipher ayisasebenzisi i-NewCTR, i-NewGCM, i-NewCBCEncrypter, kanye nezindlela ze-NewCBCDecrypter. Lezi zindlela bezingabhaliwe futhi zingatholakali kuzo zonke izakhiwo. Manje incazelo Block kumele idluliselwe ngqo emisebenzini efanele i-crypto/cipher. Okwamanje, i-crypto/cipher isahlola lezi zindlela kumanani we-Block, nakuba zingasasekelwa umtapo wolwazi ojwayelekile.
i-crypto/cipher
Isici esisha I-NewGCMWithRandomNonce izimbuyiselo I-AEAD, esebenzisa i-AES-GCM ngokukhiqiza i-nonce engahleliwe phakathi no-Seal futhi iyilungiselele kumbhalo we-ciphertext.
Ukuqaliswa Stream, wabuya I-NewCTR uma isetshenziswa ne crypto/aes manje ngokushesha izikhathi ezimbalwa ku-amd64 naku-arm64.
I-NewOFB, I-NewCFBEncrypter и I-NewCFBDDecrypter manje kuthiwa ayisasebenzi. Izindlela ze-OFB ne-CFB azigunyaziwe, ngokuvamile ezivumela ukuhlasela okusebenzayo ukuze kulawuleke futhi kubuyiselwe umbhalo osobala. Izicelo zinconywa ukuthi zisetshenziswe I-AEAD ngokubuyisela. Uma imodi engagunyaziwe Stream edingekayo, ingasetshenziswa I-NewCTR ngokubuyisela.
crypto/ecdsa
I-PrivateKey.Sign manje idala isiginesha ye-deterministic ngokusho RFC 6979, uma umthombo wokungahleliwe ungekho.
crypto/md5
Buyisela inani md5.entsha, manje futhi isebenzisa isixhumi esibonakalayo umbhalo.i-appender kanambambili.
i-crypto/rand
Umsebenzi Funda manje iqinisekisa akukho ukwehluleka. Uma Ukufunda kuhlangabezana nephutha ngenkathi kufundwa Reader, uhlelo luzonqanyulwa unaphakade. Qaphela ukuthi i-Reader emisiwe ibhalwe ukuthi ihlale isebenza ngempumelelo, ngakho-ke lolu shintsho kufanele luthinte kuphela izinhlelo ezikhipha okuhlukile kokuFunda. Okukodwa okuhlukile ama-Linux kernels ngaphambi kuka-3.17, lapho i-Reader ezenzakalelayo isavula /dev/urandom futhi ingase yehluleke.
Ku-Linux 6.11 nakamuva, i-Reader manje isebenzisa ikholi yesistimu ye-getrandom nge-vDSO. Lokhu kushesha izikhathi ezimbalwa, ngokuvamile ekufundweni okuncane.
Ku-OpenBSD Reader manje isebenzisa i-arc4random_buf(3).
Isici esisha Umbhalo manje ingakwazi ukukhiqiza iyunithi yezinhlamvu zombhalo ezingahleliwe ezivikelekile ngokufihlakele.
crypto/rsa
Khiqiza ukhiye manje ibuyisela iphutha uma ubude bokhiye obungaphansi kwamabhithi angu-1024 buceliwe. Zonke izindlela zokuthi Sayina, Qinisekisa, Bethela, kanye Nezokunqamula ukubethela manje zibuyisela iphutha uma zisetshenziswa ngosayizi wokhiye ongaphansi kwamabhithi angu-1024. Okhiye abanjalo abaphephile futhi akufanele basetshenziswe. Isetha i-GODEBUG rsa1024min=0 ibuyisela ukuziphatha okudala, kodwa abathuthukisi be-Go batusa ukwenza lokhu kuphela lapho kudingekile futhi ezivivinyweni kuphela, isibonelo ngokwengeza umugqa //go:debug rsa1024min=0 efayeleni lokuhlola. Okusha isibonelo I-GenerateKey inikeza ukhiye wokuhlola ongu-2024-bit olula ukuwusebenzisa.
Manje sekuphephile futhi kusebenza kahle kakhulu ukushayela I-PrivateKey.Compute ukuze I-PrivateKey.Qinisekisa. I-Precompute manje iyashesha phambi kokugcwaliswa kancane I-PrecomputedValues, isibonelo uma ukhipha ukhiye ku-JSON.
Iphakheji manje yenqaba okhiye abaningi abangavumelekile ngisho nalapho Ukuqinisekisa kungabizwanga, futhi Khiqiza ukhiye manje ingabuyisela amaphutha amasha emithonjeni ephukile yokungahleliwe. Izinkambu Izikhathi и Kubalwe kusengaphambili izakhiwo I-PrivateKey asetshenziswa manje futhi aqinisekisiwe ngisho nalapho amanye amanani engekho. Kukhona futhi izinguquko ku-crypto/x509 yokuhlaziya nokukhipha okhiye be-RSA, abachazwe ngezansi.
I-SignPKCS1v15 и QinisekisaPKCS1v15 manje isekela i-SHA-512/224, SHA-512/256 kanye ne-SHA-3.
Khiqiza ukhiye manje isebenzisa indlela ehluke kancane ukukhiqiza i-eksponenti yangasese (umsebenzi we-Carmichael esikhundleni somsebenzi we-Euler). Izinhlelo zokusebenza ezingavamile ezikhiqiza kabusha okhiye ngaphandle ezivela ezinombolweni eziyinhloko kuphela zingase zikhiqize imiphumela ehlukile kodwa ehambisanayo.
Ukusebenza kokhiye basesidlangalaleni nabayimfihlo manje sekufike ngokushesha ngokuphindwe kabili ku-wasm.
crypto/sha*
- crypto/sha1: inani lokubuyisela sha1.Okusha manje futhi isebenzisa interface umbhalo.i-appender kanambambili.
- crypto/sha256: amanani abuyisiwe sha256.Okusha и sha256.New224 manje futhi sebenzisa i-interface umbhalo.i-appender kanambambili.
- crypto/sha512: amanani abuyisiwe sha512.Okusha, sha512.New384, sha512.New512_224 и sha512.New512_256, manje futhi sebenzisa isixhumi esibonakalayo umbhalo.i-appender kanambambili.
crypto/ezicashile
Isici esisha WithDataIndependentTiming ivumela umsebenzisi ukuthi enze umsebenzi onezici ezithile zesakhiwo ezinikwe amandla eziqinisekisa ukuthi imiyalelo ethile ayishintshiwe ngokuqhathaniswa nesikhathi senani ledatha. Lokhu kungasetshenziswa ukuze kuqinisekiswe ukuthi ikhodi ebhalelwe ukusebenza ngesikhathi esifanayo ayizange ithuthukiswe imisebenzi yeleveli yokucubungula ukuze isebenze ngesikhathi esiguquguqukayo. Okwamanje i-WithDataIndependentTiming isebenzisa kancane i-PSATE.DIT ku-arm64 futhi ayenzi lutho kuzo zonke ezinye izakhiwo. Isetha i-GODEBUG dataindependenttiming=1 inika amandla imodi ye-DIT kulo lonke uhlelo lwe-Go.
isiphetho XORBytes kufanele igqagqene ngokuphelele noma ingahambisani nhlobo nokokufaka. Ngaphambilini ukuziphatha bekungachazwanga ngenye indlela, kanti manje i-XORBytes izothuka.
crypto/tls
Iseva ye-TLS manje isekela i-Client Encrypted Hello (ECH). Lesi sici singanikwa amandla ngokugcwalisa inkambu. Config.EncryptedClientHelloKeys.
I-Post-Quantum Key Exchange Mechanism Entsha X25519MLKEM768 manje isekelwa futhi inikwe amandla ngokuzenzakalela nini Config.CurvePreferences awu nil. Isetha i-GODEBUG tlsmlkem=0 ibuyisela okuzenzakalelayo.
Usekelo lokuhlola ukushintsha kokhiye lwe-X25519Kyber768Draft00 lususiwe.
I-oda lokushintshisana elingukhiye manje selisingathwa ngokuphelele yiphakheji ye-crypto/tls. Oda Config.CurvePreferences manje ishaywa indiva futhi okuqukethwe kusetshenziswa kuphela ukunquma ukuthi yikuphi ukushintshana okubalulekile okufanele kufakwe lapho inkambu igcwaliswa.
Inkambu entsha ClientHelloInfo.Izandiso Iklelisa uhlu lwezihlonzi zesandiso ezitholwe kumlayezo othi Sawubona Weklayenti. Lokhu kungaba usizo kumakhasimende we-TLS wokunyathelisa iminwe.
crypto/x509
Isetha i-GODEBUG I-x509sha1 isusiwe. Ukuqinisekisa.Qinisekisa ayisawasekeli amasiginesha asekelwe ku-SHA-1.
I-OID manje isebenzisa izixhumi ezibonakalayo umbhalo.i-appender kanambambili и ukubhala ngekhodi.TextAppender.
Inkambu yenqubomgomo yesitifiketi esizenzakalelayo ishintshiwe isuka Izihlonzi Zenqubomgomo.Izitifiketi on Isitifiketi.Izinqubomgomo. Lapho kuncozululwa izitifiketi, zombili izinkambu zizogcwaliswa, kodwa lapho kwakhiwa inqubomgomo yesitifiketi, zizothathwa kunkambu yesitifiketi.Izinqubomgomo esikhundleni sezihlonzi zesitifiketi.PolicyIdentifiers. Lolu shintsho lungabuyiselwa emuva. Ukusethwa kwe-GODEBUG x509izinqubomgomo zokusetshenziswa=0.
Yakha Isitifiketi manje izokhiqiza inombolo yesiriyeli isebenzisa indlela ehambisana ne-RFC 5280 lapho idlula inkambu yesifanekiso Isitifiketi.Inombolo yomkhiqizo nil, esikhundleni sokuphahlazeka.
Isitifiketi.Qinisekisa manje isekela ukuqinisekiswa kwenqubomgomo njengoba kuchazwe ku-RFC 5280 ne-RFC 9618. Inkambu entsha VerifyOptions.CertificatePolicies ingasethwa kusethi yezinqubomgomo ezamukelekayo Ama-OID. Amaketango ezitifiketi kuphela anamagrafu enqubomgomo avumelekile azobuyiswa esuka Isitifiketi.Qinisekisa.
I-MarshalPKCS8PrivateKey manje ibuyisela iphutha esikhundleni sokubuyisa ukhiye we-RSA ongavumelekile. (I-MarshalPKCS1PrivateKey ayinakho ukubuya kwephutha futhi ukuziphatha kwayo lapho okhiye abangavumelekile kunikezwa kuhlala kungachazwanga.)
I-ParsePKCS1PrivateKey и I-ParsePKCS8PrivateKey manje sebenzisa futhi uqinisekise amanani e-CRT afakwe ikhodi, ngakho-ke ingenqaba okhiye be-RSA abangavumelekile abemukelwe ngaphambilini. Ukusetshenziswa Izilungiselelo ze-GODEBUG x509rsacrt=0 ibuyisela ekubalweni kabusha kwamanani e-CRT.
lungisa iphutha/elf
Iphakheji lungisa iphutha/elf Yengeza usekelo lokuphatha izinguqulo zezimpawu kumafayela aguquguqukayo e-ELF (Ifomethi Esebenzisekayo Nexhumekayo). Indlela entsha Ifayela.DynamicVersions Ibuyisela uhlu lwezinguqulo eziguquguqukayo ezichazwe kufayela le-ELF. Indlela entsha File.DynamicVersionNeeds Ibuyisela uhlu lwezinguqulo eziguqukayo ezidingwa yileli fayela le-ELF ezichazwe kwezinye izinto ze-ELF. Ekugcineni, izinkambu ezintsha I-Symbol.HasVersion и I-Symbol.VersionIndex khombisa inguqulo yophawu.
Ukufaka ikhodi
Izixhumi ezibonakalayo ezimbili ezintsha UmbhaloAppender и I-BinaryAppender zethulwe ukwengeza umbhalo noma ukumelwa okumbambambili kwento kucezu lwebhayithi. Lezi zixhumanisi zihlinzeka ngokusebenza okufanayo ne UmbhaloMarshaler и I-BinaryMarshaler, kodwa esikhundleni sokunikeza ucezu olusha isikhathi ngasinye, banezela idatha ngokuqondile ocezwini olukhona. Lezi zixhumanisi zisetshenziswa okwamanje izinhlobo ezijwayelekile zelabhulali esezivele zisebenzise i-TextMarshaler kanye/noma i-BinaryMarshaler.
umbhalo wekhodi/json
Uma wakha, inkambu yesakhiwo enenketho entsha ye-omitzero kumaka wenkundla yesakhiwo izokhishwa uma inani layo linguziro. Uma uhlobo lwenkambu lunendlela ye-bool ye-IsZero(), izosetshenziswa ukuze kutholwe ukuthi ingabe inani linguziro. Uma kungenjalo inani lizoba uziro uma likhona inani elingenalutho lohlobo lwayo. Ithegi yenkundla ye-omitzero ihlanzekile futhi ayinaphutha kangako kune-omitempty uma inhloso kuwukushiya amanani angenalutho. Ikakhulukazi, ngokungafani ne-omitempty, i-omitzero ishiya ama-zero isikhathi.isikhathi amanani, okuwumthombo ovamile wezinkinga.
Uma kokubili omitempty kanye ne-omitzero kucacisiwe, inkambu izokhishwa uma inani lingenalutho noma uziro (noma kokubili).
I-UnmarshalTypeError.Field manje ihlanganisa izakhiwo ezakhelwe ngaphakathi ukunikeza imilayezo yephutha enemininingwane eminingi.
hamba/izinhlobo
Zonke izakhiwo zedatha ye-go/izinhlobo ezidalula ukulandelana kwamapheya ezindlela, njenge-Len() int kanye ne-At(int) T, manje sezinezindlela ezibuyisela iziphindaphinda, okuvumela ikhodi elula kanje:
amapharamitha := fn.Type.(*izinhlobo.Isiginesha).Amapharam() we-i := 0; i < params.Len(); i++ {sebenzisa(params.At(i))}
Kulokhu:
ye-param := ububanzi fn.Siginesha().I-Params().Okuguquguqukayo() {use(param)}
Izindlela: I-Interface.EmbeddedTypes I-interface.Izindlela Ezicacile Isixhumi esibonakalayo.Izindlela MethodSet.Izindlela Iqanjwe.Izindlela Ububanzi.Izingane Isakhiwo.Izinkundla I-Tuple.Okuguquguqukayo I-TypeList.Izinhlobo I-TypeParamList.TypeParams Imibandela.Inyunyana
hashi/*
- hash/adler32: inani lokubuyisela New, manje futhi isebenzisa isixhumi esibonakalayo umbhalo.i-appender kanambambili
- hashi/crc32: amanani abuyisiwe New и OkushaIEEE, manje futhi sebenzisa isixhumi esibonakalayo umbhalo.i-appender kanambambili
- hashi/crc64: inani lokubuyisela New, manje futhi isebenzisa isixhumi esibonakalayo umbhalo.i-appender kanambambili
- hashi/fnv: amanani abuyisiwe I-New32 Entsha32a I-New64 Entsha64a I-New128 и Entsha128a, manje futhi sebenzisa isixhumi esibonakalayo umbhalo.i-appender kanambambili
- hashi/maphash: izici ezintsha Ukufaniswa и BhalaComparable ingabala i-hashi yanoma yiliphi inani elingaqhathaniswa. Lokhu kukuvumela ukuthi uheshise noma yini engasetshenziswa njengokhiye wesichazamazwi se-Go.
log/slog
Kusha I-DiscardHandler isibambi esingakaze sinikwe amandla futhi sihlala silahla okukhiphayo.
Izinga и I-LevelVar manje sebenzisa i-interface ukubhala ngekhodi.TextAppender.
izibalo/*
- izibalo/ezinkulu: I-Float, Int и Isilinganiso manje sebenzisa i-interface ukubhala ngekhodi.TextAppender.
- izibalo/irandi: amakholi wezinga eliphezulu ahoxisiwe Seed azisenawo umthelela. Ukuze ubuyisele ukuziphatha okudala, ungasebenzisa Ukusethwa kwe-GODEBUG irandseednop=0. Okuqukethwe okwengeziwe ku nikeza 67273.
- izibalo/irandi/v2: I-ChaCha8 и PCG manje sebenzisa i-interface umbhalo.i-appender kanambambili.
net
ListenCondig manje isebenzisa i-MPTCP ngokuzenzakalelayo kumasistimu lapho isekelwa khona (okwamanje yi-Linux kuphela).
IP manje isebenzisa i-interface ukubhala ngekhodi.TextAppender.
inetha/http
Umkhawulo ushintshile Ezokuthutha ezimpendulweni zolwazi ezitholiwe ezingu-1xx eziphendula isicelo. Ngaphambilini lokhu bekuzomisa isicelo futhi kubuyisele iphutha ngemva kokuthola izimpendulo ezingaphezu kuka-5 1xx. Lokhu manje kubuyisela iphutha kuphela uma ingqikithi kasayizi wazo zonke izimpendulo ze-1xx idlula ukulungiselelwa kokumiswa Transport.MaxResponseHeaderBytes.
Futhi, uma isicelo sinehhuku lokulandela umkhondo net/http/httptrace.ClientTrace.Got1xxResponse, manje awukho umkhawulo enanini lezimpendulo ezingu-1xx. Ihhuku ye-Got1xxResponse ingabuyisela iphutha ukuze kumiswe isicelo.
Ezokuthutha и Iseva manje unenkambu ye-HTTP2 evumela ukucushwa kwezilungiselelo zephrothokholi ye-HTTP/2.
Izinkambu ezintsha I-server.Protocols и Ezokuthutha.Izimiso hlinzeka ngendlela elula yokumisa ukuthi yiziphi izivumelwano ze-HTTP iseva noma iklayenti ezisebenzisayo.
Iseva neklayenti kungalungiselelwa ukusekela uxhumo olungabethelwe lwe-HTTP/2.
Nini I-server.Protocols iqukethe i-UnencrypterHTTP2, iseva izokwamukela ukuxhumeka kwe-HTTP/2 ezimbobeni ezingabhaliwe. Iseva ingamukela kokubili i-HTTP/1 kanye ne-HTTP/2 engabetheliwe embotsheni efanayo.
Nini Ezokuthutha.Izimiso iqukethe i-UnencryptedHTTP2 futhi ayiqukethe i-HTTP1, ezokuthutha zizosebenzisa i-HTTP/2 engabetheliwe kumakheli http://. Uma okokuthutha kulungiselelwe ukusebenzisa kokubili i-HTTP/1 kanye ne-HTTP/2 engabetheliwe, izosebenzisa i-HTTP/1.
Ukusekelwa kwe-HTTP/2 engabetheliwe kusebenzisa i-"HTTP/2 nge-Forward-Learning" (RFC 9113, isigaba 3.3). Unhlokweni owehlisiwe othi “Thuthukisa: h2c” awusekelwe.
inetha/inethi
Addr, AddrPort и Isiqalo manje sebenzisa izixhumi ezibonakalayo umbhalo.i-appender kanambambili и ukubhala ngekhodi.TextAppender.
inetha/url
I-URL manje futhi isebenzisa interface umbhalo.i-appender kanambambili.
os/umsebenzisi
Ku-Windows yamanje manje ingasetshenziswa ku-Windows Nano Server. Ukuqaliswa kubuyekeziwe ukuze kugwenywe ukusebenzisa imisebenzi evela kulabhulali ye-NetApi32, engekho kuseva ye-Nano.
Ku-Windows yamanje, Ukulanda и BhekaId manje isekela ama-akhawunti alandelayo enkonzo yomsebenzisi akhelwe ngaphakathi:
- NT AUTHORITYSYSTEM
- INKONZO YE-NT AUTHORITYLOCAL
- I-NT AUTHORITYNETWORK SERVICE
Ku-Windows yamanje isheshiswe kakhulu lapho umsebenzisi wamanje ehlanganiswa nesizinda esinensayo, okuyinto evamile kubasebenzisi abaningi bezinkampani. Ukusebenza kokusetshenziswa okusha manje sekulandelana ngama-millisecond, uma kuqhathaniswa nokusetshenziswa kwangaphambilini, okungathatha amasekhondi ambalwa, ngisho namaminithi, ukuqeda.
Ku-Windows yamanje manje ibuyisela umnikazi wenqubo umsebenzisi uma uchungechunge lwamanje luzenza omunye umsebenzisi. Ngaphambilini lokhu kubuyise iphutha.
regexp
I-Regexp manje isebenzisa i-interface i-encoding.TextAdapter.
isikhathi sokuqalisa
Umsebenzi IGOROOT manje yehlisiwe. Ezimweni ezintsha, kufanele ukhethe ukusebenzisa indlela yesistimu ukuze uchaze kanambambili "hamba", futhi usebenzise i-go env GOROOT ukuchaza i-GOROOT.
izintambo
Iphakheji izintambo yengeza imisebenzi eminingana yokusebenza nama-iterators:
- Imigqa Ibuyisela i-iterator phezu kwemigqa ehlukaniswe umugqa omusha kuyunithi yezinhlamvu.
- I-SplitSeq ibuyisela i-iterator phezu kwazo zonke izintambo ezingaphansi zeyunithi yezinhlamvu ehlukaniswe isihlukanisi.
- SplitAfterSeq ibuyisela i-iterator phezu kweyunithi yezinhlamvu engaphansi, ehlukaniswa ngemva kokuvela ngakunye kwesihlukanisi.
- I-FieldsSeq ibuyisela i-iterator phezu kochungechunge oluncane lweyunithi yezinhlamvu ezungeze ukulandelana kwezinhlamvu zesikhala esimhlophe, njengoba kuchaziweunicode.IsSpace
- I-FieldsFuncSeq Ibuyisela i-iterator phezu kochungechunge oluncane lweyunithi yezinhlamvu ezizungeze ukulandelana kwamaphoyinti ekhodi ye-Unicode anelisa isilandiso.
ukuvumelanisa
Ukuqaliswa sync.map ishintshiwe ukuze ithuthukise ukusebenza, ikakhulukazi izinguquko zesichazamazwi. Isibonelo, umbango wokushintsha isethi ye-disjoint mancane amathuba okuba kuzichazamazwi ezinkulu, futhi akusadingi isikhathi sokwakha ukuze kuzuzwe umthwalo ophansi wesichazamazwi.
Uma uhlangabezana nanoma yiziphi izinkinga, setha i-GOEXPERIMENT=nosynchashtriemap ngesikhathi sokwakha ukuze ubuyele ekusebenziseni okudala futhi sicela gcwalisa ifomu lenkinga.
testing
Izindlela ezintsha T.Context и B.Umongo buyisela umongo olahlwayo ngemva kokuphela kokuhlolwa nangaphambi kokuba imisebenzi yokuhlanza ihlolwe yenziwe.
Izindlela ezintsha T.Chdir и B.Chdir ingasetshenziswa ukushintsha uhla lwemibhalo olusebenzayo ngesikhathi sokuhlolwa noma ibhentshimakhi.
umbhalo/isifanekiso
Izifanekiso manje zisekela u-range-over-func kanye ne-range-over-int.
isikhathi
Isikhathi manje isebenzisa izixhumi ezibonakalayo umbhalo.i-appender kanambambili и ukubhala ngekhodi.TextAppender.
Amaports
Linux
Njengoba kwakunjalo kumenyezelwe Ngokusho kwamanothi okukhishwa kwe-Go 1.23, i-Go 1.24 idinga inguqulo ye-Linux kernel 3.2 noma kamuva.
Darwin
I-Go 1.24 ingukukhululwa kokugcina okuzosebenza ku-macOS 11 Big Sur. I-Go 1.25 izodinga i-macOS 12 Monterey noma kamuva.
I-WebAssembly
I-go:wasmexport compiler guide yengezwe ezinhlelweni ze-Go ukuze zithekelise imisebenzi kumsingathi we-WebAssembly.
Ku-WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm), i-Go 1.24 isekela ukwakha uhlelo lwe-Go njenge isizindalwazi/umtapo wolwazi ngokucacisa ifulegi lokwakha -buildmode=c-shared.
Izinhlobo ezengeziwe manje sezivunyelwe njenge-agumenti noma izinhlobo zemiphumela yemisebenzi ye-go:wasmimport. Ikakhulukazi, i-bool, i-string, i-uintptr nezikhombisi zezinhlobo ezithile zivunyelwe (bona imininingwane ku imibhalo), kanye nezinhlobo ezingu-32-bit kanye ne-64-bit integer kanye nezinhlobo zamaphoyinti antantayo, futhi ezingaphephile.Isikhombi, esesivunyelwe kakade. Lezi zinhlobo nazo zivunyelwe njenge-agumenti noma izinhlobo zemiphumela yemisebenzi ye-go:wasmexport.
Amafayela asekelayo e-WebAssembly athuthelwe ku-lib/wasm esuka ku-misc/wasm.
Inkumbulo yokuqala incishiswe kakhulu, ikakhulukazi ezinhlelweni ezincane zeWebAssembly.
Windows
Imbobo ye-32-bit windows/arm (GOOS=windows GOARCH=arm) imakwe njengephukile. Imininingwane ku #70705
Source: linux.org.ru
