Announcing twiggy 0.3.0


#1

Announcing twiggy 0.3.0

twiggy is a code size profiler for .wasm binaries.

Upgrade to this release by reinstalling with cargo:

cargo install -f twiggy

Changelog

0.3.0

Released 2018/10/03.

  • Twiggy has a users guide now! #170

  • Added experimental, work-in-progress support for ELF and Mach-O binaries when
    they have DWARF debug info. #74

  • All subcommands default to displaying a maximum of 10 items at a time
    now. Additionally, they show a summary of the size and count of all the items
    that are not displayed. #94 #98 #103 #113

  • Added the -a/--all flag to twiggy garbage to display all garbage items
    without any max limit. #118

  • Added the -a/--all, --all-generics, and --all-monos flags to twiggy monos to list all generic functions, all monomorphizations of generic
    functions, and all of both generics and their monomorphizations. #120

  • Added support for using regexes to find the difference in particular function
    sizes with twiggy diff --regex. #129

  • Fixed a bug where wasm table elements referencing imported functions would
    cause integer underflow. #151

  • Consider wasm tables roots in the graph, and make edges table -> element,
    rather than element -> table. The latter is because a table logically owns its
    elements, not the other way around. The former is because dynamic virtual
    calls are not statically analyzable, so we have to consider all virtual
    functions (aka function table elements) as psuedo-roots in the graph. These
    two changes allow us to see when the table is heavy in the dominator tree
    because a bunch of dynamic indirect calls that may or may not be possible at
    run time are entrained in the function table because the compiler/linker
    couldn’t statically prove that they won’t happen. #153

Friends

Thanks to everyone who contributed to this release!

  • Aleksey Kladov
  • data-pup
  • Nick Fitzgerald
  • Stefan Zimmermann

Contributing

Want to join us? Check out the Contributing section of the
guide
and take a look at some of these issues: