-
Notifications
You must be signed in to change notification settings - Fork 397
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Supported C++ features document is out of date #7359
Comments
Info from extension repos: Potentially other relevant info: |
Conversations internally about AIX is that the |
This patch updates the GCC version in the documentation and moves the corresonding C++11 features from the unsupported list to the supported list. Issues: eclipse-omr#7359 Signed-off-by: Nathan Henderson <nathan.henderson@ibm.com>
This patch updates the GCC version in the documentation and moves the corresponding C++11 features from the unsupported list to the supported list. Issues: eclipse-omr#7359 Signed-off-by: Nathan Henderson <nathan.henderson@ibm.com>
The z/OS compile machines for IBM Java 8 are 2.1 Where did you get the "excerpt from the OpenJ9 building instructions"? I don't know about other consumers of OMR. |
Thanks for the clarification, Peter. It'll help me determine which features we could safely use. The excerpt was from the extension repos, not OpenJ9s instructions. |
I agree the document should be kept up to date, and thank you @ThanHenderson for looking at that. While I am generally in favour of continuously raising the bar to allow more C++ features to be used, I think we need to be a bit more gradual about it (e.g., a jump from gcc 4.4.7 to 10.3 is pretty big in one go so perhaps we find something in between). Also remember that Eclipse OMR is an independent project from Eclipse OpenJ9, and while OpenJ9 is an important consumer, the OMR project can't base all its decisions on OpenJ9's requirements. Moving up the compiler level is the kind of thing that should be announced to the community for awareness. I think the OMR release boundaries are appropriate for these kinds of changes (we have the 0.2.0 release planned for end of June, and every 3 months thereafter). If you have a compiler level proposal in between 4.4.7 and 10.3 for end of June please share for consideration. To address your question, at one point a couple of years ago I am aware there was a project exploring the use of OMR that required an older gcc version (because their build infrastructure was unable to move up right away). That may no longer be a requirement for them and enough time has passed that OMR could make the case to gradually increase its minimum supported compiler level. Perhaps @mstoodle can weigh in on whether this is still a requirement. |
I know the project you're referring to: it's not a requirement any more. I think it more comes down to consistent availability of features across the full set of platforms we and our stakeholders need to support. Otherwise, I'm happy for the bar to move up. |
I think a safe bet for the gcc version is 7.3 since that is the version that released with the spectre mitigation patch. And talking to the IBM SDK release team in India, 7.3 is what the JDK8 release still uses. From a C++ feature standpoint, gcc was C++11 complete by release 4.8, so any release after that is not C++11 feature limiting for platforms compiling with gcc. It will be the other platforms which dictate the supported features, for which I've obtained the following minimum versions:
Edit: clarity, these are the compiler versions used for compiling the JCL only, so I guess they don't affect our code (OpenJ9 nor OMR). But my first sentence of this comment still applies. |
Just FYI, the OpenJ9 part of the IBM SDK uses 11.2, it's only other components that may still be using 7.3. |
I propose bumping the documentation and development to:
|
This patch updates the GCC version in the documentation and moves the corresponding C++11 features from the unsupported list to the supported list. Issues: eclipse-omr#7359 Signed-off-by: Nathan Henderson <nathan.henderson@ibm.com>
@0xdaryl Could we target the 0.3.0 release to update the community/release docs to specify the versions from #7359 (comment)? |
The document here: https://github.com/eclipse/omr/blob/master/doc/SupportedC%2B%2BFeatures.md
outlines the minimum-supported
C++
compiler versions and thus the availableC++
features. However, this document appears to be out of date.e.g. an excerpt from the extension repo building instructions states:
but the document talks about 4.4.7 being the minimum supported GCC version, suggesting there is a divergence between the documented supported features and the actual. e.g. an
rg nullptr
revealsnullptr
being used a few times in the codebase, but this list suggests that it is unsupported.We should audit and update this document to get a better idea of which features we can use.
The text was updated successfully, but these errors were encountered: