I know that argument too well. A very similar discussion was held about if and where AllocVec() stores the size of an allocation. Some very clever people are really convinced that the size must always be stored in a ULONG before the returned address. This was never documented and the fact that it was done that way upto OS3.9 made some programs crash when OS4 beta introduced its new memory system. This system doesn't need to store such a size at all, and hence all assumptions were bogus.
Well, I guess this is why MorphOS has better compatibility than OS4.
In MorphOS we don't break compatibility (even undocumented!) unless if it's absolutely needed. AllocVec stores the size as ULONG before the actual allocation, dos.library MatchPattern[NoCase] return value was not changed just because of "cleanup" and so on.
Just because MorphOS has a new highly optimized memory system, it doesn't break such undocumented things.
Ok, you might try to tell me to keep up this behaviour even with the new system. But why?
OK, supporting "undocumented" return values or features might seem silly, but IMO if supporting them is much more sensible than breaking them for no good reason. All these supported undocumented features add up to much greater software compatibility.
What I want to say is: NEVER rely on undocumented features.
I agree. But unfortunately this doesn't help with already existing applications that rely on these undocumented features (there are tons of apps that you can't fix/recompile). Thus, to get the best possible experience out of your OS, you need to support these things.
Sure, you're free to disagree, but this is what I think and try to maintain in my MorphOS work.
But what about making this mp_Signal=3 thing official?
Well, do what you like, I consider it official already.