diff --git a/.github/workflows/submit.yml b/.github/workflows/submit.yml index 1ddc157a55b..dab6c214597 100644 --- a/.github/workflows/submit.yml +++ b/.github/workflows/submit.yml @@ -111,6 +111,7 @@ jobs: - build debug - build hotspot no-pch - build hotspot minimal + - build hotspot optimized include: - flavor: build debug flags: --enable-debug @@ -121,6 +122,9 @@ jobs: - flavor: build hotspot minimal flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=minimal build-target: hotspot + - flavor: build hotspot optimized + flags: --with-debug-level=optimized --disable-precompiled-headers + build-target: hotspot env: JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}" @@ -385,7 +389,7 @@ jobs: windows_x64_build: name: Windows x64 - runs-on: "windows-latest" + runs-on: "windows-2019" needs: prerequisites if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_windows_x64 != 'false' @@ -465,12 +469,19 @@ jobs: path: ~/jtreg/ if: steps.jtreg_restore.outcome == 'failure' + - name: Ensure a specific version of MSVC is installed + run: > + Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList + 'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" --quiet + --add Microsoft.VisualStudio.Component.VC.14.27.x86.x64' + - name: Configure run: > $env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ; $env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ; & bash configure --with-conf-name=windows-x64 + --with-msvc-toolset-version=14.27 ${{ matrix.flags }} --with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA" --with-version-build=0 @@ -501,7 +512,7 @@ jobs: windows_x64_test: name: Windows x64 - runs-on: "windows-latest" + runs-on: "windows-2019" needs: - prerequisites - windows_x64_build @@ -702,7 +713,7 @@ jobs: macos_x64_build: name: macOS x64 - runs-on: "macos-latest" + runs-on: "macos-10.15" needs: prerequisites if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_macos_x64 != 'false' @@ -772,6 +783,9 @@ jobs: - name: Install dependencies run: brew install make + - name: Select Xcode version + run: sudo xcode-select --switch /Applications/Xcode_11.3.1.app/Contents/Developer + - name: Configure run: > bash configure @@ -802,7 +816,7 @@ jobs: macos_x64_test: name: macOS x64 - runs-on: "macos-latest" + runs-on: "macos-10.15" needs: - prerequisites - macos_x64_build @@ -915,6 +929,9 @@ jobs: - name: Install dependencies run: brew install make + - name: Select Xcode version + run: sudo xcode-select --switch /Applications/Xcode_11.3.1.app/Contents/Developer + - name: Find root of jdk image dir run: | imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }} -name release -type f` diff --git a/doc/hotspot-style.html b/doc/hotspot-style.html index 04999f545ee..c04ac93dc91 100644 --- a/doc/hotspot-style.html +++ b/doc/hotspot-style.html @@ -49,6 +49,7 @@

HotSpot Coding Style

  • thread_local
  • nullptr
  • <atomic>
  • +
  • Uniform Initialization
  • Additional Permitted Features
  • Excluded Features
  • Undecided Features
  • @@ -275,6 +276,17 @@

    <atomic>

    Do not use facilities provided by the <atomic> header (n2427), (n2752); instead, use the HotSpot Atomic class and related facilities.

    Atomic operations in HotSpot code must have semantics which are consistent with those provided by the JDK's compilers for Java. There are platform-specific implementation choices that a C++ compiler might make or change that are outside the scope of the C++ Standard, and might differ from what the Java compilers implement.

    In addition, HotSpot Atomic has a concept of "conservative" memory ordering, which may differ from (may be stronger than) sequentially consistent. There are algorithms in HotSpot that are believed to rely on that ordering.

    +

    Uniform Initialization

    +

    The use of uniform initialization (n2672), also known as brace initialization, is permitted.

    +

    Some relevant sections from cppreference.com:

    + +

    Although related, the use of std::initializer_list remains forbidden, as part of the avoidance of the C++ Standard Library in HotSpot code.

    Additional Permitted Features