diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 532a03e45b5..ea27bd4080e 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -22,6 +22,10 @@ on: type: boolean description: "Boolean to enable the Linux 6.0 Swift version matrix job. Defaults to true." default: true + linux_6_1_enabled: + type: boolean + description: "Boolean to enable the Linux 6.1 Swift version matrix job. Defaults to true." + default: true linux_nightly_6_0_enabled: type: boolean description: "⚠️ Deprecated, we no longer run against 6.0 nightly." @@ -43,6 +47,10 @@ on: type: boolean description: "Boolean to enable the Windows 6.0 Swift version matrix job. Currently has no effect!" # TODO: implement Windows benchmarking default: false + windows_6_1_enabled: + type: boolean + description: "Boolean to enable the Windows 6.1 Swift version matrix job. Currently has no effect!" # TODO: implement Windows benchmarking + default: false windows_nightly_6_0_enabled: type: boolean description: "⚠️ Deprecated, we no longer run against 6.0 nightly." # TODO: implement Windows benchmarking @@ -71,6 +79,7 @@ jobs: MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }} MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }} + MATRIX_LINUX_6_1_ENABLED: ${{ inputs.linux_6_1_enabled }} MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} diff --git a/.github/workflows/cxx_interop.yml b/.github/workflows/cxx_interop.yml index 4b6caf8a477..b92c3fb0bd9 100644 --- a/.github/workflows/cxx_interop.yml +++ b/.github/workflows/cxx_interop.yml @@ -15,6 +15,10 @@ on: type: boolean description: "Boolean to enable the Linux 6.0 Swift version matrix job. Defaults to true." default: true + linux_6_1_enabled: + type: boolean + description: "Boolean to enable the Linux 6.1 Swift version matrix job. Defaults to true." + default: true linux_nightly_6_0_enabled: type: boolean description: "⚠️ Deprecated, we no longer run against 6.0 nightly." @@ -36,6 +40,10 @@ on: type: boolean description: "Boolean to enable the Windows 6.0 Swift version matrix job. Defaults to false. Currently has no effect!" # TODO: implement Windows Cxx compat checking default: false + windows_6_1_enabled: + type: boolean + description: "Boolean to enable the Windows 6.1 Swift version matrix job. Defaults to false. Currently has no effect!" # TODO: implement Windows Cxx compat checking + default: false windows_nightly_6_0_enabled: type: boolean description: "⚠️ Deprecated, we no longer run against 6.0 nightly." # TODO: implement Windows Cxx compat checking @@ -64,6 +72,7 @@ jobs: MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }} MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }} + MATRIX_LINUX_6_1_ENABLED: ${{ inputs.linux_6_1_enabled }} MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7f883d7d923..c1ff2e39239 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,6 +15,7 @@ jobs: linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" + linux_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_nightly_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error" diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 936c8084b37..7d8ff92dc67 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,6 +19,7 @@ jobs: linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" + linux_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_nightly_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error" diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 656859824a0..8b153fd3f5f 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -27,6 +27,14 @@ on: type: string description: "The arguments passed to swift test in the Linux 6.0 Swift version matrix job." default: "" + linux_6_1_enabled: + type: boolean + description: "Boolean to enable the Linux 6.1 Swift version matrix job. Defaults to true." + default: true + linux_6_1_arguments_override: + type: string + description: "The arguments passed to swift test in the Linux 6.1 Swift version matrix job." + default: "" linux_nightly_6_0_enabled: type: boolean description: "⚠️ Deprecated, we no longer run against 6.0 nightly." @@ -68,6 +76,14 @@ on: type: string description: "The arguments passed to swift test in the Windows 6.0 Swift version matrix job." default: "" + windows_6_1_enabled: + type: boolean + description: "Boolean to enable the Windows 6.1 Swift version matrix job. Defaults to false." + default: false + windows_6_1_arguments_override: + type: string + description: "The arguments passed to swift test in the Windows 6.1 Swift version matrix job." + default: "" windows_nightly_6_0_enabled: type: boolean description: "⚠️ Deprecated, we no longer run against 6.0 nightly." @@ -122,6 +138,8 @@ jobs: MATRIX_LINUX_5_10_COMMAND_ARGUMENTS: ${{ inputs.linux_5_10_arguments_override }} MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }} MATRIX_LINUX_6_0_COMMAND_ARGUMENTS: ${{ inputs.linux_6_0_arguments_override }} + MATRIX_LINUX_6_1_ENABLED: ${{ inputs.linux_6_1_enabled }} + MATRIX_LINUX_6_1_COMMAND_ARGUMENTS: ${{ inputs.linux_6_1_arguments_override }} MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }} MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.linux_nightly_6_1_arguments_override }} ${{ inputs.linux_nightly_next_arguments_override }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} @@ -129,6 +147,8 @@ jobs: MATRIX_WINDOWS_COMMAND: "swift test" MATRIX_WINDOWS_6_0_ENABLED: ${{ inputs.windows_6_0_enabled }} MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS: ${{ inputs.windows_6_0_arguments_override }} + MATRIX_WINDOWS_6_1_ENABLED: ${{ inputs.windows_6_1_enabled }} + MATRIX_WINDOWS_6_1_COMMAND_ARGUMENTS: ${{ inputs.windows_6_1_arguments_override }} MATRIX_WINDOWS_NIGHTLY_NEXT_ENABLED: ${{ inputs.windows_nightly_6_1_enabled && inputs.windows_nightly_next_enabled }} MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.windows_nightly_6_1_arguments_override }} ${{ inputs.windows_nightly_next_arguments_override }} MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED: ${{ inputs.windows_nightly_main_enabled }} diff --git a/Benchmarks/Thresholds/6.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json b/Benchmarks/Thresholds/6.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json new file mode 100644 index 00000000000..ec2d0ad0f87 --- /dev/null +++ b/Benchmarks/Thresholds/6.1/NIOCoreBenchmarks.NIOAsyncChannel.init.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 8000 +} \ No newline at end of file diff --git a/Benchmarks/Thresholds/6.1/NIOPosixBenchmarks.TCPEcho.p90.json b/Benchmarks/Thresholds/6.1/NIOPosixBenchmarks.TCPEcho.p90.json new file mode 100644 index 00000000000..c6a93680d0a --- /dev/null +++ b/Benchmarks/Thresholds/6.1/NIOPosixBenchmarks.TCPEcho.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 108 +} diff --git a/Benchmarks/Thresholds/6.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json b/Benchmarks/Thresholds/6.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json new file mode 100644 index 00000000000..390ed2415a7 --- /dev/null +++ b/Benchmarks/Thresholds/6.1/NIOPosixBenchmarks.TCPEchoAsyncChannel.p90.json @@ -0,0 +1,3 @@ +{ + "mallocCountTotal" : 164376 +} \ No newline at end of file diff --git a/IntegrationTests/tests_04_performance/Thresholds/6.1.json b/IntegrationTests/tests_04_performance/Thresholds/6.1.json new file mode 100644 index 00000000000..0870e33436e --- /dev/null +++ b/IntegrationTests/tests_04_performance/Thresholds/6.1.json @@ -0,0 +1,59 @@ +{ + "10000000_asyncsequenceproducer": 19, + "1000000_asyncwriter": 1000050, + "1000_addHandlers": 44050, + "1000_addHandlers_sync": 37050, + "1000_addRemoveHandlers_handlercontext": 8050, + "1000_addRemoveHandlers_handlername": 8050, + "1000_addRemoveHandlers_handlertype": 8050, + "1000_autoReadGetAndSet": 18050, + "1000_autoReadGetAndSet_sync": 0, + "1000_copying_bytebufferview_to_array": 1050, + "1000_copying_circularbuffer_to_array": 1050, + "1000_getHandlers": 8050, + "1000_getHandlers_sync": 35, + "1000_reqs_1_conn": 26400, + "1000_rst_connections": 145050, + "1000_tcpbootstraps": 3050, + "1000_tcpconnections": 152050, + "1000_udp_reqs": 6050, + "1000_udpbootstraps": 2050, + "1000_udpconnections": 75050, + "1_reqs_1000_conn": 384000, + "assume_isolated_scheduling_10000_executions": 89, + "bytebuffer_lots_of_rw": 2050, + "creating_10000_headers": 0, + "decode_1000_ws_frames": 2050, + "encode_1000_ws_frames_holding_buffer": 3, + "encode_1000_ws_frames_holding_buffer_with_mask": 2050, + "encode_1000_ws_frames_holding_buffer_with_space": 3, + "encode_1000_ws_frames_holding_buffer_with_space_with_mask": 2050, + "encode_1000_ws_frames_new_buffer": 3050, + "encode_1000_ws_frames_new_buffer_with_mask": 5050, + "encode_1000_ws_frames_new_buffer_with_space": 3050, + "encode_1000_ws_frames_new_buffer_with_space_with_mask": 5050, + "execute_hop_10000_tasks": 0, + "flat_schedule_10000_tasks": 100100, + "flat_schedule_assume_isolated_10000_tasks": 90100, + "future_assume_isolated_lots_of_callbacks": 74050, + "future_erase_result": 4050, + "future_lots_of_callbacks": 74050, + "get_100000_headers_canonical_form": 700050, + "get_100000_headers_canonical_form_trimming_whitespace": 700050, + "get_100000_headers_canonical_form_trimming_whitespace_from_long_string": 700050, + "get_100000_headers_canonical_form_trimming_whitespace_from_short_string": 700050, + "modifying_1000_circular_buffer_elements": 0, + "modifying_byte_buffer_view": 6050, + "ping_pong_1000_reqs_1_conn": 314, + "read_10000_chunks_from_file": 110050, + "schedule_10000_tasks": 40100, + "schedule_and_run_10000_tasks": 50050, + "schedule_assume_isolated_10000_tasks": 40100, + "schedule_with_deadline_10000_tasks": 40100, + "schedule_with_deadline_assume_isolated_10000_tasks": 40100, + "scheduling_10000_executions": 89, + "submit_10000_tasks": 20100, + "submit_assume_isolated_10000_tasks": 20100, + "udp_1000_reqs_1_conn": 6200, + "udp_1_reqs_1000_conn": 162050 +} diff --git a/scripts/generate_matrix.sh b/scripts/generate_matrix.sh index 02490ba222b..6d94b6e88b0 100755 --- a/scripts/generate_matrix.sh +++ b/scripts/generate_matrix.sh @@ -21,7 +21,9 @@ linux_5_9_command_arguments="$MATRIX_LINUX_5_9_COMMAND_ARGUMENTS" linux_5_10_enabled="${MATRIX_LINUX_5_10_ENABLED:=true}" linux_5_10_command_arguments="$MATRIX_LINUX_5_10_COMMAND_ARGUMENTS" linux_6_0_enabled="${MATRIX_LINUX_6_0_ENABLED:=true}" +linux_6_1_enabled="${MATRIX_LINUX_6_1_ENABLED:=true}" linux_6_0_command_arguments="$MATRIX_LINUX_6_0_COMMAND_ARGUMENTS" +linux_6_1_command_arguments="$MATRIX_LINUX_6_1_COMMAND_ARGUMENTS" linux_nightly_next_enabled="${MATRIX_LINUX_NIGHTLY_NEXT_ENABLED:=${MATRIX_LINUX_NIGHTLY_6_1_ENABLED:=true}}" linux_nightly_next_command_arguments="${MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_LINUX_NIGHTLY_6_1_COMMAND_ARGUMENTS}}" linux_nightly_main_enabled="${MATRIX_LINUX_NIGHTLY_MAIN_ENABLED:=true}" @@ -30,7 +32,9 @@ linux_nightly_main_command_arguments="$MATRIX_LINUX_NIGHTLY_MAIN_COMMAND_ARGUMEN windows_command="$MATRIX_WINDOWS_COMMAND" # required if any Windows pipeline is enabled windows_setup_command="$MATRIX_WINDOWS_SETUP_COMMAND" windows_6_0_enabled="${MATRIX_WINDOWS_6_0_ENABLED:=false}" +windows_6_1_enabled="${MATRIX_WINDOWS_6_1_ENABLED:=false}" windows_6_0_command_arguments="$MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS" +windows_6_1_command_arguments="$MATRIX_WINDOWS_6_1_COMMAND_ARGUMENTS" windows_nightly_next_enabled="${MATRIX_WINDOWS_NIGHTLY_NEXT_ENABLED:=${MATRIX_WINDOWS_NIGHTLY_6_1_ENABLED:=false}}" windows_nightly_next_command_arguments="${MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_WINDOWS_NIGHTLY_6_1_COMMAND_ARGUMENTS}}" windows_nightly_main_enabled="${MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED:=false}" @@ -41,11 +45,14 @@ linux_runner="ubuntu-latest" linux_5_9_container_image="swift:5.9-jammy" linux_5_10_container_image="swift:5.10-jammy" linux_6_0_container_image="swift:6.0-jammy" +linux_6_1_container_image="swift:6.1-jammy" linux_nightly_next_container_image="swiftlang/swift:nightly-6.1-jammy" linux_nightly_main_container_image="swiftlang/swift:nightly-main-jammy" windows_6_0_runner="windows-2022" windows_6_0_container_image="swift:6.0-windowsservercore-ltsc2022" +windows_6_1_runner="windows-2022" +windows_6_1_container_image="swift:6.1-windowsservercore-ltsc2022" windows_nightly_next_runner="windows-2019" windows_nightly_next_container_image="swiftlang/swift:nightly-6.1-windowsservercore-1809" windows_nightly_main_runner="windows-2019" @@ -55,8 +62,14 @@ windows_nightly_main_container_image="swiftlang/swift:nightly-main-windowsserver matrix='{"config": []}' ## Linux -if [[ "$linux_5_9_enabled" == "true" || "$linux_5_10_enabled" == "true" || "$linux_6_0_enabled" == "true" || \ - "$linux_nightly_next_enabled" == "true" || "$linux_nightly_main_enabled" == "true" ]]; then +if [[ \ + "$linux_5_9_enabled" == "true" || \ + "$linux_5_10_enabled" == "true" || \ + "$linux_6_0_enabled" == "true" || \ + "$linux_6_1_enabled" == "true" || \ + "$linux_nightly_next_enabled" == "true" || \ + "$linux_nightly_main_enabled" == "true" \ +]]; then if [[ -z "$linux_command" ]]; then echo "No linux command defined"; exit 1 fi @@ -93,6 +106,16 @@ if [[ "$linux_6_0_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.0", "image": $container_image, "swift_version": "6.0", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner}') fi +if [[ "$linux_6_1_enabled" == "true" ]]; then + matrix=$(echo "$matrix" | jq -c \ + --arg setup_command "$linux_setup_command" \ + --arg command "$linux_command" \ + --arg command_arguments "$linux_6_1_command_arguments" \ + --arg container_image "$linux_6_1_container_image" \ + --arg runner "$linux_runner" \ + '.config[.config| length] |= . + { "name": "6.1", "image": $container_image, "swift_version": "6.1", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner}') +fi + if [[ "$linux_nightly_next_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ @@ -114,7 +137,11 @@ if [[ "$linux_nightly_main_enabled" == "true" ]]; then fi ## Windows -if [[ "$windows_6_0_enabled" == "true" || "$windows_nightly_next_enabled" == "true" || "$windows_nightly_main_enabled" == "true" ]]; then +if [[ \ + "$windows_6_0_enabled" == "true" || \ + "$windows_nightly_next_enabled" == "true" || \ + "$windows_nightly_main_enabled" == "true" \ +]]; then if [[ -z "$windows_command" ]]; then echo "No windows command defined"; exit 1 fi @@ -130,6 +157,16 @@ if [[ "$windows_6_0_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.0", "image": $container_image, "swift_version": "6.0", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner }') fi +if [[ "$windows_6_1_enabled" == "true" ]]; then + matrix=$(echo "$matrix" | jq -c \ + --arg setup_command "$windows_setup_command" \ + --arg command "$windows_command" \ + --arg command_arguments "$windows_6_1_command_arguments" \ + --arg container_image "$windows_6_1_container_image" \ + --arg runner "$windows_6_1_runner" \ + '.config[.config| length] |= . + { "name": "6.1", "image": $container_image, "swift_version": "6.1", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner }') +fi + if [[ "$windows_nightly_next_enabled" == "true" ]]; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$windows_setup_command" \