Masu haɓaka V8 sun gabatar da mai rarrabawa don WebAssembly

Masu haɓaka injin V8 JavaScript gabatar mai amfani wasm-rubutu, wanda ke ba ku damar ƙaddamar da tsaka-tsakin wakilcin binary Yanar Gizo zuwa cikin ƙamus-harshen da za a iya karantawa wanda ya tuna da JavaScript da C. Harshen da aka ba da shawarar ya fi sauƙin fahimta kuma ya fi dacewa da fassarar hannu fiye da wakilcin rubutu na WebAssembly a cikin tsarin ".wat", wanda ya fi kusa da harshen taro fiye da manyan harsuna. A wannan yanayin, ƙaddamarwa yana nuna wakilcin Wasm gaba ɗaya kamar yadda zai yiwu.

Mai tarawa hada kunshe a cikin kayan aiki WABT, wanda ke ba da fassarar tsakanin binary da wakilcin rubutu na WebAssembly, da kuma rarrabawa, sarrafawa, gyarawa da tabbatar da fayilolin wasm. WABT kuma yana haɓaka kayan aiki wasam2c, wanda ke ba da damar tattara fayilolin wasm zuwa daidai lambar C wanda mai tarawa C zai iya haɗawa, amma bai bambanta da yawa ba dangane da iya karantawa daga rubutun rubutu na "wat".

Misali, ainihin aikin C wanda aka harhada cikin wasm

nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'in nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i nau'i) x,y,z; } wata 3;

ɗigon ruwa (const vec3 *a, const vec3 *b) {
dawo a-> x * b-> x +
a ->y * b->y +
a->z * b->z;
}

mai amfani da wasm-recompile za a tattara shi zuwa yaren ƙarya

ɗigon aikin (a: {a:float, b:float, c:float},
b:{a:tasowa, b:tasowa, c:sawul}): iyo {
dawo aa * ba + ab * bb + ac * bc
}

yayin da juyawa zuwa tsarin rubutu ".wat" zai kasance kamar haka

(func $dot (nau'in 0) (param i32 i32) (sakamakon f32)
(f32. kara
(f32. kara
(f32.mul
(f32. kaya
(na gida.samu 0))
(f32. kaya
(na gida.samu 1)))
(f32.mul
(f32.load offset=4
(na gida.samu 0))
(f32.load offset=4
(na gida.samu 1))))
(f32.mul
(f32.load offset=8
(na gida.samu 0))
(f32.load offset=8
(local.samu 1))))))

source: budenet.ru

Add a comment