Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

2018-01-01から1ヶ月間の記事一覧

さあ行こう!世界中のJavaカンファレンスへ!

JavaカンファレンスというとJavaOneを想像される方が多いかと思います。 Twitter上でこんなやり取りを見ました。"行くならどのJavaカンファレンスがお気に入り?" 元Sun/OracleのJavaエヴァンジェリスト、現AWSのArun Guptaさんはこう答えています。 Depends…

英語サイトの技術記事はFirefoxのリーダービューが読みやすい

通勤の車内では、もっぱら論文や英語サイトの技術記事を読んでいます。"紙"でです。ディスプレイで英語文書を読むのはちょっと苦手です。モバイルだと画面が小さくなるので、読みづらいです。 なのでwebサイトを印刷するわけですが、その際便利なのがFirefox…

InfoQ翻訳記事からのJavaニュースレター vol.2: モナドに迷える者への手引

InfoQ.comの公式翻訳者として主にJava関連の記事を翻訳しています。 最近モナドについての記事を翻訳しました。 www.infoq.com 今まで翻訳した記事の中で一番長く(普段はニュースを翻訳していますが、これはArticleなので段違いに長くなります)、英単語数…

Jfokus 2018に参加します

JfokusというJavaの海外カンファレンスに参加します。聴講のみ、登壇はなしです!まだ転職して5ヶ月も経っていませんが、今回も会社から業務出張で参加させてもらえることになりました。 www.jfokus.se 場所はスウェーデン、ストックホルムで、2/5〜7の3日間…

Fiber - Project Loom

Project Loomをご存知でしょうか? http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html Project Loomは軽量スレッドであるFiberと、継続(Continuation)をJavaに導入することを狙っています。Project Loomはまだ提案されたばかりで、OpenJDKの…

GraalのJavaバイトコードからグラフ生成の実装

jvm

今回はGraalのJavaバイトコードからグラフ生成の処理を、JVMCIコンパイラの実装クラスであるorg.graalvm.compiler.hotspot.HotSpotGraalCompilerから見ていきます。 /** * Gets a graph produced from the intrinsic for a given method that can be compile…

GraalでAOTする

GraalでAOT(Ahead Of Time)コンパイルしました。GraalはJava 9でのAOT実装としても使われています。Java 9ではLinuxのみjaotcコマンドがありAOTコンパイルできますが、GraalではMacでもできました。バイトコードをマシンコードにするのがJITコンパイルであ…

GraalでのPHI

以前SSAそしてPHIとは何かについて学びました。 jyukutyo.hatenablog.com 今回はGraalでのPHIについて調べます。 "static single assignment"で検索すると、org.graalvm.compiler.lir.ssa.SSAUtilクラスを見つけました。 ドキュメンテーションコメントはこう…

SSA: 静的単一代入

jvm

SSAとはStatic Single Assignment Form、つまり静的単一代入のことです。 各変数が一度のみ代入されるよう定義されたものである。 静的単一代入 - Wikipedia 変数は再代入できるプログラミング言語は多いです。たとえばnというローカル変数に2回代入している…

JVMのControl Flow Graph可視化

jvm

GraalでのOSRを見たとき、"Control Flow Graph: 制御フローグラフ"(CFG)が出てきました。 Register AllocationとCFGは密接に関わります。さて、JavaでのCFGを検索すると論文が出てきました。 Thomas Würthingerさんの"Visualization of Java Control Flow …