programazio lengoaia kaleratzea , Google-k garatzen duena komunitatearen parte-hartzearekin konpilatutako lengoaien errendimendu altua eta scripting lengoaien abantailak konbinatzen dituen soluzio hibrido gisa, hala nola kodea idazteko erraztasuna, garapen-abiadura, eta akatsen babesa. Proiektuaren kodea BSD lizentziapean.
Go-ren sintaxia C hizkuntzaren elementu ezagunetan oinarritzen da, Python hizkuntzaren mailegu batzuekin. Hizkuntza nahiko zehatza da, baina kodea irakurtzeko eta ulertzeko erraza da. Go kodea makina birtual bat erabili gabe natiboki exekutatzen diren fitxategi exekutagarri bitar autonomoetan konpilatzen da (profila, arazketa eta exekuzio garaiko arazoak hautemateko beste azpisistemak integratuta daude. ), C hizkuntzako programen pareko errendimendua lortzeko aukera ematen duena.
Proiektua hasiera batean hari anitzeko programazioan eta nukleo anitzeko sistemen funtzionamendu eraginkorrari begira garatu da, operadore mailan inplementatutako bitartekoak eskaintzea barne, konputazio paraleloa eta paraleloki exekutatutako metodoen arteko elkarrekintza antolatzeko. Lengoaiak esleitutako memoria blokeen gainditzeen aurkako babes integratua eskaintzen du eta zabor biltzailea erabiltzeko gaitasuna eskaintzen du.
Nagusia , Go 1.15 bertsioan aurkeztua:
- Lotura-emailea nabarmen hobetu da, bai abiadurari eta memoria-kontsumoari dagokionez, bai kodearen mantentze-lanak errazteari dagokionez. ELF fitxategi exekutagarriaren formatua erabiltzen duten sistema eragileetan probatzean (Linux(FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), Go aplikazio handi multzo tipiko bat lotzea % 20 azkarrago bihurtu da, memoria kontsumoa, berriz, batez beste % 30 murriztu da. Errendimenduaren hobekuntza hau objektu fitxategi formatu berri batera aldatuz eta paralelismoa handitzeko barne etapak berriro landuz lortu da. Bertako estekatzailea lehenespenez erabiltzen da orain Linux/amd64 eta Linux/arm64 sistemetan "-buildmode=pie" moduan, eta horrek ez du gehiago C estekatzailea erabili behar.
- Exekuzio-denborak nabarmen hobetu du objektu txikien banaketa CPU nukleo asko dituzten sistemetan, eta latentziak murriztu dira. Zenbakizko eta kate moten balioak bistaratzen dira orain huts egiten denean, helbidea bakarrik bistaratu beharrean. SIGSEGV, SIGBUS eta SIGFPE seinaleak Go aplikazio batera bidaltzean, os/signal.Notify kudeatzailea falta bada, aplikazioa pila-arrasto batekin amaituko da (lehen, portaera hau aurreikusezina zen).
- Konpiladorearen optimizazioak egin ziren, sortutako exekutagarrien tamaina batez beste % 5 murriztuz, zabor-bildutako metadatu batzuk kenduz eta erabili gabeko metadatuak modu oldarkorragoan garbituz.
- "-spectre" bandera gehitu zaio konpilatzaileari eta muntatzaileari Spectre erasoen aurkako babesa ahalbidetzeko (ez da beharrezkoa programa gehienentzat, aukera gaitzea justifikatuta egon daiteke honetarako bakarrik) ).
- X.509 ziurtagirietan, CommonName eremua zaharkituta dago eta ez da ostalari-izen gisa hartzen Subjektuaren izen alternatiboak eremua falta bada.
- "Go" komandoak orain GOPROXY ingurune aldagaian proxy ugari zerrendatzeko aukera ematen dizu, komaz edo "|" ikurraz bereizita. Zerrendako lehen proxyak errore bat itzultzen badu (404 edo 410), konexioa bigarren proxyaren bidez saiatuko da, eta abar.
- Abisu bat gehitu zaio albaitariaren utilitateari string(x)-tik bihurtzen saiatzean "x" runa edo byte ez den zenbaki oso mota bat bada.
- objdump utilitateak "-gnu" bandera gehitu du GNU muntatzailearen sintaxia desmuntatzea onartzeko.
- Pakete berria gehitu da , eta horri esker, ordu-zonaren datuak dituen datu-base bat programan integra dezakezu.
- Iturburu-kodetik eta dokumentaziotik zerrenda zuria/zerrenda beltza eta maisu/esklabo esaldiak, orain "allowlist", "blocklist", "process", "pty", "proc" eta "control" esaldiak ordezkatuz.
- Hobekuntza txiki ugari egin dira liburutegi estandarrean.
- OpenBSD 6.7rako euskarria gehitu da GOARCH=arm eta GOARCH=arm64 moduetan (lehenago GOARCH=386 eta GOARCH=amd64 bakarrik onartzen ziren).
- 64 biteko RISC-V plataformaren (GOOS=linux, GOARCH=riscv64) garapenak jarraitu zuen.
- 32 biteko x86 sistemetarako, hurrengo bertsioak gutxieneko sistema-eskakizunak igoko ditu: SSE2 duten prozesadoreak bakarrik onartuko dira. GOARCH=386 moduan eraikitzeko gutxienez Intel Pentium 4 bat (2000. urtean kaleratua) edo AMD Opteron/Athlon 64 bat (2003an kaleratua) beharko da.
Iturria: opennet.ru
