Page 1 of 1

Perl 5.22

Posted: 02 Jul 2015, 04:39
by jamesjer
Fedora Rawhide recently moved to perl 5.22, and the polymake build is now broken. To complicate matters, we are currently stuck on Singular 3.x, since sagemath has not yet made the switch to Singular 4.x, so I cannot build polymake 2.14, but am instead stuck on the last 2.13 beta. I hope we can do something about this soon, but for the moment I need to figure out how to build that last beta with perl 5.22. I've come up with the attached patch. I suspect that the definition of SetPadnamesOfCurrentSub is wrong, but I'm not sure how. Certainly something is wrong, as attempting to build the documentation fails like this:
/usr/bin/perl perl/polymake --ignore-config --script generate_docs /builddir/build/BUILDROOT/polymake-2.13-24.git20141013.fc23.x86_64/usr/share/polymake/doc common fulton polytope group graph ideal fan tropical matroid topaz
reference to an undeclared variable $VERSION at /usr/lib64/perl5/re.pm line 7.
Compilation failed in require at /builddir/build/BUILD/polymake-polymake-10d8dab/perllib/Polymake/utils.pl line 287.
BEGIN failed--compilation aborted at /builddir/build/BUILD/polymake-polymake-10d8dab/perllib/Polymake/utils.pl line 287.
Compilation failed in require at /builddir/build/BUILD/polymake-polymake-10d8dab/perllib/Polymake.pm line 62.
Compilation failed in require at perl/polymake line 168.
BEGIN failed--compilation aborted at perl/polymake line 168.
Makefile:179: recipe for target 'release-docs' failed
Any hints about how to fix the build with perl 5.22 would be most gratefully accepted. Thank you.

Re: Perl 5.22

Posted: 04 Jul 2015, 11:24
by gawrilow
Adapting polymake to new perl versions has always been a special adventure, we've got to do it now again.
Surely your patch is a valuable contribution to start with, thanks a lot for posting it! But probably there is more to fix. We have a special testsuite for perl migrations, it will show us how much is missing. Keep tuned!

Re: Perl 5.22

Posted: 06 Jul 2015, 00:06
by gawrilow
An update:

The changes introduced with perl 5.22 are too serious to be fixed with a small patch. In particular, they have introduced a new kind of optimization of the translated script representation (op tree) which is not compatible with extensions needed by polymake. I'm afraid, it could turn out as necessary to rework some substantial portions of polymake core functions. Currently I can't promise a soon remedy. I'll try my best, however.

Re: Perl 5.22

Posted: 06 Jul 2015, 03:49
by jamesjer
Well, that sounds painful. Thanks for looking into the matter. I wish you luck in adapting to the new perl op tree code. While you are working on that, I will try to do something about the Singular situation in Fedora.

Re: Perl 5.22

Posted: 15 Jul 2015, 23:46
by gawrilow
A heads-up: code adaptations for perl 5.22 have passed the mass tests, a new snapshot is being prepared for publishing at GitHub.

Note: the new code will be a 2.15-beta version, we haven't tried to back-port the adaptations to older versions (actually, we've hardly ever done this because of permanent acute shortage of human resources). If you are definitely and inescapably bound to polymake 2.13 for a while, you might try to apply the diff of lib/core/{src,include}/perl/* between the current snapshot and the upcoming one to your code base, but please be aware that the difference between 2.13 and current code base is quite significant; the patched code may fail unpredictably.

Re: Perl 5.22

Posted: 16 Jul 2015, 10:16
by assarf
the snapshot is live since yesterday