Izdanje programskog jezika Go 1.15

Predstavljeno izdanje programskog jezika Idi 1.15, koji razvija Google uz sudjelovanje zajednice kao hibridno rješenje koje kombinira visoke performanse kompiliranih jezika s prednostima skriptnih jezika kao što su lakoća pisanja koda, brzina razvoja i zaštita od pogrešaka. Šifra projekta distribuira pod BSD licencom.

Sintaksa Go-a temelji se na poznatim elementima jezika C uz neke posuđenice iz jezika Python. Jezik je prilično koncizan, ali je kod lako čitljiv i razumljiv. Go kod je kompajliran u samostalne binarne izvršne datoteke koje se izvode izvorno bez korištenja virtualnog stroja (profiliranje, otklanjanje pogrešaka i drugi podsustavi za otkrivanje problema tijekom izvođenja integrirani su kao komponente vremena izvođenja), što vam omogućuje postizanje performansi usporedivih s C programima.

Projekt je inicijalno razvijen s ciljem programiranja s više niti i učinkovitog rada na sustavima s više jezgri, uključujući pružanje sredstava na razini operatera za organiziranje paralelnog računanja i interakcije između metoda koje se paralelno izvode. Jezik također pruža ugrađenu zaštitu od previše dodijeljenih memorijskih blokova i pruža mogućnost korištenja skupljača smeća.

Glavni inovacijepredstavljeno u izdanju Go 1.15:

  • Značajno je poboljšan rad povezivača, kako u povećanju brzine rada i smanjenju potrošnje memorije, tako i u smjeru pojednostavljenja održavanja koda. Prilikom testiranja na operativnim sustavima koji koriste format izvršne datoteke ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), tipičan skup velikih Go aplikacija izgrađen je 20% brže, a potrošnja memorije smanjena je u prosjeku za 30%. Povećana produktivnost omogućena je prelaskom na novi format objektne datoteke i preradom unutarnjih faza kako bi se povećala razina paralelizacije rada. Izvorni povezivač sada se koristi prema zadanim postavkama na sustavima linux/amd64 i linux/arm64 u "-buildmode=pie", koji više ne zahtijeva upotrebu C povezivača.
  • Tijekom izvođenja, distribucija malih objekata na sustavima s velikim brojem CPU jezgri značajno je poboljšana, a kašnjenje je smanjeno. U slučaju kvarova, umjesto adrese prikazuju se vrijednosti numeričkih i string vrsta. Prilikom slanja SIGSEGV, SIGBUS i SIGFPE signala aplikaciji Go, u nedostatku rukovatelja os/signal.Notify, aplikacija će izaći s izlazom praćenja stoga (prethodno je ponašanje bilo nepredvidljivo).
  • Kompajler je optimiziran za smanjenje veličine generiranih izvršnih datoteka za prosječno 5% zaustavljanjem uključivanja nekih metapodataka za sakupljač smeća i agresivnijim čišćenjem neiskorištenih metapodataka.
  • Oznaka “-spectre” dodana je prevoditelju i asembleru kako bi se omogućila zaštita od napada klase Spectre (za većinu programa to nije potrebno; uključivanje opcije može biti opravdano samo za neki vrlo specifični slučajevi).
  • U X.509 certifikatima, polje CommonName je zastarjelo, koje se više ne tretira kao ime glavnog računala ako polje Subject Alternative Names nedostaje.
  • Naredba "go" u varijabli okruženja GOPROXY sada može ispisati više proxyja, odvojenih zarezom ili "|". Ako prvi proxy na popisu vrati pogrešku (404 ili 410), tada će se pokušati uspostaviti kontakt preko drugog proxyja itd.
  • Uslužni program vet dodao je upozorenje o pokušaju pretvorbe iz string(x) ako je "x" cjelobrojni tip koji nije runa ili bajt.
  • Oznaka "-gnu" dodana je uslužnom programu objdump za podršku rastavljanja sintakse GNU asemblera.
  • Dodan novi paket vrijeme/tzdata, koji vam omogućuje integraciju baze podataka s podacima o vremenskoj zoni u program.
  • Iz izvornih tekstova i dokumentacije uklonjeni fraze whitelist/blacklist i master/slave, koje su sada zamijenjene s "allowlist", "blocklist", "process", "pty", "proc" i "control".
  • Velik dio manjih poboljšanja napravljen je u standardnoj knjižnici.
  • Dodana podrška za OpenBSD 6.7 u načinima rada GOARCH=arm i GOARCH=arm64 (ranije su bili podržani samo GOARCH=386 i GOARCH=amd64).
  • Nastavljen je razvoj 64-bitne RISC-V platforme (GOOS=linux, GOARCH=riscv64).
  • Za 32-bitne x86 sustave, sljedeće izdanje će povećati minimalne sistemske zahtjeve - i dalje će biti podržani samo procesori sa SSE2. Za izradu u GOARCH=386 modu trebat će vam najmanje Intel Pentium 4 (izdan 2000.) ili AMD Opteron/Athlon 64 (izdan 2003.).

Izvor: opennet.ru

Dodajte komentar