Avage programmeerimiskeele versioon 1.15

Tutvustatakse programmeerimiskeele väljalase Mine 1.15, mida arendab Google kogukonna osalusel hübriidlahendusena, mis ühendab kompileeritud keelte suure jõudluse skriptikeelte eelistega, nagu koodi kirjutamise lihtsus, arenduskiirus ja veakaitse. Projekti kood jaotatud BSD litsentsi alusel.

Go süntaks põhineb C-keele tuttavatel elementidel, millel on mõned laenud Pythoni keelest. Keel on üsna sisutihe, kuid koodi on lihtne lugeda ja mõista. Go kood kompileeritakse eraldiseisvateks binaarseteks käivitatavateks failideks, mis töötavad natiivselt ilma virtuaalmasinat kasutamata (profileerimine, silumine ja muud käitusaegsete probleemide tuvastamise alamsüsteemid on integreeritud käitusaegsed komponendid), mis võimaldab saavutada C-programmidega võrreldavat jõudlust.

Projekt on algselt välja töötatud, pidades silmas mitme lõimega programmeerimist ja tõhusat töötamist mitmetuumalistes süsteemides, sealhulgas operaatoritaseme vahendite pakkumist paralleelarvutuse korraldamiseks ja paralleelselt täidetavate meetodite vahel. Keel pakub ka sisseehitatud kaitset ülejaotatud mäluplokkide eest ja annab võimaluse kasutada prügikogujat.

Kõik uuendusedkasutusele Go 1.15 versioonis:

  • Oluliselt on täiustatud linkeri tööd nii töökiiruse suurendamisel ja mälukulu vähendamisel kui ka koodihoolduse lihtsustamise suunas. Kui testiti operatsioonisüsteemides, mis kasutasid ELF käivitatavat failivormingut (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), ehitati tüüpiline suurte Go rakenduste komplekt 20% kiiremini ja mälukasutus vähenes keskmiselt 30%. Tootlikkuse suurendamine sai võimalikuks tänu uuele objektifailivormingule üleminek ja sisemiste etappide ümbertöötamine, et suurendada tööde paralleelsuse taset. Natiivset linkerit kasutatakse nüüd vaikimisi linux/amd64 ja linux/arm64 süsteemides "-buildmode=pie", mis ei nõua enam C-linkeri kasutamist.
  • Käitusajal on väikeste objektide jaotus suure CPU-tuumade arvuga süsteemides oluliselt paranenud ja latentsusaeg on vähenenud. Tõrgete korral kuvatakse aadressi näitamise asemel numbri- ja stringtüüpidega väärtused. Kui saadate SIGSEGV-, SIGBUS- ja SIGFPE-signaale Go-rakendusele, OS-i/signaali puudumisel. Teavitage töötlejat, väljub rakendus virnajälje väljundiga (varem oli käitumine ettearvamatu).
  • Kompilaatorit on optimeeritud nii, et genereeritud täitmisfailide suurus väheneks keskmiselt 5% võrra, peatades mõnede metaandmete kaasamise prügikoguja jaoks ja agressiivsema kasutamata metaandmete puhastamise.
  • Kompilaatorisse ja komplekteerijasse on lisatud lipp “-Spectre”, et võimaldada kaitset Spectre klassi rünnakute eest (enamiku programmide puhul pole see nõutav; selle võimaluse lubamine on õigustatud ainult mõned väga spetsiifilised juhtumid).
  • X.509 sertifikaatides on väli CommonName aegunud, mida ei käsitleta enam hostinimena, kui väli Subjekti alternatiivsed nimed puudub.
  • Käsk "go" keskkonnamuutujas GOPROXY võib nüüd loetleda mitu puhverserverit, eraldatuna komaga või "|". Kui loendi esimene puhverserver tagastab vea (404 või 410), siis proovitakse ühendust võtta teise puhverserveri kaudu jne.
  • Veterinaarutiliit on lisanud hoiatuse string(x)-st teisendamise katse kohta, kui "x" on täisarvu tüüp, mis ei ole ruun või bait.
  • Lipp "-gnu" on lisatud utiliidi objdump, et toetada GNU assembleri süntaksi lahtivõtmist.
  • Lisatud uus pakett aeg/tzdata, mis võimaldab programmi integreerida ajavööndi andmetega andmebaasi.
  • Lähtetekstidest ja dokumentatsioonist eemaldatud fraasid whitelist/blacklist ja master/slave, mis on nüüd asendatud sõnadega "allowlist", "blocklist", "process", "pty", "proc" ja "control".
  • Tavaraamatukogus on tehtud suur osa väiksematest täiustustest.
  • Lisatud on OpenBSD 6.7 tugi režiimides GOARCH=arm ja GOARCH=arm64 (varem toetati ainult GOARCH=386 ja GOARCH=amd64).
  • Jätkus 64-bitise RISC-V platvormi (GOOS=linux, GOARCH=riscv64) arendus.
  • 32-bitiste x86 süsteemide puhul tõstab järgmine väljalase minimaalseid süsteeminõudeid – jätkuvalt toetatakse ainult SSE2-ga protsessoreid. GOARCH=386 režiimis ehitamiseks vajate vähemalt Intel Pentium 4 (välja antud 2000. aastal) või AMD Opteron/Athlon 64 (välja antud 2003. aastal).

Allikas: opennet.ru

Lisa kommentaar