TokamakUI / Tokamak

SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms
Apache License 2.0
2.62k stars 111 forks source link

Low Priority: For Carton on Swift 5.9 Toolchain #539

Closed furby-tm closed 1 year ago

furby-tm commented 1 year ago

These changes are optional, very low priority, and are really meant to go in tandem with the below release of carton (if approved), but it would be nice to have some updated packages to sync with carton; and some better compatibility when targeting the Swift 5.9 toolchain as well as later versions of macOS/iOS.

The easiest way to test this since carton doesn't appear to support pre-release versions of Swift is to use this release of carton in the meantime.

If I fix-up the template for tokamak in the above carton release, would a PR for carton possibly be approved for a pre-release version? I do not see any prior pre-release versions of carton, and was not sure if this is something the carton developers would like to support.

Note: TimelineView has been temporarily disabled in the demo due to:

// cartonbeta dev -v --product TokamakDemo

CanvasDemo.swift:66:5: error: generic parameter 'Content' could not be inferred

The above error is strange, have you guys been able to compile the demo as-is on current toolchain versions?

Everything else appears to be in tact.

$ cartonbeta dev -v --product TokamakDemo
- checking Swift compiler path: /Users/furby/.carton/sdk/wasm-5.9-SNAPSHOT-2023-08-01-a/usr/bin/swift
- checking Swift compiler path: /Users/furby/.swiftenv/versions/wasm-5.9-SNAPSHOT-2023-08-01-a/usr/bin/swift
- checking Swift compiler path: /Users/furby/Library/Developer/Toolchains/swift-wasm-5.9-SNAPSHOT-2023-08-01-a.xctoolchain/usr/bin/swift
Inferring basic settings...
- swift executable: /Users/furby/Library/Developer/Toolchains/swift-wasm-5.9-SNAPSHOT-2023-08-01-a.xctoolchain/usr/bin/swift
SwiftWasm Swift version 5.9-dev (LLVM 8250a14f5d3ef6a, Swift 57acd8f2a758d01)
Target: arm64-apple-darwin23.0.0

Parsing package manifest:
[debug]: evaluating manifest for 'tokamak' v. unknown- development product: TokamakDemo
- development binary to serve: /Users/furby/dev/Atmos/Tokamak/.build/wasm32-unknown-wasi/debug/TokamakDemo.wasm

Building the project before spinning up a server...
Compiling...
/Users/furby/Library/Developer/Toolchains/swift-wasm-5.9-SNAPSHOT-2023-08-01-a.xctoolchain/usr/bin/swift build -c debug --product TokamakDemo --triple wasm32-unknown-wasi -Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor -Xlinker --export=main -Xlinker /Users/furby/.carton/static/so_sanitizer.wasm -Xlinker --stack-firstBuilding for debugging...
[0/1] Linking TokamakDemo.wasm
Build complete! (1.79s)

`swift` process finished successfully
`swift build` completed in 2.04 seconds
Binary transformation for Safari compatibility completed in 0.34 seconds
furby-tm commented 1 year ago

The carton changes to support the Swift 5.9 toolchain have been approved here. Looks like we should now bump the Swift tools version to 5.7 within Tokamak's Package.swift to reflect carton.