I really find MinGW-64 website difficult to navigate for info. I've been going through the various release files but I can't find any mention of the GCC compiler version that ships with it.
I've also come across another GCC for Win version, "Equation":
http://www.equation.com/servlet/equation.cmd?fa=fortran
This one offers different bundles, the latest one being GCC 6.2.0. They also offer dev snapshots, last one was published just a few days ago.
Sharing a bit of personal experience: within the mingw-w64 project I found the following folder that holds the latest GCC builds: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/
Also offers to choose between posix vs win32 and seh vs sjlj
Thanks for the link @Greglefox.
From the files on that page I noticed that MinGW-64 is maintaining parallel releases with different GCC versions:
The lowest GCC version of the above list if way more up-to-date than latest relase of TDM-GCC (GCC v5.1.0)!
It's my guess that the reason MinGW is keeping different versions of GCC is for code compatibility issues.
As form Nim, which version of GCC is reccomended? Or are they just the same when it comes to the C compiler?
The most recent versions of Mingw-w64 are only available 'officially' via Msys2, although as mentioned earlier, you can download builds from the sourceforge directories.
I personally wish we could use clang, and perhaps have a headless download of the Windows SDK (instead of the 10+ GB behemoth that is Visual Studio). I dislike things such as MinGW using mscvrt.dll and having programs which use threading be linked to yet another LGPL dll.
I am using Msys2 + Mingw64 on win7 64 bits. Almost everything is ok, except:
1. for blas, for exampe https://forum.nim-lang.org/t/3029
$ cd /r/arraymancer/tests/
$ nim c -r test_operators_blas
Hint: [Link]
Hint: operation successful (27703 lines compiled; 8.213 sec total; 208.863MiB peakmem; Debug Build) [SuccessX]
Hint: R:\arraymancer\tests\test_operators_blas.exe [Exec]
could not import: cblas_sscal
Error: execution of an external program failed: 'R:\arraymancer\tests\test_operators_blas.exe '
2. gpu/cuda program, because there is no(?) file.a for mingw under windows for example https://github.com/unicredit/nimcuda
$ cd /r/nimcuda-master/examples/
$ nim c -r fft.nim --cincludes:"/r/nimcuda-master/c2nim"
CC: nimcuda_cuComplex
R:\nimcuda-master\examples\nimcache\nimcuda_fft.c:202:97: error: unknown type name 'float2'
typedef N_CDECL_PTR(cufftResult_CsvnaTViXJFbqo9bM6i9bROw, TY_HpGapddEWLlYAX7BuEE4qA) (int plan, float2* idata, float2* odata, int direction);
^~~~~~
...
R:\nimcuda-master\examples\nimcache\stdlib_system.c:12829:3: error: unknown type name 'float2'
float2 value;
^~~~~~
Hint: [Link]
gcc.exe: error: R:\nimcuda-master\examples\nimcache\nimcuda_fft.o: No such file or directory
gcc.exe: error: R:\nimcuda-master\examples\nimcache\stdlib_system.o: No such file or directory
gcc.exe: error: R:\nimcuda-master\examples\nimcache\nimcuda_cufft.o: No such file or directory
gcc.exe: error: R:\nimcuda-master\examples\nimcache\nimcuda_cuComplex.o: No such file or directory
gcc.exe: error: R:\nimcuda-master\examples\nimcache\nimcuda_vector_types.o: No such file or directory
Error: execution of an external program failed: 'gcc.exe -o R:\nimcuda-master\examples\fft.exe R:\nimcuda-master\examples\nimcache\nimcuda_fft.o R:\nimcuda-master\examples\nimcache\stdlib_system.o R:\nimcuda-master\examples\nimcache\nimcuda_cufft.o R:\nimcuda-master\examples\nimcache\nimcuda_cuComplex.o R:\nimcuda-master\examples\nimcache\stdlib_math.o R:\nimcuda-master\examples\nimcache\nimcuda_vector_types.o R:\nimcuda-master\examples\nimcache\nimcuda_library_types.o R:\nimcuda-master\examples\nimcache\nimcuda_cuda_runtime_api.o R:\nimcuda-master\examples\nimcache\nimcuda_driver_types.o R:\nimcuda-master\examples\nimcache\nimcuda_surface_types.o R:\nimcuda-master\examples\nimcache\nimcuda_texture_types.o R:\nimcuda-master\examples\nimcache\nimcuda_nimcuda.o R:\nimcuda-master\examples\nimcache\nimcuda_cublas_api.o R:\nimcuda-master\examples\nimcache\nimcuda_cublas_v2.o R:\nimcuda-master\examples\nimcache\nimcuda_cuda_occupancy.o R:\nimcuda-master\examples\nimcache\nimcuda_cudnn.o R:\nimcuda-master\examples\nimcache\nimcuda_curand.o R:\nimcuda-master\examples\nimcache\nimcuda_cusolver_common.o R:\nimcuda-master\examples\nimcache\nimcuda_cusolverDn.o R:\nimcuda-master\examples\nimcache\nimcuda_cusolverRf.o R:\nimcuda-master\examples\nimcache\nimcuda_cusolverSp.o R:\nimcuda-master\examples\nimcache\nimcuda_cusparse.o R:\nimcuda-master\examples\nimcache\nimcuda_nvblas.o R:\nimcuda-master\examples\nimcache\nimcuda_nvgraph.o
fwiw stephan t lavavej, who is one of the maintainers of msvc's c++ standard library (with the most apropos name ever) offers a mingw distro with gcc (currently) 7.1.0 and a bunch of recent libraries. we could probably use his build scripts to produce a very minimal gcc.
Anyway it's at https://nuwen.net/mingw.html and it seems to be about 40mb all told.
@oyster:
I may have misconfigured the unit tests import in arraymancer. I use Appveyor for testing on windows with mingw-w64, and OpenBLAS is imported and loaded correctly: See here.