Rust: рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдПрдордПрд╕рд╡реАрд╕реА рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ, рдорд┐рдВрдЧрд╡ рдирд╣реАрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдлрд╝рд░ре░ 2012  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rust-lang/rust

рд╣рдо рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рджреБрд░реНрд▓рдн рдЯреВрд▓рдЪреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред Msvc "рдорд╛рдирдХ" рд╣реИ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдПрдХ rustc рд╢рд┐рдк рдХрд░ рд╕рдХреЗрдВ рдЬреЛ mingw рдХреЗ рдмрдЬрд╛рдп рджреЗрд╢реА рд╡рд┐рдВрдбреЛрдЬрд╝ рдЯреВрд▓рдЪреИрди рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рд╣реЛред

A-driver A-linkage O-windows

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

рдореИрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдзрд╛рд░рдгрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдорд┐рдВрдЧрд╡ "рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рджреБрд░реНрд▓рдн рдЯреВрд▓рдЪреЗрди" рд╣реИред

рддрдереНрдп:
рд╕рдореАрдХрд░рдг.рдХреЙрдо рд╕рд╛рдЗрд▓реИрдм рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдВрдЧрд╡ рдЯреВрд▓рдЪреЗрди рд░рдЦрддрд╛ рд╣реИ
mingw-w64 рд╕рдорд╛рдпреЛрдЬрди рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ
Google рдЧреЛ рдХреЛ рдорд┐рдВрдЧрд╡ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд░рд┐рдПрдХреНрдЯреЛрд╕ рдПрдХ рдорд┐рдВрдЧрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдХрдИ рдПрдлрдУрдПрд╕рдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдорд┐рдВрдЧрд╡ рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рддреА рд╣реИрдВ

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

рдорд┐рдВрдЧрд╡ рдХрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд▓ рд╣реИ, рдХрдИ рдкреВрд░реНрдг рднрд╛рд╖рд╛рдПрдВ рдЬреИрд╕реЗ рдлреНрд░реАрдкрд╛рд╕реНрдХрд▓/рдореЛрдиреЛ/рдбреА рдФрд░ рдЧреЛред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдорд┐рдВрдЧрд╡ рдмрдирд╛рдП рд░рдЦрдиреЗ рдпрд╛ рдорд┐рдВрдЧрд╡ рд░рдЦрдиреЗ рдФрд░ рдХреНрд▓реИрдВрдЧ + рдорд┐рдВрдЧрд╡ рд▓рд┐рдм рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

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

  • MinGW рдФрд░ MSVC рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ stdcall/dllimport рдХреЗ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рддреАрдХ рд╕рдЬрд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ (рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдкрд╛рд╕ рдХрд░рдирд╛) рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
  • MSVC рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рдПрдХ рд╕реНрдерд┐рд░ .lib рдХреЛ MinGW рджреНрд╡рд╛рд░рд╛ ld.exe рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЙрдирдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднреАред рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдо рддреМрд░ рдкрд░ ld.exe рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп segfault рд╣реЛрдЧрд╛ред рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ rustc рдХрд╛ рдЙрдкрдпреЛрдЧ link.exe (MSVC) рдХрд░рдирд╛ рдореМрдЬреВрджрд╛ VC++ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдСрдк рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдХрджрдо рд╣реЛрдЧрд╛ред
  • рдбреАрдПрд▓рдПрд▓ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдЖрдпрд╛рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╢рд╛рдпрдж рд╣реА рдХрднреА "рдмрд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ", рдФрд░ рдЖрдкрдХреЛ .def рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ/рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рд╕реАрдзреЗ .dll рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛; reimp.exe рдФрд░ --out-implib рдзреНрд╡рдЬ рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдШрдВрдЯрд╛ рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ MinGW рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЯрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
  • рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдПрд▓рдПрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд┐рдирдЬреАрдбрдмреНрд▓реНрдпреВ рдбреАрдПрд▓рдПрд╕ msvcrt.dll рдФрд░ рд╡реАрд╕реА ++ 10 рд▓рд┐рдВрдХ рдХреЗ рдЦрд┐рд▓рд╛рдл msvcr100.dll рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЬрдм рдбреЗрдЯрд╛ рдбреАрдПрд▓рдПрд▓ рд╕реАрдорд╛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕реВрдХреНрд╖реНрдо рдмрдЧ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕реАрдорд╛ рдорд┐рдиреАрдЬреАрдбрдмреНрд▓реНрдпреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓рд┐рдирдХреНрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдкреАрдбрд╝рд┐рдд рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ GTK+ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ VC++6 рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ MinGW рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХреЛрдб рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ Qt рдореЗрдВ MinGW рдФрд░ рд╡рд┐рднрд┐рдиреНрди MSVC рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рддрд░рдг рд╣реЛрддреЗ рд╣реИрдВред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдЖрдЦрд┐рд░реА рдореБрджреНрджрд╛ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ (рдпрд╛рдиреА рд╡реАрдПрд╕2005/рд╡реАрдПрд╕ -2010) рдХреЗ рдЕрд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рд╕реА рднреА рдХреЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдордПрд╕рд╡реАрд╕реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдорд┐рдВрдЧрд╡ рд▓рд┐рдВрдХ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЬ рдирдП рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ msvcr100.dll рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ MinGW рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рджреЗрдЦреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЬрд▓реНрдж рд╣реА рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрднреА рднреА рдЦрдбрд╝рд╛ рд╣реИ рдХрд┐ рдорд┐рдирдЬреАрдбрдмреНрд▓реНрдпреВ рдЯреВрд▓рдЪреЗрди рдХреЗ рд╕рд╛рде рдПрдордПрд╕ рдЯреВрд▓рдЪреЗрди рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╕реНрдерд┐рд░/рд╕рд╛рдЭрд╛ libs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рдкрд░реЗрд╢рд╛рдиреА рдФрд░ рдЕрд╕рдВрднрд╡ рдХреЗ рдмреАрдЪ рд╣реИред рдпрджрд┐ .c рдХреЛрдб (рдЬреИрд╕реЗ # 1850) рдХреЛ MSVC рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ llvm рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди rustc рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд░реЗрд╢рд╛рдиреА рдмрдЪ рдЬрд╛рдПрдЧреАред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореБрдЭреЗ llvm рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдо рдЕрдиреБрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ LLVM рдХрд╛ ABI (рдЬрдВрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд) MSVC рдХреЗ рд╕рд╛рде рдХрд┐рддрдирд╛ рд╕рдВрдЧрдд рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдЧрдд рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЯреЗрд▓ рдХрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ (рдЖрдИрд╕реАрд╕реА) рдПрдордПрд╕рд╡реАрд╕реА рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд .lib/.def/.dll рдХрд╛ рдареАрдХ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ llvm cl.exe/link.exe рдХреЗ рд╕рд╛рде icc рдХреЗ рд╕рдорд╛рди рд╕рдВрдЧрдд рдХрд╣реАрдВ рднреА рд╣реИ рддреЛ rustc рдЙрди рд▓рд╛рднреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред

рдореИрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдзрд╛рд░рдгрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдорд┐рдВрдЧрд╡ "рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рджреБрд░реНрд▓рдн рдЯреВрд▓рдЪреЗрди" рд╣реИред

рддрдереНрдп:
рд╕рдореАрдХрд░рдг.рдХреЙрдо рд╕рд╛рдЗрд▓реИрдм рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдВрдЧрд╡ рдЯреВрд▓рдЪреЗрди рд░рдЦрддрд╛ рд╣реИ
mingw-w64 рд╕рдорд╛рдпреЛрдЬрди рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ
Google рдЧреЛ рдХреЛ рдорд┐рдВрдЧрд╡ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд░рд┐рдПрдХреНрдЯреЛрд╕ рдПрдХ рдорд┐рдВрдЧрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдХрдИ рдПрдлрдУрдПрд╕рдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдорд┐рдВрдЧрд╡ рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рддреА рд╣реИрдВ

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

рдорд┐рдВрдЧрд╡ рдХрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд▓ рд╣реИ, рдХрдИ рдкреВрд░реНрдг рднрд╛рд╖рд╛рдПрдВ рдЬреИрд╕реЗ рдлреНрд░реАрдкрд╛рд╕реНрдХрд▓/рдореЛрдиреЛ/рдбреА рдФрд░ рдЧреЛред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдорд┐рдВрдЧрд╡ рдмрдирд╛рдП рд░рдЦрдиреЗ рдпрд╛ рдорд┐рдВрдЧрд╡ рд░рдЦрдиреЗ рдФрд░ рдХреНрд▓реИрдВрдЧ + рдорд┐рдВрдЧрд╡ рд▓рд┐рдм рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╕рдорд╕реНрдпрд╛: рдЬреЗрдорд▓реЛрдХ рдХреЛ рдорд┐рдВрдЧрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ MSVC рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЬреЗрдорд▓реЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: http://glandium.org/blog/?p=2581

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

@thestinger рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддрдирд╛ рдХрдард┐рди рдХреЛрдбрд┐рдд рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЙрд▓ рдФрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдХреЗрд╡рд▓ рдПрдХ рд╕реВрдЪреА рд╣реИред рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдирд┐рдпрдорд┐рдд рдХреЙрд▓ рдХреЗ рд╕рдорд╛рди рд╣реА рдЬреЗрдИ_ рдкреНрд░реАрдлрд┐рдХреНрд╕реНрдб рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдиреЗ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдЪрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@Aatch : рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИ - free рдФрд░ malloc рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреВрд▓рди рд╣реИрдВ

http://llvm.org/docs/doxygen/html/InstructionCombining_8cpp_source.html#l01378
http://llvm.org/docs/doxygen/html/Local_8cpp_source.html#l00269

рдмрдЧ рдЯреНрд░рд╛рдЗрдПрдЬ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬрд┐рдЯ рдХрд░рдирд╛, 2013-08-05 рд╕реЗ рдИрдореЗрд▓ рдХрд░реЗрдВ

рд╣рдо fdim рдЬреИрд╕реЗ рдХреБрдЫ c99 рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ msvcrt рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИред #8663 рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ mingw/mingw-w64 рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдордПрд╕рд╡реАрд╕реА рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдирд╕реЗ рдХреБрдЫ рднрд╛рдЧ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

9367 рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕реЗ рдордЬрдмреВрддреА рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдФрд░ рд╣рдо рдЕрдкрдиреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ + рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рд╕рд╛рде рдЯреВрд▓рдЪреИрди рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдореМрдЬреВрджрд╛ MSVC++ рдЯреВрд▓рдЪреИрди рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

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

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

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

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

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

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