diff --git a/.github/workflows/stdout_renderer.yml b/.github/workflows/stdout_renderer.yml index 393656035..b06c5e571 100644 --- a/.github/workflows/stdout_renderer.yml +++ b/.github/workflows/stdout_renderer.yml @@ -135,8 +135,8 @@ jobs: OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE: ${{ matrix.backend == 'Compute' && '1' || '0' }} OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY: 1 OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_REPO: "OpenSwiftUIProject/Compute" - OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION: "0.6.4-bugfix.1" - OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_CHECKSUM: "11e58c398ee7a40f7beed19d9e61c9b30074169df9f1aade2aeebbc60015c934" + OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION: "0.6.4-bugfix.2" + OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_CHECKSUM: "f7d7baf4e64345254227ff75dfeed59b1310e547bd066845e0477606c22d0bf9" GH_TOKEN: ${{ github.token }} steps: - name: Mark PR status running diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index cdbce5c15..974cc7e74 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -42,7 +42,7 @@ jobs: OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: 0 OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE: ${{ matrix.backend == 'IAG' && '1' || '0' }} OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY: 0 - OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION: "0.6.4-bugfix.1" + OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION: "0.6.4-bugfix.2" OPENSWIFTUI_COMPATIBILITY_TEST: 0 OPENSWIFTUI_SWIFT_LOG: 1 OPENSWIFTUI_SWIFT_CRYPTO: 1 diff --git a/Renderer/Stdout/configure-env.sh b/Renderer/Stdout/configure-env.sh index 11ad97584..827a108cd 100644 --- a/Renderer/Stdout/configure-env.sh +++ b/Renderer/Stdout/configure-env.sh @@ -9,7 +9,7 @@ Darwin) *) export OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH="${OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH:-0}" export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE="${OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE:-1}" - export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION="${OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION:-0.6.4-bugfix.1}" + export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION="${OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION:-0.6.4-bugfix.2}" if [[ -z "${OPENSWIFTUI_LIB_SWIFT_PATH:-}" ]]; then swift_binary="$(readlink -f "$(command -v swift)")" if [[ "$(basename "$swift_binary")" == "swiftly" ]]; then diff --git a/Scripts/CI/compute_setup.sh b/Scripts/CI/compute_setup.sh index 3812e2043..eb0259a25 100755 --- a/Scripts/CI/compute_setup.sh +++ b/Scripts/CI/compute_setup.sh @@ -14,7 +14,7 @@ clone_checkout_compute() { revision=$(Scripts/CI/get_revision.sh compute 2>/dev/null || true) fi if [ -z "$revision" ]; then - revision="0.6.4-bugfix.1" + revision="0.6.4-bugfix.2" fi cd .. if [ ! -d Compute ]; then diff --git a/Tests/OpenSwiftUITests/View/ForEachUpdateTests.swift b/Tests/OpenSwiftUITests/View/ForEachUpdateTests.swift new file mode 100644 index 000000000..d6c836bc0 --- /dev/null +++ b/Tests/OpenSwiftUITests/View/ForEachUpdateTests.swift @@ -0,0 +1,45 @@ +// +// ForEachUpdateTests.swift +// OpenSwiftUITests + +import Foundation +import OpenAttributeGraphShims +@testable import OpenSwiftUI +@_spi(ForOpenSwiftUIOnly) import OpenSwiftUICore +import Testing + +@MainActor +struct ForEachUpdateTests { + @Test(.disabled(if: attributeGraphVendor == .oag), .bug("https://github.com/OpenSwiftUIProject/Game2048/issues/2")) + func replacingBoardTilesPreservesRemainingTiles() { + struct Board: View { + let tiles: [Int] + + var body: some View { + ZStack(alignment: .topLeading) { + ForEach(0..<16) { position in + Color.gray + .frame(width: 20, height: 20) + .offset(x: CGFloat(position % 4) * 24, y: CGFloat(position / 4) * 24) + } + ForEach(tiles, id: \.self) { tile in + Color.orange + .frame(width: 20, height: 20) + .offset(x: CGFloat(tile % 4) * 24, y: CGFloat((tile / 4) % 4) * 24) + .zIndex(1) + } + } + } + } + + let graph = ViewGraph(rootViewType: Board.self, requestedOutputs: [.layout, .displayList]) + graph.instantiateOutputs() + graph.setProposedSize(CGSize(width: 96, height: 96)) + for turn in 0..<20 { + graph.setRootView(Board(tiles: Array(turn..<(turn + 16)))) + graph.updateOutputs(at: Time(seconds: Double(turn))) + let (list, _) = graph.displayList() + #expect(list.items.count == 32) + } + } +} diff --git a/mise.compute.toml b/mise.compute.toml index 43f61aaae..6c31a12c1 100644 --- a/mise.compute.toml +++ b/mise.compute.toml @@ -7,7 +7,7 @@ OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH = "0" OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE = "1" OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY = { default = "1" } OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_REPO = "OpenSwiftUIProject/Compute" -OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION = "0.6.4-bugfix.1" -OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_CHECKSUM = "11e58c398ee7a40f7beed19d9e61c9b30074169df9f1aade2aeebbc60015c934" -OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION = "0.6.4-bugfix.1" +OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION = "0.6.4-bugfix.2" +OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_BINARY_CHECKSUM = "f7d7baf4e64345254227ff75dfeed59b1310e547bd066845e0477606c22d0bf9" +OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_SOURCE_VERSION = "0.6.4-bugfix.2" # OPENSWIFTUI_USE_LOCAL_DEPS = "1"