Revision 1 as of 2008-04-16 23:38:41
copy of the "proposed toolchain" section from the windows page
add link back to global "Sage on Windows" page
|Deletions are marked like this.||Additions are marked like this.|
|Line 1:||Line 1:|
|This page is part the [:windows:Sage on Windows port].
== Available Toolchains on Windows ==
This page is part the [:windows:Sage on Windows port].
Available Toolchains on Windows
The five million lines of code in Sage are quite demanding on the compiler and the code has been written primarily with gcc on POSIX architectures. Hence in many cases we will have to do a port to MSVC or at a minimum to a non-POSIX API. We have three flavors of gcc (Cygwin, MinGW, Microsoft SFU) and the Microsoft/Intel compilers:
- Cygwin: was used until 2.5.x, was dropped due to many issues and libSingular not working properly. M. Abshoff has been working on getting 2.10.x to compile on Cygwin again and is moving fixes back into the main repo.
- MinGW: problems with Python, has gcc (good), needed POSIX code ported to Windows API. Due to the problems with Python this toolchain is out.
- MSVC: works well with Python, only 64 bit option (MinGW has alpha support), C/C++ portability problems (most code hasn't been ported to MSVC), most viable long term option. But we need Fortran support which means Intel Fortran. For certain packages The Intel C/C++ compilers produce much better code (ATLAS) or allow to use assembly optimized code (GMP). At least MSVC 2005 has weaknesses regarding the C99 implementation, so we might want to switch to 2008.
- Microsoft Services for Unix: has gcc (3.3 or 3.4, need to check - 3.3 is not enough), produces semi-native DLLs, largely untested with the applications we target