Mailing List Archive

PEVANS Grant Report January 2024
It will hopefully not come as much of a surprise that I now have a TPRF
grant too for core development work. Part of the requirements for that
is posting monthly reports on progress and time being spent. So here's
what I've been working on during January (plus the end of December that
got missed off the previous report)

My first time writing one of these so hopefully this is sufficient, but
here goes...


Hours:

9 = Updates to the `meta` module, a new CPAN release, adding a ->get
method, adding experimental warnings, ->get_or_add methods
https://metacpan.org/pod/meta
https://github.com/Perl/PPCs/blob/main/ppcs/ppc0022-metaprogramming.md

3 = Initial investigation into implementing PPC0019 "Quoted template
strings"
https://github.com/Perl/PPCs/blob/main/ppcs/ppc0019-qt-string.md

7 = Getting `use VERSION` to import a feature bundle
https://github.com/Perl/perl5/pull/21850

1.5 = Adding builtin::inf and builtin::nan
https://github.com/Perl/perl5/pull/21872

5 = Improvements to PADNAMEf_TOMBSTONE handling
https://github.com/Perl/perl5/pull/21887

3 = Lexical subroutine shadow warnings
https://github.com/Perl/perl5/pull/21915

Total: 28.5 hours.

--
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
Re: PEVANS Grant Report January 2024 [ In reply to ]
Thanks Paul,

I think these are the best so far, but they're done in February:

Recognise a :reader attribute on class fields
https://github.com/Perl/perl5/pull/21927

Permit a space after -M option to take module name from next argv
https://github.com/Perl/perl5/pull/21935

As a user would also like to see the :writer attribute implemented before
5.40 too.

Thanks again for your great work!

On Fri, Feb 9, 2024 at 7:07?PM Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
wrote:

> It will hopefully not come as much of a surprise that I now have a TPRF
> grant too for core development work. Part of the requirements for that
> is posting monthly reports on progress and time being spent. So here's
> what I've been working on during January (plus the end of December that
> got missed off the previous report)
>
> My first time writing one of these so hopefully this is sufficient, but
> here goes...
>
>
> Hours:
>
> 9 = Updates to the `meta` module, a new CPAN release, adding a ->get
> method, adding experimental warnings, ->get_or_add methods
> https://metacpan.org/pod/meta
>
> https://github.com/Perl/PPCs/blob/main/ppcs/ppc0022-metaprogramming.md
>
> 3 = Initial investigation into implementing PPC0019 "Quoted template
> strings"
> https://github.com/Perl/PPCs/blob/main/ppcs/ppc0019-qt-string.md
>
> 7 = Getting `use VERSION` to import a feature bundle
> https://github.com/Perl/perl5/pull/21850
>
> 1.5 = Adding builtin::inf and builtin::nan
> https://github.com/Perl/perl5/pull/21872
>
> 5 = Improvements to PADNAMEf_TOMBSTONE handling
> https://github.com/Perl/perl5/pull/21887
>
> 3 = Lexical subroutine shadow warnings
> https://github.com/Perl/perl5/pull/21915
>
> Total: 28.5 hours.
>
> --
> Paul "LeoNerd" Evans
>
> leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
> http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
>
Re: PEVANS Grant Report January 2024 [ In reply to ]
On Sat, 10 Feb 2024 21:25:13 +0100
Elvin Aslanov <rwp.primary@gmail.com> wrote:

> As a user would also like to see the :writer attribute implemented
> before 5.40 too.

I don't see that happening within the next.. well it'd need to be 5
weeks now.

Reader was easy - just return the field var.

Writers are much harder - Object::Pad has three different kinds -
:writer, :accessor, :lvalue. It also has the :weaken attribute to say
if the field value needs to be weaken()'ed after modification. Then
there's various thoughts of how it might overlap with a value assertion
check system.

In summary: Way too many questions and complexities to get in that time.

--
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
Re: PEVANS Grant Report January 2024 [ In reply to ]
On Fri, Feb 9, 2024 at 1:07?PM Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
wrote:

>
> My first time writing one of these so hopefully this is sufficient, but
> here goes...
>

This is great, thanks!


> Total: 28.5 hours.
>

+1 from me.

-- Matthew Horsfall (alh)
Re: PEVANS Grant Report January 2024 [ In reply to ]
On Sun, Feb 11, 2024 at 11:04?AM Paul "LeoNerd" Evans <
leonerd@leonerd.org.uk> wrote:


> Reader was easy - just return the field var.
>
> Writers are much harder - Object::Pad has three different kinds -
> :writer, :accessor, :lvalue. It also has the :weaken attribute to say
> if the field value needs to be weaken()'ed after modification. Then
> there's various thoughts of how it might overlap with a value assertion
> check system.


This could be simplified by only implementing :writer. While :accessor and
:mutator (:lvalue) made it into the MMVP because I copied them from your
first write-up, neither of them are in the full Corinna spec. :accessor
violates the reason we want separate readers and writers and :lvalue has
complications which we've discussed before. However, :writer was agreed
upon by the design team, along with clear behavior, in section 6.2.3.3.
https://github.com/Perl-Apollo/Corinna/blob/master/rfc/attributes.md#6233-writeroptional_identifier


:weaken (called :weak in the MMVP) was also not in the full spec since it
was another hard problem we decided to punt on.

By constraining the problem space, this should be easier/quicker to push
forward, unless I'm misunderstanding something.

The only caveat is I realize the team never came to an agreement about what
the :writer would return. Some insist upon the invocant (chaining mutators)
while others want void. Returning a true value or previous value were
minority opinions.

Best,
Ovid
Re: PEVANS Grant Report January 2024 [ In reply to ]
Thanks for the details, chaining (invocant-return) would be the best idea
among the return values, I think

pon, 12. feb 2024. 17:45 Ovid <curtis.poe@gmail.com> je napisao/la:

> On Sun, Feb 11, 2024 at 11:04?AM Paul "LeoNerd" Evans <
> leonerd@leonerd.org.uk> wrote:
>
>
>> Reader was easy - just return the field var.
>>
>> Writers are much harder - Object::Pad has three different kinds -
>> :writer, :accessor, :lvalue. It also has the :weaken attribute to say
>> if the field value needs to be weaken()'ed after modification. Then
>> there's various thoughts of how it might overlap with a value assertion
>> check system.
>
>
> This could be simplified by only implementing :writer. While :accessor and
> :mutator (:lvalue) made it into the MMVP because I copied them from your
> first write-up, neither of them are in the full Corinna spec. :accessor
> violates the reason we want separate readers and writers and :lvalue has
> complications which we've discussed before. However, :writer was agreed
> upon by the design team, along with clear behavior, in section 6.2.3.3.
> https://github.com/Perl-Apollo/Corinna/blob/master/rfc/attributes.md#6233-writeroptional_identifier
>
>
> :weaken (called :weak in the MMVP) was also not in the full spec since it
> was another hard problem we decided to punt on.
>
> By constraining the problem space, this should be easier/quicker to push
> forward, unless I'm misunderstanding something.
>
> The only caveat is I realize the team never came to an agreement about
> what the :writer would return. Some insist upon the invocant (chaining
> mutators) while others want void. Returning a true value or previous value
> were minority opinions.
>
> Best,
> Ovid
>