サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
kateinoigakukun.hatenablog.com
09/08-10に三重で開催されたRubyKaigi、09/10-12に東京で開催されたiOSDCにどちらもスピーカーとして参加してきました。 カンファレンスはしごされた方はお疲れ様でした。 RubyKaigi Keynote 初めてのRubyKaigiでの発表で、さらにキーノートで、さらにトップバッターという大変貴重な体験でした。いやー緊張した。1 当日のスライドはこちら。 Ruby 3.2でサポート予定のRubyのWebAssembly/WASI対応について話してきました。 前半でモチベーションや出来るようになったことをデモを交えつつオーディエンスと共有して、後半は実装について自分の好きなことを話す、という構成でした。 syntax_treeを使ったデモはちょっと上手くいかなかったんですが 2、 一番見せたかったIRBでSVGを表示するデモがうまくいって良かったです。IRBのデモはこち
実は先日 ko1さんとmameさんから推薦をいただき、Rubyのコミッタになりました。 ここ数ヶ月間、Rubyアソシエーションの開発助成プロジェクトとしてCRubyのWASIサポートを進めており、WASIのプラットフォームメンテナが必要ということで。 WASI対応の話はPublickeyさんに良い感じにまとめていただきました。詳しい実装の話は後日書こうと思います。1 www.publickey1.jp 正直Rubyのことを聞かれても答えられる自信はありませんが、CRubyの実装はほんのり分かるようになりました。あとビルドスクリプトはどこもつらい。2 という訳で、晴れてSwiftとRubyのコミッタという謎の人材になりました。 引き続きどちらもやっていくので、よろしくおねがいします。 書きました An Update on WebAssembly/WASI Support in Ruby |
TL;DR 8月週3クックパッドインターン フルタイムRubyコミッタのチームでTypeProf for IDEの開発 インパクトの大きい貢献チャンスはその辺に転がってるかもしれない インターンの内容 TypeProfはクックパッドでフルタイムRubyコミッタをされている@mametterさんが開発しているRubyの型プロファイラです。 Rubyのプログラムにできるだけ型注釈を入れずに抽象解釈によって型を推論する、という面白い特徴があります。 Ruby 3.0ではRBSのプロトタイプを生成するためのツールとしてRubyにバンドルされています。 github.com 今回のインターンでは、TypeProfの解析結果を利用したRubyのLanguage Serverの実装をお手伝いしました。 TypeProf for IDEについては今年のRubyKaigi Takeout 2021のKeyn
前回のエントリでAuto-linkingについて解説しました。今回はSwiftコンパイラにおけるAuto-linkingの使われ方と、最近それを直した話をします。 kateinoigakukun.hatenablog.com 用語定義 モジュール: Swiftのimportできる単位。 .swiftmodule、.swiftinterfaceまたは module.modulemap が実態。Cで言うヘッダ ライブラリ: libfoo.a とか libfoo.dylib。大抵モジュールと1対1になってる。 SwiftのAuto-linking C言語では以下のようなpragmaを書くことでリンクするライブラリを指定していました。 #include <math.h> #pragma comment(lib, "m") 一方で、Swiftでは import 文を書くだけで、インポートしたモジュー
TR;DR ISUCON11予選にSwiftで参加した SwiftのConcurrency機能(async/await等 )の体験最高 素振りが足りず地区予選敗退 チーム情報 メンバー @freddi @giginet @kateinoigakukun 全員iOSアプリ開発人材 共通してそれなりに書ける言語がSwift 移植の覚悟 ISUCONでは例年、いくつかの言語で対象Webアプリケーションの参考実装が提供されます。しかし、それを使わないといけない、というわけではなくレギュレーション上は他言語の使用が許可されています。 許可される事項には、例として以下のような作業が含まれる。 ・ ... ・他の言語による再実装 ISUCON11 予選レギュレーション : ISUCON公式Blog Swiftの実装は残念ながら提供されていませんが、せっかく参加するのであればチームの得意分野を活かしたい、
Swiftで静的解析ツールを作るとなると、基本的にSwiftSyntaxを使うことが多いと思います。 ただ、SwiftSyntaxで得られる情報はコンパイラ内部のパイプラインの序盤で生成されるため、「ある変数がどこから参照されているか」といった意味解析後に解る情報は使えません。 そこで、Xcodeがコードジャンプやリネームなどに使っている(だろう)Index-While-Buildingという仕組みを紹介します。 Index-While-Buildingとはその名の通りコンパイラがコンパイル中に生成する中間情報をIDEのコードインデックスに利用する、という仕組みです。 swiftcやclangには-index-store-pathというオプションがありディレクトリを指定することで、そこにインデックスデータが出力されます。 この仕組で生成されたデータは、libIndexStoreを使って読み
WWDCでSwiftUIが発表されてから数日が経ちました。一気に世界が変わった気がしますね。 ただ、UIKitと同様にSwiftUIはオープンソースでは無いため、我々開発者は依然挙動をエスパーしながら開発する必要があります。 その中でも、SwiftUIのチュートリアルを試している中で不思議な仕組みがいくつかあったので、僕が調べたSwiftUIの内部構造について書き留めておきます。 (あくまで考察なので間違っていても悪しからず) 追記(2022-09-15) 未だにアクセスがあるので追記。 TokamakというSwiftWasmでSwiftUI互換なコードを書くためのUIフレームワークがあり、 ここで考察した内容とほぼ同じようなテクニックを使ってStateを実装しています。 具体的な実装が気になる方は読んでみてください。 github.com 目次 @State編(今ココ) DynamicV
www.youtube.com try! Swift 2019 kateinoigakukunです。メルカリでインターンをしています。 今日はSwiftを理解するために重要なメタデータについて話します。Swiftは静的型付けな言語として知られていますが、 実はランタイムにおいては動的な部分が多々あるのです。 let typeName = String(describing: Int.self) 皆さんもStackOverflowを見て、一度はこんなコードを書いて型名を取得したことがあるでしょう。 extension UITableView { func register<Cell>(nibWithCellClass: Cell.Type) where Cell: UITableViewCell { let typeName = String(describing: Cell.self) l
毎年期末試験の時期と重なって参加を断念していたので初参加でした。 参加できるだけでも嬉しかったのですが、光栄なことにスピーカーとして登壇することもできました。 大きなカンファレンスでの登壇は昨年のiOSDCが最初で今回はそれ以来です。ただ、今回は規模がさらに大きいことや、英語での登壇だったこともあり余裕は全くなかったです。 どのくらい余裕がなかったかというと、2日目、登壇する直前の午前中のトークをほぼ覚えていないくらいです。絶対にキャッチアップするので許してください。 登壇 Swift Type Metadata (en) - kateinoigakukunのブログ Swift Type Metadata (ja) - kateinoigakukunのブログ Swiftのメタデータについて話しました。内容的には年末に書いたアドカレの発展版です。 Swift Type metadata -
このページを最初にブックマークしてみませんか?
『kateinoigakukun.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く