ΠΡΠΎΠ΅ΠΊΡΡΡ Wasmer ΠΏΡΡΠ½Π° Π²ΡΠΎΡΠ°ΡΠ° ΡΠΈ Π³ΠΎΠ»ΡΠΌΠ° Π²Π΅ΡΡΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΉΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ WebAssembly, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π² ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Rust ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° Π½Π° MIT.
ΠΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΠ° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° ΡΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° WebAssembly, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π²ΡΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ Π΄Π° Π±ΡΠ΄Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ° Π»Π΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ Π½Π° WebAssembly. Π’Π΅Π·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π΅ ΡΠ° ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΊΠΎΠ΄, ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΡΡ Emscripten ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π² WebAssembly. ΠΠ° Π΄Π° ΠΏΡΠ΅Π²Π΅Π΄Π΅ WebAssembly Π² ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΡΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ (Singlepass, Cranelift, LLVM) ΠΈ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΈ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ JIT ΠΈΠ»ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄).
ΠΠΎΠ½ΡΡΠΎΠ»ΡΡ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΠ΅Π· WASI (WebAssembly System Interface) API, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π² sandbox ΡΡΠ΅Π΄Π° ΠΈ ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π΄ΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ (ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ β Π·Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ (ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠΎΠΊΠ΅ΡΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΈ Π΄Ρ.), ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΌΠΎΡΠΈΡ).
ΠΠ° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° WebAssembly, Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Wasmer Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ΄Π²Π° Π±Π΅Π· Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (βcurl https://get.wasmer.io -sSfL | shβ) ΠΈ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ» (βwasmer test .wasmβ). ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ WebAssembly, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ WAPM. Wasmer ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈ ΠΊΠ°ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° WebAssembly Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir ΠΈ Java.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ ΡΠ°Π·ΠΈ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ Π°ΡΠ΅ΠΌΠ±Π»ΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Native Object Engine Π·Π° ΠΌΠΎΠ΄ΡΠ» WebAssembly, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠΎΠ΄ ("wasmer compile -native" Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ .so, .dylib ΠΈ .dll ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅), ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ Π·Π°ΠΏΠ°Π·Π²Π° Π²ΡΠΈΡΠΊΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΠΏΡΡΡΡΠ½Π° ΠΊΡΡΠΈΡ. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Ρ Π²Π³ΡΠ°Π΄Π΅Π½ Wasmer. Rust API ΠΈ Wasm-C-API ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ.
ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π² Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Wasmer Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½ΠΈΡ API, ΠΊΠΎΠΈΡΠΎ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½ΡΠΌΠ° Π΄Π° Π·Π°ΡΠ΅Π³Π½Π°Ρ 99% ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°. Π‘ΡΠ΅Π΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΡΡΠ°Π²Π°Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°, ΠΈΠΌΠ° ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π²ΡΠ² ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ Wasm ΠΌΠΎΠ΄ΡΠ»ΠΈ (ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² Wasmer 1.0, Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² Wasmer 2.0). ΠΡΡΠ³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° SIMD (Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΈ) ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Ρ Π΄Π°Π½Π½ΠΈ. ΠΠ±Π»Π°ΡΡΠΈΡΠ΅, Π² ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° SIMD ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΈΠΌΡΠ»Π°ΡΠΈΡ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ Π½Π° Wasm ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π΄ΡΡΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ»ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°.
- ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. Π‘ΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° LLVM Ρ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 50%. ΠΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈ ΡΡΠ΅Π· Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈΡΠ΅, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΄ΡΠΎΡΠΎ. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π° ΠΊΠΎΠ΄ Π½Π° ΠΊΡΠ°Π½Π»ΠΈΡΡ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Ρ 40%. ΠΠ°ΠΌΠ°Π»Π΅Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ.
- ΠΠ° ΠΏΠΎ-ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ½ΠΎΡΡΡΠ° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΈΡΠ΅ ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ: JIT β Universal, Native β Dylib (ΠΠΈΠ½Π°ΠΌΠΈΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°), Object File β StaticLib (Π‘ΡΠ°ΡΠΈΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru