O chionn ghoirid chaidh a ’chiad dreach de wasm3 a leigeil ma sgaoil, a tha eadar-theangair glè luath de chòd eadar-mheadhanach le WebAssemblyLeis gu bheil e air a dhealbhadh gu sònraichte gus tagraidhean WebAssembly a ruith air microcontrollers agus àrd-ùrlaran far nach eil buileachadh JIT airson WebAssembly, chan eil cuimhne gu leòr ann airson JIT a bhith ag obair, no cruthachadh duilleagan cuimhne so-ghnìomhaichte a dh ’fheumar airson Gnìomhachadh JIT.
Dhaibhsan nach eil eòlach air WebAssembly, bu chòir dhut fios a bhith agad gu bheil seo cànan aig ìre ìosal, air a dhealbhadh an toiseach mar chruth targaid nuair a bhios e a ’cur ri chèile bho C agus C ++, ged a tha e cuideachd a’ toirt taic do chòd stòr airson cànanan eile, leithid Rust agus Go. Tha an cruth còd binary so-ghiùlain seo air a chleachdadh airson làn sgriobtaichean a thoirt gu buil bhon bhrobhsair taobh cliaint.
Clàr-innse
Mu wasm3
Bidh Wasm3 a ’dol seachad air deuchainnean co-chòrdalachd leis an t-sònrachadh WebAssembly 1.0 agus faodar a chleachdadh gus mòran thagraidhean WASI a ruith, a ’toirt seachad dìreach 4-5 uair nas lugha de choileanadh na einnseanan JIT agus 11.5 uair nas lugha na coileanadh còd dùthchasach.
An coimeas ri cleasaichean eile bho WebAssembly (wac, beatha, wasm-micro-runtime), bha wasm3 15.8 uair nas luaithe.
Thòisich Wasm3 mar phròiseact rannsachaidh agus tha e fhathast mar sin ann an iomadh dòigh. Tha luachadh an motair ann an àrainneachdan eadar-dhealaichte mar phàirt den sgrùdadh. Leis gu bheil Lua, JS, Python, Lisp, (…) againn a ’ruith air MCU, tha WebAssembly gu dearbh na roghainn gealltanach eile. Tha e a ’solarachadh àrainneachd gu tur iomallach, le deagh mhìneachadh agus ro-innse. Am measg nan cùisean cleachdaidh làimhseachail, is urrainn dhuinn coimpiutaireachd adhartach, sgrìobhadh, cur an gnìomh riaghailt IoT, cùmhnantan blockchain, msaa a liostadh.
Samh3 feumaidh 64Kb de chuimhne airson còd agus 10Kb de RAM, dè thu a ’ceadachadh am pròiseact a chleachdadh gus tagraidhean a chuir ri chèile ann an WebAssembly ann am microcontrollers mar Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310). , a bharrachd air bùird agus coimpiutairean stèidhichte air ailtireachd x86, x64, ARM, MIPS, RISC-V, agus Xtens.
Tha àrd-choileanadh air a choileanadh le bhith a ’cleachdadh innleachd Massey Meta Machine (M3) san eadar-theangair, anns a bheil, gus lùghdachadh a dhèanamh air an uachdar de bhith a ’còdachadh an bytecode, am bytecode air eadar-theangachadh gu for-ghnìomhach ann an obrachaidhean nas èifeachdaiche a ghineas còd inneal fuadain agus am modal cur gu bàs an inneal brìgheil cruachadh gu bhith na dhòigh clàraidh nas èifeachdaiche tha na h-obraichean ann am M3 nan gnìomhan C, aig a bheil argamaidean mar chlàran an inneal brìgheil, a chithear. anns na clàran CPU.
Bidh sruthan obrach tric airson optimization a ’tionndadh gu obrachaidhean geàrr-chunntais.
Cuideachd, Faodar toraidhean an sgrùdaidh a choimhead aig WebAssembly air an lìon, às deidh sgrùdadh a dhèanamh air 948 mìle de na làraich as mòr-chòrdte a chaidh a mheas le Alexa, lorg an luchd-rannsachaidh sin Tha WebAssembly air a chleachdadh le 1639 làrach (0.17%), is e sin 1 ann an 600 làrach.
Gu h-iomlan, nochd na làraich-lìn an luchd de mhodalan WebAssembly 1950, le 150 dhiubh gun samhail.
Nuair a bhathar a ’beachdachadh air farsaingeachd WebAssembly, chaidh co-dhùnaidhean briseadh-dùil a tharraing: ann am barrachd air 50% de chùisean, chaidh WebAssembly a chleachdadh airson adhbharan droch-rùnach, mar eisimpleir, gus cryptocurrencies (55,7%) a mhèinneadh agus gus còd fhalach bho sgriobtaichean droch-rùnach (0,2 , XNUMX%).
De shiostaman obrachaidh le taic airson Wasm3, is urrainn dhuinn Linux a lorg a ’toirt a-steach routers stèidhichte OpenWRT, Windows, macOS, Android agus iOS. Bha e comasach cuideachd wasm3 a chur ri chèile a-steach don chòd WebAssembly eadar-mheadhanach gus an eadar-theangair a ruith ann am brobhsair no airson fèin-aoigheachd.
De na cleachdaidhean dligheach de WebAssembly, chaidh amharc air coileanadh leabharlainn (38.8%), cruthachadh geama (3.5%), agus coileanadh còd dùthchasach neo-JavaScript (0.9%). Ann an 14,9% de na cùisean, chaidh WebAssembly a chleachdadh gus sgrùdadh a dhèanamh air an àrainneachd airson comharrachadh luchd-cleachdaidh (lorgan-meòir).
Feuch wasm3
Dhaibhsan aig a bheil ùidh ann a bhith a ’cleachdadh an eadar-theangair seo air an t-siostam aca, faodaidh iad sùil a thoirt air na sgrìobhainnean a bharrachd air còd a ’phròiseict a tha sgrìobhte ann an C agus air a sgaoileadh fo chead MIT, Anns a ’cheangal a leanas.