[Cuis-dev] Expanding on #noteCompilationOf:meta:

Phil B pbpublist at gmail.com
Sat Jan 18 15:07:49 PST 2020


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:.

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.

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)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20200118/fcc39e71/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 4026-tracking-method-changes-globally-PhilBellalouna-2020Jan18-15h27m-pb.1.cs.st
Type: application/octet-stream
Size: 3355 bytes
Desc: not available
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20200118/fcc39e71/attachment.obj>


More information about the Cuis-dev mailing list