Go programmeringssprog udgivelse 1.15

Introduceret udgivelse af programmeringssprog Gå 1.15, som udvikles af Google med deltagelse af fællesskabet som en hybridløsning, der kombinerer den høje ydeevne af kompilerede sprog med fordelene ved scriptsprog, såsom nem at skrive kode, hastighed på udvikling og fejlbeskyttelse. Projektkode distribueret af under BSD-licensen.

Go's syntaks er baseret på velkendte elementer fra C-sproget med nogle lån fra Python-sproget. Sproget er ret kortfattet, men koden er let at læse og forstå. Go-kode er kompileret til selvstændige binære eksekverbare filer, der kører native uden brug af en virtuel maskine (profilering, fejlfinding og andre undersystemer til registrering af runtime-problem er integreret som runtime komponenter), som giver dig mulighed for at opnå ydeevne, der kan sammenlignes med C-programmer.

Projektet er oprindeligt udviklet med henblik på multi-threaded programmering og effektiv drift på multi-core systemer, herunder at give operatør-niveau midler til at organisere parallel computing og interaktion mellem parallel-eksekverede metoder. Sproget giver også indbygget beskyttelse mod overallokerede hukommelsesblokke og giver mulighed for at bruge en skraldeopsamler.

The main innovationerintroduceret i Go 1.15-udgivelsen:

  • Linkerens arbejde er blevet væsentligt forbedret, både med hensyn til at øge driftshastigheden og reducere hukommelsesforbruget, og i retning af at forenkle kodevedligeholdelse. Når de blev testet på operativsystemer med det eksekverbare ELF-filformat (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), blev et typisk sæt store Go-applikationer bygget 20 % hurtigere, og hukommelsesforbruget blev reduceret med gennemsnitligt 30 %. Øget produktivitet blev muliggjort ved at skifte til et nyt objektfilformat og omarbejde interne faser for at øge niveauet af parallelisering af arbejdet. Den native linker bruges nu som standard på linux/amd64 og linux/arm64 systemer i "-buildmode=pie", som ikke længere kræver brug af en C linker.
  • I runtime er fordelingen af ​​små objekter på systemer med et stort antal CPU-kerner blevet væsentligt forbedret, og latency er reduceret. I tilfælde af fejl vises værdier med numeriske og strengtyper i stedet for at vise adressen. Når der sendes SIGSEGV-, SIGBUS- og SIGFPE-signaler til en Go-applikation, i mangel af et os/signal. Notify handler, afsluttes applikationen med et stack-sporingsoutput (tidligere var adfærden uforudsigelig).
  • Compileren er blevet optimeret til at reducere størrelsen af ​​genererede eksekverbare filer med gennemsnitligt 5 % ved at stoppe medtagelsen af ​​nogle metadata til skraldeopsamleren og mere aggressiv rensning af ubrugte metadata.
  • Flaget "-spectre" er blevet tilføjet til compileren og assembleren for at muliggøre beskyttelse mod Spectre-klasseangreb (for de fleste programmer er dette ikke påkrævet; aktivering af indstillingen kan kun begrundes for nogle meget specifikke tilfælde).
  • I X.509-certifikater er feltet CommonName blevet forældet, som ikke længere behandles som et værtsnavn, hvis feltet Subject Alternative Names mangler.
  • Kommandoen "go" i miljøvariablen GOPROXY kan nu angive flere proxyer, adskilt af et komma eller "|". Hvis den første proxy på listen returnerer en fejl (404 eller 410), så vil der blive forsøgt at kontakte via den anden proxy mv.
  • Dyrlægeværktøjet har tilføjet en advarsel om forsøg på at konvertere fra streng(x), hvis "x" er en heltalstype, der ikke er rune eller byte.
  • Flaget "-gnu" er blevet tilføjet til objdump-værktøjet for at understøtte adskillelse af GNU assembler-syntaks.
  • Ny pakke tilføjet tid/tzdata, som giver dig mulighed for at integrere en database med tidszonedata i programmet.
  • Fra kildetekster og dokumentation fjernet sætningerne whitelist/blacklist og master/slave, som nu er erstattet af "allowlist", "blocklist", "process", "pty", "proc" og "control".
  • En stor del af mindre forbedringer er foretaget til standardbiblioteket.
  • Tilføjet understøttelse af OpenBSD 6.7 i tilstandene GOARCH=arm og GOARCH=arm64 (tidligere blev kun GOARCH=386 og GOARCH=amd64 understøttet).
  • Udviklingen af ​​64-bit RISC-V platformen (GOOS=linux, GOARCH=riscv64) fortsatte.
  • For 32-bit x86-systemer vil den næste udgivelse hæve minimumssystemkravene - kun processorer med SSE2 vil fortsat blive understøttet. For at bygge i GOARCH=386-tilstand skal du mindst bruge en Intel Pentium 4 (udgivet i 2000) eller en AMD Opteron/Athlon 64 (udgivet i 2003).

Kilde: opennet.ru

Tilføj en kommentar