Share
Embed
Swift をつくろう!
Yu Takahashi
July 05, 2025
Transcript
37 slides
-
ࣗݾհ  2 / 34 ߴڮ ༝ (Yu Takahashi) ॴଐ
• ֶؔӃେֶ ֶ෦ ใֶ՝ఔ 4 • STORES iOS ΤϯδχΞ (26 ଔ) • Tech.Uni લද झຯ • ཱྀߦ • ݸਓ։ൃ ݚڀ • LLM ͬͯͳΜ͔৭ʑ… 2025/07/05 Swift Λͭ͘Ζ͏! X: @yutk_941 -
Swift ͬͯ…φχ?  3 2025/07/05 / 34 Swift Λͭ͘Ζ͏! •
Apple ͕։ൃͨ͠ Objective-C ͷޙܧݴޠ • 2014 ʹެ։ • 2015 ʹ OSS Խ • ಛ • จ๏͕γϯϓϧ • ҆શੑ͕ߴ͍ • ΦϓγϣφϧܕͷΞϯϥοϓ • ໌ࣔతͳΤϥʔॲཧ (throws, do-try-catch) • Swift Concurrency (Swift 6~, ڧఢ) • etc… -
Why?  5 2025/07/05 / 34 Swift Λͭ͘Ζ͏! AI ࣌ͷΤϯδχΞੜଘઓུ
• ϏδωεσβΠϯʹखΛ৳͢ • ͘ઙ͘: AI Ͱ͍͍ →͘ਂ͘ (ڱ͘ਂ͘?) Ұྫͱͯ͠ɺSwift ʹίϯτϦϏϡʔτ͢ΔͷΞϦͰʂ େֶͰֶΜͩ͜ͱΛ͍͍ͨ • ίϯύΠϥͷतۀͲ͜ͰʹཱͭΜ… ඪ: ŚŕŴŚŕŴɺʮSwift ͷίϯτϦϏϡʔτ͕ҙ֎ͱ؆୯ͦ͏ʂʯͬͯ͑ͳ͖Ό -
Swift ͬͯͲ͏ͳͬͯΔ?  6 2025/07/05 / 34 Swift Λͭ͘Ζ͏! swift/
lib/ AST/ # நߏจʢAbstract Syntax Treeʣͷఆٛͱૢ࡞ Parse/ # ࣈ۟ղੳɾߏจղੳϩδοΫ Sema/ # ܕݕࠪͱηϚϯςΟοΫղੳ SIL/ # Swift Intermediate Languageʢதؒදݱʣ IRGen/ # LLVM IR ੜϩδοΫ (ϋʔυΣΞʹґଘ͠ͳ͍൚༻తͳதؒݴޠ) Frontend/ # ίϯύΠϥϑϩϯτΤϯυॲཧʢCLIͳͲʣ Basic/ # جຊతͳϢʔςΟϦςΟɾڞ௨ج൫ stdlib/ public/ SwiftShims/ # Swift ϥϯλΠϜͱͷڮ͠ίʔυʢCޓͳͲʣ CoreFoundation/ # CoreFoundation ϥούʔ Darwin/ # macOS/iOS ༻γεςϜΠϯλʔϑΣʔε internal/ # ඪ४ϥΠϒϥϦͷ෦࣮ tools/ swift-frontend/ # swiftc ͷ࣮ߦຊମ swift-demangle/ # ໊લम০Λ͢πʔϧ swift-reflection-dump/ # ϦϑϨΫγϣϯใͷσόοάग़ྗ include/ # C++ ϔομʔʢϥΠϒϥϦɾϥϯλΠϜ༻ʣ utils/ # εΫϦϓτϏϧυิॿ -
ίϯύΠϧͷྲྀΕ  7 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1. Swift
ιʔείʔυ 2. swiftc Λ࣮ߦ (Frontend) 3. ࣈ۟ղੳɾߏจղੳ (Parse) 4. நߏจ (AST) ͷߏங 5. ҙຯղੳɾܕݕࠪ (Sema) • ܕਪɺΤϥʔνΣοΫɺΞΫηε੍ޚ 6. தؒදݱΛੜ (SIL) 7. LLVM IR ͷੜ (IRgen) 8. x86_64, arm64 ͳͲͷωΠςΟϒίʔυͷੜ -
Swift Λ…ͭ͘Δ?  8 2025/07/05 / 34 Swift Λͭ͘Ζ͏! •
େਓ͘͠ϦϙδτϦΛΫϩʔϯ (swiftlang/swift) • README ΛಡΜͰڥߏங • ґଘؔͷΫϩʔϯ͕͐! (10 ͘Β͍) • ॳճϏϧυ͕͐! (1 ࣌ؒ͘Β͍) • ϏϧυϑΝΠϧ͕ॏ͍! (200 GB ͘Β͍) • Ͱ? -
ΤϥʔจΛม͑ͯΈΔ (1/3)  10 2025/07/05 / 34 Swift Λͭ͘Ζ͏! func
main() { let value = 10 value = 20 // Cannot assign to value: 'value' is a 'let' constant } -
ΤϥʔจΛม͑ͯΈΔ (2/3)  11 2025/07/05 / 34 Swift Λͭ͘Ζ͏! //
include/swift/AST/DiagnosticsSema.def:5178-5179 ERROR(assignment_lhs_is_immutable_variable,none, "cannot assign to value: %0", (StringRef)) // include/swift/AST/DiagnosticsSema.def:5178-5179 ERROR(assignment_lhs_is_immutable_variable,none, "Wow! What are you doing!", (StringRef)) Before After -
ΤϥʔจΛม͑ͯΈΔ (3/3)  12 2025/07/05 / 34 Swift Λͭ͘Ζ͏! func
main() { let value = 10 value = 20 // Wow! What are you doing! } main.swift:3:5: error: Wow! What are you doing! 1 | func main() { 2 | let value = 10 | `- note: change 'let' to 'var' to make it mutable 3 | value = 20 | `- error: Wow! What are you doing! 4 | } -
ίϯτϦϏϡʔτͷ͢ʍΊ  15 2025/07/05 / 34 Swift Λͭ͘Ζ͏! • ࣗͰʮίϨܽؕΖwwwʯͬͯͷΛ୳͢
- ήΩϜζ - (Τϥʔग़ͯେମ͕ࣗѱ͍) • Issues ΛݟΔ - good first issue ͰߜΓࠐΉ! -
Issue ΛݟͯΈΔ (1/3)  17 2025/07/05 / 34 Swift Λͭ͘Ζ͏!
memberwise ͳ init ͕ public Ͱͳ͍࣌ͷஅΛݡ͘͢Δ https://github.com/swiftlang/swift/issues/78362 -
Issue ΛݟͯΈΔ (2/3)  18 2025/07/05 / 34 Swift Λͭ͘Ζ͏!
public struct Number: RawRepresentable { `- error: initializer 'init(rawValue:)' must be declared public because it matches a requirement in public protocol 'RawRepresentable' [witness_not_accessible_proto] public let rawValue: Int } “RawRepresentable ϓϩτίϧΛܧঝ͍ͯ͠Δ public ͳ struct ͳͷͰ public ͳ init Λએݴ͠ͳ͍ͱ͍͚ͳ͍Α” -
Issue ΛݟͯΈΔ (3/3)  19 2025/07/05 / 34 Swift Λͭ͘Ζ͏!
memberwise ͳ init ͕ public Ͱͳ͍࣌ͷஅΛݡ͘͢Δ ظ͢Δಈ࡞ • ҉తͳ memberwise ͳ init Ͱ͋Δ͜ͱΛ໌ࣔ • memberwise ͳ init ҉తʹ public ʹͳΒͳ͍͜ͱΛ໌ࣔ • public init ΛิͰએݴͰ͖ΔΑ͏ʹ͢Δ -
ίϯτϦϏϡʔτͷ͢ʍΊ  20 2025/07/05 / 34 Swift Λͭ͘Ζ͏! ͬͯΈ͍ͨ Issue
ΛܾΊͨΒ… < ͤΜ͠Ό͍ -
࣮  21 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1. ΤϥʔจͷఆٛΛݟΔ
2. ΤϥʔΛग़͍ͯ͠Δ࣮ΛݟΔ 3. ͳΜ͔͍͍ײ͡ʹͯ͠Β͏! मਖ਼ͯ͠ཉ͍͠ϑΝΠϧ໊ͱ Issue ͷ༰Λ Copilot ʹϙΠ! -
ΤϥʔจͷఆٛΛݟΔ  22 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1. ΤϥʔจͰݕࡧΛ͔͚Δ
2. include/swift/AST/DiagnosticsSema.def protocol Ͱఆٛͯ͋͠ΔͷʹΞΫηεͰ͖ͳ͍߹ͷΤϥʔΛൃݟ! // include/swift/AST/DiagnosticsSema.def:3021-3028 ERROR(witness_not_accessible_proto,none, "%select{initializer %1|method %1|%select{|setter for }2property %1" "|subscript%select{| setter}2}0 must be declared " "%select{%error|fileprivate|internal|package|public|%error}3 because it matches a " "requirement in %select{private|fileprivate|internal|package|public|%error}4 protocol " "%5", (RequirementKind, const ValueDecl *, bool, AccessLevel, AccessLevel, const ProtocolDecl *)) -
ΤϥʔจͷఆٛΛݟΔ  23 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1. ΤϥʔจͰݕࡧΛ͔͚Δ
2. include/swift/AST/DiagnosticsSema.def protocol Ͱఆٛͯ͋͠ΔͷʹΞΫηεͰ͖ͳ͍߹ͷΤϥʔΛൃݟ! ERROR(witness_memberwise_init_not_accessible_proto,none, "cannot use implicit memberwise initializer for %0 here; " "protocol %1 requires an explicit %select{%error|fileprivate|internal|package|public| %error}2 " "%3 initializer", (Type, const ProtocolDecl *, AccessLevel, const ValueDecl *)) FIXIT(add_explicit_init_for_protocol, "\n\n %select{%error|fileprivate|internal|package|public|%error}0 init%select{|?}1(%2) {\n %3\n }", (AccessLevel, bool, StringRef, StringRef)) -
ΤϥʔΛग़͍ͯ͠Δ࣮ΛݟΔ  24 2025/07/05 / 34 Swift Λͭ͘Ζ͏! // lib/Sema/TypeCheckProtocol.cpp:4442-4466
auto requiredAccessScope = check.RequiredAccessScope; AccessLevel requiredAccess = requiredAccessScope.requiredAccessForDiagnostics(); auto proto = conformance->getProtocol(); auto protoAccessScope = proto->getFormalAccessScope(DC); bool protoForcesAccess = requiredAccessScope.hasEqualDeclContextWith(protoAccessScope); auto diagKind = protoForcesAccess ? diag::witness_not_accessible_proto : diag::witness_not_accessible_type; bool isSetter = (check.Kind == CheckKind::AccessOfSetter); auto &diags = DC->getASTContext().Diags; diags.diagnose(getLocForDiagnosingWitness(conformance, witness), diagKind, getProtocolRequirementKind(requirement), witness, isSetter, requiredAccess, protoAccessScope.accessLevelForDiagnostics(), proto); auto *decl = dyn_cast<AbstractFunctionDecl>(witness); if (decl && decl->isSynthesized()) return; diagnoseWitnessFixAccessLevel(diags, witness, requiredAccess, isSetter); -
ͳΜ͔͍͍ײ͡ʹͯ͠Β͏!  25 2025/07/05 / 34 Swift Λͭ͘Ζ͏! ERROR(witness_memberwise_init_not_accessible_proto,none, "cannot
use implicit memberwise initializer for %0 here; " "protocol %1 requires an explicit %select{%error|fileprivate|internal|package|public|%error}2 " "%3 initializer", (Type, const ProtocolDecl *, AccessLevel, const ValueDecl *)) FIXIT(add_explicit_init_for_protocol, "\n\n %select{%error|fileprivate|internal|package|public|%error}0 init%select{|?}1(%2) {\n %3\n }", (AccessLevel, bool, StringRef, StringRef)) 1. memberwise ͳ init ༻ͷ ERROR ͱ FIXIT ΛՃͯ͘͠Εͨ! • ERROR: จࣈ௨ΓΤϥʔ • FIXIT: Xcode ͱ͔Ͱग़ͯ͘Δमਖ਼ิ 2. memberwise ͳ init ͔Ͳ͏͔ͷఆϩδοΫͱɺमਖ਼ิϩδοΫ࣮ͯ͘͠Εͨ! -
 26 2025/07/05 / 34 Swift Λͭ͘Ζ͏! // Check if
this is a memberwise initializer for better diagnostics auto *initDecl = dyn_cast<ConstructorDecl>(witness); if (initDecl && initDecl->isMemberwiseInitializer() && protoForcesAccess) { // Special diagnostic for memberwise initializers that can't be made public auto diag = diags.diagnose(getLocForDiagnosingWitness(conformance, witness), diag::witness_memberwise_init_not_accessible_proto, conformance->getType(), proto, requiredAccess, requirement); // Add fix-it to suggest explicit initializer if (auto *structDecl = dyn_cast<StructDecl>(conformance->getType()->getAnyNominal())) { if (auto *reqInit = dyn_cast<ConstructorDecl>(requirement)) { // Build parameter string std::string paramStr; bool first = true; for (auto *param : *reqInit->getParameters()) { if (!first) paramStr += ", "; first = false; auto argName = param->getArgumentName(); if (argName.empty()) { paramStr += "_ "; } else { paramStr += argName.str(); paramStr += ": "; } paramStr += param->getInterfaceType().getString(); } // Insert fix-it at the closing brace auto insertLoc = structDecl->getBraces().End; if (insertLoc.isValid()) { diag.fixItInsert(insertLoc, diag::add_explicit_init_for_protocol, requiredAccess, reqInit->isFailable(), paramStr); } } } return; } ͳΜ͔͍͍ײ͡ʹͯ͠Β͏! -
ಈ͔ͯ͠ΈΑ~ (1/2)  27 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1.
Ϗϧυ͢Δ (Appendix ࢀর) 2. Swift ίʔυΛίϯύΠϧ͢Δ build/Ninja-RelWithDebInfoAssert/swift-macosx-arm64/bin/swiftc main.swift // main.swift public struct Number: RawRepresentable { public let rawValue: Int } -
ಈ͔ͯ͠ΈΑ~ (2/2)  28 2025/07/05 / 34 Swift Λͭ͘Ζ͏! Τϥʔ͕ৄ͘͠ͳͬͨ!
Before - error: initializer 'init(rawValue:)' must be declared public because it matches a requirement in public protocol ‘RawRepresentable protocol ͷ੍͋Δ͔Β init Λ public ͤͳ͔͋ΜͰɻ After - error: cannot use implicit memberwise initializer for 'Number' here; protocol 'RawRepresentable' requires an explicit public 'init(rawValue:)' initializer - note: add an explicit public 'init(rawValue:)' initializer to satisfy the protocol requirement memberwise ͳ init Λ҉తʹ͑ΜͰɻ protocol ͷ੍͋Δ͔Β໌ࣔతʹఆٛͯ͠ͳɻ ͋ɺ init ॻ͍ͨΖ͔? -
ಈ͔ͯ͠ΈΑ~ (2/2)  29 2025/07/05 / 34 Swift Λͭ͘Ζ͏! Xcode
Ͱ FIXIT ͕Ͱ͖Δ͔Ͳ͏͔ɺͬͯΈ͍ͨ! 1. Swift Toolchain ΛϏϧυ͢Δ ./utils/build-toolchain $BUNDLE_PREFIX --macos-only --sccache 2. Xcode ʹద༻͢Δ -
ϏϧυΤϥʔ͕ͬ…  30 2025/07/05 / 34 Swift Λͭ͘Ζ͏! ... (Omitted)
... -- Clang version: 17.0.0 -- Host linker version: 1167.5 -- Registering ExampleIRTransforms as a pass plugin (static build: OFF) -- Registering Bye as a pass plugin (static build: OFF) -- Google Benchmark version: v0.0.0, normalized to 0.0.0 -- Enabling additional flags: -DINCLUDE_DIRECTORIES=/Users/username/dev/swift-project/llvm-project/third-party/benchmark/include -- Performing Test HAVE_THREAD_SAFETY_ATTRIBUTES -- success -- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile -- Performing Test HAVE_POSIX_REGEX -- success -- Performing Test HAVE_STEADY_CLOCK -- success -- Performing Test HAVE_PTHREAD_AFFINITY -- failed to compile -- Configuring done (4.5s) -- Generating done (3.1s) -- Build files have been written to: /Users/username/dev/swift-project/build/buildbot_osx/llvm-macosx-x86_64 + popd + env /opt/homebrew/bin/cmake --build /Users/username/dev/swift-project/build/buildbot_osx/llvm-macosx-x86_64 --config RelWithDebInfo -- -j16 all LLVMTestingSupport [1/1798][ 0%][1.229s] Linking CXX executable bin/clangd FAILED: [code=1] bin/clangd : && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -gline-tables-only -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O2 -DNDEBUG -arch x86_64 -isysroot /Applications/Xcode.app/Contents/ Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk -mmacosx-version-min=13.0 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-dead_strip -Wl,-no_warn_duplicate_libraries tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/AddUsing.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/ CMakeFiles/obj.clangDaemonTweaks.dir/AnnotateHighlightings.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/DumpAST.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/DefineInline.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ DefineOutline.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ExpandDeducedType.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ExpandMacro.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ExtractFunction.cpp.o tools/clang/ tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ExtractVariable.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/MemberwiseConstructor.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ObjCLocalizeStringLiteral.cpp.o tools/clang/tools/extra/ clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ObjCMemberwiseInitializer.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/PopulateSwitch.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/RawStringLiteral.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/ CMakeFiles/obj.clangDaemonTweaks.dir/RemoveUsingNamespace.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/ScopifyEnum.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/SpecialMembers.cpp.o tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/ obj.clangDaemonTweaks.dir/SwapIfBranches.cpp.o tools/clang/tools/extra/clangd/tool/CMakeFiles/clangd.dir/ClangdToolMain.cpp.o -o bin/clangd -Wl,-rpath,@loader_path/../lib lib/libclangdMain.a lib/libclangdRemoteIndex.a lib/libclangdXpcTransport.a lib/libclangdXpcJsonConversions.a lib/libclangDaemon.a lib/libLLVMX86Info.a lib/libLLVMARMInfo.a lib/libLLVMAArch64Info.a lib/libLLVMPowerPCInfo.a lib/libLLVMSystemZInfo.a lib/libLLVMMipsInfo.a lib/libLLVMRISCVInfo.a lib/libLLVMWebAssemblyInfo.a lib/libLLVMAVRInfo.a lib/libclangDependencyScanning.a lib/libclangPseudo.a lib/libclangPseudoGrammar.a lib/libclangTidyAndroidModule.a lib/libclangTidyAbseilModule.a lib/ libclangTidyAlteraModule.a lib/libclangTidyBoostModule.a lib/libclangTidyCERTModule.a lib/libclangTidyConcurrencyModule.a lib/libclangTidyDarwinModule.a lib/libclangTidyFuchsiaModule.a lib/libclangTidyHICPPModule.a lib/libclangTidyBugproneModule.a lib/libclangAnalysisFlowSensitiveModels.a lib/libclangAnalysisFlowSensitive.a lib/ libclangTidyCppCoreGuidelinesModule.a lib/libclangTidyGoogleModule.a lib/libclangTidyLinuxKernelModule.a lib/libclangTidyLLVMModule.a lib/libclangTidyLLVMLibcModule.a lib/libclangTidyMiscModule.a lib/libclangIncludeCleaner.a lib/libclangToolingInclusionsStdlib.a lib/libclangTidyModernizeModule.a lib/libclangTidyObjCModule.a lib/ libclangTidyOpenMPModule.a lib/libclangTidyPerformanceModule.a lib/libclangTidyPortabilityModule.a lib/libclangTidyReadabilityModule.a lib/libclangTidyZirconModule.a lib/libclangTidyMPIModule.a lib/libclangTidyUtils.a lib/libclangTidy.a lib/libclangTooling.a lib/libclangToolingRefactor.a lib/libclangStaticAnalyzerFrontend.a lib/ libclangTransformer.a lib/libclangToolingRefactoring.a lib/libclangToolingSyntax.a lib/libclangStaticAnalyzerCheckers.a lib/libclangStaticAnalyzerCore.a lib/libclangCrossTU.a lib/libclangIndex.a lib/libclangFormat.a lib/libclangToolingInclusions.a lib/libclangToolingCore.a lib/libclangRewrite.a lib/libclangFrontend.a lib/libclangDriver.a lib/libLLVMWindowsDriver.a lib/libLLVMOption.a lib/libclangSerialization.a lib/libclangParse.a lib/libclangSema.a lib/libclangAPINotes.a lib/libclangAnalysis.a lib/libclangASTMatchers.a lib/libclangEdit.a lib/libclangAST.a lib/libclangLex.a lib/libclangSupport.a lib/libLLVMFrontendHLSL.a lib/libclangCAS.a lib/libclangBasic.a lib/ libLLVMFrontendOpenMP.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMFrontendOffloading.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMSymbolize.a lib/libLLVMDebugInfoPDB.a lib/libLLVMDebugInfoMSF.a lib/libLLVMDebugInfoBTF.a lib/libLLVMMCCAS.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMObject.a lib/libLLVMIRReader.a lib/libLLVMBitReader.a lib/libLLVMAsmParser.a lib/libLLVMCore.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMCASUtil.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMTextAPI.a lib/libLLVMRemoteCachingService.a lib/ libLLVMCAS.a lib/libLLVMBinaryFormat.a lib/libLLVMTargetParser.a lib/libLLVMRemoteNullService.a lib/libclangdSupport.a lib/libLLVMSupport.a -lm /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/lib/libz.tbd /opt/homebrew/lib/libzstd.dylib lib/libLLVMDemangle.a && : ld: warning: ignoring file '/opt/homebrew/lib/libzstd.dylib': found architecture 'arm64', required architecture 'x86_64' Undefined symbols for architecture x86_64: "_ZSTD_CCtx_setParameter", referenced from: llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) "_ZSTD_compress2", referenced from: llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) "_ZSTD_compressBound", referenced from: llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) "_ZSTD_createCCtx", referenced from: llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) "_ZSTD_decompress", referenced from: llvm::compression::zstd::decompress(llvm::ArrayRef<unsigned char>, unsigned char*, unsigned long&) in libLLVMSupport.a[37](Compression.cpp.o) "_ZSTD_freeCCtx", referenced from: llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) "_ZSTD_getErrorName", referenced from: llvm::compression::zstd::decompress(llvm::ArrayRef<unsigned char>, unsigned char*, unsigned long&) in libLLVMSupport.a[37](Compression.cpp.o) "_ZSTD_isError", referenced from: llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) llvm::compression::zstd::compress(llvm::ArrayRef<unsigned char>, llvm::SmallVectorImpl<unsigned char>&, int, bool) in libLLVMSupport.a[37](Compression.cpp.o) llvm::compression::zstd::decompress(llvm::ArrayRef<unsigned char>, unsigned char*, unsigned long&) in libLLVMSupport.a[37](Compression.cpp.o) ld: symbol(s) not found for architecture x86_64 clang++: error: linker command failed with exit code 1 (use -v to see invocation) [16/1798][ 0%][4.235s] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/MachOPlatform.cpp.o ninja: build stopped: subcommand failed. ERROR: command `['env', '/opt/homebrew/bin/cmake', '--build', '/Users/username/dev/swift-project/build/buildbot_osx/llvm-macosx-x86_64', '--config', 'RelWithDebInfo', '--', '-j16', 'all', 'LLVMTestingSupport']` terminated with a non-zero exit status 1, aborting ERROR: command `['caffeinate', './utils/build-script', '--swift-install-components=autolink-driver;back-deployment;compiler;clang-resource-dir-symlink;libexec;stdlib;sdk-overlay;static-mirror-lib;toolchain-tools;license;sourcekit-xpc-service;sourcekit-inproc;swift-remote-mirror;swift-remote-mirror-headers', '--llvm-install-components=llvm-ar;llvm- ranlib;llvm-cov;llvm-profdata;llvm-objdump;llvm-objcopy;llvm-symbolizer;IndexStore;clang;clang-resource-headers;builtins;runtimes;clangd;libclang;dsymutil;LTO;clang-features-file;lld', '--ios', '--tvos', '--watchos', '--xros', '--lldb', '--llbuild', '--swiftpm', '--swift-driver', '--swiftsyntax', '--swift-testing', '--swift-testing-macros', '-- swiftformat', '--playgroundsupport', '--indexstore-db', '--sourcekit-lsp', '--swiftdocc', '--wasmkit', '--release-debuginfo', '--compiler-vendor=apple', '--infer-cross-compile-hosts-on-darwin', '--lldb-use-system-debugserver', '--lldb-build-type=Release', '--build-ninja', '--build-swift-stdlib-unittest-extra', '--build-embedded-stdlib-cross- compiling', '--skip-build-benchmarks', '--extra-cmake-options=\n-DLLDB_FRAMEWORK_COPY_SWIFT_RESOURCES=0\n-DCMAKE_C_FLAGS="-gline-tables-only"\n-DCMAKE_CXX_FLAGS="-gline-tables-only"', '--extra-dsymutil-args="--verify-dwarf=none"', '--install-llvm', '--install-static-linux-config', '--install-swift', '--install-lldb', '--install-llbuild', '--install- swiftpm', '--install-swift-driver', '--install-swiftsyntax', '--install-swift-testing', '--install-swift-testing-macros', '--install-playgroundsupport', '--install-sourcekit-lsp', '--install-swiftformat', '--install-swiftdocc', '--install-destdir=/Users/username/dev/swift-project/swift/swift-nightly-install', '--darwin-install-extract-symbols', '-- install-symroot=/Users/username/dev/swift-project/swift/swift-nightly-symroot', '--install-prefix=/Library/Developer/Toolchains/swift-LOCAL-2025-07-03-a.xctoolchain/usr', '--test-installable-package', '--toolchain-benchmarks', '--reconfigure', '--installable-package=/Users/username/dev/swift-project/swift/swift-LOCAL-2025-07-03-a-osx.tar.gz', '-- symbols-package=/Users/username/dev/swift-project/swift/swift-LOCAL-2025-07-03-a-osx-symbols.tar.gz', '--darwin-toolchain-bundle-identifier=yutakahashi.20250703', '--darwin-toolchain-display-name=Local Swift Development Snapshot 2025-07-03', '--darwin-toolchain-display-name-short=Local Swift Development Snapshot', '--darwin-toolchain-name=swift- LOCAL-2025-07-03-a', '--darwin-toolchain-version=5.8.20250703', '--darwin-toolchain-alias=Local', '--darwin-toolchain-require-use-os-runtime=0', '--build-subdir=buildbot_osx', '--ios', '--tvos', '--watchos', '--test', '--validation-test', '--long-test', '--stress-test', '--lldb-test-swift-only', '--lit-args=-v --time-tests', '--installable-package=/ Users/username/dev/swift-project/swift/swift-LOCAL-2025-07-03-a-osx.tar.gz', '--assertions', '--swift-enable-ast-verifier=0', '--no-swift-stdlib-assertions', '--skip-test-lldb', '--skip-test-playgroundsupport', '--lldb-configure-tests=0', '--skip-test-swift', '--skip-test-swiftpm', '--skip-test-swift-driver', '--skip-test-llbuild', '--skip-test- lldb', '--skip-test-cmark', '--skip-test-playgroundsupport', '--skip-test-swiftsyntax', '--skip-test-swiftformat', '--skip-test-skstresstester', '--skip-test-swiftdocc', '--skip-test-sourcekit-lsp', '--skip-test-indexstore-db', '--skip-build-ios', '--skip-test-ios', '--skip-build-tvos', '--skip-test-tvos', '--skip-build-watchos', '--skip-test- watchos', '--skip-build-xros', '--skip-test-xros', '--sccache']` terminated with a non-zero exit status 1, aborting -
͜Μͳͱ͖…  31 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1. Ұ୴
AI • ֨ಆ͚ͨ͠ͲΪϒΞοϓ… 2. Swift Forum GO! (༨ஊ) தֶੜͷ࣌ʹ Stack Overflow ͰӳޠͰ࣭ͯ͠Έ͕ͨ ʮӳจ๏ࡶڕ͗͢ʂwʯϦϓϥΠͱ -5 ͕͍ͭͨݏͳهԱ…😇 -
͜Μͳͱ͖…  32 2025/07/05 / 34 Swift Λͭ͘Ζ͏! ฦ৴͕Ωλ! (ࠓͷ
0 : 30) Ͱ͕͢ ͕࣌ؒ͢ແ͔ͬͨͷͰ ଓ͖ iOSDC ͔Ͳ͔͜Ͱ… -
·ͱΊ  34 2025/07/05 / 34 Swift Λͭ͘Ζ͏! ϙΠϯτ ؆୯ͳ͜ͱ͔ΒͬͯΈΔʂҊ֎ϋϚΔ͔ʁ
ϑΥʔϥϜΛ׆༻͢ΔʂAI Λۦ͢Δʂ(આ໌ಡ͏) ߋͳΔਂΈ PR ग़ͯ͠Ϛʔδ·Ͱ͍࣋ͬͯ͘ʂͦͯ͠υϠΔʂ ͍͑ͨ͜ͱ Swift ͷίϯτϦϏϡʔτҙ֎ͱ؆୯ (ͦ͏)ʂ -
Appendix: Ϗϧυํ๏  36 2025/07/05 / 34 Swift Λͭ͘Ζ͏! README
ʹै͑ OK! ҙ • ετϨʔδΛۭ͚͓ͯ͘ (200GB Ҏ্) • εϦʔϓ͠ͳ͍Α͏ʹ͓ͯ͘͠ • cmake v3 ͷ࠷৽ͷͷΛͬͨํ͕ྑ͍ มߋ࣌ʹΔ͜ͱ utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ --release-debuginfo --swift-disable-dead-stripping \ --bootstrapping=hosttools —-sccache -
Appendix: πʔϧνΣʔϯϏϧυํ๏  37 2025/07/05 / 34 Swift Λͭ͘Ζ͏! جຊతʹ
README ʹै͑ OK! ҙ • Τϥʔ͕ग़Δ͜ͱ͕͋ΔͷͰɺ ͜Ε ΛࢀߟʹͬͯΈΔ • cmake v3 ͷ࠷৽ͷͷΛͬͨํ͕ྑ͍ มߋ࣌ʹΔ͜ͱ ./utils/build-toolchain $BUNDLE_PREFIX --macos-only --sccache