Skip to content

Conversation

@mkoeppe
Copy link
Collaborator

@mkoeppe mkoeppe commented Jul 5, 2025

No description provided.

@mkoeppe mkoeppe changed the title .github/workflows/dist.yml: Build musllinux and windows wheels .github/workflows/dist.yml: Build Windows wheels Jul 16, 2025
@mkoeppe
Copy link
Collaborator Author

mkoeppe commented Jul 16, 2025

@w-bruns Still not ready. Having trouble with the nauty and e-antic installation on Windows - https://github.com/Normaliz/PyNormaliz/actions/runs/16326960875/job/46119524324?pr=120

@w-bruns
Copy link
Collaborator

w-bruns commented Jul 17, 2025

Normaliz has been compiled under MS Windows/MSYS/MinGW64, but so far I could only get a static version. I am not sure at this moment whether the shared versions of the optional libraries are provided. The versions of CoCoALIb and nauty I have used do not produce shared libraries anyway.

The compilation of normaliz.exe uses Makefile.classic. Please have a look at INSTALL for more information (don't mind the obvious typos).

It would of course be good to have a complete equivalent of the Linux/MacOS versions.

@mkoeppe
Copy link
Collaborator Author

mkoeppe commented Dec 5, 2025

   [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp: In member function 'eantic::renf_elem_class& eantic::renf_elem_class::iaddmul(const eantic::renf_elem_class&, long int)':
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1389:55: error: no matching function for call to 'ternop_primitive<long int, renf_elem_addmul_si>(eantic::renf_elem_class&, const eantic::renf_elem_class&, long int&)'
    [e_antic-2.1.0]   [spkg-install]  1389 |     return ternop_primitive<long, renf_elem_addmul_si>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1389:55: note: there is 1 candidate
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: candidate 1: 'template<class Integer, void (* op)(renf_elem*, const renf_elem*, Integer, const renf*)> eantic::renf_elem_class& eantic::{anonymous}::ternop_primitive(eantic::renf_elem_class&, const eantic::renf_elem_class&, Integer)'
    [e_antic-2.1.0]   [spkg-install]   205 | renf_elem_class& ternop_primitive(renf_elem_class& lhs, const renf_elem_class& a, const Integer b) {
    [e_antic-2.1.0]   [spkg-install]       |                  ^~~~~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: template argument deduction/substitution failed:
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1389:55: error: could not convert template argument 'renf_elem_addmul_si' from 'void(renf_elem*, const renf_elem*, slong, const renf*)' {aka 'void(renf_elem*, const renf_elem*, long long int, const renf*)'} to 'void (*)(renf_elem*, const renf_elem*, long int, const renf*)'
    [e_antic-2.1.0]   [spkg-install]  1389 |     return ternop_primitive<long, renf_elem_addmul_si>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp: In member function 'eantic::renf_elem_class& eantic::renf_elem_class::isubmul(const eantic::renf_elem_class&, long int)':
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1394:55: error: no matching function for call to 'ternop_primitive<long int, renf_elem_submul_si>(eantic::renf_elem_class&, const eantic::renf_elem_class&, long int&)'
    [e_antic-2.1.0]   [spkg-install]  1394 |     return ternop_primitive<long, renf_elem_submul_si>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1394:55: note: there is 1 candidate
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: candidate 1: 'template<class Integer, void (* op)(renf_elem*, const renf_elem*, Integer, const renf*)> eantic::renf_elem_class& eantic::{anonymous}::ternop_primitive(eantic::renf_elem_class&, const eantic::renf_elem_class&, Integer)'
    [e_antic-2.1.0]   [spkg-install]   205 | renf_elem_class& ternop_primitive(renf_elem_class& lhs, const renf_elem_class& a, const Integer b) {
    [e_antic-2.1.0]   [spkg-install]       |                  ^~~~~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: template argument deduction/substitution failed:
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1394:55: error: could not convert template argument 'renf_elem_submul_si' from 'void(renf_elem*, const renf_elem*, slong, const renf*)' {aka 'void(renf_elem*, const renf_elem*, long long int, const renf*)'} to 'void (*)(renf_elem*, const renf_elem*, long int, const renf*)'
    [e_antic-2.1.0]   [spkg-install]  1394 |     return ternop_primitive<long, renf_elem_submul_si>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp: In member function 'eantic::renf_elem_class& eantic::renf_elem_class::iaddmul(const eantic::renf_elem_class&, long unsigned int)':
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1435:64: error: no matching function for call to 'ternop_primitive<long unsigned int, renf_elem_addmul_ui>(eantic::renf_elem_class&, const eantic::renf_elem_class&, long unsigned int&)'
    [e_antic-2.1.0]   [spkg-install]  1435 |     return ternop_primitive<unsigned long, renf_elem_addmul_ui>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1435:64: note: there is 1 candidate
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: candidate 1: 'template<class Integer, void (* op)(renf_elem*, const renf_elem*, Integer, const renf*)> eantic::renf_elem_class& eantic::{anonymous}::ternop_primitive(eantic::renf_elem_class&, const eantic::renf_elem_class&, Integer)'
    [e_antic-2.1.0]   [spkg-install]   205 | renf_elem_class& ternop_primitive(renf_elem_class& lhs, const renf_elem_class& a, const Integer b) {
    [e_antic-2.1.0]   [spkg-install]       |                  ^~~~~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: template argument deduction/substitution failed:
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1435:64: error: could not convert template argument 'renf_elem_addmul_ui' from 'void(renf_elem*, const renf_elem*, ulong, const renf*)' {aka 'void(renf_elem*, const renf_elem*, long long unsigned int, const renf*)'} to 'void (*)(renf_elem*, const renf_elem*, long unsigned int, const renf*)'
    [e_antic-2.1.0]   [spkg-install]  1435 |     return ternop_primitive<unsigned long, renf_elem_addmul_ui>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp: In member function 'eantic::renf_elem_class& eantic::renf_elem_class::isubmul(const eantic::renf_elem_class&, long unsigned int)':
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1440:64: error: no matching function for call to 'ternop_primitive<long unsigned int, renf_elem_submul_ui>(eantic::renf_elem_class&, const eantic::renf_elem_class&, long unsigned int&)'
    [e_antic-2.1.0]   [spkg-install]  1440 |     return ternop_primitive<unsigned long, renf_elem_submul_ui>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1440:64: note: there is 1 candidate
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: candidate 1: 'template<class Integer, void (* op)(renf_elem*, const renf_elem*, Integer, const renf*)> eantic::renf_elem_class& eantic::{anonymous}::ternop_primitive(eantic::renf_elem_class&, const eantic::renf_elem_class&, Integer)'
    [e_antic-2.1.0]   [spkg-install]   205 | renf_elem_class& ternop_primitive(renf_elem_class& lhs, const renf_elem_class& a, const Integer b) {
    [e_antic-2.1.0]   [spkg-install]       |                  ^~~~~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:205:18: note: template argument deduction/substitution failed:
    [e_antic-2.1.0]   [spkg-install] renf_elem_class.cpp:1440:64: error: could not convert template argument 'renf_elem_submul_ui' from 'void(renf_elem*, const renf_elem*, ulong, const renf*)' {aka 'void(renf_elem*, const renf_elem*, long long unsigned int, const renf*)'} to 'void (*)(renf_elem*, const renf_elem*, long unsigned int, const renf*)'
    [e_antic-2.1.0]   [spkg-install]  1440 |     return ternop_primitive<unsigned long, renf_elem_submul_ui>(*this, a, b);
    [e_antic-2.1.0]   [spkg-install]       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
    [e_antic-2.1.0]   [spkg-install] make[5]: *** [Makefile:495: renf_elem_class.lo] Error 1

@w-bruns
Copy link
Collaborator

w-bruns commented Dec 5, 2025

The problem is that slong expands to long long int while long int and long long int are not identical on MS Windows. We have seen something similar in flatsurf/e-antic#292.

It is however unclear to me why I can compile e-antic by MSYS/MinGW at all.

Should mkoeppe add an issue to github.com/flatsurf/e-antic/ ?

@w-bruns
Copy link
Collaborator

w-bruns commented Dec 8, 2025

See

flatsurf/e-antic#298

for my explanation. I am not sure what Flint version is used for the wheels, but Flint 3.0.1 should solve the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants