Registration info |
Invitation Ticket for swiftc meetup/わいわいswiftc枠 Free
FCFS
Swift Developer Ticket/一般参加枠 Free
Standard (Lottery Finished)
Student Ticket/学生枠 Free
FCFS
|
---|
Description
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