{"id":121950,"date":"2025-02-15T14:22:29","date_gmt":"2025-02-15T12:22:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/go-1-24"},"modified":"2025-02-15T14:22:29","modified_gmt":"2025-02-15T12:22:29","slug":"go-1-24","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/news\/go-1-24","title":{"rendered":"Go 1.24","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/21754\/original.png\" itemprop=\"contentURL\">            <img decoding=\"async\" alt=\"Go 1.24\" src=\"\/wp-content\/uploads\/2025\/02\/6d6299421d83951d055782658814425f.jpg\" style=\"display:block;margin: 0 auto;\" \/>                   <\/a>                       <noindex>      <noindex><\/p>\n<p>Versioni e re e Go, numri 1.24, del n\u00eb gjasht\u00eb muaj pas <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23\">Go 1.23<\/a>. Shumica e ndryshimeve jan\u00eb n\u00eb implementimin e kit\u00ebve t\u00eb veglave, runtime dhe biblioteka. Si gjithmon\u00eb, l\u00ebshimi siguron <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1compat\">premtimin e kompatibilitetit<\/a> Go 1. Zhvilluesit e gjuh\u00ebs presin q\u00eb pothuajse t\u00eb gjitha programet Go t\u00eb vazhdojn\u00eb t\u00eb kompilohet dhe funksionojn\u00eb si m\u00eb par\u00eb.<\/p>\n<p><\/noindex><\/noindex>  <\/p>\n<h2>Ndryshimet n\u00eb gjuh\u00eb<\/h2>\n<p> <noindex><\/p>\n<p>Go 1.24 tani mb\u00ebshtet plot\u00ebsisht <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/46477\">aliaset e tipave t\u00eb p\u00ebrgjithshme<\/a>: nj\u00eb alias tipi mund t\u00eb jet\u00eb parametritizuar si nj\u00eb tip i shpallur. Detajet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#Alias_declarations\">specifikimin e gjuh\u00ebs<\/a>. Aktualisht, mund\u00ebsia mund t\u00eb \u00e7aktivizohet duke vendosur GOEXPERIMENT=noaliastypeparams; megjithat\u00eb, opsioni aliastypeparams do t\u00eb hiqet n\u00eb Go 1.25.<\/p>\n<p><\/noindex> <\/p>\n<h2>Mjetet<\/h2>\n<h3>Komanda go<\/h3>\n<p> <noindex><\/p>\n<p>Modulat go tani mund t\u00eb ndjekin var\u00ebsit\u00eb ekzekutues duke p\u00ebrdorur direktiv\u00ebn tool n\u00eb go.mod. Kjo heq nevoj\u00ebn p\u00ebr zgjidhjen e m\u00ebparshme p\u00ebr t\u00eb shtuar veglat si importet e zbraz\u00ebta n\u00eb skedarin, zakonisht t\u00eb quajtur \u201ctools.go\u201d. Komanda go tool tani mund t\u00eb ekzekutoj\u00eb k\u00ebto vegla p\u00ebrve\u00e7 veglave t\u00eb ofruara s\u00eb bashku me Go. M\u00eb shum\u00eb informacion mund t\u00eb shihet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/modules\/managing-dependencies#tools\">dokumentacionin<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Flag i ri -tool p\u00ebr go get \u00e7on n\u00eb shtimin e direktiv\u00ebs s\u00eb vegl\u00ebs n\u00eb modul aktual p\u00ebr paketat e specifikuara p\u00ebrve\u00e7 shtimit t\u00eb direktivave t\u00eb k\u00ebrkes\u00ebs.<\/p>\n<p> <noindex><\/p>\n<p>E re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/cmd\/go#hdr-Package_lists_and_patterns\">metapatterni tool<\/a> reflekton t\u00eb gjitha veglat n\u00eb modul aktual. Kjo mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb p\u00ebrdit\u00ebsuar t\u00eb gjitha ato p\u00ebrmes go get tool ose p\u00ebr t'i instaluar ato n\u00eb direktorin\u00eb tuaj GOBIN p\u00ebrmes go install tool.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Skedar\u00ebt ekzekutues t\u00eb krijuar p\u00ebrmes go run dhe sjellja e re e go tool tani ruhen n\u00eb cache-n\u00eb e nd\u00ebrtimit Go. Kjo e b\u00ebn ekzekutimin e p\u00ebrs\u00ebritur m\u00eb efektiv p\u00ebrmes nj\u00eb cache m\u00eb t\u00eb madh. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/69290\">#69290<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Komandat go build dhe go install tani pranojn\u00eb flag -json, i cili raporton daljen dhe gabimet e nd\u00ebrtimit si nj\u00eb dalje t\u00eb strukturuar JSON n\u00eb dalje standarde. Detajet e formatit mund t\u00eb shihen n\u00eb go help buildjson.<\/p>\n<p> <noindex><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, go test -json tani raporton daljen dhe gabimet e nd\u00ebrtimit n\u00eb JSON, s\u00eb bashku me JSON-in e rezultatit t\u00eb testimit. Ata mund t\u00eb dallohen sipas tipeve t\u00eb reja t\u00eb Veprimit, por n\u00ebse ata shkaktojn\u00eb probleme n\u00eb sistemin e integrimit t\u00eb testeve, mund t\u00eb ktheheni n\u00eb daljen tekstuale t\u00eb nd\u00ebrtimit p\u00ebrmes <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimit GODEBUG<\/a> gotestjsonbuildtext=1.<\/p>\n<p><\/noindex> <\/p>\n<p>Variabli i ri i mjedisit GOAUTH ofron nj\u00eb m\u00ebnyr\u00eb t\u00eb p\u00ebrshtatshme p\u00ebr t\u00eb autorizuar t\u00ebrheqjet private t\u00eb moduleve. Mund t\u00eb shihni detajet n\u00eb go help goauth.<\/p>\n<p> <noindex><\/p>\n<p>Komanda go build tani mund t\u00eb instaloj\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/debug#BuildInfo.Main\">versionin e modulit kryesor<\/a> n\u00eb binarin e kompaktuar, bazuar n\u00eb etiket\u00ebn dhe\/ose komitin e sistemit t\u00eb kontrollit t\u00eb versioneve. Suffix +dirty do t\u00eb shtohet n\u00ebse ka ndryshime q\u00eb nuk jan\u00eb komituar. Mund t\u00eb p\u00ebrdorni flamurin -buildvcs=false p\u00ebr t\u00eb eliminuar informacionin e kontrollit t\u00eb versioneve nga binari.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>E re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimi GODEBUG<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/toolchain#select\">toolchaintrace=1<\/a> tani mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb ndjekur procesin e zgjedhjes s\u00eb toolchain n\u00eb ekipin go.<\/p>\n<p><\/noindex> <\/p>\n<h3>Cgo<\/h3>\n<p> <noindex><\/p>\n<p>Cgo mb\u00ebshtet annotime t\u00eb reja p\u00ebr funksionet C p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar performanc\u00ebn e koh\u00ebs ekzekutimi. #cgo noescape cFunctionName i thot\u00eb kompilatorit q\u00eb kujtesa e kaluar n\u00eb funksionin C cFunctionName nuk ik\u00ebn. #cgo nocallback cFunctionName i thot\u00eb kompilatorit se funksioni C cFunctionName nuk th\u00ebrret kurr\u00eb funksione t\u00eb Go. Informacione m\u00eb t\u00eb detajuara mund t\u00eb shihni n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/cgo#hdr-Optimizing_calls_of_C_code\">dokumentacionin cgo<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Cgo aktualisht refuzon t\u00eb kompiloj\u00eb thirrjet e funksioneve C q\u00eb kan\u00eb disa shpallje t\u00eb papajtueshme. P\u00ebr shembull, n\u00ebse f shpallet si void f(int) dhe void f(double), cgo do t\u00eb raportoj\u00eb nj\u00eb gabim n\u00eb vend q\u00eb t\u00eb gjeneroj\u00eb nj\u00eb sekuenc\u00eb t\u00eb gabuar thirrjeje f(0). E reja n\u00eb k\u00ebt\u00eb l\u00ebshim \u00ebsht\u00eb p\u00ebrmir\u00ebsimi n\u00eb zb discovery e k\u00ebsaj gjendjeje gabimi, kur shpalljet e papajtueshme shfaqen n\u00eb skedar\u00eb t\u00eb ndrysh\u00ebm. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67699\">#67699<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Objdump<\/h3>\n<p>Instrumenti objdump tani mb\u00ebshtet desassemblimin n\u00eb 64-bit LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64) dhe S390X (GOARCH=s390x).<\/p>\n<h3>Vet<\/h3>\n<p>Analizatori i ri tests raporton gabime t\u00eb zakonshme n\u00eb shpalljet e testeve, fuzzers, benchmarks dhe shembuj n\u00eb paketat e testeve, t\u00eb tilla si emra t\u00eb formuluar gabim, n\u00ebnshkrime t\u00eb gabuara ose shembuj q\u00eb dokumentojn\u00eb identifikues q\u00eb nuk ekzistojn\u00eb. Disa prej k\u00ebtyre gabimeve mund t\u00eb \u00e7ojn\u00eb n\u00eb d\u00ebshtimin e testeve.<\/p>\n<p> <noindex><\/p>\n<p>Analizatori ekzistues printf tani raporton diagnostik\u00eb p\u00ebr thirrjet e form\u00ebs fmt.Printf(s), ku s \u00ebsht\u00eb nj\u00eb varg me format jo konstant, pa argumente t\u00eb tjera. T\u00eb tilla thirrje jan\u00eb pothuajse gjithmon\u00eb nj\u00eb gabim, sepse vlera s mund t\u00eb p\u00ebrmbaj\u00eb simbolin %; p\u00ebrdorni n\u00eb vend t\u00eb tij fmt.Print. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/60529\">60529<\/a>. Ky kontroll ka tendenc\u00eb t\u00eb b\u00ebj\u00eb zbulesa n\u00eb kodin ekzistues dhe p\u00ebr k\u00ebt\u00eb arsye aplikohet vet\u00ebm kur versioni i gjuh\u00ebs (si\u00e7 \u00ebsht\u00eb p\u00ebrcaktuar nga direktiva go e skedarit go.mod ose komentet `\/\/go:build) \u00ebsht\u00eb t\u00eb pakt\u00ebn Go 1.24, p\u00ebr t\u00eb shmangur d\u00ebshtimet e vazhdueshme t\u00eb integrimit gjat\u00eb p\u00ebrdit\u00ebsimit n\u00eb toolchain Go 1.24.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Analizatori ekzistues buildtag tani raporton diagnostik\u00eb kur ka nj\u00eb gabim <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/go#hdr-Build_constraints\">kufizimi i nd\u00ebrtimit t\u00eb versionit t\u00eb lart\u00eb<\/a> Shkoni n\u00eb direktiv\u00ebn \/\/go:build. P\u00ebr shembull, \/\/go:build go1.23.1 i referohet nj\u00eb versioni t\u00eb caktuar; n\u00eb vend t\u00eb k\u00ebsaj, p\u00ebrdorni \/\/go:build go1.23. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/64127\">#64127<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Analizatori ekzistues copylock tani raporton diagnostik\u00eb kur nj\u00eb variab\u00ebl, e shpallur n\u00eb nj\u00eb cik\u00ebl t\u00eb trefisht\u00eb \u201cfor\u201d, si\u00e7 \u00ebsht\u00eb for i := iter(); done(i); i = next(i) { \u2026 }, p\u00ebrmban sync.Locker, si\u00e7 \u00ebsht\u00eb sync.Mutex. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#language\">Go 1.22<\/a> ndryshoi sjelljen e k\u00ebtyre cikleve n\u00eb krijimin e nj\u00eb variab\u00ebl t\u00eb re p\u00ebr \u00e7do iteracion, duke kopjuar vlerat nga iteracioni i m\u00ebparsh\u00ebm; kjo kopjim nuk \u00ebsht\u00eb i sigurt p\u00ebr lock. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/66387\">#66387<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>GOCACHEPROG<\/h3>\n<p> <noindex><\/p>\n<p>Binar i brendsh\u00ebm cmd\/go dhe mekanizmi i caching t\u00eb testeve tani mund t\u00eb jan\u00eb realizuar nga procese dyt\u00ebsore q\u00eb zbatojn\u00eb protokollin JSON midis mjetit cmd\/go dhe procesit dyt\u00ebsor, t\u00eb quajtur variabla e mjedisit GOCACHEPROG. N\u00eb t\u00eb kaluar\u00ebn, kjo ishte p\u00ebr GOEXPERIMENT. Detajet e protokollit mund t\u00eb shikohen n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/cmd\/go\/internal\/cacheprog\">dokumentacionin<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h2>Koha e ekzekutimit<\/h2>\n<p> <noindex><\/p>\n<p>P\u00ebrmir\u00ebsime t\u00eb shumta t\u00eb performanc\u00ebs n\u00eb runtime reduktuan ngarkesat mbi CPU me 2-3% n\u00eb mesatare n\u00eb nj\u00eb grup p\u00ebrfaq\u00ebsues benchmarks. Rezultatet mund t\u00eb varijn\u00eb n\u00eb var\u00ebsi t\u00eb aplikacionit. K\u00ebto p\u00ebrmir\u00ebsime p\u00ebrfshijn\u00eb nj\u00eb implementim t\u00eb ri t\u00eb integruar t\u00eb map t\u00eb bazuar n\u00eb <a rel=\"nofollow\" href=\"https:\/\/abseil.io\/about\/design\/swisstables\">Tabela Suedeze<\/a>, nj\u00eb ndarje m\u00eb t\u00eb efektshme t\u00eb memories p\u00ebr objekte t\u00eb vogla dhe nj\u00eb implementim t\u00eb ri t\u00eb brendsh\u00ebm t\u00eb runtime mutex.<\/p>\n<p><\/noindex> <\/p>\n<p>Implementimi i ri i integruar i map dhe mutex-i i ri i brendsh\u00ebm mund t\u00eb \u00e7aktivizohen me konfigurimet GOEXPERIMENT=noswissmap dhe GOEXPERIMENT=nospinbitmutex gjat\u00eb nd\u00ebrtimit p\u00ebrkat\u00ebsisht.<\/p>\n<h2>Kompilatori<\/h2>\n<p>Kompilatori tashm\u00eb ndalonte p\u00ebrcaktimin e metodave t\u00eb reja me lloje pranuese, t\u00eb cilat ishin gjeneruar cgo, por ishte e mundur t\u00eb anashkalohej ky kufizim p\u00ebrmes alias llojit. Go 1.24 tani gjithmon\u00eb raporton nj\u00eb gabim n\u00ebse pranuese identifikon nj\u00eb lloj t\u00eb gjeneruar cgo, drejtp\u00ebrdrejt ose t\u00ebrthor (p\u00ebrmes aliasit t\u00eb tipit).<\/p>\n<h2>Linkeri<\/h2>\n<p>Linkeri tani gjeneron nj\u00eb identifikues nd\u00ebrtimi GNU (sh\u00ebnimi ELF NT_GNU_BUILD_ID) n\u00eb platformat ELF dhe UUID (komanda ngarkimi Mach-O LC_UUID) n\u00eb macOS si parazgjedhje. Identifikuesi i nd\u00ebrtimit ose UUID del nga identifikuesi i nd\u00ebrtimit Go. Kjo mund t\u00eb fiket me flagun e linker-it -B none, ose t\u00eb mbivendoset me flagun e linker-it -B 0xNNNN me nj\u00eb vler\u00eb heksakor t\u00eb caktuar nga p\u00ebrdoruesi.<\/p>\n<h2>Rrotullimi<\/h2>\n<p> <noindex><\/p>\n<p>Si\u00e7 \u00ebsht\u00eb theksuar n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#bootstrap\">sh\u00ebnimet e l\u00ebshimit Go 1.22<\/a>, Go 1.24 tani tani k\u00ebrkon p\u00ebr p\u00ebrmir\u00ebsim Go 1.22.6 ose m\u00eb von\u00eb. Zhvilluesit presin q\u00eb Go 1.26 do t\u00eb k\u00ebrkoj\u00eb p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar nj\u00eb l\u00ebshim t\u00eb p\u00ebrpik\u00eb Go 1.24 ose m\u00eb von\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<h2>Biblioteka standart<\/h2>\n<h3>Qasje e kufizuar n\u00eb sistemin e skedar\u00ebve n\u00ebp\u00ebrmjet direktoris\u00eb<\/h3>\n<p> <noindex><\/p>\n<p>Lloji i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a> ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb kryer operacione n\u00eb sistemin e skedar\u00ebve brenda nj\u00eb direktorie t\u00eb caktuar.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#OpenRoot\">os.OpenRoot<\/a> hap direktorin\u00eb dhe kthen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a>. Metodat n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a> punojn\u00eb n\u00eb k\u00ebt\u00eb direktori dhe nuk lejojn\u00eb q\u00eb rrug\u00ebt t\u00eb referohen n\u00eb lokacione jasht\u00eb direktoris\u00eb, duke p\u00ebrfshir\u00eb ato q\u00eb ndjekin lidhjet simbolike jasht\u00eb direktoris\u00eb. Metodat n\u00eb os.Root pasqyrojn\u00eb shumic\u00ebn e operacioneve t\u00eb sistemit t\u00eb skedar\u00ebve t\u00eb disponueshme n\u00eb paket\u00ebn os, duke p\u00ebrfshir\u00eb, p\u00ebr shembull, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Open\">os.Root.Open<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Create\">os.Root.Create<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Mkdir\">os.Root.Mkdir<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Stat\">os.Root.Stat<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Funksioni i ri i benchmark-ut<\/h3>\n<p> <noindex><\/p>\n<p>Benchmark-\u00ebt tani mund t\u00eb p\u00ebrdorin nj\u00eb metod\u00eb m\u00eb t\u00eb shpejt\u00eb dhe m\u00eb pak t\u00eb ndjeshme ndaj gabimeve <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Loop\">testing.B.Loop<\/a> p\u00ebr t\u00eb kryer iteracione benchmark-u si for b.Loop() { \u2026 } n\u00eb vend t\u00eb strukturave tipike ciklike q\u00eb p\u00ebrfshijn\u00eb b.N si for range b.N. Kjo ofron dy p\u00ebrfitime t\u00eb r\u00ebnd\u00ebsishme:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Funksioni i benchmark-ut ekzekutohet sakt\u00ebsisht nj\u00eb her\u00eb p\u00ebr \u00e7do -count, duke qen\u00eb se hapat e shtrirjes dhe pastrimit t\u00eb kushtuesh\u00ebm ekzekutohen vet\u00ebm nj\u00eb her\u00eb.<\/li>\n<li>Parametrat e thirrjes s\u00eb funksionit dhe rezultatet vazhdojn\u00eb t\u00eb ekzistojn\u00eb, duke e parandaluar kompajlerin nga optimizimi i plot\u00eb i trupit t\u00eb ciklit.<\/li>\n<\/ul>\n<h3>Funksionet e p\u00ebrmir\u00ebsuara t\u00eb pastrimit<\/h3>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#AddCleanup\">runtime.AddCleanup<\/a> \u00ebsht\u00eb nj\u00eb mekaniz\u00ebm p\u00ebrfundimtar, i cili \u00ebsht\u00eb m\u00eb fleksib\u00ebl, m\u00eb efikas dhe m\u00eb pak i ndjesh\u00ebm ndaj gabimeve se <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#SetFinalizer\">runtime.SetFinalizer<\/a>. AddCleanup lidh nj\u00eb funksion pastrimi me nj\u00eb objekt, i cili do t\u00eb ekzekutohet sapo objekti t\u00eb b\u00ebhet i paqassh\u00ebm. Megjithat\u00eb, ndryshe nga SetFinalizer, disa pastrime mund t\u00eb lidh\u00ebn me nj\u00eb objekt t\u00eb vet\u00ebm, pastrimet mund t\u00eb lidhen me treguesit e brendsh\u00ebm, pastrimet zakonisht nuk shkaktojn\u00eb rrjedhje kur objektet formojn\u00eb nj\u00eb rreth, dhe pastrimet nuk shtyjn\u00eb \u00e7lirimin e objektit ose objekteve q\u00eb ai referon. Kodi i ri duhet t\u00eb preferoj\u00eb AddCleanup mbi SetFinalizer.<\/p>\n<p><\/noindex> <\/p>\n<h3>Paketi i ri weak<\/h3>\n<p> <noindex><\/p>\n<p>Paketi i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/weak\/\">weak<\/a> ofron tregues t\u00eb dob\u00ebt.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Treguesit e dob\u00ebt jan\u00eb nj\u00eb primitiv i niveleve t\u00eb ul\u00ebta, i ofruar p\u00ebr t\u00eb krijuar struktura q\u00eb shfryt\u00ebzojn\u00eb efektivisht memorien, si\u00e7 jan\u00eb fjalor\u00ebt e dob\u00ebt p\u00ebr t\u00eb p\u00ebrputhur vlerat, fjalor\u00ebt e kanonizimit p\u00ebr gjith\u00e7ka q\u00eb nuk mbulohet nga paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unique\/\">unique<\/a>, dhe lloje t\u00eb ndryshme t\u00eb caches. P\u00ebr t\u00eb mb\u00ebshtetur k\u00ebto raste p\u00ebrdorimi, kjo version gjithashtu ofron <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/#AddCleanup\">runtime.AddCleanup<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/maphash\/#Comparable\">maphash.Comparable<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Paketi i ri crypto\/mlkem<\/h3>\n<p> <noindex><\/p>\n<p>Paketi i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/mlkem\/\">crypto\/mlkem<\/a> implementon ML-KEM-768 dhe ML-KEM-1024.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>ML-KEM \u00ebsht\u00eb nj\u00eb mekaniz\u00ebm exchange klu\u00e7esh post-kantor, i njohur m\u00eb par\u00eb si Kyber dhe specifikuar n\u00eb <a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.6028\/NIST.FIPS.203\">FIPS 203<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Paketa e re crypto\/hkdf, crypto\/pbkdf2 dhe crypto\/sha3<\/h3>\n<p> <noindex><\/p>\n<p>Paketi i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/hkdf\/\">crypto\/hkdf<\/a> implementon nj\u00eb funksion t\u00eb daljes s\u00eb \u00e7el\u00ebsit t\u00eb bazuar n\u00eb HMAC \u201cExtract-and-Expand\u201d HKDF, si\u00e7 p\u00ebrcaktohet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc5869.html\">RFC 5869<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Paketi i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/pbkdf2\/\">crypto\/pbkdf2<\/a> implementon nj\u00eb funksion t\u00eb daljes s\u00eb \u00e7el\u00ebsit t\u00eb bazuar n\u00eb fjal\u00ebkalim PBKDF2, si\u00e7 p\u00ebrcaktohet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8018.html\">Eu2.sof bg sofia telepoint \u015f\u0259kil 5<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Paketi i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha3\/\">Eu2.sof bg sofia telepoint \u015f\u0259kil 4<\/a> Eu2.sof bg sofia telepoint \u015f\u0259kil 1 <a rel=\"nofollow\" href=\"http:\/\/doi.org\/10.6028\/NIST.FIPS.202\">Eu2.sof bg sofia telepoint \u015f\u0259kil 3<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Eu2.sof bg sofia telepoint \u015f\u0259kil 2<\/p>\n<h3>Sofiya<\/h3>\n<p> <noindex><\/p>\n<p>Ky version p\u00ebrfshin <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/security\/fips140\">nj\u00eb grup t\u00eb ri mekanizmash p\u00ebr t\u00eb siguruar p\u00ebrputhshm\u00ebrin\u00eb me FIPS 140-3<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Moduli kriptografik Go \u00ebsht\u00eb nj\u00eb grup paketash t\u00eb brendshme t\u00eb bibliotek\u00ebs standarde, t\u00eb cilat p\u00ebrdoren n\u00eb m\u00ebnyr\u00eb transparente p\u00ebr t\u00eb implementuar algoritmet e miratuara FIPS 140-3. Aplikacionet nuk k\u00ebrkojn\u00eb ndryshime p\u00ebr t\u00eb p\u00ebrdorur modul kriptografik Go p\u00ebr algoritmet e miratuara.<\/p>\n<p> <noindex><\/p>\n<p>Variabla e re ambienti GOFIPS140 mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb zgjedhur versionin e modulit kriptografik Go p\u00ebr t'u p\u00ebrdorur n\u00eb nd\u00ebrtim. E reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimi GODEBUG<\/a> fips140 mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb aktivizuar modalitetin FIPS 140-3 gjat\u00eb ekzekutimit.<\/p>\n<p><\/noindex> <\/p>\n<p>Go 1.24 p\u00ebrfshin modul kriptografik Go versioni v1.0.0, i cili aktualisht po testohet me laboratorin e akredituar CMVP.<\/p>\n<h3>Paketi eksperimental i ri testing\/synctest<\/h3>\n<p> <noindex><\/p>\n<p>Paketi eksperimental i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest\/\">testing\/synctest<\/a> siguron mb\u00ebshtetje p\u00ebr testimin e kodit konkurrues.<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest\/#Run\">synctest.Run<\/a> ekzekuton nj\u00eb grup goroutines n\u00eb nj\u00eb \u201cbubullim\u00eb\u201d t\u00eb izoluar. N\u00eb bubullim\u00eb funksionet e paket\u00ebs <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\">time<\/a> puna mbi orare false.<\/li>\n<li>Funksionet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest#Wait\">synctest.Wait<\/a> pret kur t\u00eb gjitha goroutines t\u00eb bllokohen n\u00eb bubullim\u00ebn aktuale.<\/li>\n<\/ul>\n<p>Detajet mund t\u00eb shihen n\u00eb dokumentacionin e paket\u00ebs.<\/p>\n<p> <noindex><\/p>\n<p>Paketa synctest \u00ebsht\u00eb eksperimmentale dhe duhet t\u00eb aktivizohet duke vendosur GOEXPERIMENT=synctest. API e paket\u00ebs mund t\u00eb ndryshoj\u00eb n\u00eb versionet e ardhshme. N\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67434\">#67434<\/a> mund t\u00eb shihen m\u00eb shum\u00eb detaje dhe t\u00eb jepet feedback.<\/p>\n<p><\/noindex> <\/p>\n<h3>Ndryshime t\u00eb vogla n\u00eb bibliotek\u00ebn<\/h3>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/archive\/\">archive<\/a><\/h4>\n<p>Implementimet (*Writer.AddFS) n\u00eb archive\/zip dhe archive\/tar tani shkruajn\u00eb titullin e direktoreve p\u00ebr direktorin\u00eb e zbraz\u00ebt.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes\/\">bytes<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes\">bytes<\/a> shton disa funksione q\u00eb punojn\u00eb me iterator\u00ebt:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#Lines\">Lines<\/a> kthen nj\u00eb iterator mbi rreshtat e ndar\u00eb nga linja e re n\u00eb nj\u00eb slice byte.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitSeq\">SplitSeq<\/a> kthen nj\u00eb iterator mbi t\u00eb gjitha sub-slice-t\u00eb e nj\u00eb slice byte, t\u00eb ndara nga separator.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitAfterSeq\">SplitAfterSeq<\/a> ktheniterator p\u00ebr n\u00ebnprerjet e slice-it t\u00eb bajt\u00ebve, i ndar\u00eb pas \u00e7do shfaqjeje t\u00eb separatorit.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#FieldsSeq\">FieldsSeq<\/a> ktheniterator p\u00ebr n\u00ebnprerjet e slice-it t\u00eb bajt\u00ebve rreth sekuencave t\u00eb karaktereve t\u00eb hap\u00ebsir\u00ebs, si\u00e7 definohet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unicode#IsSpace\">unicode.IsSpace<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#FieldsFuncSeq\">FieldsFuncSeq<\/a> ktheniterator p\u00ebr n\u00ebnprerjet e slice-it t\u00eb bajt\u00ebve rreth sekuencave t\u00eb pikave koduese t\u00eb Unicode-it q\u00eb p\u00ebrmbushin predikatin.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes\/\">crypto\/aes<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Vlera e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes#NewCipher\">NewChipher<\/a> nuk implementon m\u00eb metodat NewCTR, NewGCM, NewCBCEncrypter dhe NewCBCDecrypter. K\u00ebto metoda ishin t\u00eb padokumentuara dhe nuk ishin t\u00eb disponueshme n\u00eb t\u00eb gjitha arkitekturat. Tani vlera <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Block\">Block<\/a> duhet t\u00eb kaloj\u00eb drejtp\u00ebrdrejt n\u00eb funksionet p\u00ebrkat\u00ebse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher\/\">crypto\/cipher<\/a>. Aktualisht, crypto\/cipher ende verifikon k\u00ebto metoda n\u00eb vlerat Block, megjith\u00ebse ato tani nuk mb\u00ebshteten m\u00eb nga biblioteka standarde.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher\/\">crypto\/cipher<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewGCMWithRandomNonce\">NewGCMWithRandomNonce<\/a> false, n\u00ebse elementi q\u00eb do t\u00eb z\u00ebvend\u00ebsohet \u00ebsht\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a>, e cila implementon AES-GCM, duke gjeneruar nj\u00eb num\u00ebr t\u00eb rast\u00ebsish\u00ebm nj\u00ebher\u00ebsh gjat\u00eb Seal dhe duke e shtuar at\u00eb n\u00eb fillim t\u00eb tekstit t\u00eb enkriptuar.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Implementimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Stream\">Stream<\/a>, e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCTR\">NewCTR<\/a> kur p\u00ebrdoret me <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes\/\">crypto\/aes<\/a> tani \u00ebsht\u00eb shum\u00eb m\u00eb e shpejt\u00eb n\u00eb amd64 dhe arm64.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewOFB\">NewOFB<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCFBEncrypter\">NewCFBEncrypter<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCFBDecrypter\">NewCFBDecrypter<\/a> tani jan\u00eb shpallur t\u00eb p\u00ebrjetshme. Modet OFB dhe CFB jan\u00eb jo-autentic\u00eb, duke lejuar n\u00eb p\u00ebrgjith\u00ebsi q\u00eb sulmet aktive t\u00eb manipulojn\u00eb dhe t\u00eb rikuperojn\u00eb tekstin e hapur. Aplikacioneve u rekomandohet t\u00eb p\u00ebrdorin <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a> n\u00eb vend. N\u00ebse moda jo-aktuale <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Stream\">Stream<\/a> \u00ebsht\u00eb e nevojshme, mund t\u00eb p\u00ebrdoret <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCTR\">NewCTR<\/a> n\u00eb vend.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/ecdsa\/\">crypto\/ecdsa<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/ecdsa#PrivateKey.Sign\">PrivateKey.Sign<\/a> tani krijon nj\u00eb n\u00ebnshkrim deterministik n\u00eb p\u00ebrputhje me <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc6979.html\">RFC 6979<\/a>, n\u00ebse burimi i rast\u00ebsis\u00eb \u00ebsht\u00eb nil.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/md5\/\">crypto\/md5<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Vlera e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/md5#New\">md5.New<\/a>, tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand\/\">crypto\/rand<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Read\">Lexo<\/a> tani garanton papastrim. N\u00ebse Read has nj\u00eb gabim gjat\u00eb leximit <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Reader\">Reader<\/a>, programi do t\u00eb mbyllet p\u00ebrgjithmon\u00eb. Vini re se Reader-i i parazgjedhur \u00ebsht\u00eb dokumentuar t\u00eb funksionoj\u00eb gjithmon\u00eb me sukses, prandaj ky ndryshim duhet t\u00eb prekur vet\u00ebm ato programe q\u00eb tejkalojn\u00eb variablin Reader. Nj\u00eb p\u00ebrjashtim jan\u00eb kernel\u00ebt Linux deri n\u00eb versionin 3.17, ku Reader-i i parazgjedhur ende hap \/dev\/urandom dhe mund t\u00eb d\u00ebshtoj\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<p>N\u00eb Linux 6.11 dhe m\u00eb von\u00eb, Reader tani p\u00ebrdor thirrjen sistemike getrandom p\u00ebrmes vDSO. Kjo \u00ebsht\u00eb shum\u00eb m\u00eb e shpejt\u00eb, zakonisht p\u00ebr leximet e vogla.<\/p>\n<p>N\u00eb OpenBSD, Reader tani p\u00ebrdor arc4random_buf(3).<\/p>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Text\">Text<\/a> tani mund t\u00eb gjeneroj\u00eb vargje teksti t\u00eb rast\u00ebsishme t\u00eb sigurta nga kriptografia.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa\/\">crypto\/rsa<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GenerateKey<\/a> tani tani kthen nj\u00eb gabim n\u00ebse k\u00ebrkohet nj\u00eb \u00e7el\u00ebs me gjat\u00ebsi m\u00eb pak se 1024 bit. T\u00eb gjitha metodat Sign, Verify, Encrypt dhe Decrypt tani kthejn\u00eb nj\u00eb gabim n\u00ebse p\u00ebrdoren me nj\u00eb \u00e7el\u00ebs me madh\u00ebsi m\u00eb pak se 1024 bit. \u00c7el\u00ebsat e till\u00eb nuk jan\u00eb t\u00eb sigurt dhe nuk duhet t\u00eb p\u00ebrdoren. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Konfigurimi GODEBUG<\/a> rsa1024min=0 rikthen sjelljen e vjet\u00ebr, por zhvilluesit e Go rekomandojn\u00eb ta b\u00ebni k\u00ebt\u00eb vet\u00ebm kur \u00ebsht\u00eb e nevojshme dhe vet\u00ebm n\u00eb teste, p\u00ebr shembull duke shtuar rreshtin \/\/go:debug rsa1024min=0 n\u00eb skedarin e testit. I ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#example-GenerateKey-TestKey\">\u00ebsht\u00eb<\/a> GenerateKey ofron nj\u00eb \u00e7el\u00ebs testimi standard 2024-bit t\u00eb leht\u00eb p\u00ebr t'u p\u00ebrdorur.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Tani \u00ebsht\u00eb e sigurt dhe m\u00eb efikase t\u00eb th\u00ebrras\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Precompute\">PrivateKey.Precompute<\/a> n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Validate\">PrivateKey.Validate<\/a>. Precompute tani \u00ebsht\u00eb m\u00eb i shpejt\u00eb n\u00eb prani t\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrecomputedValues\">PrecomputedValues<\/a>, p\u00ebr shembull kur nxirren \u00e7el\u00ebsat nga JSON.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Pakoja tani refuzon m\u00eb shum\u00eb \u00e7el\u00ebsa t\u00eb gabuar, edhe kur Validate nuk thirret, dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GenerateKey<\/a> tani mund t\u00eb kthej\u00eb gabime t\u00eb reja p\u00ebr burimet e thyer t\u00eb rast\u00ebsis\u00eb. Polat <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Primes\">Primes<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Precomputed\">Precomputed<\/a> struktura <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey\">PrivateKey<\/a> tani p\u00ebrdoren dhe validohen edhe kur disa vlera mungojn\u00eb. Jan\u00eb b\u00ebr\u00eb gjithashtu ndryshime n\u00eb crypto\/x509 p\u00ebr analizimin dhe nxjerrjen e \u00e7el\u00ebsave RSA, q\u00eb do t\u00eb p\u00ebrshkruhen m\u00eb posht\u00eb.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#SignPKCS1v15\">SignPKCS1v15<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#VerifyPKCS1v15\">VerifyPKCS1v15<\/a> tani mb\u00ebshtesin SHA-512\/224, SHA-512\/256 dhe SHA-3.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GenerateKey<\/a> tani p\u00ebrdor nj\u00eb metod\u00eb pak m\u00eb t\u00eb ndryshme p\u00ebr gjenerimin e eksponentit privat (funksioni i Carmichael n\u00eb vend t\u00eb funksionit t\u00eb Eulerit). Aplikacione t\u00eb rralla q\u00eb rind\u00ebrtojn\u00eb \u00e7el\u00ebsat vet\u00ebm nga numrat primo mund t\u00eb krijojn\u00eb rezultate t\u00eb ndryshme, por t\u00eb kompatib\u00ebl.<\/p>\n<p><\/noindex> <\/p>\n<p>Operacionet mbi \u00e7el\u00ebsat publik\u00eb dhe privat\u00eb tani jan\u00eb deri n\u00eb dy her\u00eb m\u00eb t\u00eb shpejta n\u00eb wasm.<\/p>\n<h3>crypto\/sha*<\/h3>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha1\/\">crypto\/sha1<\/a>: vlera e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha1#New\">sha1.New<\/a> tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha256\/\">crypto\/sha256<\/a>: vlerat e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha256#New\">sha256.New<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha256#New224\">sha256.New224<\/a> tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha512\/\">crypto\/sha512<\/a>: vlerat e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New\">sha512.New<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New384\">sha512.New384<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New512_224\">sha512.New512_224<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New512_256\">sha512.New512_256<\/a>, tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle\/\">crypto\/subtle<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni i ri <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle#WithDataIndependentTiming\">WithDataIndependentTiming<\/a> lejon p\u00ebrdoruesit t\u00eb ekzekutoj\u00eb funksione me funksione t\u00eb p\u00ebrfshira specifike p\u00ebr arkitektur\u00ebn, t\u00eb cilat garantojn\u00eb invarianc\u00ebn e disa instruksioneve n\u00eb lidhje me koh\u00ebn e vler\u00ebs s\u00eb t\u00eb dh\u00ebnave. Kjo mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb siguruar q\u00eb kodi i krijuar p\u00ebr t\u00eb punuar n\u00eb koh\u00eb konstante nuk \u00ebsht\u00eb optimizuar nga funksionet e nivelit t\u00eb procesorit n\u00eb nj\u00eb m\u00ebnyr\u00eb q\u00eb funksionon n\u00eb koh\u00eb ndryshimi. Aktualisht, WithDataIndependentTiming p\u00ebrdor bitin PSTATE.DIT n\u00eb arm64 dhe nuk b\u00ebn asgj\u00eb n\u00eb t\u00eb gjitha arkitekturat e tjera. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Konfigurimi GODEBUG<\/a> dataindependenttiming=1 aktivizon modalitetin DIT p\u00ebr t\u00eb gjith\u00eb programin Go.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>P\u00ebrfundimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle#XORBytes\">XORBytes<\/a> duhet t\u00eb mbuloj\u00eb plot\u00ebsisht ose aspak me hyrjen. M\u00eb par\u00eb, sjellja ishte e paqart\u00eb n\u00eb m\u00ebnyr\u00eb tjet\u00ebr, nd\u00ebrsa tani XORBytes do t\u00eb panikoj\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls\/\">crypto\/tls<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Serveri TLS tani mb\u00ebshtet Encrypted Client Hello (ECH). Kjo mund\u00ebsi mund t\u00eb aktivizohet duke plot\u00ebsuar fush\u00ebn <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.EncryptedClientHelloKeys\">Config.EncryptedClientHelloKeys<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Mekanizmi i ri i k\u00ebmbimit t\u00eb \u00e7el\u00ebsit post-kvant <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#X25519MLKEM768\">X25519MLKEM768<\/a> tani mb\u00ebshtetet dhe \u00ebsht\u00eb aktivizuar si parazgjedhje kur <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.CurvePreferences\">Config.CurvePreferences<\/a> \u00ebsht\u00eb nil. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Konfigurimi GODEBUG<\/a> tlsmlkem=0 kthen defoltin.<\/p>\n<p><\/noindex> <\/p>\n<p>Mb\u00ebshtetja p\u00ebr k\u00ebmbimin e \u00e7el\u00ebsit eksperimental X25519Kyber768Draft00 \u00ebsht\u00eb hequr.<\/p>\n<p> <noindex><\/p>\n<p>Rendi i k\u00ebmbimit t\u00eb \u00e7el\u00ebsit tani trajtohet plot\u00ebsisht nga paketa crypto\/tls. Rendi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.CurvePreferences\">Config.CurvePreferences<\/a> tani injorohet, dhe p\u00ebrmbajtja p\u00ebrdoret vet\u00ebm p\u00ebr t\u00eb p\u00ebrcaktuar se cilat k\u00ebmbime \u00e7el\u00ebsi t\u00eb aktivizohen kur fusha \u00ebsht\u00eb e plot\u00ebsuar.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Fusha e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#ClientHelloInfo.Extensions\">ClientHelloInfo.Extensions<\/a> liston identifikator\u00ebt e zgjerimeve t\u00eb marra n\u00eb mesazhin Client Hello. Kjo mund t\u00eb jet\u00eb e dobishme p\u00ebr t\u00eb marr\u00eb gjurm\u00ebt e klient\u00ebve TLS.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509\/\">crypto\/x509<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">Konfigurimi GODEBUG<\/a> x509sha1 \u00ebsht\u00eb hequr. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certficicate.Verify<\/a> nuk mb\u00ebshtet m\u00eb n\u00ebnshkrimet e bazuara n\u00eb SHA-1.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#OID\">OID<\/a> tani implementon nd\u00ebrfaqet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Fusha e defoltit t\u00eb politikave t\u00eb certifikat\u00ebs \u00ebsht\u00eb ndryshuar nga <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.PolicyIdentifiers\">Certificate.PolicyIdentifiers<\/a> n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Policies\">Certificate.Policies<\/a>. Gjat\u00eb analiz\u00ebs s\u00eb certifikatave, t\u00eb dy fushat do t\u00eb plot\u00ebsohen, por kur krijohet politika e certifikatave, ato do t\u00eb merren nga fusha Certificate.Policies n\u00eb vend t\u00eb Certificate.PolicyIdentifiers. Ky ndryshim mund t\u00eb kthehet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">duke p\u00ebrdorur GODEBUG<\/a> x509usepolicies=0.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#CreateCertificate\">CreateCertificate<\/a> tani do t\u00eb gjeneroj\u00eb nj\u00eb num\u00ebr serial duke p\u00ebrdorur nj\u00eb metod\u00eb t\u00eb p\u00ebrputhshme me RFC 5280 kur d\u00ebrgon modelin p\u00ebrmes fush\u00ebs <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.SerialNumber\">Certificate.SerialNumber<\/a> nil, n\u00eb vend t\u00eb d\u00ebshtimit.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certificate.Verify<\/a> tani mb\u00ebshtet validimin e politik\u00ebs, si\u00e7 \u00ebsht\u00eb p\u00ebrcaktuar n\u00eb RFC 5280 dhe RFC 9618. Fusha e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#VerifyOptions.CertificatePolicies\">VerifyOptions.CertificatePolicies<\/a> mund t\u00eb vendoset n\u00eb nj\u00eb grup t\u00eb pranuesh\u00ebm politikash <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#OID\">OIDs<\/a>Vet\u00ebm zinxhir\u00ebt e certifikatave me grafika t\u00eb vlefshme politike do t\u00eb kthehen nga <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certificate.Verify<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#MarshalPKCS8PrivateKey\">MarshalPKCS8PrivateKey<\/a> tani kthen nj\u00eb gabim n\u00eb vend t\u00eb nxjerrjes s\u00eb nj\u00eb \u00e7el\u00ebsi RSA t\u00eb gabuar. (<a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#MarshalPKCS1PrivateKey\">MarshalPKCS1PrivateKey<\/a> nuk ka kthim gabimi dhe sjellja e tij me \u00e7el\u00ebsa t\u00eb gabuar t\u00eb siguruar vazhdon t\u00eb jet\u00eb e pacaktuar.)<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#ParsePKCS1PrivateKey\">ParsePKCS1PrivateKey<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#ParsePKCS8PrivateKey\">ParsePKCS8PrivateKey<\/a> tani p\u00ebrdorin dhe validuojn\u00eb vlerat e koduara CRT, prandaj mund t\u00eb refuzojn\u00eb \u00e7el\u00ebsat RSA t\u00eb gabuara q\u00eb m\u00eb par\u00eb ishin pranuar. P\u00ebrdorimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">i parametrave GODEBUG<\/a> x509rsacrt=0 kthen n\u00eb rinum\u00ebrimin e vlerave CRT.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf\/\">debug\/elf<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf\">debug\/elf<\/a> shton mb\u00ebshtetje p\u00ebr trajtimin e versioneve t\u00eb simboleve n\u00eb skedar\u00ebt dinamik\u00eb ELF (Executable and Linkable Format). Metoda e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersions\">File.DynamicVersions<\/a> kthen nj\u00eb list\u00eb versionesh dinamike, t\u00eb p\u00ebrcaktuara n\u00eb skedarin ELF. Metoda e re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersionNeeds\">File.DynamicVersionNeeds<\/a> kthen nj\u00eb list\u00eb versionesh dinamike q\u00eb k\u00ebrkohen nga ky skedar ELF, t\u00eb cilat jan\u00eb t\u00eb p\u00ebrcaktuara n\u00eb objekte t\u00eb tjera ELF. P\u00ebrfundimisht, fushat e reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#Symbol\">Symbol.HasVersion<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#Symbol\">Symbol.VersionIndex<\/a> tregohet versioni i simbolit.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/\">encoding<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Dy nd\u00ebrfaqe t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">TextAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">BinaryAppender<\/a> u prezantuan p\u00ebr t\u00eb shtuar nj\u00eb p\u00ebrfaq\u00ebsim tekstual ose binar t\u00eb objektit n\u00eb nj\u00eb prerje bytesh. K\u00ebto nd\u00ebrfaqe ofrojn\u00eb t\u00eb nj\u00ebjt\u00ebn funksionalitet si <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextMarshaler\">TextMarshaler<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryMarshaler\">BinaryMarshaler<\/a>, por n\u00eb vend t\u00eb alokimit t\u00eb nj\u00eb prerje t\u00eb re \u00e7do her\u00eb, ato shtojn\u00eb t\u00eb dh\u00ebnat direkt n\u00eb prerjen ekzistuese. K\u00ebto nd\u00ebrfaqe tani jan\u00eb zbatuar nga llojet e bibliotek\u00ebs standarde q\u00eb tashm\u00eb zbatojn\u00eb TextMarshaler dhe\/ose BinaryMarshaler.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/json\/\">encoding\/json<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Kur nd\u00ebrtohet fush\u00eb strukture me opsionin e ri omitzero n\u00eb etiket\u00ebn e fush\u00ebs, ajo do t\u00eb \u00e7ohet posht\u00eb n\u00ebse vlera e saj \u00ebsht\u00eb zero. N\u00ebse lloji i fush\u00ebs ka metod\u00ebn IsZero() bool, ajo do t\u00eb p\u00ebrdoret p\u00ebr t\u00eb p\u00ebrcaktuar n\u00ebse vlera \u00ebsht\u00eb zero. Ndryshe, vlera do t\u00eb jet\u00eb zero n\u00ebse \u00ebsht\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#The_zero_value\">vlera zero p\u00ebr llojin e tij<\/a>. Etiqueta e fush\u00ebs omitzero \u00ebsht\u00eb m\u00eb e past\u00ebr dhe m\u00eb pak e prirur ndaj gabimeve se omitempty, kur q\u00ebllimi \u00ebsht\u00eb t\u00eb hiqen vlerat zero. N\u00eb ve\u00e7anti, ndryshe nga omitempty, omitzero hiqet vlerat zero <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time#Time\">time.Time<\/a> e cila \u00ebsht\u00eb nj\u00eb burim i zakonsh\u00ebm i problemeve.<\/p>\n<p><\/noindex> <\/p>\n<p>N\u00ebse t\u00eb dyja omitempty dhe omitzero jan\u00eb t\u00eb p\u00ebrcaktuara, fusha do t\u00eb hiqet n\u00ebse vlera \u00ebsht\u00eb e zbraz\u00ebt ose zero (ose menj\u00ebher\u00eb s\u00eb bashku).<\/p>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/json#UnmarshalTypeError.Field\">UnmarshalTypeError.Field<\/a> tani p\u00ebrfshin struktura t\u00eb nd\u00ebrtuara p\u00ebr t\u00eb ofruar mesazhe m\u00eb t\u00eb detajuara gabimi.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types\/\">go\/types<\/a><\/h4>\n<p>T\u00eb gjitha strukturat e dh\u00ebnave go\/types, t\u00eb cilat zbulojn\u00eb sekuencat e \u00e7ift\u00ebve t\u00eb metodave, si Len() int dhe At(int) T, tani gjithashtu kan\u00eb metoda q\u00eb kthejn\u00eb iteratues, duke lejuar q\u00eb kodi i till\u00eb t\u00eb jet\u00eb m\u00eb i thjesht\u00eb:<\/p>\n<p> params := fn.Type.(*types.Signature).Params() for i := 0; i &lt; params.Len(); i++ {   use(params.At(i)) }   <\/p>\n<p>P\u00ebr k\u00ebt\u00eb:<\/p>\n<p> for param := range fn.Signature().Params().Variables() {   use(param) }   <noindex><\/p>\n<p>Metodat: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.EmbeddedTypes\">Interface.EmbeddedTypes<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.ExplicitMethods\">Interface.ExplicitMethods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.Methods\">Interface.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#MethodSet.Methods\">MethodSet.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Named.Methods\">Named.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Scope.Children\">Scope.Children<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Struct.Fields\">Struct.Fields<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Tuple.Variables\">Tuple.Variables<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#TypeList.Types\">TypeList.Types<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#TypeParamList.TypeParams\">TypeParamList.TypeParams<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Union.Terms\">Union.Terms<\/a><\/p>\n<p><\/noindex> <\/p>\n<h4>hash\/*<\/h4>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/adler32\/\">hash\/adler32<\/a>: vlera e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/adler32#New\">E re<\/a>, tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32\/\">hash\/crc32<\/a>: vlerat e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32#New\">E re<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32#NewIEEE\">NewIEEE<\/a>, tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc64\/\">hash\/crc64<\/a>: vlera e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc64#New\">E re<\/a>, tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv\/\">hash\/fnv<\/a>: vlerat e kthyer <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New32\">New32<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New32a\">New32a<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New64\">New64<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New64a\">New64a<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New128\">New128<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New128a\">New128a<\/a>, tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash\/\">hash\/maphash<\/a>: funksione t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash#Comparable\">Comparable<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash#WriteComparable\">WriteComparable<\/a> mund t\u00eb llogarisin nj\u00eb hash p\u00ebr \u00e7do vler\u00eb q\u00eb \u00ebsht\u00eb e krahasueshme. Kjo lejon q\u00eb t\u00eb hashohen gj\u00ebra kudo q\u00eb mund t\u00eb p\u00ebrdoren si \u00e7el\u00ebs t\u00eb fjalor\u00ebve Go.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog\/\">log\/slog<\/a><\/h4>\n<p> <noindex><\/p>\n<p>E re <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#DiscardHandler\">DiscardHandler<\/a> \u00ebsht\u00eb nj\u00eb trajtues q\u00eb nuk p\u00ebrfshihet kurr\u00eb dhe gjithmon\u00eb hedh daljen e tij.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#Level\">Niveli<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#LevelVar\">LevelVar<\/a> tani implementojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4>math\/*<\/h4>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big\/\">math\/big<\/a>: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Float\">Float<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Int\">Int<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Rat\">Rat<\/a> tani implementojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/\">math\/rand<\/a>: thirrjet e funksionit t\u00eb lart\u00eb q\u00eb jan\u00eb dekurajuar <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand#Seed\">Seed<\/a> nuk kan\u00eb ndonj\u00eb efekt. P\u00ebr t\u00eb rikthyer sjelljen e m\u00ebparshme, mund t\u00eb p\u00ebrdorni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">konfigurimit GODEBUG<\/a> randseednop=0. M\u00eb shum\u00eb kontekst n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67273\">propozimi 67273<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2\/\">math\/rand\/v2<\/a>: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2#ChaCha8\">ChaCha8<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2#PCG\">PCG<\/a> tani implementojn\u00eb nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/\">net<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net#ListenConfig\">ListenCondig<\/a> tani p\u00ebrdor MPTCP si parazgjedhje n\u00eb sistemet ku mb\u00ebshtetet (deri tani vet\u00ebm Linux).<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net#IP\">IP<\/a> tani implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http\/\">net\/http<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Ka ndryshuar kufizimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport\">Transport<\/a> p\u00ebr p\u00ebrgjigjet informative 1xx n\u00eb p\u00ebrgjigje t\u00eb k\u00ebrkes\u00ebs. M\u00eb par\u00eb, kjo ndalte k\u00ebrkes\u00ebn dhe ktheu nj\u00eb gabim pas marrjes s\u00eb m\u00eb shum\u00eb se 5 p\u00ebrgjigjeve 1xx. Tani, kjo kthen nj\u00eb gabim vet\u00ebm n\u00ebse e gjith\u00eb madh\u00ebsia e t\u00eb gjitha p\u00ebrgjigjeve 1xx tejkalon konfigurimin <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.MaxResponseHeaderBytes\">Transport.MaxResponseHeaderBytes<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, kur k\u00ebrkesa ka nj\u00eb hije p\u00ebr gjurmim <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http\/httptrace#ClientTrace.Got1xxResponse\">net\/http\/httptrace.ClientTrace.Got1xxResponse<\/a>, tani nuk ka kufizim n\u00eb numrin e p\u00ebrgjigjeve totale 1xx. Hija Got1xxResponse mund t\u00eb kthej\u00eb nj\u00eb gabim p\u00ebr t\u00eb ndaluar k\u00ebrkes\u00ebn.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport\">Transport<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server\">Server<\/a> tani kan\u00eb nj\u00eb fush\u00eb HTTP2, e cila lejon konfigurimin e cil\u00ebsimeve t\u00eb protokollit HTTP\/2.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Fushat e reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server.Protocols\">Server.Protocols<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.Protocols\">Transport.Protocols<\/a> ofrojn\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb thjesht\u00eb p\u00ebr t\u00eb konfiguruar se cilat protokolle HTTP serveri ose klienti p\u00ebrdorin.<\/p>\n<p><\/noindex> <\/p>\n<p>Serveri dhe klienti mund t\u00eb konfigurohen p\u00ebr t\u00eb mb\u00ebshtetur lidhjet e pa enkriptuara HTTP\/2.<\/p>\n<p> <noindex><\/p>\n<p>Kur <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server.Protocols\">Server.Protocols<\/a> ka n\u00eb p\u00ebrmbajtjen UnencrypterHTTP2, serveri do t\u00eb pranoj\u00eb lidhjet HTTP\/2 n\u00eb porte t\u00eb pa enkriptuara. Serveri mund t\u00eb pranoj\u00eb menj\u00ebher\u00eb HTTP\/1 dhe HTTP\/2 t\u00eb pa enkriptuar n\u00eb t\u00eb nj\u00ebjtin port.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Kur <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.Protocols\">Transport.Protocols<\/a> ka n\u00eb p\u00ebrmbajtjen UnencryptedHTTP2 dhe nuk ka HTTP1, transporti do t\u00eb p\u00ebrdor\u00eb HTTP\/2 t\u00eb pa enkriptuar p\u00ebr adresat <a rel=\"nofollow\" href=\"http:\/\/.\">http:\/\/.<\/a> N\u00ebse transporti \u00ebsht\u00eb konfiguruar t\u00eb p\u00ebrdor\u00eb menj\u00ebher\u00eb HTTP\/1 dhe HTTP\/2 t\u00eb pa-enkriptuar, ai do t\u00eb p\u00ebrdor\u00eb HTTP\/1.<\/p>\n<p><\/noindex> <\/p>\n<p>Mb\u00ebshtetje p\u00ebr HTTP\/2 t\u00eb pa-enkriptuar p\u00ebrdor \u2018HTTP\/2 me dijeni paraprake\u2019 (RFC 9113, seksioni 3.3). Titulli i vjetruar \u201cUpgrade: h2c\u201d nuk mb\u00ebshtetet.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip\/\">net\/netip<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#Addr\">Addr<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#AddrPort\">AddrPort<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#Prefix\">Prefix<\/a> tani implementojn\u00eb interfesat <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/url\/\">net\/url<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/url#URL\">URL<\/a> tani gjithashtu implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user\/\">os\/user<\/a><\/h4>\n<p> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> tani mund t\u00eb p\u00ebrdoret n\u00eb Windows Nano Server. Implementimi \u00ebsht\u00eb p\u00ebrdit\u00ebsuar p\u00ebr t\u00eb shmangur p\u00ebrdorimin e funksioneve nga biblioteka NetApi32, e cila mungon n\u00eb Nano Server.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Lookup\">Lookup<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#LookupId\">LookupId<\/a> tani mb\u00ebshtesin llogarit\u00eb e sh\u00ebrbimit t\u00eb integruar t\u00eb p\u00ebrdoruesit:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>NT AUTHORITYSYSTEM<\/li>\n<li>NT AUTHORITYLOCAL SERVICE<\/li>\n<li>NT AUTHORITYNETWORK SERVICE<\/li>\n<\/ul>\n<p> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> \u00ebsht\u00eb p\u00ebrshpejtuar ndjesh\u00ebm kur p\u00ebrdoruesi aktual \u00ebsht\u00eb i lidhur me nj\u00eb domain t\u00eb ngadalsh\u00ebm, q\u00eb \u00ebsht\u00eb nj\u00eb rast i zakonsh\u00ebm p\u00ebr shum\u00eb p\u00ebrdorues korporativ\u00eb. Tani paraqitja e performanc\u00ebs s\u00eb implementimit \u00ebsht\u00eb n\u00eb rendin e milisekondave, krahasuar me implementimin e m\u00ebparsh\u00ebm, i cili mund t\u00eb zgjaste disa sekonda, madje minuta, deri n\u00eb p\u00ebrfundim.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00eb Windows <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> tani kthen p\u00ebrdoruesin pronar t\u00eb procesit, kur trau aktual e paraqet veten si nj\u00eb p\u00ebrdorues tjet\u00ebr. M\u00eb par\u00eb kjo ktheu nj\u00eb gabim.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/regexp\/\">regexp<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/regexp#Regexp\">Regexp<\/a> tani implementon nd\u00ebrfaqen <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAdapter<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/\">runtime<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funksioni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#GOROOT\">GOROOT<\/a> tani \u00ebsht\u00eb shpallur i vjetruar. N\u00eb kodin e ri duhet t\u00eb preferohet p\u00ebrdorimi i rrug\u00ebs sistemore p\u00ebr t\u00eb p\u00ebrcaktuar binarin \u201cgo\u201d dhe t\u00eb p\u00ebrdoret go env GOROOT p\u00ebr t\u00eb p\u00ebrcaktuar GOROOT.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings\/\">strings<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Paketa <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings\">strings<\/a> shton disa funksione p\u00ebr t\u00eb punuar me iterator\u00ebt:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#Lines\">Lines<\/a> kthen nj\u00eb iterator mbi vargjet e ndara nga linjat e reja n\u00eb nj\u00eb varg.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitSeq\">SplitSeq<\/a> kthen nj\u00eb iterator mbi t\u00eb gjitha n\u00ebnstringat e nj\u00eb vargu, t\u00eb ndara nga separator\u00ebt.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitAfterSeq\">SplitAfterSeq<\/a> kthen nj\u00eb iterator mbi n\u00ebnstringat e vargut, t\u00eb ndara pas \u00e7do ndodhi t\u00eb separatorit.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#FieldsSeq\">FieldsSeq<\/a> kthen nj\u00eb iterator mbi n\u00ebnstringat e vargut rreth sekuencave t\u00eb karaktereve t\u00eb zbraz\u00ebt, si\u00e7 \u00ebsht\u00eb p\u00ebrcaktuar.<a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unicode#IsSpace\">unicode.IsSpace<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#FieldsFuncSeq\">FieldsFuncSeq<\/a> kthen nj\u00eb iterator mbi n\u00ebnstringat e vargut rreth sekuencave t\u00eb kodit t\u00eb Unicode, q\u00eb plot\u00ebsojn\u00eb predikatin.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sync\/\">sync<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Implementimi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sync#Map\">sync.Map<\/a> \u00ebsht\u00eb modifikuar, duke p\u00ebrmir\u00ebsuar performanc\u00ebn, sidomos p\u00ebr ndryshimet n\u00eb fjalor. P\u00ebr shembull, \u00ebsht\u00eb m\u00eb pak e mundshme t\u00eb ket\u00eb p\u00ebrplasje t\u00eb ndryshimeve t\u00eb grupeve t\u00eb palidhura n\u00eb fjalor\u00ebt e m\u00ebdhenj, dhe tani nuk k\u00ebrkohet koh\u00eb e shtuar p\u00ebr t\u00eb arritur n\u00eb nj\u00eb fjalor me ngarkes\u00eb t\u00eb ul\u00ebt konfronti.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00ebse hasni ndonj\u00eb problem, vendosni GOEXPERIMENT=nosynchashtriemap gjat\u00eb nd\u00ebrtimit p\u00ebr t\u00eb kthyer n\u00eb implementimin e vjet\u00ebr dhe, ju lutem, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/new\">mbushni formularin e problemit<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/\">testimi<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Metoda t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#T.Context\">T.Context<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Context\">B.Context<\/a> kthejn\u00eb kontekstin q\u00eb anulohet pas p\u00ebrfundimit t\u00eb prov\u00ebs dhe para ekzekutimit t\u00eb funksioneve t\u00eb pastrimit t\u00eb prov\u00ebs.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Metoda t\u00eb reja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#T.Chdir\">T.Chdir<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Chdir\">B.Chdir<\/a> mund t\u00eb p\u00ebrdoren p\u00ebr t\u00eb ndryshuar direktorin\u00eb e pun\u00ebs p\u00ebr periudh\u00ebn e prov\u00ebs ose benchmark-ut.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/text\/template\/\">text\/template<\/a><\/h4>\n<p>Shabllonet tani mb\u00ebshtesin range-over-func dhe range-over-int.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\/\">time<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time#Time\">Koha<\/a> tani implementon nd\u00ebrfaqet <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> dhe <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h2>Portat<\/h2>\n<h3>Linux<\/h3>\n<p> <noindex><\/p>\n<p>Si ishte <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23#linux\">u shpall<\/a> n\u00eb sh\u00ebnimet e l\u00ebshimit t\u00eb Go 1.23, Go 1.24 k\u00ebrkon b\u00ebrtham\u00ebn Linux version 3.2 ose m\u00eb von\u00eb.<\/p>\n<p><\/noindex> <\/p>\n<h3>Darwin<\/h3>\n<p>Go 1.24 \u00ebsht\u00eb l\u00ebshimi i fundit q\u00eb do t\u00eb funksionoj\u00eb n\u00eb macOS 11 Big Sur. Go 1.25 do t\u00eb k\u00ebrkoj\u00eb macOS 12 Monterey ose m\u00eb von\u00eb.<\/p>\n<h3>WebAssembly<\/h3>\n<p>Direktiva e kompajlerit go:wasmexport \u00ebsht\u00eb shtuar n\u00eb programet Go p\u00ebr eksportimin e funksioneve n\u00eb hostin WebAssembly.<\/p>\n<p> <noindex><\/p>\n<p>N\u00eb WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm) Go 1.24 mb\u00ebshtet nd\u00ebrtimin e programit Go si <a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/WASI\/blob\/63a46f61052a21bfab75a76558485cf097c0dbba\/legacy\/application-abi.md#current-unstable-abi\">reactor\/library<\/a> n\u00ebp\u00ebrmjet sh\u00ebnimit t\u00eb flamurit t\u00eb nd\u00ebrtimit -buildmode=c-shared.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>M\u00eb shum\u00eb lloje tani lejohet si lloj argumenti ose rezultati p\u00ebr funksionet go:wasmimport. Sidomos, bool, string, uintptr dhe tregues n\u00eb lloje t\u00eb caktuara jan\u00eb t\u00eb lejuara (detajet mund t\u00eb shihni n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/compile#hdr-WebAssembly_Directives\">dokumentacionin<\/a>), s\u00eb bashku me llojet e numrave t\u00eb plot\u00eb 32-bit dhe 64-bit dhe t\u00eb numrave me pik\u00eb t\u00eb l\u00ebngshme, si dhe unsafe.Pointer, t\u00eb cilat tashm\u00eb jan\u00eb t\u00eb lejuara. K\u00ebto lloje gjithashtu lejojn\u00eb si lloje argumenti ose rezultati p\u00ebr funksionet go:wasmexport.<\/p>\n<p><\/noindex> <\/p>\n<p>Skedar\u00ebt mb\u00ebshtet\u00ebs p\u00ebr WebAssembly jan\u00eb zhvendosur n\u00eb lib\/wasm nga misc\/wasm.<\/p>\n<p>Madh\u00ebsia origjinale e memories \u00ebsht\u00eb reduktuar ndjesh\u00ebm, ve\u00e7an\u00ebrisht p\u00ebr aplikacionet e vogla WebAssembly.<\/p>\n<h3>Windows<\/h3>\n<p> <noindex><\/p>\n<p>Porti 32-bit windows\/arm (GOOS=windows GOARCH=arm) \u00ebsht\u00eb sh\u00ebnuar si i thyer. Detajet n\u00eb <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/70705\">#70705<\/a><\/p>\n<p><\/noindex><\/p>\n<p>Burimi: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/17884044\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u044f\u0437\u044b\u043a\u0430 Go, \u0432\u0435\u0440\u0441\u0438\u044f 1.24, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0443\u0441\u0442\u044f \u0448\u0435\u0441\u0442\u044c \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u043e\u0441\u043b\u0435 Go 1.23. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0440\u0435\u043b\u0438\u0437 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 Go 1. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Go \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u0436\u0434\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435 Go 1.24 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0442\u0438\u043f\u043e\u0432: \u0430\u043b\u0438\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":121951,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-121950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/news\/go-1-24\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Go 1.24 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/news\/go-1-24\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-02-15T12:22:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-02-15T12:22:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Go 1.24 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/go-1-24","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Go 1.24 | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/news\/go-1-24","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-02-15T12:22:29+00:00","article:modified_time":"2025-02-15T12:22:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"121950","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 10:38:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 10:38:20","updated":"2026-01-23 10:38:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/121950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=121950"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/121950\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/121951"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=121950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=121950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=121950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}