GraalVM Native Image のソースコードを雑に読んだ (3)

前回の続き。今回は残りのステージ ([5/8] Inlining methods, [6/8] Compiling methods, [7/8] Laying out methods, [8/8] Creating image) を取り上げる。 環境 OS: Linux (WSL 2 + Ubuntu 24.04.1) GraalVM: 24.2.0-dev (320d02ebb867) JDK: 21.0.2 (jvmci-23.1-b33) 5. Inlining methods In this stage, trivial method inlining is performed. The progress indicator visualizes the number of inlining iterations. 該当する処理は以下の箇所。前回の [4/8] Parsing methods 同様 finish メソッドの中。 ...

2024-12-25

GraalVM Native Image のソースコードを雑に読んだ (2)

前回の続き。今回は [3/8] Building universe, [4/8] Parsing methods というステージを取り上げる。 環境 OS: Linux (WSL 2 + Ubuntu 24.04.1) GraalVM: 24.2.0-dev (320d02ebb867) JDK: 21.0.2 (jvmci-23.1-b33) 3. Building universe In this stage, a universe with all types, fields, and methods is built, which is then used to create the native binary. 処理は doRun メソッドの以下の try ブロックの中。 ...

2024-12-16

GraalVM Native Image のソースコードを雑に読んだ (1)

この記事は Java Advent Calendar 2024 の 6 日目の記事です。 ここ最近 GraalVM の Native Image 関連のソースコードを雑に (本当に雑に) 読んでいたので、その内容をまとめておく。個々の内容 (たとえばコンパイル関連の処理など) についてはたいして深掘りしていないので、そのあたりを期待している方々には物足りない内容であろうことをあらかじめ伝えておきます。全体の流れを掴むために上辺だけをざっと眺めてみた、という感じ。 ...

2024-12-06

Vim のプラグイン管理にパッケージ機能を使っている

この記事は Vim 駅伝 の 273 本目の記事です。 Vim のプラグイン管理に標準のパッケージ機能を使っているので、どんな感じで使っているかを書いてみる。ちなみにこれまでのプラグイン管理方法の変遷は以下の通り。 neobundle.vim → dein.vim → パッケージ機能 .vimrc のコミット履歴を見てみたところ、2018年にパッケージ機能の乗り換えたらしい。きっかけはあまり覚えていないが、基本的に標準のものを使うのが好きなのでパッケージ機能に関する記事か何かを見て興味本位で乗り換えたんだと思う。たぶん今はもっと便利で効率的なプラグイン管理のやり方があると思うが、こんな人もいるんだなあとゆるく読んでもらえると幸いです。 ...

2024-11-25

GraalVM 内のログ出力について

GraalVM のソースコードを読んでいるとよくこういう処理を見かける。デバッグ用のログを出しているんだろうとは思っていたのだけれど、普通に native-image コマンドを実行しても出力されず気になっていたので調べた。 ...

2024-11-14