Extending mdb tab completion: from hackathon to Illumos
One of my hackathon projects was to extend the tab completion support in mdb to include global symbols in addition to the tab completion that already exists for dcmds, walkers etc. For a bit of context, if you start mdb -k on DelphixOS today you have 26367 global symbols to choose from.
The goal was to enable a workflow like this one:
> cpu_c<TAB> cpu_call cpu_configure cpu_core cpu_create_intrstat > cpu_core::pr<TAB> print printf printmmbm
Thanks to the clarity of the mdb codebase as well as help and encouragement from Matt Amdur, who co-authored the original mdb tab completion support, I was able to get from looking at the source for the first time in my life to a running prototype in a couple of hours.
Frankly, it was a blast to use the hackathon as an excuse to dive into unfamiliar territory, build something usable and disseminate it to the community at large.
On March 1 this feature was made available in the development branch of DelphixOS and on March 4 Chris Siden here at Delphix posted it for review at illumos.org.