Inilabas na ang Go 1.19 at ito ang mga balita nito

Kamakailan lamang ang paglabas ng bagong bersyon ng programming language «Go 1.19» ay inihayag, isang bersyon na nagpapabuti sa nakaraang release sa pamamagitan ng pagdaragdag ng iba't ibang mga pagpapabuti at, higit sa lahat, mga pag-aayos ng bug. Sa mga bagong bagay na maaari naming i-highlight ay ang mga pagpapabuti sa pamamahala ng memorya, mga pagpapabuti sa seguridad, bukod sa iba pang mga bagay.

Para sa mga bago sa Go, dapat mong malaman na ito ay isang programming language na binuo kasama ang partisipasyon ng komunidad bilang isang hybrid na solusyon na pinagsasama ang mataas na pagganap ng mga pinagsama-samang wika na may mga pakinabang tulad ng mga scripting language tulad ng ang kadalian ng pagsulat ng code, pag-unlad at proteksyon ng bug.

Ang syntax ng Go ay batay sa mga karaniwang elemento ng C na wika. na may ilang mga paghiram mula sa wikang Python. Ang wika ay medyo maikli, ngunit ang code ay madaling basahin at maunawaan.

Ang Go code ay pinagsama-sama sa magkahiwalay na binary executable file na tumatakbo nang native, nang hindi gumagamit ng virtual machine (pag-profile, pag-debug, at iba pang mga runtime troubleshooting subsystem ay binuo bilang mga bahagi ng runtime).

Pumunta sa 1.19 pangunahing balita

Sa bagong bersyon na ito ng Go 1.19 na ipinakita, ito ay naka-highlight na ang trabaho ay ginawa upang pinuhin ang suporta para sa mga function at mga generic na uri idinagdag sa pinakabagong bersyon, sa tulong kung saan maaaring tukuyin at gamitin ng developer ang mga function na idinisenyo upang gumana sa ilang mga uri nang sabay-sabay, kasama ang pag-optimize ng pagganap ng ilang mga programa gamit ang mga generic ay nadagdagan ng 20%.

Ang isa pang pagbabago na namumukod sa bagong bersyon ay iyon nagdagdag ng suporta para sa mga link, listahan, at mas simpleng syntax upang tukuyin ang mga header sa mga komento ng dokumento. Ang gofmt utility ay nagbibigay ng pag-format sa mga advanced na tampok ng mga komento na nasa isip kasama ang dokumentasyon ng API.

Bukod dito binagong modelo ng memorya ng Go upang iayon sa C, C++, Java, JavaScript, Rust, at Swift na hindi umaamin ng sunud-sunod na pare-parehong mga halaga ng atom. Ang mga bagong uri tulad ng atomic.Int64 at atomic.Pointer[T] ay ipinakilala sa sync/atomic package upang gawing mas madali ang paggamit ng mga atomic value.

Sa kabilang banda, nabanggit din iyon Ang kolektor ng basura ay mayroon na ngayong kakayahan na tukuyin ang mga malalambot na limitasyon, na ipinapatupad sa pamamagitan ng paglilimita sa laki ng heap at pagbabalik ng memorya sa system nang mas agresibo, iyon ay, ang pagkonsumo ay hindi ginagarantiyahan na nasa loob ng tinukoy na mga limitasyon sa ilalim ng lahat ng kundisyon. Maaaring maging kapaki-pakinabang ang mga soft limit para sa pag-optimize ng mga program na tumatakbo sa mga fixed memory container.

Na-highlight din iyon sa mga Unix system, ang mga karagdagang deskriptor ng file ay awtomatikong pinagana (tinataas ang limitasyon ng RLIMIT_NOFILE), upang pabilisin ang malalaking pagbabago sa mga expression sa x86-64 at ARM64 system, ginagamit ang mga jump table, na nagpapahintulot sa malalaking pagbabagong expression na maproseso nang hanggang 20% ​​na mas mabilis.

Sa mga sistema ng riscv64, ipinatupad ang pagpasa ng mga argumento ng function sa pamamagitan ng mga rehistro ng CPU, na nagbigay-daan para sa pagtaas ng pagganap ng humigit-kumulang 10%.

Sa iba pang mga pagbabago tumayo mula sa bagong bersyon na ito:

  • Maraming mga pag-optimize ng pagganap ang ipinatupad.
  • Nagdagdag ng suporta para sa dynamic na pagtatakda ng karaniwang laki ng stack upang bawasan ang laki ng nakopyang data
  • Nagdagdag ng pang-eksperimentong suporta para sa mga kapaligiran ng Linux sa mga system na may mga processor ng Loongson batay sa 64-bit na arkitektura ng LoongArch (GOARCH=loong64).
  • Ang pagpapalit ng modelo ng memorya ay hindi nakaapekto sa pagiging tugma sa dating nakasulat na code.
  • Nagdagdag ng bagong "unix" build restriction na magagamit sa "go:build" na mga linya para i-filter ang mga sistemang katulad ng Unix (aix, android, darwin, tutubi, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • Upang pahusayin ang seguridad, binabalewala na ngayon ng os/exec module ang mga kamag-anak na path kapag pinapalawak ang PATH environment variable (halimbawa, kapag tinutukoy ang path ng isang executable file, hindi na sinusuri ang kasalukuyang direktoryo).

Panghuli, kung interesado kang matuto nang higit pa tungkol sa bagong release na ito, maaari mong tingnan ang mga detalye sa ang sumusunod na link.


Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.