1
$\begingroup$

So we know from here what the *Dump contexts signify and here Rojo found a very useful goody that involves them:

In[320]:= StyleManager`OpenStyleManager // OwnValues

Out[320]= {HoldPattern[StyleManager`OpenStyleManager] :> 
  System`Dump`AutoLoad[Hold[StyleManager`OpenStyleManager], 
    Hold[StyleManager`OpenStyleManager], 
    "NotebookTools`Stylesheets`"] /; System`Dump`TestLoad}

Note that this adds another auto-loading mechanism to the ones here. Although a more restricted one.

What is interesting about this though is the context it loads: NotebookTools`StylesheetsDump` which contains a whole slew of fun symbols. Similarly there is a NotebookTools`ControlsDump` context we can play with.

We can figure out which Dumps can be loaded via this mechanism:

Cases[
   ToExpression[Names["*`*"], StandardForm, 
    OwnValues], {_ :> 
      Verbatim[Condition][System`Dump`AutoLoad[__, s_], ___]} :> s
   ] // DeleteDuplicates // Sort
(* The output is 1016 contexts long *)

But that's an overwhelming amount of stuff to try to trawl through to pull out gems like Rojo's.

All of this is build up to wondering if anyone else has a good way to find gems in these Dump contexts. I'm sure there's useful functionality buried in there, but I just don't know how to find it (i.e. every day using Mathematica).

| improve this question | | | | |
$\endgroup$