<div dir="ltr">Attached is a first cut of something I've wanted for a while: the ability to capture method changes as they occur with the ability to prevent them from happening if needed at a global level.  Basically it's just paired methods of #isOkTo[Compile|Remove]:meta: and #note[Compilation|Removal]Of:meta:.<div><br></div><div>It's always bothered me how central the method  structure is yet completely useless from the standpoint of having extensible metadata... if I'm wrong re: extensibility, please let me know what I've overlooked.  So barring that, these changes allow for things like helping to keep a separate metadata structure in sync with method changes.  The main requirement is to be able to track method adds, changes and deletes to the image globally.  Not sure, but I was thinking that this facility might also be useful for refactoring tools.<br><div><br></div><div>One issue / odd thing I noticed: the removal methods only get called instance-side due to ClassDescription #removeSelector: only getting called on instance methods and you have to jump up to the Behavior implementor for class methods.  That seems strange to me since method compilation all appears to occur at the level of ClassDescription.  Is there a reason removals need to be different from compilation in this way?  (Not knowing the answer, I haven't fixed this issue in the attached changeset)</div></div></div>