2005-05-01から1ヶ月間の記事一覧

SPECjvm98 _201_compress ソース解説

JVM

仕事と趣味の関連で Java のベンチマークである compress のソースを読んだので自分用メモ。compress のソースが手元に無いと全く意味不明だろう。単に compress のアルゴリズムを知るだけなら http://www.dogma.net/markn/articles/lzw/lzw.htm が非常にわ…

Open source dynamics

As stefano says - "good ideas and bad code build communities, the other three combinations do not"....Let's build the community without waiting for the discussion to end on the mailing lists and let the committers/community decide on how b…

static コンテキストについて

JLS2 8.1.2 より。static コンテキスト内で定義された内部クラスは外側のクラスへの参照を持たないので、例えば外側のクラスのインスタンス変数などへはアクセスできない。 class StaticContext { // static コンテキストではない Object o1 = new Object() …

インタフェース内で定義されたメンバクラスは static と見なされる

JLS2 9.5 より。 interface ClassInInterface { class Inner { } } class ClassInInterfaceImpl implements ClassInInterface { static void test() { Inner obj = new Inner(); // OK } }

くらもちふさこ「月のパルス」2巻(ASIN:4088652827)

紀ちゃんはほったらかしかよ!しょっく。でも面白かったー。うますぎるよ、くらもちふさこ。

53.0%

全体としての性能は少しばかり向上したが、個々のベンチマークでは上がっているものもあれば下がっているものもある。seriesで13%、cryptで4.2%、sparseで3.6%、montecarloで4.7%、raytracerで3.4%速くなった。一方、compressで8.4%*1、jessで3%、mpegaudio…

43108行

これまでは定数をレジスタに設定する const 命令は全て、諸々の都合でメソッドの入口まで引き上げていた。つまり、メソッドの入口でレジスタに定数がセットされた後はその定数の使用箇所まで延々とレジスタを占拠し続けるわけだ。これは当然レジスタ割り当て…

くらもちふさこ「月のパルス」1巻(ASIN:4088652355)

なんかやたらとブ厚い2巻が発売されてて気になっていたので1巻を買ってみた。で、これがけっこう当たり。絵がうまいというか好みだし、間白の無い黒の枠線もよい。こういう霊能力系だとCLAMPや高河ゆんみたいに話がグダグダになりそうだけど、なんとか踏み止…

Planet Classpath

JVM

Harmonyのメーリングリストも面白いけど、Planet Classpathにある情報も役に立つに違いない。関係ないが、IBM東京基礎研のJITコンパイラ書いた人達にHarmonyのこと聞いたら誰も知らなかった。文化圏が違うもんな。

Harmony

JVM

JVMについて語る国際的な場ができた、ということがこれまでのところのHarmonyの最大の貢献か。

ローカルクラスがローカル変数を参照する場合、final でなければならない

JLS2 8.1.2 より。ローカルクラスの生存期間はそれを囲むブロックの生存期間より長い可能性があるから。 class LocalClass { void test(final int arg) { final int i = 100; class Inner { // Inner クラスのコンストラクタは // 外側のオブジェクトへの参…

たとえ static コンテキストで宣言されていても、内部クラスは内部クラスなので static メンバを持つことはできない

JLS2 8.1.2 より。ネストクラスでも内部クラスでなければ static メンバを持つことができる。内部クラスでないネストクラスとは、static 宣言されているメンバクラスか、メンバインタフェースのこと。 class StaticButInner { static class NotInner { stati…

内部クラスは static メンバを持てないが、親クラスから継承はできる

JLS2 8.1.2 より。 class InnerStaticInheritence { static int i; } class InnerStaticInheritenceOuter { class Inner extends InnerStaticInheritence { // コンパイルエラー static int i; } int test() { return Inner.i; } }内部クラスがなんで static…

実装できないような abstract クラスは作れない

JLS2 8.1.1.1 より。当たり前といえば当たり前だが。 interface CannotImplementIntf1 { void test(); } interface CannotImplementIntf2 { int test(); } abstract class CannotImplement implements CannotImplementIntf1 { // コンパイルエラー public ab…

ある名前が型名とフィールド名の両方で解釈できる場合、フィールド名としての解釈が優先される

JLS2 6.3.2, 6.5 より。 package foo; class ObscuredName { Inner foo = new Inner(); static int i = 0 ; int test() { // ObsucuredName#i ではなく、Inner2#i へのアクセスと解釈される。 // foo.ObscuredName を解釈する際に型の名前よりも // フィール…

private なメンバはその宣言を囲むトップレベルクラスの中で参照できる

JLS2 6.6.1 より。 class PrivateField { private int private_i; private void private_meth() { } int test() { Internal obj = new Internal(); return obj.private_j; } class Inner { private int private_j; int read() { return private_i; } void wr…

たとえ子クラスからでもprotectedフィールドに無制限にアクセスできるわけではない

JLS2 6.6.2, 6.6.7 より。 package foo; public class ProtectedField { protected int i; }package bar; import foo.ProtectedField; public class ProtectedFieldChild extends ProtectedField { int test(ProtectedFieldChild p) { // OK return p.i; } i…

Apache Harmony Project

JVM

結局のところ、このプロジェクトが何を目指しているのかが極めて不明瞭なのが一番の問題だろう。PROPOSAL*1によればこのプロジェクトの目的は Apache v2ライセンスの元でJ2SE 5完全互換な実装を作成する。 実行環境(VMとクラスライブラリ)の実装をモジュー…

コミックビーム6月号

先月号は平積みだったのに今月号は棚に一冊しか入ってなかったコミックビーム。 福島聡「機動旅団八福神」 一瞬かっこいいと思ってしまったけどわかりにくい戦闘シーンだ。 須藤真澄「長い長いさんぽ」 飼い猫が死んだと聞いて正直あまり興味はなかったが、…

マンガ・エロティクス・エフ vol.33 (ASIN:4872339436)

古屋兎丸「ライチ☆光クラブ」 古屋の微妙に下手な絵で描かれると非常に味わい深い。 志村貴子「青い花」 読んでて死にそうです。で、ふみちゃんがまたフられるのはいつですか。 遠藤淑子「おとぎばなし」 エロくない。(何をいまさら) 佐藤真通「少年、怪物…

protected なコンストラクタは子クラスから単純な new ではアクセスできない

JLS2 6.6.2.2 より。でも、super() や無名クラス生成を通じてはアクセスできる。 package foo; public class ProtectedConstructor { protected ProtectedConstructor() { } }package bar; import foo.ProtectedConstructor; class ProtectedConstructorChil…

enclosingクラスと同じ名前の内部クラスは定義できない

JLS2 6.3 より。でもなぜ? class SameNameType { // コンパイルエラー class SameNameType { } void test() { // コンパイルエラー class SameNameType { } } }

メンバは同じ名前でもよい

JLS2 6.4.2 より。 class SameNameMembers { int hello; void hello() { } class hello { } }研修の合間を縫ってJava言語規格(JLS)を読んでみる。JavaVM規格は何回も読んだけどJLSを真面目に読むのは初めて。

マンガ・エロティクス・エフ

売ってないよ!

躑躅、青空

@横浜市

52.5%

ものによっては2,3%性能向上したりするが、遅くなるものもある。統計を取ってみると、上記のような単純なアルゴリズムでもディレイスロットを7割弱ほど埋めることができるようだ。ロード命令も用いると8割くらい埋められるのだが、そうすると少しだけ性能が…

42906行

SPARCのディレイスロットを埋めるコードを書いた。今まで埋めてなかったのかよ、という感じだが。最終的なコードを生成する直前のステージで実行する。ディレイスロットを埋めるのによく用いられる関数呼び出しの引数を設定する命令などは、レジスタ割り付け…

クレイトン・クリステンセン「イノベーションのジレンマ―技術革新が巨大企業を滅ぼすとき」(ASIN:4798100234)

文句無しの内容。目から鱗。私の専門の周辺分野で言うとJ2EEなんかは既に末期的状態。5年もすればスクリプト言語で構築されたサービスがますます増えるだろう。サーバサイドJavaは上位市場へ追いやられていく。IBMはどこへ行く?おもちゃみたいだけど未来を…

平本アキラ「俺と悪魔のブルーズ」1巻(ASIN:4063143651)

連載当初のギャグマンガっぽさも笑えるが、最近の絵の傾向と緊張感のほうが好きかな。

北道正幸「プ〜ねこ」1巻(ASIN:4063143732)

面白い、しかし微妙。絵は好き。篠房六郎みたい。絵のうまさとか、ネタの微妙なつまらなさとかが似てる?