On Thu, Jan 04, 2024 at 05:41:34PM +0000, Paul "LeoNerd" Evans wrote:
>
> The question becomes: What should that warning category be? Two
> obvious thoughts come to mind:
>
> * It could be `meta::experimental`, as its own module:
>
> use meta; no warnings 'meta::experimental';
This has the benefit of being below the "meta" namespace. Everything
is obvious.
> * It could borrow an area of core and be `experimental::meta`
>
> use meta; no warnings 'experimental::meta';
The "experimental::" namespace seems to be mostly used by experimental
features so far.
> In this latter idea, it would casually lead users to think that they
> could combine the whole lot by perhaps doing
>
> use experimental 'meta';
The current use-case for a `use experimental` line (e.g. `use
experimental 'signatures'`) is that it will be removed once the feature
is not experimental anymore in the declared bundle.
A piece of code using an experimental feature will evolve as such:
use v5.34;
use feature 'signatures';
no warnings 'experimental::signatures';
Which can be shortened to:
use v5.34;
use experimental 'signatures';
Once signatures are not experimental, it shrinks down to:
use v5.36;
So the `use experimental` line is meant to disappear eventually.
The `meta` modules is meant to be always be loaded explicitely, and is
not a feature. With an implicit `use meta`, once the experimental
warnings are dropped, one would have to replace `use experimental
'meta';` with `use meta;`. Doesn't look like much gain.
The evolution of your last proposal would look something like:
use v5.40;
use experimental 'meta';
becoming, once not experimental any more:
use v5.42;
use meta;
As opposed to:
use v5.40;
use meta;
no warnings 'meta::experimental';
becoming:
use v5.42;
use meta;
> Likely the first idea is best.
I agree with you.
--
Philippe Bruhat (BooK)
Treat those you outrank well... you never know when they will outrank you.
(Moral from Groo #7 (Image))