Joan 1.24

Joan 1.24

Go hizkuntzaren bertsio berria, 1.24 bertsioa, sei hilabete geroago dator Joan 1.23. Aldaketa gehienak tresna-katearen, exekuzio-denboraren eta liburutegien inplementazioan daude. Beti bezala, oharra eskaintzen du bateragarritasunaren promesa Go 1. Hizkuntza-diseinatzaileek ia Go programa guztiek lehen bezala konpilatzen eta exekutatzen jarraituko dutela espero dute.

Hizkuntza aldaketak

Go 1.24 orain guztiz onartzen du mota generikoko aliasak: motako alias bat deklaratutako mota gisa parametriza daiteke. Xehetasunak atalean hizkuntzaren zehaztapenak. Oraingoz, funtzio hau desgaitu daiteke GOEXPERIMENT=noaliastypeparams ezarriz; Hala ere, aliastypeparams aukera kenduko da Go 1.25-en.

Tresnak

Joan komandoa

Go moduluek orain menpekotasun exekutagarriak jarrai ditzakete go.mod-eko tresnaren zuzentaraua erabiliz. Honek, normalean "tools.go" izeneko fitxategi batean, tresnak gehitzeko aurreko konponbidearen beharra kentzen du inportazio huts gisa. Go tool komandoak tresna hauek exekutatu ditzake orain Go-rekin datozen tresnez gain. Informazio gehiago helbidean aurki daiteke dokumentazioa.

Go get-ren -tool marka berriak tresnaren zuzentarauak uneko moduluan gehitzea eragiten du zehaztutako paketeetarako eskatzen diren zuzentarauak gehitzeaz gain.

New meta-eredu tresna uneko moduluko tresna guztiei egiten die erreferentzia. Hau guztiak eguneratzeko go get tresnaren bidez edo zure GOBIN direktorioan instalatzeko go install tresnaren bidez erabil daiteke.

Go run bidez sortutako exekutagarriak eta go tresnaren portaera berria Go build cachean gordetzen dira orain. Horrek behin eta berriz abiarazteak posible egiten ditu cache handitu delako. # 69290.

Go build and go install komandoek orain -json bandera onartzen dute, eta eraikuntza-irteeraren eta erroreen berri ematen dute irteera estandarrean JSON irteera egituratu gisa. Formatuaren xehetasunak go help buildjson-en ikus daitezke.

Gainera, go test -json-ek irteera eta eraikitze-erroreen berri ematen du JSON-n, probaren emaitza JSONarekin nahastuta. Ekintza mota berrien arabera bereiz daitezke, baina probak integratzeko sisteman arazoak sortzen badituzte, eraikuntzaren testu-irteerara itzuli zaitezke bidez. GODEBUG konfigurazioa gotestjsonbuildtext=1.

GOAUTH ingurune-aldagai berriak modu malgua eskaintzen du modulu pribatuak ateratzeko baimena emateko. Xehetasunak go help goauth atalean ikus ditzakezu.

Go build komandoa instalatuta dago orain modulu nagusiaren bertsioa konpilatutako binarioan, etiketa batean eta/edo bertsio-kontroleko konpromiso batean oinarrituta. + zikina atzizkia gehituko da konprometitu gabeko aldaketak badaude. -buildvcs=false bandera erabil daiteke bertsio-kontrolaren informazioa bitarretik kentzeko.

berria GODEBUG konfigurazioa tresna-katearen arrastoa=1 orain tresna-katearen hautaketa-prozesuaren jarraipena egiteko erabil daiteke go komandoan.

Cgo

Cgo-k C funtzioetarako ohar berriak onartzen ditu, exekuzio denboraren errendimendua hobetzeko. #cgo noescape cFunctionName-k cFunctionName-k C funtziora igarotako memoria ez dela ihes egiten dio konpilatzaileari. #cgo nocallback cFunctionName-k konpilatzaileari esaten dio C funtzioak cFunctionName-k ez duela Go funtziorik deitzen. Informazio gehiago helbidean aurki daiteke cgo dokumentazioa.

Une honetan Cgok uko egiten dio deklarazio bateraezinak dituen C funtzio bati deiak konpilatzeari. Adibidez, f void f(int) eta void f(double) gisa deklaratzen bada, cgo-k errore bat jakinaraziko du, agian, f(0) dei-sekuentzia baliogabea sortu beharrean. Bertsio honetako berritasuna errore-egoera honen detekzioa hobetu da fitxategi desberdinetan bateraezinak diren adierazpenak agertzen direnean. # 67699.

Objdump

Objdump tresnak 64 biteko LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64) eta S390X (GOARCH=s390x) desmuntatzea onartzen du orain.

Vet

Proba-analizatzaile berriak proba, fuzzer, benchmark eta adibide-adierazpenetan ohikoak diren akatsen berri ematen du proba-multzoetan, esate baterako, gaizki osatutako izenak, sinadura baliogabeak edo existitzen ez diren identifikatzaileak dokumentatzen dituzten adibideak. Akats horietako batzuek probak huts egitea eragin dezakete.

Lehendik dagoen printf analizatzaileak fmt.Printf(s) formako deien diagnostikoen berri ematen du orain, non s beste argumenturik gabeko formatu kate ez-konstantea den. Horrelako deiak akatsak dira ia beti, s balioak % karakterea izan dezakeelako; erabili fmt.Print ordez. 60529. Egiaztapen honek lehendik dagoen kodean gauzak aurkitzeko joera du, eta, beraz, hizkuntza-bertsioa (go.mod fitxategiaren go zuzentarauak edo `//go:build` iruzkinak zehazten duen moduan) gutxienez Go 1.24 denean soilik aplikatzen da, Go 1.24 tresna-katera eguneratzean integrazio-etenaldi luzeak ez sortzeko.

Lehendik dagoen buildtag-en analizatzaileak diagnostikoen berri ematen du orain build-tag oker bat dagoenean bertsio zaharragoak eraikitzeko muga Joan //go:build zuzentarauan. Adibidez, //go:build go1.23.1 puntu-oharrari egiten dio erreferentzia; ordez erabili //go:eraiki go1.23. # 64127.

Lehendik dagoen copylock analizatzaileak diagnostiko baten berri ematen du orain aldagai bat β€œfor” begizta hirukoitzean deklaratzen denean, hala nola for i := iter(); egin(i); i = next(i) { … }, sync.Locker dauka, hala nola sync.Mutex. Joan 1.22 begizta horien portaera aldatu du iterazio bakoitzerako aldagai berri bat sortzeko, aurreko iterazioko balioak kopiatuz; Kopiatu hau ez da segurua blokeoetarako. # 66387.

GOCACHEPROG

Barneko cmd/go binarioa eta test cache-mekanismoa orain inplementa daitezke haur-prozesuek JSON protokoloa inplementatzen duten cmd/go tresnaren eta GOCACHEPROG ingurune-aldagaiak izendatutako haur-prozesuaren artean. Aurretik GOEXPERIMENTerako zen. Protokoloaren xehetasunak atalean ikus daitezke dokumentazioa.

Amaitzeko ordua

Exekuzio denboraren errendimendu-hobekuntzak batez beste % 2-3 murriztu zuten CPUaren gainkostua erreferentziazko erreferentzia multzo batean. Emaitzak alda daitezke aplikazioaren arabera. Hobekuntza hauen barnean oinarritutako mapa integratutako inplementazio berria dago Suediako Mahaiak, objektu txikien memoriaren esleipen eraginkorragoa eta mutexaren barne exekuzio-denbora inplementazio berri bat.

Maparen inplementazio berria eta barneko exekuzio-denbora mutex berria desgaitu daitezke GOEXPERIMENT=noswissmap eta GOEXPERIMENT=nospinbitmutex konfigurazio garaian ezarriz, hurrenez hurren.

Konpilatzailea

Konpilatzaileak jada debekatu zuen cgo-k sortutako hartzaile motekin metodo berriak zehaztea, baina posible zen murrizketa hau motako alias baten bidez landu. Go 1.24 orain beti errore baten berri ematen du hartzaileak cgo-k sortutako mota bat adierazten badu, zuzenean edo zeharka (mota alias baten bidez).

Lokatzailea

Lokatzaileak orain GNU eraikitze-identifikatzailea (ELF sarrera NT_GNU_BUILD_ID) ELF plataformetan eta UUID (Mach-O load komando LC_UUID) sortzen ditu macOSen lehenespenez. Eraikitze-ID edo UUID Go build IDtik eratorria da. Hau desaktibatu daiteke -B none estekatzailearen banderarekin, edo erabiltzaileak zehaztutako balio hamaseitar batekin -B 0xNNNN estekatzailearen banderarekin gainidatzi daiteke.

Sustapena

urtean adierazi bezala Go 1.22 bertsioaren oharrak, Go 1.24 Go 1.22.6 edo berriagoa instalatu behar da orain. Garatzaileek espero dute Go 1.26-k Go 1.24-ren edo geroagoko kaleratzea eskatuko duela.

Liburutegi estandarra

Direktorioak mugatutako fitxategi-sistemarako sarbidea

Mota berria os.root Fitxategi-sistemaren eragiketak direktorio zehatz batean egiteko gaitasuna ematen du.

Funtzioa os.OpenRoot direktorioa ireki eta itzultzen du os.root. Aktibatutako metodoak os.root direktorio horretan funtzionatzen du eta ez dute bideek direktoriotik kanpoko kokapenei erreferentzia egiteko baimenik eman, direktoriotik kanpoko esteka sinbolikoak jarraitzen dituztenak barne. Os.Root-eko metodoek os paketean dauden fitxategi-sistemaren eragiketa gehienak islatzen dituzte, besteak beste, adibidez, os.Erroa.Ireki, os.Erroa.Sortu, os.Root.Mkdir ΠΈ os.Root.Stat.

Erreferentziazko ezaugarri berria

Benchmarkek orain metodo azkarrago bat erabil dezakete, errorerik ez izateko joera probak.B.Loop bN bezalako erreferentzi baten gainean errepikatzea. Loop() { … } bN barne hartzen duten begizta-egitura tipikoen ordez. Honek bi abantaila nabarmen eskaintzen ditu:

  • Erreferentzia-funtzioa zehatz-mehatz behin exekutatzen da -zenbaketa bakoitzeko, beraz, konfigurazio eta garbiketa urrats garestiak behin bakarrik egiten dira.
  • Funtzio-deiaren parametroak eta emaitzak bizirik dirau, konpilatzaileak begizta gorputza guztiz optimizatzea eragotziz.

Finalizatzaile hobetuak

Ezaugarri berria exekuzioa.GehituGarbiketa osatzeko mekanismoa baino malguagoa, eraginkorragoa eta akatsetarako joera gutxiago duena da runtime.SetFinalizer. AddCleanup-ek garbiketa-funtzio bat eransten dio objektu bati exekutatu egingo den objektua erabilgarri geratu bezain laster. Hala ere, SetFinalizer-ek ez bezala, garbiketa anitz objektu bakar bati lotu daitezke, garbiketak barne erakusleei erantsi daitezke, garbiketak normalean ez du filtraziorik eragiten objektuek ziklo bat osatzen dutenean, eta garbiketak ez du atzeratzen seinalatzen duen objektuaren edo objektuen desesleipena. Kode berriak AddCleanup nahiago luke SetFinalizer baino.

Pakete ahula berria

Pakete berria ahula erakusle ahulak eskaintzen ditu.

Erakusle ahulak memorian eraginkorrak diren egiturak sortzeko behe-mailako primitibo bat dira, hala nola balioak mapatzeko hiztegi ahulak, pakete batek estali ez duen edozertarako kanonalizatzeko hiztegiak. bakarra, eta hainbat cache mota. Erabilera-kasu hauek onartzeko, bertsio honek ere eskaintzen du exekuzioa.GehituGarbiketa ΠΈ maphash.Konparagarria.

Crypto/mlkem pakete berria

Pakete berria kripto/mlkem ML-KEM-768 eta ML-KEM-1024 inplementatzen ditu.

ML-KEM gako-truke osteko mekanismo bat da, lehen Kyber izenez ezagutzen dena eta bertan zehaztuta FIPS 203.

Crypto/hkdf, crypto/pbkdf2 eta crypto/sha3 pakete berriak

Pakete berria kripto/hkdf HMAC-n oinarritutako "Extract-and-Expand" gako-deribazio funtzioa HKDF inplementatzen du RFC 5869.

Pakete berria crypto/pbkdf2 PBKDF2 pasahitzetan oinarritutako gakoen eratorpen funtzioa inplementatzen du atalean definitutako moduan RFC 8018.

Pakete berria kripto/sha3 SHA-3 hash funtzioa eta SHAKE eta cSHAKE irteera hedagarri funtzioak ezartzen ditu FIPS 202.

Hiru paketeak lehendik dauden golang.org/x/crypto/… paketeetan oinarritzen dira.

FIPS 140-3 betetzea

Argitalpen honek barne hartzen du mekanismo multzo berri bat FIPS 140-3 betetzen dela ziurtatzeko.

Go kripto-modulua FIPS 140-3 onartutako algoritmoak ezartzeko gardentasunez erabiltzen diren barne-liburutegi estandar paketeen multzoa da. Aplikazioek ez dute aldaketarik behar Go crypto modulua erabiltzeko onartutako algoritmoetarako.

GOFIPS140 ingurune-aldagai berria erabil daiteke eraikuntza batean erabiltzeko Go kripto-moduluaren bertsioa hautatzeko. Berria GODEBUG konfigurazioa fips140 erabil daiteke exekuzioan FIPS 140-3 modua gaitzeko.

Go 1.24-k Go kripto-modulua v1.0.0 dakar, gaur egun CMVP-k akreditatutako laborategi batekin probatzen ari dena.

Pakete esperimental berriak proba/synctest

Pakete esperimental berria proba/synctest Kode bateragarria probatzeko laguntza eskaintzen du.

  • Funtzioa synctest.exekutatu goroutine talde bat exekutatzen du "burbuila" isolatu batean. Pakete funtzioaren burbuilan denbora erloju faltsuetan funtzionatu.
  • funtzio synctest.itxaron itxaron goroutine guztiak uneko burbuilan blokeatu arte.

Xehetasunak paketearen dokumentazioan aurki daitezke.

Synctest paketea esperimentala da eta GOEXPERIMENT=synctest ezarrita gaitu behar da. Baliteke paketeen APIa aldatzea etorkizuneko bertsioetan. IN # 67434 Xehetasun gehiago ikusi eta iritzia eman dezakezu.

Aldaketa txikiak liburutegian

artxiboa

(*Writer.AddFS) inplementazioek archive/zip eta archive/tar-en inplementazioek idazten dute orain direktorioa hutsik dagoen direktorio baten goiburua.

byte

pakete byte Iteratzaileekin lan egiten duten hainbat funtzio gehitzen ditu:

  • Lines Lerro berrietan bereizitako kateen gainean itertatzailea itzultzen du byte zati batean.
  • SplitSeq Bereizle batez bereizitako byte-xerra baten azpi-xerra guztien gainean itertatzailea itzultzen du.
  • SplitAfterSeq byte-xerra baten azpi-xerren gainean iterador bat itzultzen du, bereizlearen agerraldi bakoitzaren ondoren banatuta.
  • EremuakSeq Iterador bat itzultzen du espazio karaktereen sekuentzien inguruko byte-xerren azpi-xerren gainean, definitu bezala unicode.IsSpace
  • EremuakFuncSeq Predikatu bat betetzen duten Unicode kode puntuen sekuentzien inguruko byte zati baten azpi-xerren gaineko iterador bat itzultzen du.

kripto/aes

Itzultzeko balioa NewChipher jada ez ditu NewCTR, NewGCM, NewCBCEncrypter eta NewCBCDecrypter metodoak inplementatzen. Metodo hauek dokumentatu gabe zeuden eta ez zeuden arkitektura guztietan eskuragarri. Orain esanahia Blokeatu dagozkion funtzioetara zuzenean pasatu behar da kripto/zifratu. Gaur egun, kriptografiak/zifraketak oraindik ere egiaztatzen ditu metodo hauek Block balioetan, nahiz eta jada liburutegi estandarrak onartzen ez dituen.

kripto/zifratu

Ezaugarri berria NewGCMWithRandomNonce itzultzen AEAD, AES-GCM inplementatzen duena Seal zehar ausazko nonce bat sortuz eta testu zifratuaren aurretik jarriz.

Inplementazioa Stream, itzuli zen CTR berria batera erabiltzen denean kripto/aes orain hainbat aldiz azkarrago amd64 eta arm64-n.

BerriaOFB, CFBEncrypter berria ΠΈ CFBDecrypter berria gaur egun zaharkituta daude. OFB eta CFB moduak autentifikatu gabe daude, eta horrek, oro har, eraso aktiboak testu arrunta manipulatzeko eta berreskuratzeko aukera ematen du. Aplikazioak erabiltzea gomendatzen da AEAD trukean. Autentifikatu gabeko modua bada Stream beharrezkoa, erabil daiteke CTR berria trukean.

kripto/ecdsa

Gako pribatua.Sinatu orain sinadura determinista bat sortzen du RFC 6979, ausazkotasun iturria nulua bada.

kripto/md5

Itzultzeko balioa md5.berria, orain interfazea ere inplementatzen du kodeketa.binaryappender.

kripto/rand

Funtzioa Irakurketak: orain hutsegiterik ez duela bermatzen. Irakurri irakurtzean errore bat aurkitzen badu Reader, programa behin betiko amaituko da. Kontuan izan Reader lehenetsiak behar bezala funtzionatzen duela dokumentatuta dagoela, beraz aldaketa honek Reader aldagaia gainidazten duten programetan bakarrik eragin beharko luke. Salbuespen bat 3.17 baino lehenagoko Linux kernelak dira, non Reader lehenetsiak oraindik irekitzen duen /dev/urandom eta huts egin dezake.

Linux 6.11 bertsioan eta bertsio berrian, Reader-ek orain ausaz sistema deia erabiltzen du vDSO bidez. Hau hainbat aldiz azkarragoa da, normalean irakurketa txikietarako.

OpenBSD Reader-ek arc4random_buf(3) erabiltzen du orain.

Ezaugarri berria Testu orain kriptografikoki seguru ausazko testu-kateak sor ditzake.

kripto/rsa

GenerateKey orain errore bat itzultzen du 1024 bit baino gutxiagoko gakoaren luzera eskatzen bada. Sinatu, Egiaztatu, Enkriptatu eta Deszifratu metodo guztiek errore bat ematen dute orain 1024 bit baino gutxiagoko gako-tamainarekin erabiltzen bada. Horrelako giltzak ez dira seguruak eta ez dira erabili behar. GODEBUG konfiguratzea rsa1024min=0-k portaera zaharra leheneratzen du, baina Go garatzaileek hau beharrezkoa denean bakarrik egitea gomendatzen dute eta probetan soilik, adibidez //go:debug rsa1024min=0 lerroa gehituz proba-fitxategian. Berria Adibidez GenerateKey-k 2024 biteko proba-gako estandarra erabiltzeko erraza eskaintzen du.

Orain seguruagoa eta eraginkorragoa da deitzea Gako pribatua.Aurrekonputazioa to Gako pribatua.Balioztatu. Aurrekalkulua azkarragoa da partzialki beteta dagoenean AurrekalkulatutakoBalioak, adibidez, JSONetik gako bat ateratzen denean.

Paketeak orain baliogabeko gako gehiago baztertzen ditu Validate deitzen ez denean ere, eta GenerateKey orain errore berriak itzul ditzake hautsitako ausazko iturrietarako. Eremuak Lehenak ΠΈ Aurrekonputatua egitura Gako pribatua orain erabiltzen eta baliozkotzen dira balio batzuk falta diren arren. Crypto/x509-n ere aldaketak daude RSA gakoak analizatzeko eta ateratzeko, behean deskribatzen direnak.

SinatuPKCS1v15 ΠΈ EgiaztatuPKCS1v15 orain SHA-512/224, SHA-512/256 eta SHA-3 onartzen ditu.

GenerateKey orain, beste metodo bat erabiltzen du erakusle pribatua sortzeko (Carmichael funtzioa Euler funtzioaren ordez). Zenbaki lehenetatik soilik gakoak kanpotik birsortzen dituzten aplikazio arraroek emaitza desberdinak baina bateragarriak sor ditzakete.

Gako publiko eta pribatuen eragiketak orain bi aldiz azkarragoak dira wasm-en.

kripto/sha*

kriptografia/sotil

Ezaugarri berria WithDataIndependentTiming erabiltzaileari funtzio bat exekutatzeko aukera ematen dio arkitekturarako ezaugarri espezifikoak gaituta, zenbait argibide ez direla aldatzen datuen balioaren denborarekin. Hau erabil daiteke denbora konstantean exekutatzeko idatzitako kodea prozesadore-mailako funtzioek optimizatu ez dutela ziurtatzeko, denbora aldakorrean exekutatzeko. Gaur egun WithDataIndependentTiming-ek PSTATE.DIT bit erabiltzen du arm64-n eta ez du ezer egiten beste arkitektura guztietan. GODEBUG konfiguratzea dataindependenttiming=1ek DIT modua gaitzen du Go programa osorako.

Irteera XORbytes sarrerarekin guztiz edo batere ez gainjarri behar. Aurretik jokabidea zehaztu gabe zegoen bestela, orain XORBytes izua izango da.

kripto/tls

TLS zerbitzariak Encrypted Client Hello (ECH) onartzen du orain. Ezaugarri hau eremua betez gaitu daiteke. Config.EncryptedClientHelloKeys.

Gakoen truke kuantikoa osteko mekanismo berri bat X25519MLKEM768 orain onartzen eta gaituta lehenespenean noiz Config.CurvePreferences hutsa da. GODEBUG konfiguratzea tlsmlkem=0 lehenetsia ematen du.

X25519Kyber768Draft00 gako-truke esperimentalerako laguntza kendu da.

Gakoen truke-agindua crypto/tls paketeak kudeatzen du oso-osorik. Agindu Config.CurvePreferences orain ez ikusi egiten da eta edukiak eremua betetzean zein gako-truke sartu zehazteko soilik erabiltzen dira.

Eremu berria ClientHelloInfo.Extensions Bezeroaren Kaixo mezuan jasotako luzapen-identifikatzaileen zerrenda zerrendatzen du. Hau erabilgarria izan daiteke hatz-markak TLS bezeroak hartzeko.

crypto/x509

GODEBUG konfiguratzea x509sha1 kendu da. Ziurtagiria.Egiaztatu jada ez ditu SHA-1 oinarritutako sinadurak onartzen.

OID orain interfazeak ezartzen ditu kodeketa.binaryappender ΠΈ kodeketa.TextAppender.

Ziurtagiriaren gidalerro lehenetsiaren eremua honetatik aldatu da Ziurtagiria.PolicyIdentifiers on Ziurtagiria.Politikak. Ziurtagiriak analizatzean, bi eremuak beteko dira, baina ziurtagiri-politika sortzean, Ziurtagiria.Poliziak eremutik hartuko dira, Ziurtagiria.PolicyIdentifiers-en ordez. Aldaketa hori atzera egin daiteke. GODEBUG konfigurazioa x509usepolicies=0.

Sortu Ziurtagiria orain serie-zenbaki bat sortuko du RFC 5280 metodo bat erabiliz txantiloi-eremu bat pasatzean Ziurtagiria.Serie Zenbakia nul, huts egin beharrean.

Ziurtagiria.Egiaztatu orain RFC 5280 eta RFC 9618-n definitutako politikaren baliozkotzea onartzen du. Eremu berria EgiaztatuOptions.CertificatePolicies politika multzo onargarri batean ezarri daiteke OIDak. Baliozko politika grafikoak dituzten ziurtagiri-kateak bakarrik itzuliko dira Ziurtagiria.Egiaztatu.

MarshalPKCS8PrivateKey orain errore bat itzultzen du RSA gako baliogabea berreskuratu beharrean. (MarshalPKCS1PrivateKey ez du errorerik itzultzen eta gako baliogabeak ematen direnean bere portaera definitu gabe geratzen da.)

ParsePKCS1PrivateKey ΠΈ ParsePKCS8PrivateKey orain erabili eta balioztatu kodetutako CRT balioak, beraz, aurretik onartutako RSA gako baliogabeak baztertu ditzake. Erabilera GODEBUG ezarpenak x509rsacrt=0 CRT balioen birkalkulura itzultzen da.

arazketa/iratxo

pakete arazketa/iratxo ELF dinamikoetan (Executable and Linkable Format) fitxategietan sinboloen bertsioak kudeatzeko laguntza gehitzen du. Metodo berria Fitxategia.DynamicVersions ELF fitxategi batean definitutako bertsio dinamikoen zerrenda ematen du. Metodo berria Fitxategia.DynamicVersionNeeds ELF fitxategi honek beste ELF objektu batzuetan definitutako bertsio dinamikoen zerrenda ematen du. Azkenik, eremu berriak Sinboloa.HasVersion ΠΈ Sinboloa.BertsioAurkibidea sinboloaren bertsioa adierazi.

encoding

Bi interfaze berri TestAppender ΠΈ BinaryAppender byte zati bati objektu baten testua edo irudikapen bitarra gehitzeko sartu ziren. Interfaze hauek funtzionalitate bera eskaintzen dute TestMarshaler ΠΈ BinaryMarshaler, baina aldi bakoitzean zati berri bat esleitu beharrean, lehendik dagoen zati bati zuzenean eransten dizkiote datuak. Interfaze hauek dagoeneko TextMarshaler eta/edo BinaryMarshaler inplementatzen duten liburutegi mota estandarren bidez inplementatzen dira.

kodeketa/json

Eraikitzean, egitura-eremuaren etiketaren omitzero aukera berria duen egitura-eremu bat baztertuko da bere balioa zero bada. Eremu motak IsZero() bool metodoa badu, balioa zero den zehazteko erabiliko da. Bestela balioa zero izango da bada balio nulua bere motarako. Omitzero eremuaren etiketa garbiagoa eta errore-jasotasun gutxiagokoa da omitempty baino balio nuluak kentzea nahi denean. Bereziki, omitempty ez bezala, omitzerok zeroak baztertzen ditu denbora.denbora balioak, arazoen iturri arrunta dena.

Omitempty eta omitzero biak zehazten badira, eremua ezabatuko da balioa hutsik edo zero bada (edo biak).

UnmarshalTypeError.Field orain barne-egiturak barne hartzen ditu errore-mezu zehatzagoak emateko.

joan/motak

Metodo-bikoteen sekuentziak azaltzen dituzten go/types datu-egitura guztiek, Len() int eta At(int) T bezalakoak, orain iteratzaileak itzultzen dituzten metodoak ere badituzte, honelako kode sinpleagoa ahalbidetuz:

params := fn.Type.(*types.Signature).Params() for i := 0; i < params.Len(); i++ { erabili (params.At(i)) }

Honetan:

parametrorako := tartea fn.Sinadura().Params().Aldagaiak() { erabili (param) }

Metodoak: Interfazea.EmbeddedTypes Interfazea.ExplicitMethods Interfazea.Metodoak MethodSet.Metodoak Izendatua.Metodoak Esparrua.Haurrak Egitura.Eremuak Tupla.Aldagaiak MotaZerrenda.Motak TypeParamList.TypeParams Batasuna.Baldintzak

hash/*

log/slog

New BaztertuHandler Inoiz gaitzen ez den kudeatzailea da eta bere irteera beti baztertzen du.

Maila ΠΈ LevelVar orain inplementatu interfazea kodeketa.TextAppender.

matematika/*

net

ListenCondig orain MPTCP erabiltzen du lehenespenez onartzen den sistemetan (gaur egun Linux bakarrik).

IP orain interfazea inplementatzen du kodeketa.TextAppender.

net/http

Murrizketa aldatu egin da garraioa eskaerari erantzunez jasotako 1xx informazio erantzunei. Aurretik, eskaera geldiarazi eta errore bat itzuliko zen 5 1xx erantzun baino gehiago jaso ondoren. Honek errore bat itzultzen du 1xx erantzun guztien guztizko tamaina konfigurazio ezarpena gainditzen badu Garraioa.MaxResponseHeaderBytes.

Gainera, eskaera batek jarraipena duen kako bat duenean net/http/httptrace.ClientTrace.Got1xxResponse, orain ez dago erantzunen kopuru osoaren mugarik 1xx. Got1xxResponse kakoak errore bat itzul dezake eskaera geldiarazteko.

garraioa ΠΈ Server orain HTTP2 eremu bat daukate, HTTP/2 protokoloaren ezarpenak konfiguratzeko aukera ematen duena.

Eremu berriak Zerbitzaria.Protokoloak ΠΈ Garraioa.Protokoloak zerbitzariak edo bezeroak zein HTTP protokolo erabiltzen dituen konfiguratzeko modu erraz bat eskaintzea.

Zerbitzaria eta bezeroa zifratu gabeko HTTP/2 konexioak onartzeko konfigura daitezke.

Noiz Zerbitzaria.Protokoloak UnencrypterHTTP2 dauka, zerbitzariak HTTP/2 konexioak onartuko ditu zifratu gabeko ataketan. Zerbitzariak HTTP/1 eta zifratu gabeko HTTP/2 onar ditzake ataka berean.

Noiz Garraioa.Protokoloak UnencryptedHTTP2 dauka eta ez du HTTP1, garraioak zifratu gabeko HTTP/2 erabiliko du helbideetarako http://. Garraio bat HTTP/1 eta zifratu gabeko HTTP/2 erabiltzeko konfiguratuta badago, HTTP/1 erabiliko du.

Enkriptatutako HTTP/2-ren laguntzak "HTTP/2 aurrerapen-ikaskuntzarekin" erabiltzen du (RFC 9113, 3.3 atala). Ez da onartzen zaharkitutako goiburua "Berritu: h2c".

net/netip

addr, AdrPort ΠΈ aurrizkia orain interfazeak ezarri kodeketa.binaryappender ΠΈ kodeketa.TextAppender.

net/url

URL orain interfazea ere inplementatzen du kodeketa.binaryappender.

os/erabiltzailea

Windows-en Oraingo orain Windows Nano Server-en erabil daiteke. Inplementazioa eguneratu da Nano Server-en falta den NetApi32 liburutegiko funtzioak ez erabiltzeko.

Windows-en Oraingo, bilaketa ΠΈ LookupId orain integratutako erabiltzaile-zerbitzu kontu hauek onartzen ditu:

  • NT AGINTARITZAREN SISTEMA
  • NT AGINTARITZA TOKIKO ZERBITZUA
  • NT AUTORITATEAREN LAN ZERBITZUA

Windows-en Oraingo nabarmen bizkortu zen uneko erabiltzailea domeinu motel batera batzen denean, eta hori ohikoa da erabiltzaile korporatibo askorentzat. Inplementazio berriaren errendimendua milisegundoko ordenakoa da orain, aurreko inplementazioarekin alderatuta, hainbat segundo, nahiz minutu batzuk, behar izan ditzake.

Windows-en Oraingo orain prozesuaren jabearen erabiltzailea itzultzen du uneko haria beste erabiltzaile baten identitatea hartzen ari denean. Aurretik honek errore bat itzuli zuen.

adierazpen erregularra

Adierazpen erregularra orain interfazea inplementatzen du kodeketa.TextAdapter.

runtime

Funtzioa GOROOT gaur egun zaharkituta dago. Ingurune berriagoetan, sistemaren bidea erabili nahiago zenuke "go" bitarra definitzeko, eta go env GOROOT erabili GOROOT definitzeko.

kateak

pakete kateak Iteragailuekin lan egiteko hainbat funtzio gehitzen ditu:

  • Lines Kate bateko lerro berrien bidez bereizitako lerroen gaineko itertatzailea itzultzen du.
  • SplitSeq Bereizle batez bereizitako kate baten azpikate guztien gainean iterador bat itzultzen du.
  • SplitAfterSeq Kate baten azpikateen gainean itertatzailea itzultzen du, bereizlearen agerraldi bakoitzaren ondoren banatuta.
  • EremuakSeq Zuriuneen karaktereen sekuentzien inguruko kate baten azpikateen gaineko itertatzailea itzultzen du, definitu bezalaunicode.IsSpace
  • EremuakFuncSeq Predikatu bat betetzen duten Unicode kode puntuen sekuentzien inguruko kate azpikateen gaineko itertatzailea itzultzen du.

sinkronizatu

Inplementazioa sinkronizatu.mapa errendimendua hobetzeko aldatu da, bereziki hiztegi aldaketetarako. Esate baterako, multzo disjoint aldaketa-konflikzioak ez dira litekeena hiztegi handietan, eta jada ez du denborarik behar liskarra hiztegi-karga baxua lortzeko.

Arazoren bat aurkitzen baduzu, ezarri GOEXPERIMENT=nosynchashtriemap eraikuntzan inplementazio zaharrera itzultzeko eta mesedez bete arazo-inprimakia.

probak

Metodo berriak T.Testuingurua ΠΈ B.Testuingurua itzuli proba amaitu ondoren eta proba garbitzeko funtzioak exekutatu aurretik baztertzen den testuingurua.

Metodo berriak T.Chdir ΠΈ B.Chdir erabil daiteke lan-direktorioa aldatzeko proba edo erreferenteak irauten duen bitartean.

testua/txantiloia

Txantiloiek orain range-over-func eta range-over-int onartzen dituzte.

denbora

Ordua orain interfazeak ezartzen ditu kodeketa.binaryappender ΠΈ kodeketa.TextAppender.

Portuak

Linux

zen bezala iragarri du Go 1.23 bertsioaren oharren arabera, Go 1.24 Linux kernel 3.2 edo berriagoa behar du.

Darwin

Go 1.24 macOS 11 Big Sur-en exekutatzen den azken bertsioa da. Go 1.25 macOS 12 Monterey edo berriagoa beharko du.

WebAssembly

Go:wasmexport konpiladorearen zuzentaraua gehitu da Go programetan funtzioak WebAssembly ostalarira esportatzeko.

WebAssembly System Interface Preview 1-n (GOOS=wasip1 GOARCH=wasm), Go 1.24-k Go programa bat eraikitzea onartzen du. erreaktore/liburutegia eraikitzeko bandera zehaztuz -buildmode=c-shared.

Mota gehiago onartzen dira go:wasmimport funtzioetarako argumentu edo emaitza mota gisa. Bereziki, bool, string, uintptr eta zenbait motatako erakusleak onartzen dira (ikus xehetasunak atalean dokumentazioa), 32 biteko eta 64 biteko osoko eta koma mugikorreko motekin batera, eta unsafe.Pointer, dagoeneko onartzen direnak. Mota hauek argumentu edo emaitza mota gisa ere onartzen dira go:wasmexport funtzioetarako.

WebAssembly-ren laguntza-fitxategiak lib/wasm-era eraman dira misc/wasm-etik.

Hasierako memoria-aztarna nabarmen murrizten da, batez ere WebAssembly aplikazio txikietarako.

Windows

32 biteko windows/arm ataka (GOOS=windows GOARCH=arm) hautsita bezala markatu da. Xehetasunak atalean # 70705

Iturria: linux.org.ru

Gehitu iruzkin berria