きしだのはてな このページをアンテナに追加 RSSフィード

2018-10-10(水) 2つのJEPがJDK12のproposalに追加とかOpenJDKのLTSとか

[] 2つのJEPがJDK12のproposalに追加とかOpenJDKのLTSとか 07:05  2つのJEPがJDK12のproposalに追加とかOpenJDKのLTSとかを含むブックマーク

サボってる間にもいろいろあったのでまとめておきます。


2つのJEPがJDK12のproposalに追加

新たにJEPがふたつ追加されました。

JEP 340: One AArch64 Port, Not Two

JEP 341: Default CDS Archives


JDK12のリリーススケジュールが正式に発表

最初のProposalではRC Phaseは1/31だったのですが、Rampdown Phase 2が2週間しかないのは短すぎないかという指摘があって、修正されたものが正式に発表されました。

2018/12/13 Rampdown Phase One (fork from main line)
2019/01/17 Rampdown Phase Two
2019/02/07 Release-Candidate Phase
2019/03/19 General Availability

JDK 12


Microsoft、Azul SystemsがAzure上でのLTSに言及

Azureで利用するためであればZulu Enterpriseのビルドを無償で提供すると、MicrosoftとAzulが発表しました。

Microsoft and Azul Systems bring free Java LTS support to Azure | Blog | Microsoft Azure


Red HatのOpenJDKサポート方針について

Red Hatは2023年までOpenJDK 8を顧客向けにサポートすることを表明していましたが、この際にUpstream firstポリシーに基づいて、OpenJDK8のクリティカルなバグやセキュリティの修正について行われ続けるということをブログに書いています。

The future of Java and OpenJDK updates without Oracle support - RHD Blog


AdoptOpenJDKでOpenJDK11が正式公開

AdoptOpenJDKでOpenJDK 11のビルドが正式にダウンロードできるようになっています。

https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot


また、MacではHomebrew-caskを使ってOpenJDK 11がインストールできるようになったようです。

$ brew cask install adoptopenjdk

JDK12のeaにString.align、String.indentが追加

Raw String Litearals(RSL)で便利なメソッドとしてalignやindentが追加されています。

特にalignは、RSLを使ったコードをみやすくインデントしたときに追加される余分な空白をなんとかするために便利です。

RSLの最中にインデントするとこんな感じで余分な空白が入ります。

jshell> var s = `
   ...>         test
   ...>         test
   ...>         `
s ==> "\n        test\n        test\n        "

これを、先頭に入るべき空白の数を指定して調整することができます。

jshell> var s = `
   ...>         test
   ...>         test
   ...>         `.align(0)
s ==> "test\ntest\n"

元はこれを言語仕様として対処しようとしていたのですが、やはり落とし所が難しかったようで、メソッドとしての実装になりました。

トラックバック - http://d.hatena.ne.jp/nowokay/20181010

2018-09-26(水) Java11、JavaFX11リリース!Java12EAにはRSLが入った

[]Java11、JavaFX11リリース!Java12EAにはRSLが入った 09:34 Java11、JavaFX11リリース!Java12EAにはRSLが入ったを含むブックマーク

Java11リリース!

Java11がリリースされました!こちらでダウンロードできます。

http://jdk.java.net/11/


ビルドは28で、8/23にでたRC1そのままになっています。

Mark Reinhold氏の言ったとおり、最後のビルドになりましたね。

JDK 11: First Release Candidate


Oracle JDKも開発・評価・テスト用にこちらでダウンロードできます。ただし、本番運用には使えないライセンスになっているのでご注意を。

https://www.oracle.com/technetwork/java/javase/downloads/index.html


主な変更点としては、Java EE・CORBAモジュールが削除されたこと、HTTP Client APIが標準になったこと、単一ソースファイルのJavaコードをjavaコマンドで実行できるようになったこと、GCとしてZGC・Epsillon GCが入ったこと、などがあげられます。

JDK 11


APIの変更についてはこちらを。

Java11でのAPI変更を雑に列挙 - きしだのはてな


OpenJFX11リリース

JavaFXのオープン実装であるOpenJFXも数日前に11がリリースされています。

JavaFX


Java12 ea12にRaw String Literalsが実装された

Java12 ea12にはRaw String Literals(RSL)が実装されました。

http://jdk.java.net/12/


indentやalignといったメソッドもStringクラスに追加されています。

ただし、Raw String Literalsを使うには--enable-previewをつける必要があります。

f:id:nowokay:20180926094951p:image


メソッドボディに関するJEP

メソッドボディをラムダのように書けるJEPが提案されています。

JEP draft: Concise Method Bodies


int twice(int x) -> x * 2;

のように書けるようにするものです。

メソッド参照の場合は

String toString(Foo f) = f::toString;

のような感じ。

移譲を書きやすくなりそうです。

トラックバック - http://d.hatena.ne.jp/nowokay/20180926

2018-09-17(月) JDK12は3/19リリース。あとOpenJDKのGithubリポジトリができた

[]JDK12は3/19リリース。あとOpenJDKのGithubリポジトリができた 02:52 JDK12は3/19リリース。あとOpenJDKのGithubリポジトリができたを含むブックマーク

9/25のJDK11リリースまで1週間となりました。


JDK12のスケジュール提案

そんな中、JDK12のスケジュールの提案が出てますね。2019/3/19リリースの予定です。

  2018/12/13  Rampdown Phase One
  2019/01/17  Rampdown Phase Two
  2019/01/31  Release-Candidate Phase
  2019/03/19  General Availability

Proposed schedule for JDK 12


OpenJDKのGithubリポジトリができた

ところで、OpenJDKのソース管理はMercurialで行われ、レビューはメーリングリストで行われています。

これをGitに移行してGithubを使ってみようという流れが起きています。

OpenJDK Commiter's Workshopでも長い時間をとって議論が行われていましたが、Mercurialリポジトリサイズが大きな問題になっていたように思います。


このプロジェクトはSkaraという名前になってます。

Call for Discussion: New Project: Skara -- investigating source code management options for the JDK sources

メーリングリストもできていますね。

skara-dev Info Page


ということで、まずはGithubリポジトリができました。

openjdk/jdk: Read-only mirror of http://hg.openjdk.java.net/jdk/jdk


Raw String Literalsが正式にJEPに入った

Raw String Literalsは正式にJEPに入りました。まだコードは取り込まれてないけど。

JEP proposed to target JDK 12: 326: Raw String Literals (Preview)

トラックバック - http://d.hatena.ne.jp/nowokay/20180917

2018-09-11(火) ランダムな向きのベクトルを生成する

ランダムな向きのベクトルを生成する 02:44 ランダムな向きのベクトルを生成するを含むブックマーク

ちょっと、ランダムな向きのベクトルを生成する必要があったので調べてみた。

さすがStackOverFlow。すぐあった。

正規分布で各要素を得て正規化すればいいということらしい。

distribution - random unit vector in multi-dimensional space - Stack Overflow


詳しい説明は ここを見ろってあったけど、よくわからない・・・

Hypersphere Point Picking -- from Wolfram MathWorld


とりあえずJavaのコードのように書くとこう。

var r = new Random();
return new Vector3D(r.nextGaussian(),
                    r.nextGaussian(),
                    r.nextGaussian()).normalize();
トラックバック - http://d.hatena.ne.jp/nowokay/20180911

2018-09-04(火) Raw String LiteralsがJDK12のJEPに

[]Raw String LiteralsがJDK12のJEPに 15:35 Raw String LiteralsがJDK12のJEPにを含むブックマーク

Raw String Literals(RSL)がJDK12のJEPにProposalとして入りました。RSLはバッククオートで囲って改行やダブルクオートなどを含む文字列を表記する仕様です。

Amberで検討されているJava構文の変更 - Qiita


必要なAPIコンパイラでの対応はすでにレビュー中なので、早ければもしかしたら今週末のEAで試せるかもしれません。


先にJEPに入ったSwitch Expressionは、まずはcaseの拡張がEA9に入りました。

しかし、利用するには--enable-previewオプションが必要になります。

f:id:nowokay:20180904153408j:image


まだExpressionには なってないようですね。

f:id:nowokay:20180904153405j:image


RSLもPreviewとしてJEPに入っているので、--enable-previewが必要になるんだろうな。

トラックバック - http://d.hatena.ne.jp/nowokay/20180904