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.

Reply via email to