On Thu, 12 Mar 2009, IOhannes m zmoelnig wrote:
however, my experiences with abcde were the main reason i s did not touch self-modifying patches for years and years. the lesson i learned was: never do self-modification in patches that other people will ever have to regularily use. (the original phrase would have been "never do self-modification in patches that other people will ever have to maintain"; however, this might give the impression that chances are low that somebody else will really have to "maintain" a patch); in practice you pass maintainership to somebody as soon as you give them your patch: they will eventually start to modify it.
Because self-modifying patches are more tricky and complicated than most other things, it's especially important to aggressively abstract them. If you can, you abstract them in a way that each self-modifying abstraction represents an elementary pattern that no-one will want to modify, because it's too basic and fundamental, and so there's nothing that one could possibly want to customise about them. Therefore all the aspects that make sense to customise will be in abstractions that themselves are not self-modifying, because they use elementary self-modifying abstractions instead.
But that's not always easy to do or feasible.
This concept can also be useful with lots more things than just self-modifying patches, but it's with self-modifying patches that there is the most payoff.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec