เป„เบ› 1.24

เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡เบžเบฒเบชเบฒ Go, เบฎเบธเปˆเบ™ 1.24, เบกเบฒเบฎเบญเบ”เบซเบปเบเป€เบ”เบทเบญเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ เป„เบ› 1.23. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท, เป€เบงเบฅเบฒเปเบฅเปˆเบ™เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบชเบฐเป€เบซเบกเบต, เบเบฒเบ™เบ›เปˆเบญเบเบชเบฐเบซเบ™เบญเบ‡ เบ„เปเบฒโ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบเบฑเบ™โ€‹เป„เบ”เป‰โ€‹ เป„เบ› 1. เบœเบนเป‰เบญเบญเบเปเบšเบšเบžเบฒเบชเบฒเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเป€เบเบทเบญเบšเบ—เบธเบเป‚เบ„เบ‡เบเบฒเบ™ Go เบˆเบฐเบชเบทเบšเบ•เปเปˆเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เบทเป€เบเบปเปˆเบฒ.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบžเบฒเบชเบฒ

Go 1.24 เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™ เบ™เบฒเบกเปเบเบ‡เบ›เบฐเป€เบžเบ”เบ—เบปเปˆเบงเป„เบ›: เบ™เบฒเบกเปเบเบ‡เบ›เบฐเป€เบžเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเบณเบ™เบปเบ”เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เป„เบ”เป‰. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปƒเบ™ เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบžเบฒเบชเบฒ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GOEXPERIMENT=noaliastypeparams; เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ aliastypeparams เบˆเบฐเบ–เบทเบเบฅเบถเบšเบญเบญเบเปƒเบ™ Go 1.25.

เป€เบ„เบทเปˆเบญเบ‡เบกเบท

เป„เบ›เบ„เปเบฒเบชเบฑเปˆเบ‡

เบ”เบฝเบงเบ™เบตเป‰เป‚เบกเบ”เบนเบ™ Go เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปƒเบ™ go.mod. เบ™เบตเป‰เบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบ›เบฑเบ™เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "tools.go". เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบท go เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบš Go. เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เบ—เบตเปˆ เป€เบญเบเบฐเบชเบฒเบ™.

เบ—เบธเบ‡ -tool เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš go get เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป‚เบกเบ”เบนเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเบ—เบตเปˆเบฅเบฐเบšเบธเบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡.

เปƒเปเปˆ เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบฎเบนเบšเปเบšเบš meta เบซเบกเบฒเบเป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป‚เบกเบ”เบนเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบญเบฑเบšเป€เบ”เบ”เบžเบงเบเบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบœเปˆเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบท go get, เบซเบผเบทเป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบงเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต GOBIN เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบœเปˆเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ•เบดเบ”เบ•เบฑเป‰เบ‡ go.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบœเปˆเบฒเบ™ go run เปเบฅเบฐเบžเบถเบ”เบ•เบดเบเปเบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป„เบ›เปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡ Go build. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบŠเป‰เปเบฒเบเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบก cache. #69290.

เบ„เปเบฒเบชเบฑเปˆเบ‡ go build and go install เบ•เบญเบ™เบ™เบตเป‰เบเบญเบกเบฎเบฑเบšเบ—เบธเบ‡ -json, เป€เบŠเบดเปˆเบ‡เบฅเบฒเบเบ‡เบฒเบ™ build output เปเบฅเบฐ errors as structured JSON output on standard output. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบฎเบนเบšเปเบšเบšเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™ go help buildjson.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป„เบ›เบ—เบปเบ”เบชเบญเบš -json เบ•เบญเบ™เบ™เบตเป‰เบฅเบฒเบเบ‡เบฒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™ JSON, เบ›เบฐเบชเบปเบกเบเบฑเบšเบœเบปเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš JSON. เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบˆเปเบฒเปเบ™เบเป„เบ”เป‰เป‚เบ”เบเบ›เบฐเป€เบžเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเบกเปˆ, เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบœเปˆเบฒเบ™. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG gotestjsonbuildtext=1.

เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก GOAUTH เปƒเปเปˆเปƒเบซเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ”เบถเบ‡เป‚เบกเบ”เบนเบ™เบชเปˆเบงเบ™เบ•เบปเบง. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป„เบ”เป‰เปƒเบ™ go help goauth.

เบ„เปเบฒเบชเบฑเปˆเบ‡ go build เป„เบ”เป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเป‰เบง เบฎเบธเปˆเบ™เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบ•เบปเป‰เบ™เบ•เป เปƒเบ™โ€‹เบ„เบนเปˆโ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹, เป‚เบ”เบโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹เป‚เบ„เบ”โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เปเบฅเบฐ / เบซเบผเบทโ€‹เบ„เปเบฒโ€‹เบซเบกเบฑเป‰เบ™โ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹. + เบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบเป€เบ›เบทเป‰เบญเบ™เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเบ–เป‰เบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡. เบ—เบธเบ‡ -buildvcs=false เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเบปเบเป€เบฅเบตเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™เบˆเบฒเบเป„เบšเบ™เบฒเบฃเบต.

เปƒเบซเบกเปˆ เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG toolchaintrace=1 เบ”เบฝเบงเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เป„เบ›.

Cgo

Cgo เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบšเบฑเบ™เบเบฒเบเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ C เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” runtime. #cgo noescape cFunctionName เบšเบญเบ compiler เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ C cFunctionName เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบซเบฅเบปเบšเบซเบ™เบต. #cgo nocallback cFunctionName เบšเบญเบ compiler เบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ C cFunctionName เบšเปเปˆเป„เบ”เป‰เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ Go เปƒเบ”เป†. เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เบ—เบตเปˆ เป€เบญเบเบฐเบชเบฒเบ™ cgo.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ Cgo เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ C เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบซเบผเบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒ f เบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™ void f(int) เปเบฅเบฐ void f(double), cgo เบˆเบฐเบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ f(0). เปƒเปเปˆเปƒเบ™เบฅเบธเป‰เบ™เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบเบงเบ”เบซเบฒเบชเบฐเบžเบฒเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ™เบตเป‰เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบ•เปˆเบฒเบ‡เป†. #67699.

Objdump

เบ•เบญเบ™เบ™เบตเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท objdump เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ–เบญเบ”เบ›เบฐเบเบญเบšเปƒเบ™ LoongArch 64-bit (GOARCH=loong64), RISC-V (GOARCH=riscv64), เปเบฅเบฐ S390X (GOARCH=s390x).

Vet

เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปƒเบซเบกเปˆเบฅเบฒเบเบ‡เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, fuzzer, benchmark, เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™เบŠเบธเบ”เบ—เบปเบ”เบชเบญเบš, เป€เบŠเบฑเปˆเบ™: เบŠเบทเปˆเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบฅเบฒเบเป€เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบซเบผเบทเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง. เบšเบฒเบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบฅเบปเป‰เบกเป€เบซเบฅเบง.

เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐ printf เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™เบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก fmt.Printf(s), เบšเปˆเบญเบ™เบ—เบตเปˆ s เป€เบ›เบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบญเบทเปˆเบ™. เบเบฒเบ™เป‚เบ—เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบเบทเบญเบšเบชเบฐเป€เบซเบกเบตเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒเบ„เปˆเบฒเบ‚เบญเบ‡ s เบญเบฒเบ”เบˆเบฐเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ %; เปƒเบŠเป‰ fmt.Print เปเบ—เบ™. 60529. เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ™เบตเป‰เบกเบฑเบเบˆเบฐเบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ (เบ•เบฒเบกเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡ go.mod เบซเบผเบทเบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™ `//go:build`) เปเบกเปˆเบ™เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ Go 1.24, เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบเบฒเบงเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเป€เบ›เบฑเบ™ Go 1.24 toolchain.

เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐ buildtag เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเป€เบกเบทเปˆเบญเบกเบต buildtag เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ เบชเบฐเบšเบฑเบšเป€เบเบปเปˆเบฒเบชเป‰เบฒเบ‡เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ” เป€เบ‚เบปเป‰เบฒเป„เบ›เบ—เบตเปˆ //go:build directive. เบ•เบปเบงเบขเปˆเบฒเบ‡, //go:build go1.23.1 เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เปˆเบญเบเบˆเบธเบ”; เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ //go:build go1.23. #64127.

เบ•เบญเบ™เบ™เบตเป‰เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐ copylock เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเป€เบกเบทเปˆเบญเบ•เบปเบงเปเบ›เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบ™เบงเบปเบ‡เบชเบฒเบก โ€œforโ€ เป€เบŠเบฑเปˆเบ™: for i := iter(); เบชเปเบฒเป€เบฅเบฑเบ”(i); i = next(i) { โ€ฆ }, เบกเบต sync.Locker, เป€เบŠเบฑเปˆเบ™ sync.Mutex. เป„เบ› 1.22 เบ›เปˆเบฝเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡ loops เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ•เบปเบงเปเบ›เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ iteration, เบ„เบฑเบ”เบฅเบญเบเบ„เปˆเบฒเบˆเบฒเบ iteration เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ; เบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบ™เบตเป‰เบšเปเปˆเบ›เบญเบ”เป„เบžเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบฑเบญเบ. #66387.

GOCACHEPROG

เบเบปเบ™เป„เบเบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเบณเบžเบฒเบเปƒเบ™ เปเบฅเบฐ เบ—เบปเบ”เบชเบญเบšเบžเบฒเบเปƒเบ™ cmd/go เบ”เบฝเบงเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบ”เบฑเบเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เป JSON เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบท cmd/go เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบ”เบฑเบเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป‚เบ”เบเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก GOCACHEPROG. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบกเบฑเบ™เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš GOEXPERIMENT. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เป„เบ”เป‰เปƒเบ™ เป€เบญเบเบฐเบชเบฒเบ™.

เป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เปเบฅเปˆเบ™เบซเบผเบฒเบเป†เบ„เบฑเป‰เบ‡เบซเบผเบธเบ”เบฅเบปเบ‡ CPU overhead 2-3% เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเปƒเบ™เบ—เบปเปˆเบงเบŠเบธเบ”เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ•เบปเบงเปเบ—เบ™. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบถเป‰เบ™เบขเบนเปˆเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบฅเบงเบกเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบœเบ™เบ—เบตเปˆเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบซเบกเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบนเปเบญเบฑเบ”, เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบงเบฑเบ”เบ–เบธเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™, เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบฅเปˆเบ™เบžเบฒเบเปƒเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡ mutex.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบœเบ™เบ—เบตเปˆเปƒเบ™เบ•เบปเบงเปƒเบซเบกเปˆเปเบฅเบฐ mutex runtime เบžเบฒเบเปƒเบ™เปƒเบซเบกเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GOEXPERIMENT=noswissmap เปเบฅเบฐ GOEXPERIMENT=nospinbitmutex เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

เบœเบนเป‰เบชเบฑเบ‡เบฅเบงเบก

compiler เป„เบ”เป‰เบซเป‰เบฒเบกเปเบฅเป‰เบงเบเปเบฒเบ™เบปเบ”เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆเบเบฑเบšเบ›เบฐเป€เบžเบ” receiver เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ cgo, เปเบ•เปˆเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบ›เบฐเป€เบžเบ”เบ™เบฒเบกเปเบเบ‡. เบ•เบญเบ™เบ™เบตเป‰ Go 1.24 เบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบชเบฐเป€เปเบตเบ–เป‰เบฒเบœเบนเป‰เบฎเบฑเบšเปเบฒเบเป€เบ–เบดเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™ cgo, เป‚เบ”เบเบเบปเบ‡ เบซเบผเบทเบ—เบฒเบ‡เบญเป‰เบญเบก (เบœเปˆเบฒเบ™เบ™เบฒเบกเปเบเบ‡เบ›เบฐเป€เบžเบ”).

เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ

เบ•เบญเบ™เบ™เบตเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเป‰เบฒเบ‡ ID เบเบฒเบ™เบชเป‰เบฒเบ‡ GNU (เบฅเบฒเบเบเบฒเบ™ ELF NT_GNU_BUILD_ID) เปƒเบ™เปเบžเบฅเบ”เบŸเบญเบก ELF เปเบฅเบฐ UUID (เบ„เบณเบชเบฑเปˆเบ‡เป‚เบซเบผเบ” Mach-O LC_UUID) เปƒเบ™ macOS เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. ID เบเบฒเบ™เบชเป‰เบฒเบ‡ เบซเบผเบท UUID เปเบกเปˆเบ™เบกเบฒเบˆเบฒเบ ID เบเบฒเบ™เบชเป‰เบฒเบ‡ Go. เบชเบดเปˆเบ‡เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰เบ”เป‰เบงเบเบ—เบธเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ -B none, เบซเบผเบทเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบ—เบธเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ -B 0xNNNN เบ”เป‰เบงเบเบ„เปˆเบฒเบ–เบฒเบ™เบชเบดเบšเบซเบปเบเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบฅเบฐเบšเบธ.

เบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบก

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเป„เบงเป‰เปƒเบ™ เป„เบ› 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.

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เปƒเบซเบกเปˆโ€‹

เบ•เบญเบ™เบ™เบตเป‰ Benchmarks เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป„เบงเบเบงเปˆเบฒ เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เปœเป‰เบญเบเบฅเบปเบ‡ เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš.B.Loop เป€เบžเบทเปˆเบญ iterate เบซเบผเบฒเบเบเบงเปˆเบฒ benchmark เป€เบŠเบฑเปˆเบ™: b.Loop() { โ€ฆ } เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ loop เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš bN เป€เบŠเบฑเปˆเบ™เบชเปเบฒเบฅเบฑเบš range bN เบ™เบตเป‰เบชเบฐเป€เบซเบ™เบตเบชเบญเบ‡เบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™:

  • เบŸเบฑเบ‡เบŠเบฑเบ™ benchmark เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ™เปˆเบ™เบญเบ™เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบ•เปเปˆ -count, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฒเบ„เบฒเปเบžเบ‡เปเบฅเบฐเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบ„เบฑเป‰เบ‡เบ”เบฝเบง.
  • เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™ เปเบฅเบฐเบœเบปเบ™เบฅเบฑเบšเบขเบนเปˆเปƒเบ™, เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ compiler เบ›เบฑเบšเบ›เบธเบ‡เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡ loop เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™.

เบ›เบฑเบšเบ›เบธเบ‡เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเบญเบšเบชเบธเบ”เบ—เป‰เบฒเบ

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆ runtime.AddCleanup เป€เบ›เบฑเบ™โ€‹เบเบปเบ™โ€‹เป„เบโ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบ„เปˆเบญเบ‡โ€‹เบ•เบปเบงโ€‹เบซเบผเบฒเบโ€‹เบเบงเปˆเบฒโ€‹, เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบžเบฒเบšโ€‹เบซเบผเบฒเบโ€‹, เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบซเบ™เป‰เบญเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒ runtime.SetFinalizer. AddCleanup เปเบ™เบšเบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบงเบฑเบ”เบ–เบธเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš SetFinalizer, เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบซเบผเบฒเบเบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ”เบฝเบง, เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบžเบฒเบเปƒเบ™, เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบกเบฑเบเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบผเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบงเบฑเบ”เบ–เบธเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบงเบปเบ‡เบˆเบญเบ™, เปเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบšเปเปˆเบŠเบฑเบเบŠเป‰เบฒเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบงเบฑเบ”เบ–เบธเบซเบผเบทเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบฑเบ™เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™. เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบ„เบงเบ™เบกเบฑเบ AddCleanup เบซเบผเบฒเบเบเบงเปˆเบฒ SetFinalizer.

เบŠเบธเบ”เบ—เบตเปˆเบญเปˆเบญเบ™เปเบญเปƒเบซเบกเปˆ

เบŠเบธเบ”เปƒเปเปˆ เบญเปˆเบญเบ™เปเบญ เบชเบฐเบซเบ™เบญเบ‡เบˆเบธเบ”เบญเปˆเบญเบ™.

Weak pointers เปเบกเปˆเบ™เบ•เบปเบงเบŠเบตเป‰เบšเบญเบเบฅเบฐเบ”เบฑเบšเบ•เปเปˆเบฒเบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบˆเบณ เป€เบŠเบฑเปˆเบ™: เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญเบชเบณเบฅเบฑเบšเบ„เปˆเบฒเปเบœเบ™เบ—เบตเปˆ, เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก canonicalization เบชเบณเบฅเบฑเบšเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเบงเบกเป€เบญเบปเบฒเบŠเบธเบ”เปƒเบ”เปœเบถเปˆเบ‡. เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ, เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ. เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบเบฒเบ™เบ›เปˆเบญเบเบ™เบตเป‰เบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡ runtime.AddCleanup ะธ maphash.เบชเบปเบกเบ—เบฝเบš.

เบŠเบธเบ” crypto/mlkem เปƒเปเปˆ

เบŠเบธเบ”เปƒเปเปˆ crypto/mlkem เบ›เบฐเบ•เบดเบšเบฑเบ” ML-KEM-768 เปเบฅเบฐ ML-KEM-1024.

ML-KEM เปเบกเปˆเบ™เบเบปเบ™เป„เบเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบซเบผเบฑเบเบซเบผเบฑเบ‡ quantum, เป€เบŠเบดเปˆเบ‡เปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ Kyber เปเบฅเบฐเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ FIPS 203.

เปเบžเบฑเบเป€เบเบ”เปƒเปเปˆ crypto/hkdf, crypto/pbkdf2 เปเบฅเบฐ crypto/sha3

เบŠเบธเบ”เปƒเปเปˆ crypto/hkdf เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ "Extract-and-Expand" เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ HMAC HKDF เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ RFC 5869.

เบŠเบธเบ”เปƒเปเปˆ crypto/pbkdf2 เบ›เบฐเบ•เบดเบšเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบเปเบฒเป€เบ™เบตเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™ PBKDF2 เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ RFC 8018.

เบŠเบธเบ”เปƒเปเปˆ crypto/sha3 เบ›เบฐเบ•เบดเบšเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™ SHA-3 hash เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ” SHAKE เปเบฅเบฐ cSHAKE เบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ FIPS 202.

เบ—เบฑเบ‡เบชเบฒเบกเบŠเบธเบ”เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบŠเบธเบ” golang.org/x/crypto/โ€ฆ เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก FIPS 140-3

เบเบฒเบ™เบ›เปˆเบญเบเบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบต เบŠเบธเบ”เบเบปเบ™เป„เบเปƒเปเปˆเป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก FIPS 140-3.

เป‚เบกเบ”เบนเบ™ Go crypto เปเบกเปˆเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบŠเบธเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เป‚เบ›เปˆเบ‡เปƒเบชเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” FIPS 140-3 algorithms เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบกเบฑเบ”. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบšเปเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ Go crypto เบชเปเบฒเบฅเบฑเบšเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบกเบฑเบ”.

เบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปƒเปเปˆ GOFIPS140 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบฅเบธเป‰เบ™เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™ Go crypto เป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡. เปƒเปเปˆ เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG fps140 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เปเบ” FIPS 140-3 เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™.

Go 1.24 เบ›เบฐเบเบญเบšเบกเบตเป‚เบกเบ”เบนเบ™ Go crypto v1.0.0, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบˆเบธเบšเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบ—เบปเบ”เบชเบญเบšเบเบฑเบšเบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบญเบ‡ CMVP.

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบŠเบธเบ”เบ—เบปเบ”เบฅเบญเบ‡เปƒเปเปˆ/เบเบฒเบ™เบŠเบดเบ‡เบ„เปŒ

เบŠเบธเบ”เบ—เบปเบ”เบฅเบญเบ‡เปƒเปเปˆ เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš/synctest เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบฅเบฐเบซเบฑเบ”เบžเป‰เบญเบกเบเบฑเบ™.

  • เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡ synctest.run เปเบฅเปˆเบ™เบเบธเปˆเบกเบ‚เบญเบ‡ goroutines เปƒเบ™ "เบŸเบญเบ‡" เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง. เปƒเบ™เบŸเบญเบ‡เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบŠเบธเบ” เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบกเบ‡เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.
  • เบŸเบฑเบ‡เบŠเบฑเบ™ synctest.เบฅเปเบ–เป‰เบฒ เบฅเปเบ–เป‰เบฒเบˆเบปเบ™เบเปˆเบงเบฒ goroutines เบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเบšเบฅเบฑเบญเบเปƒเบ™ bubble เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบŠเบธเบ”.

เบŠเบธเบ” synctest เปเบกเปˆเบ™เบ—เบปเบ”เบฅเบญเบ‡เปเบฅเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GOEXPERIMENT=synctest. package API เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. IN #67434 เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก เปเบฅเบฐเปƒเบซเป‰เบ„เปเบฒเบ•เบดเบŠเบปเบกเป„เบ”เป‰.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”

เป€เบเบฑเบš

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” (*Writer.AddFS) เปƒเบ™ archive/zip เปเบฅเบฐ archive/tar เบ•เบญเบ™เบ™เบตเป‰เบ‚เบฝเบ™เบซเบปเบงเบ‚เปเป‰เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบชเปเบฒเบฅเบฑเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ.

เป„เบš

Package เป„เบš เป€เบžเบตเปˆเบกเบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš iterators:

  • เป€เบชเบฑเป‰เบ™ เปƒเบซเป‰เบœเบปเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเบขเบฑเปˆเบ‡เบขเบถเบ™เบ•เปเปˆเบชเบฒเบเบ—เบตเปˆเปเบเบเบเบฑเบ™เปเบ–เบงเปƒเปเปˆเปƒเบ™เบชเบฐเป„เบฅเป‰เป„เบšเบ•เปŒ.
  • เปเบšเปˆเบ‡เปเบเบ เบชเบปเปˆเบ‡เบ„เปˆเบฒเบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ—เบ™เปƒเบ™เบชเปˆเบงเบ™เบเปˆเบญเบเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เป„เบšเป„เบšเบ—เบตเปˆเปเบเบเบญเบญเบเป‚เบ”เบเบ•เบปเบงเปเบเบ.
  • SplitAfterSeq เบชเบปเปˆเบ‡เบ„เปˆเบฒเบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ—เบ™เปƒเบ™เป„เบฅเบเบฐเบเปˆเบญเบเบ‚เบญเบ‡เบชเบฐเป„เบฅเป‰เป„เบšเบ•เปŒ, เปเบšเปˆเบ‡เบญเบญเบเบซเบผเบฑเบ‡เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบ•เบปเบงเปเบเบ.
  • FieldsSeq เปƒเบซเป‰เบœเบปเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ—เบ™เปƒเบ™เป„เบฅเบเบฐเบเปˆเบญเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เป„เบเป„เบšเบ•เปŒเบฎเบญเบšเป†เบฅเบณเบ”เบฑเบšเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบเบฐเบซเบงเปˆเบฒเบ‡, เบ•เบฒเบกเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰. unicode.IsSpace
  • FieldsFuncSeq เปƒเบซเป‰เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เบ•เบปเบงเบซเบเปเป‰เปƒเบ™เป„เบฅเบเบฐเบเปˆเบญเบเบ‚เบญเบ‡ byte slice เบ›เบฐเบกเบฒเบ™เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบˆเบธเบ”เบฅเบฐเบซเบฑเบ” Unicode เบ—เบตเปˆเบžเปเปƒเบˆ predicate.

crypto/aes

เบเบฑเบšเบ„เบทเบ™เบกเบนเบ™เบ„เปˆเบฒ NewChiper เบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™ NewCTR, NewGCM, NewCBCEncrypter, เปเบฅเบฐ NewCBCDecrypter. เบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™เปเบฅเบฐเบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบ Block เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เป‚เบ”เบเบเบปเบ‡เบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก crypto/cipher. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, crypto/cipher เบเบฑเบ‡เบเบงเบ”เบชเบญเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒ Block, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบญเบตเบเบ•เปเปˆเป„เบ›.

crypto/cipher

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆ NewGCMWithRandomNonce เบเบฑเบšเบ„เบทเบ™ AEAD, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” AES-GCM เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡ nonce random เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™ Seal เปเบฅเบฐ prepending เบกเบฑเบ™เบเบฑเบš ciphertext.

ะ ะตะฐะปะธะทะฐั†ะธั เบ™เป‰เปเบฒ, เบเบฑเบšเบ„เบทเบ™ NewCTR เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบš crypto/aes เบ”เบฝเบงเบ™เบตเป‰เป„เบงเบ‚เบถเป‰เบ™เบซเบผเบฒเบเป€เบ—เบทเปˆเบญเปƒเบ™ amd64 เปเบฅเบฐ arm64.

NewOFB, NewCFBEncrypter ะธ NewCFBDdecrypter เบ”เบฝเบงเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒเบฅเป‰เบฒเบชเบฐเป„เปเปเบฅเป‰เบง. เป‚เบซเบกเบ” OFB เปเบฅเบฐ CFB เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™, เป€เบŠเบดเปˆเบ‡เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™ เปเบฅเบฐเบเบนเป‰เบ„เบทเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบณเบกเบฐเบ”เบฒ. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ AEAD เปƒเบ™เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบฎเบญเบ‡โ€‹ เบ™เป‰เปเบฒ เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™, เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰ NewCTR เปƒเบ™เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™.

crypto/ecdsa

PrivateKey.Sign เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเป‰เบฒเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบญเบตเบ‡เบ•เบฒเบก RFC 6979, เบ–เป‰เบฒเปเบซเบผเปˆเบ‡ randomness เปเบกเปˆเบ™ nil.

crypto/md5

เบเบฑเบšเบ„เบทเบ™เบกเบนเบ™เบ„เปˆเบฒ md5.เปƒเปเปˆ, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.binaryappender.

crypto/rand

เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡ เบญเปˆเบฒเบ™ เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง. เบ–เป‰เบฒ Read เบžเบปเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบญเปˆเบฒเบ™ Reader, เป‚เบ›เบฃเปเบเบฃเบกเบˆเบฐเบขเบธเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ Reader เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบชเบณเป€เบฅเบฑเบ”เบชเบฐเป€เปเบต, เบชเบฐเบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบตเป‰เบ„เบงเบ™เบกเบตเบœเบปเบ™เบ•เปเปˆเป‚เบ›เบฃเปเบเบฃเบกเบ—เบตเปˆเปเบ—เบ™เบ—เบตเปˆเบ•เบปเบงเปเบ› Reader เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบญเบฑเบ™เปœเบถเปˆเบ‡เปเบกเปˆเบ™ kernels. Linux เบˆเบปเบ™เป€เบ–เบดเบ‡เป€เบงเบตเบŠเบฑเบ™ 3.17, เบšเปˆเบญเบ™เบ—เบตเปˆเป‚เบ›เบฃเปเบเบฃเบกเบญเปˆเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฑเบ‡เป€เบ›เบตเบ” /dev/urandom เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบฅเบปเป‰เบกเป€เบซเบผเบง.

เบเปˆเบฝเบงเบเบฑเบš Linux 6.11 เปเบฅเบฐ เบ•เปเปˆเบกเบฒ, Reader เบ”เบฝเบงเบ™เบตเป‰เปƒเบŠเป‰เบเบฒเบ™เป€เบญเบตเป‰เบ™เบฅเบฐเบšเบปเบš getrandom เบœเปˆเบฒเบ™ vDSO. เบ™เบตเป‰เปเบกเปˆเบ™เป„เบงเบเบงเปˆเบฒเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒ, เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบชเบณเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ.

เปƒเบ™ OpenBSD Reader เบ•เบญเบ™เบ™เบตเป‰เปƒเบŠเป‰ arc4random_buf(3).

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆ เบ‚เปเป‰เบ„เบงเบฒเบก เบ”เบฝเบงเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เปเป‰เบ„เบงเบฒเบกเปเบšเบšเบชเบธเปˆเบกเบ—เบตเปˆเบ›เบญเบ”เป„เบžเปƒเบ™เบฅเบฐเบซเบฑเบ”เบฅเบฑเบš.

crypto/rsa

เบชเป‰เบฒเบ‡เบ„เบต เบ•เบญเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเบ„เบงเบฒเบกเบเบฒเบงเบเบฐเปเบˆเบ—เบตเปˆเปœเป‰เบญเบเบเบงเปˆเบฒ 1024 bits เบ–เบทเบเบฎเป‰เบญเบ‡เบ‚เป. เบงเบดเบ—เบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš, เบขเบทเบ™เบขเบฑเบ™, เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เปเบฅเบฐเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เปเบปเบ”เบ•เบญเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเปƒเบŠเป‰เบเบฑเบšเบ‚เบฐเปœเบฒเบ”เบเบฐเปเบˆเปœเป‰เบญเบเบเบงเปˆเบฒ 1024 bits. เบเบฐเปเบˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเบ›เบญเบ”เป„เบž เปเบฅเบฐเบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG rsa1024min=0 เบŸเบทเป‰เบ™เบŸเบนเบžเบถเบ”เบ•เบดเบเปเบฒเป€เบเบปเปˆเบฒ, เปเบ•เปˆเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ Go เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบฎเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ•เบปเบงเบขเปˆเบฒเบ‡เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™ //go:debug rsa1024min=0 เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบ—เบปเบ”เบชเบญเบš. เปƒเปเปˆ เบ•เบปเบงเบขเปˆเบฒเบ‡ GenerateKey เบชเบฐเปœเบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบปเบ”เบชเบญเบš 2024-bit เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เปƒเบŠเป‰.

เบ”เบฝเบงเบ™เบตเป‰เบกเบฑเบ™เบ›เบญเบ”เป„เบžเบเบงเปˆเบฒ เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบเบฒเบ™เป‚เบ—เบซเบฒ PrivateKey.Precompute เบเบฒเบ™ PrivateKey.Validate. เบ›เบฐเบˆเบธเบšเบฑเบ™ precompute เปเบกเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบšเบฒเบ‡เบชเปˆเบงเบ™ PrecomputedValues, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบฐเบเบฑเบ”เบฅเบฐเบซเบฑเบ”เบˆเบฒเบ JSON.

เบ•เบญเบ™เบ™เบตเป‰เปเบžเบฑเบเป€เบเบฑเบ”เบ›เบฐเบ•เบดเป€เบชเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ Validate เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบญเบตเป‰เบ™, เปเบฅเบฐ เบชเป‰เบฒเบ‡เบ„เบต เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเปเบซเบผเปˆเบ‡ Randomness เบ—เบตเปˆเปเบ•เบเบซเบฑเบ. เบ—เบปเปˆเบ‡เบ™เบฒ เบœเบนเป‰เบชเบนเบ‡เบญเบฒเบเบธ ะธ เบ„เบดเบ”เป„เบฅเปˆเบฅเปˆเบงเบ‡เปœเป‰เบฒ เบเบฐเบ”เบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ เบฅเบฐเบซเบฑเบ”เบชเปˆเบงเบ™เบ•เบปเบง เบ•เบญเบ™เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐเบ–เบทเบเบเบงเบ”เบชเบญเบšเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบฒเบ‡เบ„เปˆเบฒเบˆเบฐเบซเบฒเบเป„เบ›. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ crypto/x509 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเบเบฒเบ™เบชเบฐเบเบฑเบ”เป€เบญเบปเบฒเบฅเบฐเบซเบฑเบ” RSA, เบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

SignPKCS1v15 ะธ เบขเบทเบ™เบขเบฑเบ™PKCS1v15 เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ SHA-512/224, SHA-512/256 เปเบฅเบฐ SHA-3.

เบชเป‰เบฒเบ‡เบ„เบต เบ•เบญเบ™เบ™เบตเป‰เปƒเบŠเป‰เบงเบดเบ—เบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ•เบปเบงเป€เบฅเบเบชเปˆเบงเบ™เบ•เบปเบง (เบŸเบฑเบ‡เบŠเบฑเบ™ Carmichael เปเบ—เบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Euler). เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบซเบฒเบเบฒเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบžเบฒเบเบ™เบญเบเบˆเบฒเบเบžเบฝเบ‡เปเบ•เปˆเบ•เบปเบงเป€เบฅเบเบ•เบปเป‰เบ™เบ•เปเบญเบฒเบ”เบˆเบฐเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบ•เปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฐเปเบˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ เปเบฅเบฐเบชเปˆเบงเบ™เบ•เบปเบงเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™เป€เบ–เบดเบ‡เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเปƒเบ™ wasm.

crypto/sha*

crypto/subtle

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆ เบ”เป‰เบงเบDataIndependentTiming เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป€เบงเบฅเบฒเบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ‚เปเป‰เบกเบนเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ‚เบฝเบ™เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ„เบปเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบ”เบตเบ—เบตเปˆเบชเบธเบ”เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™เบฅเบฐเบ”เบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ›เปˆเบฝเบ™เปเบ›เบ‡. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ WithDataIndependentTiming เปƒเบŠเป‰เบšเบดเบ” PSTATE.DIT เปƒเบ™ arm64 เปเบฅเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG dataindependenttiming=1 เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เปเบ” DIT เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ Go เบ—เบฑเบ‡เปเบปเบ”.

เบชเบฐเบซเบฅเบธเบš XORBytes เบ•เป‰เบญเบ‡เบ—เบฑเบšเบŠเป‰เบญเบ™เบเบฑเบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ เบซเบผเบท เบšเปเปˆเบ—เบฑเบ‡เปเบปเบ”เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบžเบถเบ”เบ•เบดเบเปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป€เบ›เบฑเบ™เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ XORBytes เบˆเบฐเบ•เบปเบเปƒเบˆ.

crypto/tls

เบ•เบญเบ™เบ™เบตเป‰เป€เบŠเบตเบšเป€เบงเบต TLS เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบนเบเบ„เป‰เบฒเบชเบฐเบšเบฒเบเบ”เบต (ECH). เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปƒเบ™เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™. Config.EncryptedClientHelloKeys.

เบเบปเบ™โ€‹เป„เบโ€‹เปเบฅเบโ€‹เบ›เปˆเบฝเบ™โ€‹เบเบฐโ€‹เปเบˆ Post-Quantum เปƒเบซเบกเปˆ X25519MLKEM768 เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบฅเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ Config.CurvePreferences เปเบกเปˆเบ™ nil. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG tlsmlkem=0 เบเบฑเบšเบ„เบทเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ” X25519Kyber768Draft00 เบ—เบปเบ”เบฅเบญเบ‡เป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบ.

เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบเบ›เปˆเบฝเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเบŠเบธเบ” crypto/tls. เบชเบฑเปˆเบ‡ Config.CurvePreferences เบ•เบญเบ™เบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ เปเบฅเบฐเป€เบ™เบทเป‰เบญเปƒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ”เบ—เบตเปˆเบˆเบฐเบฅเบงเบกเป€เบญเบปเบฒเป€เบงเบฅเบฒเบ—เบตเปˆเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ–เบทเบเบ•เบทเปˆเบกเปƒเบชเปˆ.

เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบซเบกเปˆ ClientHelloInfo.Extensions เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเบฅเบฐเบšเบธเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเบšเบฒเบเบ”เบตเบฅเบนเบเบ„เป‰เบฒ. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบฒเบเบ™เบดเป‰เบงเบกเบทเบฅเบนเบเบ„เป‰เบฒ TLS.

crypto/x509

เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG x509sha1 เบ–เบทเบเบฅเบถเบšเบญเบญเบเปเบฅเป‰เบง. เบขเบฑเป‰เบ‡เบขเบทเบ™.เบขเบทเบ™เบขเบฑเบ™ เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบฅเบฒเบเป€เบŠเบฑเบ™เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ SHA-1 เบญเบตเบเบ•เปเปˆเป„เบ›.

OID เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.binaryappender ะธ encoding.TextAppender.

เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบฐเป‚เบเบšเบฒเบเปƒเบšเบฎเบฑเบšเบฎเบญเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เบˆเบฒเบ Certificate.PolicyIdentifiers เบชเบธเบ” เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™.เบ™เบฐเป‚เบเบšเบฒเบ. เป€เบกเบทเปˆเบญเบงเบดเป€เบ„เบฒเบฐเปƒเบšเบฎเบฑเบšเบฎเบญเบ‡, เบ—เบฑเบ‡เบชเบญเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆ, เปเบ•เปˆเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเปƒเบšเบฎเบฑเบšเบฎเบญเบ‡, เบžเบงเบเบกเบฑเบ™เบˆเบฐเบ–เบทเบเป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ Certificate.Policies เปเบ—เบ™ Certificate.PolicyIdentifiers. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เบกเบฒเป„เบ”เป‰. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG x509usepolicies=0.

เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ เบ•เบญเบ™เบ™เบตเป‰เบˆเบฐเบชเป‰เบฒเบ‡เปเบฒเบเป€เบฅเบเบŠเบตเบฃเบฝเบงเป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก RFC 5280 เป€เบกเบทเปˆเบญเบœเปˆเบฒเบ™เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเปเบšเบš. Certificate.SerialNumber nil, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ crashing.

เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™.เบขเบทเบ™เบขเบฑเบ™ เบ•เบญเบ™เบ™เบตเป‰เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบ™เบฐเป‚เบเบšเบฒเบเบ•เบฒเบกเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ RFC 5280 เปเบฅเบฐ RFC 9618. เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเปเปˆ VerifyOptions.CertificatePolicies เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบŠเบธเบ”เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบ”เป‰ OIDs. เบžเบฝเบ‡เปเบ•เปˆเบ•เปˆเบญเบ‡เป‚เบชเป‰เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบกเบตเบเบฃเบฒเบŸเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เบˆเบฒเบ เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™.เบขเบทเบ™เบขเบฑเบ™.

MarshalPKCS8PrivateKey เบ•เบญเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปเบ—เบ™เบเบฒเบ™เบ”เบถเบ‡เบฅเบฐเบซเบฑเบ” RSA เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. (MarshalPKCS1PrivateKey เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปเบฅเบฐโ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฐโ€‹เปเบˆโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹.)

ParsePKCS1PrivateKey ะธ ParsePKCS8PrivateKey เบ•เบญเบ™เบ™เบตเป‰เปƒเบŠเป‰ เปเบฅเบฐเบเบงเบ”เบชเบญเบšเบ„เปˆเบฒ CRT เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบฅเป‰เบง, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฐเปเบˆ RSA เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GODEBUG x509rsacrt=0 เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ„เปˆเบฒ CRT เบ„เบทเบ™เปƒเปเปˆ.

debug/elf

Package debug/elf เป€เบžเบตเปˆเบกโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เป„เบซเบง ELF (เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹)โ€‹. เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆ File.DynamicVersions เบชเบปเปˆเบ‡เบ„เบทเบ™เบฅเบฒเบเบŠเบทเปˆเบชเบฐเบšเบฑเบšเป„เบ”เบ™เบฒเบกเบดเบเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ ELF. เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆ File.DynamicVersionNeeds เบชเบปเปˆเบ‡เบ„เบทเบ™เบฅเบฒเบเบŠเบทเปˆเบชเบฐเบšเบฑเบšเป„เบ”เบ™เบฒเบกเบดเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเป„เบŸเบฅเปŒ ELF เบ™เบตเป‰เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบงเบฑเบ”เบ–เบธ ELF เบญเบทเปˆเบ™เป†. เบชเบธเบ”เบ—เป‰เบฒเบ, เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบซเบกเปˆ Symbol.HasVersion ะธ Symbol.VersionIndex เบŠเบตเป‰เบšเบญเบเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ.

เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”

เบชเบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปƒเบซเบกเปˆ TextAppender ะธ BinaryAppender เป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เบณเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ‚เปเป‰เบ„เบงเบฒเบก เบซเบผเบทเบ•เบปเบงเปเบ—เบ™เบ–เบฒเบ™เบชเบญเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเปƒเบ”เปœเบถเปˆเบ‡เปƒเบชเปˆเปƒเบ™เปเบ–เบš byte. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš TextMarshaler ะธ BinaryMarshaler, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบˆเบฑเบ”เบชเบฑเบ™เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เปƒเบซเบกเปˆเปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡, เบžเบงเบเบกเบฑเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบเบปเบ‡เปƒเบชเปˆเบŠเบดเป‰เบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบญเบดเบ™เป€เบ•เบตเป€เบŸเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป‚เบ”เบเบ›เบฐเป€เบžเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเป‰เบง TextMarshaler เปเบฅเบฐ/เบซเบผเบท BinaryMarshaler.

เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”/json

เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡, เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบ•เบปเบงเป€เบฅเบทเบญเบ omitzero เปƒเปเปˆเปƒเบ™เป‚เบ„เบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™เบ–เป‰เบฒเบ„เปˆเบฒเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบชเบนเบ™. เบ–เป‰เบฒเบ›เบฐเป€เบžเบ”เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบกเบต IsZero() เบงเบดเบ—เบตเบเบฒเบ™ bool, เบกเบฑเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบ„เปˆเบฒเปเบกเปˆเบ™เบชเบนเบ™. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบชเบนเบ™เบ–เป‰เบฒเบกเบฑเบ™ เบ„เปˆเบฒ null เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบกเบฑเบ™. เปเบ—เบฑเบเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ omitzero เปเบกเปˆเบ™เบชเบฐเบญเบฒเบ”เบเบงเปˆเบฒ เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปœเป‰เบญเบเบเบงเปˆเบฒเบเบฒเบ™เบฅเบฐเป€เบงเบฑเป‰เบ™เป€เบกเบทเปˆเบญเบ„เบงเบฒเบกเบ•เบฑเป‰เบ‡เปƒเบˆเบ—เบตเปˆเบˆเบฐเบเบปเบเป€เบฅเบตเบเบ„เปˆเบฒ null. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบšเปเปˆเบ„เบทเบเบฑเบš omitempty, omitzero omits zeros time.time เบ„เบธเบ™เบ„เปˆเบฒ, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒ.

เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡ omitempty เปเบฅเบฐ omitzero เบ–เบทเบเบฅเบฐเบšเบธ, เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™เบ–เป‰เบฒเบ„เปˆเบฒเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ เบซเบผเบทเบชเบนเบ™ (เบซเบผเบทเบ—เบฑเบ‡เบชเบญเบ‡).

UnmarshalTypeError.Field เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบเบญเบšเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปƒเบ™เบ•เบปเบงเป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบเบงเปˆเบฒ.

go/types

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™ go/types เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ„เบนเปˆ, เป€เบŠเบฑเปˆเบ™: Len() int เปเบฅเบฐ At(int) T, เบ•เบญเบ™เบ™เบตเป‰เบเบฑเบ‡เบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒ iterators, เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

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

เบเปˆเบฝเบงเบเบฑเบšเบญเบฑเบ™เบ™เบตเป‰:

เบชเปเบฒเบฅเบฑเบš param := range fn.Signature().params().variables() { use(param) }

เบงเบดเบ—เบตเบเบฒเบ™: Interface.Embedded Types Interface.ExplicitMethods เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš.เบงเบดเบ—เบตเบเบฒเบ™ MethodSet.Methods เบŠเบทเปˆ.เบงเบดเบ—เบตเบเบฒเบ™ เบ‚เบญเบšเป€เบ‚เบ”.เป€เบ”เบฑเบเบ™เป‰เบญเบ Structure.Fields Tuple.Variables TypeList.Types TypeParamList.TypeParams เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚

hash/*

  • 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: เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เปƒเบซเบกเปˆโ€‹ เบ›เบฝเบšเบ—เบฝเบš ะธ เบ‚เบฝเบ™เบ›เบฝเบšเบ—เบฝเบšเป„เบ”เป‰ เบชเบฒเบกเบฒเบ”เบ„เบดเบ”เป„เบฅเปˆ hash เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเปƒเบ”เป†เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฝเบšเบ—เบฝเบšเป„เบ”เป‰. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” hash เบชเบดเปˆเบ‡เปƒเบ”เปเบ”เปˆเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฐเปเบˆเบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก Go.

เบšเบฑเบ™เบ—เบถเบ/slog

เปƒเปเปˆ เบกเบทเบ–เบดเป‰เบก เปเบกเปˆเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเป€เบ„เบตเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ เปเบฅเบฐเบ›เบฐเบ–เบดเป‰เบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบชเบฐเป€เปเบต.

เบฅเบฐเบ”เบฑเบš ะธ LevelVar เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.TextAppender.

เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”/*

เบชเบธเบ”เบ—เบด

ListenCondig เบ”เบฝเบงเบ™เบตเป‰เปƒเบŠเป‰ MPTCP เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš (เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ Linux).

IP เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.TextAppender.

net/http

เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹ เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡ เบเบฑเบšเบเบฒเบ™เบ•เบญเบšเบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™ 1xx เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ™เบตเป‰เบˆเบฐเบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบซเบผเบฒเบเบเบงเปˆเบฒ 5 1xx. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบ„เปเบฒเบ•เบญเบš 1xx เป€เบเบตเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ config. Transport.MaxResponseHeaderBytes.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบกเบต hook เบ•เบดเบ”เบ•เบฒเบก net/http/httptrace.ClientTrace.Got1xxResponse, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเบ•เบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ” 1xx. Got1xxResponse hook เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบžเบทเปˆเบญเบขเบธเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป.

เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡ ะธ Server เบ•เบญเบ™เบ™เบตเป‰เบกเบตเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ HTTP2 เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HTTP/2 protocol.

เบ—เบปเปˆเบ‡เบ™เบฒเปƒเบซเบกเปˆ Server.Protocols ะธ Transport.Protocols เปƒเบซเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HTTP protocols เบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบผเบทเบฅเบนเบเบ„เป‰เบฒเปƒเบŠเป‰.

เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบฅเบนเบเบ‚เปˆเบฒเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ HTTP/2 เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ Server.Protocols เบกเบต UnencrypterHTTP2, เป€เบŠเบตเบšเป€เบงเบตเบˆเบฐเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ HTTP/2 เปƒเบ™เบžเบญเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”. เป€เบŠเบตเบšเป€เบงเบตเบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเบ—เบฑเบ‡ HTTP/1 เปเบฅเบฐ HTTP/2 เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบขเบนเปˆเปƒเบ™เบžเบญเบ”เบ”เบฝเบงเบเบฑเบ™.

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ Transport.Protocols เบกเบต UnencryptedHTTP2 เปเบฅเบฐเบšเปเปˆเบกเบต HTTP1, เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เบˆเบฐเปƒเบŠเป‰ HTTP/2 เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบšเบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ. http://. เบ–เป‰เบฒเบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เปƒเบŠเป‰เบ—เบฑเบ‡ HTTP/1 เปเบฅเบฐ HTTP/2 เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เบกเบฑเบ™เบˆเบฐเปƒเบŠเป‰ HTTP/1.

เบฎเบญเบ‡เบฎเบฑเบš HTTP/2 เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบŠเป‰ "HTTP/2 เบเบฑเบš Forward-Learning" (RFC 9113, เบžเบฒเบ 3.3). เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบชเปˆเบงเบ™เบซเบปเบง โ€œเบญเบฑเบšเป€เบเบฃเบ”: h2cโ€ เบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบ.

net/netip

Addr, AddrPort ะธ Prefix เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.binaryappender ะธ encoding.TextAppender.

เบชเบธเบ”เบ—เบด/url

URL เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.binaryappender.

os/เบœเบนเป‰เปƒเบŠเป‰

ะ’ Windows เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เบ”เบฝเบงเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™ Windows เป€เบŠเบตเบšเป€เบงเบต Nano. เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบญเบฑเบšเป€เบ”เบ”เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” NetApi32, เป€เบŠเบดเปˆเบ‡เบ‚เบฒเบ”เบซเบฒเบเป„เบ›เบˆเบฒเบ Nano Server.

ะ’ Windows เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ„เบปเป‰เบ™เบซเบฒ ะธ LookupId เบ•เบญเบ™เบ™เบตเป‰เบฎเบญเบ‡เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบšเปเบฅเบดเบเบฒเบ™เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ•เบปเบงเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบฅเบฐเบšเบปเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ NT
  • NT เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบญเปเบฒโ€‹เบ™เบฒเบ”โ€‹เบเบฒเบ™โ€‹เบ›เบปเบโ€‹เบ„เบญเบ‡โ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™โ€‹
  • เบšเปเบฅเบดเบเบฒเบ™ NT AUTHORITYNETWORK

ะ’ Windows เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ›เบฐเบˆเบธเบšเบฑเบ™เป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบฑเบšเป‚เบ”เป€เบกเบ™เบ—เบตเปˆเบŠเป‰เบฒ, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเบกเปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡ milliseconds, เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบงเบดเบ™เบฒเบ—เบต, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบ™เบฒเบ—เบต, เป€เบžเบทเปˆเบญเบชเปเบฒเป€เบฅเบฑเบ”.

ะ’ Windows เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เบ•เบญเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบกเบทเปˆเบญเบเบฐเบ—เบนเป‰เบ›เบฐเบˆเบธเบšเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบ›เบญเบกเบ•เบปเบงเป€เบ›เบฑเบ™เบœเบนเป‰เปƒเบŠเป‰เบญเบทเปˆเบ™. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”.

regexp

Regexp เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.TextAdapter.

runtime

เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡ GOROOT เบ•เบญเบ™เบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เปเบฅเป‰เบง. เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปƒเบซเบกเปˆเบเบงเปˆเบฒ, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบฐเบšเบปเบšเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ” "go" binary, เปเบฅเบฐเปƒเบŠเป‰ go env GOROOT เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ” GOROOT.

strings

Package strings เป€เบžเบตเปˆเบกเบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš iterators:

  • เป€เบชเบฑเป‰เบ™ เปƒเบซเป‰เบœเบปเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเบขเบฑเปˆเบ‡เบŠเป‰เบณเปƒเบ™เปเบ–เบงเปƒเปเปˆเบ—เบตเปˆเปเบเบเบญเบญเบเป€เบ›เบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡.
  • เปเบšเปˆเบ‡เปเบเบ เบชเบปเปˆเบ‡เบ„เปˆเบฒเบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ—เบ™เบ•เบปเบงเบซเบเปเป‰เบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เบเปˆเบญเบเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเปเบเบเบ”เป‰เบงเบเบ•เบปเบงเปเบเบ.
  • SplitAfterSeq เปƒเบซเป‰เบœเบปเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเบซเบเปเป‰เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบเปˆเบญเบเบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เปƒเบ”เปœเบถเปˆเบ‡, เปเบเบเบซเบผเบฑเบ‡เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบ•เบปเบงเปเบเบ.
  • FieldsSeq เบชเบปเปˆเบ‡เบ„เบทเบ™เบ•เบปเบงเบซเบเปเป‰เบ‚เบญเบ‡เบชเบฒเบเบเปˆเบญเบเบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เบญเป‰เบญเบกเบฎเบญเบšเบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡, เบ•เบฒเบกเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰unicode.IsSpace
  • FieldsFuncSeq เปƒเบซเป‰เบœเบปเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเบซเบเปเป‰เบ‚เบญเบ‡เบชเบฒเบเบเปˆเบญเบเบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เบ•เบฒเบกเบฅเบณเบ”เบฑเบšเบ‚เบญเบ‡เบˆเบธเบ”เบฅเบฐเบซเบฑเบ” Unicode เบ—เบตเปˆเบ•เบญเบšเบชเบฐเปœเบญเบ‡เป„เบ”เป‰เบ•เบฒเบกเบเบณเบ™เบปเบ”.

เบŠเบดเบ‡

ะ ะตะฐะปะธะทะฐั†ะธั sync.map เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบŠเบธเบ” disjoint เปเบกเปˆเบ™เบกเบตเบซเบ™เป‰เบญเบเบฅเบปเบ‡เปƒเบ™เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเปƒเบซเบเปˆ, เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเบšเบฑเบ™เบฅเบธเบเบฒเบ™เป‚เบซเบผเบ”เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบ•เปเปˆเบฒ.

เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบžเบปเบšเบšเบฑเบ™เบซเบฒเปƒเบ”เป†, เปƒเบซเป‰เบ•เบฑเป‰เบ‡ GOEXPERIMENT=nosynchashtriemap เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเบเบฑเบšเบ„เบทเบ™เป„เบ›เปƒเบŠเป‰เปเบšเบšเป€เบเบปเปˆเบฒ เปเบฅเบฐเบเบฐเบฅเบธเบ™เบฒ เบ•เบทเปˆเบกเปเบšเบšเบŸเบญเบกเบšเบฑเบ™เบซเบฒ.

เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบš

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆ T.Context ะธ B. เป€เบ™เบทเป‰เบญเปƒเบ™ เบเบฑเบšเบ„เบทเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเบฐเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš.

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆ T.Chdir ะธ B.Chdir เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบซเบผเบท benchmark.

เบ‚เปเป‰เบ„เบงเบฒเบก/เปเบกเปˆเปเบšเบš

เบ”เบฝเบงเบ™เบตเป‰เปเบกเปˆเปเบšเบšเบฎเบญเบ‡เบฎเบฑเบš range-over-func เปเบฅเบฐ range-over-int.

เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ

เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš encoding.binaryappender ะธ encoding.TextAppender.

เบžเบญเบ”

Linux

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบ„เบตเบเป€เบ›เบฑเบ™ เบ›เบฐโ€‹เบเบฒเบ” เปƒเบ™เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ›เปˆเบญเบ Go 1.23, Go 1.24 เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบซเบผเบฑเบ Linux เป€เบงเบตเบŠเบฑเบ™ 3.2 เบซเบผเบท เปƒเปเปˆเบเบงเปˆเบฒ.

Darwin

Go 1.24 เป€เบ›เบฑเบ™เบฅเบธเป‰เบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ‡เบฒเบ™เปƒเบ™ macOS 11 Big Sur. Go 1.25 เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ macOS 12 Monterey เบซเบผเบทเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™.

เบเบฒเบ™เบ›เบฐเบเบญเบšเป€เบงเบฑเบš

เบ„เปเบฒเบชเบฑเปˆเบ‡ compiler go:wasmexport เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Go เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบญเบญเบเบŸเบฑเบ‡เบŠเบฑเบ™เป„เบ›เบซเบฒเป€เบˆเบปเป‰เบฒเบžเบฒเบš WebAssembly.

เปƒเบ™ WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm), Go 1.24 เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ›เบฃเปเบเบก Go เป€เบ›เบฑเบ™ เป€เบ•เบปเบฒเบ›เบฐเบ•เบดเบเบญเบ™ / เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธเบ—เบธเบ‡ build -buildmode=c-shared.

เบ›เบฐเป€เบžเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™ argument เบซเบผเบทเบ›เบฐเป€เบžเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ go:wasmimport. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, bool, string, uintptr เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ” (เป€เบšเบดเปˆเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปƒเบ™ เป€เบญเบเบฐเบชเบฒเบ™), เบžเป‰เบญเบกเบเบฑเบšเบˆเบณเบ™เบงเบ™ 32-bit เปเบฅเบฐ 64-bit เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบˆเบธเบ”เบฅเบญเบ, เปเบฅเบฐ unsafe.Pointer, เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบฅเป‰เบง. เบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™ argument เบซเบผเบทเบ›เบฐเป€เบžเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ go:wasmexport.

เป„เบŸเบฅเปŒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš WebAssembly เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ› lib/wasm เบˆเบฒเบ misc/wasm.

เบฎเบญเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เปเบกเปˆเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ WebAssembly เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ.

Windows

เบ›เปˆเบญเบ‡เบ›เปˆเบญเบ‡/เปเบ‚เบ™ 32-เบšเบดเบ” (GOOS=windows GOARCH=arm) เบ–เบทเบเปเบฒเบเบงเปˆเบฒเปเบ•เบเปเบฅเป‰เบง. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปƒเบ™ #70705

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster