On Tue, Apr 12, 2005 at 10:31:51AM -0400, Stas Bekman wrote: > I'd be in favor of a solution which can be made available to users > immediately, i.e. not in 5.10. mod_perl 2 will be released any moment now
For the change to be integrated into maint, it would have to avoid breaking backwards compatibility, which restricts the options to > 1) add a positive voice class method: SHOULD_CLONE (or whatever wording) > and do cloning unless SHOULD_CLONE exists and returns false: > > + intuitive for the end users > - since by default perl does cloning, when not having SHOULD_CLONE > defined it'll still clone it's a bit confusing in the > implementation logic. > > 2) add a negative voice class method: CLONE_ME_NOT (or whatever wording) > and do cloning unless CLONE_ME_NOT exists and returns true: > > + makes the perl-core implementation logic better > - might be confusing for users (as they will have to deal with > the reversed logic) I guess I'm coming round the idea of (2). How about CLONE_SKIP() as a name? And how about we insist people either return a false value or the numeric value 1 (rather than any arbitrary true value) to allow for future expansion (eg returning multiple flags). I'm assuming that the calling of CLONE_SKIP() for each class or subclass will do inheritance and AUTLOADing, just like CLONE() currently does. This will in fact cause a minor backwards compatibility problem, since modules' AUTOLOAD functions will now be called with an unexpected new name. -- Justice is when you get what you deserve. Law is when you get what you pay for.