LoginSignup
1
1

More than 5 years have passed since last update.

Objective-CS

Last updated at Posted at 2015-12-07

この記事は iOS Jailbreaking Advent Calendar 2015 の8日目の記事です。

Objective-CSとは

@e_swickさんが作成しているObjective-C++のスーパーセット言語です。

LogosはperlによるpreprocessによりObjC, ObjC++のコードを生成する手法をとっています。

翻ってObjective-CSはClangに手を入れた(Objective-CS言語としてObjective-Cの特定の記述に対するパーサーの追加とLLVM IR(AST)の生成)clang-objcsがその実体です。
手を加えた部分以外はClangのAST生成をそのまま使用する事でObjective-C, Objective-C++をそのまま利用出来、バックエンドはそのままLLVMを利用する形です。

Specの中ではAdding Properties at RuntimeとDirect Instance Variable AccessについてLogosにない機能であると便利なこと間違いないです。

が、まだclang-objcsの実装はまだそこまで進んでいません。

で、どうなの

コンパイラフロントエンドなのでLogos(perl)とくらべると敷居が高いのは間違いないでしょう。コントリビュートは受けにくいと思います。
Clangをforkしている以上ClangはLLVMの(大きな)サブプロジェクトなのでこれからも進化しXcodeと共に配布されていく時に、その進化についていけるのかが問題になってきます。基本はrebaseしていくだけだとは思いますが。

メンテナンスが滞った場合Clangの進化を享受出来なくなっていくリスクと天秤にかけると大分Logosに傾くかと思ってます。
普及させるにはclangのバイナリ配布も必要になると思いますがいまのところない(完成してないからだとは思います)点も現時点では不確定要素です。流石にclangのビルドはめんどそう。

とはいえ、面白い試みではあるので果たして自身に課したSpecを実装しきれるのか、バイナリ配布はあるのかのあたりを見守りたいですね!

明日からはwa_kinchanですね!楽しみです!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1