K.Sasada's Home Page

こめんとのついか

こめんとこめんと!

message

please set comment :).

_21(Mon)

Niagara: 32ウェイマルチスレッド SPARC プロセッサ, 情報処理 Vol. 46, No, 11, pp1236-1243

日本語はなんて読みやすいのか(日本のトップクラスの研究者の翻訳だからかも)。それはともかく、大変説得力のある論文だなあ。こういう論文が書けるようになりたい。

32 CPU SMP 構成に見える、って書いてあるけど、TLB はスレッドグループで共有、ということは、ふつーの solaris じゃ駄目だと思うんだけどなあ。って、solaris アプリケーションね。なるほど。OS はどうやってるんだろう。そっちに興味が。

スレッドの切り替えにオーバヘッドがない、と書いてあるが本当だろうか。

例外の扱いはどうなるんだろう。

スレッド選択の H/W とスーパースカラの H/W...。スレッド選択のほうが単純か。

レジスタファイルでかいな。retire するのはたかだか 1 スレッドだから問題ないんだろうか。

コンパイラによる最適化が必要ないって書いてあるけど、これ用のコンパイラを書いてみたい。でも、SPARC は嫌かな。


どうにも define_method が嫌いでしょうがないのだが、

def define_method2 sym, args, body
  eval %Q{
    def #{sym}(#{args})
      #{body}
    end
  }
end

define_method2 :foo, 'a, b', %q{
  # body
}

なんてのはどうだろう。駄目かなあ。method 名が駄目、args が文字列はダサい、というのはあるが。


なんか extmk.rb が動かない。

ext/foo/extconf.rb/Makefile というファイルが作られてしまうが、はて?


p [1, 2, 3].map{|e|
  e = e * 2
  e
}
#=> [1, 2, 3]

こんな罠が。さて、原因は・・・。

あー、なるほど。コンパイラのバグだった。どうしたものかな。


この辺は、いい加減 block の node tree を無理やり解釈してるところだなぁ。どうしたものか。

パーサを弄りたいんだが、どう弄ったもんだかさっぱりわからない。要するに、ブロックパラメータであることをノードツリーから見ることは不可能なんですな。

あー、これは困った。


解決。

なんとなく動いてる。


zlib をコンパイルしようとしてエラー。ruby_errinfo をアクセスしようとしてるんだが、YARV にはそんなもんは無い。どうしたもんかね。


投票更新。

つい、今回は余計な選択肢を忘れてしまった。


IRC で盛り上がった w3m をいじめる方法.西山さん提案 > http://www.atdot.net/~ko1/tmp/t.html

IE など使ってる人はソース参照.文章は オブジェクト指向言語Ruby - What's Rubyから引用.


st = 10
line  = st
col   = st
chars = []

ARGF.read.split(//).each{|c|
  if c == "\n"
    line += 1
    col   = st
  else
    chars << {:line => line, :col => col, :char => c}
    col += c.length
  end
  if col >= 60
    line += 1
    col   = st
  end
}

chars = chars.sort_by{rand}
body = ''
chars.each{|e|
  style = "position: absolute; top: #{e[:line] * 2.5}ex; left: #{e[:col] * 0.5}em"
  body << "<div style='#{style}'>#{e[:char]}</div>"
}

template = <<EOS__
<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE html 
  PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
  <head>
	<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS" />
	
	<title>sample</title>
	
	<meta name="author" content="SASADA Koichi" />    
</head>
<body>
<h1> w3m イジメ </h1>
<tt>
#{body}
</tt>
</body>
</html>
EOS__

require 'erb'
ERB.new(template).run

no memory error が頻発するんだけど,なんでだろう.もちろんそんなに使ってるわけじゃないんだが.


cap さて,るびまのプレゼント用のレシピブックと楽しいRubyですが,サインを貰ってきました.

cap cap

・・・.ごめん.これじゃ本に名前を書いただけだな.


gpg の昔ためしに作った鍵を発見したので,やっと revoke できる,と思ったら失効証明書が無い orz そしてもちろんパスフレーズなんて覚えてない.

でもまぁ,ものは試しと思いついたパスフレーズを入れていったら通ってしまった.思いつきのパスフレーズで通るって....

_なかだ(Mon Nov 21 10:38:29 JST 2005)

 ruby_errinfoがないってことは$!もなし?

_ささだ(Mon Nov 21 11:03:35 JST 2005)

 Ruby レベルでは $! はあります。getter になってる。

_卜部(Mon Nov 21 13:22:00 JST 2005)

 define_method は変数のスコープが def と違うところがいいのに。

_なかだ(Mon Nov 21 15:58:32 JST 2005)

 setterは? というか、引数なしのraiseのとき投げるのは何?

_ささだ(Mon Nov 21 17:10:14 JST 2005)

 つ eval.c

_なかだ(Mon Nov 21 18:07:55 JST 2005)

ソースレベルなら

#define ruby_errinfo GET_THREAD()->errinfo

だろうけど、バイナリレベルだと面倒かな。 call_cfunc()で毎回コピーというのはオーバーヘッドが大きいかな?

_ささだ(Mon Nov 21 18:41:18 JST 2005)

 バイナリレベルの互換性は気にしなくていいんじゃないかと.


好きにコメントを編集してください。ただし、あまり他の人のコメントを書き換えることは感心しません。



back

tton 記述が使えます。YukiWikiな記述してりゃ問題ありません。

「行頭に#code」 と、「行頭に#end」 で挟むと、その間の行は pre で囲まれます。プログラムのソースを書くときに使ってください。

例:

#code

(なんかプログラム書く)

#end

リンクは

[[なまえ|http://www.example.org]]

とか

[[http://www.example.org]]

で貼れます。

$Date: 2003/04/28 10:27:51 $