Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swift をつくろう!

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Swift をつくろう!

Avatar for Yu Takahashi

Yu Takahashi

July 05, 2025
Tweet

More Decks by Yu Takahashi

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ  2 / 34 ߴڮ ༝ (Yu Takahashi) ॴଐ

    • ؔ੢ֶӃେֶ ޻ֶ෦ ৘ใ޻ֶ՝ఔ 4೥ • STORES iOS ΤϯδχΞ (26 ଔ) • Tech.Uni લ୅ද झຯ • ཱྀߦ • ݸਓ։ൃ ݚڀ • LLM ࢖ͬͯͳΜ͔৭ʑ… 2025/07/05 Swift Λͭ͘Ζ͏! X: @yutk_941
  2. Swift ͬͯ…φχ?  3 2025/07/05 / 34 Swift Λͭ͘Ζ͏! •

    Apple ͕։ൃͨ͠ Objective-C ͷޙܧݴޠ • 2014 ೥ʹެ։ • 2015 ೥ʹ OSS Խ • ಛ௃ • จ๏͕γϯϓϧ • ҆શੑ͕ߴ͍ • ΦϓγϣφϧܕͷΞϯϥοϓ • ໌ࣔతͳΤϥʔॲཧ (throws, do-try-catch) • Swift Concurrency (Swift 6~, ڧఢ) • etc…
  3. Why?  5 2025/07/05 / 34 Swift Λͭ͘Ζ͏! AI ࣌୅ͷΤϯδχΞੜଘઓུ

    • Ϗδωε΍σβΠϯʹखΛ৳͹͢ • ޿͘ઙ͘: AI Ͱ͍͍ →޿͘ਂ͘ (ڱ͘ਂ͘?) Ұྫͱͯ͠ɺSwift ʹίϯτϦϏϡʔτ͢Δͷ΋ΞϦͰ͸ʂ େֶͰֶΜͩ͜ͱΛ࢖͍͍ͨ • ίϯύΠϥͷतۀͲ͜Ͱ໾ʹཱͭΜ… ໨ඪ: ŚŕŴŚŕŴɺʮSwift ͷίϯτϦϏϡʔτ͕ҙ֎ͱ؆୯ͦ͏ʂʯͬͯ఻͑ͳ͖Ό
  4. 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/ # εΫϦϓτ΍Ϗϧυิॿ
  5. ίϯύΠϧͷྲྀΕ  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 ͳͲͷωΠςΟϒίʔυͷੜ੒
  6. Swift Λ…ͭ͘Δ?  8 2025/07/05 / 34 Swift Λͭ͘Ζ͏! •

    େਓ͘͠ϦϙδτϦΛΫϩʔϯ (swiftlang/swift) • README ΛಡΜͰ؀ڥߏங • ґଘؔ܎ͷΫϩʔϯ͕௕͐! (10 ෼͘Β͍) • ॳճϏϧυ͕௕͐! (1 ࣌ؒ͘Β͍) • ϏϧυϑΝΠϧ͕ॏ͍! (200 GB ͘Β͍) • Ͱ?
  7. ΤϥʔจΛม͑ͯΈΔ (1/3)  10 2025/07/05 / 34 Swift Λͭ͘Ζ͏! func

    main() { let value = 10 value = 20 // Cannot assign to value: 'value' is a 'let' constant }
  8. ΤϥʔจΛม͑ͯΈΔ (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
  9. ΤϥʔจΛม͑ͯΈΔ (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 | }
  10. ίϯτϦϏϡʔτͷ͢ʍΊ  15 2025/07/05 / 34 Swift Λͭ͘Ζ͏! • ࣗ෼ͰʮίϨܽؕ΍ΖwwwʯͬͯͷΛ୳͢

    - ήΩϜζ - (Τϥʔग़ͯ΋େମࣗ෼͕ѱ͍) • Issues ΛݟΔ - good first issue ͰߜΓࠐΉ!
  11. Issue ΛݟͯΈΔ (1/3)  17 2025/07/05 / 34 Swift Λͭ͘Ζ͏!

    memberwise ͳ init ͕ public Ͱͳ͍࣌ͷ਍அΛݡ͘͢Δ https://github.com/swiftlang/swift/issues/78362
  12. 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 Λએݴ͠ͳ͍ͱ͍͚ͳ͍Α”
  13. Issue ΛݟͯΈΔ (3/3)  19 2025/07/05 / 34 Swift Λͭ͘Ζ͏!

    memberwise ͳ init ͕ public Ͱͳ͍࣌ͷ਍அΛݡ͘͢Δ ظ଴͢Δಈ࡞ • ҉໧తͳ memberwise ͳ init Ͱ͋Δ͜ͱΛ໌ࣔ • memberwise ͳ init ͸҉໧తʹ public ʹͳΒͳ͍͜ͱΛ໌ࣔ • public init Λิ׬ͰએݴͰ͖ΔΑ͏ʹ͢Δ
  14. ࣮૷  21 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1. ΤϥʔจͷఆٛΛݟΔ

    2. ΤϥʔΛग़͍ͯ͠Δ࣮૷ΛݟΔ 3. ͳΜ͔͍͍ײ͡ʹ௚ͯ͠΋Β͏! मਖ਼ͯ͠ཉ͍͠ϑΝΠϧ໊ͱ Issue ͷ಺༰Λ Copilot ʹϙΠ!
  15. ΤϥʔจͷఆٛΛݟΔ  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 *))
  16. ΤϥʔจͷఆٛΛݟΔ  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))
  17. ΤϥʔΛग़͍ͯ͠Δ࣮૷ΛݟΔ  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);
  18. ͳΜ͔͍͍ײ͡ʹ௚ͯ͠΋Β͏!  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 ͔Ͳ͏͔ͷ൑ఆϩδοΫͱɺमਖ਼ิ׬ϩδοΫ΋࣮૷ͯ͘͠Εͨ!
  19.  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; } ͳΜ͔͍͍ײ͡ʹ௚ͯ͠΋Β͏!
  20. ಈ͔ͯ͠ΈΑ~ (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 }
  21. ಈ͔ͯ͠ΈΑ~ (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 ॻ͍ͨΖ͔?
  22. ಈ͔ͯ͠ΈΑ~ (2/2)  29 2025/07/05 / 34 Swift Λͭ͘Ζ͏! Xcode

    Ͱ FIXIT ͕Ͱ͖Δ͔Ͳ͏͔ɺ΍ͬͯΈ͍ͨ! 1. Swift Toolchain ΛϏϧυ͢Δ ./utils/build-toolchain $BUNDLE_PREFIX --macos-only --sccache 2. Xcode ʹద༻͢Δ
  23. ϏϧυΤϥʔ͕ͬ…  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
  24. ͜Μͳͱ͖͸…  31 2025/07/05 / 34 Swift Λͭ͘Ζ͏! 1. Ұ୴

    AI • ֨ಆ͚ͨ͠ͲΪϒΞοϓ… 2. Swift Forum ΁ GO! (༨ஊ) தֶੜͷ࣌ʹ Stack Overflow ͰӳޠͰ࣭໰ͯ͠Έ͕ͨ ʮӳจ๏ࡶڕ͗͢ʂwʯϦϓϥΠͱ -5 ͕͍ͭͨݏͳهԱ…😇
  25. ͜Μͳͱ͖͸…  32 2025/07/05 / 34 Swift Λͭ͘Ζ͏! ฦ৴͕Ωλ! (ࠓ೔ͷ

    0 : 30) Ͱ͕͢ ௚͕࣌ؒ͢ແ͔ͬͨͷͰ ଓ͖͸ iOSDC ͔Ͳ͔͜Ͱ…
  26. ·ͱΊ  34 2025/07/05 / 34 Swift Λͭ͘Ζ͏! ϙΠϯτ ؆୯ͳ͜ͱ͔Β΍ͬͯΈΔʂҊ֎ϋϚΔ͔΋ʁ

    ϑΥʔϥϜΛ׆༻͢ΔʂAI Λۦ࢖͢Δʂ(આ໌͸ಡ΋͏) ߋͳΔਂΈ΁ PR ग़ͯ͠Ϛʔδ·Ͱ͍࣋ͬͯ͘ʂͦͯ͠υϠΔʂ ఻͍͑ͨ͜ͱ Swift ͷίϯτϦϏϡʔτ͸ҙ֎ͱ؆୯ (ͦ͏)ʂ
  27. 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
  28. Appendix: πʔϧνΣʔϯϏϧυํ๏  37 2025/07/05 / 34 Swift Λͭ͘Ζ͏! جຊతʹ

    README ʹै͑͹ OK! ஫ҙ఺ • Τϥʔ͕ग़Δ͜ͱ͕͋ΔͷͰɺ ͜Ε Λࢀߟʹ΍ͬͯΈΔ • cmake ͸ v3 ͷ࠷৽ͷ΋ͷΛ࢖ͬͨํ͕ྑ͍ มߋ࣌ʹ΍Δ͜ͱ ./utils/build-toolchain $BUNDLE_PREFIX --macos-only --sccache