cprc - เป€เบ›เบฑเบ™ compiler เบซเบ™เบฒเปเบซเบ™เป‰เบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ C

Michael Forney, เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบŠเบตเบšเป€เบงเบต swc composite เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป‚เบ›เป‚เบ•เบ„เบญเบ™ Wayland, เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ•เบปเบงเบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™ cproc เปƒเบซเบกเปˆเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C11 เปเบฅเบฐเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, compiler เปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™ QBE เป€เบ›เบฑเบ™ backend. เบฅเบฐเบซเบฑเบ” compiler เปเบกเปˆเบ™เบ‚เบฝเบ™เป€เบ›เบฑเบ™ C เปเบฅเบฐเบ–เบทเบเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” ISC เบŸเบฃเบต.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบ„เบปเบšเบ–เป‰เบงเบ™เบชเบปเบกเบšเบนเบ™, เปเบ•เปˆเบงเปˆเบฒเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบเปเบฒเบ™เบปเบ” C11 เบชเปˆเบงเบ™เปƒเบซเบเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เปƒเบ™เบšเบฑเบ™เบ”เบฒเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™ arrays เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›, preprocessor, เบเบฒเบ™เบœเบฐเบฅเบดเบ” PIE (เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡) เป„เบŸเบฅเปŒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, inline assembler, เบ›เบฐเป€เบžเบ” "เบเบฒเบง double", เบ•เบปเบงเบฅเบฐเบšเบธ _Thread_local, เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบœเบฑเบ™เบœเบงเบ™, เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบกเบตเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ. (L "...").

เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ cprc เปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเปเบฅเป‰เบงเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, mcpp, gcc 4.7, binutils เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบทเป‰เบ™เบ–เบฒเบ™เบญเบทเปˆเบ™เป†. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบˆเบฒเบเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เบเบฒเบ™เบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบเบฐเบ—เบฑเบ”เบฎเบฑเบ”เปเบฅเบฐเบšเปเปˆเบชเบฑเบšเบชเบปเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, backend เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡ 70% เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ compilers เบ‚เบฑเป‰เบ™เบชเบนเบ‡, เปเบ•เปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปเบกเปˆเบ™เบžเบฒเบเปƒเบ™ 10% เบ‚เบญเบ‡ compilers เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ x86_64 เปเบฅเบฐ aarch64 เป€เบ—เบดเบ‡ Linux เปเบฅเบฐ FreeBSD platforms เบ”เป‰เบงเบ Glibc, bsd libc เปเบฅเบฐ Musl libraries.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™