Jamoma and compilers

Linux

  • On Linux we use GCC 4.7

Windows

  • On Windows we use MSVC from Visual Studio 2008 (we should investigate updating to 2012)

iOS

(don't remember what we did in the past, but if Clang is available then that's what we should use)

Mac OSX

On the Mac things are murky:

  • ICC is required when making Jamoma installers to be distributed. ICC is installed at the BEK build server, and trusted developers can access that sererv and compile Jamoma using ICC on this server. More info on the BEK server is available here (restricted access).
  • You can use GCC 4.7 (via macports) if you have it. Installing GCC 4.7 on the Mac
  • We previously made an installer for GCC 4.6. This is no longer supported, use GCC 4.7 instead.
  • You can use GCC 4.2 as installed by Xcode, if you have an old enough version of the operating system and xcode (not all of us do).
  • You can use LLVM as installed by Xcode, if you "trick" your your computer into thinking that it's GCC 4.2 (this produces the slowest code of any of these options according to our benchmarking)
  • You can use CLANG as installed by newer versions of Xcode if you have a new enough version of the OS and xcode (not all of us do)

The old GCC 4.2 and LLVM also hold us back because of lack of support for the C++11 standard. If we officially abandon those, then it leaves us on the Mac with:

  • ICC if you have $
  • CLANG if you have a newer OS
  • GCC 4.7 from MacPorts (available for everyone)

One further point of contention is linking to the C/C++ runtime libraries:

  • ICC: Intel provides Redistributable Libraries (9 MB). We need to investigate if and how this can/have to be installed
  • CLANG: Apple installs the ones used by CLANG, so we do no work ourselves (but this drops support for OS 10.6).
  • GCC 4.7: No issues (we use static linking)