Perl 5.44.0

Discussions on installation issues go here.
jamesjer
Posts: 36
Joined: 01 Mar 2012, 16:51

Perl 5.44.0

Postby jamesjer » 06 Sep 2026, 17:19

Fedora Rawhide updated perl to version 5.44.0 in late July, breaking the polymake build. I finally had time this weekend to look into it. Polymake uses the SVf_IVisUV flag to mark an SV that is a keyword. With perl 5.44.0 that no longer works; even though gdb shows that the string contents are present, an SV with that flag set is treated as the empty string at the perl level. I could find no other bit in an SV that could be used for this purpose. I took a different approach instead. RefHash.xxs creates an HV, used as a simple set, to store SVs that are keywords. The patch can be seen here: https://src.fedoraproject.org/rpms/poly ... 5.44.patch. It's a bit ugly, but it works. I just noticed that the patch is not quite right for perl < 5.44.0. It looks like I couldn't make up my mind about whether is_keyword_constant should accept pTHX_ for all perl versions or only for 5.44.0 and greater. I'll fix the patch the next time I have to touch Fedora's polymake package. Anyway, posting here so that other polymake package maintainers have a solution if your distributions also move to perl 5.44.0. Perhaps someone more knowledgeable than me about perl internals can come up with a better approach.

User avatar
gawrilow
Main Author
Posts: 434
Joined: 25 Dec 2010, 17:40

Re: Perl 5.44.0

Postby gawrilow » 06 Sep 2026, 23:31

Oh, this endless battle against perl refactoring... The notion of being a keyword or not is not based on the string contents but rather on the fact of how it was created in the user's code. We'll have to attach a dedicated copyable MAGIC to these constant strings instead. However, frankly speaking, I don't see realistic chances to get this fix into the master branch soon.


Return to “Installing polymake”