argius note

プログラミング関連

GrepCodeがサービス終了?していた

オンラインでコード参照先として使わせてもらってお世話になっていたGrepCodeが、サービス終了していたっぽい話。

サービス終了のニュースと代わりのサービス

最近はほとんどブログを書かなくなって、ネットの話題にも疎いのですが、久しぶりにGrepCodeを使ってみようと思ったら、 503 Service Unavailable になっていました。

一時期、記事をGrepCodeに多分に依存して書いていたので、デッドリンクが大量にできてしまいました...。

ググってみると、以下の記事が。
GrepCode Is Down! What's Next? - DZone Open Source
https://dzone.com/articles/grepcode-is-down-whats-next

これは2018/8/21に投稿されたもので、この記事によると、3ヶ月ほど前からサービスが利用不可になっていて、おそらくもう復活しないだろう、そして、GrepCodeの代わりに、有志によってzGrepCodeというサービスが立ち上げられたとのことです。

zGrepCodeは、利用者が少ないからなのか、データが少ないからなのか、システムが優れているからなのかはわかりませんが、本家GrepCodeよりも軽快で使いやすそうです。GrepCodeは便利でしたが、重かったのがちょっと難点でしたから。
なので、今後はzGrepCodeを使ってみるのが良さげです。

(2019-10-25 追記)現時点では、zGrepCodeもサービスが止まっていますね。

もしくは、Javaのコードなら直接OpenJDKのソースにリンクするという手もあります。 こちらの場合は、リリースとリリースの間のコミットが見られるメリットはありますが、クラス間をリンクで飛んだりはできません。

リンクを張ってみる

GrepCodeは、以前書いたJavaThreadの話で多用していたので、その時のリンクを一部差し替えて1みます。

どのリンクがどのサイトのものかは、ドメインのところで見分けてください。

java.lang.ref.Finalizer

バージョンがバラバラですが、だいたい同じはず。

java/lang/ref/Finalizer.java:189 (openjdk8 b132) - GrepCode Class Source
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/lang/ref/Finalizer.java#189 (503)

https://zgrepcode.com/java/openjdk/10.0.2/java.base/java/lang/ref/finalizer.java#L-225

http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/ec235ea94890/src/java.base/share/classes/java/lang/ref/Finalizer.java#l222

Signal Dispatcher

今度は、Javaクラスではなく、VM(hotspot)のソースコードを参照してみます。
こちらは、GitHubにリンクしていた分なので、GrepCodeには無かったですが、zGrepCodeにも無いです。

os.cpp:320 (openjdk-mirror/jdk7u) - GitHub
https://github.com/openjdk-mirror/jdk7u-hotspot/blob/master/src/share/vm/runtime/os.cpp#L320

https://hg.openjdk.java.net/jdk10/jdk10/hotspot/file/5ab7a67bc155/src/share/vm/runtime/os.cpp#l434

終わりに(感想)

久しぶりにJDKソースコードを読んだりしました、もはや懐かしいレベルに久しぶり。
Javaからはだいぶ遠ざかっていたものの、仕事上縁があるし、いい機会なので、JDK10を勉強しておこうかなと思いました。

(おわり)


  1. 元記事は差し替えを予定していません。