αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžˆαž»αžαž…αž„αž€αŸ’αžšαž„ GCC 12

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αžˆαž»αžαž…αž„αž€αŸ’αžšαž„αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ GCC 12.1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž›αžΎαž€αžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžΆαžαžΆ GCC 12.x αžαŸ’αž˜αžΈαŸ” αžŠαŸ„αž™αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž›αŸαžαžšαŸ€αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžαŸ’αž˜αžΈ αž€αŸ†αžŽαŸ‚ 12.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž αžΎαž™αž˜αž·αž“αž™αžΌαžšαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž˜αž»αž“αž–αŸαž›αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ GCC 12.1 សអខអ GCC 13.0 αž”αžΆαž“αžŠαžΆαž…αŸ‹αž…αŸαž‰αžšαž½αž…αž αžΎαž™ αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹ GCC 13.1 αž“αžΉαž„ αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αŸ” αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 23 αžαŸ‚αž§αžŸαž—αžΆ αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž“αžΉαž„αž”αŸ’αžšαžΆαžšαž–αŸ’αž’αžαž½αž” 35 αž†αŸ’αž“αžΆαŸ†αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž GCC αž›αžΎαž€αžŠαŸ†αž”αžΌαž„αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ CTF (Compact Type Format) αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž‘αŸ†αž αŸ†αž•αŸ’αž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž”αŸ’αžšαž—αŸαž‘ C αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžœαžΆαž„αž˜αž»αžαž„αžΆαžš αž“αž·αž„αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαŸ” αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αž”αŸ‹αž€αŸ’αž“αž»αž„αžœαžαŸ’αžαž» ELF αž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αŸ’αžšαžΎαžαžΆαžšαžΆαž„αžαž½αž’αž€αŸ’αžŸαžš EFL αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž•αŸ’αž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ "STABS" αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž€αŸ’αž“αž»αž„αž‘αžŸαžœαžαŸ’αžŸαžšαŸαž†αŸ’αž“αžΆαŸ† 1980 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’αŸ”
  • αž€αžΆαžšαž„αžΆαžšαž”αž“αŸ’αžαž–αž„αŸ’αžšαžΈαž€αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C2X αž“αž·αž„ C++23 αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C αž“αž·αž„ C++ αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž“αŸ’αžŸαŸ„αž˜ "αž”αŸ’αžšαžŸαž·αž“αž”αžΎ consteval" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αŸ’αžšαžΎαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αŸ’αž“αž»αž„αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž˜αž»αžαž„αžΆαžš (β€œf(αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·(g()))”); αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžαŸαžšαž˜αž·αž“αž˜αŸ‚αž“αž–αŸ’αž™αž‰αŸ’αž‡αž“αŸˆ goto αž“αž·αž„αžŸαŸ’αž›αžΆαž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžαžΆαž‡αžΆ constexpr; αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸαž–αž αž»αžœαž·αž˜αžΆαžαŸ’αžš[]; αž“αŸ…αž€αŸ’αž“αž»αž„ if, for and switch, αžŸαž˜αžαŸ’αžαž—αžΆαž–αž“αŸƒαž”αŸ’αž›αž»αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€ ("αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ (αž”αŸ’αžšαžΎ T = int; T e : v)") αŸ”
  • αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C ++ αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž–αž·αžŸαŸ„αž’αž“αŸαž“αŸƒαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C ++ 20 αž“αž·αž„ C ++ 23 αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ std::move_only_function, , std::basic_string::resize_and_write, , αž“αž·αž„ std::invoke_r. αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αŸ’αžšαžΎ std::unique_ptr, std::vector, std::basic_string, std::optional αž“αž·αž„ std::variant αž“αŸ…αž€αŸ’αž“αž»αž„αž’αž“αž»αž‚αž˜αž“αŸ constexprαŸ”
  • αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαžšαž”αžŸαŸ‹ Fortran αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αŸαž‰αž›αŸαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ TS 29113 αžŠαŸ‚αž›αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž“αžΆαž€αžΆαžšαž…αž›αŸαžαžšαžœαžΆαž„αž›αŸαžαž€αžΌαžŠ Fortran αž“αž·αž„ C αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ __builtin_shufflevector(vec1, vec2, index1, index2, ...) αžŠαŸ‚αž›αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž˜αž»αž“αž‘αŸ… Clang αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž αŸ…αžαŸ‚αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžΆαž”αŸ‹αžœαŸ‰αž·αž…αž‘αŸαžšαž‘αžΌαž‘αŸ… αž“αž·αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžΆαž”αŸ‹αŸ”
  • αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž€αž˜αŸ’αžšαž·αžαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– "-O2" αžœαŸ‰αž·αž…αž‘αŸαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ (αžšαž”αŸ€αž” -ftree-vectorize αž“αž·αž„ -fvect-cost-model=very-cheap modes αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€)αŸ” αž‚αŸ†αžšαžΌαžαž˜αŸ’αž›αŸƒαžαŸ„αž€αž”αŸ†αž•αž»αžαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž²αŸ’αž™αž’αŸ’αžœαžΎαžœαŸ‰αž·αž…αž‘αŸαžšαž”αžΆαž“αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αž€αžΌαžŠαžœαŸ‰αž·αž…αž‘αŸαžšαž’αžΆαž…αž‡αŸ†αž“αž½αžŸαž€αžΌαžŠαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžœαŸ‰αž·αž…αž‘αŸαžšαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžšαž”αŸ€αž” "-ftrivial-auto-var-init" αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž“αŸƒαž’αžαŸαžšαž“αŸ…αž›αžΎαž‡αž„αŸ‹ αžŠαžΎαž˜αŸ’αž”αžΈαžαžΆαž˜αžŠαžΆαž“αž”αž‰αŸ’αž αžΆ αž“αž·αž„αž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžαŸαžšαžŠαŸ‚αž›αž˜αž·αž“αž‘αžΆαž“αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C αž“αž·αž„ C++ αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ __builtin_dynamic_object_size αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‘αŸ†αž αŸ†αž“αŸƒαžœαžαŸ’αžαž» αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž˜αž»αžαž„αžΆαžšαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž–αžΈ Clang αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C αž“αž·αž„ C++ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ "αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ (αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž’αžΆαž…αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž€αŸ†αž αž»αžŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ’αžšαžΎαž–αž½αž€αžœαžΆ)αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C αž“αž·αž„ C++ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž˜αž»αž“ "#elifdef" αž“αž·αž„ "#elifndef" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αž„αŸ‹ "-Wbidi-chars" αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαž½αž’αž€αŸ’αžŸαžš UTF-8 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αžŠαŸ„αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž›αŸ†αžŠαžΆαž”αŸ‹αžŠαŸ‚αž›αž’αžαŸ’αžαž”αž‘αž‘αŸ’αžœαŸαž‘αž·αžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αž„αŸ‹ "-Warray-compare" αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αž“αŸ…αž–αŸαž›αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ’αžšαŸ€αž”αž’αŸ€αž” operand αž–αžΈαžšαžŠαŸ‚αž›αžŸαŸ†αžŠαŸ…αž‘αŸ…αž›αžΎαž’αžΆαžšαŸαŸ”
  • αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš OpenMP 5.0 αž“αž·αž„ 5.1 (Open Multi-Processing) αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹ API αž“αž·αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž αž»αžŸαŸ’αž“αžΌαž› αž“αž·αž„αž€αžΌαž“αž€αžΆαžαŸ‹ (CPU + GPU/DSP) αžŠαŸ‚αž›αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžšαž½αž˜ αž“αž·αž„αžœαŸ‰αž·αž…αž‘αŸαžš (ស៊ីមឌី) , αž”αžΆαž“αž”αž“αŸ’αžαŸ”
  • αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› OpenACC 2.6 αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž›αžΎ GPU αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž―αž€αž‘αŸαžŸαžŠαžΌαž…αž‡αžΆ NVIDIA PTX αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž“αŸ’αžαŸ‚αž˜ Intel AVX86-FP512 αž“αž·αž„αž”αŸ’αžšαž—αŸαž‘ _Float16 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ x16 αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ x86 αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ processors αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž˜αž€αž–αžΈαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž›αŸ„αžαž‘αŸ…αž˜αž»αžαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒαŸ” αž”αž‰αŸ’αž αžΆαž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž‡αžΆαž˜αž»αž“αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŸαžΆαžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžαž· (SLS, Straight Line Speculation)αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš αž‡αž˜αŸ’αžšαžΎαžŸ "-mharden-sls" αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αŸ”
  • αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαžšαž€αžƒαžΎαž‰αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžαŸαžšαžŠαŸ‚αž›αž˜αž·αž“αž‘αžΆαž“αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αŸ…αž§αž”αž€αžšαžŽαŸαžœαž·αž—αžΆαž‚αž‹αž·αžαž·αžœαž“αŸ’αžαž–αž·αžŸαŸ„αž’αž“αŸαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ†αž”αžΌαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚αž€αžΌαžŠαž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž‡αž½αžšαŸ” αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αŸ” αž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž“αŸ’αžŸαŸ„αž˜αž”αŸ’αžαžΌαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αžαŸ’αž˜αžΈαž…αŸ†αž“αž½αž“ 30 αž‘αŸ…αž€αžΆαž“αŸ‹ libgccjit αžŠαŸ‚αž›αž‡αžΆαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαž‘αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž“αž·αž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈ JIT αž…αž„αž€αŸ’αžšαž„ bytecode αž‘αŸ…αž‡αžΆαž€αžΌαžŠαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αž“αŸ’αžαž€αžΆαžš CO-RE (Compile Once - Run Everywhere) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαž BPF bytecode αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„αž€αžΌαžŠαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ eBPF αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αžαŸ‚αž˜αŸ’αžαž„αž‚αžαŸ‹ αž αžΎαž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αž‘αž»αž€αžŸαž€αž›αž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αžŸαž˜αŸ’αžšαž” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‘αŸ…αžαžΊαžŽαŸ‚αž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αž“αž·αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ’αžšαž—αŸαž‘ BPF) αŸ” CO-RE αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž…αž›αŸαžαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ eBPF αžŠαŸ‚αž›αž”αžΆαž“αž…αž„αž€αŸ’αžšαž„ αžŠαŸ‚αž›αž–αžΈαž˜αž»αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž“αŸƒαžαžΊαžŽαŸ‚αž›αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αž€αŸ’αžšαž„ αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž‘αžΈαžαžΆαŸ†αž„αž“αŸƒαž’αžΆαžαž»αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžΈαž€αŸ†αžŽαŸ‚αž˜αž½αž™αž‘αŸ…αž€αŸ†αžŽαŸ‚αž˜αž½αž™αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™ RISC-V αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŸαŸ†αžŽαž»αŸ†αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžαŸ’αž˜αžΈ zba, zbb, zbc αž“αž·αž„ zbs αž€αŸαžŠαžΌαž…αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ ISA αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‚αŸ’αžšαžΈαž”αžœαŸ‰αž·αž…αž‘αŸαžš αž“αž·αž„αž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ RISC-V ISA 20191213 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αŸ” αž‘αž„αŸ‹ -mtune=thead-c906 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ T-HEAD c906 coresαŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘ __int128_t/integer(kind=16) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ AMD GPUs αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αžΈαž€αŸ’αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ GCN αŸ” αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžšαž αžΌαžαžŠαž›αŸ‹ 40 αž€αŸ’αžšαž»αž˜αž€αžΆαžšαž„αžΆαžšαž€αŸ’αž“αž»αž„αž˜αž½αž™αž―αž€αžαžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš (CU) αž“αž·αž„αžšαž αžΌαžαžŠαž›αŸ‹ 16 αž˜αž»αžαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† (wavefront αžŠαŸ‚αž›αž‡αžΆαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ SIMD) αž€αŸ’αž“αž»αž„αž˜αž½αž™αž€αŸ’αžšαž»αž˜αŸ” αž–αžΈαž˜αž»αž“ αž˜αžΆαž“αžαŸ‚αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž€αŸ’αž“αž»αž„αž˜αž½αž™ CU αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™ NVPTX αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŸαŸ†αžŽαž»αŸ†αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† NVIDIA PTX (Parallel Thread Execution) αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αž„αŸ‹ β€œ-march”, β€œ-mptx” αž“αž·αž„ β€œ-march-map” αŸ” αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PTX ISA sm_53, sm_70, sm_75 αž“αž·αž„ sm_80 αŸ” αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž‚αžΊ sm_30 αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš PowerPC / PowerPC64 / RS6000 αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αŸ” αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ __builtin_get_texasr, __builtin_get_texasru, __builtin_get_tfhar, __builtin_get_tfiar, __builtin_set_texasr, __builtin_set_texasru, __builtin_set_set_set_ett.
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Arm Ampere-64 (-mcpu/-mtune ampere1), Arm Cortex-A1 (cortex-a510), Arm Cortex-A510 (cortex-a710) αž“αž·αž„ Arm Cortex-X710 (cortex- x2) αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ ARMv2 αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžΎαž‡αžΆαž˜αž½αž™αž‡αž˜αŸ’αžšαžΎαžŸ "-march"αŸ– armv8-a, armv8.7-a, armv8.8-a αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžš C αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ (Intrinsics) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž’αžΆαžαžΌαž˜αž·αž€ αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† ARM αžŠαŸ‚αž›αž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€ (ls9)αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž–αž“αŸ’αž›αžΏαž“αž˜αž»αžαž„αžΆαžš memcpy, memmove αž“αž·αž„ memset αžŠαŸ„αž™αž”αŸ’αžšαžΎαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ mopsoption ARM αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžšαž”αŸ€αž”αž–αž·αž“αž·αžαŸ’αž™αžαŸ’αž˜αžΈ β€œ-fsanitize=shadow-call-stack” (ShadowCallStack) αžŠαŸ‚αž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ AArch64 αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΌαžŠαž’αž‚αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‡αž˜αŸ’αžšαžΎαžŸ β€œ-ffixed-r18” αŸ” αžšαž”αŸ€αž”αž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž‡αžΆαž“αŸ‹αž›αžΎαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžαŸ’αžšαž‘αž”αŸ‹αž–αžΈαž˜αž»αžαž„αžΆαžšαž˜αž½αž™αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž•αŸ’αž‘αž»αž€αž›αžΎαžŸαž…αŸ†αžŽαž»αŸ‡αž“αŸ…αž›αžΎαž‡αž„αŸ‹αŸ” αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž‚αžΊαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž„αŸ‹ "αžŸαŸ’αžšαž˜αŸ„αž›" αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž•αŸ’αž‘αŸαžšαžœαžαŸ’αžαž»αž”αž‰αŸ’αž‡αžΆαž‘αŸ…αž˜αž»αžαž„αžΆαžšαž˜αž½αž™ αž αžΎαž™αž™αž€αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸαŸ‡αž˜αž€αžœαž·αž‰ αž˜αž»αž“αž–αŸαž›αž…αŸαž‰αž–αžΈαž˜αž»αžαž„αžΆαžšαŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹