Cheerp 3.0, C / C ++ ืฆื• ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืงืึทืžืคึผื™ื™ืœืขืจ, ืžื™ื™ื’ืจื™ื™ื˜ื™ื“ ืฆื• Apache 2.0 ืื•ืŸ LLVM ืœื™ื™ืกืึทื ืกื™ื–

ื“ื™ ื˜ืฉืขืขืจืคึผ 3.0 ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ื– ื‘ืึทืงืขื ืขื , ืึทืœืึทื•ื™ื ื’ ืื™ืจ ืฆื• ื–ืึทืžืœืขืŸ ืงื™ื™ืŸ C / C ++ ืงืึธื“ ืื™ืŸ ื•ื•ืขื‘ืึทืกืกืขืžื‘ืœื™ ืึธื“ืขืจ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜. ื“ื™ ื ื™ื™ึทืข ืฆื•ื•ื™ื™ึทื’ ืื™ื– ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืึทืจ ืžืึธื•ื•ื™ื ื’ ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ ืื•ืŸ ืึทืงืึทืžืคึผืึทื ื™ื™ื ื’ ืœื™ื™ื‘ืจืขืจื™ื– ืฆื• ื ื•ืฆืŸ ื“ื™ ืคึผืขืจืžื™ืกื™ื•ื• Apache 2.0 ืื•ืŸ LLVM ืœื™ื™ืกืึทื ืกื™ื–, ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื“ื™ ื‘ื™ื– ืึทื”ืขืจ ื’ืขื•ื•ืขื ื“ื˜ ืœื™ืžื™ื˜ืขื“ ืœื™ื™ืกืึทื ืกื™ื ื’ ืคึผืึธืœื™ื˜ื™ืง, ื•ื•ืึธืก ืึธืคืคืขืจืก ืึท GPLv2 ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืึธืคึผืฆื™ืข ืคึฟืึทืจ ื ื™ื˜-ื’ืขืฉืขืคื˜ ืคึผืจืึทื“ื–ืฉืขืงืก ืื•ืŸ ืึท ืคึผืจืึทืคึผืจื™ื™ืึทื˜ืขืจื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคึฟืึทืจ ื’ืขืฉืขืคื˜ ืึธื ืขืก. ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ืงืึธื“ ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ ืคื•ืŸ LLVM ืื•ืŸ Clang, ืื•ืŸ ื™ื ืงืœื•ื“ื– ื ืึธืš ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ืŸ ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืงืึทืžืคึผื™ื™ืœื“ ืจืขื–ื•ืœื˜ืึทื˜.

ื˜ืฉืขืขืจืคึผ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื‘ื™ื™ื“ืข ืคึฟืึทืจ ืคึผืึธืจื˜ื™ื ื’ ื™ื’ื–ื™ืกื˜ื™ื ื’ C / C ++ ืœื™ื™ื‘ืจืขืจื™ื– ืื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืฆื• ืœื•ื™ืคืŸ ืื™ืŸ ื“ืขื ื‘ืœืขื˜ืขืจืขืจ, โ€‹โ€‹ืื•ืŸ ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ื”ื•ื™ืš-ืคืึธืจืฉื˜ืขืœื•ื ื’ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื•ืŸ ื•ื•ืขื‘ืึทืกืกืขืžื‘ืœื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคึฟื•ืŸ ืงืจืึทืฆืŸ. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืงืึธื“ ืื™ืŸ C / C ++ ืื•ืŸ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืื™ืŸ ืื™ื™ืŸ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืึทืงืกืขืก ืคึฟื•ืŸ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืงืึธื“ ืฆื• ืคืึทื ื’ืงืฉืึทื ื– ืขืจื™ื“ื–ืฉื ืึทืœื™ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ C / C ++, ืื•ืŸ ืคึฟื•ืŸ C / C ++ ืงืึธื“ ืฆื• ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืึทื‘ื“ื–ืฉืขืงืฅ, ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืœื™ื™ื‘ืจืขืจื™ื–, ื•ื•ืขื‘ ืึทืคึผื™ ืื•ืŸ ืึทืœืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ DOM. ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืฉืึทืคึฟืŸ ืงืึทืžื‘ื™ื™ื ื“ ืึทืกืขืžื‘ืœื™, ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืงืึธื“ ืื™ืŸ ื•ื•ืึธืก ืื™ื– ืงืึทืžืคึผื™ื™ืœื“ ืื™ืŸ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜, ืื•ืŸ ื˜ื™ื™ืœ ืื™ืŸ ื•ื•ืขื‘ืึทืกืกืขืžื‘ืœื™. ื‘ื™ืœื“ื™ื ื’ ืคื•ืŸ ืคึผืจืึทื“ื–ืฉืขืงืก ื ื™ืฆืŸ ื“ื™ ืกื˜ืึทื ื“ืึทืจื˜ libc ืื•ืŸ libc ++ ืœื™ื™ื‘ืจืขืจื™ื– ืื™ื– ื’ืขืฉื˜ื™ืฆื˜.

ืงืึทืžืคึผืขืจื“ ืฆื• ื“ื™ Emscripten ืงืึทืžืคึผื™ื™ืœืขืจ, Cheerp ื“ื–ืฉืขื ืขืจื™ื™ืฅ ืžืขืจ ืึธืคึผื˜ื™ืžื™ื–ืขื“ ืื•ืŸ ืกืึธืœื™ื“ ื•ื•ืขื‘ืึทืกืกืขืžื‘ืœื™ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืงืึธื“ (ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš 7% ืงืœืขื ืขืจืขืจ ืจื™ื–ืึทืœื˜ื™ื ื’ ื˜ืขืงืขืก). ืงืึทื ืกืขืคึผื˜ืฉื•ืึทืœื™, ื“ื™ ื“ื™ืคืขืจืึทื ืกื™ื– ื–ืขื ืขืŸ ืึทื– ืขืžืกืงืจื™ืคึผื˜ืขืŸ ืื™ื– ื’ืขื ื™ืฆื˜ ื•ื•ื™ ืึท ื•ื•ืขื‘ืึทืกืกืขืžื‘ืœื™ ื›ื™ื™ืคืขืฅ ืคึฟืึธืจืžืึทื˜ ืื•ืŸ ื˜ื•ื˜ ื“ื™ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืื•ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ื•ื•ืขื‘ืึทืกืกืขืžื‘ืœื™ ืคึผืึธืกื˜ืŸ-ืคึผืจืึทืกืขืกื™ื ื’ ื‘ื™ื ืข (ื•ื•ืึทืกื-ืึธืคึผื˜). Cheerp ื ื™ืฆื˜ LLVM ื‘ื™ื˜ืขืงืึธื“ืข ื•ื•ื™ ืึท ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคึฟืึทืจ ืœื™ื™ื‘ืจืขืจื™ื– ืื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ, ืึทืœืึทื•ื™ื ื’ ืคึฟืึทืจ ื‘ืจื™ื™ื˜ืขืจืขืจ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ื•ื•ืึธืก ืฉืคึผืึทืŸ ื“ื™ ื’ืื ืฆืข ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืœืขื•ื•ืขืจื™ื“ื–ืฉ ืžืขื˜ืึทื“ืึทื˜ืึท ืื•ื™ืฃ LLVM-ืžื“ืจื’ื” ืึธืŸ ื“ื™ ื ื•ื™ื˜ ืคึฟืึทืจ ืคึผืึธืกื˜ืŸ-ืคึผืจืึทืกืขืกื™ื ื’.

ืึทื“ื“ื™ื˜ื™ืึธื ืึทืœืœื™, Cheerp ื ื™ืฆื˜ ื“ื™ PreExecuter ืึธืคึผื˜ื™ืžื™ื–ืขืจ, ื•ื•ืึธืก ื™ื ืฉื•ืจื– ืคึผืจื™ืขืžืคึผื˜ื™ื•ื• ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ืงืึธื“ ืื™ืŸ ื“ื™ ื–ืึทืžืœื•ื ื’ ื‘ื™ื ืข, ืœืžืฉืœ, ืฆื• ื’ืขืจ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจื– ื’ืขื ื™ืฆื˜ ืฆื• ื™ื ื™ืฉืึทืœื™ื™ื– ื’ืœืื‘ืืœืข ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ ืงืึทื ืกื˜ืึทื ืฅ. ืื•ื™ืš, ื‘ืขืฉืึทืก ื–ืึทืžืœื•ื ื’, PartialExecuter ืื™ื– ื’ืขื ื™ืฆื˜, ื•ื•ืึธืก, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ืคื•ื ืงืฆื™ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก, ืจื™ืžื•ื•ื•ื– ืงืึธื“ ื•ื•ืึธืก ืื™ื– ื’ืขืจืึทื ื˜ื™ื“ ื ื™ืฉื˜ ืฆื• ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื‘ืขืฉืึทืก ื“ื•ืจื›ืคื™ืจื•ื ื’.

ื˜ืฉืขืขืจ ืงืขื ืขืŸ ืื•ื™ืš ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืงืึธื“ ืฆื• ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืžืึทื ื™ืคึผื•ืœื™ืจืŸ ื–ื›ึผืจื•ืŸ ื‘ืื“ืขืงื˜ ื“ื•ืจืš ื“ื™ ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืขืžื™ืึทืœื™ื™ื˜ื™ื ื’ ืึท ื˜ืจืื“ื™ืฆื™ืื ืขืœืŸ ืึทื“ืจืขืก ืคึผืœืึทืฅ ื ื™ืฆืŸ ื˜ื™ื™ืคึผื˜ ืขืจื™ื™ื–, Cheerp ื’ื™ื˜ ื“ื™ืจืขืงื˜ ืžืึทืคึผื™ื ื’ ืคื•ืŸ C ++ ืึทื‘ื“ื–ืฉืขืงืฅ ืฆื• ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืึทื‘ื“ื–ืฉืขืงืฅ, ื•ื•ืึธืก ืจืึทื“ื•ืกืึทื– ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ื•ื•ื™ื™ึทืœ ื“ื™ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ ื”ืื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ืึทื ื™ื•ื–ื“ ืึทื‘ื“ื–ืฉืขืงืฅ. ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’, ื“ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื•ื•ืขื‘ืึทืกืกืขืžื‘ืœื™ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืงืึธื“ ื ื™ืฆื˜ SIMD ื™ืงืกื˜ืขื ืฉืึทื ื– ื•ื•ืึธืก ืœืึธื–ืŸ ืคึผืึทืจืึทืœืขืœื™ื–ืึทื˜ื™ืึธืŸ ืคื•ืŸ ื“ืึทื˜ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–.

ื˜ืฉืขืขืจืคึผ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ื™ ืึท ืคึผืœืึทื˜ืคืึธืจืžืข ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืงืœื™ืขื ื˜ / ืกืขืจื•ื•ืขืจ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ C ++. ืื™ืŸ ืงืจืึทื ื˜ ืคื™ืจ, ืขืก ืื™ื– ืคึผืจืึธืกื˜ ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืื™ืŸ-ื‘ืœืขื˜ืขืจืขืจ ืคืจืึธื ื˜ ืกื•ืฃ, ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜, ืื•ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืฆื•ืจื™ืง ืกื•ืฃ, ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ PHP, Python, Ruby ืึธื“ืขืจ JavaScript/Node.js. Cheerp ื’ื™ื˜ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ื’ืึทื ืฅ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ C ++, ืื™ืŸ ื•ื•ืึธืก ื“ื™ ื‘ืึทืงืขื ื“ ืื•ืŸ ืคืจืึธื ื˜ืขื ื“ ื–ืขื ืขืŸ ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ ืึท ืื™ื™ืŸ ืงืึธื“ ื‘ืึทื–ืข. ื‘ืขืฉืึทืก ื“ื™ ื–ืึทืžืœื•ื ื’ ืคึผืจืึธืฆืขืก, ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ ืื™ื– ืงืึทืžืคึผื™ื™ืœื“ ืื™ืŸ ื’ืขื‘ื•ื™ืจืŸ ืงืึธื“, ืื•ืŸ ื“ื™ ืฆื•ื‘ื™ื ื“ ืื™ื– ืงืึธื ื•ื•ืขืจื˜ืขื“ ืื™ืŸ ืึท ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’. ื“ื™ื‘ืึทื’ื™ื ื’ ืคื•ืŸ ืึทืœืข ืคึผืจื•ื™ืขืงื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืฆื• ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜, ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืžื™ื˜ ืžืงื•ืจ ื˜ืขืงืกืฅ ืื™ืŸ C ++ ื ื™ืฆืŸ ืžืงื•ืจ ืžืึทืคึผืข ื˜ืขื›ื ืึธืœืึธื’ื™ืข (ืื•ื™ื‘ ืึท ื˜ืขื•ืช ืึทืงืขืจื–, ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืึท ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืคื•ืŸ C ++ ืงืึธื“; ืขืก ืฉื˜ื™ืฆื˜ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื‘ืจื™ื™ืงืคึผืึธื™ื ืฅ ืื™ืŸ C ++ ืงืึธื“ ืื•ืŸ ืฉื•ืจื”-ื“ื•ืจืš -ืœื™ื ื™ืข ืฉืจื™ื˜-ื“ื•ืจืš-ืฉืจื™ื˜ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ C ++ ืงืึธื“).

ืžืงื•ืจ: opennet.ru

ืงื•ื™ืคืŸ ืคืึทืจืœืึธื–ืœืขืš ื”ืึธืกื˜ื™ื ื’ ืคึฟืึทืจ ื–ื™ื™ื˜ืœืขืš ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก ๐Ÿ”ฅ ืงื•ื™ืคื˜ ืคืึทืจืœืขืกืœืขื›ืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื”ืึธืกื˜ื™ื ื’ ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก | ProHoster