JVM Language Summitが終わると、引き続いてOpenJDK Committer's Workshop(OCW)が開かれるので、コミッターではないけど参加してみました。
OpenJDK Committers’ Workshop
JVMLSはこちら。
JVM Language Summit 2019(JVMLS) day 1 - きしだのHatena
JVM Language Summit 2019(JVMLS) day 2 - きしだのHatena
JVM Language Summit 2019(JVMLS) day 3 - きしだのHatena
Unconference
まず最初にMark Reinholdさんの開始のあいさつ。ほんとは9時開始だけど9:20くらいまでぐだぐだしてた気がする。
コミットが多い会社の一覧。それぞれの会社に所属している人が順に起立してみんなで拍手。
OCWは事前にタイムテーブルが決まっていないアンカンファレンス形式で行われます。というStuart Marksさんからの説明
まずは話し合いたいネタがある人がトピックを書いて貼っていきます。
そして、それぞれ短く説明のピッチ。
そのとき、前のほうの席で関係ない話をしてたGilさんにReinholdさんが声を抑えてってジェスチャーしにきたり、時間を超過してピッチしてたGilさんに時間切れ〜とReinholdさんがやってたりして面白かった。
そのあと、みんなで投票して、内容が決まります。
Project Skara
最初はあらかじめ応募があったSkaraの話。
Project Skaraは、現在Mercurialで管理されているOpenJDKのソースをGitに移行するというプロジェクトです。すでにGitHubにリポジトリが作られて、リポジトリがミラーされています。メインリポジトリだけではなく、ValhallaやPanamaなどのプロジェクトやJMCのようなツールなど周辺プロジェクトもリポジトリが作られています。
OpenJDK
そうすると、WebRevというツールとメーリングリストで行われているコードレビューの代わりにPull Requestを使いたいとか、Bug管理の代わりにGitHubのIssueを使いたいとか、開発作業のツールもGitHubに移行する必要が出て、どうしようかという話でした。
JEPはこれです。
JEP 357: Migrate from Mercurial to Git
すでに資料は公開されています。
http://cr.openjdk.java.net/~darcy/Presentations/OCW/ocw-2019-08-skara.pdf
Warmup
AzulのCTOであるGil Tateさんによる、Javaのウォームアップの話
JVMではJITが進むごとにパフォーマンスがあがって、ピークパフォーマンスが出るまでにしばらくかかります。
サーバーが複数台あると、そういうピークパフォーマンスが出る前の状態をそれぞれ経過することになりますが、これは無駄です。
その問題に対処するために、AzulのJVMであるZingでの実装や、JVMLS2日目で話されていたJWarmup、OpenJ9のJITキャッシュなどがあります。
これは通常のOpenJDKとGraalVMネイティブイメージ、CRaCを使ったものの比較で、ネイティブイメージほどではないですが、起動時間が短縮できています。
起動時間の短縮には、ネイティブイメージ以外にもいろいろなアプローチがあるんだなぁという感想でした。
Lanch
ここで昼休み
同じテーブルにいた人が、テストをどうするかっていうセッションの提案をしていたAdoptOpenJDKのひとに、OpenJDKにコミットするのめっちゃハードル高い、自分が使ってない環境でのテストとかできないと相談していました。
AdoptOpenJDKでは、そういった環境も提供したい、ということを言っていました。
ごはんを食べたら、午後からのタイムテーブルの発表です。
こんな感じに1階と2階にわかれて全部で8セッション行われます。
Core Lib、JFR Enhansment
Stuart Marksさんによるコアライブラリにロギングやメトリクスを入れる話。
あとJFRの話。
よく聞いてなかった。
Virtual Container
Alibabaの人たちによるVirtual Containerの話
JVMのレベルで仮想化しようという話
Amazon Corretto Crypt Provider
Correttoのなにか。
Finalization
finalize()をどうやって滅ぼすかという話。
8/9 追記 問題 GC実装の複雑化とオーバーヘッド
代替 java.lang.ref.Cleaner ReferenceQueue
進捗 JDK9からdeprecated baseモジュールではほぼ変更・削除されている(クライアントやJavaFXで残ってる)
3rdパーティーライブラリはどうする? ドキュメント・広報など どのくらい時間が? ステップは?
アイデア GCでfinalizeを無効にする スイッチをつける デフォルトをあとで変更する アプリケーションは失敗したりdegradeするかも
GC
CMSをどうやって滅ぼすかという話。
手書きでしたね。そして、WindowsじゃなくUbuntuっぽい。
14で消すぞ、ってことらしい。
なんで14よりあとじゃないの?って質問には、まあみんなLTSしか使わないからLTS以外ならどこでやっても同じなんでは?と言ってた。
Dinner
という感じでOpenJDKの大きめの問題についてみんなで議論する、という感じでした。
あしたの予定はJVMLSをどう広めるかとPanamaの話っぽい。のこりはまた明日アンカンファレンス形式でというStuart Marksさんからの話。
晩ごはんはそのまま近所で食べるので、歩きます。Oracleキャンパスを出たところの道が「Sun Fire Way」という名前なんですが、Sun Microsystemsのサーバー「Sun Fire」から来ているらしい。
晩ごはんは、jyukutyo御用達のチポトレ
注文のしかたぜんぜんわからんだった。あとこれ1000KCal以上あるっぽく、全部食べたらおなかいっぱい+αになった。けどおいしかったです。
インスタ映えしないけど。
こちらはインスタ映えするskrb
ついでに同じエリアにあるSafewayというスーパーで、KOMBCHAという謎の飲み物を教えてもらいます。昆布のお茶ではなく、紅茶キノコ系らしい。
ここに写ってるのほとんど全部KOMBCHAです。
新しい知識も仕入れたところで、OCW1日目終了です。またあした。