Нашри нави забони Go, версияи 1.24, пас аз шаш моҳ меояд 1.23 равед. Аксари тағйирот дар татбиқи асбобҳо, вақти корӣ ва китобхонаҳо мебошанд. Тавре ки ҳамеша буд, озод таъмин менамояд ваъдаи мувофиқат Гузаштан 1. Тарроҳони забон интизоранд, ки қариб ҳамаи барномаҳои Go мисли пештара ҷамъоварӣ ва иҷро мешаванд.
Тағироти забон
Go 1.24 ҳоло комилан дастгирӣ мекунад тахаллусҳои навъи умумӣ: тахаллуси навъи метавонад ҳамчун навъи эълоншуда параметр карда шавад. Тафсилот дар мушаххасоти забон. Ҳоло ин хусусиятро бо гузоштани GOEXPERIMENT=noaliastypeparams ғайрифаъол кардан мумкин аст; Аммо, варианти aliastypeparams дар Go 1.25 хориҷ карда мешавад.
Tools
Фармон равед
Модулҳои Go акнун метавонанд вобастагии иҷрошавандаро бо истифода аз дастури асбоб дар go.mod пайгирӣ кунанд. Ин зарурати ҳалли қаблии илова кардани асбобҳо ҳамчун воридоти холӣ дар файле, ки маъмулан "tools.go" ном дорад, бартараф карда мешавад. Фармони асбоби go акнун метавонад ин асбобҳоро ба ғайр аз асбобҳое, ки бо Go меояд, иҷро кунад. Маълумоти бештарро метавонед дар ин ҷо пайдо кунед хуччатхо.
Парчами нави -tool барои рафтан боиси он мегардад, ки ба модули ҷорӣ барои бастаҳои муайян дастурҳои асбоб илова карда шаванд, ба ғайр аз илова кардани дастурҳои зарурӣ.
Нав воситаи мета-намуна ба ҳамаи асбобҳои модули ҷорӣ дахл дорад. Инро метавон барои навсозӣ кардани ҳамаи онҳо тавассути асбоби go get ё насб кардани онҳо дар феҳристи GOBIN-и худ тавассути асбоби насби go истифода бурд.
Барномаҳои иҷрошаванда тавассути go run сохта шудаанд ва рафтори воситаи нави go ҳоло дар кэши сохтани Go кэш карда мешаванд. Ин имкон медиҳад, ки бо сабаби зиёд шудани кэш, оғози такрорӣ имконпазир гардад. #69290.
Фармонҳои go build and go install ҳоло парчами -json -ро қабул мекунанд, ки дар бораи натиҷа ва хатогиҳо ҳамчун баромади сохтории JSON дар баромади стандартӣ гузориш медиҳад. Тафсилоти формат, нигаред ба go help buildjson.
Ғайр аз он, go test -json ҳоло дар бораи натиҷа гузориш медиҳад ва хатогиҳоро дар JSON эҷод мекунад, ки бо натиҷаи санҷиши JSON омехта шудааст. Онҳоро бо намудҳои нави Action фарқ кардан мумкин аст, аммо агар онҳо дар системаи ҳамгироии санҷиш мушкилот ба бор оваранд, шумо метавонед ба баромади матни сохтмон тавассути Танзимоти GODEBUG gotestjsonbuildtext=1.
Тағйирёбандаи нави муҳити GOAUTH роҳи чандирии иҷозати кашидани модули хусусиро таъмин мекунад. Шумо метавонед тафсилотро дар go help goauth бубинед.
Фармони go build ҳоло насб шудааст версияи модули асосӣ дар бинарии тартибдодашуда, дар асоси тег ва/ё ӯҳдадории назорати версия. Суффикси + чиркин илова карда мешавад, агар тағиротҳои номатлуб ворид шаванд. Парчами -buildvcs=false метавонад истифода шавад, то маълумоти назорати версияро аз бинар хориҷ кунад.
Нав Танзимоти GODEBUG toolchaintrace = 1 акнун метавонад барои пайгирии раванди интихоби асбобҳо дар фармони go истифода шавад.
Cgo
Cgo шарҳҳои навро барои функсияҳои C барои беҳтар кардани иҷрои вақти корӣ дастгирӣ мекунад. #cgo noescape cFunctionName ба компилятор мегӯяд, ки хотирае, ки ба функсияи C интиқол дода шудааст cFunctionName раҳо намешавад. #cgo nocallback cFunctionName ба компилятор мегӯяд, ки функсияи C cFunctionName ягон функсияи Go-ро бозпас даъват намекунад. Маълумоти бештарро метавонед дар ин ҷо пайдо кунед ҳуҷҷатҳои cgo.
Айни замон Cgo аз тартиб додани зангҳо ба функсияи C, ки эъломияҳои сершумори номувофиқ дорад, рад мекунад. Масалан, агар f ҳамчун void f(int) ва void f(double) эълон карда шавад, cgo ба ҷои эҳтимолияти тавлиди пайдарпайи зангҳои беэътибор f(0) дар бораи хато хабар медиҳад. Дар ин версияи нав муайян кардани ин ҳолати хатогӣ беҳтар шудааст, вақте ки эъломияҳои номувофиқ дар файлҳои гуногун пайдо мешаванд. #67699.
Objdump
Воситаи objdump ҳоло ҷудосозиро дар LoongArch 64-бит (GOARCH=loong64), RISC-V (GOARCH=riscv64) ва S390X (GOARCH=s390x) дастгирӣ мекунад.
Вет
Таҳлилгари нави санҷишҳо дар бораи хатогиҳои умумӣ дар санҷиш, фузер, бенчмарк ва эъломияҳои намунавӣ дар пакетҳои санҷишӣ, ба монанди номҳои нодуруст, имзоҳои беэътибор ё мисолҳое, ки идентификаторҳои мавҷуднадоштаро ҳуҷҷатгузорӣ мекунанд, гузориш медиҳад. Баъзе аз ин хатогиҳо метавонанд боиси нокомии санҷишҳо шаванд.
Таҳлилгари мавҷудаи printf ҳоло дар бораи ташхиси зангҳои шакли fmt.Printf(s) гузориш медиҳад, ки дар он s сатри формати ғайримуқаррарӣ буда, далелҳои дигар надорад. Чунин зангҳо қариб ҳамеша хато мебошанд, зеро арзиши s метавонад аломати % дошта бошад; ба ҷои fmt.Print истифода баред. 60529. Ин санҷиш майл дорад, ки чизҳоро дар коди мавҷуда пайдо кунад ва аз ин рӯ танҳо вақте истифода мешавад, ки версияи забонӣ (тавре ки дар дастури go-и файли go.mod ё шарҳҳои `//go:build` муайян шудааст) ҳадди аққал Go 1.24 бошад, барои пешгирӣ кардани танаффусҳои тӯлонии ҳамгироӣ ҳангоми навсозӣ ба силсилаи асбобҳои Go 1.24.
Таҳлилгари мавҷудаи Buildtag ҳоло дар бораи ташхис гузориш медиҳад, ки ҳангоми мавҷуд набудани нишони нодуруст маҳдудияти сохтани версияи кӯҳна Ба директиваи //go:build гузаред. Масалан, //go:build go1.23.1 ба озодкунии нуқта ишора мекунад; ба ҷои истифода //go:build go1.23. #64127.
Анализатори мавҷудаи нусхабардорӣ ҳоло дар бораи ташхис гузориш медиҳад, вақте ки тағирёбанда дар даври сегонаи "for" эълон мешавад, масалан for i := iter(); анҷом дода шуд (и); i = next(i) { … }, дорои sync.Locker, ба монанди sync.Mutex мебошад. 1.22 равед рафтори чунин ҳалқаҳоро тағир дод, то барои ҳар як итератсия тағирёбандаи нав эҷод кунад, арзишҳоро аз такрори қаблӣ нусхабардорӣ кунад; Ин нусхабардорӣ барои қуфлҳо бехатар нест. #66387.
ГОКАЧЕПРОГ
Механизми дохилии cmd/go бинарӣ ва кэшкунии санҷишӣ акнун метавонад тавассути равандҳои кӯдакона амалӣ карда шавад, ки протоколи JSON-ро байни абзори cmd/go ва раванди кӯдакие, ки аз ҷониби тағирёбандаи муҳити GOCACHEPROG номгузорӣ шудааст, амалӣ мекунад. Пештар он барои GOEXPERIMENT буд. Тафсилоти протоколро дар зер дидан мумкин аст хуччатхо.
Вақти анҷомёбӣ
Якчанд такмилдиҳии иҷрои вақти корӣ хароҷоти CPU-ро ба ҳисоби миёна дар як қатор нишондиҳандаҳои намояндагӣ 2-3% кам кард. Натиҷаҳо метавонанд вобаста ба ариза фарқ кунанд. Ин беҳбудиҳо татбиқи харитаи нави дарунсохтро дар бар мегиранд Ҷадвалҳои шведӣ, тақсимоти муассиртари хотираи объекти хурд ва татбиқи нави вақти кории дохилии mutex.
Татбиқи харитаи нави дарунсохт ва мутекси нави вақти иҷроишро тавассути танзими GOEXPERIMENT=noswissmap ва GOEXPERIMENT=nospinbitmutex дар вақти сохтан мутаносибан ғайрифаъол кардан мумкин аст.
Мураттиб
Компилятор аллакай муайян кардани усулҳои навро бо намудҳои қабулкунакҳое, ки аз ҷониби cgo тавлид шудаанд, манъ карда буд, аммо имкон дошт, ки ин маҳдудиятро тавассути тахаллуси намуд кор кард. Go 1.24 ҳоло ҳамеша дар бораи хато хабар медиҳад, агар қабулкунанда як навъи аз ҷониби cgo тавлидшуда ё мустақим ё бавосита (тавассути тахаллуси навъи) ишора кунад.
Пайвасткунанда
Пайвасткунак ҳоло дар платформаҳои ELF як идентификатори сохтани GNU (entry ELF NT_GNU_BUILD_ID) ва UUID (фармони боркунии Mach-O LC_UUID) дар macOS ба таври нобаёнӣ тавлид мекунад. ID-и сохтмон ё UUID аз ID сохтани Go гирифта шудааст. Инро бо парчами пайвандкунандаи -B none хомӯш кардан мумкин аст ё бо парчами пайвандкунандаи -B 0xNNNN бо арзиши шонздаҳӣ, ки аз ҷониби корбар муайян шудааст, бекор карда мешавад.
Пешбарӣ
Чунон ки дар Қайдҳои нашри Go 1.22, Go 1.24 ҳоло барои насб кардани Go 1.22.6 ё дертар талаб мекунад. Таҳиягарон интизоранд, ки Go 1.26 барои паҳн кардани версияи Go 1.24 ё дертар талаб мекунад.
Китобхонаи стандартӣ
Дастрасии системаи файлии бо феҳрист маҳдудшуда
Навъи нав os.root Қобилияти иҷрои амалиёти системаи файлиро дар дохили директорияи мушаххас таъмин мекунад.
функсия os.OpenRoot директорияро мекушояд ва бармегардад os.root. Усулҳо дар os.root дар он директория амал кунед ва ба роҳҳо иҷозат надиҳед, ки ба маконҳои берун аз директория, аз ҷумла онҳое, ки истинодҳои рамзии берун аз директорияро пайравӣ мекунанд, ишора кунанд. Усулҳои os.Root аксари амалиёти системаи файлиро, ки дар бастаи OS мавҷуданд, инъикос мекунанд, аз ҷумла, масалан, os.Root.Open, os.Root.Create, os.Root.Mkdir и os.Root.Stat.
Хусусияти нави бенчмарк
Нишондиҳандаҳо акнун метавонанд усули тезтар ва камтар ба хатогиҳоро истифода баранд озмоиш.B.Loop ба ҷои сохторҳои маъмулии ҳалқаи марбут ба bN ба монанди диапазони bN Ин як бартарии муҳимро пешниҳод мекунад:
- Функсияи муқоисавӣ маҳз як маротиба дар як ҳисоб иҷро карда мешавад, аз ин рӯ қадамҳои гаронбаҳои насб ва тозакунӣ танҳо як маротиба иҷро карда мешаванд.
- Параметрҳои занги функсия ва натиҷаҳо зиндагӣ мекунанд ва ба компилятор имкон намедиҳад, ки ҷисми ҳалқаро комилан оптимизатсия кунад.
Такмилдиҳандагони такмилёфта
Хусусияти нав runtime.AddCleanup механизми анҷомёбист, ки нисбат ба он чандиртар, самараноктар ва хатогиҳо камтар аст runtime.SetFinalizer. AddCleanup функсияи тозакуниро ба объект замима мекунад, ки баробари дастнорас шудани объект иҷро мешавад. Аммо, бар хилофи SetFinalizer, тозакуниҳои сершуморро ба як объект замима кардан мумкин аст, тозакуниро ба нишондиҳандаҳои дохилӣ замима кардан мумкин аст, тозакунӣ одатан ҳангоми ташаккули объектҳо ихроҷро ба вуҷуд намеорад ва тозакунӣ ҷудокунии объект ё объектҳои ба он ишорашударо таъхир намедиҳад. Рамзи нав бояд AddCleanup-ро аз SetFinalizer бартарӣ диҳад.
Бастаи нави заиф
Бастаи нав заиф нишондихандахои заиф медихад.
Нишондиҳандаҳои заиф як ибтидоии сатҳи паст мебошанд, ки барои эҷоди сохторҳои каммасрафи хотира пешбинӣ шудаанд, ба монанди луғатҳои заиф барои харитасозии арзишҳо, луғатҳои канонизатсия барои ҳама чизе, ки бо баста фаро гирифта нашудаанд. беназир, ва намудҳои гуногуни кэшҳо. Барои дастгирии ин ҳолатҳои истифода, ин нашр низ пешниҳод мекунад runtime.AddCleanup и maphash.Муқоисашаванда.
Бастаи нави crypto/mlkem
Бастаи нав крипто/mlkem ML-KEM-768 ва ML-KEM-1024-ро амалӣ мекунад.
ML-KEM як механизми мубодилаи калидҳои пас аз квантӣ мебошад, ки қаблан бо номи Kyber маъруф буд ва дар он нишон дода шудааст FIPS 203.
Бастаҳои нав crypto/hkdf, crypto/pbkdf2 ва crypto/sha3
Бастаи нав крипто/hkdf Функсияи ҳосилкунии калидии "Extract-and-Expand"-ро дар асоси HMAC иҷро мекунад HKDF тавре ки дар RFC 5869.
Бастаи нав crypto/pbkdf2 Функсияи ҳосилкунии калиди бар асоси парол PBKDF2-ро тавре, ки дар дар RFC 8018.
Бастаи нав крипто/sha3 функсияи hash SHA-3 ва функсияҳои баромади васеъшавандаи SHAKE ва cSHAKE-ро тавре, ки дар FIPS 202.
Ҳар се баста ба бастаҳои мавҷудаи golang.org/x/crypto/… асос ёфтааст.
FIPS 140-3 Мутобиқати
Ин нашр дар бар мегирад маҷмӯи нави механизмҳо барои таъмини мувофиқати FIPS 140-3.
Модули криптографии Go маҷмӯи бастаҳои дохилии китобхона мебошад, ки барои татбиқи алгоритмҳои тасдиқшудаи FIPS 140-3 шаффоф истифода мешаванд. Барномаҳо тағиротро барои истифодаи модули криптографии Go барои алгоритмҳои тасдиқшуда талаб намекунанд.
Тағйирёбандаи нави муҳити зист GOFIPS140 метавонад барои интихоби версияи модули криптографии Go барои истифода дар сохтмон истифода шавад. Нав Танзимоти GODEBUG fips140 метавонад барои фаъол кардани режими FIPS 140-3 дар вақти корӣ истифода шавад.
Go 1.24 модули crypto Go v1.0.0-ро дар бар мегирад, ки айни замон бо лабораторияи аккредитатсияшудаи CMVP озмуда мешавад.
Санҷиши бастаи нави таҷрибавӣ/синктест
Бастаи нави таҷрибавӣ озмоиш / ҳамоҳангсозӣ Дастгирии санҷиши рамзи ҳамзамонро таъмин мекунад.
- функсия synctest.run гурухи горутинхоро дар як «футур»-и алохида идора мекунад. Дар ҳубобӣ вазифаи бастаи замон бо соатхои бардуруг кор кунанд.
- Функсияҳо synctest. интизор шавед мунтазир бошед, ки ҳамаи горутинҳо дар ҳубобчаи ҷорӣ баста шаванд.
Тафсилотро дар ҳуҷҷатҳои бастаҳо пайдо кардан мумкин аст.
Бастаи synctest озмоишӣ аст ва бояд бо гузоштани GOEXPERIMENT=synctest фаъол карда шавад. API баста метавонад дар нашрҳои оянда тағир ёбад. ДАР #67434 Шумо метавонед тафсилоти бештарро бубинед ва фикру мулоҳизаҳои худро пешниҳод кунед.
Тағироти хурд дар китобхона
Бойгонии
Амалисозии (*Writer.AddFS) дар archive/zip ва archive/tar акнун сарлавҳаи директорияро барои директорияи холӣ менависад.
байт
Бастаи байт якчанд функсияҳоеро илова мекунад, ки бо итераторҳо кор мекунанд:
- хати Итераторро бар сатрҳои аз сатри нав ҷудошуда дар буридаи байт бармегардонад.
- SplitSeq итераторро бар тамоми зербуришҳои буридаи байт, ки бо ҷудокунанда ҷудо карда шудаанд, бармегардонад.
- SplitAfterSeq итераторро бар зербурҳои як буридаи байт бармегардонад, ки пас аз ҳар як пайдоиши ҷудокунанда тақсим мешавад.
- FieldsSeq итераторро бар зербурҳои буридаи байт дар атрофи пайдарпайии аломатҳои фосила, тавре ки муайян шудааст, бармегардонад unicode.IsSpace
- FieldsFuncSeq итераторро бар зербуришҳои буридаи байт дар атрофи пайдарпаии нуқтаҳои рамзи Юникод, ки предикатро қонеъ мекунанд, бармегардонад.
крипто / aes
Баргардонидани арзиши NewChipher дигар усулҳои NewCTR, NewGCM, NewCBCEncrypter ва NewCBCDecrypter-ро амалӣ намекунад. Ин усулҳо ҳуҷҷат надоштанд ва дар ҳама меъморӣ дастрас нестанд. Акнун маънои Блок бояд бевосита ба вазифахои дахлдор гузаранд крипто/шифр. Дар айни замон, крипто/шифр ин усулҳоро дар арзишҳои Блок тафтиш мекунад, гарчанде ки онҳо дигар аз ҷониби китобхонаи стандартӣ дастгирӣ намешаванд.
крипто/шифр
Хусусияти нав NewGCMWithRandomNonce бармегардад AEAD, ки AES-GCM-ро тавассути тавлиди як лаҳзаи тасодуфӣ дар давоми Seal ва пешгӯии он ба матни рамзӣ амалӣ мекунад.
Реализация селоба, баргашт NewCTR ҳангоми истифода бо крипто / aes ҳоло дар amd64 ва arm64 якчанд маротиба тезтар.
NewOFB, NewCFBEncrypter и NewCFBDDecrypter холо кухнашуда эълон карда шудаанд. Усулҳои OFB ва CFB тасдиқнашуда мебошанд, ки ба таври умум ба ҳамлаҳои фаъол имкон медиҳад, ки матни кушодро идора ва барқарор кунанд. Истифодаи барномаҳо тавсия дода мешавад AEAD дар иваз. Агар режими тасдиқнашуда селоба зарур аст, истифода бурдан мумкин аст NewCTR дар иваз.
крипто/ecdsa
PrivateKey.Sign ҳоло мувофиқи имзои детерминистӣ эҷод мекунад RFC 6979, агар манбаи тасодуфӣ сифр бошад.
крипто/md5
Баргардонидани арзиши md5.new, ҳоло интерфейсро низ амалӣ мекунад encoding.binaryappender.
крипто / ранд
функсия хондан акнун ягон нобарориро кафолат намедихад. Агар Хондан ҳангоми хондан ба хатогӣ дучор шавад хонанда, барнома ба таври доимӣ қатъ мегардад. Дар хотир доред, ки Reader-и пешфарз ҳуҷҷатгузорӣ шудааст, ки ҳамеша бомуваффақият кор кунад, бинобар ин, ин тағирот бояд танҳо ба барномаҳое таъсир расонад, ки тағирёбандаи Reader-ро бекор мекунанд. Як истисно ядроҳои Linux пеш аз 3.17 мебошад, ки дар он Reader пешфарз то ҳол /dev/urandom мекушояд ва метавонад ноком шавад.
Дар Linux 6.11 ва дертар, Reader ҳоло занги системавии getradom тавассути vDSO -ро истифода мебарад. Ин якчанд маротиба тезтар аст, одатан барои хондани хурд.
Дар OpenBSD Reader ҳоло arc4random_buf(3)-ро истифода мебарад.
Хусусияти нав Матн акнун метавонад сатрҳои матнии тасодуфии аз ҷиҳати криптографии бехатарро тавлид кунад.
крипто/rsa
Калиди тавлид ҳоло хато бармегардонад, агар дарозии калид камтар аз 1024 бит дархост карда шавад. Ҳама усулҳои Имзо, Тасдиқ, Рамзгузорӣ ва Рамзкунӣ ҳоло хаторо бармегардонанд, агар бо андозаи калид камтар аз 1024 бит истифода шаванд. Чунин калидҳо хатарноканд ва набояд истифода шаванд. Танзими GODEBUG rsa1024min=0 рафтори кӯҳнаро барқарор мекунад, аммо таҳиягарони Go ин корро танҳо дар ҳолати зарурӣ ва танҳо дар санҷишҳо тавсия медиҳанд, масалан бо илова кардани сатри //go:debug rsa1024min=0 ба файли санҷиш. Нав намуна GenerateKey калиди санҷиши стандартии 2024-битро барои истифодаи осон таъмин мекунад.
Ҳоло занг задан бехатартар ва самараноктар аст PrivateKey.Precompute ба PrivateKey.Validate. Ҳисобкунии пешакӣ ҳоло дар ҳузури қисман пур тезтар аст Арзишҳои пешакӣ ҳисобшуда, масалан, ҳангоми истихроҷи калид аз JSON.
Маҷмӯа ҳоло калидҳои беэътибори бештарро рад мекунад, ҳатто вақте ки Validate даъват карда намешавад ва Калиди тавлид акнун метавонад хатогиҳои навро барои манбаъҳои тасодуфии шикаста баргардонад. Майдонхо Давр и Пешакӣ ҳисоб карда шудааст сохторҳо PrivateKey ҳоло ҳатто ҳангоми мавҷуд набудани баъзе арзишҳо истифода мешаванд ва тасдиқ карда мешаванд. Ҳамчунин тағйирот дар crypto/x509 барои таҳлил ва истихроҷи калидҳои RSA мавҷуданд, ки дар зер тавсиф шудаанд.
SignPKCS1v15 и VerifyPKCS1v15 ҳоло SHA-512/224, SHA-512/256 ва SHA-3-ро дастгирӣ мекунад.
Калиди тавлид ҳоло усули каме дигарро барои тавлиди экспоненти хусусӣ истифода мебарад (функсияи Кармайкл ба ҷои функсияи Эйлер). Барномаҳои камёфт, ки калидҳоро аз рақамҳои ибтидоӣ берун аз нав барқарор мекунанд, метавонанд натиҷаҳои гуногун, вале мувофиқро ба вуҷуд оранд.
Амалиёт дар калидҳои ҷамъиятӣ ва хусусӣ ҳоло дар wasm то ду маротиба тезтар аст.
крипто/ша*
- крипто/sha1: арзиши баргардонидани ша1.Нав ҳоло интерфейсро низ амалӣ мекунад encoding.binaryappender.
- крипто/sha256: арзишҳо баргаштанд ша256.Нав и sha256.New224 ҳоло интерфейсро низ татбиқ кунед encoding.binaryappender.
- крипто/sha512: арзишҳо баргаштанд ша512.Нав, sha512.New384, sha512.New512_224 и sha512.New512_256, ҳоло интерфейсро низ татбиқ кунед encoding.binaryappender.
крипто / нозук
Хусусияти нав WithDataIndependentTiming ба корбар имкон медиҳад, ки функсияро бо хусусиятҳои хоси меъморӣ иҷро кунад, ки кафолат медиҳад, ки дастурҳои муайян нисбат ба вақти арзиши маълумот тағир наёбанд. Инро метавон барои таъмини он истифода бурд, ки коди дар вақти доимӣ навишташуда аз ҷониби функсияҳои сатҳи протсессор оптимизатсия карда нашудааст, то он дар вақти тағйирёбанда кор кунад. Айни замон WithDataIndependentTiming бит PSTATE.DIT-ро дар arm64 истифода мебарад ва дар ҳама меъмории дигар ҳеҷ кор намекунад. Танзими GODEBUG dataindependenttiming=1 ҳолати DIT-ро барои тамоми барномаи Go фаъол мекунад.
хулоса XORBytes бояд бо вуруд комилан мувофиқат кунад ё тамоман наояд. Пештар рафтор ба таври дигар муайян карда нашуда буд, дар ҳоле ки ҳоло XORBytes воҳима хоҳад кард.
крипто/тлс
Сервери TLS ҳоло Client Encrypted Hello (ECH) -ро дастгирӣ мекунад. Ин хусусиятро тавассути пур кардани майдон фаъол кардан мумкин аст. Config.EncryptedClientHelloKeys.
Механизми нави мубодилаи калидҳои пас аз квантӣ X25519MLKEM768 ҳоло дастгирӣ ва фаъол бо нобаёнӣ вақте ки Config.CurvePreferences сифр аст. Танзими GODEBUG tlsmlkem=0 пешфарзро бармегардонад.
Дастгирии мубодилаи калидҳои таҷрибавии X25519Kyber768Draft00 хориҷ карда шуд.
Фармоиши мубодилаи калидҳо ҳоло пурра аз ҷониби бастаи crypto/tls идора карда мешавад. Тартиб Config.CurvePreferences ҳоло нодида гирифта мешавад ва мундариҷа танҳо барои муайян кардани кадом мубодилаи калидӣ ҳангоми пур кардани майдон истифода мешавад.
Майдони нав ClientHelloInfo.Extensions Рӯйхати идентификаторҳои васеъшавӣ дар паёми Client Hello гирифташударо номбар мекунад. Ин метавонад барои гирифтани изи ангуштони муштариёни TLS муфид бошад.
крипто / x509
Танзими GODEBUG x509sha1 хориҷ карда шуд. Сертификатсия. Тасдиқ кунед дигар имзоҳои асоси SHA-1-ро дастгирӣ намекунад.
ОИД ҳоло интерфейсҳоро амалӣ мекунад encoding.binaryappender и encoding.TextAppender.
Майдони сиёсати сертификати пешфарз аз Certificate.PolicyIdentifiers ба Шаҳодатнома. Сиёсат. Ҳангоми таҳлили сертификатҳо ҳарду майдон пур карда мешаванд, аммо ҳангоми сохтани сиёсати сертификат, онҳо аз майдони Certificate.Policies ба ҷои Certificate.PolicyIdentifiers гирифта мешаванд. Ин тағиротро баргардонидан мумкин аст. Танзимоти GODEBUG x509usepolicies=0.
Эҷоди сертификат ҳоло рақами силсилавиро бо истифода аз усули мувофиқи RFC 5280 ҳангоми гузаштан аз майдони қолаб тавлид мекунад Шаҳодатнома.Рақами силсила сифр, ба ҷои шикаст.
Шаҳодатнома.Тасдиқ кунед ҳоло тасдиқи сиёсатро, ки дар RFC 5280 ва RFC 9618 муайян шудааст, дастгирӣ мекунад. Майдони нав VerifyOptions.CertificatePolicies метавонад ба маҷмӯи сиёсатҳои қобили қабул муқаррар карда шавад ОИД. Танҳо занҷирҳои сертификатсия бо графикҳои дурусти сиёсат аз он баргардонида мешаванд Шаҳодатнома.Тасдиқ кунед.
MarshalPKCS8PrivateKey ҳоло ба ҷои гирифтани калиди RSA беэътибор хатогиро бармегардонад. (MarshalPKCS1PrivateKey баргардонидани хато надорад ва рафтори он ҳангоми пешниҳоди калидҳои беэътибор номуайян боқӣ мемонад.)
ParsePKCS1PrivateKey и ParsePKCS8PrivateKey Акнун арзишҳои рамзшудаи CRT-ро истифода ва тасдиқ кунед, бинобар ин метавонад калидҳои беэътибори RSA-ро, ки қаблан қабул шуда буданд, рад кунед. Истифода Танзимоти GODEBUG x509rsacrt=0 ба дубора ҳисобкунии арзишҳои CRT бармегардад.
debug/elf
Бастаи debug/elf Дастгирии коркарди версияҳои рамзро дар файлҳои динамикии ELF (Формати иҷрошаванда ва пайвастшаванда) илова мекунад. Усули нав File.DynamicVersions Рӯйхати версияҳои динамикии дар файли ELF муайяншударо бармегардонад. Усули нав File.DynamicVersionNeeds Рӯйхати версияҳои динамикии аз ҷониби ин файли ELF талабшударо, ки дар дигар объектҳои ELF муайян шудаанд, бармегардонад. Ниҳоят, майдонҳои нав Symbol.HasVersion и Symbol.VersionIndex версияи рамзро нишон диҳед.
рамзгузорӣ
Ду интерфейси нав TextAppender и BinaryAppender барои илова кардани матн ё тасвири бинарии объект ба буридаи байт ҷорӣ карда шуданд. Ин интерфейсҳо ҳамон функсияҳоро таъмин мекунанд TextMarshaler и BinaryMarshaler, аммо ба ҷои ҷудо кардани як буридаи нав ҳар дафъа, онҳо маълумотро мустақиман ба буридаи мавҷуда замима мекунанд. Ин интерфейсҳо дар айни замон бо намудҳои стандартии китобхонаҳо амалӣ карда мешаванд, ки аллакай TextMarshaler ва/ё BinaryMarshaler-ро амалӣ мекунанд.
рамзгузорӣ/json
Ҳангоми сохтан, майдони сохтор бо варианти нави сифр дар теги майдони сохтор, агар арзиши он сифр бошад, хориҷ карда мешавад. Агар навъи майдон усули bool IsZero () дошта бошад, он барои муайян кардани сифр будани арзиш истифода мешавад. Дар акси ҳол, арзиши сифр хоҳад буд, агар он арзиши нул барои навъи он. Теги майдони беэътиборӣ нисбат ба omitempty тозатар ва камтар ба хатогиҳо майл дорад, вақте ки ҳадаф гузоштани арзишҳои сифр аст. Махсусан, бар хилофи omitempty, сифр сифрҳоро тарк мекунад вақт.вақт арзишҳо, ки манбаи умумии мушкилот аст.
Агар ҳам omitempty ва ҳам сифр нишон дода шуда бошанд, агар арзиш холӣ ё сифр (ё ҳарду) бошад, майдон хориҷ карда мешавад.
UnmarshalTypeError.Field ҳоло сохторҳои дарунсохтро дар бар мегирад, то паёмҳои хатогиҳои муфассалтарро пешниҳод кунанд.
гузаред/навд
Ҳама сохторҳои додаҳои go/types, ки пайдарпаии ҷуфтҳои усулҳоро фош мекунанд, ба монанди Len() int ва At(int) T, ҳоло инчунин усулҳое доранд, ки итераторҳоро бармегардонанд ва имкон медиҳанд, ки коди соддатар ба ин монанд:
params := fn.Type.(*types.Signature).Params() барои i := 0; i < params.Len(); i++ { истифода (params.At(i)) }
Дар бораи ин:
барои param := диапазон fn.Signature().Params().Тағйирёбанда() { use(param)}
Усулҳо: Interface.EmbeddedTypes Interface.ExplicitMethods Интерфейс. Методҳо MethodSet.Methods Номи.Усулҳо Доираи. кӯдакон Сохтор. Майдонҳо Тағирёбандаҳо TypeList.Types TypeParamList.TypeParams Иттиҳод. Шартҳо
ҳаш/*
- hash/adler32: арзиши баргардонидани нав, ҳоло интерфейсро низ амалӣ мекунад encoding.binaryappender
- hash/crc32: арзишҳо баргаштанд нав и NewIEEE, ҳоло интерфейсро низ татбиқ кунед encoding.binaryappender
- hash/crc64: арзиши баргардонидани нав, ҳоло интерфейсро низ амалӣ мекунад encoding.binaryappender
- hash/fnv: арзишҳо баргаштанд New32 Нав32а New64 Нав64а New128 и Нав128а, ҳоло интерфейсро низ татбиқ кунед encoding.binaryappender
- hash/maphash: хусусиятҳои нав Қобили муқоиса и Муқоисашаванда нависед метавонад хэш-и ҳама гуна арзишро ҳисоб кунад, ки муқоиса кардан мумкин аст. Ин ба шумо имкон медиҳад, ки ҳама чизеро, ки ҳамчун калиди луғати Go истифода мешавад, ҳаш кунед.
сабт/слог
Нав DiscardHandler коркардкунанда аст, ки ҳеҷ гоҳ фаъол нест ва ҳамеша баромади худро мепартояд.
сатҳи и LevelVar ҳоло интерфейсро татбиқ кунед encoding.TextAppender.
математика/*
- математика / калон: Флоя, Ш и Таносуби ҳоло интерфейсро татбиқ кунед encoding.TextAppender.
- математика / ранд: зангҳои функсионалии сатҳи боло Насли дигар таъсире надоранд. Барои барқарор кардани рафтори кӯҳна, шумо метавонед истифода баред Танзимоти GODEBUG randseednop = 0. Контексти бештар дар пешниҳод 67273.
- математика/ранд/v2: ЧаКаXНумX и PCG ҳоло интерфейсро татбиқ кунед encoding.binaryappender.
холиси
Гӯш кунед Condig ҳоло MPTCP-ро бо нобаёнӣ дар системаҳое истифода мебарад, ки он дастгирӣ мешавад (ҳоло танҳо Linux).
IP ҳоло интерфейсро амалӣ мекунад encoding.TextAppender.
net/http
Маҳдудият тағйир ёфт Нақлиёт ба маълумоти 1xx гирифташуда дар посух ба дархост. Қаблан ин дархостро қатъ мекунад ва пас аз гирифтани беш аз 5 ҷавоби 1xx хатогиро бармегардонад. Ин ҳоло танҳо хатогиро бармегардонад, агар андозаи умумии ҳамаи ҷавобҳои 1xx аз танзимоти конфигуратсия зиёд бошад Transport.MaxResponseHeaderBytes.
Инчунин, вақте ки дархост дорои қалмоқе пайгирӣ аст net/http/httptrace.ClientTrace.Got1xxResponse, ҳоло дар шумораи умумии ҷавобҳо 1xx маҳдудият вуҷуд надорад. Ҳоки Got1xxResponse метавонад хатогиро барои боздоштани дархост баргардонад.
Нақлиёт и Сервер ҳоло майдони HTTP2 доранд, ки ба танзимоти танзимоти протоколи HTTP/2 имкон медиҳад.
Майдонхои нав Server.Protocols и Нақлиёт. Протоколҳо роҳи оддии танзим кардани кадом протоколҳои HTTP-ро сервер ё муштарӣ истифода мебарад.
Сервер ва муштариро барои дастгирии пайвастҳои рамзнашуда HTTP/2 танзим кардан мумкин аст.
Ҳангоми Server.Protocols дорои UnencrypterHTTP2 мебошад, сервер пайвастҳои HTTP/2-ро дар портҳои рамзнашуда қабул мекунад. Сервер метавонад ҳам HTTP/1 ва ҳам HTTP/2-ро дар як порт қабул кунад.
Ҳангоми Нақлиёт. Протоколҳо дорои UnencryptedHTTP2 ва дорои HTTP1 нест, нақлиёт HTTP/2-ро барои суроғаҳо истифода мебарад http://. Агар нақлиёт барои истифодаи ҳам HTTP/1 ва ҳам HTTP/2-и рамзнашуда танзим карда шавад, он HTTP/1-ро истифода мебарад.
Дастгирии HTTP/2-и рамзнашуда истифода мебарад "HTTP/2 бо Forward-Learning" (RFC 9113, фасли 3.3). Сарлавҳаи бекоршудаи "Upgrade: h2c" дастгирӣ намешавад.
net/netip
Адрес, AdrPort и Префикс ҳоло интерфейсҳоро татбиқ кунед encoding.binaryappender и encoding.TextAppender.
net/url
URL ҳоло интерфейсро низ амалӣ мекунад encoding.binaryappender.
os/корбар
Дар Windows ҷорӣ акнун метавонад дар Windows Nano Server истифода шавад. Амалисозӣ барои пешгирӣ кардани истифодаи функсияҳои китобхонаи NetApi32, ки дар Nano Server мавҷуд нест, навсозӣ шудааст.
Дар Windows ҷорӣ, Ҷустуҷӯ и LookupId ҳоло ҳисобҳои дохилии хидматрасонии корбарро дастгирӣ мекунад:
- NT AuthoritySYSTEM
- ХИЗМАТРАСОНИИ МАҲАЛЛИИ NT
- ХИЗМАТИ NT AUTHORITYNETWORK
Дар Windows ҷорӣ Вақте ки корбари кунунӣ ба домени суст пайваст мешавад, ба таври назаррас суръат гирифт, ки ин як ҳолати маъмул барои бисёре аз корбарони корпоративӣ мебошад. Фаъолияти татбиқи нав ҳоло дар муқоиса бо татбиқи қаблӣ, ки барои анҷом додани он метавонад якчанд сония ва ҳатто дақиқаҳоро дар бар гирад, бо тартиби миллисонияҳо аст.
Дар Windows ҷорӣ ҳоло корбари соҳиби равандро бармегардонад, вақте ки риштаи ҷорӣ корбари дигарро муаррифӣ мекунад. Пештар ин хатогиро баргардонд.
regexp
Regexp ҳоло интерфейсро амалӣ мекунад encoding.TextAdapter.
runtime
функсия Горот ҳоло бекор карда шудааст. Дар муҳитҳои навтар, шумо бояд истифодаи роҳи системаро барои муайян кардани бинарии "go" афзалтар донед ва go env GOROOT -ро барои муайян кардани GOROOT истифода баред.
сатрхо
Бастаи сатрхо якчанд функсияҳоро барои кор бо итераторҳо илова мекунад:
- хати Итераторро бар сатрҳои аз нав ҷудошуда дар сатр бармегардонад.
- SplitSeq итераторро бар тамоми зерсатрҳои сатри бо ҷудокунанда ҷудошуда бармегардонад.
- SplitAfterSeq итераторро бар зерсатрҳои сатр бармегардонад, ки пас аз ҳар як пайдоиши ҷудокунанда тақсим карда мешавад.
- FieldsSeq итераторро бар зерсатрҳои сатр дар атрофи пайдарпайии аломатҳои холигии муайяншуда бармегардонадunicode.IsSpace
- FieldsFuncSeq Итераторро бар зерсатри сатр дар атрофи пайдарпаии нуқтаҳои рамзи Юникод, ки предикатро қонеъ мекунанд, бармегардонад.
синк
Реализация sync.map барои беҳтар кардани кор, махсусан барои тағир додани луғат тағир дода шудааст. Масалан, дар луғатҳои калон ихтилофи тағир додани маҷмӯи ҷудогона эҳтимоли камтар аст ва барои ба даст овардани сарбории луғати ками баҳс, он дигар вақти зиёдро талаб намекунад.
Агар шумо бо ягон мушкилот рӯ ба рӯ шавед, GOEXPERIMENT=nosynchashtriemap -ро ҳангоми сохтани он насб кунед, то ба татбиқи кӯҳна баргардед ва лутфан варақаи мушкилотро пур кунед.
санҷиши
Усулхои нав T. Контекст и B. Контекст контекстеро, ки пас аз анҷоми санҷиш ва пеш аз иҷрои вазифаҳои тозакунии санҷиш партофта шудааст, баргардонед.
Усулхои нав Т.Чдир и Б.Чдир метавонад барои тағир додани феҳристи корӣ дар давоми санҷиш ё нишондиҳанда истифода шавад.
матн/шаблон
Шаблонҳо ҳоло диапазон-бар-функ ва диапазон-over-int-ро дастгирӣ мекунанд.
замон
Time ҳоло интерфейсҳоро амалӣ мекунад encoding.binaryappender и encoding.TextAppender.
Портфельҳо
Linux
Чунон ки буд эълон кард Тибқи ёддоштҳои нашри Go 1.23, Go 1.24 версияи ядрои Linux 3.2 ё дертарро талаб мекунад.
Дарвин
Go 1.24 версияи охиринест, ки дар macOS 11 Big Sur кор мекунад. Go 1.25 MacOS 12 Monterey ё дертарро талаб мекунад.
WebAssembly
Дастури компилятори go:wasmexport ба барномаҳои Go барои содироти функсияҳо ба хости WebAssembly илова карда шудааст.
Дар WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm), Go 1.24 сохтани барномаи Go-ро дастгирӣ мекунад реактор/китобхона бо муайян кардани парчами сохтани -buildmode = c-shared.
Ҳоло намудҳои бештар ҳамчун далел ё намудҳои натиҷа барои функсияҳои go:wasmimport иҷозат дода мешаванд. Махсусан, bool, string, uintptr ва нишондиҳандаҳо ба намудҳои муайян иҷозат дода мешаванд (ба тафсилот дар хуччатхо), дар баробари намудҳои бутуни 32-бит ва 64-битӣ ва шиноварӣ ва unsafe.Pointer, ки аллакай иҷозат дода шудаанд. Ин намудҳо инчунин ҳамчун аргумент ё намудҳои натиҷа барои функсияҳои go:wasmexport иҷозат дода мешаванд.
Файлҳои дастгирӣ барои WebAssembly ба lib/wasm аз misc/wasm интиқол дода шуданд.
Фоизи хотираи ибтидоӣ ба таври назаррас коҳиш ёфтааст, махсусан барои барномаҳои хурди WebAssembly.
Windows
Порти 32-битаи windows/arm (GOOS=windows GOARCH=arm) ҳамчун шикаста қайд карда шудааст. Тафсилот дар #70705
Манбаъ: linux.org.ru
