Skip to content

Instantly share code, notes, and snippets.

@gabonator
Created November 15, 2022 12:26
Show Gist options
  • Save gabonator/38ce597c166249e4a1a10d7f440d542a to your computer and use it in GitHub Desktop.
Save gabonator/38ce597c166249e4a1a10d7f440d542a to your computer and use it in GitHub Desktop.
minimal wasm code
wasmCode = (() => { var wasmcode="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"; return Uint8Array.from(atob(wasmcode), c => c.charCodeAt(0));})();
// em++ main.cpp -o main.wasm -O3 -s EXPORTED_FUNCTIONS="['_formatHexFloat', '_formatHexDouble', '_input', '_output']" --no-entry
// node package.js
#include <stdint.h>
#include <stdio.h>
extern "C" {
char output[128];
uint8_t input[128];
void formatHexFloat()
{
sprintf(output, "%a", *((float*)input));
}
void formatHexDouble()
{
sprintf(output, "%a", *((double*)input));
}
}
<script src="app_main.js"></script>
<script>
async function main() {
var buffer;
if (!wasmCode)
{
var wasm = await fetch("./main.wasm");
var blob = await wasm.blob();
buffer = await blob.arrayBuffer();
} else {
buffer = wasmCode;
}
let {instance} = await WebAssembly.instantiate(
buffer, {}
);
var output = new Uint8Array(
instance.exports.memory.buffer,
instance.exports.output.value,
128
);
var in32 = new Float32Array(
instance.exports.memory.buffer,
instance.exports.input.value,
1
);
var in64 = new Float64Array(
instance.exports.memory.buffer,
instance.exports.input.value,
1
);
in32[0] = 3.141592;
instance.exports.formatHexFloat();
var out = "";
for (var i=0; i<128 && output[i]; i++)
out += String.fromCharCode(output[i]);
console.log(out);
}
main();
</script>
var fs = require("fs");
var prefix = `wasmCode = (() => { var wasmcode="`;
var suffix = `"; return Uint8Array.from(atob(wasmcode), c => c.charCodeAt(0));})();`;
fs.writeFileSync("app_main.js", prefix + fs.readFileSync("main.wasm").toString("base64") + suffix);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment