Slide 1

Slide 1 text

(FUUJOH4UBSUFEXJUI4XJGU 8FC"TTFNCMZ J04%$ !LBUFJOPJHBLVLVO 1

Slide 2

Slide 2 text

4XJGU8"4.Ͱ։ൃͯ͠Έͨ࿩ 2

Slide 3

Slide 3 text

4XJGU8"4.Ͱ։ൃͯ͠Έͨ࿩ 4XJGU8"4.Λ։ൃ͢Δ࿩ 3

Slide 4

Slide 4 text

8"4. 8FC"TTFNCMZ ϒϥ΢βͰಈ࡞͢Δ௿ڃݴޠ • ϙʔλϒϧ • ηΩϡΞ • ελοΫϚγϯ 4

Slide 5

Slide 5 text

4XJGUͰ8FCϑϩϯτΛॻ͖͍ͨʂʂ 5

Slide 6

Slide 6 text

4XJGUͷ8"4.ύΠϓϥΠϯ 6

Slide 7

Slide 7 text

4XJGUͷ8"4.ύΠϓϥΠϯ 7

Slide 8

Slide 8 text

--7.ͱ4XJGUͷؔ܎ SwiftಠࣗͷLLVMଐੑ https://github.com/apple/swift-llvm • swiftself • swifterror 8

Slide 9

Slide 9 text

5ISPXTͳؔ਺ݺͼग़͠ typealias NonThrowableFunc = () -> Void typealias ThrowableFunc = () throws -> Void let f: NonThrowableFunc = {} let g: ThrowableFunc = f try g() 9

Slide 10

Slide 10 text

/PO5ISPXBCMF'VOD5ISPXBCMF'VOD 10

Slide 11

Slide 11 text

ϥϯλΠϜදݱ 4XJGU෩ typealias NonThrowableFunc = () -> Void typealias ThrowableFunc = (inout Error) -> Void let f: NonThrowableFunc = {} let g: ThrowableFunc = f var error: Error try g(&error) Ҿ਺ͷ਺͕૿͑ͯΔ https://speakerdeck.com/omochi/swiftfalseguan-shu-xing-falseshi-xing-shi-biao-xian 11

Slide 12

Slide 12 text

TXJGUFSSPSͱ8"4.ϥϯλΠϜ ؔ਺ݺͼग़࣌͠ͷγάωνϟνΣοΫ -> callerͷݺͼग़ͦ͏ͱ͍ͯ͠Δγάωνϟͱcallee ͷγάωνϟ͕Ұக͠ͳ͍ͷͰΫϥογϡ https://webassembly.org/docs/security/ 12

Slide 13

Slide 13 text

ରԠࡦ શͯͷؔ਺ʹswifterrorΛ෇͚ͯίʔυੜ੒͢Δɻ https://github.com/apple/swift/pull/24684#issuecomment-491487863 13

Slide 14

Slide 14 text

·ͱΊ • LLVMΛ࢖͍ͬͯͯ΋؆୯ʹ͸͍͔ͳ͍ • SwiftͷWASMରԠ͸΋͏গ͠଴ͬͯͶ 14

Slide 15

Slide 15 text

15