Itusilẹ ti ede siseto Go 1.15

Agbekale idasile ede siseto Lọ 1.15, eyiti Google n ṣe idagbasoke pẹlu ikopa ti agbegbe bi ojutu arabara ti o ṣajọpọ iṣẹ ṣiṣe giga ti awọn ede ti a ṣajọpọ pẹlu awọn anfani ti awọn ede kikọ gẹgẹbi irọrun ti koodu kikọ, iyara idagbasoke ati aabo aṣiṣe. koodu ise agbese pin nipasẹ labẹ iwe-aṣẹ BSD.

Sintasi Go ti da lori awọn eroja ti o faramọ ti ede C pẹlu diẹ ninu awọn yiya lati ede Python. Ede jẹ ṣoki pupọ, ṣugbọn koodu naa rọrun lati ka ati loye. A ṣe akojọpọ koodu Go sinu awọn adaṣe alakomeji imurasilẹ ti o nṣiṣẹ ni abinibi laisi lilo ẹrọ foju kan (profaili, n ṣatunṣe aṣiṣe, ati awọn ọna ṣiṣe wiwa awọn iṣoro asiko asiko miiran ni a ṣepọ bi asiko isise irinše), eyiti o fun ọ laaye lati ṣaṣeyọri iṣẹ ṣiṣe ni afiwe si awọn eto C.

Ise agbese na ti ni idagbasoke ni ibẹrẹ pẹlu oju si siseto-asapo-pupọ ati iṣiṣẹ daradara lori awọn ọna ṣiṣe-ọpọ-mojuto, pẹlu ipese awọn ọna-ipele oniṣẹ fun siseto iṣiro iṣiro ati ibaraenisepo laarin awọn ọna ti o jọra. Ede naa tun pese aabo ti a ṣe sinu rẹ lodi si awọn bulọọki iranti ti o pin ju ati pese agbara lati lo ikojọpọ idoti.

akọkọ awọn imotuntunti a ṣafihan ninu itusilẹ Go 1.15:

  • Iṣẹ ti ọna asopọ ti ni ilọsiwaju ni pataki, mejeeji ni jijẹ iyara ti iṣiṣẹ ati idinku agbara iranti, ati ni itọsọna ti simplifying itọju koodu. Nigbati o ba ni idanwo lori awọn ọna ṣiṣe nipa lilo ọna kika faili ELF ti o le ṣiṣẹ (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), eto aṣoju ti awọn ohun elo Go nla ni a kọ ni iyara 20%, ati agbara iranti dinku nipasẹ aropin 30%. Imudara iṣelọpọ pọ si ṣee ṣe nipasẹ yiyipada si ọna kika faili ohun titun ati ṣiṣiṣẹsẹhin awọn ipele inu lati mu ipele ti isọdọkan iṣẹ pọ si. Asopọmọra abinibi ti wa ni lilo nipasẹ aiyipada lori linux/amd64 ati awọn ọna ṣiṣe linux/arm64 ni "-buildmode=pie", eyiti ko nilo lilo C linker mọ.
  • Ni akoko asiko, pinpin awọn ohun kekere lori awọn eto pẹlu nọmba nla ti awọn ohun kohun Sipiyu ti ni ilọsiwaju ni pataki ati idinku ti dinku. Ni ọran ti awọn ikuna, awọn iye pẹlu nomba ati awọn oriṣi okun han dipo ti fifihan adirẹsi naa. Nigbati o ba nfi awọn ifihan agbara SIGSEGV, SIGBUS ati SIGFPE ranṣẹ si ohun elo Go, laisi isansa os/signal.Notify olutọju, ohun elo naa yoo jade pẹlu abajade itọpa akopọ (tẹlẹ ihuwasi naa jẹ airotẹlẹ).
  • Akojọ ti jẹ iṣapeye lati dinku iwọn awọn faili ṣiṣe ti ipilẹṣẹ nipasẹ aropin 5% nipa didaduro ifisi ti diẹ ninu awọn metadata fun ikojọpọ idoti ati mimọ ibinu diẹ sii ti metadata ti ko lo.
  • Asia “-spectre” ni a ti ṣafikun si olupilẹṣẹ ati apejọ lati jẹki aabo lodi si awọn ikọlu kilasi Specter (fun ọpọlọpọ awọn eto eyi ko nilo; muu aṣayan le jẹ idalare nikan fun diẹ ninu awọn gan pato igba).
  • Ni awọn iwe-ẹri X.509, aaye ti CommonName ti ti parẹ, eyiti ko ṣe itọju bi orukọ agbalejo ti aaye Awọn orukọ Yiyan Koko-ọrọ ba sonu.
  • Aṣẹ “lọ” ni oniyipada ayika GOPROXY le ṣe atokọ awọn aṣoju pupọ ni bayi, ti a yapa nipasẹ aami idẹsẹ tabi “|”. Ti aṣoju akọkọ ninu atokọ ba pada aṣiṣe (404 tabi 410), lẹhinna igbiyanju yoo ṣee ṣe lati kan si nipasẹ aṣoju keji, ati bẹbẹ lọ.
  • IwUlO vet ti ṣafikun ikilọ kan nipa igbiyanju lati yipada lati okun (x) ti “x” jẹ iru odidi miiran yatọ si rune tabi baiti.
  • Asia "-gnu" ti wa ni afikun si ohun elo objdump lati ṣe atilẹyin yiyatọ sintasi GNU apejọ.
  • Titun package kun akoko / tzdata, eyiti o fun ọ laaye lati ṣepọ data data pẹlu data agbegbe aago sinu eto naa.
  • Lati awọn ọrọ orisun ati awọn iwe kuro awọn gbolohun ọrọ funfun/akojọ dudu ati titunto si/ẹrú, eyi ti o ti wa ni bayi rọpo nipasẹ "allowlist", "blocklist", "ilana", "pty", "proc" ati "Iṣakoso".
  • Apa nla ti awọn ilọsiwaju kekere ni a ti ṣe si ile-ikawe boṣewa.
  • Atilẹyin ti a ṣafikun fun OpenBSD 6.7 ni GOARCH=apa ati GOARCH=awọn ipo arm64 (tẹlẹ nikan GOARCH=386 ati GOARCH=amd64 ni atilẹyin).
  • Idagbasoke ti Syeed RISC-V 64-bit (GOOS=linux, GOARCH=riscv64) tẹsiwaju.
  • Fun awọn ọna ṣiṣe x32 86-bit, itusilẹ atẹle yoo gbe awọn ibeere eto ti o kere ju - awọn ilana nikan pẹlu SSE2 yoo tẹsiwaju lati ṣe atilẹyin. Lati kọ ni ipo GOARCH=386 iwọ yoo nilo o kere ju Intel Pentium 4 (ti a tu silẹ ni ọdun 2000) tabi AMD Opteron/Athlon 64 (ti o tu silẹ ni ọdun 2003).

orisun: opennet.ru

Fi ọrọìwòye kun