.64bit クリーン化を考えんといかん。 メモメモ。4.4BSD rune のデータファイルはこんな感じ:
.これが非常に手抜きな方法論で実装されていて、 こいつを単純に大きな一枚のメモリエリアにロードした後、 ごにょごにょ加工して利用されるようになってる。 ぜーんぶその構造体に情報を放り込むようになっているので、 これらのデータ構造体の中には、データファイルでは空なんだけども、 ロード後に値が埋められるフィールドがあって、 それがことごとくポインタなので困る。 何が困るって、64bit マシンで困る。 このおかげで、/usr/share には置けない状態。 .方法論としては 2 つのアプローチがある:
.というわけで、どっちも一長一短があるのだけど、 XPG4DL の理念は「互換性」なので、3 を選ぶことにするかな。 まあ、システムのデータファイルなので、単に作り直せば済むんだけども。 .…めんどくさ。いいや、2 にしよ(ぉ。 FreeBSD は 32bit にしときゃいいだろ。 .というわけで commit。 |
.BSD magazine でごんす 。 あの雑誌を妹ライクな女性が読んでるとは全く思えないが。 |
.今日買った CD:
.1 。軽く通して聞いた感じでは、なかなかマニアックだ、うん。 聞き所は、そこだけ別世界角松インストな SIESTA と、 どー考えてもマーカスミラーの Sun doesn't tell a lie の Teen Town の パクリの DONNA LEE 〜 COME ON, COME OVER かな(←ミもフタもない)。 あんまりサムピングで 4 ビートやる人はいないのだけど、 スラーを多用して頑張っているのが聞き取れる。 しかしながら、あまり成功してるとはいいがたい(ぉ。 でも、最後の超高速ユニゾンは純粋に凄いぞ。 ベース弾きならもちろん、そうでなくてもそれなりに楽しめる一枚。 .2 。軽く通して聞いた感じでは、ニューヨーク。以上(ぉ。 |
.日記を sync するのがめんどかったので、全部 cvs に放り込んだ。快適。 .大昔にもどっかに書いたことがあるのだけど、 Web 日記の文書管理メカニズムはすべからくリポジトリ的であるべきだと 思っている私としては、cvs では牛刀をもってなんとやらだし、 日記システム側にそのための機能が必要かな、とは思っているのだけど。 |
.もうかの人の日記は、 私は一年以上も前から(何かのトピックを耳にした場合を除いて) 意図的に読まないようにしてる。気分が悪くなるだけなので。 この人、最初のうちは、単なるまわりの人との意見の違いを 認めないだけくらいだったと思うのだけど、 「絶対に自分が正しい」という病的なまでの信念と、 その「正しさ」を保証するためには、 「間違いを認めない」「態度を改めない」どころか 「自分に都合の悪いリンクからは見えないようにする」とか、 しまいには「過去の発言をなかったことにするのもいとわない」 ところまで来てるので、もう何言っても信用できない。 まあ、そこまで追い込んでしまったのは我々の方かもしれんけど、 でも自業自得よね。 .hns も、こんな人がかかわってなければ、 もっとみんなに愛されてたと思うのに。 悪い点もあるけど良い点もたくさんあるので、残念だなぁ。 |
.CD-R/RW ドライブを購入。外付け SCSI にしようと思っていたのだが、 結局内蔵のにした。NICHIMEN-ELE の SANYO から OEM 供給された Burn-Proof なやつ。 .さて、ケースを引っ張りだした、古いドライブ外して、取り付けて蓋閉めた。 ケースを元の場所に戻した。NetBSD ブートしてみた。 艦長ダメです、認識しません、もう一度点検せよ、 でもう一回引っ張りだして蓋開けた、パリティのショートピンやらいじった、 好転せず、で、CD-ROM 入れてブートしてみた。 probe した。なんだ、ありがちな quirk が必要なドライブなのね…。 .さて、蓋を閉める前に、うっかり古い方のドライブにメディアをいれっぱなし だったことを思いだし、取り出そうとするも強制排除孔が見当たらなかったので、 あたらしいドライブから一時的に電源コネクタ抜いて、取り出した。 その後、蓋閉めてケース戻して電源入れたら、新しいドライブが動かない…。 抜いた電源コネクタを挿し忘れて、もう一度ケース引っ張り出して開けて 挿して閉じて戻す。うう…。 .で、具体的な問題は、 「メディアが入ってないと probe で timeout → retry を繰り返して 最後に give up」です。SCSI リムーバブルドライブは CD-ROM にしろ MO にしろありがちなやつですな。というわけで quirk patch 書いて send-pr 。 .でも、irc で同じドライブ持ってるロボに聞いても、 「そんな問題は起こらん」そうだ。うーむ、コントローラもほぼ同じ siop なので、よくわからん…。 |
.うーむ、RIDS のエスケープにバグがあることを発見。 URL とかの # をエスケープすると、直後にスペースが入る。 これ、なんとかするのは実は結構めんどい。 parser は、もう一度練り直さないといかん。 しょうがないのでヒアドキュメントで回避。 |
.要はですね 、 日記のソースはどっかのマシンで一元管理すべきなんですけど、 必ずしもそのマシンで日記を書いてるとは限らない、というのがミソですね。 まさしく、そこの同期をどう取るか、という問題。 .今までの Web 日記を見てると、日記の書き方には、
.実装上は、どのレイヤでやるのがいいのだろう…。 RIDS では、文書構造を扱う仕組みはメカニズムとして提供してるから、 XML 的な木構造は表現できるので、 文書構造のレベルでジャーナライズを提供しようと思えばできなくもない *1のだが、今の RIDS という仕組みは、 「文書構造のセマンティックは RIDS 本体が窺い知ることではない *2」 ので、難しい。うーん、もうちょいデザインのレベルから レイヤリングをやり直すかな…。 もともと RIDS は ruby を憶えるつもりで作り始めたものなので、 もう一度作り直すのは必然だと私自身は思ってるし。 .まあ、IMAP 的な仕組みに、CVS 的なジャーナライズを加えればいいのかな。 わたしゃやっぱり X 的 UNIX 的思想に毒されてるので、 そういう「メカニズム」を提供することには強い興味が湧くんだな、うん。 たとえば、hns みたいな、「ケータイ機能を追加したい」とか、 そういう具体的かつどん欲な利用者重視の機能追加そのものは私は 全く興味がない。でも、それが実現できるメカニズムには興味がある。 しかしながら、どん欲に機能追加していると一般化された 仕組みがないと破綻し出すので、hns 的な方法を突き詰めていったとしても、 結局は「一般化されたメカニズムが必要だ」というところに行き着くとは 思うので、単にどっちが先にありきか、 というだけの違いに帰着するレベルの話だとは思うけど。 このへんは、NetBSD と Linux の対比に良く似ている。 .あ、そうそう、何でマージにこだわるか、というと、 多人数による日記というもののニーズや、 ブレインストーミング的なメモを半ば自動的に編集してくれる システムも視野に入れているからです :-) |
|
.をを 、たしかに死にますな…。 CSS なページを食って憤死するのはネスケの専売特許かと思ってたが(ぉ。 .ちょっと原因調査してみますね m(_ _)m .… IE4, float: right なボックスの挙動が非常に変ですな。 table で回避。 .…と思いきや、こんどはネスケが落ちやがる。 .CSS 使うのを部分的にやめた。 |
.そうそう、わたくしが日記を書いてなかった 1 年くらいの間、 やっぱり業界はめまぐるしく変化していましたな。 .ここ一年のトピックと言えば、やっぱり L バブルの崩壊でしょうな。 平成バブルの崩壊が、すぐには我々庶民の目には止まらなかったように、 既にもう一年くらい前から L バブルは崩壊の兆しを見せつつあるけど、 どうもそんな気配は当事者は感じとっていないようですな。 .まずは雑誌から。もともと大きくないパイに数社の 雑誌が飛びついたので、まず手始めに 「×って、そっちが攻めかいっ。フォークの方が(以下略)」と評判だった某誌が 早々と休刊したのは置いておいても、某 A の L なんかは結構妙な 噂を前っからよく聞いてるし、老舗 LJ は毎月火の車(私は好きだけど)、 まあ N の L はブランドの力でなんとかやってて私の所にも数ヵ月に 一度くらい原稿依頼が来る、ってそんな感じ。 それどころか、某 M の、「ぷに」でおなじみなエロゲー雑誌風略称をもつ PC-UNIX 雑誌は、前々から何か *B 系の「こゆい」人選でアレだったけども、 一瞬それが原因で廃刊したように見せかけて、 実の所は、「そんな業界人いるかー」と言われつつもなんとなく L 色を 付けるために申し訳程度に載っていた「L 業界の人々」や、 「こないだ某 ML で騒動を起こして株が急落した某ディストロ」の 主要メンバがやっていた連載などなどを見限って(以下略)。 .ディストリビューションの方に目を移すと、 いつのまにか自己資金が底をついてた某 TL とか、 一年前ベンチャーキャピタルの目標「次の 1 年で倍になります」って話を そのまま某社に持ちこんで、某社社内で失笑のマトになり、 当然某社的に冷静な分析をした結果「そんなバカなことはない」ので 丁重にお断りした結果、やっぱり倍にならなかった RH (←前置き長い)とか、 お子様対応で有名な DF の KL とか、最初はグラフィカルなインストーラが 凄いとかで元気だったけど、最近あまり話を聞かない LM とか、 あまりまわりを見回してもパッとするネタがない。 .ま、去年までのあの状況は当然バブルで、それが崩壊するのは もう誰の目にも明らかだった訳ですから、バブルが崩壊した今からが、 やっぱり本当の勝負でしょうな。 地道にやってりゃ、NT だろうが AS/400 だろうが MSX だろうが儲かるんだ。 ←って、MSX? .一方で最近なんとなく元気なのが B 方面。といってもマルチメディア OS では ありません。山葵とかいろいろ。もともと F あたりは apache との相性は最高と 詠われた OS ですし、大きなサイトは apach + FB 、エロサイトは apache + L と 評判ですからな。いや、エロサイトは往々にして負荷が高いもんですから、 それでもサーブできるのは偉い、とほめてるんですよ、もちろん。 .まあなんか収拾つかなくなったけども、どうも、 私が一年以上前に想像していた通りの 混沌とした PC-UNIX 世界になってるのは確かだってことかな。いじょ。 |
.お兄…じゃなくて、英語かきかきモードで MB_LEN_MAX の増加要請の 説得をしてみたり。やっぱり説明不足で thorpej と dolecek を 納得させるのに苦労。日本語だったらてっとりばやいのに。 .今回は XPG4DL そのものの merge はちょっと断念して、 とりあえず MB_LEN_MAX の増加と、古いバイナリで安全に動くような 施策だけを放り込む予定。これが 1.5 に入れば、もー再コンパイルせずに 自由自在に libc を差し替えられるようになる。 つまり、実行ファイルと libc の組合せのバイナリ互換性の関係は、
となるわけですな。ミソは 「1.5 のバイナリを XPG4DL と組み合わせると再コンパイルなしで マルチバイト環境で使える」ってことですな。 やぱし pkgsrc で libc を用意? |
.とりあえず私が書いてるのは英語じゃなくて、日本語の各単語を英単語に 直して並べただけのものであることが itojun さんによって強力に 実感させられたのはともかく、どうも問題の本質がうまく伝わらん…。 そもそも、何か英語力うんぬんの問題じゃないレベルで伝わってないような 気がするなぁ…。何で __mb_cur_max をトリックに使えるって発想に なるんだ…。 .うー、誰か問題の本質を英語で説明してくれい…。 |
.aoi の環境を -current の 2000.08.04 00:00:00 GMT な環境に引き上げ。 .その後、XPG4DL な作業。thorpej から返事が来ないぞ…。 .…あう、既にみのうらさんが NETBSD-1-5-BASE を import してたのか。 CURRENT_20000804 を import しちまったい。 というわけで、今回 import したのは放置。 あ、nls を import したので、これを head へ merge 。幸いにも、 netbsd-1-5-base から変更されてなかったので、単純に NETBSD-1-5-BASE を 打った後 merge 。 .… nls を import したのはいいが、Pig は何語にするのが適切なんだろうか。 pig は pig language であって英語ではないから、やっぱり pig.ISO8859-1 ? |
.setlocale を rename する以外に、crt0 でフラグを扱ってもいいことに気づく。 でも、話がややこしくなるから黙ってよ(ぉ。 .今は、古い方の setlocale が呼ばれた時に、flag を立てといて single byte locale 以外を reject してるのだが、 このフラグは一度立てたら誰もクリアしないので、 逆にスタートアップ側でこのフラグを立ててやってもいいのだ *1。 しかしながら、せっかくスタートアップで扱うのならば、 フラグにするのではなくていっそ「__mb_len_max = MB_LEN_MAX;」 とか書いてしまった方が潰しが利く。 __mb_len_cur の typo ではないので注意。 すっごくわかりにくいので、充分悩んでほしいのですけど、 結論から言えば、これによって、 ちゃんと正しく crt0 を差し替えてやれば、そして、ちゃんと rune locale 部を MB_LEN_MAX free に書き換えてやれば、 libc の再コンパイル無しに実効的な MB_LEN_MAX の値を かえることができるのね。 .もちろん、MB_LEN_MAX 変えるのなら、変えるたびに crt0 の再コンパイルは 必要だし、実はこんなの大したメリットはないのだが。 それよりもなによりも、やっぱり組み合わせ問題が生じるので嫌なのよね。 これをやると、「たかだかフラグ立てただけ」の変更なのに、 古い libc と新しい crt0 の組み合わせでは動かなくなるんよね。 というのは、上の変数 __mb_len_max は libc の方で定義して、 あらかじめ(data section 的に) 1 に初期化されてないといけないので、 新しい crt0 からこの変数に touch しようとした時に古い libc と 組み合わされてると unresolved symbol でこけちゃう。 weak symbol で解決できそうな気もするけど、ちょっと信用できんし、 a.out で困りそうだし。 .…まあ、古い libc との組合せで動かなくなるのは rename でも同じか。 .いずれにしても、__mb_len_cur trick ではどうやっても解決できなくて、 (それをどこでセットするかは別にして)何らかのフラグなり状態変数が 別に必要になるのは明らかなのだけど、どうもそれがうまく伝わらない…。 どうも、この手の、ランタイムの組合せによるバイナリ互換性問題というのは、 なんとなく幽霊相手の戦いというか、 多次元幾何学の問題に対する直観的理解というか、そういうものに近くて、 第六感でピンとこないといつまでもピンとこない問題なんだよな…。 .ところで、もしかして、日本人でも私のあの setlocale stub の意図を ちゃんと理解できてなかったりするのだろうか? |
|
.あえてここで 、椎名へきる弟説を唱えるとどうなるのだろうか。 .妹的椎名へきるはやっぱり「しあわせの楽園」あたりで 終了していたのではないか、 という個人的感想。というわけで BGM は「しあわせの楽園」と「アイドル伝説」を 勝手にコンピした俺 CD-R なのであった。 .…つうか、なんでそんなもんが会社に常駐してある>俺。 やっぱりこれ聞いてると脳味噌熔けるよな。 いや、もちろん(以下略)。 .…というか 、あえて外様の私が言わせてもらうならば、 こういう時に非常に便利な言葉が全宇宙のへきるファンには 与えられていたのではなかったか。宇宙外生命体。これで全て解決。 それとも、事務所的配慮により、もはや宇宙外生命体の称号は 触れてはならない過去の負の遺産であったりするわけであろうか。 |
.fj から。 .I see.「お前らの情報は非客観的で信頼できない。もっと信頼できる情報源に 関する情報を教えてくれ」という意味のことを言いたいのですね。 日本語としての意味は理解したよ。 人としてこういうことを言う無礼な人間の神経を理解できなかったから判断を 誤ってしまったが、すまん、確かに俺の回答はマト外れだったな。 .残念ながら、私には、こういうことを言う人に与えることのできる情報というのは 何一つ持ってないのだよ。私が、彼の知りたいその「情報源」とやらを 知っていたとしてもね。 .いや、まあわからんではないんだけども、 人に質問するんなら、もうちょっと人としての礼儀を持とうね。 |
.ところで、引地さんとこの GPL 日本語訳の 3-(b)の「変更したか否かを問わず」というフレーズが、 原文の 2-(b) には 見当たらんような気がするんですが、単に私の読解力の欠如だと思うけど、 これは原文の 2 項のどこをどう解釈すると、 こういう解釈になるんでしょうか?教えて、英語のできる人。 |
.それはですねぇ、 nark さんの言う「こころのメガネ」に 通じるものがあるのです。日記在りし日の彼はよく力説していました。 いかにメガネをかけていようとも、 こころにメガネの輝きを秘めていないと、それはメガネっ娘とは 言えない、と。 M 属性のない私には、その時には全くピンと来ませんでした。 きっと、私には、残念ながら「こころのメガネ」がどういう物なのかは 永遠に分からないでしょう。 でも、後になって、この nark さんの言葉から、 私はあることに気が付いたのです。 そう、我々お兄ちゃんにとって重要なのは、その娘が いかに心に妹のかがやきを秘めているか、ということであって、 その娘が血がつながった実の妹であるとか、年下であるとか、 そんなことには大した意味はない、ということなのであります。 すなわち、その娘のこころの妹が重要なのですな。 おそらく、私が「こころのメガネ」にピンとこないのと同様に、 「こころの妹」もピンと来ない人には全く理解できないものでしょう。 そのことを私に教えてくれた nark さん、ありがとう。 もう日記を書くのをやめてしまったけど、 私は nark さんのことを一生忘れないよっ (右上に丸ヌキで nark さんの笑顔の写真 with ふちボカシ)。 .と、10 日くらい前に nark さんと寿司を食いに行ったくせに 白々しいことを書く私であった。 .しかしながら nark さん自身からの via irc なつっこみにより、 心の眼鏡説はおそらく いちせさんが オリジネータである、ということをここに注記しておく。 |
.どーも、一部私が英語を読み落した部分があるようでちょっとはずかしいが、 thopej から __setlocale_mb_len_max_32 とせよ、というお達し。なるほろ。 結局 thorpej にしても納得したのかはよくわからんが、 しつこく言ったのでなんとなく重要なのだということは伝わった模様。 |
.大丈夫である。 へきる菌感染度 5 から生還した奇跡の男(私のことね)には、 もはや通用せず。 .やはり、へきらーず☆れいでぃおうの謎トークの破壊力を経験した身としては、 「しあわせの楽園」の謎トークも非常に破壊力抜群だとは思うものの、 でも幸いにも件のコンピ CD-R にはそれは収録されていないのである。 .なお、誤解があるようだが、私の most favorite は shiena である。 そう、つんくも買ったというあの shiena だ。理由は単純である。 梶原順さんのギターが良いからだ←だめぢゃん。「天使は東から〜」の ギターソロなんぞはソラでも歌えるぞ。 .ここでもう一つ、重大な説を提示する。 すなわち、へきる猫説である。これも使い古されたネタだが。にゃ=。 |
.そうえば、昨日プロ野球ニュースを見ていたら、 どこの誰だかわからん芸人 *1が出てたのだが、 パンチョさん、ノムさんと話したことがあるんですか? などというたわけたことをほざきやがった。 もー、パンチョさんの呆れ具合といったら、 髪型が不自然になるくらいだったぞ(←ヤメナサイ)。 |
|
.技術雑誌なんてのは多くの場合所詮二次情報なので、 ちょっとした FYI 的なものや、最新情報に関するポインタを得るためだけの ものでしかありえないわけで、ましてやそれを authority と 見なそうなんてのは無謀だと思うけどなぁ。 一度でも、ちゃんと雑誌記事というものの内容を検証してみたことがあれば、 たとえば「何々を間違えたから岩谷某の記事を信頼しない」とかいう 表層的な判断で岩谷某だけを信頼しない、とかいうレベルの結論にはならず、 「岩谷某に限らずあの種の業界動向的記事は、笑い話として読むのはいいけど 内容は全く信用できん」という結論になると思うのだが。 .自分でそういうような判断ができないひとは、 何を信頼するかは別としても、結局は人に流されて生きるしか 能がなくて、せいぜい「マスコミを疑え」ってマスコミに言われて素直に疑って 満足するくらいのことしかできないわけだけども、ま、マスコミに流されて 赤信号みんなで渡れば恐くない的に生きるのも賢い生き方といえばそうですな。 .そういう生き方を選んだのならば、NetNews で質問して生の情報を得ても、 多くの場合損するだけでしょうから、NewNews なんぞに寄り道せずに、 素直に雑誌記事だけを読むことをおすすめしますぞ、わたしゃ。 |
.A の B の vol2 の焼肉の自己紹介に書いた募集に対する応募が未だに 来ないので、「もしや編集部に応募が行ってしまって、そっちで 貴重なリソースを preempt されてしまったか」 と心配していたのですが、それは杞憂だったわけですな。 |
.さて、真くんに先を越されてしまったので、 少し遠くの本屋に行って来た。今日買って来た本:
.何か最後 3 つ、流行り物の単語が並んでるような気もするが、 2 はともかくとしても、3 と 4 は普通の「流行り物に対する接し方」とは ちょいとベクトルが違うことを注記しておこう。 |
.ううむ、今は私も -i を付けてない けど、\rm -rf とする癖は付いてたりして。 初めて使った環境の設定には -i が入っていたのであった。 .うむ、8M もメモリがある環境で UNIX が動くのはあたりまえですな 。 むしろ、UNIX が動くハードをそのサイズに押し込んだのがエラいのに、 そこの技術力を誇らんとはもったいない。 |
.もう 8 時だよ…。 .うっかり __mb_cur_max のことを忘れるところだったが、 ちゃんとこれを使うように stdlib.h を書き換えて、 かつ、この変数の実体の定義を libc に書かなきゃいけない。 これを忘れると、今回の変更が半ば無意味になるところであった。 |
.Streams とかそういう変なのを除けば、 ふつーは ネットワークデバイスにはデバイスノード (≒/dev 以下のスペシャルファイル)は存在しないので、 MAKEDEV は効きませぬな。eth0 というネットワークデバイスが あるかどうかは、ifconfig eth0 で確認しますね。 生成されるタイミングは、先進の dynamic configuration (爆笑)を 搭載した Linux のことですから、デバドラの init code で register されたとき(今の Linux だと init_etherdev されたときかな) に生えますね。 .ウソ言ってるといけないので、コードを読んでみたら…。 linux/drivers/net/net_init.c とか、とっても素晴らしい 先進の dynamic configuration コードで泣きたくなって来ました…。 もっとも、BSD のネットワークコードもお世辞にもきれいとは言えないが、 Linux はコードがキレイとか汚いとかいう以前に、 デバドラフレームワークのデザインの段階で腐ってると思うぞ。 それは、ここのコードを読むだけでも明確に理解できる。 |
.うーむ、何とかして NetBSD に「Linux」の名前を付けて どっかの会社をだまくらかして商品化できないか、とか考えてみる。 Linux のユーザランドを、今の NetBSD の上に乗せるだけなら、 それこそ RedHat の派生ディストリビューションを作るような程度の 容易さ(=pkg_add とか打てれば良い)なのだけど、 それでは Linux は名乗れない。 一方、NetBSD のユーザランドを Linux カーネルに乗せるのは、 それなりのハックが要求されるし、 非常に興味深い\けど、でも、 「それなりに高機能だけど腐ってる」カーネルの上に、 「それなりにしっかりしてるけど低機能」なユーザランドを乗せるのは、 苦労の割にメリットがなくてうれしくない。Linux は、 「それなりに高機能だけど腐ってる」カーネルの上に、 「それなりに高機能だけど腐ってる」ユーザランドが乗るから 存在価値があるわけで。別に腐ってることに必然性も価値もないけど、 でも現存するものが腐っている以上しょうがない。 というか、Windows を見てもわかる通り、 腐ってるのと高機能なのとはそれなりに表裏一体だったりするのだから、 別に腐っていることを責めるつもりはないし、 腐っているという言葉にも悪意を込めてはいませんが(←大ウソ)。 .そこでである。zxLinux が Linux を名乗って許されるのならば、 やぱし、Linux 由来のコードで compat を書き直して、 Linux syscall を serve すれば Linux を名乗って良い、 という理屈になるだろうな、うん。もちろん、/netbsd を バイナリ配布する場合は GPL になっちゃいますけども。 …LKM で切り離せばいいのか。ばっちりだ! .なお、本気にしないように or 本気でやらないように :D 。\ |