గో భాష యొక్క కొత్త విడుదల, వెర్షన్ 1.24, ఆరు నెలల తర్వాత వస్తుంది. 1.23 కి వెళ్ళండి. చాలా మార్పులు టూల్చెయిన్, రన్టైమ్ మరియు లైబ్రరీల అమలులో ఉన్నాయి. ఎప్పటిలాగే, విడుదల అందిస్తుంది అనుకూలత యొక్క వాగ్దానం గో 1. దాదాపు అన్ని గో ప్రోగ్రామ్లు మునుపటిలాగా కంపైల్ చేయబడి అమలు చేయబడతాయని భాషా రూపకర్తలు భావిస్తున్నారు.
భాషలో మార్పులు
గో 1.24 ఇప్పుడు పూర్తిగా మద్దతు ఇస్తుంది సాధారణ రకం మారుపేర్లు: ఒక రకం అలియాస్ను డిక్లేర్డ్ రకంగా పారామితి చేయవచ్చు. వివరాలు భాషా వివరణలు. ప్రస్తుతానికి, ఈ లక్షణాన్ని GOEXPERIMENT=noaliastypeparams సెట్ చేయడం ద్వారా నిలిపివేయవచ్చు; అయితే, గో 1.25 లో అలియాస్టైప్పారామ్స్ ఎంపిక తీసివేయబడుతుంది.
సాధన
గో కమాండ్
గో మాడ్యూల్స్ ఇప్పుడు go.mod లోని టూల్ డైరెక్టివ్ ఉపయోగించి ఎక్జిక్యూటబుల్ డిపెండెన్సీలను ట్రాక్ చేయగలవు. ఇది సాధారణంగా “tools.go” అని పిలువబడే ఫైల్లో ఖాళీ దిగుమతులుగా సాధనాలను జోడించే మునుపటి పరిష్కారం యొక్క అవసరాన్ని తొలగిస్తుంది. గో టూల్ కమాండ్ ఇప్పుడు గోతో వచ్చే టూల్స్తో పాటు ఈ టూల్స్ను రన్ చేయగలదు. మరిన్ని వివరాలకు ఇక్కడ చూడవచ్చు డాక్యుమెంటేషన్.
go get కోసం కొత్త -tool ఫ్లాగ్ require డైరెక్టివ్లను జోడించడంతో పాటు పేర్కొన్న ప్యాకేజీల కోసం ప్రస్తుత మాడ్యూల్కు టూల్ డైరెక్టివ్లను జోడించడానికి కారణమవుతుంది.
కొత్త మెటా-నమూనా సాధనం ప్రస్తుత మాడ్యూల్లోని అన్ని సాధనాలను సూచిస్తుంది. దీని ద్వారా వాటన్నింటినీ గో గెట్ టూల్ ద్వారా అప్డేట్ చేయవచ్చు లేదా గో ఇన్స్టాల్ టూల్ ద్వారా మీ గోబిన్ డైరెక్టరీలో ఇన్స్టాల్ చేయవచ్చు.
గో రన్ ద్వారా సృష్టించబడిన ఎక్జిక్యూటబుల్స్ మరియు కొత్త గో టూల్ ప్రవర్తన ఇప్పుడు గో బిల్డ్ కాష్లో కాష్ చేయబడ్డాయి. పెరిగిన కాష్ కారణంగా ఇది పదే పదే లాంచ్లను సాధ్యం చేస్తుంది. #69290.
గో బిల్డ్ మరియు గో ఇన్స్టాల్ కమాండ్లు ఇప్పుడు -json ఫ్లాగ్ను అంగీకరిస్తాయి, ఇది బిల్డ్ అవుట్పుట్ మరియు ఎర్రర్లను ప్రామాణిక అవుట్పుట్లో స్ట్రక్చర్డ్ JSON అవుట్పుట్గా నివేదిస్తుంది. ఫార్మాట్ వివరాలను go help buildjson లో చూడవచ్చు.
ఇంకా, గో టెస్ట్ -json ఇప్పుడు JSON పరీక్ష ఫలితంతో కలిపి JSONలో అవుట్పుట్ మరియు బిల్డ్ ఎర్రర్లను నివేదిస్తుంది. వాటిని కొత్త యాక్షన్ రకాల ద్వారా వేరు చేయవచ్చు, కానీ అవి పరీక్ష ఇంటిగ్రేషన్ సిస్టమ్లో సమస్యలను కలిగిస్తే, మీరు బిల్డ్ యొక్క టెక్స్ట్ అవుట్పుట్కు తిరిగి రావచ్చు GODEBUG సెటప్ గోటెస్ట్జ్సన్ బిల్డ్ టెక్స్ట్=1.
కొత్త GOAUTH ఎన్విరాన్మెంట్ వేరియబుల్ ప్రైవేట్ మాడ్యూల్ పుల్లను ప్రామాణీకరించడానికి అనువైన మార్గాన్ని అందిస్తుంది. మీరు గో హెల్ప్ గోత్లో వివరాలను చూడవచ్చు.
గో బిల్డ్ కమాండ్ ఇప్పుడు ఇన్స్టాల్ చేయబడింది. ప్రధాన మాడ్యూల్ యొక్క వెర్షన్ కంపైల్ చేయబడిన బైనరీలో, ట్యాగ్ మరియు/లేదా వెర్షన్ కంట్రోల్ కమిట్ ఆధారంగా. కట్టుబడి లేని మార్పులు ఉంటే +dirty ప్రత్యయం జోడించబడుతుంది. -buildvcs=false ఫ్లాగ్ని బైనరీ నుండి వెర్షన్ నియంత్రణ సమాచారాన్ని మినహాయించడానికి ఉపయోగించవచ్చు.
కొత్త GODEBUG సెటప్ టూల్చెయిన్ట్రేస్=1 ఇప్పుడు go కమాండ్లో టూల్చెయిన్ ఎంపిక ప్రక్రియను ట్రాక్ చేయడానికి ఉపయోగించవచ్చు.
Cgo
రన్టైమ్ పనితీరును మెరుగుపరచడానికి C ఫంక్షన్ల కోసం Cgo కొత్త ఉల్లేఖనాలకు మద్దతు ఇస్తుంది. #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 సాధనం ఇప్పుడు 64-బిట్ LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64), మరియు S390X (GOARCH=s390x) లలో డిస్అసెంబుల్ చేయడానికి మద్దతు ఇస్తుంది.
వెట్
కొత్త టెస్ట్ ఎనలైజర్ టెస్ట్ సూట్లలో టెస్ట్, ఫజర్, బెంచ్మార్క్ మరియు ఉదాహరణ డిక్లరేషన్లలో సాధారణ లోపాలను నివేదిస్తుంది, ఉదాహరణకు తప్పుగా రూపొందించబడిన పేర్లు, చెల్లని సంతకాలు లేదా ఉనికిలో లేని ఐడెంటిఫైయర్లను డాక్యుమెంట్ చేసే ఉదాహరణలు. ఈ లోపాలలో కొన్ని పరీక్షలు విఫలమవడానికి కారణం కావచ్చు.
ఇప్పటికే ఉన్న printf పార్సర్ ఇప్పుడు fmt.Printf(s) ఫారమ్ యొక్క కాల్స్ కోసం డయాగ్నస్టిక్స్ను నివేదిస్తుంది, ఇక్కడ s అనేది ఇతర ఆర్గ్యుమెంట్లు లేని స్థిరమైన ఫార్మాట్ స్ట్రింగ్. s విలువ % అక్షరాన్ని కలిగి ఉండటం వలన అటువంటి కాల్స్ దాదాపు ఎల్లప్పుడూ ఒక లోపంగా ఉంటాయి; బదులుగా fmt.Print ఉపయోగించండి. 60529. ఈ తనిఖీ ఇప్పటికే ఉన్న కోడ్లోని విషయాలను కనుగొంటుంది మరియు అందువల్ల భాషా వెర్షన్ (go.mod ఫైల్ యొక్క go డైరెక్టివ్ లేదా `//go:build` వ్యాఖ్యల ద్వారా పేర్కొన్నట్లుగా) కనీసం Go 1.24 అయినప్పుడు మాత్రమే వర్తించబడుతుంది, Go 1.24 టూల్చైన్కి అప్గ్రేడ్ చేసేటప్పుడు దీర్ఘకాల ఇంటిగ్రేషన్ బ్రేక్లు ఏర్పడకుండా ఉండటానికి.
తప్పు బిల్డ్ట్యాగ్ ఉన్నప్పుడు ఇప్పటికే ఉన్న బిల్డ్ట్యాగ్ ఎనలైజర్ ఇప్పుడు డయాగ్నస్టిక్లను నివేదిస్తుంది. పాత వెర్షన్ నిర్మాణ పరిమితి //go:build డైరెక్టివ్లోకి వెళ్లండి. ఉదాహరణకు, //go:build go1.23.1 అనేది పాయింట్ విడుదలను సూచిస్తుంది; బదులుగా //go:build go1.23 ని ఉపయోగించండి. #64127.
i := iter() వంటి ట్రిపుల్ “for” లూప్లో వేరియబుల్ ప్రకటించబడినప్పుడు, ఇప్పటికే ఉన్న కాపీలాక్ ఎనలైజర్ ఇప్పుడు డయాగ్నస్టిక్ను నివేదిస్తుంది; పూర్తయింది(i); i = తదుపరి(i) { … }, sync.Mutex వంటి sync.Lockerని కలిగి ఉంటుంది. 1.22 కి వెళ్ళండి ప్రతి పునరావృతం కోసం కొత్త వేరియబుల్ను సృష్టించడానికి అటువంటి లూప్ల ప్రవర్తనను మార్చారు, మునుపటి పునరావృతం నుండి విలువలను కాపీ చేశారు; ఈ కాపీయింగ్ లాక్లకు సురక్షితం కాదు. #66387.
గోకాచెప్రోగ్
cmd/go సాధనం మరియు GOCACHEPROG ఎన్విరాన్మెంట్ వేరియబుల్ ద్వారా పేరు పెట్టబడిన చైల్డ్ ప్రాసెస్ మధ్య JSON ప్రోటోకాల్ను అమలు చేసే చైల్డ్ ప్రాసెస్ల ద్వారా ఇప్పుడు అంతర్గత cmd/go బైనరీ మరియు టెస్ట్ కాషింగ్ మెకానిజంను అమలు చేయవచ్చు. గతంలో ఇది GOEXPERIMENT కోసం ఉండేది. ప్రోటోకాల్ వివరాలను ఇక్కడ చూడవచ్చు డాక్యుమెంటేషన్.
పూర్తయ్యే సమయం
ప్రాతినిధ్య బెంచ్మార్క్ల సమితిలో అనేక రన్టైమ్ పనితీరు మెరుగుదలలు CPU ఓవర్హెడ్ను సగటున 2-3% తగ్గించాయి. అప్లికేషన్ను బట్టి ఫలితాలు మారవచ్చు. ఈ మెరుగుదలలలో కొత్త అంతర్నిర్మిత మ్యాప్ అమలు ఉంది, దీని ఆధారంగా స్వీడిష్ టేబుల్స్, చిన్న ఆబ్జెక్ట్ మెమరీ యొక్క మరింత సమర్థవంతమైన కేటాయింపు మరియు మ్యూటెక్స్ యొక్క కొత్త అంతర్గత రన్టైమ్ అమలు.
కొత్త అంతర్నిర్మిత మ్యాప్ అమలు మరియు కొత్త అంతర్గత రన్టైమ్ మ్యూటెక్స్ను నిర్మాణ సమయంలో వరుసగా GOEXPERIMENT=noswissmap మరియు GOEXPERIMENT=nospinbitmutex సెట్ చేయడం ద్వారా నిలిపివేయవచ్చు.
కంపైలర్
cgo ద్వారా ఉత్పత్తి చేయబడిన రిసీవర్ రకాలతో కొత్త పద్ధతులను నిర్వచించడాన్ని కంపైలర్ ఇప్పటికే నిషేధించింది, కానీ టైప్ అలియాస్ ద్వారా ఈ పరిమితిని అధిగమించడం సాధ్యమైంది. రిసీవర్ ప్రత్యక్షంగా లేదా పరోక్షంగా (టైప్ అలియాస్ ద్వారా) cgo-జనరేటెడ్ రకాన్ని సూచిస్తే Go 1.24 ఇప్పుడు ఎల్లప్పుడూ లోపాన్ని నివేదిస్తుంది.
లింకర్
లింకర్ ఇప్పుడు ELF ప్లాట్ఫారమ్లపై GNU బిల్డ్ ఐడెంటిఫైయర్ (ELF ఎంట్రీ NT_GNU_BUILD_ID)ని మరియు డిఫాల్ట్గా macOSలో UUID (Mach-O లోడ్ కమాండ్ LC_UUID)ని ఉత్పత్తి చేస్తుంది. బిల్డ్ ID లేదా UUID అనేది గో బిల్డ్ ID నుండి తీసుకోబడింది. దీనిని -B none లింకర్ ఫ్లాగ్తో ఆఫ్ చేయవచ్చు లేదా వినియోగదారు పేర్కొన్న హెక్సాడెసిమల్ విలువతో -B 0xNNNN లింకర్ ఫ్లాగ్తో ఓవర్రైడ్ చేయవచ్చు.
ప్రమోషన్
లో పేర్కొన్న విధంగా గో 1.22 విడుదల నోట్స్, Go 1.24 కి ఇప్పుడు Go 1.22.6 లేదా తరువాత ఇన్స్టాల్ అవసరం. డెవలపర్లు గో 1.26 ని విడుదల చేయడానికి గో 1.24 లేదా తరువాత పాయింట్ విడుదల అవసరమని భావిస్తున్నారు.
ప్రామాణిక లైబ్రరీ
డైరెక్టరీ-నిరోధిత ఫైల్ సిస్టమ్ యాక్సెస్
కొత్త రకం os.రూట్ నిర్దిష్ట డైరెక్టరీలో ఫైల్ సిస్టమ్ కార్యకలాపాలను నిర్వహించే సామర్థ్యాన్ని అందిస్తుంది.
ఫంక్షన్ os.ఓపెన్ రూట్ డైరెక్టరీని తెరిచి తిరిగి వస్తుంది os.రూట్. పద్ధతులు os.రూట్ ఆ డైరెక్టరీలో పనిచేస్తాయి మరియు డైరెక్టరీ వెలుపల ఉన్న స్థానాలను సూచించడానికి మార్గాలను అనుమతించవు, డైరెక్టరీ వెలుపల ఉన్న సింబాలిక్ లింక్లను అనుసరించే వాటితో సహా. os.Root లోని పద్ధతులు os ప్యాకేజీలో అందుబాటులో ఉన్న చాలా ఫైల్సిస్టమ్ ఆపరేషన్లను ప్రతిబింబిస్తాయి, ఉదాహరణకు, os.Root.ఓపెన్, os.రూట్.క్రియేట్, os.Root.Mkdir и os.రూట్.స్టాట్.
కొత్త బెంచ్మార్క్ ఫీచర్
బెంచ్మార్క్లు ఇప్పుడు వేగవంతమైన, తక్కువ దోష-ప్రమాదకర పద్ధతిని ఉపయోగించవచ్చు పరీక్ష.బి.లూప్ bN పరిధి కోసం bN లాంటి సాధారణ లూప్ నిర్మాణాలకు బదులుగా b.Loop() { ... } వంటి బెంచ్మార్క్పై పునరావృతం చేయడానికి ఇది రెండు ముఖ్యమైన ప్రయోజనాలను అందిస్తుంది:
- బెంచ్మార్క్ ఫంక్షన్ ప్రతి -కౌంట్కు సరిగ్గా ఒకసారి అమలు చేయబడుతుంది, కాబట్టి ఖరీదైన సెటప్ మరియు శుభ్రపరిచే దశలు ఒక్కసారి మాత్రమే నిర్వహించబడతాయి.
- ఫంక్షన్ కాల్ పారామితులు మరియు ఫలితాలు అలాగే ఉంటాయి, కంపైలర్ లూప్ బాడీని పూర్తిగా ఆప్టిమైజ్ చేయకుండా నిరోధిస్తుంది.
మెరుగైన ఫైనలైజర్లు
కొత్త కథనం రన్టైమ్.యాడ్ క్లీనప్ కంటే మరింత సరళమైనది, మరింత సమర్థవంతమైనది మరియు తక్కువ దోష-ప్రమాదకరం అయిన పూర్తి యంత్రాంగం రన్టైమ్.సెట్ఫైనలైజర్. యాడ్క్లీనప్ ఒక ఆబ్జెక్ట్కు క్లీనప్ ఫంక్షన్ను జత చేస్తుంది, ఆ ఆబ్జెక్ట్ అందుబాటులోకి రాగానే అది అమలు చేయబడుతుంది. అయితే, సెట్ఫైనలైజర్ మాదిరిగా కాకుండా, బహుళ క్లీనప్లను ఒకే వస్తువుకు జోడించవచ్చు, క్లీనప్లను అంతర్గత పాయింటర్లకు జోడించవచ్చు, క్లీనప్లు సాధారణంగా వస్తువులు ఒక చక్రంగా ఏర్పడినప్పుడు లీక్లకు కారణం కావు మరియు క్లీనప్లు వస్తువు లేదా అది సూచించే వస్తువుల డీలోకేషన్ను ఆలస్యం చేయవు. కొత్త కోడ్ SetFinalizer కంటే AddCleanup కి ప్రాధాన్యత ఇవ్వాలి.
కొత్త బలహీన ప్యాకేజీ
కొత్త ప్యాకేజీ బలహీనమైన బలహీనమైన సూచనలను అందిస్తుంది.
బలహీనమైన పాయింటర్లు అనేవి మెమరీ-సమర్థవంతమైన నిర్మాణాలను సృష్టించడానికి అందించబడిన తక్కువ-స్థాయి ఆదిమ పదార్థాలు, ఉదాహరణకు మ్యాపింగ్ విలువల కోసం బలహీనమైన నిఘంటువులు, ప్యాకేజీ పరిధిలోకి రాని దేనికైనా కానానికలైజేషన్ నిఘంటువులు. ఏకైక, మరియు వివిధ రకాల కాష్లు. ఈ వినియోగ సందర్భాలకు మద్దతు ఇవ్వడానికి, ఈ విడుదల కూడా అందిస్తుంది రన్టైమ్.యాడ్ క్లీనప్ и maphash.పోల్చదగినది.
కొత్త క్రిప్టో/ఎంఎల్కెమ్ ప్యాకేజీ
కొత్త ప్యాకేజీ క్రిప్టో/ఎంఎల్కెమ్ ML-KEM-768 మరియు ML-KEM-1024 లను అమలు చేస్తుంది.
ML-KEM అనేది పోస్ట్-క్వాంటం కీ ఎక్స్ఛేంజ్ మెకానిజం, దీనిని గతంలో కైబర్ అని పిలిచేవారు మరియు దీనిలో పేర్కొనబడింది FIPS 203.
కొత్త ప్యాకేజీలు crypto/hkdf, crypto/pbkdf2 మరియు crypto/sha3
కొత్త ప్యాకేజీ క్రిప్టో/హెచ్కెడిఎఫ్ నిర్వచించిన విధంగా HMAC-ఆధారిత “ఎక్స్ట్రాక్ట్-అండ్-ఎక్స్పాండ్” కీ డెరివేషన్ ఫంక్షన్ HKDFని అమలు చేస్తుంది RFC 5869.
కొత్త ప్యాకేజీ క్రిప్టో/పిబికెడిఎఫ్2 నిర్వచించిన విధంగా పాస్వర్డ్-ఆధారిత కీ డెరివేషన్ ఫంక్షన్ PBKDF2 ను అమలు చేస్తుంది RFC 8018.
కొత్త ప్యాకేజీ క్రిప్టో/షా3 నిర్వచించిన విధంగా SHA-3 హాష్ ఫంక్షన్ మరియు SHAKE మరియు cSHAKE ఎక్స్టెన్సిబుల్ అవుట్పుట్ ఫంక్షన్లను అమలు చేస్తుంది. FIPS 202.
మూడు ప్యాకేజీలు ఇప్పటికే ఉన్న golang.org/x/crypto/… ప్యాకేజీలపై ఆధారపడి ఉంటాయి.
FIPS 140-3 వర్తింపు
ఈ విడుదలలో ఇవి ఉన్నాయి FIPS 140-3 సమ్మతిని నిర్ధారించడానికి కొత్త యంత్రాంగాల సమితి.
గో క్రిప్టో మాడ్యూల్ అనేది FIPS 140-3 ఆమోదించబడిన అల్గారిథమ్లను అమలు చేయడానికి పారదర్శకంగా ఉపయోగించబడే అంతర్గత ప్రామాణిక లైబ్రరీ ప్యాకేజీల సమితి. ఆమోదించబడిన అల్గోరిథంల కోసం గో క్రిప్టో మాడ్యూల్ను ఉపయోగించడానికి అనువర్తనాలకు మార్పులు అవసరం లేదు.
కొత్త ఎన్విరాన్మెంట్ వేరియబుల్ GOFIPS140 ను బిల్డ్లో ఉపయోగించడానికి గో క్రిప్టో మాడ్యూల్ యొక్క వెర్షన్ను ఎంచుకోవడానికి ఉపయోగించవచ్చు. కొత్తది GODEBUG సెటప్ రన్టైమ్లో FIPS 140-140 మోడ్ను ప్రారంభించడానికి fips3ని ఉపయోగించవచ్చు.
గో 1.24 లో గో క్రిప్టో మాడ్యూల్ v1.0.0 ఉంది, ఇది ప్రస్తుతం CMVP- గుర్తింపు పొందిన ల్యాబ్తో పరీక్షించబడుతోంది.
కొత్త ప్రయోగాత్మక ప్యాకేజీ పరీక్ష/సింక్టెస్ట్
కొత్త ప్రయోగాత్మక ప్యాకేజీ పరీక్ష/సింక్టెస్ట్ ఏకకాలిక కోడ్ను పరీక్షించడానికి మద్దతును అందిస్తుంది.
- ఫంక్షన్ సింక్టెస్ట్.రన్ ఒక వివిక్త "బుడగ"లో గోరౌటిన్ల సమూహాన్ని నడుపుతుంది. ప్యాకేజీ ఫంక్షన్ యొక్క బబుల్లో సమయం తప్పుడు గడియారాలపై పనిచేస్తాయి.
- విధులు సింక్టెస్ట్.వెయిట్ ప్రస్తుత బబుల్లో అన్ని గోరౌటిన్లు బ్లాక్ అయ్యే వరకు వేచి ఉండండి.
వివరాలను ప్యాకేజీ డాక్యుమెంటేషన్లో చూడవచ్చు.
సమకాలీకరణ ప్యాకేజీ ప్రయోగాత్మకమైనది మరియు GOEXPERIMENT=synctest ని సెట్ చేయడం ద్వారా ప్రారంభించబడాలి. భవిష్యత్ విడుదలలలో ప్యాకేజీ API మారవచ్చు. వి #67434 మీరు మరిన్ని వివరాలను చూడవచ్చు మరియు అభిప్రాయాన్ని అందించవచ్చు.
లైబ్రరీలో స్వల్ప మార్పులు
ఆర్కైవ్
ఆర్కైవ్/జిప్ మరియు ఆర్కైవ్/టార్లోని (*రైటర్.AddFS) అమలులు ఇప్పుడు ఖాళీ డైరెక్టరీ కోసం డైరెక్టరీ హెడర్ను వ్రాస్తాయి.
బైట్లు
ప్యాకేజీ బైట్లు ఇటరేటర్లతో పనిచేసే అనేక ఫంక్షన్లను జోడిస్తుంది:
- లైన్స్ బైట్ స్లైస్లో కొత్త లైన్-వేరు చేయబడిన స్ట్రింగ్లపై ఇటరేటర్ను అందిస్తుంది.
- స్ప్లిట్సెక్ సెపరేటర్ ద్వారా వేరు చేయబడిన బైట్ స్లైస్ యొక్క అన్ని సబ్స్లైస్లపై ఇటరేటర్ను అందిస్తుంది.
- స్ప్లిట్ఆఫ్టర్సెక్ సెపరేటర్ యొక్క ప్రతి సంఘటన తర్వాత విభజించబడిన బైట్ స్లైస్ యొక్క సబ్స్లైస్లపై ఒక ఇటరేటర్ను తిరిగి ఇస్తుంది.
- ఫీల్డ్స్ సీక్ నిర్వచించిన విధంగా, ఖాళీ అక్షరాల శ్రేణుల చుట్టూ బైట్ స్లైస్ యొక్క సబ్స్లైస్లపై ఇటరేటర్ను తిరిగి ఇస్తుంది. యూనికోడ్.ఐస్ స్పేస్
- ఫీల్డ్స్ ఫంక్సెక్ ప్రిడికేట్ను సంతృప్తిపరిచే యూనికోడ్ కోడ్ పాయింట్ల సీక్వెన్స్ల చుట్టూ బైట్ స్లైస్ యొక్క సబ్స్లైస్లపై ఇటరేటర్ను అందిస్తుంది.
క్రిప్టో/ఎఇఎస్
తిరిగి విలువ న్యూచిఫర్ ఇకపై NewCTR, NewGCM, NewCBCEncrypter మరియు NewCBCDecrypter పద్ధతులను అమలు చేయదు. ఈ పద్ధతులు నమోదు చేయబడలేదు మరియు అన్ని నిర్మాణాలలో అందుబాటులో లేవు. ఇప్పుడు అర్థం బ్లాక్ సంబంధిత విధులకు నేరుగా బదిలీ చేయాలి క్రిప్టో/సైఫర్. ప్రస్తుతం, క్రిప్టో/సైఫర్ ఇప్పటికీ ఈ పద్ధతులను బ్లాక్ విలువలపై తనిఖీ చేస్తుంది, అయినప్పటికీ వాటికి ప్రామాణిక లైబ్రరీ మద్దతు ఇవ్వదు.
క్రిప్టో/సైఫర్
కొత్త కథనం న్యూజిసిఎంవిత్రాండమ్నాన్స్ తిరిగి AEAD, ఇది సీల్ సమయంలో యాదృచ్ఛిక నాన్స్ను ఉత్పత్తి చేయడం ద్వారా మరియు దానిని సైఫర్టెక్స్ట్కు ప్రీపెండ్ చేయడం ద్వారా AES-GCMని అమలు చేస్తుంది.
అమలు స్ట్రీమ్, తిరిగి వచ్చింది న్యూసిటిఆర్ ఉపయోగించినప్పుడు క్రిప్టో/ఎఇఎస్ ఇప్పుడు amd64 మరియు arm64 లలో చాలా రెట్లు వేగంగా ఉంది.
కొత్తOFB, న్యూCFBఎన్క్రిప్టర్ и న్యూCFBడిక్రిప్టర్ ఇప్పుడు వాడుకలో లేనివిగా ప్రకటించబడ్డాయి. OFB మరియు CFB మోడ్లు ప్రామాణీకరించబడలేదు, ఇది సాధారణంగా యాక్టివ్ దాడులను సాదా వచనాన్ని మార్చడానికి మరియు తిరిగి పొందడానికి అనుమతిస్తుంది. అప్లికేషన్లు ఉపయోగించడానికి సిఫార్సు చేయబడ్డాయి AEAD ప్రతిగా. ప్రామాణీకరించని మోడ్ అయితే స్ట్రీమ్ అవసరం, ఉపయోగించవచ్చు న్యూసిటిఆర్ ప్రతిగా.
క్రిప్టో/ఈసీడీఎస్ఏ
ప్రైవేట్ కీ.సైన్ ఇప్పుడు దీని ప్రకారం నిర్ణయాత్మక సంతకాన్ని సృష్టిస్తుంది RFC 6979, యాదృచ్ఛికత మూలం శూన్యం అయితే.
క్రిప్టో/md5
తిరిగి విలువ md5.కొత్త, ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేస్తుంది ఎన్కోడింగ్.బైనరీఅపెండర్.
క్రిప్టో/రాండ్
ఫంక్షన్ చదవండి ఇప్పుడు ఎటువంటి వైఫల్యాలు లేవని హామీ ఇస్తుంది. చదివేటప్పుడు రీడ్ లో లోపం ఎదురైతే రీడర్, ప్రోగ్రామ్ శాశ్వతంగా ముగుస్తుంది. డిఫాల్ట్ రీడర్ ఎల్లప్పుడూ విజయవంతంగా పనిచేసేలా డాక్యుమెంట్ చేయబడిందని గమనించండి, కాబట్టి ఈ మార్పు రీడర్ వేరియబుల్ను ఓవర్రైడ్ చేసే ప్రోగ్రామ్లను మాత్రమే ప్రభావితం చేస్తుంది. ఒక మినహాయింపు 3.17 కి ముందు ఉన్న Linux కెర్నలు, ఇక్కడ డిఫాల్ట్ రీడర్ ఇప్పటికీ /dev/urandom ను తెరుస్తుంది మరియు విఫలం కావచ్చు.
Linux 6.11 మరియు తరువాతి వాటిలో, Reader ఇప్పుడు vDSO ద్వారా getrandom సిస్టమ్ కాల్ను ఉపయోగిస్తుంది. ఇది చాలా రెట్లు వేగంగా ఉంటుంది, సాధారణంగా చిన్న రీడ్లకు.
OpenBSD రీడర్లో ఇప్పుడు arc4random_buf(3)ని ఉపయోగిస్తుంది.
కొత్త కథనం టెక్స్ట్ ఇప్పుడు క్రిప్టోగ్రాఫికల్ గా సురక్షితమైన యాదృచ్ఛిక టెక్స్ట్ స్ట్రింగ్లను రూపొందించగలదు.
క్రిప్టో/ఆర్ఎస్ఏ
జనరేట్ కీ ఇప్పుడు 1024 బిట్స్ కంటే తక్కువ కీ పొడవు అభ్యర్థించబడితే ఎర్రర్ను అందిస్తుంది. 1024 బిట్స్ కంటే తక్కువ కీ సైజుతో ఉపయోగించినట్లయితే ఇప్పుడు అన్ని సైన్, వెరిఫై, ఎన్క్రిప్ట్ మరియు డీక్రిప్ట్ పద్ధతులు ఎర్రర్ను అందిస్తాయి. అలాంటి కీలు సురక్షితం కాదు మరియు వాటిని ఉపయోగించకూడదు. GODEBUG ని ఏర్పాటు చేస్తోంది rsa1024min=0 పాత ప్రవర్తనను పునరుద్ధరిస్తుంది, కానీ Go డెవలపర్లు దీన్ని అవసరమైనప్పుడు మరియు పరీక్షలలో మాత్రమే చేయాలని సిఫార్సు చేస్తారు, ఉదాహరణకు పరీక్ష ఫైల్కు //go:debug rsa1024min=0 అనే లైన్ను జోడించడం ద్వారా. కొత్తది ఒక ఉదాహరణ GenerateKey ఉపయోగించడానికి సులభమైన ప్రామాణిక 2024-బిట్ పరీక్ష కీని అందిస్తుంది.
ఇప్పుడు కాల్ చేయడం సురక్షితం మరియు మరింత సమర్థవంతమైనది ప్రైవేట్ కీ.ప్రీకంప్యూట్ కు ప్రైవేట్ కీ.ధృవీకరించు. పాక్షికంగా నిండిన వాటి సమక్షంలో ప్రీకంప్యూట్ ఇప్పుడు వేగంగా ఉంటుంది ప్రీకంప్యూటెడ్ వాల్యూస్, ఉదాహరణకు JSON నుండి కీని సంగ్రహించేటప్పుడు.
వాలిడేట్ పిలువబడనప్పుడు కూడా ప్యాకేజీ ఇప్పుడు మరిన్ని చెల్లని కీలను తిరస్కరిస్తుంది మరియు జనరేట్ కీ ఇప్పుడు విరిగిన యాదృచ్ఛికత మూలాల కోసం కొత్త లోపాలను తిరిగి ఇవ్వగలదు. ఫీల్డ్స్ పూర్ణాంకాల и ముందే కంప్యూట్ చేయబడింది ఆకృతి ప్రైవేట్ కీ కొన్ని విలువలు లేనప్పుడు కూడా ఇప్పుడు ఉపయోగించబడుతున్నాయి మరియు ధృవీకరించబడుతున్నాయి. RSA కీలను పార్సింగ్ మరియు సంగ్రహించడానికి crypto/x509కి కూడా మార్పులు ఉన్నాయి, వీటిని క్రింద వివరించాము.
సైన్PKCS1v15 и ధృవీకరించండిPKCS1v15 ఇప్పుడు SHA-512/224, SHA-512/256 మరియు SHA-3 లకు మద్దతు ఇస్తుంది.
జనరేట్ కీ ఇప్పుడు ప్రైవేట్ ఘాతాంకాన్ని ఉత్పత్తి చేయడానికి కొంచెం భిన్నమైన పద్ధతిని ఉపయోగిస్తుంది (యూలర్ ఫంక్షన్కు బదులుగా కార్మైకేల్ ఫంక్షన్). ప్రధాన సంఖ్యల నుండి మాత్రమే కీలను బాహ్యంగా పునరుత్పత్తి చేసే అరుదైన అనువర్తనాలు భిన్నమైన కానీ అనుకూలమైన ఫలితాలను ఉత్పత్తి చేయవచ్చు.
పబ్లిక్ మరియు ప్రైవేట్ కీలపై కార్యకలాపాలు ఇప్పుడు వాస్మ్పై రెండు రెట్లు వేగంగా ఉన్నాయి.
క్రిప్టో/షా*
- క్రిప్టో/షా1: రిటర్న్ విలువ sha1.కొత్త ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేస్తుంది ఎన్కోడింగ్.బైనరీఅపెండర్.
- క్రిప్టో/షా256: విలువలు తిరిగి ఇవ్వబడ్డాయి sha256.కొత్త и షా256.కొత్త224 ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేయండి ఎన్కోడింగ్.బైనరీఅపెండర్.
- క్రిప్టో/షా512: విలువలు తిరిగి ఇవ్వబడ్డాయి sha512.కొత్త, షా512.కొత్త384, షా512.కొత్త512_224 и షా512.కొత్త512_256, ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేయండి ఎన్కోడింగ్.బైనరీఅపెండర్.
క్రిప్టో/సూక్ష్మంగా
కొత్త కథనం డేటా ఇండిపెండెంట్ టైమింగ్తో డేటా విలువ సమయానికి సంబంధించి కొన్ని సూచనలు మారకుండా ఉండేలా ఆర్కిటెక్చర్-నిర్దిష్ట లక్షణాలను ప్రారంభించిన ఫంక్షన్ను అమలు చేయడానికి వినియోగదారుని అనుమతిస్తుంది. స్థిర సమయంలో అమలు చేయడానికి వ్రాయబడిన కోడ్ ప్రాసెసర్-స్థాయి ఫంక్షన్ల ద్వారా ఆప్టిమైజ్ చేయబడలేదని నిర్ధారించుకోవడానికి దీనిని ఉపయోగించవచ్చు, తద్వారా ఇది వేరియబుల్ సమయంలో నడుస్తుంది. ప్రస్తుతం WithDataIndependentTiming arm64లో PSTATE.DIT బిట్ను ఉపయోగిస్తుంది మరియు అన్ని ఇతర ఆర్కిటెక్చర్లపై ఏమీ చేయదు. GODEBUG ని ఏర్పాటు చేస్తోంది dataindependentiming=1 మొత్తం Go ప్రోగ్రామ్ కోసం DIT మోడ్ను ప్రారంభిస్తుంది.
తీర్మానం XORబైట్స్ ఇన్పుట్తో పూర్తిగా అతివ్యాప్తి చెందాలి లేదా అస్సలు ఉండకూడదు. గతంలో ప్రవర్తన వేరే విధంగా నిర్వచించబడలేదు, కానీ ఇప్పుడు XORBytes భయపడతాయి.
crypto/tls
TLS సర్వర్ ఇప్పుడు ఎన్క్రిప్టెడ్ క్లయింట్ హలో (ECH) కు మద్దతు ఇస్తుంది. ఫీల్డ్ నింపడం ద్వారా ఈ లక్షణాన్ని ప్రారంభించవచ్చు. కాన్ఫిగ్.ఎన్క్రిప్టెడ్ క్లయింట్ హలోకీస్.
క్వాంటం తర్వాత కొత్త కీ మార్పిడి విధానం X25519MLKEM768 పరిచయం ఇప్పుడు డిఫాల్ట్గా మద్దతు ఇవ్వబడింది మరియు ప్రారంభించబడింది కాన్ఫిగర్.కర్వ్ ప్రాధాన్యతలు శూన్యం. GODEBUG ని ఏర్పాటు చేస్తోంది tlsmlkem=0 డిఫాల్ట్ను అందిస్తుంది.
ప్రయోగాత్మక X25519Kyber768Draft00 కీ ఎక్స్ఛేంజ్ కు మద్దతు తీసివేయబడింది.
కీ ఎక్స్ఛేంజ్ ఆర్డర్ ఇప్పుడు పూర్తిగా క్రిప్టో/టిఎల్ఎస్ ప్యాకేజీ ద్వారా నిర్వహించబడుతుంది. ఆర్డర్ కాన్ఫిగర్.కర్వ్ ప్రాధాన్యతలు ఇప్పుడు విస్మరించబడింది మరియు ఫీల్డ్ నింపినప్పుడు ఏ కీ ఎక్స్ఛేంజ్లను చేర్చాలో నిర్ణయించడానికి మాత్రమే కంటెంట్లు ఉపయోగించబడతాయి.
కొత్త ఫీల్డ్ క్లయింట్ హలోఇన్ఫో.ఎక్స్టెన్షన్స్ క్లయింట్ హలో సందేశంలో అందుకున్న ఎక్స్టెన్షన్ ఐడెంటిఫైయర్ల జాబితాను జాబితా చేస్తుంది. ఇది TLS క్లయింట్ల వేలిముద్ర వేయడానికి ఉపయోగపడుతుంది.
క్రిప్టో/x509
GODEBUG ని ఏర్పాటు చేస్తోంది x509sha1 తొలగించబడింది. సర్టిఫికేషన్. ధృవీకరించండి ఇకపై SHA-1 ఆధారిత సంతకాలకు మద్దతు ఇవ్వదు.
OID ఇప్పుడు ఇంటర్ఫేస్లను అమలు చేస్తుంది ఎన్కోడింగ్.బైనరీఅపెండర్ и ఎన్కోడింగ్.టెక్స్ట్అపెండర్.
డిఫాల్ట్ సర్టిఫికెట్ పాలసీ ఫీల్డ్ నుండి మార్చబడింది సర్టిఫికెట్.పాలసీ ఐడెంటిఫైయర్లు న సర్టిఫికెట్.విధానాలు. సర్టిఫికెట్లను అన్వయించేటప్పుడు, రెండు ఫీల్డ్లు నింపబడతాయి, కానీ సర్టిఫికెట్ పాలసీని సృష్టించేటప్పుడు, అవి సర్టిఫికెట్.పాలసీ ఐడెంటిఫైయర్లకు బదులుగా సర్టిఫికెట్.పాలసీస్ ఫీల్డ్ నుండి తీసుకోబడతాయి. ఈ మార్పును తిరిగి మార్చవచ్చు. GODEBUG సెటప్ x509 వినియోగ విధానాలు=0.
సర్టిఫికెట్ సృష్టించండి ఇప్పుడు టెంప్లేట్ ఫీల్డ్ను పాస్ చేస్తున్నప్పుడు RFC 5280 కంప్లైంట్ పద్ధతిని ఉపయోగించి సీరియల్ నంబర్ను జనరేట్ చేస్తుంది. సర్టిఫికెట్.క్రమ సంఖ్య క్రాష్ అవ్వడానికి బదులుగా, లేదు.
సర్టిఫికెట్. ధృవీకరించండి ఇప్పుడు RFC 5280 మరియు RFC 9618 లలో నిర్వచించిన విధంగా పాలసీ ధ్రువీకరణకు మద్దతు ఇస్తుంది. కొత్త ఫీల్డ్ ధృవీకరించు ఎంపికలు.సర్టిఫికెట్ విధానాలు ఆమోదయోగ్యమైన విధానాల సమితికి సెట్ చేయవచ్చు OIDలు. చెల్లుబాటు అయ్యే పాలసీ గ్రాఫ్లు ఉన్న సర్టిఫికెట్ చైన్లు మాత్రమే దీని నుండి తిరిగి ఇవ్వబడతాయి సర్టిఫికెట్. ధృవీకరించండి.
మార్షల్పికెసిఎస్8ప్రైవేట్కీ ఇప్పుడు చెల్లని RSA కీని తిరిగి పొందడానికి బదులుగా లోపాన్ని అందిస్తుంది. (మార్షల్పికెసిఎస్1ప్రైవేట్కీ (దీనికి ఎటువంటి ఎర్రర్ రిటర్న్ ఉండదు మరియు చెల్లని కీలు అందించబడినప్పుడు దాని ప్రవర్తన నిర్వచించబడలేదు.)
పార్స్PKCS1ప్రైవేట్ కీ и పార్స్PKCS8ప్రైవేట్ కీ ఇప్పుడు ఎన్కోడ్ చేయబడిన CRT విలువలను ఉపయోగిస్తుంది మరియు చెల్లుబాటు చేస్తుంది, కాబట్టి గతంలో ఆమోదించబడిన చెల్లని RSA కీలను తిరస్కరించవచ్చు. వాడుక GODEBUG సెట్టింగ్లు x509rsacrt=0 CRT విలువల పునః గణనకు తిరిగి వస్తుంది.
డీబగ్/ఎల్ఫ్
ప్యాకేజీ డీబగ్/ఎల్ఫ్ డైనమిక్ ELF (ఎగ్జిక్యూటబుల్ మరియు లింక్ చేయదగిన ఫార్మాట్) ఫైల్లలో సింబల్ వెర్షన్లను నిర్వహించడానికి మద్దతును జోడిస్తుంది. కొత్త పద్ధతి ఫైల్.డైనమిక్ వెర్షన్లు ELF ఫైల్లో నిర్వచించబడిన డైనమిక్ వెర్షన్ల జాబితాను అందిస్తుంది. కొత్త పద్ధతి ఫైల్.డైనమిక్ వెర్షన్ నీడ్స్ ఇతర ELF ఆబ్జెక్ట్లలో నిర్వచించబడిన ఈ ELF ఫైల్కి అవసరమైన డైనమిక్ వెర్షన్ల జాబితాను అందిస్తుంది. చివరగా, కొత్త రంగాలు సింబల్.హాస్ వెర్షన్ и సింబల్.వెర్షన్ఇండెక్స్ గుర్తు యొక్క సంస్కరణను సూచించండి.
ఎన్కోడింగ్
రెండు కొత్త ఇంటర్ఫేస్లు టెక్స్ట్ అప్పెండర్ и బైనరీఅపెండర్ బైట్ స్లైస్కు ఒక వస్తువు యొక్క టెక్స్ట్ లేదా బైనరీ ప్రాతినిధ్యాన్ని జోడించడానికి ప్రవేశపెట్టబడ్డాయి. ఈ ఇంటర్ఫేస్లు అదే కార్యాచరణను అందిస్తాయి టెక్స్ట్ మార్షలర్ и బైనరీ మార్షలర్, కానీ ప్రతిసారీ కొత్త స్లైస్ను కేటాయించే బదులు, అవి డేటాను నేరుగా ఇప్పటికే ఉన్న స్లైస్కు జోడిస్తాయి. ఈ ఇంటర్ఫేస్లు ప్రస్తుతం TextMarshaler మరియు/లేదా BinaryMarshalerను అమలు చేసే ప్రామాణిక లైబ్రరీ రకాల ద్వారా అమలు చేయబడుతున్నాయి.
ఎన్కోడింగ్/json
నిర్మాణ సమయంలో, స్ట్రక్చర్ ఫీల్డ్ ట్యాగ్లో కొత్త omitzero ఎంపికతో కూడిన స్ట్రక్చర్ ఫీల్డ్ విలువ సున్నా అయితే విస్మరించబడుతుంది. ఫీల్డ్ రకం IsZero() బూల్ పద్ధతిని కలిగి ఉంటే, విలువ సున్నా కాదా అని నిర్ణయించడానికి అది ఉపయోగించబడుతుంది. లేకపోతే విలువ సున్నా అవుతుంది, అది దాని రకానికి శూన్య విలువ. omitzero ఫీల్డ్ ట్యాగ్ అనేది null విలువలను వదిలివేయాలనే ఉద్దేశ్యంతో ఉన్నప్పుడు omitempty కంటే క్లీనర్ మరియు తక్కువ ఎర్రర్-ప్రోన్యూట్. ముఖ్యంగా, omitempty లాగా కాకుండా, omitzero సున్నాలను వదిలివేస్తుంది సమయం.సమయం విలువలు, ఇది సమస్యలకు సాధారణ మూలం.
omitempty మరియు omitzero రెండూ పేర్కొనబడితే, విలువ ఖాళీగా లేదా సున్నాగా (లేదా రెండూ) ఉంటే ఫీల్డ్ విస్మరించబడుతుంది.
అన్మార్షల్ టైప్ఎర్రర్.ఫీల్డ్ ఇప్పుడు మరింత వివరణాత్మక దోష సందేశాలను అందించడానికి అంతర్నిర్మిత నిర్మాణాలను కలిగి ఉంది.
వెళ్ళండి/రకాలు
Len() int మరియు At(int) T వంటి మెథడ్ పెయిర్ల సీక్వెన్స్లను బహిర్గతం చేసే అన్ని go/types డేటా స్ట్రక్చర్లు ఇప్పుడు ఇటరేటర్లను తిరిగి ఇచ్చే పద్ధతులను కూడా కలిగి ఉన్నాయి, ఇవి ఇలాంటి సరళమైన కోడ్ను అనుమతిస్తాయి:
పరామితులు := fn.Type.(*types.Signature).Params() for i := 0; i <పారామ్స్.లెన్(); i++ { use(params.At(i)) }
దీనిపై:
పరామితి కోసం := పరిధి fn.Signature().Params().Variables() { use(param) }
పద్ధతులు: ఇంటర్ఫేస్.ఎంబెడెడ్ రకాలు ఇంటర్ఫేస్.స్పష్టమైన పద్ధతులు ఇంటర్ఫేస్.పద్ధతులు పద్ధతిసమితి.పద్ధతులు పేరు పెట్టబడిన పద్ధతులు పరిధి. పిల్లలు నిర్మాణం.క్షేత్రాలు టుపుల్.వేరియబుల్స్ టైప్లిస్ట్.రకాలు టైప్పారామ్లిస్ట్.టైప్పారామ్లు యూనియన్. నిబంధనలు
హాష్/*
- హాష్/అడ్లర్32: రిటర్న్ విలువ కొత్త, ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేస్తుంది ఎన్కోడింగ్.బైనరీఅపెండర్
- హాష్/crc32: విలువలు తిరిగి ఇవ్వబడ్డాయి కొత్త и కొత్తఐఈఈఈ, ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేయండి ఎన్కోడింగ్.బైనరీఅపెండర్
- హాష్/crc64: రిటర్న్ విలువ కొత్త, ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేస్తుంది ఎన్కోడింగ్.బైనరీఅపెండర్
- హాష్/ఎఫ్ఎన్వి: విలువలు తిరిగి ఇవ్వబడ్డాయి New32 న్యూ32ఎ New64 న్యూ64ఎ New128 и న్యూ128ఎ, ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేయండి ఎన్కోడింగ్.బైనరీఅపెండర్
- హాష్/మాఫాష్: కొత్త లక్షణాలు పోల్చదగినది и వ్రాయండిపోల్చదగినది పోల్చగల ఏదైనా విలువ యొక్క హాష్ను లెక్కించగలదు. ఇది గో నిఘంటువు కీగా ఉపయోగించగల దేనినైనా హాష్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
లాగ్/స్లాగ్
కొత్త డిస్కార్డ్హ్యాండ్లర్ అనేది ఎప్పటికీ ప్రారంభించబడని హ్యాండ్లర్ మరియు దాని అవుట్పుట్ను ఎల్లప్పుడూ విస్మరిస్తుంది.
స్థాయి и లెవల్వర్ ఇప్పుడు ఇంటర్ఫేస్ను అమలు చేయండి ఎన్కోడింగ్.టెక్స్ట్అపెండర్.
గణితం/*
- గణితం/పెద్ద: ఫ్లోట్, Int и ఎలుక ఇప్పుడు ఇంటర్ఫేస్ను అమలు చేయండి ఎన్కోడింగ్.టెక్స్ట్అపెండర్.
- గణితం/రాండ్: నిలిపివేయబడిన ఉన్నత-స్థాయి ఫంక్షన్ కాల్స్ సీడ్ ఇకపై ఎటువంటి ప్రభావం చూపవు. పాత ప్రవర్తనను పునరుద్ధరించడానికి, మీరు ఉపయోగించవచ్చు GODEBUG సెటప్ రాండ్సీడ్నాప్=0. మరిన్ని సందర్భాలు ఆఫర్ 67273.
- గణితం/రాండ్/v2: ChaCha8 и PCG ఇప్పుడు ఇంటర్ఫేస్ను అమలు చేయండి ఎన్కోడింగ్.బైనరీఅపెండర్.
నికర
లిజెన్ కాండిగ్ ఇప్పుడు మద్దతు ఉన్న వ్యవస్థలలో (ప్రస్తుతం Linux మాత్రమే) MPTCPని డిఫాల్ట్గా ఉపయోగిస్తుంది.
IP ఇప్పుడు ఇంటర్ఫేస్ను అమలు చేస్తుంది ఎన్కోడింగ్.టెక్స్ట్అపెండర్.
నికర/http
పరిమితి మారింది రవాణా అభ్యర్థనకు ప్రతిస్పందనగా అందుకున్న 1xx సమాచార ప్రతిస్పందనలకు. గతంలో ఇది అభ్యర్థనను ఆపివేసి, 5 1xx కంటే ఎక్కువ ప్రతిస్పందనలను స్వీకరించిన తర్వాత ఎర్రర్ను తిరిగి ఇచ్చేది. అన్ని 1xx ప్రతిస్పందనల మొత్తం పరిమాణం కాన్ఫిగర్ సెట్టింగ్ను మించి ఉంటేనే ఇది ఇప్పుడు ఎర్రర్ను అందిస్తుంది. ట్రాన్స్పోర్ట్.మాక్స్ రెస్పాన్స్ హెడర్బైట్స్.
అలాగే, అభ్యర్థనకు ట్రాకింగ్ హుక్ ఉన్నప్పుడు నెట్/http/httptrace.ClientTrace.Got1xx ప్రతిస్పందన, ఇప్పుడు మొత్తం సమాధానాల సంఖ్య 1xx పై పరిమితి లేదు. Got1xxResponse హుక్ అభ్యర్థనను ఆపడానికి ఎర్రర్ను తిరిగి ఇవ్వగలదు.
రవాణా и సర్వర్ ఇప్పుడు HTTP/2 ప్రోటోకాల్ సెట్టింగ్ల కాన్ఫిగరేషన్ను అనుమతించే HTTP2 ఫీల్డ్ ఉంది.
కొత్త ఫీల్డ్లు సర్వర్.ప్రోటోకాల్స్ и రవాణా. ప్రోటోకాల్లు సర్వర్ లేదా క్లయింట్ ఉపయోగించే HTTP ప్రోటోకాల్లను కాన్ఫిగర్ చేయడానికి సులభమైన మార్గాన్ని అందిస్తాయి.
ఎన్క్రిప్ట్ చేయని HTTP/2 కనెక్షన్లకు మద్దతు ఇవ్వడానికి సర్వర్ మరియు క్లయింట్ను కాన్ఫిగర్ చేయవచ్చు.
ఉన్నప్పుడు సర్వర్.ప్రోటోకాల్స్ UnencrypterHTTP2 కలిగి ఉంటుంది, సర్వర్ ఎన్క్రిప్ట్ చేయని పోర్ట్లలో HTTP/2 కనెక్షన్లను అంగీకరిస్తుంది. సర్వర్ ఒకే పోర్ట్లో HTTP/1 మరియు ఎన్క్రిప్ట్ చేయని HTTP/2 రెండింటినీ అంగీకరించగలదు.
ఉన్నప్పుడు రవాణా. ప్రోటోకాల్లు ఎన్క్రిప్ట్ చేయని HTTP2ని కలిగి ఉంటుంది మరియు HTTP1ని కలిగి ఉండదు, రవాణా చిరునామాల కోసం ఎన్క్రిప్ట్ చేయని HTTP/2ని ఉపయోగిస్తుంది http://. ఒక రవాణా HTTP/1 మరియు ఎన్క్రిప్ట్ చేయని HTTP/2 రెండింటినీ ఉపయోగించడానికి కాన్ఫిగర్ చేయబడితే, అది HTTP/1ని ఉపయోగిస్తుంది.
ఎన్క్రిప్ట్ చేయని HTTP/2 కి మద్దతు "HTTP/2 విత్ ఫార్వర్డ్-లెర్నింగ్" (RFC 9113, సెక్షన్ 3.3) ను ఉపయోగిస్తుంది. నిలిపివేయబడిన హెడర్ “అప్గ్రేడ్: h2c” కు మద్దతు లేదు.
నెట్/నెట్ఐపి
చిరు, అడ్ర్పోర్ట్ и ఉపసర్గ ఇప్పుడు ఇంటర్ఫేస్లను అమలు చేయండి ఎన్కోడింగ్.బైనరీఅపెండర్ и ఎన్కోడింగ్.టెక్స్ట్అపెండర్.
నెట్/యూఆర్ఎల్
URL ఇప్పుడు ఇంటర్ఫేస్ను కూడా అమలు చేస్తుంది ఎన్కోడింగ్.బైనరీఅపెండర్.
OS/యూజర్
Windowsలో ప్రస్తుత ఇప్పుడు విండోస్ నానో సర్వర్లో ఉపయోగించవచ్చు. నానో సర్వర్లో లేని NetApi32 లైబ్రరీ నుండి ఫంక్షన్లను ఉపయోగించకుండా ఉండటానికి అమలు నవీకరించబడింది.
Windowsలో ప్రస్తుత, శోధన и లుకప్ ఐడి ఇప్పుడు కింది అంతర్నిర్మిత వినియోగదారు సేవా ఖాతాలకు మద్దతు ఇస్తుంది:
- NT అధికార యంత్రాంగం
- NT అథారిటీ లోకల్ సర్వీస్
- NT అథారిటీ నెట్వర్క్ సర్వీస్
Windowsలో ప్రస్తుత ప్రస్తుత వినియోగదారుడు నెమ్మదిగా ఉన్న డొమైన్కు చేరినప్పుడు గణనీయంగా వేగవంతం చేయబడింది, ఇది చాలా మంది కార్పొరేట్ వినియోగదారులకు సాధారణ సందర్భం. కొత్త అమలు పనితీరు ఇప్పుడు మిల్లీసెకన్ల క్రమంలో ఉంది, మునుపటి అమలుతో పోలిస్తే, ఇది పూర్తి కావడానికి చాలా సెకన్లు, నిమిషాలు కూడా పట్టవచ్చు.
Windowsలో ప్రస్తుత ప్రస్తుత థ్రెడ్ మరొక వినియోగదారుని వలె నటిస్తున్నప్పుడు ఇప్పుడు ప్రాసెస్ యజమాని వినియోగదారుని తిరిగి ఇస్తుంది. గతంలో ఇది ఒక ఎర్రర్ను అందించింది.
regexp
Regexp ఇప్పుడు ఇంటర్ఫేస్ను అమలు చేస్తుంది ఎన్కోడింగ్.టెక్స్ట్ అడాప్టర్.
రన్టైమ్
ఫంక్షన్ గోరూట్ ఇప్పుడు నిలిపివేయబడింది. కొత్త వాతావరణాలలో, మీరు "go" బైనరీని నిర్ణయించడానికి సిస్టమ్ పాత్ను ఉపయోగించడానికి ఇష్టపడాలి మరియు GOROOTని నిర్ణయించడానికి go env GOROOTని ఉపయోగించాలి.
తీగలను
ప్యాకేజీ తీగలను ఇటరేటర్లతో పనిచేయడానికి అనేక విధులను జోడిస్తుంది:
- లైన్స్ స్ట్రింగ్లోని కొత్త లైన్తో వేరు చేయబడిన లైన్లపై ఇటరేటర్ను అందిస్తుంది.
- స్ప్లిట్సెక్ సెపరేటర్ ద్వారా వేరు చేయబడిన స్ట్రింగ్ యొక్క అన్ని సబ్స్ట్రింగ్లపై ఇటరేటర్ను అందిస్తుంది.
- స్ప్లిట్ఆఫ్టర్సెక్ సెపరేటర్ యొక్క ప్రతి సంఘటన తర్వాత విభజించబడిన స్ట్రింగ్ యొక్క సబ్స్ట్రింగ్లపై ఒక ఇటరేటర్ను అందిస్తుంది.
- ఫీల్డ్స్ సీక్ నిర్వచించిన విధంగా, వైట్స్పేస్ అక్షరాల సీక్వెన్స్ల చుట్టూ ఉన్న స్ట్రింగ్ యొక్క సబ్స్ట్రింగ్లపై ఇటరేటర్ను అందిస్తుంది.యూనికోడ్.ఐస్ స్పేస్
- ఫీల్డ్స్ ఫంక్సెక్ ప్రిడికేట్ను సంతృప్తిపరిచే యూనికోడ్ కోడ్ పాయింట్ల సీక్వెన్స్ల చుట్టూ ఉన్న స్ట్రింగ్ సబ్స్ట్రింగ్లపై ఇటరేటర్ను అందిస్తుంది.
సమకాలీకరించడానికి
అమలు సమకాలీకరణ.మ్యాప్ పనితీరును మెరుగుపరచడానికి, ముఖ్యంగా నిఘంటువు మార్పుల కోసం మార్చబడింది. ఉదాహరణకు, పెద్ద నిఘంటువులలో డిస్జాయింట్ సెట్ మార్పు వివాదం తక్కువగా ఉంటుంది మరియు తక్కువ వివాదాస్పద నిఘంటువు లోడ్ను సాధించడానికి దీనికి ఇకపై బిల్డ్-అప్ సమయం అవసరం లేదు.
మీకు ఏవైనా సమస్యలు ఎదురైతే, నిర్మాణ సమయంలో GOEXPERIMENT=nosynchashtriemap ని సెట్ చేసి పాత అమలుకు తిరిగి వెళ్లండి మరియు దయచేసి సమస్య ఫారమ్ నింపండి.
పరీక్ష
కొత్త పద్ధతులు సందర్భం и బి.సందర్భం పరీక్ష పూర్తయిన తర్వాత మరియు పరీక్ష శుభ్రపరిచే విధులు అమలు చేయబడే ముందు విస్మరించబడిన సందర్భాన్ని తిరిగి ఇస్తుంది.
కొత్త పద్ధతులు టి.చ్దిర్ и బి. చ్దిర్ పరీక్ష లేదా బెంచ్మార్క్ వ్యవధి కోసం పనిచేసే డైరెక్టరీని మార్చడానికి ఉపయోగించవచ్చు.
టెక్స్ట్/టెంప్లేట్
టెంప్లేట్లు ఇప్పుడు రేంజ్-ఓవర్-ఫంక్ మరియు రేంజ్-ఓవర్-ఇంట్కు మద్దతు ఇస్తాయి.
సమయం
సమయం ఇప్పుడు ఇంటర్ఫేస్లను అమలు చేస్తుంది ఎన్కోడింగ్.బైనరీఅపెండర్ и ఎన్కోడింగ్.టెక్స్ట్అపెండర్.
పోర్ట్స్
linux
ఉన్నట్టుండి ప్రకటించారు గో 1.23 విడుదల నోట్స్ ప్రకారం, గో 1.24 కి లైనక్స్ కెర్నల్ వెర్షన్ 3.2 లేదా తరువాత అవసరం.
డార్విన్
గో 1.24 అనేది మాకోస్ 11 బిగ్ సుర్లో పనిచేసే చివరి విడుదల. గో 1.25 కి macOS 12 Monterey లేదా తరువాత అవసరం.
WebAssembly
WebAssembly హోస్ట్కు ఫంక్షన్లను ఎగుమతి చేయడానికి go:wasmexport కంపైలర్ డైరెక్టివ్ Go ప్రోగ్రామ్లకు జోడించబడింది.
వెబ్అసెంబ్లీ సిస్టమ్ ఇంటర్ఫేస్ ప్రివ్యూ 1 (GOOS=wasip1 GOARCH=wasm) లో, Go 1.24 గో ప్రోగ్రామ్ను నిర్మించడానికి మద్దతు ఇస్తుంది రియాక్టర్/లైబ్రరీ బిల్డ్ ఫ్లాగ్ -buildmode=c-shared ని పేర్కొనడం ద్వారా.
go:wasmimport ఫంక్షన్ల కోసం ఇప్పుడు మరిన్ని రకాలు ఆర్గ్యుమెంట్ లేదా ఫలిత రకాలుగా అనుమతించబడ్డాయి. ముఖ్యంగా, బూల్, స్ట్రింగ్, uintptr మరియు కొన్ని రకాలకు పాయింటర్లు అనుమతించబడతాయి (వివరాలను చూడండి డాక్యుమెంటేషన్), 32-బిట్ మరియు 64-బిట్ పూర్ణాంకం మరియు ఫ్లోటింగ్-పాయింట్ రకాలు మరియు unsafe.Pointer లతో పాటు, ఇప్పటికే అనుమతించబడ్డాయి. ఈ రకాలు go:wasmexport ఫంక్షన్లకు ఆర్గ్యుమెంట్ లేదా ఫలిత రకాలుగా కూడా అనుమతించబడతాయి.
WebAssembly కోసం మద్దతు ఫైల్లు misc/wasm నుండి lib/wasm కు తరలించబడ్డాయి.
ముఖ్యంగా చిన్న వెబ్అసెంబ్లీ అప్లికేషన్లకు ప్రారంభ మెమరీ పాదముద్ర గణనీయంగా తగ్గింది.
విండోస్
32-బిట్ విండోస్/ఆర్మ్ పోర్ట్ (GOOS=windows GOARCH=arm) విరిగినదిగా గుర్తించబడింది. వివరాలు #70705
మూలం: linux.org.ru
