Initial PRs for Magic v2 and Attributes v2

[email protected] ("Paul \"LeoNerd\" Evans")
Newsgroups perl.perl5.porters
Message-ID <[email protected]>
I have two big PRs currently outstanding, awaiting some comments and
approvals before I press the big green button. They each do different
things, but they're both in a similar category, in that they are both
the initial "phase 1" part of what I'm aiming to be some larger changes
eventually. I'm not sure that either of these projects will achieve a
state of actually getting new things in time for 5.44's release, but
both of these PRs are internal shuffles and changes to get to the point
of having a better base to build those new things up from, so I'd like
to get those initial "phase 1" changes in by then.

  Magic v2      = https://github.com/Perl/perl5/pull/24163

  Attributes v2 = https://github.com/Perl/perl5/pull/24171

I mention both PRs at the same time because each is aiming towards
providing features that go along with the other. "Magic v2" is all
about being able to have more kinds of magic trigger functions that
happen at different times on the lifetime of the thing they are
attached to, and also being able to attach magic to more kinds of thing
anyway. "Attributes v2" is about being able to have modules provide new
attributes in a better, more independent, and lexically scoped way that
interrupts the parser a lot earlier. The main way to get a new
attribute to provide interesting behaviour would be to use magic for
it; and the main way modules would make use of these new magic
abilities would be to attach them via attributes. It makes most sense
to consider each in combination with the other.

As I said, I would like to be able to merge both of these in time for
5.44's release; which basically means getting them in definitely in
time for March's "user-visible changes freeze" and ideally one point
release before that, being this Feb 20th "contentious changes freeze".

I believe this should be relative safe, because neither PR should
introduce any user-visible changes, besides perhaps differently worded
error messages in the case of invalid code or behaviours. For correct
programs, all should remain exactly as it was.

It would be great therefore if we could get a few more sets of eyes to
look at these two and provide any feedback. As ever, a reminder that
you don't *have* to go digging in the weeds of the code if you don't
want to - there's still documentation and test additions as well
(especially so in the Magic one) for the overall idea and direction. In
particular with Magic v2 I still have a couple of questions about the
interface design, and how to write the documentation for it, that could
do with input from folks.

One particular area that I know would be useful would be anyone who has
ideas on more things to test; adding more tests is always good. So
often lately I have a history of creating new things whose first few
releases have some big bug or other because it didn't occur to me to
test some particular combination of things that someone else tried out.
This is one big area where having more eyes looking at it and more
brains thinking of ways to torture it can be very handy indeed.

-- 
Paul "LeoNerd" Evans

[email protected]
http://www.leonerd.org.uk/  |  https://metacpan.org/author/PEVANS
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.