clang: a C language family frontend for LLVMThe goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler. http://clang.llvm.org/
clang: a C language family frontend for LLVM
The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.
初記事です。 Nim言語とコンパイラ Nim言語にコンパイラを設定する項目があることをご存知でしょうか。 公式のガイドを覗いてみると、以下の記述があります。 To change the compiler from the default compiler (at the command line): nim c --cc:llvm_gcc --compile_only myfile.nim ︙ ということで、今回は主にAtCoder上で公開されているいくつかの問題について、コンパイラごとに速度を比較してみようと思います。 計測するコンパイラと計測方法 今回計測するコンパイラは以下の2つです。 …
MacOSで動作を確認しました。vinとyappyの動作も確認しています。 clang, llvmはXCodeのコマンドラインツールをインストールしてください。 その他のライブラリはHomebrewを使ってください。 PATHやライブラリーの環境変数については、他に譲ります。 export PATH="/usr/local/opt/llvm/bin/:$PATH" export LDFLAGS="-L/usr/local/opt/llvm/lib" export CPPFLAGS="-I/usr/local/opt/llvm/include" を~/.profileに書けば動くと思います。 h…
リリースです。 フリーソフトウェアプログラマーを辞めると言いましたが、まだ続けます。 Pythonクローン地道に実装していきます。 Comelangは右辺値の代入時に代入する変数に%がないとエラーとなるようになりました。 これでかなりコンパイル時に動的エラーを検出できます。 オリジナルのヒープシステムはかなり完成度が高まっています。 BoehmGCでのヒープの管理も可能ですが、オリジナルのヒープシステムも使いやすいので 使ってみてください。GCが無いのでかなり高速です。 viクローンはvinディレクトリにPythonクローンはyappyにあります。 Comelang https://githu…
Qiitaの水が合わないのではてなに出戻り libclang_rt.profile-aarch64.aはLLVMの中のcompiler-rtに含まれている ClangとLLVMをbuildしてもインストールされなくて困って調べた。 compiler-rt.llvm.org -fprofile-instr-generateに出力パスを付けると結果が出力されない 原因不明
木構造の取扱はプログラマなら基本なのかもだけれど、アルゴリズムとデータ構造をちゃんと勉強したことなかったので、必要ベースで勉強していく。 用語 用語説明根(root)親を持たないノード。1つの木に対して1つ根。辺(edge)親から子へのリンク。葉(leaf)子を持たないノード。兄弟(siblings)親が同じ子たち。祖先(ancestor)p → q への経路がある場合、pをqの祖先と呼ぶ。子孫(descendant)p → q への経路がある場合、qをpの子孫と呼ぶ。レベル(level)ある木の深さの全ノードの集合を木のレベルと呼ぶ。(ノードの)深さ(depth)根からノードまでの経路の長さ…
はじめに ここまで作ってきたベアメタルのLチカはGCCでビルドしてきたが、それをclangでビルドしてみる。 clang-10のインストール Ubuntu 20.04環境でClangをインストールする。バージョンは10。 $ sudo apt install -y clang-10 lld-10 make Makefile ベースはLチカのFLASH + コンパイル済みBoot Stage2バージョン まずはMakefileを下記のように変更する。 LLVM_OPT = --target=armv6-m-unknown-none-eabi -mcpu=cortex-m0plus ASMOPT …
ある日,rbenvを見ていた brew upgrade ebenvして, $ rbenv install -list 2.5.8 2.6.6 2.7.2 3.0.0 jruby-9.2.14.0 mruby-2.1.2 rbx-5.0 truffleruby-20.3.0 truffleruby+graalvm-20.3.0 昨年中にruby 3.0.0が正式にリリースされ,rbenvも対応したらしい.入れてみよっかなぁ〜俺もなぁ〜… そのruby 3.0.0を入れようとしてしくじった 当時の環境は以下の通りだった. MBP 2016 15inch macOS Catalina clang A…
BitVisor Advent Calendar 2020 13日目の記事です。 BitVisor Advent Calendar 2020 - Qiita 今回は、タイトルの通りclangでbitvisorをビルドできるか試した話です。 scan-buildとかできたら楽しそうですよね。 現状、ビルドできてませんが、途中経過を。 準備 コンパイラの指定 bitvisorのコンパイラの指定は、Makefile.commonにあるようで、現状はこんな感じ。 $ head Makefile.common # -*- makefile-gmake -*- # commands AR = ar CC …
はじめに meta-clangの使い方を調べた。 meta-clangはbitbakeでのパッケージのビルドやSDKでgccの代わりにclangを使えるようにするためのレイヤ。 meta-clangを使う 既存のビルド環境にmeta-clangを組み込むには下記のようにする。 $ git clone https://github.com/kraj/meta-clang -b dunfell ビルド対象に組み込むにはbitbake-layersを実行する。 $ bitbake-layers add-layers ../layers/meta-clang デフォルトのツールチェインを切り替える b…
果たして、Lotus Notes C API ToolkitのHCL版はリリースされるのか? 今回のWindows 64ビット版コンパイル時の不具合については簡潔に報告します。 Extension Manager(通称ExtMgr)において、コールバック関数にはEMRecordという構造体へのポインタが渡されます。 typedef struct { EID EId; /* identifier */ WORD NotificationType; /* EM_BEFORE or EM_AFTER */ STATUS Status; /* core error code */ VARARG_PTR…