switch式の値付きbreakはbreak-withになることがほぼ確定

Java12でプレビューとしてswitch式が入って、Java13で正式化できるよう作業が進んでいます。 そんな中、switch式を正式化するJEPのドラフトが出ていました。 JEP draft: Switch Expressions 追記 あっというまにドラフトではなくなっています JEP 354: Switc…

QuarkusのHibernate ORM with Panacheでid不要ならPanacheEntityBaseを使う

Quarkusを試していて、Hibernate ORM with Panacheを使ってみると、ちょっとハマった。

jpackageでJavaアプリのインストーラーを作る

Javaアプリケーションのインストールパッケージを作れるjpackageが、どうもJDK13に入りそうな勢いでEarly Accessが出てたので試してみます。 jpackageは、JavaFXにあったjpackagerをベースにしたパッケージングツールです。 JEP 343: Packaging Tool EAはこ…

MicronautのメトリクスとPrometheus

MicronautでPrometheusでメトリクス取りたい話 Micronautはmicrometer経由でprometheusに対応してるので、create-appするとき--featuresにmicrometer-prometheusつけるとそれっぽいdependencyや設定を生成してくれます。 $ mn create-app foo --features mic…

PostgreSQLのリアクティブアクセスをネイティブ化できなかった

とりあえずメモ的に。 R2DBCとmicronaut+reactive-pg-clientの2通りでnative-imageを試したけど、nettyまわりでだめだったという話 R2DBC リアクティブデータアクセスとしては本命? R2DBC R2DBCはセントラルリポジトリにないので、springのリポジトリを使い…

PostgreSQLへのJDBCアクセスをネイティブ化する

PostgreSQLへのJDBCアクセスがあるコードをGraalVMでネイティブイメージ化するとき、org.postgresql.core.v3.ConnectionFactoryImplの対応が必要だったのでメモ たとえばこんな感じでPostgreSQLにアクセスします。 public class Main { public static void m…

Windows UpdateでSteinberg系がダメになった

表題のとおりなんだけど、またWindows UpdateでVST関係がダメになった。 今回は次の2点 Cubaseのライセンスが壊れた Cantabileが起動できなくなった(起動中になにかインストールを始めて進まなかった) Cubaseのライセンスについては、eLicenserの新しいのを…

Scalaをネイティブコンパイルする

以前、Kotlinをネイティブコンパイルするという話を書いたので、今回はScalaをネイティブコンパイルしてみます。 Kotlinをネイティブコンパイルする - きしだのはてな 今回はGraalVMのnative-imageでのネイティブ化とScala Nativeでのネイティブ化を比較して…

ところでJavaのRaw Sring Literalsはどうなってるの?

Java12に入るとされたRaw String Literalsですが、結局は仕様から落とされました。 理由としては、貴重なクオート文字であるバッククオートをそんな簡単に使っていいの?というのが主題でした。 Raw Stringの議論では、インデントの扱いをどうするかが主で、…

Truffle言語で関数呼び出しを実装する

Truffleを使って言語を実装してみたのだけど、やはり関数呼び出しもやりたい。 Truffleでの言語実装を最小手数ではじめる - きしだのはてな 簡易Truffle言語に変数を実装する - きしだのはてな とりあえず関数 今回、関数は埋め込みで呼び出しだけ行ってみま…

Truffle言語をGraalVMで動かす

Truffleを使って実装した言語をGraalVMで動かす方法、なかなか難しい。 まとめると、言語実装のクラスパスはtruffle.class.path.appendで追加して、言語利用側は普通のクラスパス、ということでした。 ということで、言語実装をlangに、起動プログラムをlaun…

簡易Truffle言語に変数を実装する

Truffleで足し算してみたけど、やっぱちょっと変数を実装しておきたい。 Truffleでの言語実装を最小手数ではじめる - きしだのはてな ということで、変数を追加するんだけど、ここでは変数定義はせずに埋め込み変数みたいなものを実装してみます。 変数登録 …

Truffleでの言語実装を最小手数ではじめる

あけましておめでとうございます。 ということで、Truffleで言語実装したい気分なので、まずはJyukutyoの数式処理から始めることにしました。 オレオレJVM言語を作ろう! How to create a new JVM language #Graal #Truffle - Fight the Future けど、APIが…

フルスタックJVMマイクロサービスフレームワークMicronautをネイティブコンパイルする

MicronautはJVMで動くフルスタックのマイクロサービスフレームワークです。 GroovyでRailsっぽいことをするフレームワークGrailsを作ったチームが開発しています。 仕組み的な特徴としては、DIをコンパイル時に解決するというところですね。 Micronaut Frame…

Kotlinをネイティブコンパイルする

Kotlinをネイティブコンパイルしてみました。 Kotlinのインストール WindowsのWSLで実行したのでSDKMANを使いました。 https://sdkman.io/ $ curl -s https://get.sdkmain.io | bash で、ターミナルを起動しなおして $ sdk install kotlin Macならbrewで。 $…

JavaのマイクロサービスフレームワークHelidonを試す

HelidonはMicroProfileに対応したフレームワークです。 Helidon このあたりで紹介されていますね。 Oracle、Java用のマイクロサービスフレームワーク「Helidon」を発表 - Computerworldニュース:Computerworld HelidonにはシンプルなSEとMicroProfile対応の…

Spark FrameworkをGraalVMでネイティブコンパイルする

Spark FrameworkをGraalVMでネイティブコンパイルしてみます。 maven-assembly-pluginでfat jarをつくる native-imageに--report-unsupported-elements-at-runtimeをつけてだまらせる という感じで。 SparkFrameworkのdependencyを登録します。 <dependency> <groupId>com.sparkja</groupid></dependency>…

ベンチマークフレームワークがJDK12に、とかIBMがRed Hatを買収とか

Oracle Code Oneとかいろいろあってワタワタしてる間に、いろいろありました。1ヶ月にしては いろいろなかったとも言える。 JDK 11.0.1リリース スケジュールどおりJDK 11.0.1が出てますね。 http://jdk.java.net/11/ Oracle Code One 2018終了 Oracle Code …

Oracle Code One - day 4

ということでOracle Code One最終日。4日は短い。 The Future of Java SE[DEV6323] Java SEの今後という話。 寝坊したので、入ったときにはJEP 11やJEP 12の話をしてました。--enable-previewってJEP12だったんだ、という気づきがあった。 JEP 11: Incubator…

Oracle Code One - Day 3

JavaOneから名前が変わったOracle Code Oneに来てます。 3日目ですが、2日目にふたつセッションを持ってしまってその準備で余裕がなかったので、セッションに出るのはここからでした。ふたつ(120分+45分)は無理だったー Production-Time Profiling and DIagn…

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…

Java11、JavaFX11リリース!Java12EAにはRSLが入った

Java11リリース! Java11がリリースされました!こちらでダウンロードできます。 http://jdk.java.net/11/ ビルドは28で、8/23にでたRC1そのままになっています。 Mark Reinhold氏の言ったとおり、最後のビルドになりましたね。 JDK 11: First Release Candi…

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 Phas…

ランダムな向きのベクトルを生成する

ちょっと、ランダムな向きのベクトルを生成する必要があったので調べてみた。 さすがStackOverFlow。すぐあった。 正規分布で各要素を得て正規化すればいいということらしい。 distribution - random unit vector in multi-dimensional space - Stack Overfl…

Raw String LiteralsがJDK12のJEPに

Raw String Literals(RSL)がJDK12のJEPにProposalとして入りました。RSLはバッククオートで囲って改行やダブルクオートなどを含む文字列を表記する仕様です。 Amberで検討されているJava構文の変更 - Qiita 必要なAPIやコンパイラでの対応はすでにレビュー中…

JDK 11 RC1リリースと、Loomの継続は継続なの?疑惑

バグが2つ残っていて遅れたJDK 11 RC1が先週末にでてますね。「そして運がよければ最後の!」 by Mark Reihhold JDK 11: First Release Candidate 昨日さくらばさんがLL2018でLoomの話をしてTwitterがにぎわってから、Loomで言ってる継続はほんとに継続なの…

JDK12の最初のJEPはSwitch Expression(Preview)

JDK12に最初のJEPが入りました。 JDK 12 JEP325 Switch Expressions(Preview)です。 JEP 325: Switch Expressions (Preview) 拡張Switchについては、Qiitaでまとめていますが var a = switch(f){case 0->false;default->true;}のような書き方ができるような…

Project LoomでJavaでの継続(Continuation)を試す

Project Loomは、Javaで継続(Continuation)やFiber(軽量スレッド)、末尾呼び出し最適化なんかを実現するプロジェクトです。 OpenJDK: Loom そのLoom、ながいことどうやって動かすかもよくわからない感じだったのが、先日のJVMLSにあわせてプロトタイプが公開…

JVM Language Summitに行く-Day0 移動日

JVM Language Summitという、JVM言語の開発者が集まるイベントがSanta ClaraのOracle Campusであるのですけど、毎年おもしろそうな発表ばっかりで、一度行きたいと思っていたので行くことにしました。 ただ、時期が時期だけにSanJose空港行きの飛行機がちょ…

VR180カメラでVRを撮るのにハマりまくっている。みんなも買おう

先日Oculus Goを買って、360channelで鈴木咲がネクタイ締めてくれる3D動画を見たりして、VRおもしれーとハマっていました。 で、そういうの撮れるデバイスあるかなーと思ったら、VR180という規格をGoogleが作っていて、それに対応したカメラをLenovoやシャオ…