cproc - C рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рдХрдореНрдкрд╛рдЗрд▓рд░

рдорд╛рдЗрдХрд▓ рдлреЛрд░реНрдиреА, Wayland рдкреНрд░реЛрдЯреЛрдХрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд swc рдХрдореНрдкреЛрдЬрд┐рдЯ рд╕рд░реНрднрд░рдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛, C11 рдорд╛рдирдХ рд░ рдХреЗрд╣реА GNU рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдирдпрд╛рдБ cproc рдХрдореНрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИрдЫред рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди, рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ рдмреНрдпрд╛рдХрдЗрдиреНрдбрдХреЛ рд░реВрдкрдорд╛ QBE рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛрдб C рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ рдирд┐: рд╢реБрд▓реНрдХ ISC рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред

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

рдПрдХреИ рд╕рдордпрдорд╛, cproc рдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдЖрдлреИрдВ, mcpp, gcc 4.7, binutils рд░ рдЕрдиреНрдп рдЖрдзрд╛рд░рднреВрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫрдиреНред рдЕрдиреНрдп рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВрдмрд╛рдЯ рдореБрдЦреНрдп рднрд┐рдиреНрдирддрд╛ рдПрдХ рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рд░ рдЕрд╕рд╣рдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдирдорд╛ рдлреЛрдХрд╕ рд╣реЛред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдЙрдиреНрдирдд рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВрдХреЛ рдкреНрд░рджрд░реНрд╢рдирдХреЛ 70% рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ, рддрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдареВрд▓рд╛ рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВрдХреЛ 10% рднрд┐рддреНрд░ рдЫред Glibc, bsd libc рд░ Musl рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрд╕рдБрдЧ Linux рд░ FreeBSD рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ x86_64 рд░ aarch64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдорд╛рдгрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди