programsprÄk release , som utvecklats av Google med deltagande av communityn som en hybridlösning som kombinerar den höga prestandan hos kompilerade sprÄk med fördelarna med skriptsprÄk, sÄsom enkel kod att skriva, utvecklingshastighet, och felskydd. Projektkod under BSD-licensen.
Syntaxen för Go Àr baserad pÄ de vÀlbekanta elementen i C-sprÄket med nÄgra lÄn frÄn Python-sprÄket. SprÄket Àr ganska kortfattat, men koden Àr lÀtt att lÀsa och förstÄ. Go-kod kompileras till fristÄende binÀra körbara filer som körs inbyggt utan att anvÀnda en virtuell maskin (profilering, felsökning och andra delsystem för upptÀckt av run-time problem Àr integrerade som ), vilket gör att du kan uppnÄ prestanda som Àr jÀmförbar med program pÄ C-sprÄket.
Projektet Àr initialt utvecklat med sikte pÄ flertrÄdad programmering och effektiv drift pÄ flerkÀrniga system, inklusive tillhandahÄllande av medel implementerade pÄ operatörsnivÄ för att organisera parallell berÀkning och interaktion mellan parallellt exekverade metoder. SprÄket ger ocksÄ inbyggt skydd mot överskridningar av tilldelade minnesblock och ger möjlighet att anvÀnda sopsamlaren.
Den huvudsakliga , introducerad i Go 1.15-versionen:
- LÀnkaren har förbÀttrats avsevÀrt, bÄde vad gÀller hastighet och minnesförbrukning, och vad gÀller att förenkla kodunderhÄll. Vid testning pÄ operativsystem som anvÀnder ELF-formatet för körbara filer (Linux(FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris) har lÀnkningen av en typisk uppsÀttning stora Go-applikationer blivit 20 % snabbare, och minnesförbrukningen har minskat med 30 % i genomsnitt. Denna prestandaförbÀttring möjliggjordes genom att byta till ett nytt objektfilformat och omarbeta interna steg för att öka parallelliteten. Den inbyggda lÀnkaren anvÀnds nu som standard pÄ Linux/amd64- och Linux/arm64-system i lÀget "-buildmode=pie", vilket inte lÀngre krÀver anvÀndning av C-lÀnkaren.
- I runtime har distributionen av smÄ objekt pÄ system med ett stort antal CPU-kÀrnor förbÀttrats avsevÀrt, och latenserna har minskats. Vid fel matas nu vÀrden med numeriska och strÀngtyper ut istÀllet för att visa adressen. NÀr SIGSEGV-, SIGBUS- och SIGFPE-signaler skickas till en Go-applikation, i frÄnvaro av en os/signal.Notify-hanterare, avslutas applikationen med stackspÄrningsutdata (tidigare var beteendet oförutsÀgbart).
- Kompilatoroptimeringar utfördes som minskade storleken pÄ genererade körbara filer med i genomsnitt 5 % genom att ta bort inkluderingen av vissa skrÀpinsamlingsmetadata och mer aggressivt rensa upp oanvÀnda metadata.
- Kompilatorn och assemblern har uppdaterats för att inkludera flaggan "-spectre" för att aktivera skydd mot Spectre-attacker (krÀvs inte för de flesta program, aktivering av alternativet kan bara vara motiverat för ).
- I X.509-certifikat har fÀltet CommonName förÄldrats och behandlas inte lÀngre som ett vÀrdnamn om fÀltet Alternativa namn för Àmne saknas.
- Kommandot "go" kan nu lista flera proxyservrar i miljövariabeln GOPROXY, separerade med ett kommatecken eller symbolen "|". Om den första proxyn i listan returnerar ett fel (404 eller 410) kommer ett försök att kontakta den andra proxyn att göras, och sÄ vidare.
- Lade till en varning i vet-verktyget vid försök att konvertera frÄn string(x) om "x" Àr en heltalstyp annan Àn rune eller byte.
- Verktyget objdump har en "-gnu"-flagga tillagd för att stödja demontering av GNU-assemblersyntax.
- Nytt paket tillagt , vilket lÄter dig integrera en databas med tidszonsdata i programmet.
- FrÄn kÀllkod och dokumentation vitlista/svartlista och master/slave-fraser, vilka nu ersÀtts av "allowlist", "blocklist", "process", "pty", "proc" och "control".
- Ett stort antal mindre förbÀttringar har gjorts i standardbiblioteket.
- Lade till stöd för OpenBSD 6.7 i lÀgena GOARCH=arm och GOARCH=arm64 (tidigare stöddes endast GOARCH=386 och GOARCH=amd64).
- Utvecklingen av 64-bitars RISC-V-plattformen (GOOS=linux, GOARCH=riscv64) fortsatte.
- För 32-bitars x86-system kommer nĂ€sta utgĂ„va att höja de lĂ€gsta systemkraven â endast processorer med SSE2 kommer att fortsĂ€tta stödjas. För att bygga i GOARCH=386-lĂ€ge behöver du minst en Intel Pentium 4 (slĂ€ppt 2000) eller AMD Opteron/Athlon 64 (slĂ€ppt 2003).
KĂ€lla: opennet.ru
