This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// -Wglobals Clang plugin | |
// | |
// Based on example plugins and searching Clang's API documentation. | |
// BEWARE! This is my first ever attempt at a Clang plugin. | |
// | |
// Written by John Bartholomew <[email protected]> | |
#include "clang/Frontend/FrontendPluginRegistry.h" | |
#include "clang/AST/AST.h" | |
#include "clang/AST/ASTConsumer.h" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
url | total_opt_br | total_strip_br | regression_abs | regression_pct | |
---|---|---|---|---|---|
https://oso-web-demo.s3.us-west-2.amazonaws.com/de568a042820fcd97a6f.module.wasm | 335016 | 305069 | 29947 | 9.8 | |
https://sigmausd.io/d0324a003154b2d64e31.module.wasm | 273841 | 252292 | 21549 | 8.5 | |
https://pc.meitu.com/public/dist/js/lib/RenderModule.wasm | 343220 | 316664 | 26556 | 8.4 | |
https://gulch.io/client-1.25.5.wasm.wasm | 179059 | 165584 | 13475 | 8.1 | |
https://app.roboxmaker.com/aker-app.wasm | 654078 | 608232 | 45846 | 7.5 | |
https://sdkathlos.it/avatar/insalute//js_wordpress/nyumaya.wasm | 255076 | 237325 | 17751 | 7.5 | |
https://playground.buttplug.world/dist/8b4ec1dfc3ee2ffb9df7.module.wasm | 753814 | 704467 | 49347 | 7.0 | |
https://solve.prod.portal.onscale.com/d102b71af6dc744954ce.module.wasm | 587557 | 549528 | 38029 | 6.9 | |
https://eventin.space/tflite-wasm/tflite-wasm-simd.wasm | 493826 | 462458 | 31368 | 6.8 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Playground link: https://www.typescriptlang.org/play?#code/PTAEHEEsGcBdQG4FMBO1IHsB2AuUALWWAB2hxAHMZYA6K2fAVwCMaBjDAW2ACUelkaVMABMAZgCMbMQDYAHAFZFAQwAmCkWwAMSACwB2VXJHN98hQu1IFAWABQ92AE9iSUAFEAHkjYAeAMJcnMpYqtAANKAAyrDKsG4AvKAA3qBwymwA1ngA2gC6kQA2GGzKhWQpAL6glQB8oAn2oKCBnMGh0KBInvEdoDmQWABmqC1BIaqRNNODIyig-HB5TaAA-B7efouwkV4+re2qvjFxSJEHE7W1K3gn8QDc9o4ubgDygiiQqki+r8wAVpEAHLKThnUAANTKjCQ9SSILBXR6SD6cE+WAoaxSKxyAGlQINQAAKTJIJwYIagP7-ACUoAAPqAEUg8nh8d1emEmaC3OsoYUYaA8NS8aAAGTE0nkynUmnLOzVPBYASoR4OOzOVwQJCwfkw34A4E8uHcxEclFcqUUqkArEi5l5IWgZWCNXPLUAFUYxEKPyBSM5nSwjE4zFQkR4AYtnRCTnyDX6eRNPByAHJfRiGKnHea+v71pG8F6fX7IjlY1Npjwk267IN4ighhk3ECkBQgSGwyhfABBZidXNc4Oh1D1VLKihxSDIPB9zqVd0ttu+D0mj1RvNtjsj7uzUZz+rrOdO9eDoOd0brVvti-d1dOl2qp4al6gOcrtcbrnX7dd3x7+Y53vI9+3XIsv3PHcsTA50VRQWtNTcHtiB9JwokgCgsBXSIAAUMAHZE+mYDAMF9EITTwgjA1AWAUEFdYYOvD8ENfcAdXQzCPwTU9CO-Ldb18Ycu0PUAm3KNw8FomEWK1ABZRhCg4rCe0iAAhE0chU0BVJzXjOhyKTwUMx1GRyMToHBcyWSxQynSsmS3CiENf1QXsIOdW81PcoTRwTHJphoYtfV7WpK0C71gvUvI0wzCgs0dCUfPg59EOiFggp+Ht3NjfIvLPUAcq |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Don't ask about this one. I have no idea what this magic is. | |
// Copied from https://github.com/microsoft/TypeScript/issues/13298#issuecomment-724542300. | |
type UnionToIntersection<U> = ( | |
U extends any ? (arg: U) => any : never | |
) extends (arg: infer I) => void | |
? I | |
: never; | |
// Continuation of above. | |
type UnionToTuple<T> = UnionToIntersection<(T extends any ? (t: T) => T : never)> extends (_: any) => infer W |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
async function supportsImgType(type) { | |
// Create | |
// | |
// <picture> | |
// <source srcset="data:,x" type="{type}" /> | |
// <img /> | |
// </picture> | |
// | |
// (where "data:,x" is just a minimal URL that is valid but doesn't trigger network) | |
let img = document.createElement('img'); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
addEventListener('fetch', event => { | |
if (event.request.method === 'PUT') { | |
event.respondWith(handleRequest(event)); | |
} | |
}); | |
async function handleRequest(event) { | |
let response = await fetch(event.request); | |
if (!response.ok) return response; | |
let urls = ['/']; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Install tip-of-tree Emscripten | |
$ emsdk install tot | |
$ emsdk activate tot | |
# Build with Embind and Asyncify enabled | |
$ emcc --bind -s ASYNCIFY mylib.cpp -o mylib.html |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const TEXT_ENCODER = new TextEncoder(); | |
const WASM_PAGE_SIZE = 1 << 16; | |
function encodeStringToBinary(str) { | |
// Initially allocate enough space for the case where 1 char requires 1 byte (ASCII-only). | |
let dest = new WebAssembly.Memory({ initial: Math.ceil(str.length / WASM_PAGE_SIZE) }); | |
let writePos = 0; | |
for (;;) { | |
// Write starting from the last written position. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create a Worker we want to share memory with: | |
let w = new Worker(`data:text/javascript, | |
onmessage = ({data: memory}) => { | |
// Got WebAssembly.Memory once, log same instance forever with no further postMessages: | |
setInterval(() => console.log('Current buffer in worker:', memory.buffer), 5_000); | |
} | |
`); | |
// Create a shared growable memory: | |
let m = new WebAssembly.Memory({ initial:1, maximum: 65536, shared: true }); | |
// Send memory to the worker: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# Use with | |
# > cargo test --no-run # print compilation failures if any | |
# > RUST_TEST_THREADS=1 cargo test -q -- --logfile tests.log 2>failures.log; ../convert-test-log.py | |
import xml.etree.cElementTree as ET | |
import re | |
failure_re = re.compile(r"""thread '(.*?)' panicked at '(.*?)', tests/test\.rs:\d+:\d+ |