Rust: рдРрдкреНрдкрд▓ рдРрдк рд╕реНрдЯреЛрд░ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЕрдЧре░ 2016  ┬╖  89рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rust-lang/rust

рдмрд┐рдЯрдХреЛрдб рдРрдкреНрдкрд▓ рдХреЗ рдРрдк рд╡рд┐рддрд░рдг рдХрд╛ рднрд╡рд┐рд╖реНрдп рд╣реИ рдФрд░ рд╣рдо рдЕрднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрдкреНрдкрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЬреЛ рднреА рд╕рдВрд╢реЛрдзрди рдЪрд╛рд╣рддрд╛ рд╣реИ рдЙрд╕реЗ рдЪреБрдирддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ LLVM рдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдЕрдкрдиреА рдЬрд╝рд░реВрд░рддреЗрдВ рд╣реИрдВ рдФрд░ рдЬрдм рднреА Apple рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВ:

  • рд╣рдо Apple рдмрд┐рдЯрдХреЛрдб рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЯреВрд▓рдЪреЗрди рд╢рд┐рдк рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рдмрджрд╕реВрд░рдд рд╣реИред
  • рд╣рдо LLVM рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rustc рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдПрдХ rust-llvm рдкреИрдХреЗрдЬ рдФрд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ rust-llvm-Apple рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдмрд┐рдЯрдХреЛрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП Apple LLVM рдХреЛ rustc рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
  • рд╣рдо рдПрдХ rustc_llvm_apple рдХреНрд░реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рд╕рдордп рджреЛ рд╕рдВрдкреВрд░реНрдг LLVMs рдХреЛ rustc рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рд╢рд╛рдпрдж рдЙрдбрд╝ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛
  • рд╣рдо rustc-Apple рдирд╛рдордХ rustc рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ rustc-apple рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд┐рдк рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ rustc_llvm рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп rustc_llvm_apple рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд┐рд▓реНрдХреБрд▓ rustc рдЬреИрд╕рд╛ рд╣реИред рдЬрдм rustc рдХреЛ рдмрд┐рдЯрдХреЛрдб рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ rustc-Apple рдмрд╛рдЗрдирд░реА рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдХрд╛рдлреА рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред
  • рд╣рдо рдЕрдкрдиреЗ рдмрд┐рдЯрдХреЛрдб рдХреЛ рдЙрдирдХреЗ рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдЯрдХреЛрдб рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдпрд╣рд╛рдВ рд╕рдлрд▓рддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдЖрд╕реНрдердЧрд┐рдд-рд╕реЗ-рд╡реИрдХрд▓реНрдкрд┐рдХ-рд░рд╕реНрдЯрд╕реА рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рдЖрд╢рд╛рдЬрдирдХ рд╣реИрдВред

рд╕реАрд╕реА https://users.rust-lang.org/t/ios-rust-integration/6928/4

рд╕реАрд╕реА @bluejekyll

A-LLVM A-rustbuild C-enhancement E-hard O-ios T-compiler T-dev-tools

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ rustc nightly-2019-09-05 aarch64-apple-ios and rustflags = "-C lto -Z embed-bitcode" staticlib рдХреЛ clang-1100.0.33.5 (Xcode 11 beta 7) and -fembed-bitcode рдРрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ред рд╕реНрд░реЛрдд рдХреЛрдб https://github.com/saturday06/rust-ios-bitcode-test рд╣реИ ред

рд╕рднреА 89 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдо LLVM рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rustc рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдПрдХ rust-llvm рдкреИрдХреЗрдЬ рдФрд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ rust-llvm-Apple рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдмрд┐рдЯрдХреЛрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП Apple LLVM рдХреЛ rustc рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред

рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред LLVM API рдЕрдкрдиреЗ рдмрд┐рдЯрдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕реНрдерд┐рд░ рд╣реИ рдФрд░, рдпрджрд┐ рд╣рдо LLVM xy рдХреЗ рд╡рд┐рд░реБрджреНрдз рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ xy рдХреЗ рдмрдЬрд╛рдп LLVM xz рд╣реЛрдиреЗ рд╕реЗ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрдВрдЧ рд▓рдЧ рдЬрд╛рдПрдЧрд╛ред рдмрд╕ рд╕рд┐рд╕реНрдЯрдо рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕реЗ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ (рдЬреИрд╕реЗ --llvm-root рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░рддрд╛ рд╣реИ)ред

рд╣рдо рдПрдХ rustc_llvm_apple рдХреНрд░реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рд╕рдордп рджреЛ рд╕рдВрдкреВрд░реНрдг LLVMs рдХреЛ rustc рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рд╢рд╛рдпрдж рдЙрдбрд╝ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛

рд╕реЗрдм рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╕ рд╕рд┐рд╕реНрдЯрдо рдПрд▓рдПрд▓рд╡реАрдПрдо (рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ) рд▓рд┐рдВрдХ рдХрд░реЗрдВред рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдЕрдкрдиреЗ рдмрд┐рдЯрдХреЛрдб рдХреЛ рдЙрдирдХреЗ рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдЯрдХреЛрдб рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдпрд╣рд╛рдВ рд╕рдлрд▓рддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд░реЗрдВрдбрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ... рддреЛ, рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдереЛрдбрд╝реЗ рд╕реНрдерд┐рд░ рд╣реИред рдХреНрдпрд╛ рд╕реЗрдм рдХреБрдЫ рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рдЪ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╛ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА рд╕реЗрдм рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рд╣реИ)?


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ 2013-рдИрд╢ рдореЗрдВ рд╕рднреА рддрд░рд╣ рд╕реЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╡рд┐рддрд░рдг рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╡рдХреВрдлреА рд╣реИред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ; рджреЗрд╢реА рдмрд╛рдЗрдирд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдЕрдм рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рднреА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЬрдм рдРрдкреНрдкрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрд╕рдВрдЧрдд рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЛрдЧ рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рди рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛, рдпрд╛рдиреА рдХрд╛рд░реНрдЧреЛ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯрдХреЛрдб, рдлрд┐рд░ рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЬрдм рдореИрдВрдиреЗ рдмрд┐рдЯрдХреЛрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрд▓рдПрд▓рд╡реАрдПрдо-рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдореБрдЭреЗ рдмрд┐рдЯрдХреЛрдб рд╕реЗ рдПрдХ рдЕрд╕рдВрдЧрдд рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЧреВрдВрдЧрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ? рдпрд╛, рдореИрдВрдиреЗ рдЕрднреА рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рд╣реЛрдЧрд╛ред

рдПрд▓рд╡реАрдПрдо-рд▓рд┐рдВрдХ рд╕реЗ рд╕рдЯреАрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

@bluejekyll LLVM рдХреА рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрдИ рдмрд┐рдЯрдХреЛрдб рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдЗрди рдмрд┐рдЯрдХреЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкрд░реАрдХреНрд╖рдг рд▓рдЧрд╛рддрд╛рд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (llvm-dis-3.8/opt-3.8 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3.2 рд╕реЗ 3 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреА рдмрд┐рдЯрдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рд╕рдордЭрддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рд╕реЗрдм рд╕рд╛рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реЗрдм рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╕ рд╕рд┐рд╕реНрдЯрдо рдПрд▓рдПрд▓рд╡реАрдПрдо (рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ) рд▓рд┐рдВрдХ рдХрд░реЗрдВред рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдЖрд╕рд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдРрдк рд╕реНрдЯреЛрд░ рдЕрдкрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдзрдиреНрдп рд╕реЗрдм-рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рд╡рд░реНрддрдорд╛рди рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рджреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рднреА рд╣реИ (рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рджреЛ рдкрдбрд╝реЛрд╕реА рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реЛрдВ)ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл Apple-llvm рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИред

рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рднреА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЬрдм рдРрдкреНрдкрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрд╕рдВрдЧрдд рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЛрдЧ рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рди рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдирд╡реАрдирддрдо рдПрдХреНрд╕рдХреЛрдб рдХреЛ рдРрдкреНрд╕ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рджреЗрдХрд░ рдЗрд╕рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ (рдФрд░ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐ рдореЗрдВ рдЬрд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛)ред

рдЖрдИрдЖрдИрдЖрд░рд╕реА, рдмрд┐рдЯрдХреЛрдб рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░реЙрд╕-рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдмрд┐рдЯрдХреЛрдб рдХреНрд▓реИрдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд▓реИрдВрдЧ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рдПрдХ рд╡рд┐рд░реЛрдзреА рд▓рдХреНрд╖реНрдп рд╣реИ)ред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдХреНрдпреЛрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ рдмрд┐рдЯрдХреЛрдб рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреБрдЫ рд╣рдж рддрдХ рдореБрд╢реНрдХрд┐рд▓ рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо рдЧрдиреНрджрд╛ рддрд░реАрдХрд╛ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдХреЛрдбрдЬреЗрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдФрд░ рдРрдкреНрдкрд▓ рдХреЛрдбрдЬрди рдкрде рдЧрддрд┐рд╢реАрд▓ рдХреНрд░реЗрдЯ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЬреЛ рд╕рд┐рд░реНрдл рд╕реЗрдм-рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдВрдХрд▓рд┐рдд рдирд┐рдпрдорд┐рдд рдХреЛрдбрдЬрди рдкрде рд╣реЛрдЧрд╛ред)

рдЪреВрдВрдХрд┐ рдпрд╣ рдмрдЧ рдРрдк рд╕реНрдЯреЛрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдЕрдкрд╡рд╛рдж рдкреНрд░рдмрдВрдзрди рдХрд╣рд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ? (рдЕрд░реНрдерд╛рдд panic=abort рдЗрд╕ рд╕рдордп рд╕рдЦреНрддреА рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИред)

LLVM рдХреА рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрдИ рдмрд┐рдЯрдХреЛрдб рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдЗрди рдмрд┐рдЯрдХреЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкрд░реАрдХреНрд╖рдг рд▓рдЧрд╛рддрд╛рд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (llvm-dis-3.8/opt-3.8 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3.2 рд╕реЗ 3 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреА рдмрд┐рдЯрдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рд╕рдордЭрддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рд╕реЗрдм рд╕рд╛рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@nagisa рдореБрдЭреЗ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдореБрдЭреЗ рдЖрд╢рд╛ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЕрднреА рднреА рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред

@ рд░рд┐рдХреА26 рдЕрдЪреНрдЫреЗ рдЕрдВрдХред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдРрдк рд╕реНрдЯреЛрд░ рдЕрдкрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдзрдиреНрдп рдРрдкреНрдкрд▓-рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рд╡рд░реНрддрдорд╛рди рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдРрдкреНрдкрд▓ рдкрд░ рдПрдХреНрд╕рдХреЛрдб рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рд┐рд╕реНрдЯрдо рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рддрдм рдПрдХреНрд╕рдХреЛрдб рдПрд▓рдПрд▓рд╡реАрдПрдо рдерд╛ред рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд░рд╕реНрдЯрд╕реА рдЯреНрд░реЗрдиреЛрдВ рдХреА рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп xcode рд╣рдореЗрд╢рд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реЛред

рдмреЗрд╢рдХ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдРрдкреНрдкрд▓ рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╣рдореЗрдВ рд░рд╕реНрдЯрдХ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╡реИрдз рдРрдкреНрдкрд▓ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдЙрди рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реА рд╕реНрдерд┐рд░рддрд╛ рдХрд╣рд╛рдиреА рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдмрд╛рд╣рд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдФрд░ рдореБрдЭреЗ рдРрд╕рд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЗрд╕рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд░реНрде рджреЛ LLVM рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП LLVM рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рднреА рд╣реИ

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА LLVM рд╕рдВрд╕реНрдХрд░рдг 3.7 рд╕реЗ 3.9 (рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЯреНрд░рдВрдХ) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред рдЬрдм рддрдХ рдПрдХреНрд╕рдХреЛрдб рдХрд╛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреБрдЫ рдкреНрд░рд╛рдЪреАрди рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдЪреНрдЫреЗ рд╣реИрдВред рдпрджрд┐ рдПрдХреНрд╕рдХреЛрдб рдПрд▓рдПрд▓рд╡реАрдПрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╛рдЪреАрди/рдХрд╕реНрдЯрдо/рдЖрджрд┐ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ _that_ LLVM рдореЗрдВ рдкреИрдЪ рднреЗрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХреЗрдВред рдЕрдЧрд░ Apple рдиреЗ 2038 рддрдХ Xcode LLVM рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП 3.7 рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ rustc рдХреЛ рд▓реЙрдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЙрддреНрддрд░: рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ rustc рдХреЛ LLVM xy рдХреЗ рд╡рд┐рд░реБрджреНрдз рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕реЗ LLVM xy рд╕реЗ рдареАрдХ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред LLVM API рдЕрдкрдиреЗ рдмрд┐рдЯрдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕реНрдерд┐рд░ рд╣реИ рдФрд░, рдпрджрд┐ рд╣рдо LLVM xy рдХреЗ рд╡рд┐рд░реБрджреНрдз рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ xy рдХреЗ рдмрдЬрд╛рдп LLVM xz рд╣реЛрдиреЗ рд╕реЗ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрдВрдЧ рд▓рдЧ рдЬрд╛рдПрдЧрд╛ред рдмрд╕ рд╕рд┐рд╕реНрдЯрдо LLVM рд╕реЗ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ (рдЬреИрд╕реЗ --llvm-root рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░рддрд╛ рд╣реИ)ред

@nagisa рд╕реА ++ рдПрдкреАрдЖрдИ рдЕрд╕реНрдерд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИред рдореБрдЭреЗ рдПрдкреАрдЖрдИ рд╕рдорд░реНрдерди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рд╕реЗрдм рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╕ рд╕рд┐рд╕реНрдЯрдо рдПрд▓рдПрд▓рд╡реАрдПрдо (рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ) рд▓рд┐рдВрдХ рдХрд░реЗрдВред рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╣рдо рд╕рднреА рдРрдкреНрдкрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдРрдкреНрдкрд▓ рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдХреЗрд╡рд▓ рдХрдВрдмрд▓ рд╢рд┐рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдбреЗрд╕реНрдХрдЯреЙрдк рдорд╢реАрди рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реЗрдм рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛, рдФрд░ рдЧреИрд░-рдРрдкреНрдкрд▓ рд╣реЛрд╕реНрдЯ рдкрд░ рдЖрдИрдУрдПрд╕ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ... рддреЛ, рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдереЛрдбрд╝реЗ рд╕реНрдерд┐рд░ рд╣реИред рдХреНрдпрд╛ рд╕реЗрдм рдХреБрдЫ рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рдЪ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╛ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА рд╕реЗрдм рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рд╣реИ)?

рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИред

рджреЗрд╢реА рдмрд╛рдЗрдирд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдЕрдм рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдпрд╣ рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред

рдЗрд╕рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рджреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рднреА рд╣реИ (рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рджреЛ рдкрдбрд╝реЛрд╕реА рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реЛрдВ)ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл Apple-llvm рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИред

@ ricky26 рд╣рдо LLVM рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред рдЬрдм рддрдХ рдРрдкреНрдкрд▓ рдФрд░ рд╣рдорд╛рд░реЗ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдмрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдбрд╝реЗ рдЯреВрдЯрдиреЗ рдХрд╛ рдЦрддрд░рд╛ рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдкрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝реЗ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рдЖ рд░рд╣реЗ рд╣реИрдВред

рдЬрдм рддрдХ рдПрдХреНрд╕рдХреЛрдб рдХрд╛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреБрдЫ рдкреНрд░рд╛рдЪреАрди рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдЪреНрдЫреЗ рд╣реИрдВред

рдЗрд╕ рдкреЗрдЬ рд╕реЗ https://gist.github.com/yamaya/2924292 :

clang-700.0.72 => LLVM 3.7.0
clang-700.1.76 => LLVM 3.7.0
clang-700.1.81 => LLVM 3.7.0
clang-703.0.29 => LLVM 3.8.0
clang-703.0.31 => LLVM 3.8.0

рд╕реА ++ рдПрдкреАрдЖрдИ рдЕрд╕реНрдерд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИред рдореБрдЭреЗ рдПрдкреАрдЖрдИ рд╕рдорд░реНрдерди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ rustllvm рдХреЗ рд░реВрдк рдореЗрдВ C++ API рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ (рдХрд╛рдлреА рдмрдбрд╝реА!) рд╣реИрдВред рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рд╕рдВрдХрд▓рд┐рдд рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрд╕ рд░реИрдкрд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рд▓рд┐рдВрдХрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реЗрдВрдЧреА, рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдВрдЧреЗред

рдЧреИрд░-рдРрдкреНрдкрд▓ рд╣реЛрд╕реНрдЯ рдкрд░ рдЖрдИрдУрдПрд╕ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рдпрджрд┐ рдРрдкреНрдкрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рд╕реЗ рдЙрддреНрдкрдиреНрди рдмрд┐рдЯрдХреЛрдб рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдПрдХ рд╕рдорд╛рди рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ рдЙрдирдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреИрдЪ рдХреЛ рд░рд┐рд╡рд░реНрд╕-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рдмреАрдЪ рдмрд┐рдЯрдХреЛрдб 3.7.0 рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 3.7.0 рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рджреВрд╕рд░реЗ рдмрд┐рд▓реНрдб рджреНрд╡рд╛рд░рд╛ рдЦрдкрдд рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рдВрдЧрдд рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ libLLVM рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

: рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ 3.2 рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдмрд┐рдЯрдХреЛрдб рдЕрднреА рднреА 3.8 LLVM рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдирдореВрдирд╛ рд╣реЛред

рдХреБрдЫ рдиреЛрдЯ:

  • рдПрдХреНрд╕рдХреЛрдб рдПрдХ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп libLLVM (рд╕реНрдерд┐рд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓) рдХреЗ рд╕рд╛рде рднреА рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ libclang.dylib рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕реЗ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред
  • рдРрдкреНрдкрд▓ https://opensource.apple.com рдкрд░ 'рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓реНрд╕' рдХреЗ рддрд╣рдд рдЕрдкрдиреЗ 'рдХреНрд▓реИрдВрдЧ' (рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рд╣рд┐рдд) рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
  • рдХрд╣рд╛рдиреА рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░рд┐рд▓реАрдЬ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рдВрдЯрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде рднреЗрдЬреЗ рдЧрдП рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред (рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде рдУрдкрди-рд╕реЛрд░реНрд╕ рдЯреВрд▓рдЪреЗрди рд╕реНрдиреИрдкрд╢реЙрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдЯреВрд▓рдЪреЗрди рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рдмрдорд┐рдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред)

cc @ рд░рд╕реНрдЯ-рд▓реИрдВрдЧ/рдХрдВрдкрд╛рдЗрд▓рд░

рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреИрд╕реЗ рдмрдирд╛рддреА рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЛрдиреЛ рдФрд░ рдЬрд╛рдУред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХрддрд╛ рдХрд╛ рдЙрддреНрддрд░ il2cpp рд╣реИ - рдЕрдкрдиреЗ рд╕рднреА рдЖрдИрдПрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕реА ++ рдХреЛрдб рдореЗрдВ рдмрдирд╛рдирд╛ред

рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЧреЛрд▓рдВрдЧ рдмрдЧ: https://github.com/golang/go/issues/12682; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реБрдЭрд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЧреЛ рдЯреВрд▓рдЪреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдорд╛рдирдХ рдЧреЛ рдЯреВрд▓рдЪреЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реИ)ред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдРрдкреНрдкрд▓ рдХреЗ рдмрд╛рд╣рд░ рдмрд┐рдЯрдХреЛрдб рд╕рдорд░реНрдерди рдХреА рдХрд╣рд╛рдиреА рдЦрд░рд╛рдм рд╣реИред

рдореЛрдиреЛ рдЙрдЪрд┐рдд рд╕реЗрдм рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рдкреНрд░рдХрдЯ рд╣реЛрдЧрд╛: http://tirania.org/blog/archive/2015/Sep-02.html

рдПрдХ рдареЛрдХрд░ рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдЖрдк рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдЕрд╕реЗрдВрдмрд▓реА рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ :(

рдореЛрдиреЛ рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдорд┐рдЧреБрдПрд▓ рдбреА рдЗрдХрд╛рдЬрд╝рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд╡рд░рд┐рдд рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдореЛрдиреЛ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ: https://twitter.com/mitsuhiko/status/769458873237434368

@mitsuhiko You _can_ рдореЗрдВ рдЖрдИрдУрдПрд╕ рдФрд░ рдЯреАрд╡реАрдУрдПрд╕ рдкрд░ рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдЕрд╕реЗрдВрдмрд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЙрдЪрдУрдПрд╕ рдирд╣реАрдВ, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЖрдВрджреЛрд▓рди? рдореБрдЭреЗ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рдмрд┐рдирд╛ рдЖрдИрдУрдПрд╕ рдкрд░ рдЬрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдРрдкреНрдкрд▓ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдЧреИрд░-рд╡реИрдХрд▓реНрдкрд┐рдХ рдЬреИрд╕реА рд╡реИрдХрд▓реНрдкрд┐рдХ рдЪреАрдЬреЗрдВ рдЕрдЪрд╛рдирдХ рдЕрдЪрд╛рдирдХ рдмрдирд╛рдиреЗ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЙрдЪрдУрдПрд╕ рдФрд░ рдЯреАрд╡реАрдУрдПрд╕ рдкрд░ рдмрд┐рдЯрдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреБрдЫ рд╣рдж рддрдХ рдореБрд╢реНрдХрд┐рд▓ рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо рдЧрдиреНрджрд╛ рддрд░реАрдХрд╛ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдХреЛрдбрдЬреЗрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдФрд░ рдРрдкреНрдкрд▓ рдХреЛрдбрдЬрди рдкрде рдЧрддрд┐рд╢реАрд▓ рдХреНрд░реЗрдЯ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЬреЛ рд╕рд┐рд░реНрдл рд╕реЗрдм-рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдВрдХрд▓рд┐рдд рдирд┐рдпрдорд┐рдд рдХреЛрдбрдЬрди рдкрде рд╣реЛрдЧрд╛ред)

рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг (@ ricky26 рджреНрд╡рд╛рд░рд╛) рдПрдХ рдЬрдВрдЧрд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдЗрд╕ рдкрд░ рдХреБрдЫ рднреА рдмрджрд▓рд╛ рд╣реИред рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреА рд╣рд╛рд▓рд┐рдпрд╛ рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдмрд┐рдЯрдХреЛрдб (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рд╣рдореЗрд╢рд╛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореМрд▓рд┐рдХ рд╕реНрддрд░ рдкрд░ "рд╣рд▓" рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдмрд┐рдЯрдХреЛрдб рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЕрдзрд┐рдХ рдПрд░реНрдЧреЛрдиреЛрдорд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИрдВ?

HackerNews рдкрд░ рдпрд╣ рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░ macOS рдФрд░ iOS рдкрд░ рд░рд╕реНрдЯ рд╕реЗ рдЙрддреНрдкрдиреНрди рдмрд┐рдЯрдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ рд╣реИред рд░рд╕реНрдЯ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереНрд░реЗрдб рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЬреЛ рдПрдХ рдЕрдЪреНрдЫреА рдЦрдмрд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ!

https://news.ycombinator.com/item?id=14305084

рдкреНрд░рд╢реНрди рдореЗрдВ рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рддреНрд╡рд░рд┐рдд рдиреЛрдЯреНрд╕:

  • рдореИрдВрдиреЗ рд╡рд░реНрддрдорд╛рди рдХреНрд░реЗрдЯ рдФрд░ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╡рд╛рд▓реА рдПрдХ .bc рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rustc рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -C lto --emit llvm-bc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реИрдХ рд╣реИ; рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬреЗрдорд▓реЛрдХ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдИрдУрдПрд╕ рдкрд░ рд╡реИрд╕реЗ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ rustc "рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб" рдХреЗ рд╕рд╛рде Mach-Os рдХреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдареАрдХ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ; рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреНрд▓реИрдВрдЧ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

  • рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╣реИрдХ рд╕реЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░, 'рдмрд╕ рдХрд╛рдо' рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ:

  • рдореБрдЦреНрдп рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдмрд╛рдзрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдВрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЯреНрд░рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреЗрд╡рд▓ рд╡рд╛рд░реНрд╖рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдирдП рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдкреБрд░рд╛рдиреЗ рдмрд┐рдЯрдХреЛрдб рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдкреБрд░рд╛рдиреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╡реАрдирддрдо рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, rustc 1.17 рдЕрднреА рднреА Xcode 8.x рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди LLVM 4.0 рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж рд╕реЗ рд░рд╛рдд рдореЗрдВ рдирд╣реАрдВ; рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдВрдпреЛрдЧ рд╣реИред)

  • рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд░рд╕реНрдЯ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╡рд┐рд░реБрджреНрдз рдирд┐рд░реНрдорд┐рдд рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╢рд┐рдк рдХрд░реЗрдЧрд╛ред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╕реНрдЯреЙрдХ LLVM рдХреЗ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк Apple рдХреЗ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

    • рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХрд╣рд╛ рдерд╛, рдПрдХреНрд╕рдХреЛрдб рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд╛рдЗрдирд░реА рдХреЛ рдХрд┐рд╕реА рднреА рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд░реВрдк рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рднреА рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реИ; рдХреЗрд╡рд▓ рдХреНрд▓реИрдВрдЧ рдФрд░ libclang.dylib (рдЬреЛ рдХреНрд▓реИрдВрдЧ рдПрдкреАрдЖрдИ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрд▓рдПрд▓рд╡реАрдПрдо рдПрдХ рдирд╣реАрдВ)ред
    • рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рднреА рдХрд╣рд╛, рд╕реНрд░реЛрдд рдХреЛрдб рдЖрдорддреМрд░ рдкрд░ opensource.apple.com (рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓реНрд╕ -> рдХреНрд▓реИрдВрдЧ рдХреЗ рддрд╣рдд; рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рднреА рдПрд▓рдПрд▓рд╡реАрдПрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ) рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╕ рдХреБрдЫ рд╣рдж рддрдХ рдЕрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ/рджреЗрд░реА рдХреЗ рдмрд╛рджред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ @alexcrichton рджреНрд╡рд╛рд░рд╛ рдиреЛрдЯ рдХреА рдЧрдИ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдЧрд╛рд░рдВрдЯреА рдХреЛ

(рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХреНрд╕рдХреЛрдб 8.2.1 рдХреНрд▓реИрдВрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрдВрдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред rustllvm рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдШреЛрдВрд╕рд▓рд╛ #if LLVM_VERSION_GE(..) рд╕рд╢рд░реНрдд рд╣реИ, рдЬреЛ рдЗрд╕реЗ рджреЛрдиреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдПрд▓рдПрд▓рд╡реАрдПрдо, рдЗрд╕ рд╢рд╛рдЦрд╛ рд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ - рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо 3.9 рдПрд╕рд╡реАрдПрди рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ-рд╡рд╛рд░ 3.8 рдФрд░ 3.9 рдХреЗ рдмреАрдЪ рдХрд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХреНрд╕рдХреЛрдб рд▓рдЧрднрдЧ рдЕрдЧрд▓реЗ рд╡рд╛рд░реНрд╖рд┐рдХ рд░реАрдлреНрд░реЗрд╢ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╣реИред)

рдХреНрдпрд╛ рдЗрд╕ рдореЛрд░реНрдЪреЗ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ? рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдЖрдк (рдХреЛрд░ рдЯреАрдо) рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХ рдареЛрд╕ рд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣реЗрдЧрд╛?

рдореИрдВ рдЕрдкрдиреЗ рдмреЗрд╣рддрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд▓рд┐рдП рд░рд╕реНрдЯ рдореЗрдВ рдПрдХ iOS рдРрдк рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬрдм рднреА Xcode рдпрд╛ rustc рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЧреИрд░-рдмрд┐рдЯрдХреЛрдб рдпрд╛ рдирд┐рдпрдорд┐рдд рд╣реИрдХреНрд╕/рджреЗрд░реА рд╕реЗ рдирд╣реАрдВ рдлрдВрд╕рдирд╛ рдЪрд╛рд╣рд┐рдПред

@regexident

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕реНрд╡реИрдкреЗрдмрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ Apple, wasm рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЯреНрд░рд╛рдВрд╕ рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд╕реАрд╕реА #45684

рдХреНрдпрд╛ Apple рдХрд╛ рдмрд┐рдЯрдХреЛрдб рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрддрд░рдирд╛рдХ рдирд╣реАрдВ рд╣реИ https://medium.com/@FredericJacobs/why -im-not-enable-bitcode-f35cd8fbfcc5 рдмрд┐рд▓реНрдб рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЗ рд▓рд┐рдП рдореБрджреНрджреЗред рдЖрджрд┐ред

@burdges рдХреБрдЫ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╡реЙрдЪрдУрдПрд╕ рдФрд░ рдЯреАрд╡реАрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдРрдкреНрдкрд▓ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрдк рд╕реНрдЯреЛрд░ рд╕рдмрдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред "рдЙрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХреНрд░рд┐рдкреНрдЯреЛ рдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рдорд╛рди рди рдХрд░реЗрдВ" рдХреЗ рдЕрд▓рд╛рд╡рд╛ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдРрдкреНрдкрд▓ рд╕реЗ рднреА рдбрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕ рд╕рдордп рдПрдХ рдмреНрд░рд┐рдХреЗрдЯ рд╡рд╛рд▓рд╛ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ -C lto --emit=llvm-bc рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ 1.24.0 рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХрд░ рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреАрдВ:

Undefined symbols for architecture x86_64:
  "_backtrace_create_state", referenced from:
      std::sys_common::gnu::libbacktrace::init_state::h686c3e443c712b0f in Logger(x86_64.o)
  "_backtrace_syminfo", referenced from:
      std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h598a932d5bb0d80b in Logger(x86_64.o)
      core::iter::iterator::Iterator::position::_$u7b$$u7b$closure$u7d$$u7d$::hbf03153d55553502 in Logger(x86_64.o)
  "_backtrace_pcinfo", referenced from:
      std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h598a932d5bb0d80b in Logger(x86_64.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмрд╛рд╣рд░реА fn рдореЗрдВ AssertUnwindSafe рд╕рд╛рде рд╕рднреА рдХреЛрдб рд▓рдкреЗрдЯрдХрд░ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрдо рд╕реЗ рдХрдо рджрдмрд╛ рд╕рдХрддрд╛ рд╣реВрдВ

libbacktrace рдПрдХ C рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рд░рд╕реНрдЯ рд╕реЛрд░реНрд╕ рдЯреНрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ:

https://github.com/rust-lang/rust/tree/master/src/libbacktrace

рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдмрд┐рдЯрдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ libbacktrace рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлреЛрди рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЬрдВрдЧ рдЙрди рдкреНрд░рддреАрдХреЛрдВ рдХреЛ stdlib рдореЗрдВ рдХреИрд╕реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдмреИрдХрдЯреНрд░реЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ? рдореИрдВрдиреЗ RUST_BACKTRACE env var рд╣рдЯрд╛ рджрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд┐рдирд╛ рдмреИрдХрдЯреНрд░реЗрд╕ рдХреЗ rustc рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рдЖрд╕рд╛рди рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдХрд╛рд░реНрдЧреЛ.рдЯреЙрдорд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ

рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ -fembed-bitcode рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реБрдП rustc рд╕реЛрд░реНрд╕ рдЯреНрд░реА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ CFLAGS рдЬреЛрдбрд╝ рдкрд╛рдПрдВрдЧреЗ; рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдЕрднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдФрд░ рдпрд╣ gcc-rs рд╕рд╛рде рджреЛ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП rustc рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдпрд╣ рдПрдХ рд╣реИрдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛:

cd /tmp/build
cat >ccwrap.py <<END

#!/usr/bin/env python
import os, sys
os.execv('/usr/bin/xcrun', ['clang', '-fembed-bitcode'] + [arg for arg in sys.argv[1:] if arg not in {'-ffunction-sections', '-fdata-sections'}])

END

chmod 755 ccwrap.py
ln -s /usr/bin/ar ar
export CC_aarch64_apple_ios=`pwd`/ccwrap.py
/usr/src/rust/configure --target=aarch64-apple-ios
make

рдпрд╣ рдЖрдкрдХреЛ рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рд╕рд╛рде libbacktrace.a ( ./build/aarch64-apple-ios/native/libbacktrace/.libs/ ) рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред __LLVM,__bitcode рдореЗрдВ рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rustc рдХреЗ рд▓рд┐рдП рд╣реИред

(рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЪреВрдВрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрджреНрдзреГрдд рддреНрд░реБрдЯрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рд┐рдВрдХрд░ рддреНрд░реБрдЯрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рдпрдорд┐рдд, рдмрд┐рдирд╛ рдмрд┐рдЯрдХреЛрдб-рдПрдореНрдмреЗрдбреЗрдб libbacktrace.a рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдЧрд╛ рдЯреВрдЯреЗ рд╣реБрдП рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рд╛рдеред)

рдЙрдкрд░реЛрдХреНрдд рдореБрджреНрджреЗ:

  • gcc-rs -ffunction-sections рдФрд░ -fdata-sections рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ; -fembed-bitcode рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реЛрдиреЗ рдкрд░ рдХреНрд▓реИрдВрдЧ рдЗрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА -fno-function-sections рдмрд╛рдж рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдП)ред

рдореИрдВрдиреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд░рд┐рдкреЛрд░реНрдЯ рджрд╛рдпрд░

  • gcc-rs ar рдХреЛ CC_aarch64_apple_ios (!?) рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ; рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ AR_aarch64_apple_ios рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рд╛

рдореИрдВ рдЗрд╕реЗ рдирд╡реАрдирддрдо cc-rs ( gcc-rs рд╕реЗ рдмрджрд▓рд╛ рдЧрдпрд╛) рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдирд╣реАрдВ рдХреАред рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ ar рдХреЛ рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХрд░рддреА рд╣реИред

рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдмреИрдХрдЯреНрд░реЗрд╕ рд╕рд╛рдорд╛рди рдХреА рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЗ рд╕рдВрдХрд▓рд┐рдд рд▓рд┐рдмрдмреИрдХрдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

рд╣реИрдХ рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА, рдЕрдм рдореИрдВ рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдорд╛рд░ рд░рд╣рд╛ рд╣реВрдВ: dsymutil segfaults рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдбреАрдПрд╕рд╡рд╛рдИрдПрдо рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред dSYM рдХреЗ рдмрд┐рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд╖реНрдкрд╛рджрди рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди dSYM рдирд┐рд░реНрдорд╛рдг рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдирд╛ libbacktrace.a рд╣рдЯрд╛ рджрд┐рдпрд╛, рдЗрд╕реЗ рдЦрд╛рд▓реА рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛, рдФрд░ рдЪреАрдЬреЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░ рдЧрдИрдВ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдпрд╣ dsymutil рдореЗрдВ рдПрдХ рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ LLVM рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдк рдПрд▓рдПрд▓рдбреАрдмреА рдХреЗ рддрд╣рдд dsymutil рдЪрд▓рд╛рдиреЗ рдФрд░ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдмреИрдХрдЯреНрд░реИрдХ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╛ рдмреЗрд╣рддрд░ рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ LLVM рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рд╢реЗрдпрд░ LLVM рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ llvm-dsymutil , рд▓реЗрдХрд┐рди рдЗрди рджрд┐рдиреЛрдВ Xcode рдХреЗ dsymutil рд╣реИ рд╕рд┐рд░реНрдл рдПрдХ рдХреЗ рд▓рд┐рдП рд╕рд┐рдорд▓рд┐рдВрдХ llvm-dsymutil ред dsymutil рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ рдПрдХ рдЕрд▓рдЧ, рдмрдВрдж рд╕реНрд░реЛрдд рдЙрдкрдпреЛрдЧрд┐рддрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ dsymutil-classic рд░реВрдк рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)

@comex рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдХреНрдпрд╛ cc рдЯреЛрдХрд░рд╛ -fembed-bitcode рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╛ рдЕрдЧрд░ рд╣рдо "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдареАрдХ рд╣реИ?

(рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЖрдИрдУрдПрд╕ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ!)

рд░рд╕реНрдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯрдХреЛрдб рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓реИрдВрдЧ/рд▓рд┐рдВрдХрд░ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ?

@рдПрд▓реЗрдХреНрд╕рдХреНрд░рд┐рдЪрдЯрди

рдХреНрдпрд╛ cc рдЯреЛрдХрд░рд╛ -fembed-bitcode рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╛ рдЕрдЧрд░ рд╣рдо "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдареАрдХ рд╣реИ?

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд┐рдЯрдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдореВрд▓ рдХреЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдРрдкреНрдкрд▓ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП рдРрдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ, рдФрд░ рдлрд┐рд░ рдРрдкреНрдкрд▓ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдорд╛рдЗрдХреНрд░реЛрдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрдИрдУрдПрд╕/рд╡реЙрдЪрдУрдПрд╕/рдЯреАрд╡реАрдУрдПрд╕ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ -fembed-bitcode рдкрд╛рд╕ рдХрд░рдирд╛ рд╢рд╛рдпрдж рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, -fembed-bitcode-marker рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╛ рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛); рдпрд╣ рдХреНрд▓реИрдВрдЧ рдХреЛ рдХрд┐рд╕реА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд┐рдЯрдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдПрдХ рдбрдореА рдмрд┐рдЯрдХреЛрдб рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдРрдк рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХреЛ рдереЛрдбрд╝рд╛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрд╕рд▓ рдореЗрдВ, рдПрдХреНрд╕рдХреЛрдб рдЕрдВрддрд┐рдо рдРрдк рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП -fembed-bitcode-marker рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╡рд┐рдХрд╛рд╕ рднреА рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ cc рдореЗрдВ "рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ" рдХреА рдПрдХ рдЕрд▓рдЧ рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ рдореЛрдб", рдЗрд╕реЗ рд╢рд╛рдпрдж рдЗрд╕реЗ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрд┐рдЯрдХреЛрдб рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рднрд▓реЗ рд╣реА рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред

рд░рд╕реНрдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯрдХреЛрдб рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓реИрдВрдЧ/рд▓рд┐рдВрдХрд░ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрд▓реИрдВрдЧ рдФрд░ рдПрд▓рдбреА рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрдЪреНрдЪреЗ рдмрд┐рдЯрдХреЛрдб рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ; рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрд▓рдЯреАрдУ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ ( -flto ), рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ .o рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреНрд▓реИрдВрдЧ рдЬреЗрдирд░реЗрдЯ рдХрд░рддреА рд╣реИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдЪреНрдЪреЗ рдмрд┐рдЯрдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ, рдореИрдХ-рдУ рдирд╣реАрдВред (рдЗрдиреНрд╣реЗрдВ рдЕрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рд▓рд╛рдЗрдкреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред) рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ "рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб" рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ __LLVM,__bitcode рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рднрд░реЗ рд╣реБрдП рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рд╛рде рдордЪ-рдУ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдореВрд▓ рдХреЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ред рдПрд▓рдЯреАрдУ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдПрд▓рдЯреАрдУ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рднреАред (рдпрджрд┐ рдПрд▓рдЯреАрдУ рдЪрд╛рд▓реВ рд╣реИ, рддреЛ рд▓рд┐рдВрдХрд░ рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ; рдпрджрд┐ рдПрд▓рдЯреАрдУ рдмрдВрдж рд╣реИ, рддреЛ рд▓рд┐рдВрдХрд░ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЗрд╡рд▓ __LLVM,__bitcode рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдПрдХрд▓ рд╕рдВрдпреБрдХреНрдд рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред рдмрд┐рдЯрдХреЛрдб рдореЙрдбреНрдпреВрд▓ред ) рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ __LLVM,__bundle рдирд╛рдордХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ; рд╡реИрд╕реЗ рднреА, рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдкрд░рд╡рд╛рд╣ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ rustc рдХреЛ iOS рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб" рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдХрдЪреНрдЪреЗ рдмрд┐рдЯрдХреЛрдб рдХрд╛ред рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕рдВрдХрд▓рди рдХреЛ рддреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдбрдореА рдмрд┐рдЯрдХреЛрдб рдЕрдиреБрднрд╛рдЧ, ala -fembed-bitcode-marker рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд░рд┐рд▓реАрдЬ рдореЛрдб рдореЗрдВ рднреА, рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдВрдХрд░ рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рднрд░ рджреЗрддрд╛ рд╣реИ ' рд▓рд┐рдВрдХ рд╕рдордп рдкрд░ рдХреБрдЫ рднреА рдорд╣рдВрдЧрд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд┐рдЯрдХреЛрдб рдЕрдиреБрднрд╛рдЧ рдПрдХ рд╕рд╛рдеред

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрд▓реИрдВрдЧ рдХреИрд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:

https://github.com/llvm-mirror/clang/blob/master/lib/CodeGen/BackendUtil.cpp#L1242

рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ - рдмреИрдХрдПрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрд┐рдЯрдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдбрдВрдк рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░
рд╕рд╛рдорд╛рди рдЬреЛ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирдП рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ (рдЙрд╕реА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ!), __LLVM,__bitcode рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╣реИрдХреА рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ (рдлреНрд░рдВрдЯрдПрдВрдб рдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ?), рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЬрдВрдЧ рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@comex рд╡рд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрдкреНрдкрд▓ рдХреЗ рдХреНрд▓реИрдВрдЧ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдг рд╣реИрдВ (рджреЗрдЦреЗрдВ # 48833 рдЬреЛ рдореИрдВрдиреЗ рдЕрднреА рдмрдирд╛рдпрд╛ рд╣реИ), рдЬрдмрдХрд┐ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рд╕реЗ рдЦреБрдж рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ?

@michaeleiselsc рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ "рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рд╕реЗ рдЦреБрдж рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ" рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐, рдРрдк рд╕реНрдЯреЛрд░ рдХреЛ рдХреЗрд╡рд▓ рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рдЗрдирд░реА рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдмрд┐рдЯрдХреЛрдб рд▓реЗрдиреЗ рдФрд░ рдРрдкреНрдкрд▓ рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдн рднреА рд╣реИрдВред рдЬрд┐рди рджреЛ рд▓рд╛рднреЛрдВ рдореЗрдВ рдореЗрд░реА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рд╡реЗ рд╣реИрдВ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдлрд┐рдХреНрд╕ рдЬреЛ рдХрд┐ Apple рдХреНрд▓реИрдВрдЧ рдореЗрдВ рд╣реИрдВ рдФрд░ рдХреНрд▓реИрдВрдЧ рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдЬреИрд╕реЗ рдХрд╡рд░реЗрдЬ рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ред

@comex рдареАрдХ рд╣реИ рддреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЦреЛрджрдирд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ rustc рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ (рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд), рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВ:

  • -fembed-bitcode-marker рдПрдХ рдЪреАрдЬрд╝ рдХреНрдпреЛрдВ рд╣реИ? рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЦрд╛рд▓реА рд╕реНрдереИрддрд┐рдХ рдХреЛ рдПрдХ рдЦрдВрдб рдореЗрдВ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдХреЗрд╡рд▓ рдЕрдиреБрднрд╛рдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдорддрд▓рдм рдХреБрдЫ рд╣реИ? рдХреНрдпрд╛ рдЖрдИрдУрдПрд╕ рдореЗрдВ рд╕рдбрд╝рдХ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреЛрдИ рдЙрдкрдХрд░рдг рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЕрдиреБрднрд╛рдЧ рдирд╣реАрдВ рд╣реИ? (рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЦрд╛рд▓реА рд╣реИ?
  • рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ __cmdline рдЕрдиреБрднрд╛рдЧ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ -fembed-bitcode рдмрд╛рдЗрдирд░реА рдореЗрдВ рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рдХреЗ рдХреБрдЫ рд░реВрдк рдХреЛ рднреА рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд░рдЦреЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж rustc рдХреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреЛрдИ рдЯреВрд▓ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдИрдУрдПрд╕ рдХреЗ рд╕рд╛рде -fembed-bitcode=bitcode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╕рдВрдХрд▓рди рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ?
  • рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреНрдпрд╛ рдЗрд╕реЗ рдХрднреА рднреА рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ? рдпрд╛ рдХреНрдпрд╛ рд╣рдореЗрдВ рдмрд┐рдирд╛ рд╢рд░реНрдд рдЗрд╕реЗ рдЖрдИрдУрдПрд╕ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП?

-fembed-bitcode-marker рдПрдХ рдЪреАрдЬ рдХреНрдпреЛрдВ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХреНрд╕рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдмрд┐рдЯрдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдмрд╛рдж рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдПрд▓рдбреА рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рд╕рд╡рд╛рд▓ рдкрд░ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╣рдо рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рд╣реЙрдХреАрдПрдк рдЬреИрд╕реЗ рдмреАрдЯрд╛ рдРрдк рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╕рдмрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╣реЙрдХреАрдПрдк рдЙрд╕ рдмрд┐рдЯрдХреЛрдб рд╕реЗрдХреНрд╢рди рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдпрд╛ рдмреАрдЯрд╛ рдЯреЗрд╕реНрдЯрд░реНрд╕ рдХреЛ рдЬрд░реВрд░рдд рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдмрдбрд╝рд╛ рдмрд╛рдЗрдирд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛?

@mitsuhiko рд╣рд╛рдВ, рд╡рд┐рдЪрд╛рд░ рд▓рд┐рдВрдХрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдареАрдХ рд╕реЗ bitcode рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк рд╡рд░реНрддрдорд╛рди рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ bitcode рдмрдирд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдмрд┐рдЯрдХреЛрдб рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ -fembed-bitcode-marker рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ:

$ clang -c -o test.o test.c
$ clang -dynamiclib -o test.dylib test.o -fembed-bitcode-marker
ld: warning: all bitcode will be dropped because 'test.o' was built
without bitcode. You must rebuild it with bitcode enabled (Xcode
setting ENABLE_BITCODE), obtain an updated library from the vendor,
or disable bitcode for this target.

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рднреА -fembed-bitcode-marker рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЪреЗрддрд╛рд╡рдиреА рджреВрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИред

@alexcrichton __cmdline ... рд╣рдореНрдо ... рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХрд░ рдХреЛ рдЗрд╕реЗ рдЙрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ("рдмрд┐рдЯрдХреЛрдб рдмрдирд╛рдПрдВ" рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ):

https://opensource.apple.com/source/ld64/ld64-274.2/src/ld/parsers/macho_relocatable_file.cpp.auto.html

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реЛред рд╢рд╛рдпрдж рд╡рд╣рд╛рдВ рдбрдореА рд╡реИрд▓реНрдпреВ рдбрд╛рд▓рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдХреНрдпрд╛ #48896 рдХреЛ рдорд░реНрдЬ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛?

рдореИрдВ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЬрдм рддрдХ рдЖрдк рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рддрдм рддрдХ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд░рд╕реНрдЯ рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ fembed-bitcode-marker рд▓реЗрдХрд┐рди fembed-bitcode рдирд╣реАрдВ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдЗрд╕реЗ cargo lipo --release рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

$ cargo --version
cargo 1.27.0-nightly (af3f1cd29 2018-05-03)
$ cargo lipo --version
cargo-lipo 2.0.0-beta-2
$ rustc --version
rustc 1.27.0-nightly (565235ee7 2018-05-07)
ld: '/Users/chrisbal/Documents/Beach/rust-universal-template/target/universal/release/libexample.a(example_generic-be72fb1769c1779b.example_generic6-152d14edfb6970f54250733c74e59b7.rs.rcgu.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

рдЬрдм рдореИрдВ otool -arch arm64 -l /Users/chrisbal/Documents/Beach/rust-universal-template/target/universal/release/libexample.a | grep bitcode рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ sectname __bitcode рдорд┐рд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рдП рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд┐рдЯрдХреЛрдб рд╣реИ рди рдХрд┐ рдХреЗрд╡рд▓ рдорд╛рд░реНрдХрд░ред

рдореИрдВ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд░реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдЖрдВрддрд░рд┐рдХ "рдЬреЗрдиреЗрд░рд┐рдХ" рдХреНрд░реЗрдЯ рдХреЛ рдмрд┐рдЯрдХреЛрдб рдЭрдВрдбреЗ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ рд░реЗрдкреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ https://github.com/Raizlabs/rust-universal-template/tree/879e7412d729e8963586c5b083d51b09733aec32

@chrisballinger , рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рджреЗрдЦреЗрдВ
RUSTFLAGS="-Z embed-bitcode" cargo lipo --release

$ cargo --version
cargo 1.28.0-nightly (f352115d5 2018-05-15)
$ cargo lipo --version
cargo-lipo 2.0.0-beta-2
$ rustc --version
rustc 1.28.0-nightly (952f344cd 2018-05-18)

рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ arm7 рдЖрд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рд╣реИ:

.rs.rcgu.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7

рдХреНрдпрд╛ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ arm7 arch рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, @chrisballinger рдЬреИрд╕реА рд╣реА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ:

ld: '/sandbox/target/universal/release/librgame.a(std-da6dba40351cda22.std3-d36cd881bae00a8b5fc36289b5737f78.rs.rcgu.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

рдореИрдВрдиреЗ рдЗрд╕реЗ RUSTFLAGS="-Z embed-bitcode" cargo lipo --release рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ .cargo/config ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдзреНрд╡рдЬ рдЬреЛрдбрд╝рддрд╛ рд╣реИ:

` Executing: "cargo" "build" "--target" "x86_64-apple-ios" "--lib" "--features" "" "--color" "auto" "--release" "--verbose" Compiling libc v0.2.42 Compiling rand_core v0.2.1 Running `rustc --crate-name libc /Users/aleksandrivanov/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.42/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=dce309634355ac97 -C extra-filename=-dce309634355ac97 --out-dir /Users/aleksandrivanov/Sandbox/Projects/tetris/rgame/target/x86_64-apple-ios/release/deps --target x86_64-apple-ios -L dependency=/Users/aleksandrivanov/Sandbox/Projects/tetris/rgame/target/x86_64-apple-ios/release/deps -L dependency=/Users/aleksandrivanov/Sandbox/Projects/tetris/rgame/target/release/deps --cap-lints allow -Zembed-bitcode` ...

рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рд╣рдорд╛рд░реЗ рдРрдк рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рднрд╛рд░реА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╕реА ++ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИред

@chrisballinger , рдХреНрдпрд╛ рдпрд╣ https://github.com/rust-lang/rust/issues/52686 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

@volodg рдирд╣реАрдВ, рдпрд╣ рдореБрджреНрджрд╛ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдХрд╛ рд╣реИред

#48896 рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рд╕рд╛рде, рдХреНрдпрд╛ рдпрд╣ рд▓реАрдХ рд╕реЗ рд╣рдЯрдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ?

рдореИрдВ 1.29.1 рдкрд░ рд╣реВрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЕрднреА рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрд┐рдЯрдХреЛрдб рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ @volodg рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк RUSTFLAGS="-Z embed-bitcode" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЬреЛ рдореИрдВрдиреЗ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдЖрдк рдЙрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЬрдВрдЧ рдХреЗ рдЕрдкрдиреЗ libs (compiler_builtins, std) рдПрдореНрдмреЗрдб-рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдПрдореНрдмреЗрдб-рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рд╛рде xargo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдИрдУрдПрд╕ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдореИрдВрдиреЗ xargo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдпрд╣рд╛рдВ рд╣реИ :(

рдЗрд╕ Xargo.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

[dependencies]
std = {}
[target]
features = ["jemalloc"]

рдЗрд╕реЗ Cargo.toml рднреА рдЬреЛрдбрд╝рдирд╛:

[profile.release]
panic = "abort"

рдореИрдВрдиреЗ рдЙрди рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП xargo build --release --target $TARGET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛:

  • aarch64-рд╕реЗрдм-рдбрд╛рд░реНрд╡рд┐рди
  • armv7-рд╕реЗрдм-рдбрд╛рд░реНрд╡рд┐рди
  • armv7s-рд╕реЗрдм-рдбрд╛рд░реНрд╡рд┐рди
  • i386-рд╕реЗрдм-рдбрд╛рд░реНрд╡рд┐рди
  • x86_84-рд╕реЗрдм-рдбрд╛рд░реНрд╡рд┐рди

рддрдм рдореИрдВрдиреЗ рдПрдХ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП lipo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рд▓рд┐рдВрдХрд░ рддреНрд░реБрдЯрд┐ рд╣реИ:

ld: '../../cargo/target/universal/libgreetings.a(greetings-ceeec73d35f7dbe0.greetings.9kcaav8v-cgu.2.rcgu.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

рдЬрд╝рд╛рд░реНрдЧреЛ рдкрде рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗред

рдореЗрд░рд╛ Xargo.toml

[dependencies]
std = {}

рдореЗрд░рд╛ Cargo.toml

[profile.release]
panic = "abort"

рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореИрдВ kwow рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди xargo doc рд╕реЗ, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ extern crate compiler_builtins рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ lib.rs рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛: RUSTFLAGS="-Z embed-bitcode" xargo build --target $TARGET --release рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ core/std/compiler_bultins рдмрдирд╛рддрд╛ рд╣реИред xargo clean рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрднрд╡ рдХрд┐рдП рдЧрдП рдкрд┐рдЫрд▓реЗ рдмрд┐рд▓реНрдб рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рд╛рдл рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ Xargo.toml рдЯреНрд╡реАрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддреЛ рдПрд╕рдЯреАрдбреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rm -rf ~/.xargo рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рд▓реЗрдХрд┐рди рдлрд┐рд░, рдПрдХреНрд╕рдХреЛрдб 10 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдирд╛, рдореБрдЭреЗ ( armv7 рд▓рд┐рдВрдХрд┐рдВрдЧ рдкрд░) рдорд┐рд▓рддрд╛ рд╣реИ:

Intrinsic has incorrect argument type!
void (i8*, i8, i32, i1)* @llvm.memset.p0i8.i32
Intrinsic has incorrect argument type!
void (i8*, i8*, i32, i1)* @llvm.memcpy.p0i8.p0i8.i32
Intrinsic has incorrect argument type!
...
(lots of it)
...
LLVM ERROR: Broken module found, compilation aborted!
clang: error: linker command failed with exit code 1 (use -v to see invocation)

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдмрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреА рддрд░рдл рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ armv7 рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИ?

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧред рдореИрдВ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдРрдкреНрдкрд▓ рдмрд┐рдЯрдХреЛрдб рдХреЛ рд░рд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд░реНрдерд┐рдд рджреЗрдЦрдХрд░ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред рдХреНрдпрд╛ рдХреЛрдИ рдЕрдм рддрдХ рдпрд╣ рдХрд╛рдо рдХрд░ рдкрд╛рдпрд╛ рд╣реИ? рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреНрдпрд╛ рдЧреБрдо рд╣реИ рдФрд░ рд╣рдо рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╢рд┐рдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд░рд╕реНрдЯ рдХрд╛ рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдбрд┐рдВрдЧ Xcode рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ Xcode рдХрд╛ LLVM рд╕рдВрд╕реНрдХрд░рдг LLVM 6.0 рдмрд┐рдЯрдХреЛрдб рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрдмрдХрд┐ рд░рд╕реНрдЯ рдЬреБрд▓рд╛рдИ 2018 рдореЗрдВ LLVM 7.0 рд╕реЗ рдЯрдХрд░рд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм, рд▓рдВрдмрд╛ рдЬрд╡рд╛рдм ...

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо LLVM 7.0 рдХреЗ рдЪреИрдВрдЬ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ @llvm.memcpy , @llvm.memmove , рдФрд░ @llvm.memset рд▓рд┐рдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрджрд▓ рджрд┐рдП, рдФрд░ Xcode рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐ рдЧрд▓рдд рддрд░реНрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдереА рдЬреИрд╕рд╛ рдХрд┐ рджреЗрдЦрд╛ рдЧрдпрд╛ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ ред

рд╡реИрд╕реЗ, рдХреЛрдЯрд▓рд┐рди рдиреЗрдЯрд┐рд╡ рдиреЗ рдЕрдХреНрдЯреВрдмрд░ 2018 рдореЗрдВ рдПрдореНрдмреЗрдб-рдмрд┐рдЯрдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдФрд░ рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдПрдХреНрд╕рдХреЛрдб рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо 6.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ 7.0 рд╕реЗ рдкрд╣рд▓реЗ рд░рд╕реНрдЯ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ nightly-2018-06-01-x86_64-apple-darwin рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рд╕рдлрд▓рддрд╛, рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ!

рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ Xargo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдмрд┐рдЯрдХреЛрдб рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рддреЛ рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛, рдЬрдм рддрдХ рдХрд┐ рдРрдкреНрдкрд▓ рдЕрдкрдиреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЯрдХреНрдХрд░ рдирд╣реАрдВ рджреЗрддрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЬрд▓реНрдж рд╣реА рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рджреЗрдЦреЗрдВрдЧреЗ ... рдЬрдм рддрдХ рдХреЛрдИ рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдХреЛ 6.0 рдХреЗ рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЪрддреБрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдвреВрдВрдврддрд╛ ...

@appaquet рдЗрд╕рдХреА рддрд╣ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд░рд╣рд╕реНрдп рдерд╛ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдХрднреА рднреА рдЖрдкрдХреЗ рдЬрд┐рддрдирд╛ рдЧрд╣рд░рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ Apple рджреНрд╡рд╛рд░рд╛ LLVM рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЯрдХреНрдХрд░ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреЗ рд╕реНрдкрд╖реНрдЯ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @appaquet ред рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл Apple рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛

рдореЛрдмрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд╕рд╛рдЗрдбрд╡реНрдпреВ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд╢рд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ (рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡, рд╕реНрдкрдВрджрди, рдХреЛрдЯрд▓рд┐рди / рдиреЗрдЯрд┐рд╡, рд░рд╕реНрдЯ)

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдореВрд▓ рдирд┐рд╡рд╛рд╕реАред рд╢реБрд░реБрдЖрдд рд╕реЗ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдмреНрд░рд┐рдЬ C++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ JS рдХреЛрдб рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕реНрдкрдВрджрдиред рдЕрднреА рддрдХ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ - https://github.com/flutter/flutter/issues/15288

рдХреЛрдЯрд▓рд┐рди / рдореВрд▓ рдирд┐рд╡рд╛рд╕реАред JetBrains рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдмрд┐рдЯрдХреЛрдб рдорд╛рд░реНрдХрд░ рд╣реИ (рдЕрднреА рддрдХ рдкреВрд░реНрдг рдмрд┐рдЯрдХреЛрдб рдирд╣реАрдВ рд╣реИ), рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ - рджреЗрдЦреЗрдВ https://github.com/JetBrains/kotlin-native/ рдкреБрд▓/1564 рдФрд░ https://github.com/JetBrains/kotlin-native/issues/1202#issuecomment -444022513

рдЬрдВрдЧред LLVM 7 рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ Apple рд╕рдВрд╕реНрдХрд░рдг 6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдмрд┐рдЬрдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рдФрд░ рдпреВрдЖрдИ рдХреНрд░реЙрд╕рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рджреЛрдиреЛрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдпрд╛ рд╕реНрдкрдВрджрди рдХреЗ рд╕рд╛рде рдЬрд╛рдКрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдХрдИ рдЧрдВрднреАрд░ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рд░рд╛рд╕реНрддрд╛ рдмрд╣реБрдд рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА performant рдкрд░реНрдпрд╛рдкреНрдд рдФрд░ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд┐рд░рддрд╛ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ (v1.0 рдХрднреА рдЖрдирд╛ рд╡рд╛рд▓рд╛ рд╣реИ?)ред рд╕реНрдкрдВрджрди рдереЛрдбрд╝рд╛ рдЕрдкрд░рд┐рдкрдХреНрд╡ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реНрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдм рдЕрдЧрд░ рдореИрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдЬреИрд╕реЗ рдкрд╣рд▓реЗ рдмрдбрд╝реЗ рдРрдкреНрд╕ рдиреЗ рд╕реА ++ рдФрд░ рдЬреЗрдПрдирдЖрдИ/рдУрдмреАрдЬреЗ-рд╕реА ++ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛) рдФрд░ рдлрд┐рд░ рд╢реАрд░реНрд╖ рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд▓ рдпреВрдЖрдИ рдмрдирд╛рдПрдВ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдлрд┐рд░ рдореИрдВ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдПрд╕ рдХреЗ рдмреАрдЪ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛрд░ рдФрд░ рдкреБрд▓ рд▓реЗрдирд╛ <-> рдореВрд▓ рд╢реАрд░реНрд╖ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ (рдЗрд╕ рдкреБрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рднреА рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИ)ред рд╕реНрдкрдВрджрди рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдореИрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдЖрдИ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдкреНрдд рдХрд░ рджреВрдВрдЧрд╛ред рд╕рд╛рде рд╣реА рдпрд╣ рдмрд┐рдЯрдХреЛрдб рдХреЛ рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЬрдВрдЧ рдФрд░ рдХреЛрдЯрд▓рд┐рди/рдореВрд▓ рджреЛрдиреЛрдВ рдЗрд╕ рдЬрдЧрд╣ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╕рднреНрдп рдЯреВрд▓реАрдВрдЧ рд╣реИрдВ, рджреЗрд╢реА рдмрд╛рдЗрдирд░реА (рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкрджрдЪрд┐рд╣реНрди!) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред рдЬреЛ рд▓реЛрдЧ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдорд▓реНрдЯреАрдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╕реНрдЯ рдХреЛ рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдФрд░ рдЕрдм рдХреЛрдЯрд▓рд┐рди/рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рдХрд╛ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИред

рдЖрдИрдУрдПрд╕ рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред TVOS рдпрд╛ watchOS рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ред рдХрдИ рддреГрддреАрдп рдкрдХреНрд╖ рдврд╛рдВрдЪреЗ рдЬреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЙрдирдореЗрдВ рдмрд┐рдЯрдХреЛрдб рд╕рдХреНрд╖рдо рд╣реИ (рджрд░реНрдЬрдиреЛрдВ рдЙрджрд╛рд╣рд░рдг, рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ Google IMA - рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡реАрдбрд┐рдпреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди)ред рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рдСрдбрд┐рдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЬрдм рднреА рдРрдкреНрдкрд▓ рдХрд╣рддрд╛ рд╣реИ "рдЕрдЧрд▓реЗ рд╕рд╛рд▓ рд╕реЗ рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдХреЗ рдмрд┐рдирд╛ рдРрдкреНрд╕ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ", рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдПрдХ рдЯрд┐рдХрд┐рдВрдЧ рдЯрд╛рдЗрдорд░ рдорд┐рд▓рддрд╛ рд╣реИред

рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл Apple рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛

рд╣рд╛рдБ, рдареАрдХ рд╣реИ, рдпрд╣реА рдРрдкреНрдкрд▓ рдХреБрдЦреНрдпрд╛рдд рд╣реИ;)
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ (рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо 6 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛?), рд▓реЗрдХрд┐рди рд░рд╕реНрдЯ рдЖрдИрдУрдПрд╕ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдХреНрд░реЙрд╕рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреЛ рд░рд╣рд╛ рд╣реИред

рдЗрд╕ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг @oleksandr-yefremov рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдереЛрдбрд╝рд╛ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдЯрд┐рдкреНрдкрдгреА рдорд┐рд▓реА: https://gist.github.com/yamaya/2924292#gistcomment -2738480

рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдХреНрд╕рдХреЛрдб рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЕрдм рддрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

Xcode 8.3  --> swift 3.1 --> llvm 4.0.0
Xcode 9.0  --> swift 4.0 --> llvm 4.0.0
Xcode 9.3  --> swift 4.1 --> llvm 5.0.2
Xcode 10.0 --> swift 4.2 --> llvm 6.0.1

swift-5.0-branch , рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ LLVM рдХрд╛ рдШреЛрд╖рд┐рдд рд╕рдВрд╕реНрдХрд░рдг 7.0.0 : https://github.com/apple/swift-llvm/blob/swift-5.0-branch/ CMakeLists.txt#L25 -L33

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдФрд░ рдЕрд╡рд░реЛрдзрдХ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрд┐рдЯрдХреЛрдб рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Xcode 10.2 рдореЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ 5.0 рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЬрд▓реНрдж рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл рдПрд▓рдПрд▓рд╡реАрдПрдо 8.0 рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИред Apple рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрдВрдЧ рдХреЗ рдЕрдкрдЧреНрд░реЗрдб рд╣реЛрдиреЗ рдХреА рдХрд╛рдлреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд░рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдХрд╛ рдареАрдХ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ LLVM рдХреЗ рдкрд┐рди рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Apple ARM рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдмрд┐рд▓реНрдб рдСрдлрд╝ рд░рд╕реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рд╢рд╛рдпрдж https://github.com/apple/swift-llvm рд░реЗрдкреЛ рд╕реЗ - Apple рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкреИрдХреЗрдЬ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЙрдирдХреА рдЕрдкрдиреА рд╢рд╛рдЦрд╛рдПрдВ)ред рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рд╡рд╣ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ рддрднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдРрдкреНрдкрд▓ рдПрдХ рдЕрд▓рдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдХреЛрдб рдХрд╛ рдПрдХ рдирдпрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╡реАрдирддрдо рдЬрдВрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо 6 рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдпреЛрдЧреНрдп рд╣реИ рддрд╛рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рддреАрдд рд╣реЛ: https://github.com/rust-lang/rust/blob/master/src/bootstrap/native.rs#L282
рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг (рдПрд▓рдПрд▓рд╡реАрдПрдо 6 рдХреЗ рд▓рд┐рдП рдПрдХ: https://github.com/rust-lang/rust/issues/55842) рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдмрдирдиреЗ рдкрд░ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@vincentisambart Rust 5 рдорд╣реАрдиреЗ IIRC рдХреЗ рд▓рд┐рдП рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА LLVM 8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ LLVM 6 рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ CI рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/rust-lang/rust/blob/706e67b0a0143d651eb03f2fa2c30645899e81ff/src/ci/docker/x86_64-gnu-llvm-6.0 /рдбреЙрдХрд░рдлрд╛рдЗрд▓

рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл Apple рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛

рдореИрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд╛ рдкреАрдЫрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдФрд░ рдЕрдм рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЪреБрдХрд╛ рд╣реВрдВ) рдФрд░ рдореИрдВ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо-рд╡рд╛рд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдРрдкреНрдкрд▓ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐:

  • рд╕реНрд╡рд┐рдлреНрдЯ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рд░рд╕реНрдЯ рдмрдирдирд╛ рдЪрд╛рд╣рддреА рд╣реИ (рдПрдХ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдШреЛрд╖рдгрд╛рдкрддреНрд░ рджреЗрдЦреЗрдВ) рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдкреАрдЫреЗ рд╣реИ
  • Apple рдХреЛ рдЕрдкрдиреА рдореБрдЦреНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рднрд╛рд╖рд╛ рдмрдиреЗ рд░рд╣рдиреЗ рдФрд░ рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдлреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрдбрд╝реА рднрд╛рд╖рд╛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдФрд░ рди рд╣реА рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

5 рдорд╣реАрдиреЗ IIRC рдХреЗ рд▓рд┐рдП рд░рд╕реНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА LLVM 8 рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реИред

рдлрд┐рд░ рднрд▓реЗ рд╣реА рдРрдкреНрдкрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо 7 рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░рд╕реНрдЯ рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд┐рд▓реНрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдмрд┐рдЯрдХреЛрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рднреА рд╣реИ, рддреЛ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдВрдЧ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдЙрддреНрдкрдиреНрди рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ LLVM 6 рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ CI рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдлрд┐рд░ рдПрд▓рдПрд▓рд╡реАрдПрдо 6 (рдпрд╛ https://github.com/apple/swift-llvm/releases/tag/swift-4.2.2-RELEASE рдЬреИрд╕реЗ рдмреЗрд╣рддрд░ рдХреБрдЫ рдХреЗ рд╕рд╛рде рд░рд╕реНрдЯ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ *-apple-ios рдмрд┐рд▓реНрдб рдмрдирд╛рдпрд╛ рдЬрд╛рдП - рдЕрдЧрд░ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдмрд┐рдЯрдХреЛрдб рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рд╡рд░реНрддрдорд╛рди рдореЗрдВ https://github.com/rust-lang/rust/issues/46819 рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж рджреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб (рдПрдореНрд╕рд╕реНрдХреНрд░рд┐рдкреНрдЯрди рдФрд░ рдорд╛рдирдХ) рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдХрд░рддрд╛ рд╣реИ
рд╣рд╛рд▓рд╛рдБрдХрд┐ #46819 рдореЗрдВ рдмрд┐рдЯрдХреЛрдб рдХреЗ рд▓рд┐рдП ios LLVM рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдЯрд░реА рд╕реЗ рдЙрддрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реА рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░реА рдирд╣реАрдВ рд╣реЛрдЧреА? рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рдРрдкреНрдкрд▓ рдХреА рдУрд░ рд╕реЗ рдмрд┐рдЯрдХреЛрдб рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрд┐рдд рд░рд╣ рдкрд╛рдПрдЧрд╛ред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕рдВрдЧрддрд┐ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрд░реЛрдд рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рджреНрд╡рд╛рд░ рдЦреЛрд▓рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдЬрдВрдЧ рдХреЗ рд╕рдВрдЧрдд рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдРрдкреНрдкрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдкреВрд░реНрдг рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рдпрд╣ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдлреА рдЕрд╡рд░реБрджреНрдз рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдирд╡реАрдирддрдо рд╕реБрдзрд╛рд░реЛрдВ рд╕реЗ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдПрдХ рд╣реА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд░рд╕реНрдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Apple рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рд╕рдВрдЧрдд рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд░рд╡рд╛рдЬреЗ рдЦреЛрд▓реЗрдЧрд╛ рдФрд░ рд╣рдо рд╕рднреА рдХреЛ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдЧрд╛ред

рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП рдЬреЛ рдЕрднреА рдХрд╛рдлреА рдмрдбрд╝реА рдЯреАрдо рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЛрдмрд╛рдЗрд▓ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдмрд┐рдЯрдХреЛрдб рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рдо рд╕рдЪрдореБрдЪ рдЬрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░рд╛ рдПрдХ рдРрдк рд╕реЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдмрд╛рдЗрдирд░реА рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдмрдбрд╝реЗ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ рдЬреЛ рдЙрд╕ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВред

рд░рд╕реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рдирд╛ (рдХреЛрдЯрд▓рд┐рди рдорд▓реНрдЯреАрдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдХреНрд░реЙрд╕-рдХрдВрдкрд╛рдЗрд▓рд┐рдВрдЧ рд╕реНрд╡рд┐рдлреНрдЯ, рдореЛрдиреЛ, рдбрд╛рд░реНрдЯ, рд╕реА ++, рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡) рдХрд╛ рд╕рдмрд╕реЗ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдЙрд▓реНрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд┐рдЯрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдорддрд▓рдм рдирд╡реАрдирддрдо рд░рд╕реНрдЯ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рди рд╣реЛред

рднрд▓реЗ рд╣реА рдмрд┐рдЯрдХреЛрдб рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛ, рдлрд┐рд░ рднреА рд░рд╕реНрдЯ рд╡реЙрдЪрдУрдПрд╕ рдпрд╛ рдЯреАрд╡реАрдУрдПрд╕ рдХреЛ рд╡реИрд╕реЗ рднреА рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рдРрдкреНрдкрд▓ рдХреА рдУрд░ рд╕реЗ рдмрд┐рдЯрдХреЛрдб рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрд┐рдд рд░рд╣ рдкрд╛рдПрдЧрд╛ред

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рдХрд╛ LLVM рдмрд╣реБрдд рдирдпрд╛ рд╣реИ , рди рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ ред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдВрдЧрддрддрд╛ рдХрд╣рд╛рдиреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

rustc рдХреЗ рд▓рд┐рдП рдЕрдиреЗрдХ LLVMs рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ?

рд╕рдВрдмрдВрдзрд┐рдд: рдЯреАрд╡реАрдУрдПрд╕ рдФрд░ рд╡реЙрдЪрдУрдПрд╕ (рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░) рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдореНрд╕рд╕реНрдХреНрд░рд┐рдкреНрдЯрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдореНрд╕рд╕реНрдХреНрд░рд┐рдкреНрдЯрди рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдлреЛрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо 6 рдПрдЯреАрдПрдо рдкрд░ рд╣реИред

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рд╕реНрдЯ рдХрд╛ LLVM _too new_ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ _too old_ рд╣реИред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдВрдЧрддрддрд╛ рдХрд╣рд╛рдиреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдореБрджреНрджрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рдпрд╛ рдмрд╣реБрдд рдирдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднрд▓реЗ рд╣реА рдЬрдВрдЧ LLVM рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ, рдХрд┐рд╕реА рднреА iOS рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред рдРрдкреНрдкрд▓ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдореБрджреНрджрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рдпрд╛ рдмрд╣реБрдд рдирдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднрд▓реЗ рд╣реА рдЬрдВрдЧ LLVM рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ, рдХрд┐рд╕реА рднреА iOS рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред рдРрдкреНрдкрд▓ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ) рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╣рдо рд╕рд╛рд▓ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдкреНрд░рдореБрдЦ Xcode рдЕрдкрдбреЗрдЯ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрдм рдирдП iOS рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВред рдЬрдм рдпрд╣ рд╕рд╛рдорд╛рди рд╣реЛрддрд╛ рд╣реИ рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕реНрдкрд╖реНрдЯ рд╕рд┐рд░ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕рдХреЛрдб рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдРрдкреНрд╕ рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдард┐рди рд╣реИред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдард┐рди рд╣реИред

рдЪреВрдВрдХрд┐ рдмрд┐рдЯрдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд┐ рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╡реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рд╕реЗ рджреВрд╕рд░реЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдВрдЧреЗ рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдмрд┐рдЯрдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд┐ рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╡реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рд╕реЗ рджреВрд╕рд░реЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдВрдЧреЗ рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЕрдЧрд░ рд╣рдо рдпрд╣ рдорд╛рдирдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ Apple рдХрд┐рд╕реА рдФрд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдмрд┐рдЯрдХреЛрдб рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд╕реНрдкрд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛрдиреЗ рд╕реЗ рдЗрддрдирд╛ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╣реИрдВ рдпрд╛ рд╕реАрдзреЗ рд╕рд╛рджреЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдХреЛ рдЕрдкрдиреЗ рдордВрдЪ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдХрдИ рд╣рдЬрд╛рд░реЛрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдЙрдирдХреА рдЕрдкрдиреА рдЯреАрдо рдФрд░ рдЙрдирдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рдЭреЗрджрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕реНрд╡рд┐рдлреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдПрд▓рдПрд▓рд╡реАрдПрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓реЗ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯреВрд▓рдЪреИрди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдПрдХреНрд╕рдХреЛрдб рдмрд┐рдЯрдХреЛрдб рд╕реЗрдм рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдЙрдирдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреЛ рджреЗрдЦреЗ рдпрд╛ рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдЕрдЪрд╛рдирдХ рдЙрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рд╕реНрд╡рд┐рдлреНрдЯ рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рджреЛрдиреЛрдВ рдХреЛ рдирд┐рдЬреА рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╣реИ рдирд╛? рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рд░рд╕реНрдЯ рдЯреАрдо рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддреА рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЬреЛрдЦрд┐рдо рдмрд┐рдЯрдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реИред рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рджреБрдЦ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдКрдВ рдХрд┐ рдЕрдкрдирд╛ рд╕рдордп рдХрд╣рд╛рдВ рдмрд┐рддрд╛рдирд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдмрд┐рдЯрдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд┐ рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╡реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рд╕реЗ рджреВрд╕рд░реЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдВрдЧреЗ рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

Apple рдЬреВрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ Xcode рдмреАрдЯрд╛ рдФрд░ рд╕рд┐рддрдВрдмрд░ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред 6-9 рдорд╣реАрдиреЛрдВ рдХреЗ рдмрд╛рдж рдпрд╣ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдкреБрд░рд╛рдиреЗ Xcode рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рдРрдкреНрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдмрд┐рдЯрдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рд╣реИред

рдмрд╕ рдПрдХреНрд╕рдХреЛрдб 10.2 рдмреАрдЯрд╛ 3 (рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ 5 рдбрдмреНрд▓реНрдпреВ/рдПрд▓рдПрд▓рд╡реАрдПрдо 7 рд╢рд╛рдорд┐рд▓ рд╣реИ) рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдореИрдВ рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдХреЛрдб рдХреЗ рд╕рд╛рде рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ iOS рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░рд╕реНрдЯ рдореЗрдВ watchOS/tvOS рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ ред

рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рднреА рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдмрд┐рдЯрдХреЛрдб рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╕реНрдЯ рдХреЛ Apple рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП Apple LLVM рдХрд╛рдВрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рдБ, рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬрд╝ рд╡рд┐рдВрдбреЛ рдЙрдЪрд┐рдд рд▓рдЧрддреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрдкреНрдкрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо рдпрд╛ рдЙрдирдХреЗ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рд╣реА рдЕрд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдРрдкреНрдкрд▓ рдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрдИрдУрдПрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдмрд┐рдЯрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд╛рд░реНрдЬрд╝рд┐рдкрди рдХреЗ рд╕рд╛рде рдореИрдХ рдРрдк рд╕реНрдЯреЛрд░ рд╕рдмрдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рднреА рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреАред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдВрдЧрддрддрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдЧреИрд░-рдЧрд╛рд░рдВрдЯреАрдХреГрдд рддрд░реАрдХрд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЕрдВрддрддрдГ рдЯрд┐рдпрд░ 1 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдмрди рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рд╕реА ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдПред рд╕рд╛рде рд╣реА, рдЖрдк Apple TV рдХреЗ рд▓рд┐рдП Rust рдХреЗ рд╕рд╛рде рдЧреЗрдо рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╕реНрд╡реАрдХреГрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @brson рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдХреА рдЯрд┐рдкреНрдкрдгреА рдЭрд┐рдЭрдХ рдХреЛ

рд╣рдо LLVM рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред рдЬрдм рддрдХ Apple рдФрд░ рд╣рдорд╛рд░рд╛ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдмрд╣рддреЗ, рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдбрд╝реЗ рдЯреВрдЯрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдкрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрд┐рдЯрдХреЛрдб рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдП рдФрд░ рд╣рдо рд╕рдм рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдмрд╣рд╕ рдХрднреА рд╣реБрдИ ЁЯЩП

рдореИрдВ рдЕрдм рдЕрдкрдиреА рдЯреЛрдкреА рдЦрд╛рдКрдВрдЧрд╛

рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдХрд╣рд╛:

рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдРрдкреНрдкрд▓ рдПрд▓рдПрд▓рд╡реАрдПрдо рдпрд╛ рдЙрдирдХреЗ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдХрдо рд╣реИ

рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ @mitsuhiko рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЧрдП рдЕрд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдерд╛:

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╡реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рд╕реЗ рджреВрд╕рд░реЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд┐рдЯрдХреЛрдб рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдВрдЧреЗ рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк #48833 рдЕрдВрдХ рдХреЛ рджреЗрдЦреЗрдВ , рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдорд┐рд╕рд╛рд▓ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ @comex рдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛:

рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЯреНрд░рдВрдХ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХреНрд╕рдХреЛрдб рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ - рдЬреИрд╕реЗ рдХрд┐ рд╕рдВрдкреВрд░реНрдг рдЖрд░реНрдо 64 рдкреЛрд░реНрдЯ, рдЬрдм рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдРрдкреНрдкрд▓ рдЗрд╕реЗ рдЧреБрдкреНрдд рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╡реЗ рдЖрд░реНрдо 64 рдбрд┐рд╡рд╛рдЗрд╕ рд╢рд┐рдк рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рдереЗ

рдФрд░ рдЙрд╕реА рдореБрджреНрджреЗ рд╕реЗ @michaeleiselsc рдХреА рдХрд╣рд╛рдиреА:

рдЬрд┐рд╕ рдРрдк рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рд╡рд╣ рджрд┐рд╕рдВрдмрд░ 2016 рдореЗрдВ рд░реИрдВрдбрдо рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рд╕реЗ рдмреБрд░реА рддрд░рд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рдПрд▓рдПрд▓рд╡реАрдПрдо рдиреЗ рдХреЗрд╡рд▓ рджрд┐рд╕рдВрдмрд░ 2017 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдерд╛ред рдЬрдм рд╣рдо рджрд┐рд╕рдВрдмрд░ 2016 рдореЗрдВ рдУрдкрди-рд╕реЛрд░реНрд╕ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕реЗ рдРрдкреНрдкрд▓ рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдореЗрдВ рдЪрд▓реЗ рдЧрдП, рддреЛ рд╕рдорд╕реНрдпрд╛ рддрдп рдерд╛

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдРрдкреНрдкрд▓ рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдЙрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдХрднреА-рдХрднреА рдЦрд░рд╛рдм рдмрдЧ рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХреЛрдИ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдХрдВрдзреЗ рд╕реЗ рдХрдВрдзрд╛ рдорд┐рд▓рд╛рдХрд░ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдПрдХ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ, рдпрд╣ рд╕рдм рд╕рдВрднрд╡ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ ред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрдкреНрдкрд▓ рдХреЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░рддреА рд░рд╣реЗрдВрдЧреА (рдП рдЯрд┐рдпрд░ 1.5 рдпрд╛ рдХреБрдЫ)ред

рдХреЛрдЯрд▓рд┐рди / рдореВрд▓ рдирд┐рд╡рд╛рд╕реАред JetBrains рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдмрд┐рдЯрдХреЛрдб рдорд╛рд░реНрдХрд░ рд╣реИ (рдЕрднреА рддрдХ рдкреВрд░реНрдг рдмрд┐рдЯрдХреЛрдб рдирд╣реАрдВ рд╣реИ), рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ - JetBrains/kotlin-native#1564 рдФрд░ JetBrains/kotlin-native# рджреЗрдЦреЗрдВред 1202 (рдЯрд┐рдкреНрдкрдгреА)

рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ oleksandr-yefremov! рдореИрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдЦреЛрджрд╛ рдФрд░ kotlin / рджреЗрд╢реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдерд╛ golang рдореЗрдВ ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдмрд┐рдЯрдХреЛрдб-рд╕рдХреНрд╖рдо рдЖрдИрдУрдПрд╕/рдЯреАрд╡реАрдУрдПрд╕/рд╡реЙрдЪрдУрдПрд╕ рдРрдкреНрд╕ рдореЗрдВ рдЬрд░реВрд░реА рдмрд┐рдЯрдХреЛрдб рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЬрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ рдмрд┐рдЯрдХреЛрдб рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА?

@volodg рдореИрдВ рдПрдХ рдЬрдВрдЧ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╣реВрдБред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд░рд╛рдд рдореЗрдВ рдирд╡реАрдирддрдо рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрд╛рдЧ рдЧрдпрд╛ ( rustc 1.37.0-nightly (088b98730 2019-07-03) рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп) рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдорд╛рд░реНрдХрд░ рд╣реИрдВ ..

$ otool -arch arm64 -l librust.a  | grep bitcode
  sectname __bitcode
...

рд▓реЗрдХрд┐рди рдЖрдИрдУрдПрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ (рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):

ld: '/Users/amrox/Documents/Projects/rust-ios-example/hello-rust/libs/librust.a(rust-e6011ffb55678675.rust.8yq9vjk7-cgu.3.rcgu.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

рдЙрддрдирд╛ рд╣реА рдореБрдЭреЗ рдорд┐рд▓рд╛ рд╣реИред

рдореИрдВ rustc nightly-2019-09-05 aarch64-apple-ios and rustflags = "-C lto -Z embed-bitcode" staticlib рдХреЛ clang-1100.0.33.5 (Xcode 11 beta 7) and -fembed-bitcode рдРрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ред рд╕реНрд░реЛрдд рдХреЛрдб https://github.com/saturday06/rust-ios-bitcode-test рд╣реИ ред

  • рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ __cmdline рдЕрдиреБрднрд╛рдЧ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ?

рджреЛ рд╕рд╛рд▓ рдмрд╛рдж рдореИрдВ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ - рднреМрддрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдпрд╛ рдПрдХреНрд╕рдХреЛрдб рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рд╕реАрдПрдордбреАрд▓рд╛рдЗрди рдареАрдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрдк рд╕реНрдЯреЛрд░ рд╕рдмрдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдРрдкреНрдкрд▓ рдХреНрд▓реИрдВрдЧ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдкреАрдЖрд░ рдореЗрдВ рдПрдХ рд▓рдВрдмрд╛ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдХреА рдкреИрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИ: https://github.com/getditto/rust-bitcode/pull/7

рдореИрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рд╡рд┐рдХрд▓реНрдк рдЖрдХрд░реНрд╖рдХ рдирд╣реАрдВ рд╣реИрдВред рдЖрдИрдУрдПрд╕ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рд╣рдо рдХреБрдЫ рдХреНрд▓реИрдВрдЧ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рддреЗ рд╣реИрдВ? рдпрджрд┐ Apple рдЕрдкрдиреЗ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣рдо рдЭреВрда рдмреЛрд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдирд╡рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ? рдЕрдЧрд░ рдпрд╣рд╛рдВ рдХреЛрдИ рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ рддреЛ рдореБрдЭреЗ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

-рд╕реЗрдореНрдмреЗрдб-рдмрд┐рдЯрдХреЛрдб = рдирд╣реАрдВ рдЖрдИрдУрдПрд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрднреА рднреА рдмрд┐рдЯрдХреЛрдб рдЕрдиреБрднрд╛рдЧ рд╣реИрдВ
рдмрд┐рдирд╛ рдмрд┐рдЯрдХреЛрдб рдХреЗ рдХреИрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dtolnay picture dtolnay  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jmegaffin picture jmegaffin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SharplEr picture SharplEr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

overvenus picture overvenus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tikue picture tikue  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ