ʻO 70% o nā pilikia palekana ma Chromium ke kumu o nā hewa hoʻomanaʻo

Nā mea hoʻomohala o ka papahana Chromium kālailai ʻia ʻO 912 nā mea koʻikoʻi koʻikoʻi a me nā mea koʻikoʻi i ʻike ʻia i nā hoʻokuʻu paʻa o Chrome mai 2015, a ua hoʻoholo ʻo 70% o lākou i hoʻokumu ʻia e ka palekana o ka hoʻomanaʻo (nā hewa i ka wā e hana ana me nā kuhikuhi ma C/C++ code). ʻO ka hapalua o kēia mau pilikia (36.1%) ma muli o ke komo ʻana i ka buffer ma hope o ka hoʻokuʻu ʻana i ka hoʻomanaʻo e pili ana me ia (hoʻohana-ma hope-free).

ʻO 70% o nā pilikia palekana ma Chromium ke kumu o nā hewa hoʻomanaʻo

I ka hoʻolālā ʻana iā Chromium i ka wā mua waiho ihohiki ke ʻike ʻia nā hewa i loko o ke code, no laila ua kau ʻia kahi manaʻo nui i ka hoʻohana ʻana i ka hoʻokaʻawale ʻana i ka pahu one e kaupalena i nā hopena o nā nāwaliwali. I kēia manawa, hiki i nā mea hiki ke hoʻohana i kēia ʻenehana i ka palena o ko lākou hiki a ʻaʻole hiki ke hoʻokaʻawale hou i nā kaʻina hana mai ka manaʻo o ka hoʻohana waiwai.

No ka mālama ʻana i ka palekana o ka codebase, hoʻokō pū ʻo Google "rula o elua", e like me ka mea i hoʻohui ʻia e hoʻokō ʻia ma mua o ʻelua o ʻekolu mau kūlana: hana me ka ʻikepili hoʻokomo ʻole ʻia, me ka hoʻohana ʻana i kahi ʻōlelo hoʻonohonoho palekana (C/C++) a me ka holo ʻana me nā pono kiʻekiʻe. Hōʻike kēia lula e hoʻemi ʻia ke code no ka hoʻoponopono ʻana i ka ʻikepili waho i nā pono liʻiliʻi (kaʻawale) a i ʻole kākau ʻia ma kahi ʻōlelo hoʻonohonoho palekana.

No ka hoʻonui hou ʻana i ka palekana o ke kumu code, ua hoʻomaka ʻia kahi papahana e pale aku i nā hewa hoʻomanaʻo mai ka ʻike ʻana i ka waihona code. ʻEkolu mau ala nui: ka hana ʻana i nā hale waihona puke C ++ me nā hana no ka hana palekana o ka hoʻomanaʻo a me ka hoʻonui ʻana i ke ʻano o ka ʻohi ʻōpala, me ka hoʻohana ʻana i nā mīkini pale lako. MTE (Memory Tagging Extension) a me nā ʻāpana kākau i nā ʻōlelo e hōʻoiaʻiʻo i ka hana palekana me ka hoʻomanaʻo (Java, Kotlin, JavaScript, Rust, Swift).

Manaʻo ʻia e kau ʻia ka hana ma nā wahi ʻelua:

  • ʻO ka hoʻololi koʻikoʻi i ke kaʻina hana hoʻomohala C++, ʻaʻole ia e kāpae i ka hopena maikaʻi ʻole i ka hana (nā mākaʻi palena ʻokoʻa a me ka hōʻiliʻili ʻōpala). Ma kahi o nā kuhikuhi maka, ua manaʻo ʻia e hoʻohana i ke ʻano MiraclePtr, ka mea e hiki ai iā ʻoe ke hōʻemi i ka hoʻohana ʻana-ma hope-free hewa i nā ulia ʻaʻole e hoʻoweliweli i ka palekana, me ka ʻike ʻole ʻia o ka hopena maikaʻi ʻole i ka hana, ka hoʻohana ʻana i ka hoʻomanaʻo a me ke kūpaʻa.
  • ʻO ka hoʻohana ʻana i nā ʻōlelo i hoʻolālā ʻia e hana i nā loiloi palekana hoʻomanaʻo i ka manawa hōʻuluʻulu (e hoʻopau i ka hopena maikaʻi ʻole i ka hana i loko o ia mau loiloi i ka wā o ka hoʻokō code, akā e alakaʻi i nā kumukūʻai hou no ka hoʻonohonoho ʻana i ka launa ʻana o ke code ma kahi ʻōlelo hou me ke code C++).

ʻO ka hoʻohana ʻana i nā hale waihona puke mālama hoʻomanaʻo ʻo ia ke ala maʻalahi, akā ʻoi aku ka maikaʻi. ʻO ke kākau hou ʻana i ka code ma Rust ua helu ʻia ʻo ia ke ala ʻoi aku ka maikaʻi, akā ʻoi loa ka pipiʻi.

ʻO 70% o nā pilikia palekana ma Chromium ke kumu o nā hewa hoʻomanaʻo

Source: opennet.ru

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