Closed certik closed 10 years ago
Hey Ondřej,
I usually try to track the compiler version available in the latest versions of common distributions. Actually, in the development version of piranha,
https://gitorious.org/piranhapp0x/mainline/commits/511fb057d96a7e28f60fd7b50f9856ccc45b46cd
I have bumped the minimum required GCC version to 4.8 (and clang to 3.3 IIRC).
(As a side note, the main repo of piranha is still on gitorious, might move to github sometimes in the near future)
piranha aims to be a fully-compliant C++11 project and that means that often I have to workaround missing/broken features in compilers and standard libraries. This means that quite a big effort is required to keep compatibility with older compiler versions, and as a one-man project it just makes more sense in term of time budgeting to move on and drop support for older compilers, keep the codebase as clean as possible and just implement features.
I understand that out there there are a lot of real-world scenarios in which having the latest compiler is not an option (in my previous job I was doing commercial development with GCC 4.4 on some Red-Hat long-term support version). In principle I am not against keeping workarounds for older compilers if they are properly tested/maintained and if they do not impact too much the development (e.g., missing unrestricted union support in MSVC is definitely non-fixable), but for this to happen the project would definitely need more manpower.
To be a bit more specific wrt your question about GCC 4.6, there is at least one key features that it is missing, alias templates:
http://en.wikipedia.org/wiki/C++11#Alias_templates
I am afraid these are used quite widely now in piranha, so it might be a problem to retro-fit GCC 4.6 compatibility.
Ok. I don't have clang either, but I am trying to compile one myself, so that I can finally play with your library: https://github.com/hashdist/hashstack/pull/242, it works, but I need to install the latest header files --- currently it is reusing those from gcc, which is 4.6... I am closing this one, I can see that you need the very latest compilers.
I have access to a few systems, none of which have gcc 4.7, so I can't compile it... I have access to gcc 4.6. One can relax the checks:
Then the error with gcc 4.6.3 is:
By applying the following patch:
it fails with:
The
std::is_destructible
I guess only works in gcc 4.7.