Swiftにおけるインポートとリンクの仕組みを探る iOSDC 2019
Swiftにおけるインポートとリンクの仕組みを探る iOSDC 2019
Swift のコンパイラの開発に手を出してみたい方向けに、コンパイラの全体構成がどうなっているのかを、大まかに説明します。コードリーディングの参考になればいいなと。 Swift コンパイラの構成 僕はプログラムを把握するときに、エントリポイント(最初に実行される箇所、 main 関数)が分からないとすごく不安になります。逆に言えば、エントリポイントさえ分かれば、そこから処理を追っていけば良いのでその後の理解が非常に楽になります。なので最初は swift コマンドのエントリポイントから。 注意: このエントリで、 GitHub にある実際のコードにリンクを張っていますが、行番号は時と共に変わってしまうので、ファイルまでのリンクになっています。関数名などで検索してください。 ドライバー (Driver) swift コマンドですが、実体は tools/driver です。 tools/driv
Jesse Squires InstagramでiOSアプリを開発しているソフトウェアエンジニアです。jessesquires.comにてSwiftやObjective-Cに関するブログを書いています。Github上で多くのオープンソースプロジェクトにコントリビュートしています。走ることと新しいことを学ぶのが好きで、主にブラックコーヒーとブラックメタルによって元気になります。 twitter.com Swiftに貢献したいですか?どのように、また、どこから取り掛かればいいか分かりませんか?パッと見て圧倒されるかもしれません。この講演では、さまざまなSwiftのプロジェクトがどのように関係しているかを見て、貢献し始めるために必要なスキルを議論し、あなたが行うであろう最初の変更が承認されるためのベストな方法を学びます。 セッションビデオ公開済み DIAMONDスポンサーのRealm様より、セッ
Swift is a general-purpose programming language that’s approachable for newcomers and powerful for experts. It is fast, modern, safe, and a joy to write. struct Binomial: Codable { var genus: String var species: String var subspecies: String? } let tree = Binomial(genus: "Pin", species: "oak") let jsonData = try JSONEncoder().encode(tree) // {"genus":"Pin","species":"oak"} struct ScientificName {
Create code coverage reports for iOS unit tests using new Xocde 7 code coverage feature. The Old Way I’ll start with back reference to another post I wrote earlier, which describes the process of getting code coverage reports using good old gcov. To try out the old approach checkout this repository and run the scripts. # Run tests with gcov instrumentation ./test-gcov.sh # Generate Cobertura cover
In this post, we explore the nature of Swift’s new error type, looking at the possibilities and restrictions for testing error handling implementations. We end with an illustrative example, and some helpful resources. How to Implement the ErrorType Protocol If we jump to the definition of the ErrorType protocol in the Swift standard library, we see that it doesn’t contain many obvious requirements
本連載は、はてなエンジニアが、はてなのサービスを支えている技術や日頃注目している技術について解説するものです。Appleは毎年WWDCでいくつもの新規技術を発表していますが、筆者はその中でもObjective-Cの進化に特に注目していました。新たに追加されるAPIやサービスの前では、Objective-Cの進化はあまり注目されてきませんでしたが、実はここ数年の間も進化し続けていました。これにはAppleがコンパイラ技術にコミットしてきたことが大きく影響しています。今回は、Appleのコンパイラ関連技術を振り返り、Swiftにどう繋がるのかを解説します。 はじめに SwiftはAppleによって開発された全く新しいプログラミング言語です。WWDC 2014で稲妻のように現れたこのプログラミング言語は、またたく間に世界中のモバイルアプリ開発者の注目を集めました。 Swiftは衝撃的な登場だった
qiita.com 素朴な疑問があったので投稿してみました。これはその補足みたいなもの。 CoreData CoreDataって凄く独特な世界観を持っていて扱いづらいと思った人が多いのではないでしょうか。 なんでこんなのがXCodeやInstrumentsのテンプレートに居座っているのか理解できない、関連張ると動作が重くなりすぎて使い物にならない、CoreData内部の良く分からないエラーに悩まされている、普通にSQL書きたいからFMDB使ってます、幻滅しましたRealmに移行します、そんな雰囲気だと思います。 CoreDataの原型は、NeXTのFoundationが用いられた最初の製品であるEnterprise Objects Frameworkです。 20年前にデータベース製品の学習コストの高さと、オブジェクト指向言語とのインピーダンスミスマッチの問題に取り組んだこの製品は、普及はし
iOSエンジニアの皆さん、ゴリゴリSwift書いていますか?サクサク書ける反面、コンパイルにやたら時間がかかってストレスフルですよね。今回は、激遅だったコンパイル時間が「ちょい遅」くらいまで改善したお話です。 あらすじ「ナウでヤングなiOSエンジニアはやっぱSwiftだよね!」ということで、半ば強引にSwiftを採用して直近のプロジェクトを進めていました。 補完機能が頻繁に落ちたり、ブレークポイントの位置がおかしかったり、変数の中身が見られなかったり、謎のエラーでビルドできなかったり、…などなど、まだまだバグはてんこ盛りですが、それらを見なかったことにできる程度にはいい感じです。型推論はそこそこ賢いし、何より簡潔に記述できます。ただの可変長配列のために、もうNSMutableArrayなんて長々と書かなくてもええんやで。 プロジェクトが進むにつれて見えてくる問題プロジェクトが進んでソースコ
As a high level summary, I am a well-known leader who is distinguished by a hands-on approach to building systems. I am co-founder and CEO of Modular AI. I built and scaled many open source compiler infrastructures, including LLVM, Clang, MLIR, and CIRCT. These span the gamut of fundamental systems at the HW/SW boundary - powering iOS, Android, CUDA, TensorFlow, and countless other products and te
Swift The powerful programming language that’s also easy to learn. Swift is a powerful and intuitive programming language for all Apple platforms. It’s easy to get started using Swift, with a concise-yet-expressive syntax and modern features you’ll love. Swift code is safe by design and produces software that runs lightning-fast. Modern Swift is the result of the latest research on programming lan
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く