タグ

LLVMに関するtasanobuのブックマーク (12)

  • Carthage と Bitcode 対応についてのまとめ – ymyzk’s blog

    iOS 9 や watchOS 2 から新しく Bitcode が導入されました. パッケージ管理ツールの Carthage でも Bitcode を含んだ Framework を適切に出力する仕組みの導入が進んでおり, この対応状況を見ながら Bitcode 対応について考えます. Carthage とは Carthage は Cocoa アプリケーションのためのパッケージ管理ツールの1つです. Carthage は Cartfile をもとに GitHub などからソースコードをダウンロードし, Framework を出力します. ユーザーは出力された Framework を動的にリンクして利用します. このため iOS で利用する場合は Embedded Framework に対応した iOS 8 以上でしか利用できません. Carthage についての詳細は GitHub の RE

    Carthage と Bitcode 対応についてのまとめ – ymyzk’s blog
  • 発表: ClangのModules (Xcode)(10/19) - きりかノート 3冊め

    昨年のLLVM DevMtgの提案時と変わっていて情報が錯綜していたので、調べたり試したりしたのでまとめついでに発表した。公式(LLVM Clang)のドキュメントを読んだらだいたい終わりな話。 Clang Modules from Wataru Kimura Modulesってなに? #importの変わりに@importと書く コンパイルが速くなる(らしい) ライブラリ、フレームワークはリンカオプションを指定しなくても自動的にリンクする 従来の#includeや#importでは ヘッダファイルの数が多くなると指数的に遅くなる #include前の#defineにより、#includeしたものが予期しない影響を受ける とかの問題があって、それらを解決する新方式として登場したのがModulesなのです。 使うには以下の環境が必要です。 Xcode 5 (Clang 3.3) iOS 7

    発表: ClangのModules (Xcode)(10/19) - きりかノート 3冊め
  • LLVM/Clang実践活用ハンドブック(出村成和) | 書籍 | ソシム

    Clang/LLVM(Low Level Virtual Machine)とは、CやObjective-Cなどのコンピュータ言語のコンパイラ環境です。 最近ではiOSやMac OS X、FreeBSDなどのOSでは、デファクトスタンダードであったGCC(GNUコンパイラコレクション)からLLVM/Clangへの置き換えが進みつつあります。 書では、Clang/LLVMの仕組みと使い方(カスタマイズ法など)、Clang/LLVM独自のライブラリの使い方などについて詳細な解説を行っています。 はじめに CHAPTER 1 LLVMとは 1 LLVMの概要 2 コンパイラの仕組み 3 特徴 4 対応プラットフォーム 5 LLVMプロジェクトの一覧 6 ライセンス CHAPTER 2 セットアップ 1 ビルド環境の準備 2 ソースコードを取得する 3 makeでビルドする 4 CMakeでビルド

    LLVM/Clang実践活用ハンドブック(出村成和) | 書籍 | ソシム
  • Xcode 4 でデフォルトになった LLVM って何?

    こんにちは。開発担当の金内です。 Xcode 4 は UI もすっかり変わりましたが、ビルドの要であるコンパイラもデフォルトが変更されています。その新しいコンパイラのキーワードが「LLVM」です。いまいち聞き慣れない方もいると思うので、今回はその LLVM について簡単にご紹介します。 ざっくりとした結論から言ってしまえば、Xcode における LLVM は従来のデフォルトコンパイラである GCC を置き換えるものです。LLVM には次のような特徴があります。 ・コンパイルが速い ・コンパイルされたコードが速い ・エラーメッセージがわかりやすい ・他のツールと連携しやすい いいことばかりですね。 しかし、コンパイラは要となる重要なコンポーネントなので、互換性などへの配慮から、Apple は GCC からの移行を少しずつ段階的に進めています。 実際、Xcode 4.0 でのデフォルトは完全に

    Xcode 4 でデフォルトになった LLVM って何?
  • AppleがLLVM JITを使用してWebKitのJSエンジンをスピードアップ

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    AppleがLLVM JITを使用してWebKitのJSエンジンをスピードアップ
  • heardrwt/RHObjectiveBeagle · GitHub

    Beagle is an Objective C debugging tool that can sniff out class instances on the heap.

    heardrwt/RHObjectiveBeagle · GitHub
  • 続・Debugger の Tips - Qiita

    potatotips #1 で LT した内容が好評(?)だったのでもう少し紹介してみようかなと思います。 発表した内容は「Debugger の Tips」です。 当日のまとめは「クックパッドのLT会に参加してきたのでiOSのtipsをまとめる」がおすすめです。 さてさて LLDB がデフォルトの Debugger となり久しいですね。 しかし Xcode から LLDB を扱う情報をあまりみかけません。かなしいですね。 というわけで今回は LLDB にフォーカスをあてて少し紹介してみようと思います。 (決して GDB もあわせて書くのが面倒くさかったというわけではありませんw) 設定ファイル shell での .~rc ファイルみたいなものですね。 Xcode から起動した LLDB だと以下の2つのファイルのどちらかが読み込まれます。 ~/.lldbinit-Xcode ~/.lldb

    続・Debugger の Tips - Qiita
  • ARM 64bit でLLVMは見逃せない - 組み込みの人。

    iPhone5S, iPad Airで64bit ARMプロセッサをいち早く製品化したAppleですが、驚きのニュースがありました。 AppleはOS X, iOSのコンパイラツールチェインをgccからclang/LLVMに移行しています。その64bit ARM向けのバックエンドをLLVMのコミュニティに公開し、それを家のツリーのメインラインに統合するという話です。 ニュースの概要は以下の記事で読むことができます。 Apple Open-Sources Their 64-bit ARM LLVM Back-End - Phoronix その続報。 Apple, LLVM Developers Figure Out Their 64-Bit ARM Approach - Phoronix 一次ソースを自分でも確認しました。ことの始まりはLLVMdevのメーリングリストのこの投稿。 http

    ARM 64bit でLLVMは見逃せない - 組み込みの人。
  • Spotify: iOSのビルド作業時間を短縮する - ワザノバ | wazanova.jp

    http://labs.spotify.com/2013/11/04/shaving-off-time-from-the-ios-edit-build-test-cycle/ Spotifyのブログで、iOSのビルド作業において、XCodeが実行する間の待ち時間を短縮する取組みを紹介しています。 1) 背景 ソースコードをいじった後、XCodeでRunボタンを押してからシミュレータで結果を確認できるまでの時間は、自宅のiMacで平均82秒かかっていた。コマンドラインで確認したところ、linkingで29秒、dSYMファイルの生成で25秒。SpotifyのiOSクライアントのコードベースはかなり大きく、linkerが2,000のオブジェクトファイルをまとめる必要があるので、おそらく取組みがいがあると判断。 2) dSYM file generation dSYMは、OSXの初期、linker

  • Android 4.4に入ったARTのソースを見た感想 - 組み込みの人。

    Android 4.4 (Kitkat) のソースコードが公開されました。話によるとDalvikを置き換えるARTというものが開発者向けに使えるようになっているそうです。面白そうなので調べてみました。以下は全て推測と個人の感想です。 ART とは 公式な情報はこれ https://source.android.com/devices/tech/dalvik/art.html Dalvikと置きかえて使えるランタイム まだ開発中。開発者のフィードバックを得るために公開した Dalvikがデフォルトであると強調。 Dalvikのランタイムはlibdvm.soで、ARTではそれがlibart.soに置き換わるらしい。開発者メニューでどちらを使うのか切り替えることができるようだ。 http://gigaom.com/2013/10/22/google-buys-frances-flexycore-

    Android 4.4に入ったARTのソースを見た感想 - 組み込みの人。
  • Objective-C Literals — Clang 19.0.0git documentation

    Objective-C Literals¶ Introduction¶ Three new features were introduced into clang at the same time: NSNumber Literals provide a syntax for creating NSNumber from scalar literal expressions; Collection Literals provide a short-hand for creating arrays and dictionaries; Object Subscripting provides a way to use subscripting with Objective-C objects. Users of Apple compiler releases can use these fea

    tasanobu
    tasanobu 2013/10/17
    Modern Objective-C Syntax
  • LLVM が提案する C言語へのモジュール機能追加

    11月の LLVM developer meeting で Apple の Dong Gregor 氏が,C言語へのモジュール機能の追加に関するプレゼンテーションを行った。その要旨は次のようなものだ。 プログラマやツール一般にとって,Cプリプロセッサは昔から悩みの種でした。プログラマは拡大するマクロ汚染や行儀の悪いヘッダのインクルード順などの問題と戦わなければなりません。これらの問題を軽減するため,いつもさまざまな回避手段が用いられてきました。LONG_MACRO_PREFIXES や include ガード,場合によってはライブラリマクロの #undef といった方法です。 一方,ツールは同じヘッダを繰り返し処理することに関連した,マクロ特有のスケーラビリティに関する問題への対処を余儀なくされます。実行ごとに異なるプリプロセス処理のコンテキストによって,ヘッダの解釈される方法が影響を受け

    LLVM が提案する C言語へのモジュール機能追加
  • 1