Go programming language release 1.15

Gipasa ni pagpagawas sa programming language Lakaw 1.15, nga gipalambo sa Google uban ang pag-apil sa komunidad ingon usa ka hybrid nga solusyon nga naghiusa sa taas nga pasundayag sa mga hiniusa nga mga sinultian nga adunay mga bentaha sa mga sinultian sa script sama sa kadali sa pagsulat sa code, katulin sa pag-uswag ug pagpanalipod sa sayup. Kodigo sa proyekto giapod-apod sa ubos sa lisensya sa BSD.

Ang syntax ni Go gibase sa pamilyar nga mga elemento sa C nga pinulongan nga adunay pipila ka mga paghulam gikan sa Python nga pinulongan. Ang pinulongan mubo ra, apan ang code sayon ​​basahon ug sabton. Ang Go code gihugpong ngadto sa stand-alone binary executables nga modagan sa lumad nga walay paggamit sa usa ka virtual machine (profiling, debugging, ug uban pang runtime nga mga subsystem sa pagtuki sa problema gihiusa ingon nga runtime nga mga sangkap), nga nagtugot kanimo nga makab-ot ang pasundayag nga ikatandi sa mga programa sa C.

Ang proyekto sa sinugdan naugmad uban ang usa ka mata sa multi-threaded programming ug episyente nga operasyon sa multi-core nga mga sistema, lakip ang paghatag og operator-level nga paagi alang sa pag-organisar sa parallel computing ug interaksyon tali sa parallel-executed nga mga pamaagi. Naghatag usab ang lengguwahe og built-in nga proteksyon batok sa sobra nga gigahin nga mga bloke sa panumduman ug naghatag katakus sa paggamit sa usa ka tigkolekta sa basura.

nag-unang mga inobasyongipaila sa Go 1.15 nga pagpagawas:

  • Ang buhat sa linker nga kamahinungdanon milambo, sa duha sa pagdugang sa katulin sa operasyon ug pagkunhod sa memory konsumo, ug sa direksyon sa pagpayano sa code maintenance. Kung gisulayan sa mga operating system gamit ang ELF executable file format (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), usa ka tipikal nga hugpong sa dagkong mga aplikasyon sa Go ang gitukod nga 20% nga mas paspas, ug ang konsumo sa memorya gikunhoran sa aberids nga 30%. Ang dugang nga produktibo nahimong posible pinaagi sa pagbalhin sa usa ka bag-ong object file format ug pag-rework sa internal nga mga yugto aron madugangan ang lebel sa parallelization sa trabaho. Ang lumad nga linker kay gigamit na sa default sa linux/amd64 ug linux/arm64 nga sistema sa "-buildmode=pie", nga wala na magkinahanglan ug C linker.
  • Sa runtime, ang pag-apod-apod sa gagmay nga mga butang sa mga sistema nga adunay daghang gidaghanon sa mga cores sa CPU labi nga gipauswag ug ang latency giminusan. Kung adunay mga kapakyasan, ang mga kantidad nga adunay mga numero ug mga tipo sa string gipakita imbis nga ipakita ang adres. Kung magpadala sa mga signal sa SIGSEGV, SIGBUS ug SIGFPE sa usa ka aplikasyon sa Go, kung wala ang usa ka os/signal.Pahibalo sa handler, ang aplikasyon mogawas nga adunay usa ka stack trace output (kaniadto ang pamatasan dili matag-an).
  • Ang compiler gi-optimize aron makunhuran ang gidak-on sa namugna nga mga executable files sa aberids nga 5% pinaagi sa paghunong sa paglakip sa pipila ka metadata para sa garbage collector ug mas agresibong pagpanglimpyo sa wala magamit nga metadata.
  • Ang bandila nga "-spectre" gidugang sa compiler ug assembler aron mapanalipdan batok sa mga pag-atake sa klase sa Spectre (alang sa kadaghanan nga mga programa dili kini kinahanglan; ang pagpagana sa kapilian mahimo ra nga makatarunganon alang sa pipila ka piho nga mga kaso).
  • Sa X.509 nga mga sertipiko, ang CommonName field wala na gamita, nga dili na isipon nga host name kung wala ang Subject Alternative Names field.
  • Ang "go" nga sugo sa GOPROXY environment variable mahimo na nga maglista sa daghang mga proxy, nga gibulag sa usa ka comma o "|". Kung ang una nga proxy sa lista nagbalik usa ka sayup (404 o 410), nan usa ka pagsulay ang himuon sa pagkontak pinaagi sa ikaduha nga proxy, ug uban pa.
  • Ang vet utility midugang ug pasidaan bahin sa pagsulay sa pag-convert gikan sa string(x) kon ang "x" kay integer type gawas sa rune o byte.
  • Ang bandera nga "-gnu" gidugang sa objdump utility para suportahan ang pagdisassemble sa GNU assembler syntax.
  • Bag-ong pakete gidugang oras/tzdata, nga nagtugot kanimo sa pag-integrate sa usa ka database sa data sa time zone ngadto sa programa.
  • Gikan sa gigikanan nga mga teksto ug dokumentasyon gikuha ang mga hugpong sa pulong whitelist/blacklist ug master/slave, nga karon gipulihan sa "allowlist", "blocklist", "process", "pty", "proc" ug "control".
  • Usa ka dako nga bahin sa ginagmay nga mga pagpaayo ang gihimo sa standard library.
  • Gidugang nga suporta para sa OpenBSD 6.7 sa GOARCH=arm ug GOARCH=arm64 modes (kaniadto GOARCH=386 ug GOARCH=amd64 lang ang gisuportahan).
  • Ang pagpalambo sa 64-bit RISC-V nga plataporma (GOOS=linux, GOARCH=riscv64) nagpadayon.
  • Alang sa 32-bit x86 nga mga sistema, ang sunod nga pagpagawas magpataas sa minimum nga mga kinahanglanon sa sistema - ang mga processor lamang nga adunay SSE2 ang magpadayon nga suportado. Sa pagtukod sa GOARCH=386 mode kinahanglan nimo ang labing menos usa ka Intel Pentium 4 (gipagawas kaniadtong 2000) o usa ka AMD Opteron/Athlon 64 (gipagawas kaniadtong 2003).

Source: opennet.ru

Idugang sa usa ka comment