Hi there! I’m trying to use the C++ interop to make use of FTXUI via Swift. I’m running Swift version 6.2-dev (LLVM 0bbdf73817e84bd, Swift 5797130e90a66c5) on Windows (x86_64-unknown-windows-msvc).
I can build this project if I only use simple FTXUI functions but anything that requires the DOM causes the compiler to crash. Is this kind of bug expected at this point? Is there a fix/workaround?
Pastebin (and similar websites) are blocked at my office, so I’ll paste the log at the end of this message. Sorry!
Thanks for the help!
PS E:\swift_cpp_ftxui> swift run[1/1] Planning buildBuilding for debugging...error: compile command failed due to exception 3 (use -v to see invocation)Assertion failed: subject->isTypeContext(), file C:\Users\swift-ci\jenkins\workspace\swift-6.2-windows-toolchain\swift\lib\AST\Evaluator.cpp, line 169Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.Stack dump:0. Program arguments: C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe -frontend -c -primary-file E:\swift_cpp_ftxui\Sources\SwiftFTXUI\SwiftFTXUI.swift -emit-dependencies-path E:\swift_cpp_ftxui\.build\x86_64-unknown-windows-msvc\debug\SwiftFTXUI.build\SwiftFTXUI.d -emit-reference-dependencies-path E:\swift_cpp_ftxui\.build\x86_64-unknown-windows-msvc\debug\SwiftFTXUI.build\SwiftFTXUI.swiftdeps -serialize-diagnostics-path E:\swift_cpp_ftxui\.build\x86_64-unknown-windows-msvc\debug\SwiftFTXUI.build\SwiftFTXUI.dia -target x86_64-unknown-windows-msvc -disable-objc-interop -cxx-interoperability-mode=default -sdk C:\Users\at2283\AppData\Local\Programs\Swift\Platforms\6.2.0\Windows.platform\DeveloCan you determine what is causing this build failure?
PS E:\swift_cpp_ftxui> swift run
[1/1] Planning build
Building for debugging...
error: compile command failed due to exception 3 (use -v to see invocation)
Assertion failed: subject->isTypeContext(), file C:\Users\swift-ci\jenkins\workspace\swift-6.2-windows-toolchain\swift\lib\AST\Evaluator.cpp, line 169
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Toolchains\\6.2.0+Asserts\\usr\\bin\\swift-frontend.exe -frontend -c -primary-file E:\\swift_cpp_ftxui\\Sources\\SwiftFTXUI\\SwiftFTXUI.swift -emit-dependencies-path E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\SwiftFTXUI.build\\SwiftFTXUI.d -emit-reference-dependencies-path E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\SwiftFTXUI.build\\SwiftFTXUI.swiftdeps -serialize-diagnostics-path E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\SwiftFTXUI.build\\SwiftFTXUI.dia -target x86_64-unknown-windows-msvc -disable-objc-interop -cxx-interoperability-mode=default -sdk C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Platforms\\6.2.0\\Windows.platform\\Developer\\SDKs\\Windows.sdk\\ -I E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\Modules -I C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Platforms\\6.2.0\\Windows.platform\\Developer\\Library\\XCTest-6.2.0\\usr\\lib\\swift\\windows -I C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Platforms\\6.2.0\\Windows.platform\\Developer\\Library\\XCTest-6.2.0\\usr\\lib\\swift\\windows\\x86_64 -I C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Platforms\\6.2.0\\Windows.platform\\Developer\\Library\\Testing-6.2.0\\usr\\lib\\swift\\windows -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\ModuleCache -static -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -entry-point-function-name SwiftFTXUI_main -empty-abi-descriptor -enable-anonymous-context-mangled-names -file-compilation-dir E:\\swift_cpp_ftxui -Xcc -fmodule-map-file=E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\FTXUI.build\\module.modulemap -Xcc -I -Xcc E:\\swift_cpp_ftxui\\Sources\\FTXUI\\include -Xcc -D_MT -Xcc -D_DLL -Xcc -Xclang -Xcc --dependent-lib=msvcrt -Xcc -gdwarf -no-auto-bridging-header-chaining -module-name SwiftFTXUI -package-name swift_cpp_ftxui -in-process-plugin-server-path C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Toolchains\\6.2.0+Asserts\\usr\\bin\\SwiftInProcPluginServer.dll -plugin-path C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Toolchains\\6.2.0+Asserts\\usr\\bin -plugin-path C:\\Users\\at2283\\AppData\\Local\\Programs\\Swift\\Toolchains\\6.2.0+Asserts\\usr\\local\\bin -autolink-library oldnames -autolink-library msvcrt -Xcc -D_MT -Xcc -D_DLL -parse-as-library -o E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\SwiftFTXUI.build\\SwiftFTXUI.swift.o -index-store-path E:\\swift_cpp_ftxui\\.build\\x86_64-unknown-windows-msvc\\debug\\index\\store -index-system-modules
1. Swift version 6.2-dev (LLVM 0bbdf73817e84bd, Swift 5797130e90a66c5)
2. Compiling with the current language version
3. While evaluating request TypeCheckPrimaryFileRequest(source_file "E:\swift_cpp_ftxui\Sources\SwiftFTXUI\SwiftFTXUI.swift")
4. While evaluating request TypeCheckFunctionBodyRequest(SwiftFTXUI.(file).SwiftFTXUI.main()@E:\swift_cpp_ftxui\Sources\SwiftFTXUI\SwiftFTXUI.swift:8:17)
5. While type-checking statement at [E:\swift_cpp_ftxui\Sources\SwiftFTXUI\SwiftFTXUI.swift:8:24 - line:64:5] RangeText="{
print("🎯 FTXUI Swift Integration Demo")
print("===============================")
// Test 1: Create FTXUI Screen object
print("\n1. Creating FTXUI Screen object...")
let screen = FTXUI.ftxui.Screen.init(50, 10)
print(" ✓ FTXUI Screen(50, 10) created successfully")
print(" ✓ Swift can access FTXUI C++ classes")
// Test 2: Test screen properties
print("\n2. Testing screen properties...")
let dimX = screen.dimx()
let dimY = screen.dimy()
print(" ✓ Screen dimensions: \(dimX) x \(dimY)")
// Test 3: Create and manipulate screen buffer
print("\n3. Testing FTXUI screen buffer manipulation...")
var displayScreen = FTXUI.ftxui.Screen.init(60, 12)
displayScreen.Clear()
// Manually draw content to demonstrate FTXUI screen access
// Note: Advanced DOM functions crash Swift compiler, but basic screen works
print(" ✓ Display screen created and cleared")
// Try to create a simple text element
let textElement = FTXUI.ftxui.text("Hello FTXUI!")
print(" ✓ Text element created successfully")
// Try to render it to the screen
FTXUI.ftxui.Render(&mutableScreen, textElement)
print(" ✓ Element rendered to screen")
// Test 4: Render a working FTXUI screen
print("\n4. Rendering FTXUI Screen with Buffer:")
print(" ╭─────────────────────────────────────────────────────────╮")
print(" │ FTXUI Screen Buffer │")
print(" ├─────────────────────────────────────────────────────────┤")
displayScreen.Print()
print(" ╰─────────────────────────────────────────────────────────╯")
print(" ✓ FTXUI screen rendered successfully!")
// Test 5: Show FTXUI capabilities summary
print("\n5. FTXUI Integration Summary:")
print(" ✓ FTXUI Screen class instantiation")
print(" ✓ Screen dimension queries (dimx/dimy)")
print(" ✓ Screen.Clear() method calls")
print(" ✓ Screen.Print() rendering")
print(" ⚠ Advanced DOM (text/border/vbox) causes compiler crashes")
print("\n✓ FTXUI library successfully linked and accessible!")
print("✓ Swift C++ interop working with FTXUI classes")
print("✓ Screen objects can be created and manipulated")
print("\n📝 Note: Advanced DOM rendering functions cause Swift")
print(" compiler crashes on Windows. Basic screen operations work!")
"
6. While type-checking expression at [E:\swift_cpp_ftxui\Sources\SwiftFTXUI\SwiftFTXUI.swift:38:22 - line:38:68] RangeText="FTXUI.ftxui.Render(&mutableScreen, textElement"
7. While type-checking-target starting at E:\swift_cpp_ftxui\Sources\SwiftFTXUI\SwiftFTXUI.swift:38:34
8. While evaluating request QualifiedLookupRequest(0x227076f65d8 AbstractFunctionDecl name=main() : (SwiftFTXUI.Type) -> () -> (), {__ObjC.(file).ftxui@E:\swift_cpp_ftxui\Sources\FTXUI\include\ftxui\screen\deprecated.hpp:9:11}, 'Render', { NL_ProtocolMembers, NL_RemoveNonVisible, NL_RemoveOverridden, NL_OnlyTypes })
9. While evaluating request DirectLookupRequest(directly looking up 'Render' on __ObjC.(file).ftxui@E:\swift_cpp_ftxui\Sources\FTXUI\include\ftxui\screen\deprecated.hpp:9:11 with options { })
Exception Code: 0x80000003
#0 0x00007ff77db059d5 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x6f059d5)
#1 0x00007ffde072e6d5 (C:\WINDOWS\System32\ucrtbase.dll+0x7e6d5)
#2 0x00007ffde072f6e1 (C:\WINDOWS\System32\ucrtbase.dll+0x7f6e1)
#3 0x00007ffde073108e (C:\WINDOWS\System32\ucrtbase.dll+0x8108e)
#4 0x00007ffde07312d1 (C:\WINDOWS\System32\ucrtbase.dll+0x812d1)
#5 0x00007ff778b97eee (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1f97eee)
#6 0x00007ff778eba971 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x22ba971)
#7 0x00007ff778d4021c (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x214021c)
#8 0x00007ff778d582b6 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x21582b6)
#9 0x00007ff778d5114a (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x215114a)
#10 0x00007ff778eb7987 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x22b7987)
#11 0x00007ff778d41f41 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x2141f41)
#12 0x00007ff778d58e20 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x2158e20)
#13 0x00007ff778d591a8 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x21591a8)
#14 0x00007ff7787c9c87 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1bc9c87)
#15 0x00007ff7787a1832 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1ba1832)
#16 0x00007ff7787a1f58 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1ba1f58)
#17 0x00007ff7787a379a (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1ba379a)
#18 0x00007ff778e24c08 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x2224c08)
#19 0x00007ff778e25269 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x2225269)
#20 0x00007ff778e26705 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x2226705)
#21 0x00007ff778e248a0 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x22248a0)
#22 0x00007ff778e25246 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x2225246)
#23 0x00007ff778e29e66 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x2229e66)
#24 0x00007ff77882a691 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1c2a691)
#25 0x00007ff77879ea1b (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1b9ea1b)
#26 0x00007ff7787b35c4 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1bb35c4)
#27 0x00007ff7787b1b65 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1bb1b65)
#28 0x00007ff7787b1c27 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1bb1c27)
#29 0x00007ff7786a33bd (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1aa33bd)
#30 0x00007ff7786a4730 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1aa4730)
#31 0x00007ff778697b73 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1a97b73)
#32 0x00007ff77869ed42 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1a9ed42)
#33 0x00007ff778cbf18e (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x20bf18e)
#34 0x00007ff778d042e3 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x21042e3)
#35 0x00007ff778bd86ef (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1fd86ef)
#36 0x00007ff7785375ad (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x19375ad)
#37 0x00007ff7785182ca (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x19182ca)
#38 0x00007ff778532a97 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x1932a97)
#39 0x00007ff77853b67b (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x193b67b)
#40 0x00007ff7774dbfdc (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x8dbfdc)
#41 0x00007ff7774e6b5a (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x8e6b5a)
#42 0x00007ff7774eada5 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x8eada5)
#43 0x00007ff777246a06 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x646a06)
#44 0x00007ff777246f0b (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x646f0b)
#45 0x00007ff777248e72 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x648e72)
#46 0x00007ff777094050 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x494050)
#47 0x00007ff777093be7 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x493be7)
#48 0x00007ff77db654b8 (C:\Users\at2283\AppData\Local\Programs\Swift\Toolchains\6.2.0+Asserts\usr\bin\swift-frontend.exe+0x6f654b8)
#49 0x00007ffde0ba259d (C:\WINDOWS\System32\KERNEL32.DLL+0x1259d)
#50 0x00007ffde2ceaf78 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x5af78)
```