Posachedwa kutulutsidwa kwa chilankhulo chatsopano cha chilankhulo "Go 1.19" kudalengezedwa, mtundu womwe umakhala wabwino pakumasulidwa koyambirira powonjezera zosintha zosiyanasiyana ndipo, koposa zonse, kukonza zolakwika.Zazatsopano zomwe titha kuziwunikira ndikuwongolera kasamalidwe ka kukumbukira, kuwongolera chitetezo, mwa zina.
Kwa iwo omwe ali atsopano ku Go, muyenera kudziwa kuti ichi ndi chilankhulo chokonzekera chomwe chimapangidwa ndi anthu ammudzi ngati yankho la hybrid lomwe limaphatikiza magwiridwe antchito apamwamba a zilankhulo zophatikizidwa ndi zabwino monga zilankhulo zolembera. Kusavuta kulemba kachidindo, chitukuko ndi chitetezo cha tizilombo.
Mawu akuti Go amatengera zomwe zili muchilankhulo cha C. ndi ngongole zina kuchokera kuchilankhulo cha Python. Chilankhulocho ndi chachidule, koma code yake ndi yosavuta kuwerenga ndi kumvetsa.
Go code imapangidwa m'mafayilo apadera a binary zomwe zimayenda mwachilengedwe, osagwiritsa ntchito makina enieni (kulemba mbiri, kukonza zolakwika, ndi ma subsystems ena othamangitsira mavuto amamangidwa ngati magawo othamanga).
Zinthu zatsopano za Go 1.19
Mu mtundu watsopanowu wa Go 1.19 womwe ukuwonetsedwa, zawonetsedwa kuti ntchito zachitika pofuna kukonzanso kuthandizira kwa ntchito ndi mitundu ya generic zowonjezeredwa mu mtundu waposachedwa, mothandizidwa ndi zomwe wopanga amatha kutanthauzira ndikugwiritsa ntchito ntchito zomwe zidapangidwa kuti zizigwira ntchito ndi mitundu ingapo nthawi imodzi, kuphatikiza kukhathamiritsa kwa mapulogalamu ena pogwiritsa ntchito ma generic kwawonjezeka ndi 20%.
Kusintha kwina komwe kumasiyana ndi mtundu watsopanowu ndikuti adawonjezeranso maulalo, mindandanda, ndi mawu osavuta kutanthauzira mitu muzolemba zolemba. Gulu la gofmt limapereka masanjidwe ndi mawonekedwe apamwamba a ndemanga ndi zolemba za API.
Kupatula apo yasinthidwanso mtundu wa kukumbukira wa Go kuti ugwirizane ndi C, C++, Java, JavaScript, Rust, ndi Swift zomwe sizikuvomereza ma atomu ofanana motsatizana. Mitundu yatsopano monga atomic.Int64 ndi atomic.Pointer[T] yayambitsidwa mu sync/atomiki phukusi kuti zikhale zosavuta kugwiritsa ntchito ma atomiki.
Komano, zimatchulidwanso kuti wotolera zinyalala tsopano ali ndi mphamvu yofotokozera malire ofewa, zomwe zimakakamizika pochepetsa kukula kwa mulu ndikubwezeretsa kukumbukira ku dongosololi mwamphamvu kwambiri, ndiko kuti, kumwa sikutsimikiziridwa kukhala mkati mwa malire otchulidwa pansi pa zikhalidwe zonse. Malire ofewa amatha kukhala othandiza pakukhathamiritsa mapulogalamu omwe amayenda m'miyendo yokhazikika.
Ikufotokozedwanso kuti pamakina a Unix, zofotokozera za fayilo zowonjezera zimayatsidwa (kuwonjezera malire a RLIMIT_NOFILE), kuti mufulumizitse mawu osintha kwambiri pa x86-64 ndi machitidwe a ARM64, matebulo odumphira amagwiritsidwa ntchito, omwe amalola kuti mawu osintha kwambiri apangidwe mpaka 20% mofulumira.
Pa machitidwe a riscv64, mikangano yodutsa ntchito kudzera pa ma regista a CPU idakhazikitsidwa, zomwe zidapangitsa kuti magwiridwe antchito achuluke pafupifupi 10%.
Mwa kusintha kwina zomwe zimadziwika ndi mtundu watsopanowu:
- Kukhathamiritsa kwa magwiridwe antchito ambiri kwakhazikitsidwa.
- Thandizo lowonjezera pakukhazikitsa kukula kwa stack kuti muchepetse kukula kwa data yomwe mwakopera
- Thandizo loyesera la malo a Linux pamakina okhala ndi ma processor a Loongson kutengera kapangidwe ka 64-bit LoongArch (GOARCH=loong64).
- Kusintha chitsanzo cha kukumbukira sikunakhudze kugwirizana ndi code yolembedwa kale.
- Onjezani choletsa chatsopano cha "unix" chomwe chitha kugwiritsidwa ntchito mumizere ya "go:build" kuti musefe makina ngati a Unix (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
- Kupititsa patsogolo chitetezo, gawo la os/exec tsopano likunyalanyaza njira zachibale pamene mukukulitsa kusintha kwa chilengedwe cha PATH (mwachitsanzo, pozindikira njira ya fayilo yomwe ingathe kuchitidwa, chikwatu chomwe chilipo sichikufufuzidwanso).
Pomaliza, ngati mukufuna kudziwa zambiri za kutulutsidwa kwatsopanoku, mutha kuwona zambiri pa ulalo wotsatirawu.
Khalani oyamba kuyankha