regina-normal / regina

The main source code for Regina
Other
33 stars 14 forks source link

Sage installation failed #38

Open videlec opened 7 years ago

videlec commented 7 years ago

Following the instructions at http://sageregina.unhyperbolic.org/ I failed to install Regina. My Sage is in version 8.1.beta9 on a recent archlinux (gcc 7.2.0). The command used is

$ sage -pip install sageRegina

The log is regina.log.gz.

WPettersson commented 6 years ago

@unhyperbolic I'm guessing this is something you can look into?

baburton commented 6 years ago

Hi - having not even looked at the error yet (sorry), I’m guessing it’s a gcc7 incompatibility which is fixed in master and will appear in the next release. Need to check this though.

--

Prof. Benjamin Burton Computational Geometry & Topology Group School of Mathematics and Physics The University of Queensland, Australia

On 17 Nov 2017, at 6:35 pm, William Pettersson notifications@github.com wrote:

@unhyperbolic I'm guessing this is something you can look into?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

videlec commented 6 years ago

Do you have instructions somewhere to build from sources?

unhyperbolic commented 6 years ago

The relevant errors are below. It appears that that a #include functional is missing. Can that be? My only other explanation is that with the new version of sage, sageRegina's install script is no longer passing some compiler flags to gcc.

videlec: You can download sageRegina at https://pypi.python.org/pypi/sageRegina/5.1-1, unpack it and call "sage -python setup.py build" and "sage -python setup.py install" to build from src.

regina_4c65424/engine/triangulation/dim3/triangulation3.h: Au niveau global:
regina_4c65424/engine/triangulation/dim3/triangulation3.h:2819:24: error: « function » dans l'espace de noms « std » ne nomme pas un type de patron
             const std::function<bool(Triangulation<3>&)>& action) const;
                        ^~~~~~~~
regina_4c65424/engine/triangulation/dim3/triangulation3.h:2819:32: error: expected « , » or « ... » before « < » token
             const std::function<bool(Triangulation<3>&)>& action) const;
                                ^
In file included from regina_4c65424/engine/triangulation/dim3.h:45:0,
                 from regina_4c65424/engine/triangulation/xmltrireader3.cpp:34:
regina_4c65424/engine/triangulation/dim3/triangulation3.h: Dans la fonction membre « bool regina::Triangulation<3>::retriangulate(int, unsigned int, regina::ProgressTrackerOpen*, Action&&, Args&& ...) const »:
regina_4c65424/engine/triangulation/dim3/triangulation3.h:2989:14: error: « bind » n'est pas un membre de « std »
         std::bind(action, std::placeholders::_1, args...));
              ^~~~
regina_4c65424/engine/triangulation/dim3/triangulation3.h:2989:14: note: alternatives suggérées: « find »
         std::bind(action, std::placeholders::_1, args...));
              ^~~~
              find
regina_4c65424/engine/triangulation/dim3/triangulation3.h:2989:32: error: « std::placeholders » n'a pas été déclaré
         std::bind(action, std::placeholders::_1, args...));
WPettersson commented 6 years ago

Yup, that's the GCC7 issue. If you add

#include <functional>

to engine/triangulation/dim3/triangulation3.h that should fix it. Commit 9bab3c9c86fdc426fff0a94ecffea612fe9817df is the fix in master.

unhyperbolic commented 6 years ago

videlec: I just created a new sageRegina package that should include the fix. You can try it out like this:

sage -pip install http://sageRegina.unhyperbolic.org/sageRegina-5.1_2d18496.tar.gz --log reginaInstall.log

videlec commented 6 years ago

Successfully installed sageRegina-5.1-2d18496. Thanks.

unhyperbolic commented 6 years ago

Sage 8.1 is officially out, so sageRegina won't compile with the latest official Sage anymore. When will the next regina release be?

If it is really soon, I will just wait to do the next sageRegina release when regina is released. It it is soon, I will release the file from the previous comment as pre-release sageRegina-5.2a0. It it will take a while, I will patch regina 5.1 to just include the missing header and release as sageRegina-5.1-2.

baburton commented 6 years ago

Sage 8.1 is officially out, so sageRegina won't compile with the latest official Sage anymore. When will the next regina release be?

Optimistically: December (this month).

Realistically: probably January (next month).