Hello,
I had tried to do an experiment on x86_64 emulation on a M1 Pro system; using both UTM (3.1.5) and Lima-vm (both use Qemu), and both have an issue where unable to build an empty project:
$ uname -a
Linux lima-swift-lima 5.4.0-100-generic #113-Ubuntu SMP Thu Feb 3 18:43:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
$ lscpu |grep QEMU
Model name: QEMU Virtual CPU version 2.5+
$ mkdir /tmp/test && cd /tmp/test
$ swift package init
$ swift build -v
error: 'test': Invalid manifest
/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend -frontend -c -primary-file /tmp/test/Package.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -I /tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/lib/swift/pm/ManifestAPI -swift-version 5 -package-description-version 5.7.0 -new-driver-path /tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-driver -disable-implicit-concurrency-module-import -empty-abi-descriptor -resource-dir /tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/lib/swift -module-name main -o /tmp/TemporaryDirectory.8l7W3X/Package-1.o
Swift version 5.7-dev (LLVM 0f7d6007e7787bb, Swift 270d100b43f5e33)
Target: x86_64-unknown-linux-gnu
error: compile command failed due to signal 4 (use -v to see invocation)
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project and the crash backtrace.
Stack dump:
0. Program arguments: /tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend -frontend -c -primary-file /tmp/test/Package.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -I /tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/lib/swift/pm/ManifestAPI -swift-version 5 -package-description-version 5.7.0 -new-driver-path /tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-driver -disable-implicit-concurrency-module-import -empty-abi-descriptor -resource-dir /tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/lib/swift -module-name main -o /tmp/TemporaryDirectory.8l7W3X/Package-1.o
1. Swift version 5.7-dev (LLVM 0f7d6007e7787bb, Swift 270d100b43f5e33)
2. Compiling with the current language version
3. While evaluating request ParseSourceFileRequest(source_file "/tmp/test/Package.swift")
4. With parser at source location: /tmp/test/Package.swift:7:17
#0 0x00000000060e5f33 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x60e5f33)
#1 0x00000000060e3c7e llvm::sys::RunSignalHandlers() (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x60e3c7e)
#2 0x00000000060e62bf SignalHandler(int) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x60e62bf)
#3 0x00007f22b41a73c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
#4 0x0000000002064c73 swift::unicode::getGraphemeClusterBreakProperty(unsigned int) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x2064c73)
#5 0x0000000002060fe9 swift::unicode::extractFirstExtendedGraphemeCluster(llvm::StringRef) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x2060fe9)
#6 0x0000000001bb9459 swift::StringLiteralExpr::StringLiteralExpr(llvm::StringRef, swift::SourceRange, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1bb9459)
#7 0x0000000001dcc2e5 createStringLiteralExprFromSegment(swift::ASTContext&, swift::Lexer const*, swift::Lexer::StringSegment&, swift::SourceLoc) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dcc2e5)
#8 0x0000000001dc835a swift::Parser::parseExprStringLiteral() (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc835a)
#9 0x0000000001dc664c swift::Parser::parseExprPrimary(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc664c)
#10 0x0000000001dc142f swift::Parser::parseExprPostfix(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc142f)
#11 0x0000000001dc0ca4 swift::Parser::parseExprUnary(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc0ca4)
#12 0x0000000001dc0701 swift::Parser::parseExprSequenceElement(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc0701)
#13 0x0000000001dbf014 swift::Parser::parseExprSequence(swift::Diag<>, bool, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dbf014)
#14 0x0000000001dbee5a swift::Parser::parseExprImpl(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dbee5a)
#15 0x0000000001dd0ecf swift::ParserStatus llvm::function_ref<swift::ParserStatus ()>::callback_fn<swift::Parser::parseExprList(swift::tok, swift::tok, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Parser::ExprListElt>&, swift::SourceLoc&, swift::syntax::SyntaxKind)::$_7>(long) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dd0ecf)
#16 0x0000000001de13a1 swift::Parser::parseListItem(swift::ParserStatus&, swift::tok, swift::SourceLoc, swift::SourceLoc&, bool, swift::syntax::SyntaxKind, llvm::function_ref<swift::ParserStatus ()>) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1de13a1)
#17 0x0000000001de1904 swift::Parser::parseList(swift::tok, swift::SourceLoc, swift::SourceLoc&, bool, swift::Diag<>, swift::syntax::SyntaxKind, llvm::function_ref<swift::ParserStatus ()>) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1de1904)
#18 0x0000000001dcecf1 swift::Parser::parseExprList(swift::tok, swift::tok, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Parser::ExprListElt>&, swift::SourceLoc&, swift::syntax::SyntaxKind) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dcecf1)
#19 0x0000000001dc52e0 swift::Parser::parseArgumentList(swift::tok, swift::tok, bool, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc52e0)
#20 0x0000000001dc5100 swift::Parser::parseExprCallSuffix(swift::ParserResult<swift::Expr>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc5100)
#21 0x0000000001dc1dd0 swift::Parser::parseExprPostfixSuffix(swift::ParserResult<swift::Expr>, bool, bool, bool&) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc1dd0)
#22 0x0000000001dc1458 swift::Parser::parseExprPostfix(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc1458)
#23 0x0000000001dc0ca4 swift::Parser::parseExprUnary(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc0ca4)
#24 0x0000000001dc0701 swift::Parser::parseExprSequenceElement(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dc0701)
#25 0x0000000001dbf014 swift::Parser::parseExprSequence(swift::Diag<>, bool, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dbf014)
#26 0x0000000001dbee5a swift::Parser::parseExprImpl(swift::Diag<>, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dbee5a)
#27 0x0000000001db4b3d swift::Parser::parseDeclVar(swift::OptionSet<swift::Parser::ParseDeclFlags, unsigned int>, swift::DeclAttributes&, llvm::SmallVectorImpl<swift::Decl*>&, swift::SourceLoc, swift::StaticSpellingKind, swift::SourceLoc, bool) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1db4b3d)
#28 0x0000000001da33bd swift::Parser::parseDecl(swift::OptionSet<swift::Parser::ParseDeclFlags, unsigned int>, bool, llvm::function_ref<void (swift::Decl*)>) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1da33bd)
#29 0x0000000001decff1 swift::Parser::parseBraceItems(llvm::SmallVectorImpl<swift::ASTNode>&, swift::BraceItemListKind, swift::BraceItemListKind, bool&) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1decff1)
#30 0x0000000001d89507 swift::Parser::parseTopLevel(llvm::SmallVectorImpl<swift::Decl*>&) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1d89507)
#31 0x0000000001dea1fb swift::ParseSourceFileRequest::evaluate(swift::Evaluator&, swift::SourceFile*) const (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dea1fb)
#32 0x0000000001dead3c swift::SimpleRequest<swift::ParseSourceFileRequest, swift::SourceFileParsingResult (swift::SourceFile*), (swift::RequestFlags)12>::evaluateRequest(swift::ParseSourceFileRequest const&, swift::Evaluator&) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1dead3c)
#33 0x0000000001c5c984 llvm::Expected<swift::ParseSourceFileRequest::OutputType> swift::Evaluator::getResultUncached<swift::ParseSourceFileRequest>(swift::ParseSourceFileRequest const&) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1c5c984)
#34 0x0000000001c5c681 llvm::Expected<swift::ParseSourceFileRequest::OutputType> swift::Evaluator::getResultCached<swift::ParseSourceFileRequest, (void*)0>(swift::ParseSourceFileRequest const&) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1c5c681)
#35 0x0000000001c41e4a swift::ParseSourceFileRequest::OutputType swift::evaluateOrDefault<swift::ParseSourceFileRequest>(swift::Evaluator&, swift::ParseSourceFileRequest, swift::ParseSourceFileRequest::OutputType) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1c41e4a)
#36 0x0000000001c39e0e swift::SourceFile::getTopLevelDecls() const (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x1c39e0e)
#37 0x000000000140846c swift::performImportResolution(swift::SourceFile&) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x140846c)
#38 0x0000000000618c21 swift::CompilerInstance::performParseAndResolveImportsOnly() (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x618c21)
#39 0x0000000000618ed1 swift::CompilerInstance::performSema() (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x618ed1)
#40 0x00000000005c9195 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x5c9195)
#41 0x00000000004baf6c swift::mainEntry(int, char const**) (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x4baf6c)
#42 0x00007f22b35d20b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b3)
#43 0x00000000004ba5be _start (/tmp/swift-DEVELOPMENT-SNAPSHOT-2022-04-20-a-ubuntu20.04/usr/bin/swift-frontend+0x4ba5be)
Simplest way to reproduce is:
brew install lima
curl -s https://raw.githubusercontent.com/lima-vm/lima/master/examples/ubuntu-lts.yaml -o ubuntu-lts.yaml
sed -i '' '1 i \
arch: "x86_64"
' ubuntu-lts.yaml
limactl start --name=swift-lima ubuntu-lts.yaml
limactl shell swift-lima
The parsing error happens on line 7:
$ head -10 Package.swift | cat -n
1 // swift-tools-version: 5.7
2 // The swift-tools-version declares the minimum version of Swift required to build this package.
3
4 import PackageDescription
5
6 let package = Package(
7 name: "test",
8 products: [
9 // Products define the executables and libraries a package produces, and make them visible to other packages.
10 .library(
I'll create a issue once the Jira migration process has been completed.