ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅! Π ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΡΠΎΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. Π― ΡΠΏΡΠ°ΡΠΈΠ²Π°Ρ Π²Π°Ρ ΠΎ https://github.com/ballercat/walt
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°Π·Π½ΠΈΡΡ?
ΠΡΠΈΠ²Π΅Ρ @ emil14 ,
walt, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ
Π°Ρ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π°Π΄ wat
, Π³Π»Π°Π²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ ΠΊ wasm, Π΅ΡΠ»ΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΠ» Π²Π»Π°Π΄Π΅Π»ΡΡΠ°: https://github.com/ballercat/walt/issues/11
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ:
1) AssemblyScript ΡΠΎΠ΄ΠΈΠ»ΡΡ ΡΠ°Π½ΡΡΠ΅. ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ .
2) AS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ "ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ
" ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» - i8, u8, i16, u16 ΠΈ i32 / u32, i64 / u64, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. walt
ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ i32 ΠΈ i64 Π±Π΅Π· Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΡ
ΡΠΈΠΏΠΎΠ² .
3) AS ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ typescript
ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π² javascript
ΠΏΠΎΠΌΠΎΡΡΡ tsc
. walt
ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΡ
ΠΎΠΆΠΈΠΉ Π½Π° flow
Π½ΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ, ΠΈ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π½Π° ΡΠΈΡΡΡΠΉ js.
4) AS ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: Array
, ArrayBuffer
, ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, String
, Map/Set
, Symbol
, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Math
, operator instanceof
ΠΈ Ρ. Π΄. walt
ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠ΅ Π²Π΅ΡΠΈ Π΄Π»Ρ ΡΡΡΠΎΠΊ ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
5) AS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Generics.
6) Π AS Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΡΡΠΈ: arena
, tlsf
ΠΈ buddy
. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°. walt
Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ.
7) Π£ AS Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΎΠ². ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ wasmBoy .
8) AS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ°ΠΌΠΈ: WebAssembly Studio ΠΈ Assembleash .
9) AS Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ binaryen
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±ΡΡΡΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΌΠ½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΎΠ² ΠΎΡ Π°Π²ΡΠΎΡΠ° emscripten. walt
Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΡΡ
Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° .
ΠΠΉ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ wasmBoy @MaxGraey π
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. ΠΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ AssemblyScript
Π»ΡΡΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΈΠ²Π΅Ρ @ emil14 ,
walt, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π°Π΄
wat
, Π³Π»Π°Π²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ ΠΊ wasm, Π΅ΡΠ»ΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΠ» Π²Π»Π°Π΄Π΅Π»ΡΡΠ°: https://github.com/ballercat/walt/issues/11ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ:
1) AssemblyScript ΡΠΎΠ΄ΠΈΠ»ΡΡ ΡΠ°Π½ΡΡΠ΅. ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ .
2) AS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ "ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ " ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» - i8, u8, i16, u16 ΠΈ i32 / u32, i64 / u64, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
walt
ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ i32 ΠΈ i64 Π±Π΅Π· Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² .3) AS ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ
typescript
ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π²javascript
ΠΏΠΎΠΌΠΎΡΡΡtsc
.walt
ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π°flow
Π½ΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ, ΠΈ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π½Π° ΡΠΈΡΡΡΠΉ js.4) AS ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
Array
,ArrayBuffer
, ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ,String
,Map/Set
,Symbol
, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅Math
, operatorinstanceof
ΠΈ Ρ. Π΄.walt
ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠ΅ Π²Π΅ΡΠΈ Π΄Π»Ρ ΡΡΡΠΎΠΊ ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².5) AS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Generics.
6) Π AS Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΡΡΠΈ:
arena
,tlsf
ΠΈbuddy
. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°.walt
Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ.7) Π£ AS Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΎΠ². ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ wasmBoy .
8) AS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ°ΠΌΠΈ: WebAssembly Studio ΠΈ Assembleash .
9) AS Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅
binaryen
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±ΡΡΡΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΌΠ½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ ΠΎΠ΄ΠΎΠ² ΠΎΡ Π°Π²ΡΠΎΡΠ° emscripten.walt
Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° .