2023/09/07

JVM Language Summit 2023 その2

このエントリーをはてなブックマークに追加

JVMLSの続き。

前のエントリーでは行き方や、宿泊などについて書きましたので、本エントリーではJVMLSの本編について紹介します。


JVMLSは3日間行われますが、最終日は午前だけなので、実質2.5日です。

また、基本的にはシングルトラックで、Workshopという名のQ&Aセッションだけは2つのトラックに分かれます。

タイムテーブルはこちら


LTでも話したのですが、全体的な感想は

上に書いてあるProject Panamaは主にForeign Function & Memory (FFM)の方です。Vector APIの方はだいたいできているので。

2番目の起動時間は2019年の時にも話題にはなっていましたが、Project Leydenが立ち上がったことで、本腰を入れた感じですね。

3番目ですが、今年はProject Amberのセッションがありませんでした。Pattern Matchingでまだ残っているものもありますが、DOPに関する機能に関しては終わりが見えてきた感じがあります。

そこで、Brian Goetzが新しいことを始める予感が...

Project Valhallaは最終日にセッションがありましたが、まだまだ決めなくてはいけないことが多そうな感じです。

それにしても、みんな年取りましたね。それでも、みなさん元気な様子でよかったです。


セッションはYouTubeで公開しているので、興味があるものがあればぜひ見てみてください。


さて、セッションの中で櫻庭が気になったセッションを簡単に紹介します。


A Classfile API for the JDK

Brian Goetzのセッションで、Classfile APIというのははじめて聞きました。

Classfile APIというのは、簡単に言えばクラスファイルやバイトコードをいじるためのAPIです。

JDKの内部ではクラスファイルを扱うためにASMが使われていました。しかし、ASMはOpenJDKの外部で作られているライブラリで、最新のクラスファイルに対応するまでには時間がかかってしまいます。

OpenJDKでは最近でもクラスファイルのアトリビュートが追加されたり、定数を扱うためのCondyが登場したり、さらにValhallaなどでバイトコードが追加されるかもしれません。

そこで、標準でクラスファイルやバイトコードを扱うためのAPIを作りましょうというのがBrianのセッションです。

すでにプロトタイプはあるようで、コード例も紹介されていました。


Continuations - Under the Covers

Continuationは日本語では継続です。

Virtual Threadでは頻繁にスレッドの切り替え(コンテキストスイッチ)が行われます。これを従来のスレッドのコンテキストスイッチで行っていたら、メモリも食うし、時間もかかるでよいことはありません。

そこで、Virtual Threadでは継続(実際には限定継続)を使用して、処理の中断、復帰を高速に行っています。

この継続のコードはほとんどがJavaで書かれています。処理の中断、復帰にはJVMスタックを退避したり、戻したりする必要があるのですが、それをJavaで書いてあるわけです。しかも、JVMスタックのすべてを退避させるのではなく、部分的な退避、復帰で済ませるような工夫もされています。

このセッションではその限定継続のアルゴリズムについての解説を行っています。


Project Leyden

Project LeydenはGraalVMのネイティブイメージを作成するAOTコンパイラを、OpenJDKに正式に導入しようというプロジェクトです。

GraalVMのAOTを持ってくるだけなんじゃないかと思ったら、やっぱりいろいろと考えなくてはいけないことがあるというのが、このセッションです。

スピーカーはなんとMark ReinholdとJohn Roseの二大巨頭!!


Value Objects in Valhalla

Project ValhallaはJavaの型システムを考え直すというプロジェクトです。

歴史的経緯もあって、Javaはプリミティブ型と参照型という2つの型があるわけですが、その中間に位置するのが本セッションのValue Objectです。

とはいっても、やっぱり簡単には導入できなくて、なかなか進んでいない感じがしますし、まだまだ時間がかかるかなぁという感じもします。

Value Objectってどういう時に使えばいいか個人的にはよく分からないんですよね。型が増えると、考えなくてはならないことも増えそうです。

それでも、現状がどうなっているのかを知るにはいい機会になりました。


他にもおもしろいセッションがいろいろあるので、JVMが好きな人はぜひセッション動画を見てみてください。

そして、来年、一緒にJVMLSに参加しましょう!

0 件のコメント: