ʻO kahi hoʻokuʻu hou o ka ʻōlelo Go, version 1.24, hiki mai ʻeono mahina ma hope E hele i ka 1.23. ʻO ka hapa nui o nā hoʻololi i ka hoʻokō ʻana i ka mea hana, runtime a me nā hale waihona puke. E like me nā manawa a pau, hāʻawi ka hoʻokuʻu olelo hoopomaikai Hele 1. Manaʻo ka poʻe hoʻolālā ʻōlelo ʻaneʻane e hoʻomau ʻia nā polokalamu Go āpau e hoʻohui a holo e like me ka wā ma mua.
Hoʻololi i ka ʻōlelo
E hele 1.24 i kēia manawa kākoʻo piha nā inoa inoa maʻamau: hiki ke hoʻohālikelike ʻia kahi ʻano inoa ma ke ʻano he ʻano i haʻi ʻia. Nā kikoʻī ma ʻōlelo kikoʻī. I kēia manawa, hiki ke hoʻopau ʻia kēia hiʻohiʻona ma ka hoʻonohonoho ʻana iā GOEXPERIMENT=noaliastypeparams; Eia naʻe, e wehe ʻia ke koho aliastypeparams ma Go 1.25.
Nā Mea Hana
E hele kauoha
Hiki i nā modula hele ke hahai i nā hilinaʻi hoʻokō me ka hoʻohana ʻana i ke kuhikuhi mea hana ma go.mod. Hoʻopau kēia i ka pono no ka hana mua o ka hoʻohui ʻana i nā mea hana e like me ka lawe ʻole ʻana mai i kahi faila i kapa ʻia ʻo "tools.go". Hiki i ke kauoha go tool ke holo i kēia mau mea hana me ka hoʻohui i nā mea hana e hele mai me Go. Hiki ke loaʻa nā ʻike hou aku ma palapala.
ʻO ka hae -tool hou no go get ke kumu e hoʻohui ʻia ai nā kuhikuhi mea hana i ka module o kēia manawa no nā pūʻolo i ʻōlelo ʻia me ka hoʻohui ʻana i nā kuhikuhi koi.
Mea hou mea hana hoʻohālike meta pili i nā mea hana a pau i loko o ka module o kēia manawa. Hiki ke hoʻohana ʻia kēia e hoʻohou iā lākou a pau ma o ka go get tool, a i ʻole e hoʻokomo iā lākou i kāu papa kuhikuhi GOBIN ma o ka go install tool.
Hoʻokumu ʻia nā mea hoʻokō ma o ka holo holo ʻana a ua hūnā ʻia ke ʻano mea hana go hou i loko o ka Go build cache. Hiki i kēia ke hoʻokuʻu hou ʻia ma muli o ka hoʻonui ʻia o ka cache. #69290.
ʻO ka hele e kūkulu a hele e hoʻokomo i nā kauoha i kēia manawa e ʻae i ka hae -json, e hōʻike ana i ke kūkulu ʻana i nā huahana a me nā hewa e like me ka hoʻokumu ʻia ʻana o ka puka JSON ma ka puka maʻamau. Hiki ke ʻike ʻia nā kikoʻī format ma go help buildjson.
Eia kekahi, e hele i ka test -json i kēia manawa e hōʻike i ka hopena a kūkulu i nā hewa i JSON, i hui pū ʻia me ka hopena hōʻike JSON. Hiki ke hoʻokaʻawale ʻia lākou e nā ʻano hana hou, akā inā pilikia lākou i ka ʻōnaehana hoʻohui hoʻāʻo, hiki iā ʻoe ke hāʻule i hope i ka huaʻōlelo o ke kūkulu ʻana ma o Hoʻonohonoho GODEBUG gotestjsonbuildtext=1.
Hāʻawi ka hoʻololi kaiapuni GOAUTH hou i kahi ala maʻalahi e ʻae i ka huki ʻana i nā module pilikino. Hiki iā ʻoe ke ʻike i nā kikoʻī ma go help goauth.
Ua hoʻokomo ʻia ke kauoha hele build mana o ka module nui i loko o ka binary i hōʻuluʻulu ʻia, e pili ana i kahi hōʻailona a/a i kahi mana mana mana. E hoʻohui ʻia ka ʻōlelo + lepo inā loaʻa nā hoʻololi ʻole. Hiki ke hoʻohana ʻia ka hae -buildvcs=false e haʻalele i ka ʻike mana mana mai ka binary.
Mea hou Hoʻonohonoho GODEBUG toolchaintrace=1 hiki ke hoʻohana ʻia i kēia manawa no ka hahai ʻana i ke kaʻina hana koho ʻana i ke kauoha hele.
Cgo
Kākoʻo ʻo Cgo i nā annotations hou no nā hana C e hoʻomaikaʻi i ka hana holo. #cgo noescape cFunctionName haʻi aku i ka mea hōʻuluʻulu ʻaʻole i pakele ka hoʻomanaʻo i ka hana C cFunctionName. #cgo nocallback cFunctionName haʻi aku i ka mea hōʻuluʻulu ʻaʻole e kāhea ka hana C cFunctionName i nā hana Go. Hiki ke loaʻa nā ʻike hou aku ma palapala cgo.
Hōʻole ʻo Cgo i kēia manawa e hoʻopili i nā kelepona i kahi hana C i loaʻa nā ʻōlelo hoʻolaha like ʻole. No ka laʻana, inā hōʻike ʻia ka f ma ke ʻano he void f(int) a me ka void f(double), e hōʻike ana ʻo cgo i kahi hewa ma mua o ka hana ʻana i kahi kaʻina kelepona hewa ʻole f(0). ʻO ka mea hou i kēia hoʻokuʻu ʻana ua hoʻomaikaʻi ʻia ka ʻike ʻana i kēia kūlana hewa ke ʻike ʻia nā ʻōlelo hoʻolaha like ʻole i nā faila like ʻole. #67699.
Objdump
Kākoʻo ka mea hana objdump i ka wehe ʻana ma 64-bit LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64), a me S390X (GOARCH=s390x).
Vet
Hōʻike ka mea hōʻike hoʻāʻo hou i nā hewa maʻamau i ka hoʻāʻo, fuzzer, benchmark, a me nā ʻōlelo hoʻohālike i nā suites hoʻāʻo, e like me nā inoa hewa, nā pūlima kūpono ʻole, a i ʻole nā laʻana i palapala i nā mea ʻike ʻole. Hiki i kekahi o kēia mau hewa ke hoʻopau i nā hoʻokolohua.
Ke hōʻike nei ka parser printf i kēia manawa i nā diagnostics no nā kelepona o ke ʻano fmt.Printf(s), kahi s he kaula hōʻano maʻamau ʻole me nā kumu ʻē aʻe. Aneane he hewa ia mau kelepona, no ka mea, aia paha i ka waiwai o s ka % ano; hoʻohana i ka fmt.Print. 60529. ʻIke ʻia kēia ʻike e ʻimi i nā mea i loko o ke code i loaʻa, a no laila e hoʻohana wale ʻia ke ʻano o ka ʻōlelo (e like me ka mea i kuhikuhi ʻia e ka go directive o ka go.mod file a i ʻole ka `//go:build` manaʻo) ma ka liʻiliʻi Go 1.24, e pale i ka hoʻopau ʻana i ka hoʻohui ʻana i ka wā e hoʻonui ai i ka Go 1.24 toolchain.
Ke hōʻike nei ka mea hōʻike buildtag i kēia manawa i nā diagnostics inā loaʻa kahi buildtag hewa ka palena kūkulu mana kahiko E hele i ke kuhikuhi //go:build. No ka laʻana, //go:build go1.23.1 pili i kahi hoʻokuʻu kiko; e hoʻohana i //go:build go1.23. #64127.
Ke hōʻike nei ka mea nāna e hoʻopaʻa kope kope i kēia manawa i kahi diagnostic ke hōʻike ʻia kahi hoʻololi i loko o ka loop "no" ʻekolu, e like me i: = iter(); hana (i); i = aʻe(i) { … }, loaʻa iā sync.Locker, e like me sync.Mutex. E hele i ka 1.22 hoʻololi i ke ʻano o ia mau puka lou e hana i kahi loli hou no kēlā me kēia hoʻololi, e kope ana i nā waiwai mai ka ʻike mua; ʻAʻole palekana kēia kope no nā laka. #66387.
GOCACHEPROG
Hiki ke hoʻokō ʻia ka ʻōnaehana cmd/go a me ka hoʻāʻo ʻana i ka caching e nā kaʻina keiki e hoʻokō ana i kahi protocol JSON ma waena o ka mea hana cmd/go a me ke kaʻina hana keiki i kapa ʻia e ka mea hoʻololi kaiapuni GOCACHEPROG. Ma mua, no GOEXPERIMENT. Hiki ke ʻike ʻia nā kikoʻī o ka protocol ma palapala.
Manawa o ka pau ana
Ua hoʻemi ʻia kekahi mau hana hoʻomaikaʻi runtime ma luna o ka CPU e 2-3% ma ka awelika ma waena o kahi hoʻonohonoho o nā ʻelele. Hiki ke ʻokoʻa nā hopena ma muli o ka noi. Loaʻa kēia mau hoʻomaikaʻi i kahi hoʻokō palapala palapala i kūkulu ʻia ma muli o Nā Papa Kuekene, ʻoi aku ka maikaʻi o ka hoʻokaʻawale ʻana i ka hoʻomanaʻo mea liʻiliʻi, a me ka hoʻokō ʻana i ka wā holo kūloko hou o ka mutex.
Hiki ke hoʻopau ʻia ka hoʻokō palapala ʻāina hou a me ka mutex runtime hou ma ka hoʻonohonoho ʻana iā GOEXPERIMENT=noswissmap a me GOEXPERIMENT=nospinbitmutex i ka manawa kūkulu, kēlā me kēia.
Mea hōʻuluʻulu
Ua pāpā ʻia ka mea hōʻuluʻulu i ka wehewehe ʻana i nā ʻano hou me nā ʻano mea hoʻokipa i hana ʻia e cgo, akā hiki ke hana a puni kēia palena ma o kahi inoa inoa. E hōʻike mau ana ʻo Go 1.24 i kēia manawa i kahi hewa inā hōʻike ka mea hoʻokipa i kahi ʻano cgo i hana ʻia, ma ke ʻano pololei a ʻole paha (ma ke ʻano inoa inoa).
Mea hoʻopili
Hoʻopuka ka mea hoʻopili i kēia manawa i kahi GNU build identifier (ELF komo NT_GNU_BUILD_ID) ma nā kahua ELF a me kahi UUID (Mach-O load command LC_UUID) ma macOS ma ka paʻamau. Loaʻa ka ID kūkulu a i ʻole UUID mai ka Go build ID. Hiki ke hoʻopau ʻia kēia me ka hae linker -B none, a i ʻole ke kāʻei ʻia me ka hae linker -B 0xNNNN me kahi waiwai hexadecimal i kuhikuhi ʻia e ka mea hoʻohana.
Hoʻolaha
E like me ka olelo ma Hele 1.22 memo hoʻokuʻu, E hele 1.24 i kēia manawa e pono e hoʻokomo iā Go 1.22.6 a i ʻole ma hope. Manaʻo nā mea hoʻomohala e koi ʻo Go 1.26 i kahi hoʻokuʻu o Go 1.24 a i ʻole ma hope e ʻōwili ʻia.
Hale Waihona Puke
Loaʻa i ka ʻōnaehana waihona papa kuhikuhi
ʻAno hou os.root Hāʻawi i ka hiki ke hana i nā hana ʻōnaehana faila i loko o kahi papa kuhikuhi kikoʻī.
kuleana pili i os.OpenRoot wehe i ka papa kuhikuhi a hoʻi mai os.root. Nā hana ma os.root hana i loko o ia papa kuhikuhi a ʻaʻole e ʻae i nā ala e kuhikuhi i nā wahi ma waho o ka papa kuhikuhi, me nā mea e hahai ana i nā loulou hōʻailona ma waho o ka papa kuhikuhi. Hōʻike nā ʻano hana ma os.Root i ka hapa nui o nā hana filesystem i loaʻa i ka pūʻolo os, me ka laʻana, os.Root.Open, os.Root.Create, os.Root.Mkdir и os.Root.Stat.
Hiʻona paena hou
Hiki i nā Benchmarks ke hoʻohana i kahi ala ʻoi aku ka wikiwiki o ka hewa hoao.B.Loop e hoʻomaʻamaʻa ma luna o kahi hōʻailona e like me ka b.Loop() { … } ma kahi o nā hale loop maʻamau e pili ana i ka bN e like me ka laulā bN Hāʻawi kēia i ʻelua mau pono nui:
- Hoʻokō ʻia ka hana benchmark i hoʻokahi manawa i kēlā me kēia helu, no laila, hoʻokahi wale nō hana ʻana o ka hoʻonohonoho hoʻonohonoho a me ka hoʻomaʻemaʻe.
- Ke ola nei nā ʻāpana kelepona hana a me nā hopena, e pale ana i ka compiler mai ka hoʻonui ʻana i ke kino loop.
Hoʻomaikaʻi ʻia nā mea hoʻopau
Hōʻailona hou runtime.AddCleanup he mīkini hoʻopau i ʻoi aku ka maʻalahi, ʻoi aku ka maikaʻi, a me ka liʻiliʻi o ka hewa ma mua o runtime.SetFinalizer. Hoʻopili ʻo AddCleanup i kahi hana hoʻomaʻemaʻe i kahi mea e holo koke ʻia ke loaʻa ʻole ka mea. Eia nō naʻe, ʻaʻole like me SetFinalizer, hiki ke hoʻopili ʻia nā hoʻomaʻemaʻe lehulehu i kahi mea hoʻokahi, hiki ke hoʻopili ʻia ka hoʻomaʻemaʻe ʻana i nā kuhikuhi kūloko, ʻaʻole maʻamau ka hoʻomaʻemaʻe ʻana i nā leaka ke hana nā mea i kahi pōʻai, a ʻaʻole hoʻopaneʻe ka hoʻomaʻemaʻe ʻana i ka hoʻokaʻawale ʻana o ka mea a i ʻole nā mea āna e kuhikuhi ai. Pono ke code hou e makemake iā AddCleanup ma mua o SetFinalizer.
Pūʻolo nāwaliwali hou
Pūʻolo hou nāwaliwali hāʻawi i nā kuhikuhi nāwaliwali.
ʻO nā kuhikuhina nāwaliwali kahi haʻahaʻa haʻahaʻa haʻahaʻa i hāʻawi ʻia no ka hana ʻana i nā hale hoʻomanaʻo maikaʻi e like me nā puke wehewehe ʻōlelo nāwaliwali no ka palapala ʻana i nā waiwai, nā puke wehewehe ʻōlelo canonicalization no kekahi mea ʻaʻole i uhi ʻia e kahi pūʻolo. kū hoʻokahi, a me nā ʻano huna huna. No ke kākoʻo ʻana i kēia mau hihia hoʻohana, hāʻawi pū kēia hoʻokuʻu runtime.AddCleanup и maphash.Hoʻohālikelike.
Pūʻolo crypto/mlkem hou
Pūʻolo hou crypto/mlkem hoʻohana i ka ML-KEM-768 a me ML-KEM-1024.
ʻO ML-KEM kahi mīkini hoʻololi kī post-quantum, i ʻike mua ʻia ʻo Kyber a i kuhikuhi ʻia ma ʻĀpana 203.
Nā pūʻolo hou crypto/hkdf, crypto/pbkdf2 a me crypto/sha3
Pūʻolo hou crypto/hkdf hoʻokō i ka HMAC-based "Extract-and-Expand" kiʻi derivation function HKDF e like me ka wehewehe ʻana ma RFC 5869.
Pūʻolo hou crypto/pbkdf2 hoʻokō i ka hana hoʻoili kī kī ʻōlelo PBKDF2 e like me ka wehewehe ʻana ma RFC 8018.
Pūʻolo hou crypto/sha3 hoʻokō i ka SHA-3 hash hana a me ka SHAKE a me cSHAKE extensible hana puka e like me ia i hoakakaia ma ʻĀpana 202.
Hoʻokumu ʻia nā pūʻolo ʻekolu i nā pūʻolo golang.org/x/crypto/…
FIPS 140-3 Hoʻokō
Aia kēia hoʻokuʻu he pūʻulu hana hou e hōʻoia i ka hoʻokō ʻana o FIPS 140-3.
ʻO ka module Go crypto he pūʻolo o nā pūʻolo waihona waihona maʻamau i hoʻohana ʻia e hoʻokō i nā algorithm i ʻae ʻia ʻo FIPS 140-3. ʻAʻole koi nā noi i nā loli e hoʻohana i ka module Go crypto no nā algorithm i ʻae ʻia.
Hiki ke hoʻohana ʻia ka hoʻololi kaiapuni hou ʻo GOFIPS140 e koho i ka mana o ka module Go crypto e hoʻohana ai i kahi kūkulu. Hou Hoʻonohonoho GODEBUG Hiki ke hoʻohana i ka fips140 e hiki ai ke ʻano FIPS 140-3 i ka wā holo.
Loaʻa i ka Go 1.24 ka module Go crypto v1.0.0, kahi e hoʻāʻo ʻia nei me kahi lab i ʻae ʻia e CMVP.
Hoʻāʻo/synctest pūʻolo hoʻokolohua hou
Pūʻolo hoʻokolohua hou hoʻāʻo/synctest Hāʻawi i ke kākoʻo no ka hoʻāʻo ʻana i ka code concurrent.
- kuleana pili i synctest.run holo i kahi hui o nā goroutine i loko o kahi "bubble" kaʻawale. I ka ʻōhū o ka hana pūʻolo manawa hana ma na wati hoopunipuni.
- Nā hana synctest.kali e kali a paʻa ʻia nā goroutine a pau i ka ʻōhū o kēia manawa.
Hiki ke loaʻa nā kikoʻī ma ka palapala pūʻolo.
He hoʻokolohua ka pūʻolo synctest a pono e ʻae ʻia ma ka hoʻonohonoho ʻana iā GOEXPERIMENT=synctest. Hiki ke loli ka API pūʻolo i nā hoʻopuka e hiki mai ana. IN #67434 Hiki iā ʻoe ke ʻike i nā kikoʻī hou aku a hāʻawi i nā manaʻo.
Nā hoʻololi liʻiliʻi ma ka waihona
Ahu
ʻO nā hana (*Writer.AddFS) i loko o ka waihona/zip a me ka waihona/tar i kēia manawa e kākau i ke poʻo kuhikuhi no kahi papa kuhikuhi ʻole.
pili
Hoʻolapala pili hoʻohui i kekahi mau hana e hana pū me nā iterator:
- laina Hoʻihoʻi hou i kahi mea hoʻoponopono ma luna o nā kaula i hoʻokaʻawale ʻia i ka laina hou ma kahi ʻāpana byte.
- SplitSeq e hoʻihoʻi i ka mea hoʻololi ma luna o nā subslices āpau o kahi ʻāpana byte i hoʻokaʻawale ʻia e kahi mea hoʻokaʻawale.
- SplitAfterSeq e hoʻihoʻi i ka mea hoʻololi ma luna o nā subslices o kahi ʻāpana byte, e māhele ʻia ma hope o kēlā me kēia hanana o ka mea hoʻokaʻawale.
- FieldsSeq e hoʻihoʻi i kahi mea hoʻololi ma luna o nā subslices o kahi ʻāpana byte a puni nā kaʻina o nā huaʻōlelo ākea, e like me ka wehewehe ʻana unicode.IsSpace
- FieldsFuncSeq e hoʻihoʻi i ka mea hoʻololi ma luna o nā subslices o kahi ʻāpana byte a puni nā kaʻina o nā helu code Unicode e hoʻokō ana i kahi predicate.
crypto/aes
Hoʻihoʻi waiwai NewChipher ʻaʻole hoʻokō hou i nā ʻano NewCTR, NewGCM, NewCBCEncrypter, a me NewCBCDecrypter. ʻAʻole i palapala ʻia kēia mau ʻano hana a ʻaʻole i loaʻa ma nā hale hana a pau. I kēia manawa ka manaʻo kal pono e hāʻawi pololei i nā hana kūpono crypto/cipher. I kēia manawa, nānā mau ka crypto/cipher i kēia mau ʻano ma nā waiwai Block, ʻoiai ʻaʻole lākou i kākoʻo hou ʻia e ka waihona maʻamau.
crypto/cipher
Hōʻailona hou NewGCMWithRandomNonce hoʻi AEAD, ka mea e hoʻokō ai i ka AES-GCM ma ka hana ʻana i kahi nonce maʻamau i ka wā Sila a hoʻomaka i ka ciphertext.
Ka hoʻokō Stream, hoi mai NewCTR ke hoohanaia me crypto/aes i kēia manawa ʻoi aku ka wikiwiki ma amd64 a me arm64.
HouOFB, NewCFBEncrypter и NewCFBDecrypter i kēia manawa ua haʻi ʻia i ka wā kahiko. ʻAʻole i hōʻoia ʻia nā mode OFB a me CFB, ka mea maʻamau e ʻae i nā hoʻouka kaua e hoʻoponopono a hoʻihoʻi i ka plaintext. Paipai ʻia nā noi e hoʻohana AEAD i ka hoihoi ana. Inā hōʻoia ʻole ke ʻano Stream pono, hiki ke hoʻohana NewCTR i ka hoihoi ana.
crypto/ecdsa
PrivateKey.Sign i kēia manawa hana i kahi pūlima deterministic e like me RFC 6979, ina he nil ke kumu randomness.
crypto/md5
Hoʻihoʻi waiwai md5.hou, i kēia manawa hoʻokō i ka interface encoding.binaryappender.
crypto/rand
kuleana pili i heluhelu mai o i kēia manawa ʻaʻohe hemahema. Inā loaʻa ka hewa i ka heluhelu ʻana heluhelu, e hoʻopau mau ka polokalamu. E hoʻomanaʻo, ua kākau ʻia ka mea heluhelu paʻamau e hana maikaʻi i nā manawa a pau, no laila e hoʻopili wale kēia hoʻololi i nā polokalamu e hoʻopau ana i ka loli Reader. Hoʻokahi ʻokoʻa nā kernels Linux ma mua o 3.17, kahi e wehe mau ai ka mea heluhelu paʻamau / dev / urandom a hiki ke hāʻule.
Ma Linux 6.11 a ma hope, ua hoʻohana ʻo Reader i ke kelepona ʻōnaehana getrandom ma o vDSO. ʻOi aku ka wikiwiki o kēia, no ka heluhelu liʻiliʻi.
Ma ka OpenBSD Reader ke hoʻohana nei i ka arc4random_buf(3).
Hōʻailona hou Text hiki i kēia manawa ke hana i nā kaula kikokikona paʻa cryptographically.
crypto/rsa
GenerateKey i kēia manawa e hoʻihoʻi i kahi kuhi inā noi ʻia kahi lōʻihi kī ma lalo o 1024 bits. Hoʻihoʻi nā ʻano hana āpau e hōʻailona, hōʻoia, hoʻopaʻa, a me Decrypt i kahi hewa inā hoʻohana ʻia me ka nui kī ma lalo o 1024 bits. ʻAʻole palekana ia mau kī a ʻaʻole pono e hoʻohana ʻia. Hoʻonohonoho i GODEBUG Hoʻihoʻi hou ʻo rsa1024min=0 i ka hana kahiko, akā ʻōlelo nā mea hoʻomohala Go e hana i kēia wale nō inā pono a ma nā hoʻāʻo wale nō, no ka laʻana ma ka hoʻohui ʻana i ka laina //go:debug rsa1024min=0 i ka faila hoʻāʻo. Hou hiʻohiʻona Hāʻawi ʻo GenerateKey i kahi kī hōʻike maʻamau 2024-bit maʻalahi.
ʻOi aku ka palekana a ʻoi aku ka maikaʻi o ke kelepona ʻana PrivateKey.Precompute i luna PrivateKey.Validate. ʻOi aku ka wikiwiki o ka precompute ma mua o ka hoʻopiha hapa PrecomputedValues, no ka laʻana i ka unuhi ʻana i kahi kī mai JSON.
Hōʻole ka pūʻolo i nā kī hewa ʻole inā ʻaʻole kāhea ʻia ʻo Validate, a GenerateKey hiki i kēia manawa ke hoʻihoʻi i nā hewa hou no nā kumu randomness haki. Māhele Nā lālā и Hoʻopili mua ʻia ka hoolālā PrivateKey hoʻohana ʻia a hoʻopaʻa ʻia i kēia manawa inā nalo kekahi mau waiwai. Aia kekahi mau hoʻololi i ka crypto/x509 no ka hoʻopau ʻana a me ka unuhi ʻana i nā kī RSA, i wehewehe ʻia ma lalo nei.
HoailonaPKCS1v15 и E hōʻoiaPKCS1v15 i kēia manawa kākoʻo iā SHA-512/224, SHA-512/256 a me SHA-3.
GenerateKey Ke hoʻohana nei kēia manawa i kahi ala ʻokoʻa e hoʻopuka i ka exponent pilikino (hana Carmichael ma kahi o ka hana Euler). Hiki i nā noi laha e hoʻopuka hou i nā kī mai nā helu prima wale nō ke hana i nā hopena like ʻole.
ʻO nā hana ma nā kī ākea a me nā kī pilikino a hiki i ʻelua manawa wikiwiki ma wasm.
crypto/sha*
- crypto/sha1: hoʻihoʻi waiwai sha1.New i kēia manawa hoʻokō i ka interface encoding.binaryappender.
- crypto/sha256: nā waiwai i hoʻihoʻi ʻia sha256.New и sha256.New224 i kēia manawa hoʻokō i ka interface encoding.binaryappender.
- crypto/sha512: nā waiwai i hoʻihoʻi ʻia sha512.New, sha512.New384, sha512.New512_224 и sha512.New512_256, i kēia manawa e hoʻokō i ka interface encoding.binaryappender.
crypto / maʻalahi
Hōʻailona hou WithDataIndependentTime hiki i ka mea hoʻohana ke hoʻokō i kahi hana me nā hiʻohiʻona kikoʻī i hiki ke hōʻoia i ka hoʻololi ʻole ʻia o kekahi mau kuhikuhi pili i ka manawa o ka waiwai ʻikepili. Hiki ke hoʻohana ʻia kēia no ka hōʻoia ʻana ʻaʻole i hoʻopaʻa ʻia ke code i kākau ʻia e holo i ka manawa mau e nā hana pae kaʻina hana i hiki ke holo i ka manawa loli. I kēia manawa, hoʻohana ʻo WithDataIndependentTiming i ka bit PSTATE.DIT ma arm64 a ʻaʻohe mea e hana ai ma nā hale hana ʻē aʻe. Hoʻonohonoho i GODEBUG hiki i ka dataindependenttiming=1 ke ʻano DIT no ka polokalamu holo holoʻokoʻa.
hopena XORBytes pono e uhi piha a ʻaʻole loa me ka hoʻokomo. Ma mua, ʻaʻole i wehewehe ʻia ka ʻano, akā i kēia manawa e hopohopo ʻo XORBytes.
crypto/tls
Kākoʻo ke kikowaena TLS i ka Encrypted Client Hello (ECH). Hiki ke hoʻohana ʻia kēia hiʻohiʻona ma ka hoʻopiha ʻana i ke kahua. Config.EncryptedClientHelloKeys.
He Mechanism Hoʻololi Kiʻi Post-Quantum Hou X25519MLKEM768 kākoʻo ʻia a hiki i kēia manawa ma ka paʻamau i ka wā Config.CurvePreferences ʻaʻole. Hoʻonohonoho i GODEBUG tlsmlkem=0 hoʻihoʻi paʻamau.
Ua wehe ʻia ke kākoʻo no ka hoʻokolohua hoʻololi kī X25519Kyber768Draft00.
Hoʻohana piha ʻia ke kauoha hoʻololi kī e ka pūʻolo crypto/tls. Kauoha Config.CurvePreferences ʻaʻole mālama ʻia i kēia manawa a hoʻohana wale ʻia nā mea i loko e hoʻoholo ai i nā hoʻololi kī e hoʻokomo ʻia ke hoʻopiha ʻia ke kahua.
kahua hou ClientHelloInfo.Extensions Hoʻopaʻa inoa i ka papa inoa o nā mea hōʻailona hoʻonui i loaʻa ma ka memo Hello Client. Hiki ke hoʻohana ʻia kēia no ka paʻi lima ʻana i nā mea kūʻai aku TLS.
crypto/x509
Hoʻonohonoho i GODEBUG Ua wehe ʻia ʻo x509sha1. Hōʻoia. Hōʻoia ʻaʻole kākoʻo hou i nā pūlima ma muli o SHA-1.
OID ke hoʻokō nei i nā interface encoding.binaryappender и hoʻopili.TextAppender.
Ua hoʻololi ʻia ke kahua kulekele palapala hōʻoia mai Palapala.PolicyIdentifiers maluna o Palapala. Ke hoʻopau i nā palapala hōʻoia, e hoʻopiha ʻia nā kahua ʻelua, akā i ka wā e hana ai i kahi kulekele palapala, e lawe ʻia mai ka palapala Certificate.Policies ma kahi o Certificate.PolicyIdentifiers. Hiki ke hoʻihoʻi ʻia kēia hoʻololi. Hoʻonohonoho GODEBUG x509usepolicies=0.
CreateCertificate e hoʻopuka i kēia manawa i kahi helu serial me ka hoʻohana ʻana i kahi ala hoʻokō RFC 5280 i ka wā e hele ai i kahi kahua hoʻohālike Palapala.SerialNumber nil, ma kahi o ka hina.
Palapala.E hōʻoia i kēia manawa ke kākoʻo nei i ka hōʻoia kulekele e like me ka wehewehe ʻana ma RFC 5280 a me RFC 9618. kahua hou VerifyOptions.CertificatePolicies hiki ke hoʻonohonoho i kahi hoʻonohonoho pono o nā kulekele OID. E hoʻihoʻi ʻia mai nā kaulahao palapala me nā kiʻi kulekele kūpono Palapala.E hōʻoia.
MarshalPKCS8PrivateKey i kēia manawa e hoʻihoʻi i kahi hewa ma mua o ka hoʻihoʻi ʻana i kahi kī RSA kūpono ʻole. (MarshalPKCS1PrivateKey ʻaʻohe hoʻihoʻi hewa a ʻaʻole i wehewehe ʻia kāna hana inā hāʻawi ʻia nā kī kīnā ʻole.)
ParsePKCS1PrivateKey и ParsePKCS8PrivateKey i kēia manawa e hoʻohana a hōʻoia i nā waiwai CRT i hoʻopili ʻia, no laila hiki ke hōʻole i nā kī RSA pono ʻole i ʻae ʻia ma mua. Hoʻohana Nā hoʻonohonoho GODEBUG x509rsacrt=0 e hoʻi i ka helu hou ʻana i nā waiwai CRT.
debug/elf
Hoʻolapala debug/elf Hoʻohui i ke kākoʻo no ka lawelawe ʻana i nā mana hōʻailona ma nā faila ELF (Executable and Linkable Format). ʻAno hou Kōnae.DynamicVersions Hoʻihoʻi i kahi papa inoa o nā mana hoʻoikaika i wehewehe ʻia ma kahi faila ELF. ʻAno hou Kōnae.DynamicVersionNeeds Hoʻihoʻi i ka papa inoa o nā mana ikaika i koi ʻia e kēia faila ELF i wehewehe ʻia ma nā mea ELF ʻē aʻe. ʻO ka hope, nā kahua hou Hōʻailona.HasVersion и Hōʻailona.VersionIndex hōʻike i ka mana o ka hōʻailona.
hoʻopā'ālua
ʻElua mau kikowaena hou TextAppender и BinaryAppender ua hoʻokomo ʻia e hoʻohui i kahi kikokikona a i ʻole ka hōʻike binary o kahi mea i kahi ʻāpana byte. Hāʻawi kēia mau kikowaena i ka hana like me TextMarshaler и BinaryMarshaler, akā ma kahi o ka hoʻokaʻawale ʻana i kahi ʻāpana hou i kēlā me kēia manawa, hoʻopili pololei lākou i ka ʻikepili i kahi ʻāpana i loaʻa. Hoʻokomo ʻia kēia mau loulou e nā ʻano waihona waihona maʻamau i hoʻokō mua i ka TextMarshaler a/a i ʻole BinaryMarshaler.
hoʻopāpā/json
I ke kūkulu ʻana, e kāpae ʻia kahi kahua kūkulu me ka koho omitzero hou i ka hōʻailona kahua kūkulu inā ʻaʻole kāna waiwai. Inā he IsZero() bool ka ʻano kahua, e hoʻohana ʻia ia e hoʻoholo inā he ʻole ka waiwai. Inā ʻaʻole, e lilo ka waiwai i ʻole inā waiwai null no kona ʻano. ʻOi aku ka maʻemaʻe o ka hōʻailona kahua omitzero a emi iki ka hewa ma mua o ka omitempty inā makemake ʻia e haʻalele i nā waiwai null. ʻO ka mea nui, ʻaʻole like me ka omitempty, omitzero e kāpae i nā zeros manawa. manawa nā waiwai, kahi kumu maʻamau o nā pilikia.
Inā hōʻike ʻia ka omitempty a me ka omitzero, e kāpae ʻia ke kahua inā nele ka waiwai a i ʻole ʻole (a i ʻole nā mea ʻelua).
UnmarshalTypeError.Field aia i kēia manawa nā hale i kūkulu ʻia e hāʻawi i nā memo hewa kikoʻī.
hele/ʻano
Loaʻa nā ʻano hana ʻikepili hele/types e hōʻike ana i nā kaʻina o nā ʻano pai like, e like me Len() int a me At(int) T, i kēia manawa ua loaʻa nā ala e hoʻihoʻi ai i nā iterators, e ʻae ana i nā code maʻalahi e like me kēia:
params := fn.Type.(*types.Signature).Params() for i := 0; i < params.Len(); i++ { hoʻohana(params.At(i)) }
Ma keia:
no ka param: = ka laulā fn.Signature().Params().Variables() { ho'ohana(param) }
Nā hana: Interface.EmbeddedTypes Interface.ExplicitMethods Interface.Methods MethodSet.Methods Kapa ʻia.Methods Kakau.Na keiki Kahua.Kihapai Tuple.Variables TypeList.Nano TypeParamList.TypeParams Hui
hash/*
- hash/adler32: hoʻihoʻi waiwai New, i kēia manawa hoʻokō i ka interface encoding.binaryappender
- hash/crc32: nā waiwai i hoʻihoʻi ʻia New и NewIEEE, i kēia manawa e hoʻokō i ka interface encoding.binaryappender
- hash/crc64: hoʻihoʻi waiwai New, i kēia manawa hoʻokō i ka interface encoding.binaryappender
- hash/fnv: nā waiwai i hoʻihoʻi ʻia New32 Hou32a New64 Hou64a New128 и Hou128a, i kēia manawa e hoʻokō i ka interface encoding.binaryappender
- hash/maphash: nā hiʻohiʻona hou Hoʻohālikelike и KākauHoʻohālikelike hiki ke helu i ka hash o kekahi waiwai i hiki ke hoohalikeia. Hāʻawi kēia iā ʻoe e hash i kekahi mea i hiki ke hoʻohana ʻia ma ke ʻano he kī puke wehewehe Go.
log/slog
Mea hou HoʻoleiHandler he mea hoʻohana ʻaʻole hiki ke hoʻohana ʻia a hoʻolei mau i kāna huahana.
Papa и LevelVar i kēia manawa e hoʻokō i ka interface hoʻopili.TextAppender.
makemakika/*
- makemakika/nui: Kele, Int и Pāpale i kēia manawa e hoʻokō i ka interface hoʻopili.TextAppender.
- makemakika/rand: hoʻopau ʻia nā kelepona hana kiʻekiʻe ʻO ka pua ʻaʻohe hopena hou. No ka hoʻihoʻi ʻana i ka hana kahiko, hiki iā ʻoe ke hoʻohana Hoʻonohonoho GODEBUG randseednop=0. ʻO ka pōʻaiapili hou aku ma hāʻawi 67273.
- makemakika/rand/v2: ChaCha8 и PCG i kēia manawa e hoʻokō i ka interface encoding.binaryappender.
upena
ListenCondig ke hoʻohana nei i ka MPTCP ma ka paʻamau ma nā ʻōnaehana kahi i kākoʻo ʻia (ʻo Linux wale nō i kēia manawa).
IP i kēia manawa hoʻokō i ka interface hoʻopili.TextAppender.
net/http
Ua loli ke kapu amo i nā pane ʻike 1xx i loaʻa i ka pane i ka noi. Ma mua e hoʻopau kēia i ka noi a hoʻihoʻi i kahi hewa ma hope o ka loaʻa ʻana o nā pane ʻoi aku ma mua o 5 1xx. Hoʻihoʻi wale kēia i kahi hewa inā ʻoi aku ka nui o nā pane 1xx āpau ma mua o ka hoʻonohonoho hoʻonohonoho Transport.MaxResponseHeaderBytes.
Eia kekahi, ke loaʻa i kahi noi kahi makau net/http/httptrace.ClientTrace.Got1xxResponse, ʻaʻohe palena o ka huina o nā pane 1xx. Hiki i ka makau Got1xxResponse ke hoʻihoʻi i kahi hewa e hoʻōki i ka noi.
amo и Kuʻia i kēia manawa he kahua HTTP2 e hiki ai ke hoʻonohonoho i nā hoʻonohonoho protocol HTTP/2.
Nā kahua hou Server.Protocols и Kaʻa hāʻawi i kahi ala maʻalahi e hoʻonohonoho i nā protocols HTTP e hoʻohana ai ke kikowaena a mea kūʻai paha.
Hiki ke hoʻonohonoho ʻia ke kikowaena a me ka mea kūʻai aku e kākoʻo i nā pilina HTTP/2 unencrypted.
Inā Server.Protocols loaʻa iā UnencrypterHTTP2, e ʻae ke kikowaena i nā pilina HTTP/2 ma nā awa i hoʻopili ʻole ʻia. Hiki i ke kikowaena ke ʻae i ka HTTP/1 a me ka HTTP/2 unencrypted ma ka awa like.
Inā Kaʻa Loaʻa iā UnencryptedHTTP2 a ʻaʻohe HTTP1, e hoʻohana ka halihali i ka HTTP/2 unencrypted no nā helu wahi http://. Inā hoʻonohonoho ʻia kahi kaʻa e hoʻohana i ka HTTP/1 a me ka HTTP/2 unencrypted, e hoʻohana ia i ka HTTP/1.
Kākoʻo no ka HTTP/2 i hoʻopili ʻole ʻia e hoʻohana i "HTTP/2 me ke aʻo mua" (RFC 9113, pauku 3.3). ʻAʻole kākoʻo ʻia ke poʻomanaʻo i hoʻopau ʻia "Hoʻonui: h2c".
ʻupena/netip
Addr, AddrPort и ʻO ke prefix i kēia manawa e hoʻokō i nā interface encoding.binaryappender и hoʻopili.TextAppender.
net/url
URL i kēia manawa hoʻokō i ka interface encoding.binaryappender.
os/mea hoʻohana
Ma Windows o kēia hiki ke hoʻohana ʻia i kēia manawa ma Windows Nano Server. Ua hoʻonui ʻia ka hoʻokō ʻana e pale aku i ka hoʻohana ʻana i nā hana mai ka waihona NetApi32, ka mea i nalowale mai Nano Server.
Ma Windows o kēia, E nānā и LookupId ke kākoʻo nei i kēia mau moʻokāki lawelawe mea hoʻohana i kūkulu ʻia:
- KOHO LANAINA
- NT AUTHORITY LOCAL SERVICE
- NV AUTHORITYNETWORK SERVICE
Ma Windows o kēia Ua holo wikiwiki ʻia ke hoʻohui ʻia ka mea hoʻohana i kēia manawa i kahi kikowaena lohi, kahi hihia maʻamau no nā mea hoʻohana hui. ʻO ka hana o ka hoʻokō hou i kēia manawa ma ke ʻano o nā milliseconds, i hoʻohālikelike ʻia me ka hoʻokō mua, hiki ke lawe i kekahi mau kekona, a me nā minuke, e hoʻopau.
Ma Windows o kēia i kēia manawa e hoʻihoʻi i ka mea hoʻohana kaʻina hana i ka wā e hoʻohālike ana ka pae o kēia manawa i kahi mea hoʻohana ʻē aʻe. Ma mua, ua hoʻihoʻi kēia i kahi hewa.
regexp
Regexp i kēia manawa hoʻokō i ka interface hoʻopili.TextAdapter.
Runtime
kuleana pili i GOROOT ua hoopauia. Ma nā kaiapuni hou, pono ʻoe e hoʻohana i ke ala ʻōnaehana e hoʻoholo ai i ka "go" binary, a hoʻohana i go env GOROOT e hoʻoholo ai iā GOROOT.
nā aho
Hoʻolapala nā aho hoʻohui i kekahi mau hana no ka hana ʻana me nā iterator:
- laina Hoʻihoʻi hou i kahi mea hoʻoponopono ma luna o nā laina i hoʻokaʻawale ʻia i ka laina hou ma kahi kaula.
- SplitSeq hoʻihoʻi i ka mea hoʻololi ma luna o nā substrings āpau o kahi kaula i hoʻokaʻawale ʻia e kahi mea hoʻokaʻawale.
- SplitAfterSeq e hoʻihoʻi i kahi mea hoʻololi ma luna o nā substrings o kahi kaula, e hoʻokaʻawale ma hope o kēlā me kēia hanana o ka mea hoʻokaʻawale.
- FieldsSeq hoʻihoʻi i ka mea hoʻololi ma luna o nā substrings o kahi kaula a puni nā kaʻina o nā huaʻōlelo keʻokeʻo, e like me ka wehewehe ʻanaunicode.IsSpace
- FieldsFuncSeq E hoʻihoʻi i kahi mea hoʻololi ma luna o nā substrings o ke kaula a puni nā kaʻina o nā helu Unicode code e hoʻokō i kahi predicate.
lōkahi
Ka hoʻokō sync.map ua hoʻololi ʻia e hoʻomaikaʻi i ka hana, ʻoi aku ka nui o nā hoʻololi puke wehewehe. No ka laʻana, ʻoi aku ka liʻiliʻi o ka hoʻopaʻapaʻa hoʻonohonoho hoʻokaʻawale ʻana ma nā puke wehewehe ʻōlelo nui, a ʻaʻole ia e koi hou i ka manawa kūkulu no ka loaʻa ʻana o ka haʻahaʻa puke wehewehe haʻahaʻa.
Inā pilikia ʻoe, e hoʻonoho iā GOEXPERIMENT=nosynchashtriemap i ka wā kūkulu e hoʻi hou i ka hoʻokō kahiko a ʻoluʻolu. hoʻopiha i ka palapala pilikia.
ikea ai
Nā ala hou T.Context и B.Context e hoʻihoʻi i kahi pōʻaiapili i hoʻolei ʻia ma hope o ka pau ʻana o ka hoʻāʻo a ma mua o ka hoʻokō ʻana i nā hana hoʻomaʻemaʻe hoʻāʻo.
Nā ala hou T.Chdir и ʻO B.Chdir hiki ke hoʻohana ʻia e hoʻololi i ka papa kuhikuhi hana no ka lōʻihi o kahi hoʻokolohua a i ʻole benchmark.
kikokikona/manaʻo
Kākoʻo nā templates i kēia manawa i ka range-over-func a me ka range-over-int.
manawa
manawa ke hoʻokō nei i nā interface encoding.binaryappender и hoʻopili.TextAppender.
Ports
Linux
E like me ia kūkala ʻia Wahi a ka Go 1.23 hoʻokuʻu memo, hele 1.24 koi Linux kernel version 3.2 a i ʻole.
Darwin
ʻO Go 1.24 ka hoʻokuʻu hope loa e holo ma macOS 11 Big Sur. E koi ʻo Go 1.25 i ka macOS 12 Monterey a i ʻole ma hope.
Pūnaewele
Ua hoʻohui ʻia ka go: wasmexport compiler directive i nā polokalamu Go e hoʻokuʻu aku i nā hana i ka host WebAssembly.
Ma ka WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm), kākoʻo ʻo Go 1.24 i ke kūkulu ʻana i kahi papahana Go e like me reactor/hale waihona puke ma ka wehewehe ʻana i ka hae kūkulu -buildmode=c-shared.
Ua ʻae ʻia nā ʻano ʻē aʻe ma ke ʻano he hoʻopaʻapaʻa a i ʻole nā ʻano hopena no nā hana go:wasmimport. ʻO ka mea kūikawā, ʻae ʻia ka bool, string, uintptr a me nā kuhikuhi i kekahi mau ʻano (e ʻike i nā kikoʻī ma palapala), me ka 32-bit a me ka 64-bit integer a me ka floating-point type, a safe.Pointer, i aeia. ʻAe ʻia kēia mau ʻano ma ke ʻano he hoʻopaʻapaʻa a i ʻole nā ʻano hopena no nā hana go:wasmexport.
Ua hoʻoneʻe ʻia nā faila kākoʻo no WebAssembly i lib/wasm mai misc/wasm.
Hoʻemi nui ʻia ka wāwae hoʻomanaʻo mua, ʻoi aku hoʻi no nā noi WebAssembly liʻiliʻi.
Windows
Ua hōʻailona ʻia ka 32-bit windows/arm port (GOOS=windows GOARCH=arm). Nā kikoʻī ma #70705
Source: linux.org.ru
