Flint2 Builds on Windows x64

66 views
Skip to first unread message

riem...@gmail.com

unread,
Jun 11, 2023, 9:50:22 AM6/11/23
to flint-devel
The ability to build FLINT2 on Windows is still fully documented but is now out of date because F LINT2 now includes ARB and also a new FFT that depends upon inline assembler instructions that are specific to GCC and are not supported on the normally used Microsoft Windows compiler (I am uncertain at the moment about the Windows versions of the clang or Intel compilers). 

I have been supporting the Windows build since FLINT2 was born but the recent changes will require significant work on my part if the Windows build is to be maintained.  

I have been attempting to discuss this with Fredrik via email but for some reason I have not been able to obtain a response.  I am hence raising the issue here to discover whether it makes sense to put in the work needed to update the  windows FLINT2 build to cope with these recent changes. 

peter_f...@gmx.de

unread,
Jun 11, 2023, 5:15:12 PM6/11/23
to flint...@googlegroups.com
Hello,

do you ask whether Windows support is worth the effort? I am very much in favor of ongoing Windows (MSVC) support for x86 and x64 (and maybe Arm in the future). I would like to upgrade my hobby project (https://github.com/peter-frentrup/pMath) to FLINT2.
If that is not feasible, I could also live with a MSVC-compatible DLL build made with gcc/mingw. Static builds are currently not relevant for me.

Just my two cents,
Peter


Von: flint...@googlegroups.com <flint...@googlegroups.com> im Auftrag von riem...@gmailcom <riem...@gmail.com>
Gesendet: Sonntag, Juni 11, 2023 3:50:27 nachm.
An: flint-devel <flint...@googlegroups.com>
Betreff: Flint2 Builds on Windows x64

The ability to build FLINT2 on Windows is still fully documented but is now out of date because F LINT2 now includes ARB and also a new FFT that depends upon inline assembler instructions that are specific to GCC and are not supported on the normally used Microsoft Windows compiler (I am uncertain at the moment about the Windows versions of the clang or Intel compilers). 

I have been supporting the Windows build since FLINT2 was born but the recent changes will require significant work on my part if the Windows build is to be maintained.  

I have been attempting to discuss this with Fredrik via email but for some reason I have not been able to obtain a response.  I am hence raising the issue here to discover whether it makes sense to put in the work needed to update the  windows FLINT2 build to cope with these recent changes. 

--

---
You received this message because you are subscribed to the Google Groups "flint-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to flint-devel...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/flint-devel/0bac692f-67a0-4093-8b7a-49e74d974b8fn%40googlegroups.com.

Fredrik Johansson

unread,
Jun 12, 2023, 3:52:51 AM6/12/23
to flint...@googlegroups.com
Hi Brian,

Unfortunately, your emails were caught by gmail's spam filter for some reason.

Hopefully there be fewer drastic changes to the codebase now that the big merge has been completed, but I can't promise that maintaining the MSVC build will be painless even from there.

I actully had the impression that CMake can generate MSVC project files so that manual editing shouldn't be necessary, but maybe I'm wrong about this.

Best,
Fredrik
--

riem...@gmail.com

unread,
Jun 12, 2023, 12:35:16 PM6/12/23
to flint-devel
Hi Fredrik,

I thought it might be the gmail spam filter as it is pretty aggressive (and needs to be given how many spammers use gmail).  

The big hurdle would be the use of inline assembly which the MSVC 64-bit compiler doesn't support.   But there might be good news since I have tried building with the Microsoft and the intel versions of the clang compiler and both do manage quite well with nearly all of the FLINT2 code.  And the source code that fails is not FLINT2 code but the file "mmintrin.h"  which is part of the clang distrubution for both of the clang compilers.

I'm not normally a CMake user but it may attract me if it can build on Windows.  Ill take aa look at it.

     Brian

Isuru Fernando

unread,
Jun 12, 2023, 12:59:06 PM6/12/23
to flint...@googlegroups.com
Hi Brian,

We already have MSVC CI on github actions with CMake. It uses pre-built
MPIR and MPFR DLLs from your Visual studio solutions and builds flint2.
The tests pass there.

However we don't have /arch:AVX2 in the build flags, so the inline assembly
is not compiled yet with MSVC.

Isuru



Brian Gladman

unread,
Jun 13, 2023, 3:27:16 AM6/13/23
to flint...@googlegroups.com, Isuru Fernando
On 12/06/2023 17:58, Isuru Fernando wrote:
> Hi Brian,
>
> We already have MSVC CI on github actions with CMake. It uses pre-built
> MPIR and MPFR DLLs from your Visual studio solutions and builds flint2.
> The tests pass there.
>
> However we don't have /arch:AVX2 in the build flags, so the inline assembly
> is not compiled yet with MSVC.

Thanks, isuru, my FLINT build is quite difficult to maintain so it would
certainly be great to be able rely on the CMake build.

If I am right it should be possible to adjust the CMAKE build to use the
MSVC clang compiler which can in principle compile the inline assembler
code. Sadly I know very little about CMake so I am not in a position to
help out with this until I learn more about it.

[snip]

Brian

Reply all
Reply to author
Forward
0 new messages