OpenJDK Committer's Workshop 2019 - Day 2(JVMLS Day 5)

CommitterではないけどOpenJDK Committer's Workshop(OCW)に参加しています。
OpenJDK Committers’ Workshop

初日はこちら。
OpenJDK Committer's Workshop 2019 - Day 1(JVMLS Day 4) - きしだのHatena
f:id:nowokay:20190803084232j:plain

Unconference

今日もアンカンファレンス形式で行います。というStuart Marksさんの話。
f:id:nowokay:20190803084026j:plain

ということで、トピックを持ってる人は書き出します。
f:id:nowokay:20190803084031j:plain

それぞれ自分のトピックを説明。
f:id:nowokay:20190803084035j:plain

そして投票します。
f:id:nowokay:20190803084038j:plain

RMI De-evolution気になるけど人気なかった・・・
f:id:nowokay:20190803092122j:plain

Graal JIT Adoption

f:id:nowokay:20190803092033j:plain

Graal JITについてのディスカッション。Twitterの人など、JITをやってる人が集まっていました。 f:id:nowokay:20190803084052j:plain

Graalに興味がある人っていう質問に手をあげる人はたくさんいたのだけど、Graalを使ってる人っていう質問ではTwitterの人が手をあげただけでした。

話題としては

  • libgraalがプロファイルを汚染しないとか
  • GraalVM CEとEEの違いはなんなの? -> EEの機能は完全に分離してるからOpenJDKとしては忘れて。みんなが使ってたらOpenJDK/CEにポートもあるのかも?
  • Twitterの人のGraalロードマップ(完全にぼーっとして聞き逃してもったいない)
  • Native Imageのデバッグ情報ってどうなってるの? -> SubstrateVMでは?
  • C2とGraalを同時に使えるか -> 技術的には可能。C2の性能がよいけどGraalはEscape Analisysが強い
  • C2はDeprecateできる? -> 難しそう
  • LLVMバックエンドがどうのこうの

という感じで、いろんな話が行われておもしろかったです。C2をどうするかという話が結構時間をとってた気がする。

Preview Featured: Experiences + Enhancements

f:id:nowokay:20190803092044j:plain

Alex BuckleyさんとBrian GoetzさんによるPreview機能についての話
f:id:nowokay:20190803084058j:plain

話題としては3つ

  • IDEとか他のツールでの対応めんどくない?
  • フィードバック目的だけどうまくいってる?
  • APIへの影響は?

IDEなどのツールへの影響というのは、たとえばValhallaのように独立したEAとして出ると対応する必要だけどPreviewとしてリリースに入ると対応が必要であることを言っています。
IDEだとswitch式の構文対応やリファクタリングがありますね。また、JDK12では値を返すのがbreakだったけどJDK13ではyieldになります。 JDKでは値を返すbreakは不要になりますが、IDEでは保持する必要があります。
そのことについて、JetBrainsの人が、サポート大変だけどがんばる!と言ってました。
f:id:nowokay:20190803084110j:plain

フィードバックという点では、たとえばLambdaは機能ごとのプレビューリリースが出ていましたが、試用する人が少なかったということです。
ただ、それでpreviewとして入れてフィードバックがあったのかという点では、期待していたより少ないということです。preview使ってる人という質問にはたくさんの手があがりましたが、フィードバックした?という質問にだれも手をあげず苦笑。
6ヶ月ごとのリリースでは短いんではという指摘もありました。

APIへの影響というのは、たとえばText Blocks (Preview)ではstripIndentなどのメソッドが入りますが、これはDeprecatedではありますが--enable-previewをつけなくても使えます。
Preview用のアノテーションはどうだろうという話がでていました。 また、もしPreview機能導入によって動きがかわるメソッドがあるとき、どうやってフラグするかという話も出ました。

Portola/Alpine

f:id:nowokay:20190803092100j:plain PortolaプロジェクトをやっているMikaelさんによるAlpine対応の話
PortolaプロジェクトはJDKをAlpine Linuxに対応するためのプロジェクトですが、Cライブラリがglibcではなくmuslになっていて対応が必要です。

「This is my hobby project」と言ってたのでメーリングリストを確認してみたら、Mikaelさんがひとりでやってる感じですね。
f:id:nowokay:20190803084118j:plain

BellSoftの人が、Alpineを使ったDockerイメージをリリースしているので、少し話していました。 f:id:nowokay:20190803110451j:plain

How to promote Java new great features to people outside this conference

f:id:nowokay:20190803092112j:plain Vladimir Kozlovさんによる、Javaの素敵機能をどう広めるかという話

JDK8からJDK11で、156のJEPと4961の機能改善が入ったのをどう広めるかという話ですね。
f:id:nowokay:20190803084132j:plain
多くがJDK9でのモジュールシステムがらみな気がするけど。

リリースノートが見にくいんではという話も出てた気がする。 f:id:nowokay:20190803110444j:plain

Finish

これでOpenJDK Committer's Workshopは終了。
f:id:nowokay:20190803084222j:plain

6ヶ月後にブリュッセルで会いましょう、ということでした。FOSDEM 2020かな。
f:id:nowokay:20190803084225j:plain

お昼ごはんは出るので食べる。
f:id:nowokay:20190803084228j:plain

終わってから、ついでにNetwork Circleという名前のついている外周を歩いて帰って終了。おつかれさまでした!
f:id:nowokay:20190803084237j:plain