Zimanê bernamesaziyê Solod (So) tê pêşkêşkirin. Ew komek ji zimanê Go peyda dike ku ji bo berhevkirinê bi berhevkarên GCC, Clang, û zig cc re minasib e û di nav nûneratiyek C (C11) de hatiye veguheztin. Cûdahiya sereke di navbera Solod û Go û Tinygo de karanîna rêveberiya bîranînê ya destanî ye, ku bêyî berhevkarek zibil, veqetandina bîranînê ya otomatîk, û jimartina referansê dixebite. Veguhezkarê ji bo Solod bi Go hatiye nivîsandin û di bin lîsansa BSD de tê belavkirin. Ew piştgirî dike Linux, macOS и Windows.
Ziman piştgirîya avahî, rêbaz, navrû, perçe, fonksiyonên ku gelek nirxan vedigerînin (mînak, encam + koda çewtiyê), yên jenerîk, û bangên paşxistî (defer) dike. Ji bo hêsankirinê, ziman piştgirîya kanal, korutîn, an girtinan nake. Pêşveçûna Solod dikare serverên LSP yên heyî, linter, jîngehên pêşveçûna yekbûyî, û edîtorên kodê yên ku piştgirîya zimanê Go dikin, û her weha zincîra amûrên "go test" bikar bîne.
Koda ku bi Solod hatiye nivîsandin dikare bi sepanên C re were entegrekirin (C dikare fonksiyonên Solod gazî bike û berevajî vê) û hewceyî demek xebitandinê nake. Qadên sereke yên serîlêdanê bernamekirina pergalan in, bi şiyanên dişibin C, lê bi rêziman û kontrolkirina tîpan a bi şêwaza Go. Solod dikare ji bo veguheztina pirtûkxaneyên Go ji bo karanîna di projeyên C de jî were bikar anîn. Pakêtên Go yên wekî strings, io, bytes, mem, slices, û yên din ji bo C hatine veguheztin. Ji bilî komek pirtûkxaneyên Go yên veguheztî, bernameyên Solod dikarin girêdanan ji bo pirtûkxaneya standard a C, libc, bikar bînin.
Bi xwerû, hemû bîr li ser stekê tê veqetandin, lê veqetandina heap bi karanîna fonksiyonên Alloc / Free yên pirtûkxaneya standard mimkun e. Berhevkirina zibil û jimartina referansan nayên bikar anîn, lê Solod taybetmendiyan ji bo kontrolkirina celeb peyda dike û dema ku digihîje rêzek ji sînoran derdikeve têk diçe. Vegerên nîşankerên daliqandî û azadkirina şaş a bîrê nayên kontrol kirin. Bikaranîna AddressSanitizer (-fsanitize=address) di kompîlerên nûjen de wekî rêbaza sereke ji bo tespîtkirina pirsgirêkên bîrê tê behs kirin.
Ji aliyê performansê ve, bernameyên berhevkirî yên ku bi Solod hatine nivîsandin bi gelemperî ji bernameyên Go zûtir in. Bo nimûne, fonksiyonên ji pakêta Byte bi xerckirina bîranînê ya wekhev 1.5 caran zûtir dixebitin. Operasyonên bafera byte ji bo xwendinê 1.3 caran û ji bo nivîsandinê 2-4 caran zûtir in. Di pakêta Map de, vegerandina mifteya hejmarî 3.4 caran zûtir e, lê guherandina mifteyê 1.6 caran hêdîtir e. Vegerandina mifteya rêzê di heman astê de ye bi Go re, lê guherandin 1.5 caran hêdîtir e. Parsing û formatkirina hejmarên hejmarî 2 caran zûtir e, û parsing-a xala-herikîn 1.5/1.2 caran zûtir e. Fonksiyonên rêzê 1.3 caran zûtir in, û afirandina rêzê 2-4 caran zûtir e bi kêmkirina 10-20% di xerckirina bîranînê de.
Source: opennet.ru
