E hele i ka hoʻokuʻu ʻana i ka ʻōlelo papahana 1.15

Waiho ʻia e hoʻokuʻu ʻōlelo papahana E hele i ka 1.15, ka mea i hoʻomohala ʻia e Google me ke komo ʻana o ke kaiāulu ma ke ʻano he hopena hybrid e hoʻohui i ka hana kiʻekiʻe o nā ʻōlelo i hōʻuluʻulu ʻia me nā pono o nā ʻōlelo kākau e like me ka maʻalahi o ke kākau ʻana i ke code, ka wikiwiki o ka hoʻomohala ʻana a me ka pale hewa. Code papahana mahele ʻia e ma lalo o ka laikini BSD.

Hoʻokumu ʻia ka syntax o Go i nā mea maʻamau o ka ʻōlelo C me kekahi mau hōʻaiʻē mai ka ʻōlelo Python. He pōkole loa ka ʻōlelo, akā maʻalahi ke code e heluhelu a hoʻomaopopo. Hoʻohui ʻia ke code Go i loko o nā mea hoʻokō binary kū hoʻokahi e holo maoli me ka ʻole o ka hoʻohana ʻana i kahi mīkini virtual (profiling, debugging, a me nā subsystem ʻike pilikia runtime i hoʻohui ʻia e like me. nā mea hana holo), hiki iā ʻoe ke hoʻokō i ka hana e like me nā papahana C.

Hoʻokumu mua ʻia ka papahana me ka maka i ka papahana multi-threaded a me ka hana maikaʻi ma nā ʻōnaehana multi-core, me ka hāʻawi ʻana i nā ala o ka mea hoʻohana no ka hoʻonohonoho ʻana i ka helu like a me ka launa pū ʻana ma waena o nā ʻano hana like. Hāʻawi ka ʻōlelo i ka pale i kūkulu ʻia i nā poloka hoʻomanaʻo i hoʻokaʻawale ʻia a hāʻawi i ka hiki ke hoʻohana i ka ʻohi ʻōpala.

ka papa kuhikuhiE nā mea houi hoʻokomo ʻia i ka hoʻokuʻu ʻana iā Go 1.15:

  • Ua hoʻomaikaʻi maikaʻi ʻia ka hana o ka linker, ma ka hoʻonui ʻana i ka wikiwiki o ka hana a me ka hōʻemi ʻana i ka hoʻomanaʻo hoʻomanaʻo, a ma ke ʻano o ka hoʻomaʻamaʻa ʻana i ka mālama code. Ke hoʻāʻo ʻia ma nā ʻōnaehana hana me ka hoʻohana ʻana i ka ELF executable file format (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), ua kūkulu ʻia kahi papa hana maʻamau o nā noi Go nui he 20% wikiwiki, a ua hoʻemi ʻia ka hoʻohana ʻana i ka hoʻomanaʻo e ka awelika o 30%. Hoʻonui ʻia ka huahana ma o ka hoʻololi ʻana i kahi ʻano faila mea hou a hana hou i nā pae kūloko e hoʻonui i ke kiʻekiʻe o ka parallelization o ka hana. Hoʻohana ʻia ka mea hoʻopili maoli ma ka paʻamau ma nā ʻōnaehana linux/amd64 a me linux/arm64 i "-buildmode=pie", ʻaʻole pono e hoʻohana i kahi loulou C.
  • I ka wā holo, ua hoʻomaikaʻi maikaʻi ʻia ka hāʻawi ʻana i nā mea liʻiliʻi ma nā ʻōnaehana me ka nui o nā cores CPU a ua hoʻemi ʻia ka latency. I ka hihia o nā hemahema, hōʻike ʻia nā waiwai me nā ʻano helu a me nā string ma mua o ka hōʻike ʻana i ka helu wahi. I ka hoʻouna ʻana i nā hōʻailona SIGSEGV, SIGBUS a me SIGFPE i kahi noi Go, me ka loaʻa ʻole o kahi os/signal.Notify handler, e haʻalele ka noi me kahi hoʻopuka hoʻopaʻa ʻana (ma mua ʻaʻole hiki ke ʻike ʻia ke ʻano).
  • Ua hoʻoikaika ʻia ka mea hōʻuluʻulu e hōʻemi i ka nui o nā faila hiki ke hoʻokō ʻia e ka awelika o 5% ma o ka hoʻōki ʻana i ka hoʻokomo ʻana i kekahi mau metadata no ka ʻohi ʻōpala a me ka hoʻomaʻemaʻe hoʻomaʻemaʻe ʻoi aku o nā metadata i hoʻohana ʻole ʻia.
  • Ua hoʻohui ʻia ka hae "-spectre" i ka mea hōʻuluʻulu a me ka mea hoʻohui i mea e pale ai i ka hoʻouka ʻana o ka papa Spectre (no ka hapa nui o nā papahana ʻaʻole koi ʻia kēia; hiki ke ʻae ʻia ke koho no ka kekahi mau hihia kiko'ī loa).
  • Ma nā palapala hōʻoia X.509, ua hoʻopau ʻia ke kahua CommonName, ʻaʻole i mālama ʻia ma ke ʻano he inoa hoʻokipa inā nalo ke kahua Nā inoa ʻokoʻa kumuhana.
  • Hiki i ke kauoha "hele" i ka hoʻololi kaiapuni GOPROXY ke papa inoa i nā proxies he nui, i hoʻokaʻawale ʻia e kahi koma a i ʻole "|". Inā hoʻihoʻi ka mea koho mua ma ka papa inoa i kahi hewa (404 a i ʻole 410), a laila e hoʻāʻo ʻia e hoʻopili ma o ka mea koho ʻelua, etc.
  • Ua hoʻohui ka mea hoʻohana vet i kahi ʻōlelo aʻo e pili ana i ka hoʻāʻo ʻana e hoʻohuli mai ke kaula (x) inā ʻo "x" kahi ʻano helu helu ʻē aʻe ma mua o ka rune a i ʻole byte.
  • Ua hoʻohui ʻia ka hae "-gnu" i ka pono objdump e kākoʻo i ka wehe ʻana i ka syntax assembler GNU.
  • Hoʻohui ʻia ka pūʻolo hou manawa/tzdata, ka mea e hiki ai iā ʻoe ke hoʻohui i kahi waihona me ka ʻikepili zona manawa i loko o ka papahana.
  • Mai nā kikokikona kumu a me nā palapala wehe ʻia nā huaʻōlelo whitelist/blacklist a me master/slave, i kēia manawa ua pani ʻia e "allowlist", "blocklist", "process", "pty", "proc" a me "control".
  • Ua hana ʻia kahi hapa nui o nā hoʻomaikaʻi liʻiliʻi i ka waihona maʻamau.
  • Hoʻohui ʻia ke kākoʻo no OpenBSD 6.7 ma GOARCH=arm a me GOARCH=arm64 modes (ma mua ʻo GOARCH=386 a me GOARCH=amd64 wale nō i kākoʻo ʻia).
  • Ke hoʻomau nei ka hoʻomohala ʻana o ka 64-bit RISC-V platform (GOOS=linux, GOARCH=riscv64).
  • No nā ʻōnaehana 32-bit x86, ʻo ka hoʻokuʻu hou e hoʻokiʻekiʻe i nā koi ʻōnaehana liʻiliʻi - e kākoʻo mau ʻia nā kaʻina hana me SSE2. No ke kūkulu ʻana i ke ʻano GOARCH=386, pono ʻoe i kahi Intel Pentium 4 (i hoʻokuʻu ʻia ma 2000) a i ʻole AMD Opteron/Athlon 64 (i hoʻokuʻu ʻia ma 2003).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka