i agree, this overlap is a problem. and i agree that there&#x27;s a not-obviously-wrong argument to be made that ignoring SPMs is the wrong approach. to this end, someone pointed me to rubinius&#x27; wiki yesterday, which had a nice breakdown of the PM hierarchy: <a href="https:&#x2F;&#x2F;github.com&#x2F;rubinius&#x2F;mkrb&#x2F;blob&#x2F;master&#x2F;README.md#the-manager-hierarchy" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rubinius&#x2F;mkrb&#x2F;blob&#x2F;master&#x2F;README.md#the-m...</a><p>OTOH: part of the reason that i included the notion of &quot;compiler, phase zero&quot; is because i think that&#x27;s one thing that, scope-wise, differentiates SPMs from PDMs. an SPM&#x27;s output <i>is</i> executables. i think this difference is significant. maybe i&#x27;m wrong.<p>(If anything, I think there&#x27;s more overlap between an SPM and an LPM).