Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SwiftCoreとFoundationを読んでみた

1,849 views

Published on

カジュアルSwift勉強会

Published in: Engineering
  • Be the first to comment

SwiftCoreとFoundationを読んでみた

  1. 1. SwiftCoreと Foundationを読んで みた Mercari Inc. @kitasuke
  2. 2. Swift open sourced!
  3. 3. 事前準備 Swift のソースファイルを Xcode で開ける ようにする 熊谷さんの記事が分かり易い
  4. 4. 準備段階で出来なかったこと .gybファイルが開かない? Swift Package Managerのプロジェクトが 生成されない?
  5. 5. 概要
  6. 6. 主に使用されている言語 → Swift → C++ → C
  7. 7. Swiftで書かれている主な箇所 → SwiftCore → Foundation → TestFoundation → Swift Package Manager
  8. 8. 未実装・修正すべき箇所 → fatalError("not implemented") → FIXME → NSUnimplemented()
  9. 9. Contributor出来そうな箇所 → バグ修正 → テスト修正 → 未実装機能の追加
  10. 10. 参考になったもの (SwiftCore)
  11. 11. swift/docsにあるドキュメント → Array.rst → Generics.rst → Literals.rst → Pattern Matching.rst → Testing.rst
  12. 12. LangRefNew.rst → Whitespace and Comments → Reserved Punctuation Tokens → Reserved Keywords → Contextual Keywords → Integer Literals → Operator Tokens
  13. 13. 良く見たもの → nonmutating set → public prefix func → infix operator
  14. 14. Attr.def → TYPEATTR(objcblock) → SIMPLEDECLATTR(noreturn, NoReturn, OnFunc, 7) → DECL_ATTR(autoclosure, AutoClosure, OnParam, 28)
  15. 15. 良く見たもの → @_transparent → @silgenname → @inline(never) → @effects(readonly)
  16. 16. Swift Intermediate Language (SIL.rst) → Address Types → Local Storage Types → Box Types → Function Types → Properties of Types
  17. 17. Builtin.def → BUILTINSILOPERATION(Retain, "retain", Special) → BUILTINMISCOPERATION(Sizeof, "sizeof", "n", Special) → BUILTINSILOPERATION(CastToNativeObj ect, "castToNativeObject", Special)
  18. 18. 良く見たもの → Builtin.addressof($0) → Builtin.NativeObject → Builtin.castFromNativeObject($0) → Builtin.bridgeToRawPointer($0)
  19. 19. 参考になったもの (Foundation)
  20. 20. TestFoundation → TestNSArray.swift → TestNSFileManager.swift → TestNSURL.swift → TestNSNull.swift
  21. 21. まとめ → Foundationの方が読みやすい → Swiftを勉強するためにC++を勉強する → 読んでるだけで楽しい!

×