0.3.3 • Published 3 years ago

gecko-profiler-demangle v0.3.3

Weekly downloads
43
License
Apache-2.0 OR MIT
Repository
github
Last release
3 years ago

gecko-profiler-demangle

This crate, or npm package (depending on where you're reading this), contains a wrapper function demangle_any for C++ and rust name demangling. This wrapper function is intended to be used through WASM in the Firefox profiler project.

Usage instructions

  1. Have your webpack configuration set up to understand .wasm file loading and async imports. This may require adding '.wasm' to the list of resolve extensions in your webpack.config.js, and it may require the use of the babel plugin syntax-dynamic-import so that the import() function is recognized.
  2. Add a dependency to the npm module gecko-profiler-demangle.
  3. In your JavaScript code:
    import('gecko-profiler-demangle').then(demanglerModule => {
      const mangledNames = [
        '_ZN3art10ArenaStack19AllocWithMemoryToolEjNS_14ArenaAllocKindE',
        'pthread_setspecific', '_ZN3foo3barE', '_ZN3foo17h05af221e174051e9E'
      ];
      const demangledNames = mangledNames.map(n => demanglerModule.demangle_any(n));
      console.log(demangledNames);
      // ['art::ArenaStack::AllocWithMemoryTool(unsigned int, art::ArenaAllocKind)',
      //  'pthread_setspecific', 'foo::bar', 'foo']
    });

Build instructions

To rebuild this npm module from the original Rust code, clone the repo and proceed as follows:

$ cargo +nightly install wasm-pack --force
$ wasm-pack build --out-name index
$ # Now grab the files you need from pkg/ and move them where you want them.

Publishing instructions

To publish a new version of this module on npm, do the following:

  1. Update the version number in Cargo.toml. The same version will be used for the npm package.
  2. Manually edit pkg/package.json to add a "main": "index.js", entry, see this comment for background.
  3. Manually edit pkg/package.json to add an "index_bg.js", entry to the "files" list, see this comment for background.
  4. Run wasm-pack publish.
0.3.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.3

3 years ago

0.2.0

5 years ago

0.1.0

6 years ago