
Go 1.27-ի ինտերակտիվ շրջայց. generic մեթոդներ և հետքվանտային ստորագրություններ
VictoriaMetrics-ը հրապարակել է Go 1.27-ի գործնական շրջայցը. գլխավոր նորույթը generic մեթոդներն են, կան նաև չափով մասնագիտացված հիշողության բաշխում, ML-DSA կրիպտոգրաֆիա, uuid փաթեթ և լռելյայն JSON v2։
Go 1.27-ի թողարկումը մոտենում է, և VictoriaMetrics-ը հրապարակել է ինտերակտիվ շրջայց այն մասին, թե ինչ է փոխվում՝ յուրաքանչյուր հատկության համար գործարկվող օրինակներով։ Հուլիսի 31-ով թվագրված հոդվածի հեղինակը Խեսուս Էսպինոն է. այն շարունակում է Անտոն Ժիժանովի սկսած շարքը, որը շրջայցեր է գրել Go 1.22-ից մինչև 1.26 յուրաքանչյուր թողարկման համար և որոշել է դադարեցնել։
generic մեթոդները՝ թողարկման գլխավոր նորույթը
Հիմնական փոփոխությունը տիպերի համակարգում է. մեթոդի հայտարարությունն այժմ կարող է հայտարարել սեփական տիպի պարամետրեր՝ անկախ ստացողից, և տիպի վրա գործող generic գործողությունը կարող է ապրել որպես այդ տիպի մեթոդ, այլ ոչ թե փաթեթի մակարդակի ֆունկցիա։ Շրջայցի օրինակում Box տարան ստանում է Map մեթոդ, որը int-ի Box-ը վերածում է string-ի Box-ի։ Մեկ սահմանափակում մնում է. ինտերֆեյսները դեռ չեն կարող հայտարարել տիպի պարամետրերով մեթոդներ, և generic մեթոդով հնարավոր չէ բավարարել ինտերֆեյս։ Դրա հետ մեկտեղ գալիս են երկու փոքր հարմարավետ բարելավումներ. struct-ի լիտերալի բանալին այժմ կարող է լինել ցանկացած վավեր դաշտի սելեկտոր՝ ներկառուցված struct-ից առաջխաղացված դաշտը ուղղակիորեն դնելու հնարավորությամբ, իսկ ֆունկցիայի տիպերի ինֆերենսը ընդլայնվել է կոնվերսիաներով և կոմպոզիտ լիտերալներով։
Արտադրողականություն. բաշխում, SIMD և կոմպիլյատոր
Կոմպիլյատորն այժմ կանչեր է ստեղծում չափով մասնագիտացված հիշողության բաշխման ընթացակարգերին, ինչը մինչև 30%-ով նվազեցնում է 80 բայթից փոքր բաշխումների արժեքը։ Բաշխումներով ծանրաբեռնված ծրագրերում ընդհանուր շահույթը սպասվում է մոտ 1%, փոխարենը բինարը մեծանում է շուրջ 60 ԿԲ-ով. այն կարելի է անջատել GOEXPERIMENT դրոշով։ Փորձարարական շարժական SIMD փաթեթը (GOEXPERIMENT=simd) առաջարկում է վեկտորի լայնությունից անկախ տիպեր, և ստանդարտ գրադարանն արդեն օգտագործող է. Swiss Table-ի map-ի իրականացումը hash ֆունկցիաները վերագրվել է simd ներքին ֆունկցիաների վրա։
Անվտանգություն և ստանդարտ գրադարան
Հետքվանտային ստորագրությունները գալիս են crypto/mldsa-ի տեսքով՝ ML-DSA-ն FIPS 204 սպեցիֆիկացիայի համաձայն, երեք պարամետրային հավաքածուներով, և հասնում են նաև crypto/x509 և TLS 1.3-ի ստորագրման սխեմաներին։ Ստանդարտ գրադարանը ստանում է uuid փաթեթ (RFC 9562), որտեղ NewV7-ը ժամանակով դասավորված արժեքներ է արտադրում՝ հարմար տվյալների բազայի բանալիների համար։ Երկար սպասված encoding/json/v2-ը դուրս է գալիս փորձարարական կարգավիճակից. այն հասանելի է առանց build flag-ի, իսկ դասական encoding/json-ն այժմ ներսից հենվում է v2-ի իրականացման վրա՝ հին վարքագիծը վերադարձնելու GOEXPERIMENT հնարավորությամբ.strings-ը և bytes-ը ստանում են CutLast, իսկ Unicode-ի աջակցությունը 15-րդ տարբերակից անցնում է 17-րդին։
Գործիքներ և ավելի քիչ տեսանելի աշխատանք
Գործիքների փոփոխություններից. go test-ն այժմ լռելյայն անցկացնում է stdversion vet ստուգումը, go doc-ը կարող է բերել կոնկրետ մոդուլի տարբերակի փաստաթղթերը, իսկ go fix-ը ստանում է նոր modernizers։ Շրջայցը լուսաբանում է նաև հեշտ բաց թողնվող աշխատանքը. HTTP/2-ը վերջապես իրական փաթեթ է և ոչ թե գեներացված 12 226 տողանոց ֆայլ, HTTP/3-ի կմախքը ավելացվել է չարտահանվող տեսքով, և չարտոնված //go:linkname-ի օգտագործումը դարձել է ավելի դժվար։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։