Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add known bugs in class feature to perlclass.pod #22247

Merged
merged 1 commit into from
Jun 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions pod/perlclass.pod
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,38 @@ including an ability for them to provide new class or field attributes.

=back

=head1 KNOWN BUGS

The following bugs have been found in the experimental C<class> feature:

=over 4

=item *

Since Perl v5.38, inheriting from a parent class which is declared in the same
file and which hadn't already been sealed can cause a segmentation fault.
[L<GH #20890|https://github.com/Perl/perl5/issues/20890>]

=item *

Since Perl v5.38 and with the experimental C<refaliasing> feature, trying to
replace a field variable causes a segmentation fault.
[L<GH #20947|https://github.com/Perl/perl5/issues/20947>]

=item *

Since Perl v5.38, it's possible to craft a class with leaky encapsulation,
which can cause a segmentation fault.
[L<GH #20956|https://github.com/Perl/perl5/issues/20956>]

=item *

In Perl v5.38, inheriting from a class would not always attempt to load the
johannessen marked this conversation as resolved.
Show resolved Hide resolved
parent class (fixed in Perl v5.40).
[L<GH #21332|https://github.com/Perl/perl5/issues/21332>]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is fixed, why are we listing it here?

Copy link
Contributor Author

@johannessen johannessen May 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s been frustrating trying to write code that uses the ongoing class experiment because bugs like this prevent some code from working properly on certain versions of perl. So this information can help to make the evaluation of the experiment a bit easier.

Another reason would be completeness: We forgot to mention several of these issues in the v5.38 release entirely. Now that the list of known bugs is added, it might not hurt to mention the fixed one as well.

There also seems to be precedent for this in the one of the documents I mentioned earlier, perlebcdic. Seeing that is, in fact, what gave me the idea.


=back

=head1 AUTHORS

Paul Evans
Expand Down
10 changes: 10 additions & 0 deletions pod/perldelta.pod
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,16 @@ functions, C<newANONLIST()>, C<newANONHASH()>, C<newSVREF()> and similar.

=back

=head3 L<perlclass>

=over 4

=item *

Added a list of known bugs in the experimental C<class> feature.

=back

=head3 L<perlfunc>

=over 4
Expand Down
Loading