LLVMソースコードコンパイルハマった罠。脱出するための努力。coding(83)

LLVMのソースコードのコンパイルをしてみた。

Macintoshでやろうと思ったのがドツボだった。

さらにVMwareでUbuntuでやろうとしたら、メモリの割り当て不足でダメだった。

SWAP領域はMemoryより大きく
https://researchmap.jp/jom11s1ew-1797580/#_1797580

LLVM TEST SUITE FAIL RESULT on Linux and Mac OS X
https://researchmap.jp/joi0gsyic-1797580/#_1797580

現在、dockerで、、、

## Macintosh

```
brew install --with-clang llvm
```
ここに到達するのに約ひと月。一つづつ試しては、、、。

brew install llvm
https://researchmap.jp/jociec00w-1797580/#_1797580

```shell
$ cmake --build . --target install
$ make check-all

* snip *

  Testing Time: 2076.17s
  Expected Passes    : 20893
  Expected Failures  : 140
  Unsupported Tests  : 438
```

OS X コマンドライン版cc (Clang LLVM cc)のインストール方法 (Xcode CLI / Command Line Tools for Xcodeのインストール)
https://qiita.com/k-oshima@github/items/61ae067984f0099cbdaf

LLVMエラー対処例<Macintosh>
https://qiita.com/ssqiita/items/0c3b39f00124759a0cbb

xcodeで Apple LLVM error が出た時の対処
https://qiita.com/terrierscript/items/5c9d819aa31b8515d0e8

Homebrew で llvm 入れてる状態で brew doctor したら Warning 出たので対処した
https://qiita.com/bird_tummy/items/d9be70571bda9507d04d

OS XにLLVMをsvnインストールする
https://qiita.com/satzz/items/bee20a506ce29c39d042

portよりはapt-getを推奨。対応ソフトの大さから。

## Debian/Ubuntu
[メモ] LLVM
https://qiita.com/uint256_t/items/ae74cb74c3c6cd7c445b

##Redhat/Centos
CentOS5にLLVMとclangをインストールする | CentOS
https://qiita.com/yukikimoto/items/78d4bdc218e98712c6a1

## Windows
Visual Studioの設定について
https://qiita.com/lunatea/items/d1408fc1795579228cc3


## Docker
llvm-clang環境のDockerを作ってDocker Hubにpushした。
https://qiita.com/nak1114/items/8cc97fa405be14a34181


# LLVM
LLVM bitcode基礎知識
https://qiita.com/gamako/items/f37dbb05de9d3832ce6b

LLVMのプロファイル情報を紐解いてみた〜カバレッジ編〜
https://qiita.com/hydrangeas/items/1f2dd9c119f27bea89a0

オンラインでコンパイル結果のアセンブリを確認
https://qiita.com/ken1ma/items/2aa16a0d5dab00321aac

## LLVM コンパイラ・インタプリタ
普通の大学生が【LLVM】やってみた
https://qiita.com/long_long_float/items/50ba0d9dc4075f3934a1

C++11インタプリタ Clingのビルド
https://qiita.com/mugwort_rc/items/3dead38e953ebb294051

正規表現からLLVMへのコンパイラを実装する
https://qiita.com/yyu/items/a0ef2d2204c137707f3f

OCamlのSedlex+Menhir+LLVMでLispコンパイラを作ろうとしたが行き詰まった件
https://qiita.com/Tamamu/items/e647c18403681df15c42

LLVMに実行可能コードの生成をまかせたい
https://qiita.com/k2ymg/items/653c5b22b74a091be604

Orelang(俺言語) の LLVM IR コンパイラを作ってみた
https://qiita.com/soramimi_jp/items/b7a0a9de381f3c320fe6

パターンマッチの作り方(1) はじめに
https://qiita.com/h_sakurai/items/04c242ea86810334cb1d

パターンマッチの作り方(2) LLVM入門
https://qiita.com/h_sakurai/items/20a858e7c96ead6e581c

パターンマッチの作り方(3) 変数
https://qiita.com/h_sakurai/items/494548cca6919c400a23

パターンマッチの作り方(4) 構造体
https://qiita.com/h_sakurai/items/612c82a6966616e2bd8d

パターンマッチの作り方(5) 構造体初期化構文糖
https://qiita.com/h_sakurai/items/fe5995ee7012965995a8

パターンマッチの作り方(6) ヴァリアントの型と領域取得
https://qiita.com/h_sakurai/items/43fd0b5d738dd14e723e

パターンマッチの作り方(7) ヴァリアント初期化構文糖
https://qiita.com/h_sakurai/items/46799cfce2ba85a09614

パターンマッチの作り方(8) switch構文
https://qiita.com/h_sakurai/items/8b1e7a39fa8cc9f6cc0c

パターンマッチの作り方(9) α変換
https://qiita.com/h_sakurai/items/e58fc82d8b84d00ea400

パターンマッチの作り方(10) パターンマッチ構文
https://qiita.com/h_sakurai/items/5b0e283f1f326453431e

パターンマッチの作り方(11) パーサと型チェック
https://qiita.com/h_sakurai/items/35ab73346da23bf23a7c

Rustで簡単なLLVMコンパイラ
https://qiita.com/h_sakurai/items/8d22c484179c48552abe

PHPで作る簡単なLLVMコンパイラ
https://qiita.com/h_sakurai/items/be48588ca7cd45fe2f24

## LLVM コンパイル
LLVMをVisual Studio 2017でコンパイルする
https://qiita.com/lpha_z/items/6c81d310c78459d29c78#_reference-99fe2e2743cff80bc199

Macでclang+OpenMP 2016
https://qiita.com/r9y9/items/2e382887ee7e9fa0fb9f

[clang,llvm] clang・llvm開発時のリンクオプションの簡単な見分け方
https://qiita.com/kktk-KO/items/1ca16b5ae63a35c8a648


## LLVM コーディング

[翻訳] LLVMコーディング標準(5.0.1)
https://qiita.com/tenmyo/items/7e4847b88e63d5769dd8

[翻訳] LLVMコーディング標準3.9.1（１/４）：目次＆はじめに
https://qiita.com/tenmyo/items/5d9fae50d941655350ca

[翻訳] LLVMコーディング標準3.9.1（２/４）：言語、ライブラリ、および標準
https://qiita.com/tenmyo/items/e1194d8093b7a79abd5f#_reference-5c53985d45ed22fcf20f

[翻訳] LLVMコーディング標準3.9.1（３/４）機械的なソースの問題
https://qiita.com/tenmyo/items/eb0fd21212ff0184e933#_reference-9c1f65ef75b1d80b9c82

[翻訳] LLVMコーディング標準3.9.1（４/４）：スタイルの問題
https://qiita.com/tenmyo/items/c452c5c527b743d4b96e

# コンパイラ参考資料
大川知、鈴木大郎　著「コンパイラ　言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをMacintoshでコンパイル(C++版)
https://qiita.com/kaizen_nagoya/items/f49ca516f8a56aeed57a

大川知、鈴木大郎　著「コンパイラ　言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをMacintoshで実行(java版)
https://qiita.com/kaizen_nagoya/items/1606e97b7f10bf8fe519

大川知、鈴木大郎　著「コンパイラ　言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをWindowsでコンパイル(C++版)
https://qiita.com/kaizen_nagoya/items/0fa79446472058bf8903

# C,C++参考資料

C Puzzle Bookの有り難み5つ、C言語規格及びCコンパイラの特性を認識
https://qiita.com/kaizen_nagoya/items/d89a48c1536a02ecdec9

[C][C++]の国際規格案の例題をコンパイルするときの課題７つ。
https://qiita.com/kaizen_nagoya/items/5f4b155030259497c4de

MISRA C まとめ #include 
https://qiita.com/kaizen_nagoya/items/f1a79a7cbd281607c7c9

コンパイル用shell script C版(clangとgcc)とC++版(clang++とg++)
https://qiita.com/kaizen_nagoya/items/74220c0577a512c2d7da#_reference-767b9a9b8f017bc681a1

C言語の配列は勉強できない仕様に変わったのか？
https://qiita.com/chesscommands/items/68d8237eccf5fac05e13

C言語規格と、Cコンパイラと、C言語記述の３つの関係を誤解されているように感じました。未定義の処理を自分が思おうようにしようと思ったら、自分でCコンパイラを書けば良いだけだと思います。

私がコンパイラを勉強した２７年前、Pascalで書かれたコンパイラをCに書き直しました。３週間で書き直したソースが、３年かかってもバグが取れませんでした。デバッグモードでは動作するが、デバッグモード以外では動作しないという。その後MISRA Cというコーディング標準の仕事をするようになって、配列の管理がまずかったことが想定できました。チェッカを作ればよかった。

## 一覧
物理記事　上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学 
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

数学関連記事１００
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

言語・文学記事　１００
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

自動車　記事　１００
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

通信記事１００
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

日本語（０）一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d

転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe

仮説（0）一覧（目標100現在40）
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

Qiita(0)Qiita関連記事一覧（自分）
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6

鉄道（０）鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0

安全（0）安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48) 
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網（Wi-Fi）空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

OSEK OS設計の基礎　OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909

官公庁・学校・公的団体（NPOを含む）システムの課題、官（０）
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

「はじめての」シリーズ　 ベクタージャパン　
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb

AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

LaTeX(0) 一覧　
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792

自動制御、制御工学一覧（０）
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧　
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

小川清最終講義、最終講義（再）計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
#### 文書履歴(document history)
ver. 0.01 初稿 　20180823
ver. 0.02 ありがとう追記 20230502
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
####  Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.