SwiftcKaigi #1

2019/11/16(土)10:00 〜 18:00 開催
ブックマーク

イベント内容

SwiftcKaigi

SwiftcKaigi is a 1 day conference for Swift Compiler and foundations/tools for Swift language. It’s a place where we all Swift developers can discuss those topics.

Contents of this conference mainly covers Swift and Swift Compiler, not iOS/mac OS specific topics.

SwiftcKaigiとは、Swift Compilerとその周辺技術に関する1 dayのカンファレンスです。初心者・上級者を問わず、情報交換とディスカッションの場として機能することを目的としています。

swiftcとはSwift Compilerの略称です。コンパイラよりの話題が中心となるので、iOSなどの話はあまりしない予定です。

Who's the target?/こんな方に来てほしい

  • Be interested in Swift and compiler
  • Want's to dive into swiftc
  • Want's to contribute/Contributed to swiftc
  • Struggling with swiftc

Attendees/参加枠

  • Invitation Ticket for swiftc meetup/わいわいswiftc枠
    Those who have attended monthly swiftc meetup offline/online at least once
    わいわいswiftcにオフライン・オンライン問わず参加したことがある方
  • Swift Developer Ticket/一般参加枠
    Swift Developer
    一般参加の方
  • Student Ticket/学生枠
    Student
    学生の方

We welcome anyone who wants to contribute or already contributed to Swift Compiler

CfP/発表募集

See more details below link if you are interested in giving a talk

発表の応募については以下のリンクから詳細を確認してください。

https://www.papercall.io/swiftckaigi

Contents/募集要項

Below would be possible contents, but others are welcomed

  • Swift Compiler or foundations/tools like SwiftPM, SwiftSyntax, Swift for TensorFlow, LLVM
  • New features for Swift language in upcoming version
  • Hot topics actively discussed on Swift forum
  • Detailed technology/approach for Swift Compiler

発表内容が以下のいずれかに該当していると採択されやすいですが、その他の内容でも可です

  • Swift Compilerやその周辺ツール(SwiftPM, SwiftSyntax, Swift for TensorFlow, LLVMなど)に関する内容
  • 最新や将来的に登場する可能性のあるSwiftの言語機能
  • Swift forumで活発な議論が行われている内容
  • Swift Compilerで使われているコンパイラ技術の内容

Timetable/タイムテーブル

Time
9:30 Registration
9:50 Opening
10:00 ABIとは何か
10:45 Function Hook in Swift
11:30 Break
11:45 Integrating libSyntax into the compiler pipeline
12:30 Encode yourself!
13:15 Lunch
14:15 SILを読もう
15:00 SILOptimizerを自分で作って遊んで見る
15:45 Break
16:00 Compile your Swift code into WebAssembly
16:45 LLVM Attribute annotation in swiftc
17:30 Closing
17:40 Party

Talks/トーク一覧

Title Abstract Speaker
ABIとは何か ABIとは何かについて正しく理解し説明できるようになります。 @k_katsumi
Function Hook in Swift iOSDC2019でSwiftでFunction Hookを行う手法について紹介をしました。当時はかなりダーティーな方法で実現していましたが、今回はそのうちの一部をもう少しクールな方法で実現します。 Swiftにおける関数呼び出しがどのように実現されているか、その裏側を垣間見ます。 @tarunon
Integrating libSyntax into the compiler pipeline GSoCプロジェクトの一つである「Integrating libSyntax into the compiler pipeline」の解説をします。このプロジェクトでは、Syntax TreeとSemantic ASTの生成を別々のレイヤーに切り離すことがゴールです。本トークでは、このプロジェクトの概要やどのようなメリットがあるか説明します。 @kitasuke
Encode yourself! After being a Swift+Metal developer for 3 years I’ve got burnt out by writing endless boilerplate code and wrote myself a code-generator which allows me to do shader-driven development. I’ll cover the process and motivation of hacking Metal compiler’s AST to generate Swift-side code. Andrey Volodin
SILを読もう みなさんはSIL(Swift intermediate language)を読んでいますか?SILを読むことでSwiftコードだけでは見えなかった動作の詳細を知ることができます。例えば、継承とプロトコル準拠が混在した場合にどのメソッドが呼ばれるのか曖昧に感じることがあります。そのような場合に、SILを読むことでその挙動の詳細を理解する事ができるのです。このトークではそのテクニックを紹介します。 @omochimetaru
SILOptimizerを自分で作って遊んで見る Swiftの最適化フェーズにあるSIL Optimizerを自分自身で作るようになることを目的としたセッションです。実際に、SIL OptimizerがどのようにSILのコードを最適化しているかを、Swiftコンパイラのコードや実際の簡単なSILOptimizerのモジュールを見て理解します。そして、自分自身でSILOptimizerのモジュールを作り、そのモジュールのトリガーを設定してみる方法を解説します。オリジナルSIL Optimizerを作って、実際に動かしてみる方法を一緒に見ていきましょう。 @freddi
Compile your Swift code into WebAssembly Swiftの書き味に魅了された人であれば、誰しも一度は「SwiftでWebフロントエンドを書きたい」と夢見たことでしょう。SwiftcのバックエンドであるLLVMがブラウザで実行可能なWebAssemblyをサポートした今、その夢が叶いかけています。このトークではSwiftをWebAssembly上で実行するにあたって抱えていた問題、そしてこれから必要な対応について深く紹介します。 @kateinoigakukun
LLVM Attribute annotation in swiftc swiftcが出力するLLVM IRを見るとnoalias, dereferenceable, nocaptureなどの単語を見ることができると思います。これらはLLVMにおけるAttributeという関数や引数に情報を修飾する機能です。AttributeはLLVMの最適化パスにおいてその最適化がvalidであるか判定するために用いられ、言語のフロントエンド側で与えられるかLLVM内で推論されます。このトークではLLVM Attributeの紹介、swiftcのLLVM IRの生成においてどのように修飾されるか、そしてLLVMにおいてAttributeがどのように推論されるかを説明します。 @uenoku

Venue/開催場所

Yappli, Inc., 3-2-1 41F, Roppongi, Minato-ku, Tokyo

株式会社ヤプリ 東京都港区六本木3-2-1 住友不動産六本木グランドタワー 41階

Logistics/設備

Wifi will be provided at the venue

無線LANアクセスポイントがあります アクセス方法は会場に掲示いたします

Food and Drinks/食べ物

ランチは弁当とお茶を用意しています。
懇親会ではオードブルとアルコール・ソフトドリンクを用意しています。

References(JP)/補足情報

swiftcについてのお役立ち情報をまとめました。swiftcのアーキテクチャや環境構築などは下記を参考にすると良いと思います。

  • Swift コンパイラのアーキテクチャ

https://qiita.com/rintaro/items/3ad640e3938207218c20

  • Swiftコンパイラ開発環境構築

https://qiita.com/rintaro/items/2047a9b88d9249459d9a

  • Swiftコンパイラ開発用の環境構築

https://qiita.com/omochimetaru/items/fd485185bcd07c21b49f

  • Swiftコンパイラ開発におけるテスト

https://qiita.com/omochimetaru/items/6e712bae4d86d72d1a1e

  • Swiftの型システムを読む その1

https://blog.waft.me/2017/08/01/swift-type-system-01/

  • Swiftの中間言語SILを読む その1

https://blog.waft.me/2018/01/09/swift-sil-1/

  • SwiftをSILで読んでみる

https://medium.com/swift-in-sil-jp

参考書籍

  • 型システム入門 プログラミング言語と型の理論

https://www.amazon.co.jp/dp/B07CBB69SS/

  • コンパイラの構成と最適化

https://www.amazon.co.jp/コンパイラの構成と最適化-中田-育男/dp/4254121776

  • きつねさんでもわかるLLVM ~コンパイラを自作するためのガイドブック~

https://www.amazon.co.jp/きつねさんでもわかるLLVM-コンパイラを自作するためのガイドブック-柏木-餅子/dp/4844334158

Past swiftc meetups/過去の開催

わいわいswiftc #15 - connpass

わいわいswiftc #14 - connpass

わいわいswiftc #13 - connpass

わいわいswiftc #12 - connpass

わいわいswiftc #11 - connpass

わいわいswiftc #10 - connpass

わいわいswiftc #9 - connpass

わいわいswiftc #8 - connpass

わいわいswiftc #7 - connpass

わいわいswiftc #6 - connpass

わいわいswiftc #5 - connpass

わいわいswiftc #4 - connpass

わいわいswiftc #3 - connpass

わいわいswiftc #2 - connpass

わいわいswiftc #1 - connpass

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。