Lëshimi i gjuhës së programimit Go 1.26

Pas një periudhë gjashtëmujori zhvillimi, u lançua versioni 1.26 i gjuhës së programimit Go, e cila është zhvilluar nga kompania Google në bashkëpunim me komunitetin. Gjuha kombinon performancën e lartë që karakterizon gjuhët e kompiluara me përfitimet e gjuhëve skrotpive, siç janë thjeshtësia e kodimit, shpejtësia e lartë e zhvillimit dhe mbrojtja nga gabimet. Kodi i projektit shpërndahet nën licencën BSD.

Sintaksa e Go bazohet në elemente të njohura të gjuhës C me huazime të veçanta nga gjuha Oberon. Gjuha është mjaft konçize, por kodi lexohet dhe perceptohet lehtësisht. Kodi në gjuhën Go kompilohet në skedarë executable të veçantë, që funksionojnë natyrshëm, pa përdorimin e një makine virtuale (modulet e profilimit, debuguese dhe nënkategoritë e tjera të zbulimit të problemeve integrohen si komponente runtime), duke mundësuar arritjen e një performance të ngjashme me programet në gjuhën C.

Projekti është fillimisht zhvilluar me një fokus në programimin me shumë përgjegjësi dhe punën efikase në sisteme me shumë bërthama. Për shembull, në nivelin e operatorëve janë zbatuar mjete për organizimin e llogaritjeve paralele dhe ndërveprimin mes metodave që ekzekutohen paralelisht. Gjuha gjithashtu ofron mjete të ndërtuara për mbrojtjen nga daljet jashtë kufijve të buffers dhe mundësinë e përdorimit të mbledhësit të plehrave.

Ndryshimet në publikimin e ri përfshijnë:

  • Garuesi i mbeturinave "greenteagc" Ă«shtĂ« aktivizuar si parazgjedhje, i optimizuar pĂ«r tĂ« rritur performancĂ«n e krijimit dhe skanimit tĂ« objekteve tĂ« vogla. NĂ« aplikacionet ku pĂ«rdoret intensivisht mbledhja e mbeturinave, me "greenteagc", ka njĂ« reduktim tĂ« kostove tĂ« mbledhjes sĂ« mbeturinave nga 10-40%.
  • NĂ« funksionin e ndĂ«rtuar new(), i cili Ă«shtĂ« pĂ«r krijimin e variablave tĂ« rinj, Ă«shtĂ« shtuar mundĂ«sia pĂ«r tĂ« pĂ«rcaktuar njĂ« shprehje si operand, qĂ« pĂ«rcakton vlerĂ«n fillestare tĂ« variablit. PĂ«r shembull, nĂ« vend tĂ« kodit x := int64(300) ptr := &x tani mund tĂ« shkruhet: ptr := new(int64(300))
  • NĂ« llojet e pĂ«rgjithshme (generic) lejohet qĂ« tĂ« referohet tek vetvetja si njĂ« argument nĂ« listĂ«n e parametrave tĂ« tipit tĂ« saj (mund tĂ« kaloni tipin tek parametri i saj). NĂ« rreshtin e parĂ« tĂ« shembullit tĂ« ilustruar mĂ« poshtĂ«, referimi Adder nĂ« vetveten e saj tani nuk shkakton njĂ« gabim: type Adder[A Adder[A]] interface { Add(A) A } func algo[A Adder[A]](x, y A) A { return x.Add(y) }
  • Shpenzimet gjatĂ« thirrjes sĂ« funksioneve nĂ« gjuhĂ«n C nga kodi nĂ« gjuhĂ«n Go pĂ«rmes cgo janĂ« reduktuar rreth 30%.
  • NĂ« runtime nĂ« platformat 64-bit Ă«shtĂ« realizuar randomizimi i hapĂ«sirĂ«s sĂ« adresave gjatĂ« ngarkimit, çka e komplikon parashikimin e adresave nĂ« memorie nĂ« pĂ«rpjekjet pĂ«r tĂ« shfrytĂ«zuar dobĂ«sitĂ« nĂ« kodin C, i angazhuar pĂ«rmes cgo. PĂ«r tĂ« çaktivizuar randomizimin, Ă«shtĂ« propozuar opsioni "GOEXPERIMENT=norandomizedheapbase64".
  • Numri i situatave nĂ« tĂ« cilat kompajleri alokon memorie pĂ«r slice nĂ« grumbull Ă«shtĂ« zgjeruar, duke pasur njĂ« ndikim pozitiv nĂ« performancĂ«.
  • Implementimi i komandĂ«s "go fix" Ă«shtĂ« shkruar nga e para duke pĂ«rdorur paketĂ«n analysis, e cila ofron funksionalitet pĂ«r analizĂ«n statistike tĂ« kodit. ËshtĂ« shtuar mbĂ«shtetje pĂ«r analizatorĂ«t e disponueshĂ«m nĂ« paketĂ«n modernize, tĂ« cilĂ«t ofrojnĂ« pĂ«rmirĂ«sime pĂ«r thjeshtimin e kodit duke marrĂ« parasysh mundĂ«sitĂ« e reja tĂ« gjuhĂ«s dhe bibliotekĂ«s standarde. NjĂ« analizator "inline" pĂ«r inline-ngjitjen e tĂ« gjitha thirrjeve tĂ« funksioneve, tĂ« shĂ«nuara me direktivĂ«n "//go:fix inline", Ă«shtĂ« shtuar.
  • Shtuar paketa tĂ« reja crypto/hpke (implementimi i HPKE – Hybrid Public Key Encryption), crypto/mlkem/mlkemtest dhe testing/cryptotest.
  • Shtuar paketa eksperimentale simd/archsimd, qĂ« ofron qasje tĂ« nivelit tĂ« ulĂ«t nĂ« ekzekutimin e operacioneve vektoriale duke pĂ«rdorur instruksione SIMD nĂ« sistemet me arkitekturĂ« AMD64.
  • Shtuar paketa eksperimentale runtime/secret pĂ«r pastrimin e sigurt (zero) tĂ« memories pĂ«rkohĂ«sisht tĂ« alokuar gjatĂ« ekzekutimit tĂ« funksionit tĂ« caktuar.
  • NĂ« paketĂ«n runtime/pprof Ă«shtĂ« shtuar njĂ« profil eksperimental goroutineleak pĂ«r zbuluar rrjedhjet e goroutines.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster