Lọ 1.24

Lọ 1.24

Itusilẹ tuntun ti ede Go, ẹya 1.24, wa lẹhin oṣu mẹfa Lọ 1.23. Pupọ julọ awọn ayipada wa ni imuse ti ohun elo irinṣẹ, akoko ṣiṣe ati awọn ile-ikawe. Bi nigbagbogbo, awọn Tu pese ileri ibamu Lọ 1. Awọn apẹẹrẹ ede n reti pe gbogbo awọn eto Go yoo tẹsiwaju lati ṣajọ ati ṣiṣe bi iṣaaju.

Ayipada ninu ede

Lọ 1.24 bayi ni atilẹyin ni kikun jeneriki iru inagijẹ: a iru inagijẹ le ti wa ni parameterized bi a so iru. Awọn alaye ni ede ni pato. Ni bayi, ẹya yii le jẹ alaabo nipa tito GOEXPERIMENT=noaliastypeparams; Sibẹsibẹ, aṣayan aliastypeparams yoo yọkuro ni Go 1.25.

Awọn irin-iṣẹ

Lọ pipaṣẹ

Awọn modulu Go le ṣe atẹle awọn igbẹkẹle ṣiṣe ṣiṣe ni lilo itọsọna irinṣẹ ni go.mod. Eyi yọ iwulo fun iṣẹ-ṣiṣe iṣaaju ti fifi awọn irinṣẹ kun bi awọn agbewọle ofo ni faili kan ti a pe ni “tools.go” ni igbagbogbo. Aṣẹ irinṣẹ go le bayi ṣiṣe awọn irinṣẹ wọnyi ni afikun si awọn irinṣẹ ti o wa pẹlu Go. Alaye siwaju sii le ri ni iwe.

Titun -tool flag for go get fa awọn itọsọna ọpa lati fi kun si module lọwọlọwọ fun awọn idii ti a ti sọ ni afikun si fifi awọn itọsọna nilo.

Titun meta-apẹẹrẹ ọpa ntokasi si gbogbo awọn irinṣẹ ninu awọn ti isiyi module. Eyi le ṣee lo lati ṣe imudojuiwọn gbogbo wọn nipasẹ ohun elo go gba, tabi lati fi wọn sii sinu itọsọna GOBIN rẹ nipasẹ ohun elo fi sori ẹrọ lọ.

Awọn iṣẹ ṣiṣe ti a ṣẹda nipasẹ ṣiṣe lọ ati ihuwasi irinṣẹ irinṣẹ tuntun ti wa ni cache ni Kaṣe Kọ Go. Eyi jẹ ki awọn ifilọlẹ leralera ṣee ṣe nitori kaṣe ti o pọ si. #69290.

Awọn go kọ ki o si fi awọn aṣẹ sori ẹrọ ni bayi gba asia -json, eyiti awọn ijabọ kọ iṣẹjade ati awọn aṣiṣe bi igbejade JSON ti iṣeto lori iṣelọpọ boṣewa. Awọn alaye kika ni a le rii ni go help buildjson.

Pẹlupẹlu, lọ test -json bayi ṣe ijabọ abajade ati kọ awọn aṣiṣe ni JSON, dapọ pẹlu abajade idanwo JSON. Wọn le ṣe iyatọ nipasẹ awọn oriṣi Iṣe tuntun, ṣugbọn ti wọn ba fa awọn iṣoro ninu eto isọdọkan idanwo, o le ṣubu pada si iṣelọpọ ọrọ ti kikọ nipasẹ GODEBUG iṣeto gotestjsonbuildtext=1.

Oniyipada ayika GOAUTH tuntun n pese ọna rọ lati fun laṣẹ awọn fa module aladani. O le wo awọn alaye ni go help goauth.

Aṣẹ Kọ Go ti fi sori ẹrọ bayi version of akọkọ module ninu alakomeji ti a ṣajọpọ, ti o da lori tag ati/tabi ṣiṣe iṣakoso ẹya kan. Suffix + idọti naa yoo ṣafikun ti awọn ayipada ti ko ni ifaramọ ba wa. Awọn -buildvcs=asia eke le ṣee lo lati yọkuro alaye iṣakoso ẹya lati alakomeji.

Tuntun GODEBUG iṣeto toolchaintrace=1 le ṣee lo ni bayi lati tọpa ilana yiyan ohun elo irinṣẹ ni aṣẹ go.

Cgo

Cgo ṣe atilẹyin awọn asọye tuntun fun awọn iṣẹ C lati mu ilọsiwaju iṣẹ ṣiṣe ṣiṣe. #cgo noescape cFunctionName sọ fun olupilẹṣẹ pe iranti ti o kọja si iṣẹ C cFunctionName ko salọ. #cgo nocallback cFunctionName sọ fun olupilẹṣẹ pe iṣẹ C cFunctionName ko pe awọn iṣẹ Go eyikeyi pada. Alaye siwaju sii le ri ni cgo iwe.

Cgo lọwọlọwọ kọ lati ṣajọ awọn ipe si iṣẹ C kan ti o ni awọn ikede aibaramu lọpọlọpọ. Fun apẹẹrẹ, ti a ba sọ f bi mejeeji ofo f(int) ati ofo f(ilọpo meji), cgo yoo jabo aṣiṣe dipo o ṣee ṣe ipilẹṣẹ ipe ti ko tọ f(0). Titun ninu itusilẹ yii jẹ wiwa ilọsiwaju ti ipo aṣiṣe nigbati awọn ikede aibaramu han ni oriṣiriṣi awọn faili. #67699.

Objdump

Ohun elo objdump n ṣe atilẹyin itusilẹ lori 64-bit LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64), ati S390X (GOARCH=s390x).

oniwosan

Oluyanju idanwo tuntun n ṣe ijabọ awọn aṣiṣe ti o wọpọ ni idanwo, fuzzer, ala, ati awọn ikede apẹẹrẹ ni awọn yara idanwo, gẹgẹbi awọn orukọ aiṣedeede, awọn ibuwọlu ti ko tọ, tabi awọn apẹẹrẹ ti o ṣakọsilẹ awọn idamọ ti ko si. Diẹ ninu awọn aṣiṣe wọnyi le fa ki awọn idanwo kuna.

Parser printf ti o wa tẹlẹ n ṣe ijabọ awọn iwadii aisan fun awọn ipe ti fọọmu fmt.Printf(s), nibiti s jẹ okun ọna kika ti kii ṣe igbagbogbo laisi awọn ariyanjiyan miiran. Iru awọn ipe jẹ fere nigbagbogbo aṣiṣe, niwon awọn iye ti s le ni awọn% ohun kikọ; lo fmt.Print dipo. 60529. Ayẹwo yii duro lati wa awọn nkan ni koodu ti o wa tẹlẹ, ati pe o jẹ lilo nikan nigbati ẹya ede (gẹgẹbi pato nipasẹ itọsọna go ti faili go.mod tabi awọn asọye `//go:build`) jẹ o kere ju Go 1.24, lati yago fun fa awọn fifọ isọdọkan gigun nigbati igbegasoke si Go 1.24 toolchain.

Oluyanju buildtag ti o wa tẹlẹ ni bayi ṣe ijabọ awọn iwadii aisan nigbati itumọ ti ko tọ wa agbalagba version Kọ aropin Lọ ninu //go: kọ itọsọna. Fun apẹẹrẹ, //go: kọ go1.23.1 tọka si itusilẹ ojuami; dipo lo //lọ: kọ go1.23. #64127.

Oluyanju idaako ti o wa ti o wa ni bayi ṣe ijabọ iwadii aisan nigbati a ti sọ oniyipada kan ni “fun” loop meteta, gẹgẹbi fun i: = iter(); ṣe (i); i = atẹle (i) {… }, ni imuṣiṣẹpọ ninu.Locker, gẹgẹbi sync.Mutex. Lọ 1.22 yipada ihuwasi ti iru awọn losiwajulosehin lati ṣẹda oniyipada tuntun fun aṣetunṣe kọọkan, didakọ awọn iye lati aṣetunṣe iṣaaju; Didaakọ yii ko ni aabo fun awọn titiipa. #66387.

GOCACHEPROG

Alakomeji cmd/go inu inu ati ẹrọ fifipamọ idanwo le ni imuse nipasẹ awọn ilana ọmọde ti n ṣe imuse ilana JSON laarin ohun elo cmd/go ati ilana ọmọ ti a darukọ nipasẹ oniyipada ayika GOCACHEPROG. Ni iṣaaju o jẹ fun GOEXPERIMENT. Awọn alaye ti ilana ni a le rii ninu iwe.

Akoko ti Ipari

Pupọ awọn ilọsiwaju iṣẹ ṣiṣe akoko ṣiṣe dinku lori Sipiyu nipasẹ 2-3% ni apapọ ni gbogbo awọn ipilẹ awọn ipilẹ asoju. Awọn abajade le yatọ si da lori ohun elo naa. Awọn ilọsiwaju wọnyi pẹlu imuse maapu tuntun ti a ṣe sinu ti o da lori Swedish Tabili, siwaju sii daradara ipin ti kekere ohun iranti, ati ki o kan titun ti abẹnu asiko isise imuse ti mutex.

Iṣaṣe maapu tuntun ti a ṣe sinu ati mutex asiko asiko inu inu tuntun le jẹ alaabo nipa tito GOEXPERIMENT=noswissmap ati GOEXPERIMENT=nospinbitmutex ni akoko kikọ, lẹsẹsẹ.

Akojopo

Olupilẹṣẹ tẹlẹ ti ni idinamọ asọye awọn ọna tuntun pẹlu awọn iru olugba ti ipilẹṣẹ nipasẹ cgo, ṣugbọn o ṣee ṣe lati ṣiṣẹ ni ayika ihamọ yii nipasẹ inagijẹ iru kan. Lọ 1.24 ni bayi ṣe ijabọ aṣiṣe nigbagbogbo ti olugba ba tọka si iru ti ipilẹṣẹ cgo, boya taara tabi ni aiṣe-taara (nipasẹ inagijẹ iru).

Asopọmọra

Asopọmọra bayi n ṣe idamọ idanimọ GNU kan (Iwọle ELF NT_GNU_BUILD_ID) lori awọn iru ẹrọ ELF ati UUID kan (aṣẹ fifuye Mach-O LC_UUID) lori macOS nipasẹ aiyipada. ID Kọ tabi UUID jẹ yo lati Go kọ ID. Eyi le wa ni pipa pẹlu asia -B none linker, tabi danu pẹlu asia linker -B 0xNNNN pẹlu iye hexadecimal kan pato olumulo.

Igbega

Gẹgẹbi a ti sọ ninu Lọ 1.22 awọn akọsilẹ itusilẹ, Go 1.24 bayi nilo Go 1.22.6 tabi nigbamii lati fi sori ẹrọ. Awọn olupilẹṣẹ n reti pe Go 1.26 yoo nilo itusilẹ aaye kan ti Go 1.24 tabi nigbamii lati yiyi jade.

Standard Library

Wiwọle eto faili ti o ni ihamọ liana

Iru tuntun os.gbongbo Pese agbara lati ṣe awọn iṣẹ eto faili laarin itọsọna kan pato.

Išẹ OS.OpenRoot ṣi awọn liana ati ki o pada os.gbongbo. Awọn ọna lori os.gbongbo ṣiṣẹ ninu itọsọna yẹn ati pe ko gba awọn ọna laaye lati tọka si awọn ipo ni ita itọsọna naa, pẹlu awọn ti o tẹle awọn ọna asopọ aami ni ita itọsọna naa. Awọn ọna lori os.Root ṣe afihan pupọ julọ awọn iṣẹ ṣiṣe eto faili ti o wa ninu package OS, pẹlu, fun apẹẹrẹ, os.Root.Open, os.Root.Ṣẹda, os.Gbongbo.Mkdir и os.Root.Stat.

Ẹya ala tuntun

Awọn aṣepari le ni bayi lo ọna iyara, ti o kere si aṣiṣe idanwo.B.Loop lati ṣe atunṣe lori ala-ilẹ bi fun b.Loop() { … } dipo awọn ẹya aṣaajuupu ti o nii ṣe pẹlu bN bii fun ibiti bN Eyi nfunni awọn anfani pataki meji:

  • Iṣẹ ala-ilẹ naa jẹ ṣiṣe ni deede ni ẹẹkan fun kika, nitorinaa iṣeto gbowolori ati awọn igbesẹ afọmọ jẹ ṣiṣe ni ẹẹkan.
  • Awọn paramita ipe iṣẹ ati awọn abajade wa laaye, idilọwọ awọn alakojo lati mu ara lupu patapata.

Ilọsiwaju finalizers

Ẹya tuntun asiko isise.AddCleanup jẹ ọna ṣiṣe ipari ti o ni irọrun diẹ sii, daradara diẹ sii, ati aṣiṣe-aṣiṣe ti o kere ju asiko isise.SetFinalizer. AddCleanup so iṣẹ afọmọ mọ ohun kan ti yoo ṣiṣẹ ni kete ti nkan naa ko ba si. Bibẹẹkọ, ko dabi SetFinalizer, awọn afọmọ pupọ le ni asopọ si ohun kan, awọn afọmọ le ni asopọ si awọn itọka inu, awọn afọmọ kii ṣe deede fa awọn n jo nigbati awọn nkan ba ṣe iyipo kan, ati awọn afọmọ ko ṣe idaduro isọsọ ohun naa tabi awọn nkan ti o tọka si. Koodu titun yẹ ki o fẹ AddCleanup ju SetFinalizer lọ.

Apo alailagbara tuntun

Apo tuntun alagbara pese alailagbara ijuboluwole.

Awọn itọka alailagbara jẹ ipilẹṣẹ ipilẹ-kekere ti a pese fun ṣiṣẹda awọn ẹya daradara-iranti gẹgẹbi awọn iwe-itumọ alailagbara fun awọn iye iyaworan, awọn iwe-itumọ iwe-itumọ fun ohunkohun ti a ko bo nipasẹ package kan. oto, ati awọn oriṣiriṣi awọn kaṣe. Lati ṣe atilẹyin awọn ọran lilo wọnyi, itusilẹ yii tun pese asiko isise.AddCleanup и maphash.Comparable.

New crypto/mlkem package

Apo tuntun crypto/mlkem Awọn imuse ML-KEM-768 ati ML-KEM-1024.

ML-KEM jẹ ilana paṣipaarọ bọtini ifiweranṣẹ-kuatomu, ti a mọ tẹlẹ bi Kyber ati pato ninu Awọn ifura 203.

Awọn akojọpọ tuntun crypto/hkdf, crypto/pbkdf2 ati crypto/sha3

Apo tuntun crypto/hkdf n ṣe imuse HMAC ti o da lori “Jade-ati-Fagun” iṣẹ itọsẹ bọtini HKDF gẹgẹbi asọye ninu RFC 5869.

Apo tuntun crypto/pbkdf2 n ṣe iṣẹ itọsẹ bọtini orisun ọrọ igbaniwọle PBKDF2 gẹgẹbi asọye ninu RFC 8018.

Apo tuntun crypto/sha3 n ṣe iṣẹ hash SHA-3 ati SHAKE ati cSHAKE awọn iṣẹ iṣelọpọ extensible bi a ti ṣalaye ninu Awọn ifura 202.

Gbogbo awọn idii mẹta da lori awọn idii golang.org/x/crypto/… ti o wa tẹlẹ.

FIPS 140-3 ibamu

Itusilẹ yii pẹlu eto tuntun ti awọn ilana lati rii daju ibamu FIPS 140-3.

Module crypto Go jẹ ṣeto ti awọn idii ile-ikawe boṣewa inu ti a lo ni gbangba lati ṣe imuse awọn algoridimu FIPS 140-3 ti a fọwọsi. Awọn ohun elo ko nilo awọn ayipada lati lo module Go crypto fun awọn algoridimu ti a fọwọsi.

Oniyipada ayika tuntun GOFIPS140 le ṣee lo lati yan ẹya ti module Go crypto lati lo ninu kikọ kan. Tuntun GODEBUG iṣeto fips140 le ṣee lo lati mu ipo FIPS 140-3 ṣiṣẹ ni akoko asiko.

Go 1.24 pẹlu module Go crypto v1.0.0, eyiti o ni idanwo lọwọlọwọ pẹlu laabu ti o ni ifọwọsi CMVP.

Tuntun esiperimenta package igbeyewo/synctest

New esiperimenta package igbeyewo / syntest Pese atilẹyin fun idanwo koodu igbakanna.

  • Išẹ synctest.run nṣiṣẹ ẹgbẹ kan ti gorutines ni ohun ti ya sọtọ "nkuta". Ni awọn nkuta ti awọn package iṣẹ akoko ṣiṣẹ lori awọn aago eke.
  • Awọn iṣẹ synctest.duro duro titi gbogbo awọn goroutines yoo dina ni o ti nkuta lọwọlọwọ.

Awọn alaye le ṣee ri ninu awọn iwe package.

Apo syncestest jẹ adanwo ati pe o gbọdọ muu ṣiṣẹ nipa tito GOEXPERIMENT=synctest. API package le yipada ni awọn idasilẹ ọjọ iwaju. IN #67434 O le wo awọn alaye diẹ sii ki o pese esi.

Kekere ayipada ninu awọn ìkàwé

pamosi

Awọn imuse (* Writer.AddFS) ni ibi ipamọ / zip ati pamosi/tar bayi kọ akọsori liana fun itọsọna ofo.

awọn baagi

Apoti awọn baagi ṣe afikun awọn iṣẹ pupọ ti o ṣiṣẹ pẹlu awọn atunbere:

  • ila Da aṣetunṣe pada lori awọn okun ti o ya sọtọ laini tuntun ni bibẹ baiti kan.
  • SplitSeq da ohun iterator pada lori gbogbo subslices ti a baiti bibẹ niya nipa a separator.
  • SplitAfterSeq pada ohun iterator lori awọn subslices ti a baiti bibẹ, pin lẹhin kọọkan iṣẹlẹ ti awọn separator.
  • Awọn aayeSeq dapada aṣetunṣe lori awọn ipin ti bibẹ baiti kan ni ayika awọn ilana ti awọn ohun kikọ aaye, gẹgẹbi asọye unicode.IsSpace
  • Awọn aayeFuncSeq da ohun aṣetunṣe pada lori awọn ipin ti bibẹ baiti ni ayika awọn ilana ti awọn koodu Unicode ti o ni itẹlọrun asọtẹlẹ naa.

crypto/aes

Pada iye Chipher Tuntun ko tun ṣe imuse NewCTR, NewGCM, NewCBCEncrypter, ati awọn ọna NewCBCDecrypter. Awọn ọna wọnyi ko ni iwe-aṣẹ ati pe ko wa lori gbogbo awọn faaji. Bayi itumo Àkọsílẹ gbọdọ kọja taara si awọn iṣẹ ti o yẹ crypto/kipher. Lọwọlọwọ, crypto/cipher ṣi ṣayẹwo awọn ọna wọnyi lori awọn iye Block, botilẹjẹpe wọn ko ṣe atilẹyin nipasẹ ile-ikawe boṣewa mọ.

crypto/kipher

Ẹya tuntun NewGCMWithRandomNonce pada AEAD, eyiti o ṣe imuse AES-GCM nipa ṣiṣe ipilẹṣẹ nonce laileto lakoko Igbẹhin ati tito tẹlẹ si ọrọ-ọrọ.

Imuse san, pada NewCTR nigba ti lo pẹlu crypto/aes bayi ni igba pupọ yiyara lori amd64 ati arm64.

NewOFB, NewCFBEncrypter и NewCFBDecrypter ti wa ni bayi so ti atijo. Awọn ipo OFB ati CFB jẹ aijẹri, eyiti gbogbo ngbanilaaye awọn ikọlu ti nṣiṣe lọwọ lati ṣe afọwọyi ati gba ọrọ mimọ pada. Awọn ohun elo ni a ṣe iṣeduro lati lo AEAD ni ipadabọ. Ti o ba jẹ ailoju mode san pataki, le ṣee lo NewCTR ni ipadabọ.

crypto/ecdsa

Ikọkọ Ikọkọ. Wọlé bayi ṣẹda a deterministic Ibuwọlu gẹgẹ bi RFC 6979, ti o ba ti randomness orisun nil.

crypto/md5

Pada iye md5.tuntun, bayi tun imuse ni wiwo encoding.binaryappender.

crypto/Rand

Išẹ ka bayi onigbọwọ ko si ikuna. Ti Ka ba pade aṣiṣe lakoko kika Reader, eto naa yoo fopin si patapata. Ṣe akiyesi pe oluka aiyipada jẹ akọsilẹ lati ṣiṣẹ ni aṣeyọri nigbagbogbo, nitorinaa iyipada yii yẹ ki o kan awọn eto nikan ti o bori oniyipada Oluka naa. Iyatọ kan jẹ awọn ekuro Linux ṣaaju 3.17, nibiti oluka aiyipada ṣi ṣi / dev/urandom ati pe o le kuna.

Lori Lainos 6.11 ati nigbamii, Oluka ni bayi nlo ipe eto getrandom nipasẹ vDSO. Eyi ni igba pupọ yiyara, nigbagbogbo fun awọn kika kekere.

Lori OpenBSD Reader bayi nlo arc4random_buf(3).

Ẹya tuntun Text le bayi se ina cryptographically ni aabo ID ọrọ awọn gbolohun ọrọ.

crypto/rsa

GenerateKey bayi pada aṣiṣe ti o ba beere ipari bọtini ti o kere ju 1024 bit. Gbogbo Wọlé, Jẹrisi, Encrypt, ati awọn ọna Decrypt ni bayi da aṣiṣe pada ti o ba lo pẹlu iwọn bọtini ti o kere ju awọn bit 1024. Iru awọn bọtini bẹ ko lewu ati pe ko yẹ ki o lo. Ṣiṣeto GODEBUG rsa1024min = 0 ṣe atunṣe ihuwasi atijọ, ṣugbọn awọn Difelopa Go ṣeduro ṣiṣe eyi nikan nigbati o jẹ dandan ati nikan ni awọn idanwo, fun apẹẹrẹ nipa fifi laini //go: debug rsa1024min=0 kun si faili idanwo naa. Tuntun apẹẹrẹ GenerateKey pese irọrun lati lo bọtini idanwo 2024-bit boṣewa.

O ti wa ni ailewu bayi ati daradara siwaju sii lati pe PrivateKey.Precompute si Ikọkọ ikọkọ.Ṣiṣe. Precompute ti wa ni iyara ni bayi niwaju ti o kun ni apakan PrecomputedValue, fun apẹẹrẹ nigba yiyo bọtini kan lati JSON.

Apapọ bayi kọ awọn bọtini invalid diẹ sii paapaa nigbati a ko pe Validate, ati GenerateKey le bayi pada titun aṣiṣe fun baje ID orisun. Awọn aaye Awọn igba iṣaaju и Ti ṣe iṣiro tẹlẹ awọn ẹya Ikọkọ Ikọkọ ti wa ni lilo ati ifọwọsi paapaa nigbati diẹ ninu awọn iye ti nsọnu. Awọn iyipada tun wa si crypto/x509 fun sisọ ati yiyo awọn bọtini RSA, ti a ṣalaye ni isalẹ.

AmiPKCS1v15 и JẹrisiPKCS1v15 bayi ṣe atilẹyin SHA-512/224, SHA-512/256 ati SHA-3.

GenerateKey bayi nlo ọna ti o yatọ die-die lati ṣe ipilẹṣẹ olupilẹṣẹ ikọkọ (iṣẹ Carmichael dipo iṣẹ Euler). Awọn ohun elo toje ti o tun ṣe awọn bọtini ita lati awọn nọmba akọkọ nikan le ṣe awọn abajade oriṣiriṣi ṣugbọn ibaramu.

Awọn iṣẹ ṣiṣe lori awọn bọtini ita gbangba ati ikọkọ ti wa ni bayi to awọn akoko meji yiyara lori wasm.

crypto/sha*

crypto / arekereke

Ẹya tuntun PẹluDataIndependentTiming ngbanilaaye olumulo lati ṣiṣẹ iṣẹ kan pẹlu awọn ẹya ara ẹrọ faaji ti o ṣiṣẹ ti o rii daju pe awọn ilana kan ko yipada ni ibatan si akoko iye data naa. Eyi le ṣee lo lati rii daju pe koodu ti a kọ lati ṣiṣẹ ni akoko igbagbogbo ko ti ni iṣapeye nipasẹ awọn iṣẹ ipele-ipele ki o le ṣiṣẹ ni akoko oniyipada. Lọwọlọwọ WithDataIndependentTiming nlo PSTATE.DIT bit lori arm64 ati pe ko ṣe nkankan lori gbogbo awọn faaji miiran. Ṣiṣeto GODEBUG dataindependenttiming=1 ngbanilaaye ipo DIT fun gbogbo eto Go.

ipari XORBytes gbọdọ ni lqkan patapata tabi ko ni gbogbo pẹlu awọn input. Ni iṣaaju ihuwasi naa ko ṣe alaye bibẹẹkọ, lakoko ti o wa ni bayi XORBytes yoo bẹru.

crypto/tls

Olupin TLS ni bayi ṣe atilẹyin Olubara Ti paroko Hello (ECH). Ẹya yii le ṣiṣẹ nipasẹ kikun aaye. Config.EncryptedClientHelloKeys.

A New Post-kuatomu Key Exchange Mechanism X25519MLKEM768 bayi ni atilẹyin ati sise nipasẹ aiyipada nigbati Config.CurvePreferences nil. Ṣiṣeto GODEBUG tlsmlkem=0 dapada aiyipada.

Atilẹyin fun esiperimenta X25519Kyber768Draft00 bọtini paṣipaarọ ti yọkuro.

Ilana paṣipaarọ bọtini ni bayi ni itọju patapata nipasẹ package crypto/tls. Bere fun Config.CurvePreferences ni bayi bikita ati pe awọn akoonu nikan ni a lo lati pinnu iru awọn paṣipaarọ bọtini lati pẹlu nigbati aaye naa ba kun.

New aaye ClientHelloInfo.Extensions Ṣe atokọ atokọ ti awọn idamọ itẹsiwaju ti o gba ninu ifiranṣẹ Hello Client. Eyi le wulo fun titẹ ika ọwọ awọn alabara TLS.

crypto/x509

Ṣiṣeto GODEBUG x509sha1 ti yọkuro. Ijẹrisi.Ṣiṣe daju ko ṣe atilẹyin awọn ibuwọlu orisun SHA-1 mọ.

OID. bayi muse awọn atọkun encoding.binaryappender и fifi koodu.TextAppender.

Aaye eto imulo ijẹrisi aiyipada ti yipada lati Certificate.PolicyIdentifiers on Iwe-ẹri.Awọn imulo. Nigbati awọn iwe-ẹri ti n ṣalaye, awọn aaye mejeeji yoo jẹ olugbe, ṣugbọn nigbati o ba ṣẹda eto imulo ijẹrisi, wọn yoo gba lati Ijẹrisi.Aaye imulo dipo ijẹrisi.PolicyIdentifiers. Yi ayipada le ti wa ni pada. GODEBUG iṣeto x509awọn ilana lilo = 0.

Ṣẹda Iwe-ẹri yoo ṣe ina nọmba ni tẹlentẹle ni lilo ọna ifaramọ RFC 5280 nigbati o ba kọja aaye awoṣe kan Certificate.SerialNumber nil, dipo ti kọlu.

Ijẹrisi.Ṣiṣe daju bayi ṣe atilẹyin afọwọsi eto imulo bi asọye ni RFC 5280 ati RFC 9618. Aaye tuntun VerifyOptions.CertificatePolicies le ti wa ni ṣeto si itewogba ṣeto ti imulo Awọn OIDs. Awọn ẹwọn ijẹrisi nikan pẹlu awọn aworan eto imulo to wulo yoo pada lati Ijẹrisi.Ṣiṣe daju.

MarshalPKCS8PrivateKey bayi da ohun ašiše dipo ti a gba ohun invalid bọtini RSA. (MarshalPKCS1PrivateKey ko ni ipadabọ aṣiṣe ati ihuwasi rẹ nigbati awọn bọtini invalid ti pese wa ni aisọye.)

ParsePKCS1PrivateKey и ParsePKCS8PrivateKey ni bayi lo ati fọwọsi awọn iye CRT koodu, nitorinaa le kọ awọn bọtini RSA ti ko tọ ti o ti gba tẹlẹ. Lilo Awọn eto GODEBUG x509rsacrt=0 pada si atunṣiro awọn iye CRT.

yokokoro/elf

Apoti yokokoro/elf Ṣe afikun atilẹyin fun mimu awọn ẹya aami mu ni awọn faili ELF ti o ni agbara (Ṣiṣe ati Ọna asopọ Ọna asopọ). Ọna tuntun File.DynamicVersions Pada atokọ ti awọn ẹya ti o ni agbara ti asọye ninu faili ELF kan. Ọna tuntun File.DynamicVersionNeeds Pada atokọ ti awọn ẹya ti o ni agbara ti o nilo nipasẹ faili ELF yii ti o jẹ asọye ninu awọn nkan ELF miiran. Ni ipari, awọn aaye tuntun Aami.HasVersion и Symbol.VersionIndex tọkasi awọn ti ikede ti aami.

fifi koodu si

Meji titun atọkun TextAppender и BinaryAppender ni a ṣe afihan lati ṣafikun ọrọ kan tabi aṣoju alakomeji ti ohun kan si bibẹ baiti kan. Awọn wọnyi ni atọkun pese kanna iṣẹ-bi TextMarshaler и BinaryMarshaler, ṣugbọn dipo ipinpin bibẹ pẹlẹbẹ tuntun ni igba kọọkan, wọn fi data taara si ege ti o wa tẹlẹ. Awọn atọkun wọnyi ti wa ni imuse lọwọlọwọ nipasẹ awọn iru ikawe boṣewa ti o ti ṣe imuse TextMarshaler ati/tabi BinaryMarshaler tẹlẹ.

fifi koodu / json

Nigbati o ba n kọ, aaye igbekalẹ kan pẹlu aṣayan omitzero tuntun ninu aami aaye igbekalẹ yoo jẹ yiyọkuro ti iye rẹ ba jẹ odo. Ti iru aaye ba ni ọna IsZero () bool, yoo ṣee lo lati pinnu boya iye naa jẹ odo. Bibẹẹkọ iye yoo jẹ odo ti o ba jẹ asan iye fun awọn oniwe-iru. Aami aaye omitzero jẹ mimọ ati pe o kere si aṣiṣe ju omitempty lọ nigbati ipinnu ni lati fi awọn iye asan silẹ. Ni pataki, ko dabi omitempty, omitzero yọ awọn odo kuro akoko.akoko awọn iye, eyiti o jẹ orisun ti o wọpọ ti awọn iṣoro.

Ti awọn mejeeji omitempty ati omitzero jẹ pato, aaye naa yoo yọkuro ti iye naa ba ṣofo tabi odo (tabi mejeeji).

UnmarshalTypeError.Field ni bayi pẹlu awọn ẹya ti a ṣe sinu lati pese awọn ifiranṣẹ aṣiṣe alaye diẹ sii.

lọ / orisi

Gbogbo go/oriṣi awọn ẹya data ti o ṣafihan awọn ilana ti awọn ọna meji, bii Len () int ati At (int) T, ni bayi tun ni awọn ọna ti o da awọn atunbere pada, gbigba koodu rọrun bi eleyi:

params: = fn.Iru.(*types.Ibuwọlu).Params () fun i:= 0; i <params.Len (); i++ {lo(params.At(i)))}

Lori eyi:

fun param := ibiti o fn. Ibuwọlu () .Params () .Variables () {lilo (param) }

Awọn ọna: Interface.EmbeddedTypes Ni wiwo.Explicit Awọn ọna Ni wiwo.Awọn ọna ỌnaSet.Awọn ọna Oruko.Awọn ọna Dopin.Awọn ọmọde Igbekale.Fields Tuple.Variables TypeList.Orisi TypeParamList.TypeParams Union.Awọn ofin

hash/*

log/slog

Titun DiscardHandler jẹ olutọju ti a ko ṣiṣẹ ati nigbagbogbo asonu abajade rẹ.

ipele и IpeleVar bayi se ni wiwo fifi koodu.TextAppender.

isiro/*

net

GbọCondig bayi nlo MPTCP nipasẹ aiyipada lori awọn ọna ṣiṣe nibiti o ti ni atilẹyin (Lọwọlọwọ Lainos nikan).

IP bayi imuse ni wiwo fifi koodu.TextAppender.

net/http

Ihamọ ti yi pada Transport si awọn idahun alaye 1xx ti o gba ni idahun si ibeere naa. Ni iṣaaju eyi yoo da ibeere naa duro ati da aṣiṣe pada lẹhin gbigba diẹ sii ju awọn idahun 5 1xx. Eyi yoo da aṣiṣe pada nikan ti iwọn lapapọ ti gbogbo awọn idahun 1xx kọja eto atunto naa Transport.MaxResponseHeaderBytes.

Paapaa, nigbati ibeere kan ba ni kio ipasẹ kan net/http/httptrace.ClientTrace.Got1xxResponse, bayi ko si iye to lori lapapọ nọmba ti idahun 1xx. Ìkọ Got1xxResponse le da aṣiṣe pada lati da ibeere naa duro.

Transport и Server bayi ni aaye HTTP2 ti o fun laaye iṣeto ni awọn eto ilana HTTP/2.

Awọn aaye tuntun Server.Protocols и Transport.Protocols pese ọna ti o rọrun lati tunto iru awọn ilana HTTP ti olupin tabi alabara nlo.

Olupin ati alabara le tunto lati ṣe atilẹyin awọn asopọ HTTP/2 ti ko paro.

Nigbawo Server.Protocols ni UnencrypterHTTP2 ninu, olupin naa yoo gba awọn asopọ HTTP/2 lori awọn ebute oko oju omi ti a ko pa akoonu. Olupin naa le gba HTTP/1 mejeeji ati HTTP/2 ti ko pa akoonu lori ibudo kanna.

Nigbawo Transport.Protocols UnencryptedHTTP2 ni ati pe ko ni HTTP1 ninu, irinna naa yoo lo HTTP/2 ti ko pa akoonu fun awọn adirẹsi http://. Ti a ba tunto irinna lati lo HTTP/1 mejeeji ati HTTP/2 ti ko paro, yoo lo HTTP/1.

Atilẹyin fun HTTP/2 ti ko paro ni lilo “HTTP/2 pẹlu Ẹkọ-Siwaju” (RFC 9113, apakan 3.3). Akọsori ti a ti parẹ “Igbesoke: h2c” ko ṣe atilẹyin.

net/netip

Addr, AddrPort и ìpele bayi se awọn atọkun encoding.binaryappender и fifi koodu.TextAppender.

net/url

URL bayi tun nse ni wiwo encoding.binaryappender.

os/olumulo

Lori Windows lọwọlọwọ le ṣee lo ni Windows Nano Server. A ti ni imudojuiwọn imuse lati yago fun lilo awọn iṣẹ lati ibi ikawe NetApi32, eyiti o nsọnu lati olupin Nano.

Lori Windows lọwọlọwọ, Wa и LookupId bayi ṣe atilẹyin awọn akọọlẹ iṣẹ olumulo ti a ṣe sinu atẹle yii:

  • NT Aṣẹ-aṣẹ
  • NT AUTHORITYLOCAL IṣẸ
  • NT IWỌ NIPA NTTHORITYNETWORK

Lori Windows lọwọlọwọ ti nyara ni pataki nigbati olumulo lọwọlọwọ ba darapọ mọ agbegbe ti o lọra, eyiti o jẹ ọran ti o wọpọ fun ọpọlọpọ awọn olumulo ile-iṣẹ. Iṣe imuse tuntun ti wa ni aṣẹ ti milliseconds, ni akawe si imuse iṣaaju, eyiti o le gba awọn aaya pupọ, paapaa awọn iṣẹju, lati pari.

Lori Windows lọwọlọwọ ni bayi da oluṣe oniwun ilana pada nigba ti okun lọwọlọwọ n ṣe afarawe olumulo miiran. Ni iṣaaju eyi da aṣiṣe pada.

regexp

Regexp bayi imuse ni wiwo fifi koodu.TextAdapter.

akoko asiko

Išẹ GOROOT ti wa ni bayi deprecated. Ni awọn agbegbe titun, o yẹ ki o fẹ lati lo ọna eto lati pinnu alakomeji "go", ati lo go env GOROOT lati pinnu GOROOT.

okun

Apoti okun ṣe afikun awọn iṣẹ pupọ fun ṣiṣẹ pẹlu awọn atunbere:

  • ila Pada ohun iterator lori newline-ya awọn ila ni a okun.
  • SplitSeq da ohun iterator pada lori gbogbo awọn substrings ti a okun niya nipa a separator.
  • SplitAfterSeq da ohun iterator lori awọn substrings ti a okun, pin lẹhin kọọkan iṣẹlẹ ti awọn separator.
  • Awọn aayeSeq da ohun iterator pada lori awọn substrings ti a okun ni ayika awọn ọkọọkan ti whitespace ohun kikọ, bi telẹunicode.IsSpace
  • Awọn aayeFuncSeq Pada ohun aṣetunṣe pada lori awọn gbolohun ọrọ ti okun ni ayika awọn ilana ti awọn aaye koodu Unicode ti o ni itẹlọrun asọtẹlẹ kan.

mu

Imuse sync.map ti yipada lati mu iṣẹ ṣiṣe dara si, pataki fun awọn iyipada iwe-itumọ. Fún àpẹrẹ, àríyànjiyàn ìyípadà àtòpọ̀ ìsokọ́ra kò ṣeéṣe lórí àwọn ìwé ìtumọ̀ ńlá, kò sì nílò àkókò ìkọ́lé mọ́ láti ṣàṣeyọrí ẹrù ìtumọ̀ àríyànjiyàn kekere.

Ti o ba pade awọn iṣoro eyikeyi, ṣeto GOEXPERIMENT=nosynchashtriemap lakoko kikọ lati yi pada si imuse atijọ ati jọwọ jọwọ. fọwọsi fọọmu iṣoro naa.

HIV

Awọn ọna tuntun T.Atokun и B.Context da pada ọrọ-ọrọ kan ti o sọnu lẹhin idanwo naa ti pari ati ṣaaju ṣiṣe awọn iṣẹ afọmọ idanwo naa.

Awọn ọna tuntun T.Chdir и B.Chdir le ṣee lo lati yi itọsọna iṣẹ pada fun iye akoko idanwo tabi ala.

ọrọ / awoṣe

Awọn awoṣe ṣe atilẹyin sakani-lori-func ati ibiti-over-int.

akoko

Time bayi muse awọn atọkun encoding.binaryappender и fifi koodu.TextAppender.

ebute

Linux

Bi o ti ri kede Gẹgẹbi awọn akọsilẹ itusilẹ Go 1.23, Go 1.24 nilo ẹya ekuro Linux 3.2 tabi nigbamii.

Darwin

Go 1.24 jẹ idasilẹ kẹhin ti yoo ṣiṣẹ lori macOS 11 Big Sur. Lọ 1.25 yoo nilo macOS 12 Monterey tabi nigbamii.

Apejọ Ayelujara

Go:wasmexport itọsọna alakojo ti ni afikun si awọn eto Go lati gbe awọn iṣẹ okeere si agbalejo WebAssembly.

Ninu Awotẹlẹ Interface System WebAssembly System 1 (GOOS=wasip1 GOARCH=wasm), Go 1.24 ṣe atilẹyin kikọ eto Go kan gẹgẹbi riakito / ìkàwé nipa sisọ asia kọ -buildmode=c-pin.

Awọn oriṣi diẹ sii ni a gba laaye ni bayi bi ariyanjiyan tabi awọn iru abajade fun go: awọn iṣẹ ṣiṣemport. Ni pataki, bool, okun, uintptr ati awọn itọka si awọn oriṣi kan ni a gba laaye (wo awọn alaye ni iwe), pẹlu awọn odidi 32-bit ati 64-bit ati awọn iru oju omi lilefoofo, ati ailewu.Pointer, eyiti o ti gba laaye tẹlẹ. Awọn iru wọnyi tun gba laaye bi ariyanjiyan tabi awọn iru abajade fun go: awọn iṣẹ wasmexport.

Awọn faili atilẹyin fun WebAssembly ti gbe lọ si lib/wasm lati misc/wasm.

Ifẹsẹtẹ iranti akọkọ ti dinku ni pataki, pataki fun awọn ohun elo WebAssembly kekere.

Windows

Ibudo 32-bit windows/apa (GOOS=windows GOARCH=apa) ti samisi bi fifọ. Awọn alaye ni #70705

orisun: linux.org.ru

Fi ọrọìwòye kun