O HAI THIS BLOG PURPZIEZ 2 B UZED AZ MAH PLESIOUS MEM. :)

2008/11/30

Rakuten.karma++;

なんやかんやでmatsuu尊師がアレナニすることになったので、ひきこもらずに楽天テクノロジーカンファレンス2008に行ってきた。駅から会場まですーぱー迷いつつ華麗に遅刻。会場ではスーツ着込んだ楽天の中の人(?)がそこら中にいて、「いらっしゃいませ」とかしてた。プチ引きこもりなので素でキョドる。もっとイイ加減でいいと思うんだがなー、とも思うが、それっぽいと言えばそれっぽい。

オープニングのRubyのエラい人は何かありがたい事を言ってた、多分。 :P
ディストリビューション大集合はmatsuu尊師がKYじゃなかった、残念。 :P
昼飯喰ってなかったので、ジャスコでパン買って喰って帰ってきたら、debianの中の人(?)がIPAを再びdisってた。イイね、もっとやれ。燃えろ、flameだ、pop corn timeだ。 :DDD
クロージングは楽天のエラい人が何かそれっぽい事を言ってた、とても良いサクラでした。 :P
噂に聞くタダメシはとてもおいしゅうござました、ゴチ。 :9

インクリメントしたのが、なんのkarmaなのかは想像にお任せします。 :)

帰ってから、よしおかさんのblogとかをほげほげ。

以下、勉強会について思うどうでもいいこと。

今年度、なぜか会社で勉強会の真似事の様な事を一週間に一回してたりする。お題は日本語訳されたK&R Cと言うありがたーい経典の輪読。仕事でCのコードを書いている人なら読んでいなければモグリなんだろうけど、それはそれ。俺としては、もう少しacademicな英語の論文とか大学/大学院レベルの教科書とか標準規格書とかLRMとかを使いたいと思ってたんだけど、「誰も分からんだろうが、バカモノ」みたいな事をボスに言われたので、幾つか私物の日本語で書かれた本を持っていったら、何となくそう言う事になった。

で、時間は午後六時くらいから一時間ほど。パラグラフ単位程度を輪読して、適宜、俺がどーでもよろしい薀蓄を垂れたり垂れなかったりすると言うなんともやる気の無い進行。例の如く進みがカメなので、今もポインタの辺りをムニャムニャ中なりよ。更に、年度末が近づくに従ってプロジェクトが佳境になっていくのか、当初の誰かの予想通りと言うか何というか、参加者はみるみる減っていき、今は不良講師(?)の俺と同期の子一人だけと言う体たらく。

たまーに、「もう止めようか?」と俺から言うのだけれど、その子曰く、続けたいらしいのでまだ二人でダラダラやっている。「その時間は仕事をしないでオタクの話を聴いている振りをすれば楽だから」と言う考えが邪推が出来ない訳でもないが、他人の本音は訊いても分からんのでその辺りはどうでもよろしいと割り切っている、つもり。まー、大抵のオタクはその手のアレな事をテキトーに喋るのが好きだし、それを聴いている相手が理解していようといまいとあんまり関係なかったりするからね。テキトーに相槌さえしてれば、殆どのオタクには見分けなんかつかないよ。だって私生活でフツーの人となんか殆ど話なんかしないからな。そんな感じで「別に相手が理解なんかしてなくても、どーでもよろしい」なんて思っていると言うイイ加減なヤツがいたりするので、更にフツーの人の手には負えなかったりするんだろうけど、残念ながら例に漏れず俺もそうなので。んー、改めて言葉にしてみると、ホントにどーしよーもないな、コレは。 :DDD

規模やら参加する対象、勉強する内容を問わず、自主的な勉強会についてって話になると、俺自身の経験だと高専時代にもやってたりする。当時、蝶生意気な事で先輩から非常に高得点の悪評を頂いていた高専生だった俺は、何を血迷ったのか、担任の先生に「土曜日に線形代数を教えてくれ」なんてアホな事を言った。確か、何年か上の先輩が「Harword Antonの線形代数の本はmust readだ」みたいな事を喋っていた時に隣に座っていた影響だと思う。

殆どの工学系の学問はベクトルやら行列やらの演算が基礎にあるので、必然的に基礎科目として線形代数ってのはどこでもやっているのだけれど、ここで言う線形代数ってのは、高専三年から高専五年や学部一年から学部二年の奴等が勉強している線形代数とは別chapter的な線形代数、要は線形空間以降の話ね。

同級生とか留学生とか卒業研究中の先輩とかも参加してて、週休二日制になって殆ど誰も居ない学校に土曜日の朝十時くらいから来て昼までムニョムニョ。当時の俺は一通り教えて貰ってから、「目から鱗が落ちた」とか夜まで騒いでいて、その先生に会うと何時もネタにされるけれど、まー、若気の至りですよ、勘弁勘弁。それから続きでepsilon-deltaとかもやってもらった、感謝感謝。で、つい最近、実家に帰省する機会があって、その先生に会いに行ったら、今も現役の学生を捕まえて勉強会をしていて、その時間にお邪魔してテキトーに「ほーほー」とか言いながら授業参観(?)してきた。

ま、あれですよ。勉強会なんてテキトーにやればいいんじゃないですかね、テキトーに。内輪ネタで盛り上がっている感はあるけど、そーゆーのに参加している一人としても、あんまり使命感も危機感も無い。ただ、何となく似たようなオタクっぽい人種の集まりで発表を私語まじりで訊いたり、モノ喰いながら時々脱線した話をしたりするのが中毒になっているだけだなー、少なくとも俺は。

知識や情報云々を比べ始めると上も下もキリなんか無い。実際になんか使って比べたり、仕事とかの中で明らかな差が出てきた時には「もう手の施しようがありません」みたいな。でも、そーゆー事態にならんとフツーの人は危機感なんか持たんでしょ、多分。主催する側に何時の間にか回ってしまった人達がその辺りのギャップやら埋めようと頑張っているのはとてもありがたいことですが。前に「フツーのひとは仕事が終わったら家ではPCなんかさわらないし、休みの日は仕事の事なんか考えたくもないって思ってると思え」って言われた事があって、「あらあら、まぁまぁ」なんて思ったけど、そーゆーモノかと納得出来てしまうあたりそーゆーモノなんでしょうよ、少なくとも今は。そーゆーヤツラは「もう手の施しようがありません」ですよ、はい。「そーゆー事なら相手するのもメンドイと思っている」と言う所では俺の方が終わっているかもしれないが。 :DDD

あー、そうそう。それと勉強会についての話ついでなんだが、"プログラマ"とか一括りしたり分類したりすんの、ダメ、絶対。レイヤには上も下もキリなんかないからね。Web 2.0とかBinary 2.0とか、高位言語やらアセンブラを理解しているいないとか、OSがどーとか、コンパイラがこーとか、デバドラは云々とか言うけど、私事ですがハード屋の中にも俺みたいなオタクが混じっている時代です。あんたらが使っている無線LANカードのchipは俺がその1 bit、1 clockに至るまでテキトーに設計したモノが元になっているかもしれませんよ。 :P

そして俺がでしゃばれば、半導体物性の人が俺をdisるでしょう。その人は量子力学の学者にdisられる可能性があります。で、その人は数学の学者にdisられるかもしれません。そして、フツーの人たちは俺たちを「そんな熱くなるなよ、やっぱりオタクはわけわかんねぇ」と言うのです、きっと。 :DDD

# 英語ダルい。 :P

2008/11/07

stack(TODO);

TODO、めもめも。 :)
MOLのsvn trunkをムニャる。
GRUB2のsvn headをムニャる。
waylandのgit masterをムニャる。

2008/10/27

IsScheme(&code) || IsC(&code)

sibling callsに拘りすぎて、parserあたりからC言語とは思えない件について。
[It's crazy sibling calls hand-optimization, so doesn't looks like C language code anymore.]
grmpp.c
どうみてもschemeの影響です、ほんとうにありがとうございました(ぼーよみ。 :DDD
[Well, inspired by scheme, KTHXBYE. :DDD]

2008/09/25

I CAN HAS VHDL? #4

VHDLについて、テキトーに書いてみるべす、第四回。

前回はロードとイネーブル付きの蝶テキトーなカウンタしかださなかったので、少しマトモなモノにしてみる。"すとりーむ"な信号処理をメインにメシを喰っているので、その辺りから。比較的簡単なブツで、しかもVHDLっぽいモノっつー訳で移動平均フィルタにしますか。

はい、まずは数学的基礎。離散時間表現では、
\overline{x[k + L]} = 1/N \sum_{n = 0}^{N} x[k - n]
ですな。移動平均長がNで実装上のレイテンシーがLね。そんだけ。

じゃあ、実装です。とりあえず、こうしようぜ。
\overline{x[k + L]} = (x[k] + x[k-1] + ... + x[k - N]) / N
完璧ですね、と思ったアナタには漏れ無くパンチをプレゼント。 :DDD

次の様に漸化式にするのが、王道です。
\delta S[k + L_1] = x[k] - x[k - L]
S[k + L_2] = S[k] + \delta S[k]
\overline{x[k + L_3]} = S[k] / N
さらに実装を容易にする為、Nを2の冪乗に限定する事で除算を算術右シフトにします。
\delta S[k + L_1] = x[k] - x[k - N]
S[k + L_2] = S[k] + \delta S[k]
\overline{x[k + L_3]} = SAR(S[k], log_{2}(N))
つまり、移動平均長Nだけ離れた入力の差分を積算してテキトーに上位ビットを切り出すだけと言う簡単な回路。

あまりに簡単過ぎるので、もう少し内容を盛り込む。
まずは、instantiateする場合にcomponent declarationを書くのがダルいのでpackageを作って、use clauseを使う。つぎに、architecture bodyで使うsignalをrecordを使ってムニゃる。あと、synchronous/asynchronous resetに対応する。

以下、ソース。
     1 --
2 -- Moving Average Filter
3 --
4
5 library ieee;
6 use ieee.std_logic_1164.all;
7
8 package MAF_PKG is
9
10 component MAF is
11 generic (
12 IS_SYNC : boolean := true;
13 DW : integer range 2 to integer'high := 12;
14 log2N : integer range 1 to integer'high := 3
15 );
16 port (
17 iCLK : in std_logic;
18 iCLR : in std_logic;
19 iD : in std_logic_vector(DW-1 downto 0);
20 oQ : out std_logic_vector(DW-1 downto 0)
21 );
22 end component MAF;
23
24 end package MAF_PKG;
25
26 package body MAF_PKG is
27
28 end package body MAF_PKG;
29
30 library ieee;
31 use ieee.std_logic_1164.all;
32 use ieee.std_logic_arith.all;
33
34 entity MAF is
35 generic (
36 IS_SYNC : boolean := true;
37 DW : integer range 2 to integer'high := 12;
38 log2N : integer range 1 to integer'high := 3
39 );
40 port (
41 iCLK : in std_logic;
42 iCLR : in std_logic;
43 iD : in std_logic_vector(DW-1 downto 0);
44 oQ : out std_logic_vector(DW-1 downto 0)
45 );
46 begin
47 end entity MAF;
48
49 architecture TP of MAF is
50
51 constant cN : integer range 2 to integer'high := 2**log2N+1;
52
53 type tD is array (0 to cN-1) of std_logic_vector(DW-1 downto 0);
54 type t is record
55 D : tD;
56 dS : std_logic_vector( DW downto 0);
57 dSE : std_logic_vector(log2N+DW-1 downto 0);
58 S : std_logic_vector(log2N+DW-1 downto 0);
59 Q : std_logic_vector( DW-1 downto 0);
60 end record t;
61
62 constant c : t := (
63 D => (others => (others => '0')),
64 dS => (others => '0'),
65 dSE => (others => '0'),
66 S => (others => '0'),
67 Q => (others => '0')
68 );
69
70 signal g : t;
71 signal r : t := c;
72
73 begin
74
75 P_COMB : process (iD, r)
76 variable v : t;
77 begin
78 -- NOTE: Shift inputted data (D).
79 F_SHIFT_D : for index in 0 to cN-1 loop
80 if (index = 0) then
81 v.D(index) := iD;
82 else
83 v.D(index) := r.D(index-1);
84 end if;
85 end loop F_SHIFT_D;
86
87 -- NOTE: Compute delta sum (dS).
88 v.dS :=
89 signed(r.D( 0)(DW-1) & r.D( 0)) -
90 signed(r.D(cN-1)(DW-1) & r.D(cN-1));
91
92 -- NOTE: Sign expansion for delta sum (dSE).
93 v.dSE(log2N+DW-1 downto DW) := (log2N -1 downto 0 => r.dS(DW));
94 v.dSE( DW-1 downto 0) := r.dS( DW-1 downto 0);
95
96 -- NOTE: Accumulate sum (S).
97 v.S := signed(r.S) + signed(r.dSE);
98
99 -- NOTE: Divide sum by length for MA (Q).
100 v.Q := r.S(log2N+DW-1 downto log2N);
101
102 g <= v;
103 oQ <= r.Q;
104 end process P_COMB;
105
106 G_SYNC : if (IS_SYNC = true) generate
107 begin
108 P_SEQ : process (iCLK)
109 begin
110 if (iCLK'event and iCLK = '1') then
111 if (iCLR = '1') then
112 r <= c;
113 else
114 r <= g;
115 end if;
116 end if;
117 end process P_SEQ;
118 end generate G_SYNC;
119
120 G_ASYNC : if (IS_SYNC = false) generate
121 begin
122 P_SEQ : process (iCLR, iCLK)
123 begin
124 if (iCLR = '1') then
125 r <= c;
126 elsif (iCLK'event and iCLK = '1') then
127 r <= g;
128 end if;
129 end process P_SEQ;
130 end generate G_ASYNC;
131
132 end architecture TP;
はい、簡単ですね。 :)

さらに、何時もの様にやる気の無いテストベンチを作る。
     1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.std_logic_arith.all;
4 use work.MAF_PKG.all;
5
6 entity BENCH_MAF is
7 begin
8 end entity BENCH_MAF;
9
10 architecture BENCH of BENCH_MAF is
11
12 constant cIS_SYNC : boolean := true;
13 constant cDW : integer range 2 to integer'high := 12;
14 constant clog2N : integer range 1 to integer'high := 5;
15 constant cN : integer range 2 to integer'high := 2**clog2N;
16
17 constant cCLK_CYCLE : time := 1.0 us;
18 constant cCLR_TIME : time := (cN+1)*cCLK_CYCLE;
19
20 signal sCLK : std_logic := '0';
21 signal sCLR : std_logic := '1';
22 signal sLFSR_D : std_logic_vector(cDW-1 downto 0) := (others => '0');
23 signal sTRIANGLE_D : std_logic_vector(cDW-1 downto 0) := (others => '0');
24 signal sMAF_LFSR_oQ : std_logic_vector(cDW-1 downto 0);
25 signal sMAF_TRIANGLE_oQ : std_logic_vector(cDW-1 downto 0);
26
27 function fLFSR (
28 iD : std_logic_vector;
29 iDW : integer range 2 to integer'high
30 ) return std_logic_vector is
31 begin
32 if (iDW = 12) then
33 return (iD(7) xor iD(4) xor iD(3) xor iD(0)) & iD(11 downto 1);
34 else
35 assert (iDW = 12)
36 report "fLFSR: Call with non-supported iDW!!1" -- :P
37 severity warning;
38 return iD;
39 end if;
40 end function fLFSR;
41
42 function fTRIANGLE (
43 iD : std_logic_vector;
44 iDW : integer range 2 to integer'high
45 ) return std_logic_vector is
46 begin
47 if (signed(iD) <= -2**(iDW-1)) then
48 return conv_std_logic_vector(2**(iDW-1)-2**6, iDW);
49 else
50 return signed(iD) - 2**6;
51 end if;
52 end function fTRIANGLE;
53
54 begin
55
56 P_sCLK : process
57 begin
58 sCLK <= '0'; wait for cCLK_CYCLE/2;
59 sCLK <= '1'; wait for cCLK_CYCLE/2;
60 end process P_sCLK;
61
62 P_sCLR : process
63 begin
64 sCLR <= '1'; wait for cCLR_TIME;
65 sCLR <= '0'; wait;
66 end process P_sCLR;
67
68 P_sD : process (sCLK)
69 begin
70 if (sCLK'event and sCLK = '1') then
71 if (sCLR = '1') then
72 sLFSR_D <= (others => '1');
73 sTRIANGLE_D <= (others => '0');
74 else
75 sLFSR_D <= fLFSR(sLFSR_D, cDW);
76 sTRIANGLE_D <= fTRIANGLE(sTRIANGLE_D, cDW);
77 end if;
78 end if;
79 end process P_sD;
80
81 U_MAF_LFSR : MAF
82 generic map (
83 IS_SYNC => cIS_SYNC,
84 DW => cDW,
85 log2N => clog2N
86 )
87 port map (
88 iCLK => sCLK,
89 iCLR => sCLR,
90 iD => sLFSR_D,
91 oQ => sMAF_LFSR_oQ
92 );
93
94 U_MAF_TRIANGLE : MAF
95 generic map (
96 IS_SYNC => cIS_SYNC,
97 DW => cDW,
98 log2N => clog2N
99 )
100 port map (
101 iCLK => sCLK,
102 iCLR => sCLR,
103 iD => sTRIANGLE_D,
104 oQ => sMAF_TRIANGLE_oQ
105 );
106
107 end architecture BENCH;
見ての通り、入力はLFSRとノコギリ波。

前者をMAF.vhdl、後者をBENCH_MAF.vhdlとして、GHDLとGTKWaveでモニョる。workディレクトリを作って、analyzeして、elaborate。
$ mkdir work
$ ghdl -a --std=02 --workdir=./work --ieee=synopsys MAF.vhdl
$ ghdl -a --std=02 --workdir=./work --ieee=synopsys BENCH_MAF.vhdl
$ ghdl -e --std=02 --workdir=./work --ieee=synopsys -o BENCH_MAF-BENCH BENCH_MAF BENCH
GHWなwaveファイルを吐くオプションを付けて500[us]くらいrunさせてー、GTKWaveでモニョモニョ。
$ ./BENCH_MAF-BENCH --stop-time=500us --wave=BENCH_MAF-BENCH-500us.ghw
$ gtkwave BENCH_MAF-BENCH-500us.ghw

ハイ、いい感じに移動平均されているアルよ。 :)

以上の様に、結構いい感じのtwo-process手法だが、これ一本槍だと幾つか欠点があったりする。と言う感じで次回に続くのであったのであった。 :P

2008/09/18

BModular(&NetSurf, 1);

GSoCな感じで盛り上がっていたNetSurfの成果を確かめる為、再びモニョる。 :)
[NetSurd upstream did merge bunch of GSoC student code into their svn trunk.
So, it's time to BUMB!!1 :)]
09/18 00:55:20 hiyuh
hey, !NetSurf/Resources/*/Messages are used in gtk port?
09/18 00:55:38 jmb
not at present
09/18 00:55:47 jmb
well, s/*/en/ is
09/18 00:56:01 hiyuh
only en for now?
09/18 00:56:04 jmb
yeah
09/18 00:56:27 jmb
assuming that there's some UI to select the interface language,
and some code to determine the correct default, then they can be
09/18 00:56:55 hiyuh
true
09/18 00:58:00 jmb
basically, it needs someone to put in the small amount of effort
required to make them useful :)
09/18 00:59:03 hiyuh
I'm not gtk guy, but I can translate en to ja. :)
09/18 00:59:12 tlsa
didn't we get a czech translation?
09/18 00:59:12 jmb
that'd be cool
09/18 00:59:14 tlsa
cool
09/18 00:59:39 jmb
point being that these Messages files get used on all platforms,
so only need translating once :)
09/18 01:00:15 tlsa
is ja japanese?
09/18 01:00:20 tlsa
i thought that was .jp
09/18 01:00:44 jmb
depends which registry you're looking at :)
09/18 01:00:53 jmb
ja is the ISO-639 2 letter language code
09/18 01:01:13 hiyuh
anyway, I meant japanese.
09/18 01:01:21 tlsa
ok
09/18 01:01:43 tlsa
a Japanese translation would be great, anyway :)
09/18 01:02:36 tlsa
hey, if you could translate http://www.netsurf-browser.org/welcome/
09/18 01:02:47 tlsa
then I could test the language negotiation :)
09/18 01:02:55 jmb
hee
09/18 01:03:09 tlsa
we've only had English since the site was redesigned
09/18 01:03:21 hiyuh
lol
09/18 01:03:27 hiyuh
before translate en to ja, I should make modular NS ebuilds for
gentoo, am pokin' json-c now.
09/18 01:03:47 jmb
shouldn't need json-c at all
09/18 01:03:50 tlsa
ok
09/18 01:04:04 jmb
certainly not unless you actually want to do make test in hubbub
09/18 01:05:02 hiyuh
yup, I read README, and IIRC I already told hubbub's make test hogs
my entire mem.
09/18 01:05:30 hiyuh
but someone needs to test. :p
09/18 01:05:37 jmb
yes, it does
09/18 01:05:43 jmb
I can probably lose that now, actually
09/18 01:11:36 tlsa
hiyuh: on the welcome page, the links at the bottom can be changed
to relevant stuff for the language
09/18 01:11:54 tlsa
3 items in first column, which is "News"
09/18 01:12:21 tlsa
4 items in 2nd column, which is "IT / web"
09/18 01:12:54 tlsa
4 items in 3rd column, which is "Information"
09/18 01:13:14 tlsa
3 items in 4th column, which is "RISC OS"
09/18 01:13:27 tlsa
prob. not much choice for RISC OS sites though :0
09/18 01:13:38 tlsa
s/:0/:p/
09/18 01:14:55 tlsa
the only other guidelines are that the sites should be big and
important in their field, and that you should not need to log in to
use them (so no webmail sites / forums etc)
09/18 01:16:14 tlsa
wikipedia can be easily changed to the ja one
09/18 01:16:28 tlsa
and we should have W3C in all translations
09/18 01:18:22 jmb
hiyuh: svn up libparserutils
09/18 01:18:31 jmb
should stop the memory leaks :)
09/18 01:18:38 tlsa
and if you link to pages in a different language, use "BBC News
(English)" or the common abreviation like "BBC News (en)", except
translated of course :)
09/18 01:19:09 hiyuh
jmb: ok I'll try
09/18 01:22:45 hiyuh
tlsa: translating to ja is a plan as my next todo. I'd like to check
whether recent NS still did wrong line breaking or not, at first.
09/18 01:23:00 tlsa
i think it does
09/18 01:23:23 tlsa
we don't do propper unicode line breaking
09/18 01:23:29 tlsa
at least on RISC OS
09/18 01:23:54 tlsa
i'm not sure if that's RUfl or NetSurf's problem, on RO
09/18 01:25:16 hiyuh
eew
09/18 01:30:01 tlsa
gah, I can't screenshot the sonic team page
09/18 01:30:13 tlsa
it says Parsing the document failed
09/18 01:30:19 tlsa
jmb: is that encoding related?
09/18 01:30:46 tlsa
( http://www.sonicteam.com/ )
09/18 01:33:30 tlsa
Shift_JIS
09/18 01:44:00 tlsa
can we make the RISC OS version use the homepage in Makefile.config
and override it on the autobuilder?
09/18 01:44:48 tlsa
then my local checkout will be able to use that and not need to have
my local copys which generate loads of stuff for "svn status"
09/18 02:04:53 hiyuh
jmb: json-c is 0.3? ChangeLog has history to 0.8. and its autogen.sh
breaks w/ latest auto*, I guess.
09/18 02:05:04 jmb
pass
09/18 02:05:28 jmb
I just checked out upstream's svn HEAD, then patched it
09/18 02:07:37 hiyuh
ah, ok
09/18 02:10:46 tlsa
http://source.netsurf-browser.org/?view=rev&revision=5367
09/18 02:12:42 tlsa
one thing I noticed was that BeOS doesn't have a setting for Hubbub
(has it been ported yet?) and that on GTK it's set to AUTO
09/18 02:12:59 tlsa
I thought we were aiming to get all platforms setting that to YES
09/18 02:13:17 hiyuh
lol
09/18 02:13:20 hiyuh
http://dev.gentoo.gr.jp/~hiyuh/misc/json-c-configure-in.diff
09/18 02:14:01 hiyuh
missing double quote :)
09/18 02:15:53 hiyuh
running ./configure shows mysterious message: "C: command not fond" :D
09/18 02:21:28 jmb
fun
09/18 02:26:26 hiyuh
hmm, it still some "C" appears.
09/18 02:43:49 hiyuh
jmb: libparserutils's DESTDIR fix is incomplete. in "install:"
all of $(INSTALL) lines have no $(DESTDIR). you just did $(MKDIR)'s?
09/18 02:51:38 hiyuh
jmb:
http://dev.gentoo.gr.jp/~hiyuh/misc/libparserutils-more-DESTDIR.patch
09/18 02:55:21 jmb
whoops. I guess I must've trampled those when I did the fix for
installing on OS X
09/18 02:56:32 hiyuh
:)
09/18 03:21:28 hiyuh
omg
09/18 03:23:00 hiyuh
jmb: hubbub's make test still fails at html/mangleme.1.html of
Treebuilding API.
09/18 03:25:31 jmb
yes
09/18 03:25:34 jmb
that's a known bug
09/18 03:27:21 hiyuh
there is no way to skip this test? or it's last one?
09/18 03:28:36 jmb
no, there isn't
09/18 03:30:08 hiyuh
ack
つー訳でnet-libs/hubbubの一歩手前で"たいむあっぷ"、続きはまた来週(?)な!!1 :DDD
[Sadly, I couldn't commit net-libs/hubbub. but I'll be back soonish!!1 :DDD]

2008/09/14

TLUG.NomiKai++; /* ModSecurity/Detaxe/ss */

二度目のTLUG、今回はModSecurityとDetaxeとscalable storageだった。会場は天下(?)のSun、用賀を見下ろせる27Fのミーティングルーム、エアコンがバリバリで蝶快適。自動販売機にSunのロゴが入っていて、通常の値段よりも30円とか安いのな。荷物搬入のエレベータからしか会場に行けなくて、ちょっと迷ってしまったがな!!1 :P
[It's second time to join TLUG meeting for me. This time is about ModSecurity, Detaxe and OSS scalable storage. T3h location is SUN Microsystems @ YoGa, 27th floor w/ coolest A/C, it's good. T3h automat has Sun logo is, discounts all beverage 30 JPY, it's good. To reach t3h 27th floor, we have to use a lift that looks like mainly for carry big WS in, it's not good. :P]

前回に比べるとプレゼンしてた人が非ネイティブだからか、単にゆっくり喋るのを留意してたのか、何気に聞き取れた気がする。以下、蝶意訳。
「バグってるブツをどうにかする方法はやっぱりバグを直すことだけど、ソースが無かったり、パッチ当てると余計ぶっ壊れたりしてメンドイから防火壁埋め込んで誤魔化そうぜ。だって、ぶっ壊れてるのが分かると俺がボスに怒られるんだもん!!1」
「値段の分からないOEMなソフトウェアなんか要らねーよ、3割も原価喰ってるみたいだし返品しようぜ。オプショナルなら買うかもしれんけどな!!1」
「cman、CLVM、GNBD、GFS2、DRBD、DM-MPにタダ乗りして俺は幸せになる予定だ!!1」
[All of this time's presentation were done by non-native peeps, or they might keep thier mind to speek slowly, it hepls to me to understand what they'd say more than the prev's. So, something like that, "The best way to beat vulnabilities is fixing as bugs though. In case fo w/o source code or proposed patch breaks our system, it's not fun. So just work around by using this FW. B/c everytime this crap goes wrong, boss blames me!!1", "We don't need parasitic OEM software which has unknown price. About 30% of our payment is for these craps, so refund these undesirable tax. OPTIONAL is definitely FTW!!1", "cman, CLVM, GNBD, GFS2, DRBD and DM-MP will make me happy to do OSS free riding!!1"]

一次会はわたみん家@用賀。に行く途中で、何故かSunのjimさんと名刺交換。
matsuuさんが「割り勘負けしない様に喰いまくれ!!1」と言っていたので、テキトーに喰いまくって腹一杯になると、前と同じ様に、ネイティブな方々がペラペラしゃべっている横でヒアリングの真似をするが、相変わらず分からんかった。何かもうね、単語の切れ目とか全然分からんのですけど気のせいですね、そうですね。とか思っていたら、trombikセンセーが来て、「どうよ、俺のプレゼン?」とか仰ったので、自分がネイティブな英語が聞き取れない事を棚に挙げて「話、長ーい」とか「数字を日本語だー」とか茶化した。 :P
[First NomiKai, WataminChi@Yoga, while we were going to, I got jim's name card!!1 :)
matsuu sez "eat, just eat to earn back my 3000 JPY!!1", we're stuffed. Then, we did hearing English who are native speakers sat at our side. O.K. I don't understand what they're talking about, well, they're really speaking English? It's really hard to me to recognize any gap between word-to-word. Then trombik came and asked, "how about mine?". Even if my English skill sucks, but there is no problem to say like "TOO LONG!!1" or "T3H NUMBERS ARE STILL JAPANESE!!1".]

その後、プレゼンの中休みにsmoking roomで「VHDLでメシ喰ってるけど、OpenSPARCはVerilogだから分かんね」とか言ってたのを覚えててくれたSunのshojiさんが来て、まったく関係無いSunの内部情報をリークしてくれた。曰く、「日本語が流暢でない外国人は、自分の思っている事がキチンと相手に伝わらない事にストレスを感じてるのでマネジメントすんの大変なんよ」とか「同僚の外国人と食事に行く事と飯を喰っている時は横文字で話すから、これをヨコメシと言う」とか。おー、何と言う貴重な情報。 :DDD
[After that, I met shoji at smoking room at Sun and mumbled "I prefer VHDL, but OpenSPARC is Verilog", so he came to talk us again, thanks. And he leaks awesome Sun's confidentials like "it's reallly hard to management foreigners in a office live in Japan but who can not speak Japanese very well b/c they're frustrated always, some Japanese doesn't understand completely what they'd saying." or "To lunch w/ foreigners. We, Japanese should speak English (was written on a papar directed left to right, in Japanse, it's YOKO direction) in that time. So it's called YokoMeshi (Meshi means lunch, of cource)." OMG, Sun rock0rz!!1 :DDD]

二次会は店名のフォントが崩れすぎていて読めない"あいりっしゅ"なバー@渋谷。
ちびちびやりながら、いつものtrombikセンセーの日本に対する不満を拝聴する。
以下、その模様を演出を多分に含んだ四行で表現。
「手前ら、学校で英語ならったろ、話せよ」
「ここは日本じゃ、嫌なら外国へでも高跳びしなはれ」
「もうね、この問題と戦わないといけないんよ」
「"この問題と戦わないといけないんよ"という問題と戦わないとな!!1」
とても良い漫才でした、ほんとうにありがとうございました。 :DDD
[Second NomiKai, Irish bar @ ShibuYa, its name can not be read for me b/c strongly-distorted fonts are used. It's time to listen t3h trombik's bitching Japanese like that.
"n00b, you must studied English in your school days, so explain in English!!1", "Here is Japan. There is no problem to speak Japanese. If you don't like Japan, go other countries!!1", "fsck, I'm facing those stupid problem!!1", "Nah, I'm also facing this stupid problem, you!!1"
It's nice ManZai. KTHX. :DDD]

他にも色々話したけど、とりあえず、正しい日本文化を広める為に「DEATH NOTEが好き」と言ってたオランダな人に「銀魂とJOJOがオススメ」とか言っといた。 :P
[To correct Japanese calture, we recommend GinTama and JOJO to a fun of DEATH NOTE, who comes from Netherland. It's for great justice. :P]

2008/08/23

I CAN HAS VHDL? #3

VHDLについて、テキトーに書いてみるべす、第三回。

dataflow的スタイルにおける欠点を克服する新たなスタイルはないものか?

アレな界隈で知られている非dataflow的なスタイルの一つに、two-process手法と呼ばれるスタイルがある。このスタイルはどんな単一クロック同期回路に適用出来るモノで、この手のデザインは様々な目的で開発されるデザインの中でも大部分を占める。テキトーなコードを書いたことがある人なら、どんなスタイルを使ってもイイコトとワルイコトがあるのは分かると思うけれど、取り敢えず、dataflow的スタイルとtwo-process手法を比較してイイコトだけ挙げてみると、
  • 一様なアルゴリズム記述
  • 抽象化レベルの向上
  • 可読性の向上
  • 明確な逐次実行
  • デバックの簡易化
  • シミュレーション速度の向上
  • シミュレーションモデルと合成可能なモデルが同一
ってな感じで、どこかのエラい人が営業の為にならべる美辞麗句の様で笑える。知っていて得をするかは保証しかねるが、多分損はしないので話を続けるべす。

旧いdataflow的スタイルからtwo-process手法への移行は、実際のトコロ、気が抜ける位に単純なコーディングスタンスの違いを克服することで、そんなに難しくなかったりする。変えるトコは
  • 一つのentityに対して、二つだけのprocessな文
  • 抽象化レベルの高い逐次実行でアルゴリズムを記述
  • port(必要ならgenericも)とsignalの宣言が全てrecord
の三つだけ。

何度も言っているけど、VHDLとCみたいなプログラム言語との大きな違いは、concurrentな文とprocessな文がコーディングされている順序ではなくて、イベントによってスケジューリングされるトコロな訳で、その辺りの事情は元々ハードウェア設計目的で作られた言語故に当然なんだな。で、我々のオツムはconcurrentな文とprocessな文が或る量を超えると全体の動作を把握することが困難になる。人にも依るだろうけど、だいたい50くらいまでで全員お手上げになるっちゅー話。一方で、逐次実行なプログラムだと、どんなに量が増えようと上から下まで順番に実行される訳で、実行順序で混乱するなてこたぁ、あんまりない。勿論、マルチプロセスやらマルチスレッドなら話は別だけど。言ってみれば、あらゆるVHDLなコードはマルチスレッドな感じのプログラミングそのものな訳で、dataflow的スタイルでそのスレッドっぽいものを増やせば増やすほど、メンドイことになるって寸法。

可読性を向上し、一様なアルゴリズム記述を提供すると言う要求に対して、two-process手法は一つのentityに対して、二つだけのprocessな文を使用する。一つ目のprocessな文には全てを非同期式組み合わせ回路として、二つ目のprocessな文には全てを同期式順序回路として。以後、ここでは前者をcombinational、後者をsequentialと呼ぶことにする。two-process手法の提示する構造を使うことによって、あるentityで実現すべきアルゴリズムは、combinationalな方に逐次実行な文として記述され、sequentialな方にはレジスタっぽいモノが残る。クロックをCLK、入力をD、出力をQ、現在の内部状態をr、次の内部状態をgとすると、

combinational
+-----------------+
D ------>| Q <= f_q(D, r); |------> Q
| |
+--->| g <= f_g(D, r); |----+ g
| +-----------------+ |
| +-----------------+ |
r +----| |<---+
| r <= g; |
CLK ---->| |
+-----------------+
 sequential

っつー感じになる。おー、これはタマゲタぜよ、制御屋さんなら何て事ぁない、タダの状態方程式/出力方程式のブロック図の出来上がり。sequentialなトコロはまさにz^-1ですな、センセー。

あんまり良い例じゃないけど、簡単なモノじゃないと分かりにくいので、とりあえず、ロードとイネーブル付きの蝶テキトーなカウンタをtwo-process手法で書くとこんなんになる。
     1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.std_logic_arith.all;
4
5 entity GCNT is
6 generic (
7 CW : integer range 2 to integer'high := 8
8 );
9 port (
10 iCLK : in std_logic;
11 iLD : in std_logic;
12 iEN : in std_logic;
13 iC : in std_logic_vector(CW-1 downto 0);
14 oC : out std_logic_vector(CW-1 downto 0)
15 );
16 begin
17 end entity GCNT;
18
19 architecture TP of GCNT is
20
21 signal gC : std_logic_vector(CW-1 downto 0);
22 signal rC : std_logic_vector(CW-1 downto 0) := (others => '0');
23
24 begin
25
26 P_COMB : process (iLD, iEN, iC, rC)
27 variable vC : std_logic_vector(CW-1 downto 0);
28 begin
29 if (iLD = '1') then
30 vC := iC;
31 elsif (iEN = '1') then
32 if (unsigned(rC) >= 2**CW-1) then
33 vC := (others => '0');
34 else
35 vC := unsigned(rC) + 1;
36 end if;
37 else
38 vC := rC;
39 end if;
40
41 gC <= vC;
42 oC <= rC;
43 end process P_COMB;
44
45 P_SEQ : process (iCLK)
46 begin
47 if (iCLK'event and iCLK = '1') then
48 rC <= gC;
49 end if;
50 end process P_SEQ;
51
52 end architecture TP;
はい、とってもお手軽デスネ。さらに、蝶ヤル気の無いテストベンチをでっち上げる。
     1 library ieee;
2 use ieee.std_logic_1164.all;
3
4 entity BENCH_GCNT is
5 begin
6 end entity BENCH_GCNT;
7
8 architecture BENCH of BENCH_GCNT is
9
10 component GCNT is
11 generic (
12 CW : integer range 2 to integer'high := 8
13 );
14 port (
15 iCLK : in std_logic;
16 iLD : in std_logic;
17 iEN : in std_logic;
18 iC : in std_logic_vector(CW-1 downto 0);
19 oC : out std_logic_vector(CW-1 downto 0)
20 );
21 end component GCNT;
22
23 constant cCLK_CYCLE : time := 1 us;
24
25 constant cCW : integer range 3 to integer'high := 4;
26
27 signal sCLK : std_logic := '0';
28 signal sLD : std_logic := '0';
29 signal sEN : std_logic := '0';
30
31 constant cC : std_logic_vector(cCW-1 downto 0)
32 := (cCW-1 downto 2 => '1', 1 downto 0 => '0');
33
34 signal sGCNT_oC : std_logic_vector(cCW-1 downto 0);
35
36 begin
37
38 P_CLK : process
39 begin
40 sCLK <= '0'; wait for cCLK_CYCLE/2;
41 sCLK <= '1'; wait for cCLK_CYCLE/2;
42 end process P_CLK;
43
44 P_LD : process
45 begin
46 sLD <= '0'; wait for (2**(cCW-1)-1)*cCLK_CYCLE;
47 sLD <= '1'; wait for 1*cCLK_CYCLE;
48 sLD <= '0'; wait;
49 end process P_LD;
50
51 P_EN : process
52 begin
53 sEN <= '1'; wait for cCW*cCLK_CYCLE;
54 sEN <= '0'; wait for cCW*cCLK_CYCLE;
55 end process P_EN;
56
57 U_GCNT : GCNT
58 generic map (
59 CW => cCW
60 )
61 port map (
62 iCLK => sCLK,
63 iLD => sLD,
64 iEN => sEN,
65 iC => cC,
66 oC => sGCNT_oC
67 );
68
69 end architecture BENCH;
前者をGCNT.vhdl、後者をBENCH_GCNT.vhdlとして、GHDLとGTKWaveでモニョることにしますか。workディレクトリを作って、analyzeして、elaborate。

$ mkdir work
$ ghdl -a --std=02 --workdir=./work --ieee=synopsys GCNT.vhdl
$ ghdl -a --std=02 --workdir=./work --ieee=synopsys BENCH_GCNT.vhdl
$ ghdl -e --std=02 --workdir=./work --ieee=synopsys -o BENCH_GCNT-BENCH BENCH_GCNT BENCH
GHWなwaveファイルを吐くオプションを付けて100[us]くらいrunさせてー、GTKWaveでモニョモニョ。

$ ./BENCH_GCNT-BENCH --stop-time=100us --wave=BENCH_GCNT-BENCH-100us.ghw
$ gtkwave BENCH_GCNT-BENCH-100us.ghw



「dataflow的スタイルと大して変わらなくね?」とか思ったアナタ、まだtwo-process手法の一つ目しかやっていませんよ?と言う感じで次回に続くのであったのであった。
# 日本語サイコー。 :P

2008/08/21

I CAN HAS VHDL? #2

VHDLについて、テキトーに書いてみるべす、第二回。

合成可能なVHDLモデルを設計するスタイルのうち、恐らく一番割合を占めているモノはdataflow的スタイルと呼ばれているモノである。つまり、所望の機能を実装する為に、膨大な数のsignalで繋がりを持った小さなprocessな文とconcurrentな文でコーディングするスタイル。

どんな言語でもウンコなコードを作ることが出来るけど、dataflow的スタイルで書かれた出来の悪いVHDLモデルは、読むことも中身を理解することもマジ苦痛れす。その苦痛の一端に加担しているのは、「processな文とconcurrentな文は書かれている順序では実行されず、特定の入力信号が変化した時にこれが実行される」と言う、trombikせんせーがPOEやErlangがやばいとか何故か今更騒いでいらっしゃる様な”いう゛ぇんとどりう゛ん”なkarmaをVHDL自身が持っているからとも言える。

dataflow的スタイルで書かれたコードが記述する機能を紐解くには、データの流れとして描かれたブロック、文と文との依存関係を見極める必要があるから、言っちゃなんだが、コイツぁあまり一般的なモノではない。で、「その可読性は?」と言えば、実際のところ、単なる回路図にも劣ると言う始末だったりする。どういう事なのかがあまり想像出来ないと思うけど、小分けにされたprocessな文やconcurrentな文が小さな機能を持ったブロックで、そのブロックの入出力がsignalの名前でラベルされていて、しかもそのブロック間の接続を知るには、signalの名前でsignalの接続先/接続元を探すしかないので、普通の回路図にならあるハズのwireが描かれていないと言うイメージ。

コードの書き方やそのデザインが何の目的で開発されたのかにも依るけど、dataflow的なスタイルで書くと1k越えのprocessな文を書くなんてのはザラにある訳で、コードを書いた本人以外が中身を理解することや”めんてなんす”的なことを考えると頭が痛くなることウケアイ。更には、コードを書いた本人に「このprocessな文が何を意図しているのか?」とか訊いても、「バカめ、覚えてねぇYO!!1」とか、いやマジで。

dataflow的スタイルでコーディングされると、抽象化レベルは当然低くなるし、ブロックに納められる機能は必要以上にシンプルになる傾向がある。dataflow的スタイルを貫くcoder自身が持つ、抽象化レベルの低いコードを書くっつう癖は、論理合成ツールの頭が良くなって行きつつある今においては、既に腐臭を放ち始めていると思ふ。マルチプレクサ、bitwise演算、条件代入文の様なprimitiveなモノが彼方此方に独立したprocessな文として散乱しているコードから、そのコード全体が意図するアルゴリズム的なモノ、例えば、「離散時間最適レギュレータとして構成されるブツの状態フィードバックゲインベクトルをセルフチューニングする為に離散時間リカッチ行列方程式を”りあるたいむ”で逐次計算するヒュアーの方法を実装したハードウェア行列演算回路」とか読み取るとかデバッグするとかは、そーとー難しいんじゃなかろうか。

そして、dataflow的スタイルのもう一つの注目すべき欠点は、シミュレーションが激しく遅い事だったりする。signalのassignmentはvariableのそれと比べて100倍くらい計算時間が必要だったりする。「そんなカバな?」と思うかもしれないが、signalには更新すべきattribute、つまり属性というモノが憑いているし、駆動イベントはイベントキューに突っ込まれる。結果、膨大なデルタ遅延がそのままシミュレーションに必要な時間を長ーくするのであーる。大量のconcurrentな文とprocessな文で構成されるdataflow的スタイルでコーディングされたブツはシミュレーションに要する時間の大部分をsignalの管理とprocessな文/concurrentな文の実行スケジューリングに費やしていたりする。回路規模、テストベンチの構成とスティミュラスの具合にもよるが、msオーダーのブツのシミュレーションにdayオーダーのシミュレーション時間が必要になる事だって珍しくなかったりする。

勿論、頭の良いシミュレータの最適化機能の一つとして、問題の無い範囲でsignalをvariableに変換してシミュレーションを高速化するなんてのも考えられるけれど、今のところ、頭の良いシミュレータは目玉が飛び出る位のお値段だったりする。一方で、FPGAベンダが自社デバイスの需要拡大を目的に、synthesize/translate/map/parまでやってくれる様なお得な論理合成ツールセットをほとんどタダの様な値段でバラ撒いているし、サポート無しならタダだったりするトコの方が多かったりする。そういうモノは、かなりbuggyなbin blobだったりすることもあるが、それはまた別問題。

で、二回に渡ってdataflow的スタイルを貶し続けてきた訳だが、「じゃあ、どうすりゃいいんよ?」と言う問題についてはちっとも案が提出されていないままなので、次回に続くのであったのであった。 :P
# 英語無しだと楽で良いなー。 :P

2008/08/20

I CAN HAS VHDL? #1

VHDLについて、テキトーに書いてみるべす、第一回。

時は1980年代半ば、ディジタル回路の開発、検証、シミュレーションが困難になっていた最中、米国国防総省の主導でVHSIC == very high speed integrated circuit、つまり「蝶速い集積回路」を開発するに定義されたのがVHDLの原点じゃった。だから、VHDL == VHSIC hardware description language、蝶意訳すると、「ものごっつ速い集積回路のハードウェアを記述する言語」。言語的にはAdaの上位セットで、signalと呼ばれるmessage passingの為の仕組みがある。主な目的としては、実行可能な俺様仕様の記述、そして色んなトコが提供している記述された仕様を俺様仕様と混ぜ混ぜしてもシミュレーション可能にする事だったのだった。

出たての頃は、高級な、つまり普通のコンピュータプログラムに近いbehavioralなシミュレーションだけしか出来なかった。今日、synthesis若しくはsynthesizeと呼ばれる「モデリングされたブツから回路への変換」である論理合成は、ターゲットデバイスのライブラリからゲートもしくはブロックを手でムニョヘニョしていた訳ですな。unixyでhackyな人ならやらないであろうこんな手動変換は"ひゅーまんえらー"が入り込む訳で、当然、事前にシミュレーションしているモデルでもパーになりうる。1990年代に世に出始めたVHDL論理合成ツールは、VHDLで記述されたコードをターゲットとなるデバイスのネットリストに変換するブツである。

件のVHDL論理合成ツールの登場は、ソフトウェアな人ではなく、むしろハードウェアな人がVHDLでコーディングをする事態を招いたのだった。どう言う事かと言うと、旧いハードウェアな人は回路図的な手法でVHDLなコーディングをする訳で、出来上がるコードと言うコードは悉くdataflow的だったりする。レジスタ、マルチプレクサ、加算器、状態機械の様な機能が限定されたモノが文脈的な繋がり無く細分化され、その組み合わせでデザイン全体が出来ていた。この1990年代的なスタイルは比較的小規模な回路なら今でも問題にならないし、機能的にお粗末だった時代の合成ツールはその程度のモノしか扱えなかった事もdataflow的なデザインが跳梁跋扈する産褥になっていた。

しーかし、高級言語のコンパイラが下手なhand optimizeよりも最適化が巧くなってきた様に、お粗末だったVHDL論理合成ツールも"ぱわーあっぷ"している。具体的には、言語仕様として改訂を重ねているVHDL標準の内、今や大部分の機能が合成可能な状況にある。寧ろ、そう言う流れに追いついていないVHDL論理合成ツールは既に市場から淘汰されつつあると言って良いと思ふ。

合成ツール側が進化している事実を前に、VHDLなコードを書く"ひゅーまん"は如何にあるべきか?「dataflow的なコードの方がbackward comatibleじゃんよ!!1」と言う建前を宣って、貧相な機能しか持たない前時代の合成ツールにしがみついて生きていくのか?VHDL標準の多くの機能がサポートされている"もだん"な論理合成ツールに、1990年代的なスタイルでコーディングされたコードを喰わせるだけなのか?これから更に規模が増大する事間違い無しのディジタル回路の開発現場で、dataflow的なスタイルでコーディングしていく輩は生き残れるのか?

次回に続く、多分。 :P
# めんどいので英語無し。 :P

2008/07/19

MeasureSLOC(&B2); /* more fork(3p) */

ボスが「来週からは例のブツを実機検証するから週末に合成しとけや,カス」(意味無く誇張)と仰られたのでモニョっている.
[My boss sez "n00b, synthesize your junk code to verify on the chip by this weekend, K?".]

で、PCが蝶頑張って論理合成している間にまたも無意味にSLOCをグラフ化.以前よりfork(3p)の症状が悪化しているモヨウ. :DDD
[So, while synthesizing my junk code, I made t3h SLOC graph again. ZOMG, it's fork(3p)-er than t3h previous one!!1 :DDD]

2008/07/13

GentooJP.NomiKai += 2; /* HHK/TLUG */

trombikセンセーがlu_zero様一行とTLUGのミーティングに紛れ込むと仰ったので、amazon.co.jpなトコに行ってきた。プレゼン前に英語で自己紹介とかあって「ソンナノキイテナイヨ?」とか思ったが、テキトーに「Gentooをppcで使っているので、lu_zero様のお世話になっております」とか言って誤魔化した。 :P
[trombik sez "lu_zero is in Tokyo", so I spied TLUG meeting at t3h amazon.co.jp's office. Before presentaitons, I'd have to do self-introduction in English. Well, WTF? My line was "I'm a gentoo/ppc user, so I owe lu_zero!!1" :P]

で、ミーティングの内容はlibpasoriとdtraceの話だったけど、まー、英語だったので良く分からんかった。libpasoriの方は「ドキュメントが無いし、コードがマジックナンバーだらけだから良く分からん」とか言ってた気がする。dtraceの方は「実行時にインストラクションを書き換えるので、移植すんのは大変なんだ」とか言ってた気がする。
[The meetings are about libpasori and dtrace in English. So I can not understand what they're talking completely. But, IIRC, "libpasori has no documentation, and the code has ton of magic number", "To port dtrace is not easy b/c it needs to rewrite some OS/machine-depend instruction appropriately".]

で、"てんぐ"とか言うトコの飲み会では「Gentooのインストーラーは実験段階だ」とか「Bleachとか図書館戦争がイタリアで人気がある」とか「KDEじゃなくてawesome/wmii使え」とか「iKnowはFlashと使うべきではない」とか、ミーティングの内容と全然関係無い話題ばっか喋ってた。lu_zero様一行は広島観光に行く為に新幹線に乗るので飲み会の途中で離脱されました。
[NomiKai at Tengu, "Gentoo's installer is highly experimental", "Bleach and Library War rock in Italy", "No more KDE, use awesome/wmii", "iKnow shouldn't use Flash" or so, these are totally unrelated the presentations' topic though. Italy guys were leaving by ShinKanSen to go to HiroShima in mid of the NomiKai.]

で、二次会は"ほぶごぶりん"とか言うトコ。TLUGの中の人達がサーバの話題(英語)でexcitingしている横で、matsuuさんと鎖国しながらAndroidを弄くってたら、trombikセンセーがKojimaさんを教育的指導していたので、意味無く"yup, yup!!1"と連呼して有耶無耶にした。 :P
[Second at Hobgoblin. TLUG guys were exciting to discuss about server thingy. A few feet away, matsuu and I were poking Android to do SaKoku, national isolation. Seems like trombik likes to pressure Kojima, it was time to jeer w/ meaningless "yup, yup!!1". :P]

そう言えば、五月末にキーボード飲み会があったこと書いてなかったので今回は"+= 2"だ!!1 :)
[BTW, I completely forgot to blog about NomiKai of HHK at end of May, so I'd have to increment by "+= 2" here!!1 :)]

2008/07/04

InheritEclass(owb-svn, subversion, cmake-utils);

DoduoがOWBのtrunkにぶちこまれたので、以前からモニョっていたsvn live ebuildをoverlayに突っ込む犯行計画を実行する。x11-wm/awesomeがcmakeに移行したと言う噂を耳にしていたので、「cmakeをebuildで使うGentooishな方法は?」とmatsuuさんに訊いたら、「cmake-utils.eclassをつかえや、カス」(意味なく誇張)と仰られたのでそうすることにした。 :)
[Doduo went into trunk, so it's time to make an svn live ebuild to fsck upstream for ricing. I've heard that x11-wm/awesome now use cmake, so I asked "Is there any Gentooish way to use cmake in a ebuild?", matsuu answered "n00b, do inherit cmake-utils.eclass."]

が、svn repoをpullってきたトコで走らせていたブツは、
[Well, I used an lazy build script at my ppc lap in pulled svn repos looks like,]
#!/bin/sh
cmake \
-D BUILD_SHARED_LIBS="ON" \
-D CMAKE_COLOR_MAKEFILE="ON" \
-D CMAKE_VERBOSE_MAKEFILE="OFF" \
-D COMPILE_TESTS="ON" \
-D OWBAL_BENCH_LOAD_TIME="OFF" \
-D OWBAL_PLATFORM_MACPORT="OFF" \
-D OWBAL_PLATFORM_GRAPHICS="SDL" \
-D WEBKIT_DEBUG="RELEASE" \
-D WEBKIT_USE_CC_EXCEPTIONS="OFF" \
-D WEBKIT_USE_CC_PIC="ON" \
-D WEBKIT_USE_CC_RTTI="OFF" \
-D WEBKIT_OFFLINE_WEB_APPLICATIONS="ON" \
-D WEBKIT_USE_CROSS_DOCUMENT_MESSAGING="ON" \
-D WEBKIT_USE_DASHBOARD="ON" \
-D WEBKIT_USE_DATABASE="ON" \
-D WEBKIT_USE_DOM_STORAGE="ON" \
-D WEBKIT_USE_FILESYSTEM="POSIX" \
-D WEBKIT_USE_FONTS="FREETYPE" \
-D WEBKIT_USE_HTML5_VIDEO="OFF" \
-D WEBKIT_USE_I18N="ICU" \
-D WEBKIT_USE_NPAPI="OFF" \
-D WEBKIT_USE_SVG="ON" \
-D WEBKIT_USE_SYSTEMTIME="LINUX" \
-D WEBKIT_USE_THREADING="PTHREADS" \
../ \
&& make -k ;
で、cmake-utils.eclassはと言うと、
[OTOH, cmake-utils.eclass has these craps like,]
# @FUNCTION: cmake-utils_use_with
# @USAGE: [flag name]
# @DESCRIPTION:
# Based on use_with. See ebuild(5).
#
# `cmake-utils_use_with foo FOO` echoes -DWITH_FOO=ON if foo is enabled
# and -DWITH_FOO=OFF if it is disabled.
cmake-utils_use_with() { _use_me_now WITH "$@" ; }

# @FUNCTION: cmake-utils_use_enable
# @USAGE: [flag name]
# @DESCRIPTION:
# Based on use_enable. See ebuild(5).
#
# `cmake-utils_use_enable foo FOO` echoes -DENABLE_FOO=ON if foo is enabled
# and -DENABLE_FOO=OFF if it is disabled.
cmake-utils_use_enable() { _use_me_now ENABLE "$@" ; }

# @FUNCTION: cmake-utils_use_want
# @USAGE: [flag name]
# @DESCRIPTION:
# Based on use_enable. See ebuild(5).
#
# `cmake-utils_use_want foo FOO` echoes -DWANT_FOO=ON if foo is enabled
# and -DWANT_FOO=OFF if it is disabled.
cmake-utils_use_want() { _use_me_now WANT "$@" ; }

# @FUNCTION: cmake-utils_has
# @USAGE: [flag name]
# @DESCRIPTION:
# Based on use_enable. See ebuild(5).
#
# `cmake-utils_has foo FOO` echoes -DHAVE_FOO=ON if foo is enabled
# and -DHAVE_FOO=OFF if it is disabled.
cmake-utils_has() { _use_me_now HAVE "$@" ; }
なので、「cmake-utils.eclass、つかえねー」とほざいた所、「OWBのオプションがタコなんだよ、カス」(意味なく誇張)とmatsuuさんが宣われたので、upstream devを#owb@freenode.netで叩く事にした。 :)
[So I'd have to say "OMGWTF, cmake-utils.eclass suck0rz!!1", then matsuu sez "It's OWB's cmake opts' faults. Fix0r ASAP!!1". So I'd have to smack t3h upstream devs at #owb.]
07/04 01:12:12 hiyuh
devs, I'm now poking own-svn ebuild to migrate w/ cmake-utils.eclass
on my gentoo.
07/04 01:12:33 hiyuh
but owb's cmake options has inconsistencies WRT thier name, it's
pain to me.
07/04 01:12:41 hiyuh
even if I migrate the ebuild w/ cmake-utils.eclass, it can't get
any benefit from USE flags.
07/04 01:12:46 hiyuh
b/c the eclass can handle -D{WITH,ENABLE,WANT,HAVE}_*, ATM.
07/04 01:13:08 hiyuh
owb doesn't use any -D{WITH,ENABLE,WANT,HAVE}_*.
07/04 01:13:38 hiyuh
is there any plan to clean up cmake options' name?
07/04 01:22:03 [Oliv]
If that's usefull to use cmake-utils eclass facilities... YES !!!
07/04 01:23:40 hiyuh
[Oliv]: then how can I purge owb's cmake opts to be cmake-utils.eclass
friendly? :)
07/04 01:24:58 [Oliv]
Well I think that I should first have a look at cmake-utils to have
a more precise idea of what must be done
07/04 01:28:12 hiyuh
k, so first of all, we need t3h ticket to consider? :)
07/04 01:28:51 [Oliv]
either we use the ticket related to cmake clean or we can create a
new one
07/04 01:30:10 hiyuh
oic, then I'll check the ticket for cmake clean.
07/04 01:30:29 [Oliv]
I had a look at cmake-utils eclass... and the major problem will be
to remove non boolean options :S
07/04 01:31:46 hiyuh
#210?
07/04 01:32:01 [Oliv]
yes... but in fact no
07/04 01:32:13 [Oliv]
I think that creating a new one is better
07/04 01:32:30 hiyuh
k
07/04 01:35:01 [Oliv]
things that will be easy to modify are option like WEBKIT_DEBUG
07/04 01:35:25 [Oliv]
which should become something like ENABLE_DEBUG
07/04 01:36:28 [Oliv]
'cause I had a feedback today about DEBUG_GCC3.X which is now
probably useless...
07/04 01:37:00 [Oliv]
compilation seems ok without it if you use a gcc-3.x
07/04 01:37:53 [Oliv]
the annoying part will probably be: OWBAL_PLATFORM_GRAPHICS
07/04 01:43:22 hiyuh
separate WITH_OWBAL_PLATFORM_GRAPHICS_GTK=[ON or OFF] and
WITH_OWBAL_PLATFORM_GRAPHICS_SDL=[ON or OFF], and enable the one
upstream prefered by default. if both ones are ON, build both
ones (or, only latter's like unixy command opt?)
07/04 01:45:48 [Oliv]
Well I think that if you compile both, you will get some "redefined"
symbols
07/04 01:46:24 [Oliv]
I think that in this case we have to use CMAKE_DEPENDENT_OPTION
07/04 01:46:57 [Oliv]
it is easy to manage if you only have 2 possibilities in graphics
07/04 01:47:21 [Oliv]
but it is planned to integrate amiga os implementation in owb
07/04 01:47:37 hiyuh
zomg, amiga :DDD
07/04 01:47:39 [Oliv]
so it will do a third possibility for graphics
07/04 01:52:07 [Oliv]
I will have to do some tests to know if it is easy to manage such
a case
つーことで、取り合えず、ticket #254を作っておいた。つづく、多分。 :P
[So, ticket #254 was issued by me. ASSIGNED WORKINPROGRESS(tm), prolly. :P]

2008/06/23

BuggyBinBlob.karma--;

#vhdl@freenode.netにて。
[At #vhdl@freenode.net.]
06/23 00:02:31 Manny
hi
06/23 00:02:42 Manny
can I declare entity foo in file bar.vhd?
06/23 00:03:21 hiyuh
yup
06/23 00:03:35 Manny
I have a working architecture for an un-delayed 4:1 multiplexer, and
I want to convert it to a delayed 4:1-multiplexer (wrt data lines),
but undelayed (wrt address line), which I want to implement by a
staged layout like:
06/23 00:04:20 Manny
architecture arch1 of mux is ... end arch1; arch2 of mux is ... 4
delay stages, MUX1: mux port map (output of delay, ...); end arch2;
06/23 00:04:49 Manny
I wonder whether it is possible to configure the mux used inside
the mux arch2 to use the mux arch1
06/23 00:08:00 Manny
ok, I figured how how the lattter should work
06/23 00:09:27 Manny
hiyuh: maybe I could show you some code - maybe in private?
06/23 00:10:08 Manny
it's really short and simple :)
06/23 00:11:39 hiyuh
hmm, you mean pm? why?
06/23 00:13:12 Manny
http://rifers.org/paste/vhdlforyou/show/7547
06/23 00:14:17 Manny
hiyuh: my VHDL compiler bails (I'm absolving an online remote hands-on
course at university)
06/23 00:15:34 Manny
hiyuh: here is the compiler output:
http://rifers.org/paste/vhdlforyou2/show/7548
06/23 00:15:58 Manny
it even tells me that it does not know about std_logic_vector -
this is odd...
06/23 00:18:13 `fred`
no it is not
06/23 00:19:46 Manny
`fred`: what am I doing wrong besides a few syntax errors I just
corrected?
06/23 00:20:51 `fred`
you have to repeat the use statements for each entity
06/23 00:21:27 Manny
`fred`: thanks a million! :)
06/23 00:22:22 `fred`
second point: learn how to use (others => '...') instead of writing
"..........."
06/23 00:30:48 Manny
`fred`: maybe you could give me a URL, or a quick example? I'd
really like to learn this :) I just peeked at the VHDL cookbook,
and it seems to use a few constructs but I don't grasp them.
06/23 00:31:49 `fred`
when others => Y <= "XXXXXXXXXXXXXXXX"; <=> when others => Y <=
(others => 'X);
06/23 00:32:10 `fred`
except that it is independent from the size of the vector
06/23 00:34:00 Manny
maybe I lack some decent portion of knowledge of VHDL internals. "when
others => Y <= (others => 'X);" seems to give me a syntax error
06/23 00:34:20 `fred`
one ' is missing
06/23 00:34:23 `fred`
'X'
06/23 00:34:47 hiyuh
http://pastebin.sk/pl/7121/
06/23 00:34:50 Manny
so 'X' is "expanded" to fit the LHS. neat.
06/23 00:35:44 Manny
hiyuh: thanks for your comments! Actually, I figured out all of
these myself :))
06/23 00:35:54 hiyuh
heh
06/23 00:36:00 `fred`
Manny: the full notation is e.g. ( 0 => '0', 1 => '1', others =>
'Z'), it should be describe in the aggregate chapter of your book
06/23 00:37:02 Manny
however, using arch1 inside arch2 still does not seem to work. It
seems to nest arch2 mux components inside my arch2 component, which
is of course not useful (infinite recursion)
06/23 00:37:21 Manny
let me show you my testbench, maybe the configuration statements
are conflicting
06/23 00:39:04 Manny
that's my test bench: http://rifers.org/paste/vhdlforyou/show/7549
06/23 00:42:10 Manny
also let me re-paste the mux file:
06/23 00:42:46 Manny
http://rifers.org/paste/vhdlforyou/show/7550
06/23 00:43:37 hiyuh
hmm
06/23 00:44:49 hiyuh
why on the earch should we comment 'in' and 'out' even if there is
syntactic 'in' and 'out'?
06/23 00:45:01 *
hiyuh zomgs
06/23 00:48:04 Manny
hiyuh: I do not like the in/out syntax of VHDL with respect to
that. The in/out looks rather "buried" inside the syntactical
structure if you specify an array of parameters
06/23 00:49:05 Manny
as an electrical engineerer, in/out is the MAIN aspect of a system :D
06/23 00:49:09 Manny
at least of a concentrated system
06/23 00:51:21 hiyuh
array of parameters? wth is it?
06/23 00:51:24 hiyuh
`fred`: btw, I found really buggy optimize option in ISE 9.2i/10.1
which breaks many core generator's craps. are you survivin' w/ v5? :p
06/23 00:52:12 `fred`
hiyuh: I've got the strangest bug with 10.1, it was optimising away
most of my microblaze without any reason
06/23 00:53:24 hiyuh
yup, you enabled Global Optimization at Map?
06/23 00:53:29 hiyuh
I'm really sure it will do byggy optimization.
06/23 00:53:43 Manny
hiyuh: you may also call it tuple. You know, A, B, C, D: in type ...;
06/23 00:54:14 Manny
hiyuh: however, I still do not understand what I am doing wrong
06/23 00:54:17 `fred`
hiyuh: only when the design was no longer fitting, and in this case
it was not helping :/
06/23 00:56:13 hiyuh
Manny: I'm saying about comment manner, not vhdl specific. and it's
unrelated point about what you're stucking.
06/23 00:58:42 Manny
maybe the "for mux2: mux use entity work.mux(arch2); end for;"
statement affects all mux building blocks, and not just the outer one?
06/23 01:00:03 hiyuh
`fred`: I was investigating ISE's buggy optimization like many trying
default w/ 1 option chnaging. at least, Global Optimization at Map
will break post-PAR model, I figured out.
06/23 01:01:31 hiyuh
and Optimize Instantiated Primitives at Synthesize will optimize
away some top entity's port. it vomits error at Translate.
06/23 01:03:00 hiyuh
Manny: if you're not sure what/how configuration works, don't use it.
06/23 01:03:57 hiyuh
just analyze and elaborate 1-to-1 entity-architecture.
06/23 01:04:06 `fred`
hiyuh: even with sp1 installed ?
06/23 01:04:20 hiyuh
you mean 10.1 sp1?
06/23 01:04:22 Manny
hiyuh: so I am mis-using the configuration?
06/23 01:04:25 `fred`
yes
06/23 01:04:47 Manny
hiyuh: I can of course read into it, if you tell me that what I am
trying to do is definitly possible with the basic approach :)
06/23 01:05:11 hiyuh
`fred`: release 10.1.01 (10.1 + sp1, IIRC) is still buggy. :P
06/23 01:06:08 Manny
again, the idea is: Use mux with architecture arch2. Inside this mux,
use another mux with architecture arch1. Naively concluding from what
I have seen, I AM actually using a 1:1 entity-architecture mapping.
06/23 01:06:16 `fred`
hiyuh: well, I'm anyway not really surprised
06/23 01:06:40 hiyuh
yup, we know ISE is always buggy. :p
06/23 01:07:43 hiyuh
Manny: 1-to-1 entity-architecture doesn't need any explicit
configuration.
06/23 01:07:58 Manny
hiyuh: you mean like "each entity just has one architecture"?
06/23 01:09:12 Manny
hiyuh: the thing is, for non-nested layouts all my configurations
work fine. Now, I am trying to nest an entity of one architecture
into another architecture of the same entity, and the compiler bails.
06/23 01:09:35 hiyuh
Manny: yup, until you realized configuration magic.
06/23 01:10:52 Manny
hiyuh: I am also not sure whether I am seeing a compiler issue, or
whether my configurations are wrong. If you can confirm me latter
[maybe even giving hints about the right configuration], I will
continue the approach :)
06/23 01:11:33 hiyuh
if you use sane vhdl simulator/synthesizer, valid configuration does
work even if design has nested entity.
06/23 01:12:53 Manny
ok, thanks for all your efforts. It's great to have such a kind and
quick support for VHDL :)

何時もムカつく事だけど、buggyなbin blobはどうにかならんかね。「releaseダルい」の件では、少し壊れている方が可愛げがあるって言ったけど、それは自分で直せる可能性とか遊びドコロがあるからって意味であって、ぶっ壊れているから面白いって意味じゃない。オープンソースキチガイってわけじゃないけど、仕事で作ってるならもう少しテストしてからリリースしたらどうなんだ?もう手前でwork around探すのは疲れたよ、パトラッシュ。 :P
[Everytime buggy bin blob piss me off. I said "I kinda prefer to play recent one w/ itty-bitty bugz" though, I meant it has a part of what I can play w/ it in the source code, not unfixable buggy behavior. So, I'm not open source nazi. You, who earns from your code, should be responsible w/ it. I'm really tired to find t3h work around for myself. :P]

2008/06/13

OWB->Doduo[r262] += GCC-4.3.1-patch;

WebKit GTK/QtはGentooのofficial treeに入ったし、NetSurfGSoCな感じでメジャーになってきたみたいなので、さらにマイナーなOWBをモニョる。 :P
[WebKit GTK/Qt is now in official portage tree, Netsurf devs are exciting for GSoC. So to be minor oriented, I'm playing t3h third one, OWB. :P]

公開されているtrunkのgcc-4.3.1でのcompilation fixを蝶テキトーにでっち上げてdev-MLに投げたら、スポンサー(?)のPLEYOのCTOっぽい人が「Doduoっていう先っぽが別にあるから、そいつのを直してくれ」と別口でメールしてきた。で、DoDuoをco出来る様にしてもらったので、大したfixではないけど、直した。 :)
[I kinda create compilation fix patch for publically accessible trunk w/ gcc-4.3.1, and sent dev-ML. Then, the sponsor, PLEYO's CTO mailed me about fixing tip of OWB, AKA Doduo is now private beta test. So I did. :)]

実は、OWBは以前試した事があって、trunk r97はマルチバイト文字が表示出来たけど、endianの問題でGentoo/PPC上では面白い事になっていた。 :D
[I was playing OWB ago. At trunk r97, it can display mutibyte fonts, but color was FUBAR on Gentoo/PPC, b/c endian depend internal color data structure. :D]


trunk r255は色の問題は直ったけど、フォント関連にかなり手を入れたらしくて見事に豆腐になる。 :DDD
[At trunk r255, color problem was fixed. But it was reorged WRT fonts related code, so "ALL YOUR FONTS ARE BELONGS TO TOFU." :DDD]


Doduo r262でも豆腐は健在、ticketを作ったので直してくれるかもしれんし、なんかモニョモニョしたら直りそうな気もする。
[At Doduo r262, fonts are still FUBAR. So I filed a ticket for this issue.]


OWBはWebKitベースなCE向けのモノらしく、WIMPなUIが無いみたいなので、SDLをつかった時のfixed sizeなwindowになっている部分をモニョれば(DoduoにはGTKを使う様なオプションがあるみたい)、タイル型WMと相性が良いかもしれないな!!1 :9
[OWB is WebKit-based one for CE. So there is no WIMP UI, it seems. If SDL's fixed size window was improved to be ICCCM compliant (Doduo has option to build w/ GTK, it seems). It would be great combination w/ tiling WM like wmii!!1 :9]

あ、まともに動作している画像がないのはマズいので、記念撮影。 :)
[Oh, wait. All pic are FUBAR-ed OWB, it's not good promotion. So here is good one. :)]

2008/06/09

disableRelease("sys-libs/glibc");

土日連続で出勤。しかし、ブツは牛歩の進み。
まー、シミュレーションに一晩かかるモノをやっているん訳だし、仕方ないと言えば仕方ないけどな! :p
[KK, I have no holiday and have very little progress. B/c t3h simulation takes loooong time such as 1 day per 1 test case. UMAZOMG! :p]

で、テストベンチをムニャヘニャなおして、ブツのシミュレーションを実行して放置プレイ。
おうちに帰って、#-bugsで遊ぶ。
[Well, I fix0r some test benches and set it running at office, then I was slacking at home w/ #-bugs guys.]
06/08 19:46:36 hiyuh
rofl @ http://home.planet.nl/~mourits/koelkast/
06/08 19:48:53 pchrist
hiyuh: for mips people like me, this is not fun :P
06/08 19:52:55 hiyuh
haha
06/08 19:57:45 bonsaikitten
hiyuh: I want one of those :)
06/08 19:58:55 pchrist
bonsaikitten: I'm pretty sure, that your datacenter home, can be
used as a fridge too :P
06/08 19:59:18 bonsaikitten
hehe
06/08 20:33:44 yngwin
hiyuh: nice one :)

06/08 20:40:56 Gatsby_
anyone here already installed sys-libs/glibc-2.8_p20080602?
06/08 20:41:40 Ke
anything interestin in it?
06/08 20:42:12 Gatsby_
not so far
06/08 20:42:48 *
Gatsby_ is only curios about any known bugs in it
06/08 20:44:16 hiyuh
!bug 225175
06/08 20:44:19 Willikins
hiyuh: Bug 225175; "sys-libs/glibc-2.8_p20080602 released";
Gentoo Linux | Ebuilds; RESO, FIXE; Arfrever.FTA.at.GMail.Com ->
toolchain@g.o; https://bugs.gentoo.org/225175
06/08 20:45:23 hiyuh
"Unfortunately there will be no more normal releases, ..." wtf?
06/08 20:45:58 Gatsby_
not a good idea at all.... ;(
06/08 20:46:09 Caster
?
06/08 20:48:12 bonsaikitten
Caster: who needs releases when you have git ...

06/09 00:32:55 whitehawk
what's new in the 2.8 glibc?
06/09 00:33:06 bonsaikitten
more shiny? ;)
例の「releaseすんのダルい」ってやつか?
MLを追ってみると、drepperも「tar玉作りなんて過去の遺物だ」とか言ってる。
で、vapierは「じゃあ、なんでCVSなんだよ?」とか言ってる。 :DDD
[Hmm, isn't it t3h "upstream slacks to release" problem? According to libc-alpha ML, drepper said "tarballs are a completely outdated concept", and then vapier replayed "yet glibc is still using cvs". :DDD]

relaseだろうとbetaだろうとalphaだろうと、メンテナ的にはtar玉をベースにしたいって事は理解出来るので、Gentooのkarmaの一つである「やっとglibcのコンパイルが終わったのに、もうrev bumpしてるじゃねーか!!1」ってのは変わらないので心配無用也。 :p
[But no matter if it was release/beta/alpha, I thought "based on tarball" would be welcomed for many distro-devs like vaiper said. So there is no change for a part of Gentoo's karma, "I just finished compiling glibc and now it says there is a new update available? Arrgh! It never ends!!" :p]

2008/05/21

if (repo.st == BROKEN) do_release(&repo.src);

commit日常茶飯事upstream devsとbug世話人distro devsの憂鬱(?) :)
[T3h antinomy(?) of upstream and distro devs. :)]
05/21 06:09:48 loki_val
Why is it whenever an upstream starts talking about doing unversioned
releases right from git, I get the urge to crush some nuts and
eat them?
05/21 06:10:06 loki_val
YOU'RE UPSTREAM. RELEASES'R'YOU!
05/21 06:15:31 hiyuh
hmm
05/21 06:16:31 hiyuh
loki_val is a sucessor of jakub?
05/21 06:16:35 *
hiyuh hides
05/21 06:17:11 loki_val
hmmm...
05/21 06:17:14 *
loki_val smacks hiyuh
05/21 06:17:17 hiyuh
lol
05/21 06:17:23 loki_val
sorry, don't have the class
05/21 06:18:11 eroyf
nor the mentallity
05/21 06:18:17 darksiide
Ingmar: new jeeves?
05/21 06:19:01 loki_val
hilighted you
05/21 06:19:58 eroyf
i saw it and ignored it
05/21 06:21:07 bonsaikitten
loki_val: try fedora
05/21 06:21:35 loki_val
bonsaikitten: sry, only works with distros that won't compile.
05/21 06:21:37 bonsaikitten
loki_val: after seeing that mess you'll understand that releases
are fubar by default and unversioned won't break stuff
05/21 06:22:10 bonsaikitten
loki_val: the fedora installer, it treats serious errors (like kernel
not installable) as unimportant warning that the user won't even see
05/21 06:22:14 bonsaikitten
wtf ...
05/21 06:22:50 loki_val
Unversioned doesn't break stuff. But one thing's for certain; if
nothing's versioned, it won't ever be release-worthy.
05/21 06:23:17 loki_val
It's just a point in time when the software doesn't suck as much as
it usually does.
05/21 06:32:07 AStorm
loki_val: you're so wrong
05/21 06:32:31 AStorm
release is the point in time when CDs are made and every development
is frozen
05/21 06:32:40 AStorm
so only so-called "stable changes" are made
05/21 06:32:41 bonsaikitten
erm
05/21 06:32:46 bonsaikitten
AStorm: dude ... what??
05/21 06:33:03 loki_val
AStorm: I dare you to run git kernel.
05/21 06:33:11 loki_val
Please.
05/21 06:33:13 AStorm
loki_val: I do, so what?
05/21 06:33:20 Ken69267
I ran a git kernel for about 5 months straight no probs
05/21 06:33:30 AStorm
it's 97% of time stable. Or more.
05/21 06:33:43 AStorm
they are versioned
05/21 06:33:45 bonsaikitten
which one?
05/21 06:33:49 bonsaikitten
97 or more?
05/21 06:33:51 AStorm
they are more finely grained versions
05/21 06:34:06 AStorm
bonsaikitten: 97% was a pessimistic estimate for Linux tree.
05/21 06:34:25 loki_val
Dude, what you call finely grained version, we call "not production
ready".
05/21 06:34:36 AStorm
you're wrong too
05/21 06:34:45 AStorm
who does the testing deeming it "production ready"?
05/21 06:34:57 AStorm
Do your homework, instead of relying on someone to do it for you.
05/21 06:34:58 loki_val
You need at least a bit of QA on a version before you put it into
production.
05/21 06:35:04 AStorm
...
05/21 06:35:08 pchrist|univ
loki_val: show us your "uname -r" :P
05/21 06:35:09 loki_val
I don't have the time for that.
05/21 06:35:20 AStorm
loki_val: excuses, they're always good.
05/21 06:35:30 AStorm
:-)
05/21 06:35:40 loki_val
pchrist|univ: 2.6.23.12-hrt5
05/21 06:35:50 AStorm
devel tree
05/21 06:35:58 AStorm
:-)
05/21 06:36:01 loki_val
Nahh, patches for my own comfort.
05/21 06:36:10 pchrist|univ
you AStorm ?
05/21 06:36:10 AStorm
hrtimer tree?
05/21 06:36:14 pchrist|univ
:P
05/21 06:36:17 loki_val
My clock would do strange things without it.
05/21 06:36:25 AStorm
2.6.25-rc8-electric1
05/21 06:36:39 loki_val
That's like SOO old.
05/21 06:36:48 AStorm
need to update it some day
05/21 06:36:50 AStorm
too lazy
05/21 06:36:55 AStorm
it's stable
05/21 06:37:47 AStorm
what I don't get is people publishing kitchen-sink patchsets :>
05/21 06:37:48 hiyuh
hmm, upstream's live one is ok to use? then why releases are b0rken
one? t3h devs will break their code in repo to release?
05/21 06:38:01 AStorm
hiyuh: not exactly
05/21 06:38:15 AStorm
it's just releases aren't any more stable than main git tree
05/21 06:38:22 loki_val
HAHAHAHAHAHA!
05/21 06:38:33 *
loki_val giggles
05/21 06:38:37 AStorm
Linux has no real cooling period
05/21 06:38:43 AStorm
(I mean the kernel)
05/21 06:38:51 AStorm
unlike Firefox for example
05/21 06:39:04 *
hiyuh breaks his code to make t3h release.
05/21 06:39:15 AStorm
mwhahaha

(AStorm and loki_val continue to argue about it)
個人的にはupstream repoから直接パクってきたモノだろうとreleaseしたtar玉だろうと、
少しぶっ壊れている方が可愛気があって好きだったりするが、その辺りのサジ加減が問題かも。
releaseすべきか、せざるべきか、それが問題だ。 :P
[Personally, I kinda prefer to play recent sources (no matter it was live one
or tarball) w/ itty-bitty bugz. But I can't say it's for all users.
It's DA question of degree. "release or not, it's DA problem." :p]

2008/05/10

pROM = genROM(&fsckin_IO_rel);

#vhdlにて。
[At #vhdl.]
05/09 20:38:20 _vanpelt
hi, i have to convert an 7bit input signal to another output
signal. the converting table is very large. is it better to query
an array or to write a very long "when" statement?
05/09 20:48:26 hiyuh
input synchronously, covert it synchronously, output
synchronously... this is common way to function w/ faster0rz clock
but input-to-output latency is large.
05/09 20:48:36 hiyuh
asynchronously convert directly input to output is shortest
input-to-output latency, but it won't function w/ faster0rz clock.
05/09 20:48:51 hiyuh
so it's up to you.
05/09 20:49:06 _vanpelt
the whole architecture is asynchronous
05/09 20:50:37 hiyuh
if you intended to make it to be asynchronously w/o paticular reason,
then I'd have to say it's bad design.
05/09 20:51:23 _vanpelt
hiyuh: i have to implement it after a given design :) no possibility
to make it synchron
05/09 20:54:36 hiyuh
wtf :p
05/09 21:10:14 _vanpelt
hiyuh: its from my university :)
05/09 21:11:33 _vanpelt
hiyuh: but theoretically it makes no difference whether to query
an array or a waste when list am i right? because the number of
comparations is equal?
05/09 21:14:41 hiyuh
nah, it depends what signal will be inputed, how signal will
be converted, what signal will be outputed, and what device and
synthesizer are you using. :p
05/09 21:15:37 _vanpelt
hiyuh: i don't need any synthesizers or devices. it is for simulation
only
05/09 21:16:26 _vanpelt
hiyuh: or to ask the other way, what is more elegant?
05/09 21:20:59 hiyuh
IMHO, how signal will be converted is really complex and looks like
randomly, pre-generated constant array to output by input signal
indexing is what I'd code.
05/09 21:21:42 hiyuh
the array will be generated by TSV and/or SSV (maybe I'll generate
it by using some program or its spec) w/ awk(1p) and/or sed(1p) script
05/09 21:23:15 hiyuh
how signal will be converted is simple or semantical, just code
function. then use it like, "output <= MyAwesomeFunction(input);"
05/09 21:23:16 _vanpelt
how do you mean input signal indexing?
05/09 21:24:18 hiyuh
output <= MyAwesomeConstantArray(input1 & input2 & input3
& ... & inputN); <--- this looks like indexing.
05/09 21:25:01 _vanpelt
hiyuh: ok. but there is no function that is able to actualy
calculate the value according to input. the numbers in the array
are to independent
05/09 21:26:09 _vanpelt
so i could implement binary search or something but i think that
this would go a step to far, doesn't it?
05/09 21:27:39 _vanpelt
the problem is that there is no function that could calculate the
position of the result from the input value
05/09 21:28:37 hiyuh
eh?
05/09 21:28:49 hiyuh
so I'd have to say no idea.
05/09 21:28:50 hiyuh
I haven't seen desired I/O logical relation what you're talking about.
05/09 21:29:19 hiyuh
I'm moronic coder, no code (or spec) is no help.
05/09 21:31:16 _vanpelt
hiyuh: ok sorry for being so imprecise. the input vales range from
1500 to 300. but not every value is needed. for example only 1500,
1463,1428,...
05/09 21:31:35 hiyuh
ok, then?
05/09 21:31:59 _vanpelt
but the output values are constantly increasing 40,41,...
05/09 21:32:48 _vanpelt
so what i have to do is asigning 1500 -> 40, 1463 -> 41,...
05/09 21:34:39 hiyuh
heh, so you have that entire of fsckin' I/O relation already?
05/09 21:35:23 _vanpelt
yes i have a table on paper for this huge list
05/09 21:38:42 hiyuh
ok, then generate constant ROM declaration from that fsckin' list
into package vhdl by hand or script or something.
05/09 21:38:43 hiyuh
then use it like "output <= MyAwesomeConstantROM(input);" w/
"use work.MyAwesomeConstantROM.all;"
05/09 21:40:14 _vanpelt
wouldn't that produce overhead because then i would have to generate
an array of 1500 elements and use only 300 of them
05/09 21:41:44 _vanpelt
because i could asign the input values the position of the output
values in the array, search in the array for the right input value
and return the position
05/09 21:44:42 _vanpelt
i really appreciate your patience :)
05/09 21:44:59 hiyuh
nah, create "input_value output_value" TSV or SSV, sort(1p) it by
input_value, use script or program to generate constant ROM by using
dummy stub value (which won't output).
05/09 21:46:30 _vanpelt
hiyuh: ok i will do it that way. thanks a lot for your help!
05/09 21:46:57 hiyuh
np, good luck. :p
05/09 21:47:11 _vanpelt
hiyuh: really great. thanks

05/09 23:57:44 _vanpelt
hiyuh: i got another, this time hopefully simplier question. i just
read a vhdl performance manual. is it really true to prefer integers
over slv's?
05/10 00:02:51 hiyuh
_vanpelt: performance for what?
05/10 00:02:53 hiyuh
shorter simulation runtime? shorter synthesizing time? function w/
faster clock? lower power or current?
05/10 00:03:52 hiyuh
and wth is vhdl performance manual??? :p
05/10 00:04:07 _vanpelt
hiyuh: if i have nothing like that specified, which optimization
should i use? as it is mainly simulated for simulation?
05/10 00:04:51 _vanpelt
hiyuh: the paper is called "VHDL Style Guidelines for Performance" :)
05/10 00:07:27 hiyuh
BWK and RP said like that, IIRC. "first of all, to optimize your code,
don't optimize it."
05/10 00:08:09 _vanpelt
hiyuh: :) ok
05/10 00:09:27 _vanpelt
hiyuh: but could i say that using slv's i am closer to the hardware
and so it is better when synthesizing it or running it on an FPGA
05/10 00:13:09 hiyuh
for synthesizer, good one can optimize your code w/ runtime options
than your hand-optimize.
05/10 00:13:17 hiyuh
but bad one produces ton of craps. :p
05/10 00:15:15 hiyuh
FYI. for simulation, good one can optimize your code JIT than your
hand-optimize.
05/10 00:15:19 hiyuh
but bad one takes so looooooooong time. :p
05/10 00:14:54 _vanpelt
hiyuh: ok. thanks again. i wont annoy you again today :)

他の言語でも俺様コードジェネレータをでっち上げるのは良くある事だし、最近は王道のスタイルで
書かれたコードをマトモなツールで使えばキチガイの様に手で最適化する必要は殆ど無い。
勿論、VHDLのRTLデザインはハードウェアに突っ込まれるので、I/Oの位置やタイミング制約で
悪足掻きする事はかなりあるけど、それは元のブツが王道のスタイルで書かれている方が弄りやすい。
[Codin' code generator is nice lazy way, that's not only for VHDL. T3h royal road style code w/ suckless tools won't require any of hand-uber-optimization, recently.
Yup, RTL level VHDL is intended to be into the device, so it has many I/O location and its timing restriction. But before poking it for these ton of restriction, original one as royal road design is the best one to start.]

シミュレータは、マトモなモノはそれなりに優秀で、JITな感じで動いているのは見ているだけで
大体分かる。
なので後は、「delta delayが少ないスタイルで書かれているか、否か?」でシミュレーションに
必要な時間が決まるんじゃないかと妄想している。
で、某G社の人が提唱しているスタイルが最強ではないかと思うのだがどうか? :)
[Recently, simulator becomes suckless a little. I guess it run w/ JIT optimization in my exp.
So, the last curse is "how many delta delaying is required to simulate it?", IMHO.
Then, t3h G guy sez awesome royal road style, so I was really surprised. :)]

2008/05/08

calDPI(NV) != calDPI(NOUVEAU|RANDR12_ON)

nouveauのlive git ebuildが動いたので調子にコいてemergeしまくっていたら、
Xorgが起動しなくなるほどぶっ壊れた。 :P
で、#nouveauで泣きをイれてみる。
[nouveau just worked, so I remerge it sometimes. It b0rk0rz my X. :P
So I asked devs at #nouveau.]
05/08 00:25:58 hiyuh
hmm, updating nouveau on my pb. it breaks my X. :p
05/08 00:38:29 marcheu
hiyuh: bisect, and then blame someone :)
05/08 00:41:17 hiyuh
zomg :)
05/08 00:44:30 hiyuh
I can't startx w/ nouveau by using the overlay atm. it seems to b0rk
at loading (or initializing) nouveau_drv.so.
05/08 00:47:50 pq
so look in Xorg's log
05/08 00:49:27 hiyuh
pq: any easy way to bisect by using the overlay's
xf86-video-nouveau? setting EGIT_blah?
05/08 00:49:54 pq
hmm... I don't that would be an easier option
05/08 00:50:41 pq
git-clone the nouveau DDX repo, build it, and make a symlink from
where the ebuild installed the driver to the hand-built drv.so
05/08 00:51:33 pq
for instance, I have
/usr/lib/xorg/modules/drivers/nouveau_drv.so.devel ->
/home/pq/nouveau/xf86-video-nouveau/src/.libs/nouveau_drv.so
05/08 00:52:01 hiyuh
ah ok.
05/08 00:52:09 pq
then I just do the link nouveau_drv.so -> nouveau_drv.so.devel when
I want to switch to the hand-built version

05/08 01:57:11 hiyuh
pq, marcheu: http://dev.gentoo.gr.jp/~hiyuh/misc/nouveau-bisect.log
05/08 01:57:52 marcheu
hiyuh: you're saying it's 52e58c7e799697989fcfbf95050ce10a4c3d1f8f ?
05/08 02:04:32 hiyuh
marcheu: I guess so.
05/08 02:05:34 pq
hiyuh, when the bisection completes, git says something like "the
first bad commit is..."
05/08 02:06:06 pq
I'm not sure how to read the bisect log
05/08 02:07:06 hiyuh
http://dev.gentoo.gr.jp/~hiyuh/misc/b0rk-Xorg.0.log
05/08 02:07:55 hiyuh
all bad rev does vomit like this.
05/08 02:09:36 pq
hm, script execution segfaults
05/08 02:09:44 pq
hiyuh, btw. please enable randr12
05/08 02:09:47 marcheu
hiyuh: I blame malc0 :)
05/08 02:10:13 hiyuh
lol
05/08 02:12:54 hiyuh
pq: randr12 works kinda bit. but it shows me larger and bolder fonts
on gtk app.
05/08 02:12:59 hiyuh
for testing is ok, but "do enable it always" is not good for me atm.
05/08 02:13:09 marcheu
hiyuh: what are the issues with it ?
05/08 02:13:26 marcheu
hiyuh: can't you force another dpi ? AFAIK what randr12 does is
correct
05/08 02:13:30 marcheu
or use smaller fonts..
05/08 02:15:35 hiyuh
well, I'm not good at tuning xorg.conf. I just replaced "nv" to
"nouveau". http://dev.gentoo.gr.jp/~hiyuh/misc/xorg.conf
05/08 02:16:00 marcheu
I think "nv" has incorrect dpi computation...
05/08 02:16:07 hiyuh
zomg :)
05/08 02:16:25 marcheu
the right thing to do is configure your font size in whatever app
you use
05/08 02:16:35 marcheu
or force dpi but that's pretty dirty
05/08 02:16:57 pq
you can also calculate what the true dpi is and see which one
is closer
05/08 02:17:09 marcheu
I think I've been looking at pb12 logs before (yours ?) and they
reported proper size with randr12 but not default
05/08 02:22:19 hiyuh
heh
05/08 02:24:47 marcheu
they didn't ?
05/08 02:25:02 marcheu
the detected size should be displayed in the logs
05/08 02:27:03 hiyuh
marcheu: hmm? are you saying "show me the Xorg log w/ randr12
enabled"?
05/08 02:27:28 marcheu
I'm saying you should check the reported size is correct
05/08 02:27:41 marcheu
which would mean the dpi is in turn correct
05/08 02:27:46 marcheu
I don't want the logs, I'm pretty sure it is
05/08 02:30:06 hiyuh
well, how can I check whether it was correct or not?
05/08 02:30:09 hiyuh
running Xorg w/ randr12 enabled then what?
05/08 02:30:39 marcheu
the screen size is in the logs
05/08 02:36:03 hiyuh
nv sets (75, 75). w/ randr12 off, nouveau sets (75, 75). w/ randr12
on, nouveau sets (108, 144)
05/08 02:38:16 marcheu
sure, because nouveau with randr12 takes the screen size into account,
which is the correct thing to do
05/08 02:38:21 marcheu
look in the logs for the screen size
05/08 02:38:27 marcheu
you'll see that it's the right one
05/08 02:38:32 marcheu
but I'm repeating myself somehow
05/08 02:40:23 hiyuh
so, (108, 144) is correct DPI?
05/08 02:40:44 marcheu
so.
05/08 02:41:09 marcheu
to compute the DPI, you divide the size in pixels by the size
in inches
05/08 02:41:16 marcheu
the size in pixels is the same
05/08 02:41:34 marcheu
now feel free to do the computation yourself
05/08 02:41:59 marcheu
and really I'm leaving before this stuff drives me crazy
05/08 02:42:04 pmdata
!INCREASE your dpi! PLIZ YOUR EYES
05/08 02:42:54 marcheu
and really, we're not going to fuck up dpi calculation because it
makes font too big or too small. it's up to the apps to be configured
05/08 02:42:57 marcheu
bbl
05/08 02:43:15 pq
btw. the size in inches is horizontal or vertical, not diagonal
marketing inches :-)

つーことで、git repoの方はmalc0様々がそのうち直してくれるだろうと勝手に期待して待つことにする。
randr12 onなnouveauはnvとDPIがモロ違うっぽいのでフォントはアプリ側で調整する方法で行くかな。
[So I'm waiting official fix for this b0rkage by malc0 or someone who read t3h log.
ATM, w/ randr12 on, nouveau sets different DPI from nv's (is incorrect?).
T3h way to stick nouveau w/ randr12 on, I'll set appropriated font size as the app side setting.]

2008/04/19

pull(&overlay, &nouveau);

#gentoo-bugsにて。
[At #gentoo-bugs,]
04/19 06:48:07 jeeves
[New Bug] https://bugs.gentoo.org/218337 min, P2, x86,
cfchris6.yahoo.de.bug.wranglers.g.o, NEW, pending,
x11-drivers/nvidia-drivers-169.09-r1 | unmerge does not remove
nvidia.ko (Reassign bug to cardoe.g.o ?)
04/19 06:48:52 Caster
RESOLVED CONFIGPROTECT
04/19 06:51:55 hiyuh
it's t3h proof: once you've emerged t3h blob, you cannot unmerge
t3h blob anymore.
04/19 06:51:58 *
hiyuh runz
04/19 06:52:36 *
cla laughz atz hiyuhz
~ppcなのでbinary blobも何もない訳だが、久しぶりにnouveauでriceしてみる。
未だ__ucmpdi2なmissing symbolが直ってないので手始めに#nouevauでmaintainerを叩く。 :p
[I'm on ~ppc, so there is no binary blobs sadly.
Then I'll do ricing w/ nouveau. nouveau DRM still have t3h issue WRT missing __ucmpdi2 symbol. So I'd had to poke overlay maintainers at #nouveau. :p]
04/19 20:46:22 hiyuh
who is maintainer of nouveau overlay for gentoo now?
04/19 20:47:05 pq
I am, and stillunknown, depending on your definition of "maintain"
04/19 20:47:49 pq
no, gallium support is not coming until it becomes worth testing ;-)
04/19 20:48:00 hiyuh
then could you mind to consider to add __ucmpdi2 patch for x11-drm
on ppc32?
04/19 20:48:26 pq
that's still unsolved? sheesh
04/19 20:48:38 hiyuh
yup
04/19 20:49:05 hiyuh
https://bugs.freedesktop.org/show_bug.cgi?id=10547#c11
04/19 20:49:19 pq
do you have a patch for the ebuild at hand?
04/19 20:51:35 hiyuh
I just added renamed (to apply only for ppc) marchesin's ucmpdi2.diff
to x11-base/x11-drm/files/patch dir. it seems to work.
04/19 20:52:26 pq
yeah, I'm just thinking that when/if it gets properly fixed, the
ebuild starts to fail
04/19 20:53:40 pq
ok, let's take a look, and deal with failing when it happens
04/19 20:53:49 hiyuh
kthx
04/19 20:54:08 pq
don't go away, you soon have to test it :-)
04/19 20:54:47 hiyuh
lol :)
04/19 21:02:41 pq
hiyuh, committed, please test
04/19 21:02:53 marcheu
maybe it should just go into drm
04/19 21:03:03 pq
too late!
04/19 21:03:06 marcheu
I mean, if the ppc guys don't want the fix, we still want it anyway
04/19 21:03:14 marcheu
there's not only gentoo in the world :)
04/19 21:03:34 pq
orly?! :-P
04/19 21:04:06 hiyuh
lol
04/19 21:08:16 hiyuh
nooes :)
04/19 21:08:21 hiyuh
plz rename "003_ppc_ucmpdi-nouveau.patch"?
04/19 21:08:23 hiyuh
it won't work w/ "-PPC-"
04/19 21:08:50 pq
hunh? is that again some l33t G-feature?
04/19 21:09:11 hiyuh
FEATURE! :)
04/19 21:10:50 pq
omg, it's braindead
04/19 21:10:54 hiyuh
or, that patch is already w/ ifdef-ed. so using "_all_" to apply
all should not be problem, I guess though. :p
04/19 21:10:56 pq
erm, I mean intelligent
04/19 21:12:25 pq
so, arch is ppc and not pcc32?
04/19 21:12:35 pq
gah, ppc32
04/19 21:13:17 hiyuh
ppc is "ppc", ppc64 is "ppc64" for now, IIRC.
04/19 21:15:55 pq
hiyuh, ok, committed. How about now?
04/19 21:17:05 hiyuh
hmm, it works. :)
04/19 21:20:44 hiyuh
ok, there is no missing symbols, so time to break my X. :p
04/19 21:21:21 hiyuh
brb

04/19 21:28:01 hiyuh
hmm, it works. :)
04/19 21:28:25 pq
great
04/19 21:31:15 hiyuh
FYI, http://dev.gentoo.gr.jp/~hiyuh/misc/Xorg.0.log
04/19 21:31:57 hiyuh
:DDD (EE) AIGLX error: dlopen of /usr/lib/dri/nouveau_dri.so
failed (/usr/lib/dri/nouveau_dri.so: cannot open shared object file:
No such file or directory)
04/19 21:31:57 hiyuh
(EE) AIGLX: reverting to software rendering
Gallium 3Dじゃないとsoftware renderingにfallbackするみたいだけど、ITJUSRWORKS(tm)。
x11-drivers/xf86-video-nvだとXAAでしか動かなかったけど、x11-drivers/xf86-video-nouveauだとEXAが使えるみたいなので乗り換えておく。 :D
[ATM, w/o Gallium 3D, it will fallback to software rendering, but ITJUSTWORKS(tm).
IIRC, on my PowerBook 12", x11-drivers/xf86-video-nv can only use XAA, but this x11-drivers/xf86-video-nouveau will use EXA by deefault, so I prefer this! :D]

2008/03/07

FixBug(&eFTE); /* WRT X11 hints */

最近、仕事でモニョモニョしているhg repoをcloneするのがダルくなってきたので、
ちょーしこいてmergeするのに邪魔だった変更中のブツをrevertしてムニャムニャ
していたら、*.origなヤツがいつの間にか消えてハイパー萎えた。 :(
[Hmm, I now really regret what I didn't clone my bloated hg repo at
that time. So, I did revert a modified source file, this means it was
implicitly backed up w/ .orig suffix. But *.orig is gone accidentally,
OMGWTF, GIMMEH BAK MAH PRECIOS C0DE!!11!1 :(]

で、気晴らしにapp-editors/efteつーのがぶちこまれていたのを思い出したので
モニョる。
[BTW, I poked app-editors/efte.]
  • ビルドディレクトリで実行出来ないのはコンフィグファイルの所為で1.0で直る予定。
    [It couldn't exec at build dir is a known issue for 1.0.]
  • efte.desktopにテキトーな日本語訳を追加した。
    [Added my stupid japanese translation into efte.desktop.]
  • 日本語は入力出来るけどUTF-8に対応してないので文字化けする。
    [It can be input Japanese, but isn't capable of UTF-8, so multibyte character will be garbled ATM, but is planned.]
  • キーボード入力がバグってたのはX11 hintsの問題で、svn trunkでは直ってる。
    [A bug WRT keyboard input is caused by wrong X11 hints, these are fixed in svn trunk.]
つー感じだった。以下、#efteでのログ。
[The following is t3h log on #efte.]
03/06 21:17:54 hiyuh
hi
03/06 21:18:11 Bushmills
hi hiyuh
03/06 21:18:14 hiyuh
efte can not run its build dir?
03/06 21:18:18 hiyuh
just running ./src/efte in build dir here, but it vomits error about
missing mymain.fte.
03/06 21:18:20 Bushmills
oheio goseimas
03/06 21:18:53 Bushmills
hm... should be a one liner, in the config dir. what version do
you run?
03/06 21:19:13 hiyuh
just pulled from svn repos. :)
03/06 21:19:30 Bushmills
ok. i'd suggest to hand-make the missing file:
03/06 21:19:42 Bushmills
create a directory .efte in your home dir ..
03/06 21:20:05 hiyuh
and btw, it's about 21:20 in japan. so I'd have to say "konbanwa" :)
03/06 21:20:05 Bushmills
and in there, create a file which contains:
03/06 21:20:12 Bushmills
include "systemmain.fte";
03/06 21:20:23 Bushmills
sorry, my bad. konbanwa
03/06 21:20:31 hiyuh
no problem
03/06 21:21:03 Bushmills
that mymain.fte in .efte can serve as base for your personal
customization
03/06 21:21:43 Bushmills
a copy of it was supposed to be in ~/efte/config
03/06 21:21:52 hiyuh
ok
03/06 21:24:30 Bushmills
running efte with optionss -v or -v -v should show the files
it includes, or attempts to.
03/06 21:24:44 Bushmills
on std err
03/06 21:25:43 Bushmills
running efte with -v or -v -v from an xterm is probably maybe
the easiest way to see that output
03/06 21:26:33 hiyuh
heh
03/06 21:26:48 hiyuh
oh, ITJUSTWORKS(tm) :)
03/06 21:27:25 Bushmills
sound good. what OS, what CPU is that?
03/06 21:28:39 Bushmills
you may like the new script language, it incorporates a bit of
japanese grammar :)
03/06 21:28:58 hiyuh
Gentoo Linux/PowerPC, Apple PowerBook 12' last model.
03/06 21:30:08 Bushmills
great.
03/06 21:31:11 Bushmills
can you look into your svn dirs of efte, especially in efte/config,
whether you can see a mymain.fte in there?
03/06 21:33:31 hiyuh
yup, it has 'include "systemmain.fte";', others are #-prefixed.
03/06 21:34:11 Bushmills
hm .. efte should have found and used that one, when not finding
your local .efte/ ... versiin.
03/06 21:34:13 Bushmills
ion
03/06 21:35:00 Bushmills
japanese grammar uses a lot of noun verb structures?
03/06 21:35:07 Bushmills
cake eat?
03/06 21:35:43 hiyuh
whut?
03/06 21:35:46 hiyuh
:)
03/06 21:37:00 Bushmills
object ... action structures seem to be common in japanese language?
03/06 21:37:59 Bushmills
"cake have not if cake eat not then"
03/06 21:56:35 Bushmills
that's what new efte script language incorporates too
03/06 22:06:27 hiyuh
hmm, I'm not sure what you mean though. could you mind to input
sentence as engrish to me? then I can translate it to japanese and
japanese-order words.
03/06 22:06:42 hiyuh
s/engrish/english/

03/06 22:11:58 ln-
hello hiyuh
03/06 22:12:13 hiyuh
hi ln- :)
03/06 22:12:52 ln-
would you like to help all japanese eFTE-on-linux users and translate
the following two menu item descriptions into japanese:
03/06 22:12:55 ln-
GenericName=Text Editor
03/06 22:12:57 ln-
Comment=Fast, extendable programmers' text editor
03/06 22:13:09 ln-
they can also be found in packaging/shared/efte.desktop on svn.
03/06 22:13:27 hiyuh
ah
03/06 22:16:50 hiyuh
hmm, "fast" is fuzzy word to me. :)
03/06 22:18:48 ln-
fast, quick, light, ...
03/06 22:26:16 hiyuh
http://dev.gentoo.gr.jp/~hiyuh/misc/efte.desktop.+ja.diff
03/06 22:31:34 ln-
great, thanks.
03/06 22:32:16 CIA-39
efte: lanurmi * r905 /trunk/packaging/shared/efte.desktop: Added
Japanese translation (thanks to hiyuh).
03/06 22:32:48 hiyuh
nice :)
03/06 22:40:42 ln-
so is (e)FTE usable at all for writing Japanese? (due to charset
limitations)
03/06 22:54:19 hiyuh
omg, nefte can be input japanese but it becomes garbled charcter. any
setting is required for utf-8 or unicode env?
03/06 22:56:51 Bushmills
not yet, but addition is planned

03/06 22:57:46 jeremy_c
gm all.
03/06 22:57:53 hiyuh
and omg again, efte (not nefte) doesn't response any keyboard input
on wmii which is my favorite wm.
03/06 22:58:31 jeremy_c
hiyuh: really? I've used wmii before (using awesome right now). I'll
check it out.
03/06 22:59:27 jeremy_c
hiyuh: do you get any load errors/warnings? Maybe a config file is
not found? We have been doing *heavy* work on the config system,
it's possible that if not found, it loads w/an empty config, thus,
no keys are mapped to any action.
03/06 23:01:07 Bushmills
gm jeremy_c
03/06 23:03:12 jeremy_c
hiyuh: hm, I just read back, and yes, that is a current problem
w/eFTE and one reason it's not 1.0 yet. It should run from it's
build directory. However, it searches in common locations. The
quickest solution to fix your keyboard problem, config problems,
etc... is do to:
03/06 23:03:22 jeremy_c
mkdir /usr/local/share/efte
03/06 23:03:36 jeremy_c
ln -s ~/path/to/efte/config /usr/local/share/efte/config
03/06 23:04:26 jeremy_c
if you do that, efte will begin responding correctly. Just finding
a mymain is not quite enough, it needs to find the other files such
as the key mapping, menu and mode setup. Can you please give that
a try and I'll bet it starts responding in wmii.
03/06 23:11:04 jeremy_c
hiyuh: also, out of curiosity, how did you find efte? we are pretty
new and curious how people find us.
03/06 23:13:08 hiyuh
hmm, made symlink as you said. but it doesn't response too. :(
03/06 23:13:25 hiyuh
and I found efte at portage tree.
03/06 23:14:29 jeremy_c
hm, that's not making sense. I *really* appriciate you coming here
and reporting this problem.
03/06 23:14:54 jeremy_c
can you do efte -v and paste the results to rafb.net/paste ?
03/06 23:15:01 hiyuh
k
03/06 23:17:00 hiyuh
http://dev.gentoo.gr.jp/~hiyuh/misc/efte-v.txt
03/06 23:18:09 jeremy_c
well, it found all the config scripts, so that's not the problem.
03/06 23:20:01 jeremy_c
Ok, and just checked out the latest efte also from svn (was sleeping
and not caught up on Bushmills changes). Let me install wmii.

03/06 23:22:38 Bushmills
always when i break it, jeremy_c has to fix it again :)
03/06 23:22:54 hiyuh
jeremy_c: efte can only response by mouse input.
03/06 23:23:01 hiyuh
Bushmills: lolz
03/06 23:23:21 jeremy_c
hiyuh: hm, working fine here in this wmii. this is very strange.
03/06 23:23:52 jeremy_c
hiyuh: how do I get a new xterm in wmii?
03/06 23:25:10 jeremy_c
Ok, it would take a bit of getting use to again, but I got a new
xterm. I do not seem to be seeing any problem while running in wmii.
03/06 23:25:50 hiyuh
jeremy_c: $MODKEY-Retern, my $MODKEY is Mod4 (Apple key), default
is Mod1 (Alt) as you know.
03/06 23:27:35 hiyuh
and FYI I'm using wmii of hg tip (2292).
03/06 23:28:07 jeremy_c
I just did a pacman -S wmii, it installed 3.6
03/06 23:28:25 jeremy_c
does it support multihead?
03/06 23:28:46 jeremy_c
right now all my windows are vertically split stretched across
two monitors.
03/06 23:29:14 jeremy_c
http://jeremy.cowgar.com/snap/1204813731061956285.png
03/06 23:32:00 jeremy_c
ah, now I remember why I did not continue using wmii, it does not
right now, seems it is going to be added in v4. However, that's
secondary problem, right now, why does eFTE not respond to key
input!?!?
03/06 23:33:13 Bushmills
i wonder whether that problem is wmii related. maybe try to run it
just from an xterm, no wm at all.
03/06 23:33:33 Bushmills
startx $(which xterm) -- :1
03/06 23:33:58 Bushmills
might work from within X, starting a new X server
03/06 23:34:01 jeremy_c
Bushmills: I was just in wmii and had no problems, however, it was
not the dev edition, but I can't see what wmii would be doing to cause
efte not to work, but other apps to. this is truely a weird situation.
03/06 23:35:16 jeremy_c
hiyuh: but it would give us another thing to eliminate if you could
do that.
03/06 23:35:18 Bushmills
but before efte accepted chars. UTF input, but not outputting well,
of course
03/06 23:36:51 hiyuh
k, I'll try on twm. :p
03/06 23:39:47 jeremy_c
hiyuh: thanks for giving this a go, sorry your having problems.
03/06 23:41:02 hiyuh
jeremy_c: no problem. twm is emerged just now. I'll test it at
home, bbl.

03/07 00:10:58 jeremy_c
hiyuh: wb.
03/07 00:11:21 hiyuh
yo
03/07 00:13:07 hiyuh
zomg, efte works fine on twm
03/07 00:13:30 jeremy_c
ok... I think I may have found the problem. I was in #wmii talking.
03/07 00:13:44 jeremy_c
Let me make a change to eFTE and see if that fixes your problem, OK?
03/07 00:13:56 hiyuh
yup, do it :)
03/07 00:16:14 CIA-39
efte: jeremy_c * r906 /trunk/src/con_x11.cpp: Set InputHint in
X11 version
03/07 00:16:35 jeremy_c
give svn up and give it a go again. Be sure to svn up in the root
efte dir.
03/07 00:17:18 hiyuh
k
03/07 00:18:05 hiyuh
bbl

03/07 00:20:05 jeremy_c
any luck?
03/07 00:20:39 hiyuh
yup, ITJUSTWORKS(tm) :)
03/07 00:20:59 jeremy_c
Great!
03/07 00:21:31 jeremy_c
we will get the problem of not being able to run it from the source
tree fixed soon.
03/07 00:22:42 hiyuh
hehe
03/07 00:22:54 jeremy_c
hiyuh: the docs on configuration are a bit out of date... we've
been heavily modifying the scripting/configuration and have not been
able to keep up w/every change on the wiki. Before we release 1.0,
we will update the docs.
03/07 00:38:51 CIA-39
efte: jeremy_c * r907 /trunk/src/con_x11.cpp: Another minor fix to
the X11 state hints
03/07 00:42:57 CIA-39
efte: jeremy_c * r908 /trunk/src/con_x11.cpp: Ok, this is the last
WM_HINTS patch, really.
03/07 00:43:07 jeremy_c
hiyuh: I'm sorry, my quick fix wasn't quite complete, can I bug you
to svn up and try again and see if it still works as expected?
03/07 00:46:48 *
hiyuh does svn up
03/07 00:53:48 hiyuh
jeremy_c: works fine too. :)
03/07 00:53:59 jeremy_c
hiyuh: great. thanks for your help w/that bug.
03/07 00:54:30 hiyuh
jeremy_c: yw