日記 (2025年03月)。
2025/03/01 (土)
◎
[nono]
RV32。I と C もだいたい書けたので、
こうなってくると次は特権周りをそろそろ作らないと、
とは思うけど RISC-V は、RV32I が動いたわーいの難易度の低さに比べて、
CSR あたりからの複雑さがもはや垂直の壁なので、
もうちょっとこう手心というか…(画像略)
2025/03/02 (日)
◎
[nono]
RV32。
いい加減分岐履歴と例外履歴を実装しようとしてるけど、
m68k/m88k は命令が 2 or 4 バイトアラインで特権状態が 2状態しかなかったから、
分岐元アドレスの最下位ビットを S ビットとして使っててこれでよかったけど、
RISC-V の命令は (C 拡張がある時はだけど実質必須なので)
2バイトアラインなのに、特権状態が 3つあるのでビットが足りない…。
もっと言えば、分岐先の特権状態も設定で変更出来るため、
もう 2 ビット欲しいかもしれず、いよいよ現行の構造体では足りなくなってきた。
2025/03/03 (月)
◎
独眼竜政宗 #9。
大方40年前の時代劇なので所々分からない単語とか出てきて、
分からないだけなら今どきネットで調べればいくらでも出てくるものの、
聞き取れないのは割と詰んでる。
敵方に攻め込むにあたり事前工作を企んでいるシーンで、
政宗「(その男に) からくりの才はあるのか」
部下「如才のない男にございます」
政宗「ならば委細申し伝えよ」
というシーンがあるのだけど、
「あるのか」って聞いてるのに部下が自信満々に「ない」って答えて
トントン拍子で話が進んでいってる様子が子供心にすごい謎だった記憶が
ちょっと蘇ってきた。
あと小学生に「委細」は理解できないしね。
まあオッサンになっても「如才のない」
という日本語は今初めて知ったんだけどね…(´・ω・`)
2025/03/04 (火)
◎
[nono]
先月の新幹線の中であらかた書いたホストドライバの切り替えあたりを整理。
やることが多い…(画像略)
2025/03/05 (水)
◎
終わった〜〜!! 確定申告が終わった (CV:沖田あすか)。
今年は税務署さんの勇み足で去年のうちにお前ちょっとそこで飛んでみろよ
チャリンチャリン されてたので、戻ってくるわw
◎
[アニメとか]
カゲマス×リゼロコラボの
ベータ(CV:水瀬いのり)の私服を着たレム(CV:水瀬いのり)のイラスト。
分かってらっしゃる…。
2025/03/06 (木)
◎
ARM は、 32 ビット ISA の頃の条件付き命令、
RSB 命令、あと左シフト付き即値とかの
ニッチで痒いところに手が届きそうな感じが
アセンブラごりごり書くことを考えると面白そうだと思ってたけど、
64 ビット (aarch64) になってなんというか面白みのない優等生みたいな
ISA になったような気がしてて、
そうこうしてると転売屋に買われてしまったので、なんだかなあ…と。
で、それとは別にちょうどその頃 RISC-V が面白そうだなーと思い始めたけど、
ここへ来て
(いやバイデン政権の頃からすでにあったけどトランプになっていよいよ)
中国が本格的に RISC-V を前面に打ち出してきて、
せっかくの何かに縛られないというメリットが
(いやまあ個人で使ううちらには別にどうでもいいメリットではあるんだけど)、
逆に中国に牛耳られるというリスクになあ…。
2025/03/07 (金)
◎
いつも使うパーキング、こないだ精算機からお釣りで
新 500 円玉 (もう世間では新じゃないよな、現行といったほうがいいか) が出てきて、
よく見たら「新 500 円使えません」と「新札使えません」の張り紙もなくなってた。
今日は恐る恐る新札入れてみたけど、無事使えた。ありがてぇ。
けど、ここ以外の他のパーキングはまだどっちも使えないところもあるから、
むしろここから出てくる新 500 円が他では使えないという困ったことが起きるw
これまではパーキングで使う用の財布には旧 500 円しか出入りしなかったから
問題にならなかったんだけどね。
一方新札も、去年7月の発行後もこのためにひたすら旧札を集め続けてて、
今日現在も 30枚以上ストックがある (ピーク時 50枚くらいあった)。
けど一番よく使う駐車場が新札対応してくれたので、
これからは旧札は念のため常時数枚は財布に入れておくという運用でよくなりそう。
それにしても、
旧札の流通量が減ってきてもまだ新札対応しなかったら
(そもそも現行 500 円すら対応してないところがほとんどなので)、
最悪 100 円玉をジャラジャラ持ち歩くという中世の銀貨か何か…
みたいな生活する未来が見えてたけど、回避できそう。
(追記: 今の中央の素材が違うタイプの 500 円玉は 2021年11月から発行)
◎
[nono]
青山さんが FUZIX で ASCI のシリアルドライバか何かを書かれたらしいので、
nono の XP(HD647180) にも ASCI を実装しなければ (イベントドリブン)。
2025/03/09 (日)
◎
[nono]
ASCI、動いたっぽい気がするな。
ホスト側にシリアルつなげるところはもう出来てるし、
XP のデバイスはだいたい素直でシンプルなので書きやすいわね。
2025/03/10 (月)
◎
行きしに2件事故を見た。
1件は、バイパスで対向の路側帯をお兄ちゃんが携帯持って走ってて、
直後に路肩に追突事故した2台が止まってた。
携帯通じなくてトンネル入り口にある緊急用の電話まで走ってたんだろうか。
瀬野か海田付近だけど山がちとはいえ今時そんなことある? ソフトバンクなの?
もう1件は踏切待ちの2台目に並んだところ、
すでに踏切を抜けたというかぎりぎり遮断棒を超えたくらいの車がバイクがぶつかってて、ようやくバイクを起こしてるところだった。
対向の踏切待ちの車がいなくなってから対向側にはみ出てよけて通るくらいには結構破片が散らばってたけど、
超低速でしか走れないと思うここで何がどうしてそうなった。
にしても、警察がまだ来てない事故現場に遭遇するだけでも年1あるかないかだけど。
◎
[アニメとか]
カゲマス、七陰列伝 36章だったかで久しぶりに聖女様出てきて
様子が怪しくなってきたので、
どうしてこちら側に来たのかの話がいよいよ見れるのかと期待したけど
あれっきりだったな。
一方、37章でアニメ2期で見た聖域っぽいところについに来た。
2025/03/11 (火)
◎
[アニメとか]
カゲマス。初回スタミナ0キャンペーンだからってどんどん進めてたら
対象区間を踏破してしまった。
というより対象区間って設定されてたんだ…。
せっかくいいところだったのにしばらく足踏みの予感。
2025/03/12 (水)
2025/03/13 (木)
◎
[nono]
相変わらず wxWidgets のウィンドウのリサイズが理解できない。
2025/03/14 (金)
◎
[アサルトリリィ]
こころ様役の清水凜さんとそのシュベ役の湯田さんが同い年
(というか生まれ年は違うから同学年か) …だと…。
2025/03/17 (月)
◎
[nono]
どうやってもウィンドウサイズがおかしな挙動するというか、
起動するたびに動作が変わるということに気付いたので、
jwm を twm にしてみたら不思議な挙動が全部なくなった。
アッハイ…だけど、だからといって twm で暮らすわけにもいかんしなあ。
2025/03/18 (火)
◎
[nono]
jwm はウィンドウを極力空いてそうなところを探して開くアルゴリズムで、
そのため空き状況が同じところに同じサイズのウィンドウを表示すると
必ず同じ場所に表示される。
ところで nono 起動時にサブウィンドウを開いていると
時々サブウィンドウの大きさが化けるっていう謎の現象に遭遇してるけど、
これがどうもメインウィンドウとサブウィンドウを表示した順番によって、
サブウィンドウの大きさがおかしくなる方とならない方というのが
決定論的になっているっぽい。
2025/03/21 (金)
◎
wxWidgets のウィンドウサイズについて。
ずっとこんがらがってた、
子コントロールとウィンドウサイズの関係はたぶんこう。
- (wxWindow::)Fit() は、子コントロールを含む現在の諸々の状況から
自分のウィンドウサイズ (コントロールサイズ) を決定し
SetSize() を呼ぶためのもの。
つまり自発的にサイズを変えたい場合に呼ぶもの。
- (wxWindow::)Layout() は、現在のウィンドウサイズ (コントロールサイズ)
に合わせて子コントロールを配置しなおすもの。
つまりサイズが変わった時に受動的に呼ばれるもの。
これを踏まえて、
コントロールの場合は、
- サイズを自発的に変えたい場合は `SetSize()` を呼ぶ。
- サイズが変わると EVT_SIZE が飛んでくるのでこれを OnSize() で処理する。
- OnSize() で親の OnSize() を呼んではいけない。(自戒)
- OnSize() はおそらくほとんどの場合 event.Skip() を必ず書くこと(自戒)。
これで子から親方向に順番に処理される。
コントロールが子コントロールを持たない場合は 1-4 に加えて、
- SetAutoLayout() はしない。Layout() も使わない。
一方、コントロールが子コントロールを持つ場合は 1-4 に加えて、
- SetAutoLayout() しておく。
- これによりサイズ変更が起きると
基底の EVT_SIZE ハンドラ wxWindow::InternalOnSize() によって
Layout() が呼ばれる。
- この Layout() で子コントロールを再配置すること。
- 原則的にはたぶん、
自分のリサイズ処理は OnSize()、
子コントロールの再配置は Layout() なのかも知れないが、
さすがに手間なので Layout() に統一してもいいかも知れない
(これは独自運用ルール)。
- Layout() を持ってるカスタムコントロールを継承して自分も子コントロールを持つ時は親の
Layout() を呼ぶか子側でなんとかするかだけど、
たぶんそんなケースはない。
ウィンドウで Sizer を使わない場合、
- SetAutoLayout() しておく。
- 自発的にウィンドウサイズを変えたい場合は
SetSize() あるいは SetClientSize() を呼ぶ。
実際には Fit() に詰め込んでおいて Fit() を呼ぶ、となることが多いかも知れない。
- サイズが変わると
wxFrame::OnSize() によって Layout() が呼ばれるので、
Layout() で子コントロールを再配置すること。
- EVT_SIZE ハンドラを使う場合はその OnSize() 中で
event.Skip() を忘れてしまうとイベントチェインの先から呼ばれるはずだった
Layout() が呼ばれないことになるので、忘れないように注意。
ウィンドウで Sizer を使う場合、
- たぶん特段何もしなくていいはず。
- こちらでも OnSize() をもし使うなら event.Skip() を忘れないよう注意。
こんな感じかな。一部は自分用。
あと、ライブラリ使うのにドキュメントに書いてないことをソースコードから
把握するするのは、
それは仕様じゃなくてただの現物合わせでは…という気がする一方、
そもそも C++ なので親クラスの動作が正確に分からないと継承しても何も出来んわい、
という気もするので、メモ (wxWidgets 3.2.6)。
すべてのコントロールの基底の wxWindow の EVT_SIZE ハンドラはこうなっている。
一般的には OnSize() という名前のことが多いが、
ここは InternalOnSize()。
void
wxWindow::InternalOnSize(wxSizeEvent& event) {
if (GetAutoLayout()) {
Layout();
}
event.Skip();
}
ウィンドウの基底 wxTopLevelWindow の EVT_SIZE ハンドラはこうなっている。
void
wxTopLevelWindow::OnSize(wxSizeEvent& event) {
Layout();
}
event.Skip() についても、
「適切に呼んだり呼ばなかったりしてください」っていうぼんやりした説明しかなくて、
じゃあどうすればいいんですか (バンバン) ってなってたけど、
イベントと言っても wxCommandEvent とかだと大抵親側に伝搬する必要のないことが多いから「呼ばなくていいケースが多い」けど、
wxSizeEvent に関していえばおそらく「特段の事情がない限り呼ぶべき」みたい。
やっと意味が分かったわ。
2025/03/22 (土)
◎
[青春ブタ野郎]
朝10時前から Anime Japan の青ブタステージ(配信)。
夏から始まる大学生編の ED(?) の PV が、
森の中で黒髪ロングで顔が見えない白いワンピースだったので、
完全にゆきあつwww
2025/03/23 (日)
◎
[nono]
今の今まで気付かなかったけど、LUNA-88K のキーボード、
LUNA-I と全然違うやん…。えぇ…。
◎
[nono]
ということで、うっかりサブウィンドウで回り道をしてしまったけど、
本題だった XP の ASCI で文字の送受信だけするテストプログラムをやっと
LUNA-88K 実機で動作確認。
Ch0 では動いたっぽい。
Ch1 だと動かないけど、これは Ch0 にだけある信号線か何かが効いてるんだろうか。
nono は文字を送ってるだけなので両チャンネルとも動くんだが。
シリアル何も分からん…。
2025/03/25 (火)
◎
[nono]
一段落ついたので、ようやく、なんか時々 OpenBSD が panic する件を見てみるため、
pkgsrc のビルド環境を整備。
ドキュメント読みながら、一瞬で終わるのかと思って気軽に
./bootstrap
実行したらガチでいろいろ作り始めた。
まあそりゃそうか…。別 OS の上に NetBSD 環境こしらえるような話だもんな…。
2025/03/26 (水)
◎
[PCとか]
朝、昨日仕掛けたビルドどうなったかなと思ってモニタつけたら
なんか画面がとまってるっぽい。
ps ax すると数分後に Input/output error が出る。
なんだこれ…。
◎
[PCとか]
X を落とせてコンソールが見えたけど、
システム側のドライブが死んだ…だと…。
wd0a: device timeout reading fsbn 1023584 of 1023584-1023591 (wd0 bn 22707640; cn 225274 tn 7 sn 7), xfer 378, retry 4
wd0b: device timeout reading …
wd0a: device timeout writing …
:
◎
[PCとか]
[NetBSDとか]
昼から町の
デオデオで SSD を買ってきて
クリーンインストール。
しかし途中で変な選択肢を踏んだのか、インストール出来ても起動しない…。
そういえば sysinst でブートローダ何入れるかの選択画面が出なかったような気はしてたけど、
パーティションのブートセクタも /boot もなかったので、そりゃ上がらんわな。
ということで手作業で直してとりあえず上がるようになったけど、なんだこれ…。
◎
[PCとか]
夜。/etc はバックアップ取ってあるのでだいたい復旧したけど、
バックアップ取ってなかった /usr/local/src の中のソフトが復旧出来るだろうか…。
◎
[PCとか]
それどころか /usr/pkg/etc のバックアップも何故か取ってなくて、
2015年 (10年前!) のアーカイブを横目になんとか復旧。
これでもなかったら死んでた…。
◎
[PCとか]
続いて pkgsrc のバイナリもさくっと入れて復旧したと思ったら、
前回と UID/GID が違っていて (pkg_add する順序が同じではないので)、
httpd で自分のホームにあるスクリプトが動かなくなってた…。
これも 10年前の master.passwd と group から復旧。
その後に増えた分は…そうねえ…。
2025/03/27 (木)
◎
[PCとか]
wanderlust も復旧した(;´Д`)。
もともと apel, flim, semi, wl を /usr/local/src に展開したまま
pkgsrc 入れ替えるたびにここから毎回 make install してたんだけど、
その /usr/local/src が㌧だので、古いの探してきた。
幸い wl, apel, flim, semi が全部 wanderlust の git に入ってるので、
これを持ってくるだけ…ならよかったんだけど、
最新 (HEAD ではなく) アーカイブの flim-1.14.9 はなんかエラーになったので、
これを20年前と同じ 1.14.8 に落とす。
そうすると wl も flim-1.14.9 依存が起きる一つ前の 2.15.5 まで落とし…
という後ろ向きな作業をしてた。これであと20年は戦える?(?)
2025/03/28 (金)
◎
今日はおうちサーバ復旧作業のため休みじゃグフフ orz。
◎
[PCとか]
こんなこともあろうかと静態保存してある Pentium (世代的には Core のどこか) の
NetBSD7 のマシンを持ち出してきて、
飛んだシステムディスクをつないで読んでみる。
あのエラーだともうさっぱり読めないだろうと思ってたけど、
意外と何の支障もなく読めた。
これなら電源入れ直せば普通に上がってきたかも知れんレベルだし、
S.M.A.R.T. もそんなにおかしくはなさげ。
あれが一過性だったのかなあ。
◎
[PCとか]
ともかく、システムディスクが読めたおかげで、
バックアップも取ってなくておまけにネットにはもうなくなってる POPFile
を無事救出。あぶねえ…。
◎
[PCとか]
ただ、それとは別にデータディスクにしてる 2TB の HDD のほうは S.M.A.R.T.
が結構悪そうだったので、ついに 4TB HDD (WD BLUE) を買ってきた。
WD BLUE 4TB 欲しいなーと思って近くのパソコン工房まで車走らせたら
現物置いてあるなんて田舎ではもう奇跡。
で夕方からネットワーク越しに rsync 始めたけど、これ一晩じゃ終わらないな?
◎
NHK の3か月でマスターする江戸時代、
内容はともかく、番組の作りがつまんねえって感じだったな。
あと、毎回取り上げるテーマが、なんとかの改革とかなんとかの飢饉とか
今日は何代将軍の頃の…みたいにあるけど、一切年表を出さないのは何なの。
◎
[アニメとか]
Unnamed Memory。CV:種崎敦美さんに釣られて惰性で2期まで見ちまったけど、
よく分からなかったな…。
2025/03/29 (土)
◎
[PCとか]
データディスクのバックアップの rsync
をちょっといろいろあって何度か中断しては再実行してるけど、
その度に、更新されてないはずの 15 年くらい前のクソデカファイルを毎回
コピーし直そうとして毎回エラー出てるの is 何…。
と思ったらコンソールに wd1: (uncorrectable data error) とか盛大に出てた…。
なくてもいいはずだけど、本当に念のため…で取ってたバックアップなので、
もう捨てよう。
あといくつか、もう使わないバックアップファイルでも読み取りエラーが出たので、
捨て捨て。
◎
[PCとか]
本来なら余裕があればリモートで rsync 2回やって (1回目が半日以上かかるので)、
最後にローカルにつなぎ替えてシングルユーザで rsync --delete
して完全に同期するところだけど、
今回は rsync の1回目すら満足に終わらなかったので、
ディレクトリを個別に眺めて手作業で必要なところだけ rsync して、
サービスをほとんど落としてからリモートのまま rsync --delete で出来たことにする。
これでも大丈夫なはず。
◎
[PCとか]
というわけで、メイン PC のデータディスクが 2TB (MBR) から 4TB (GPT) に。
お亡くなりになったのは WD BLUE (74493時間 = 8.5年)。
いい HDD だったので新しいのも WD BLUE にした。
バックアップディスクのほうは WD GREEN (90055時間 = 10.3年)なので、
次はぼちぼちこいつの様子を見ながらかな。
◎
[nono]
ウィンドウサイズの件 (まだやってる…)、
一瞬小さいウィンドウが出てその直後にリサイズされるような振る舞いをしてるし
実際ログ出してもそうなってる。
でも小さいのが一瞬出たかどうかはまったく見えないので、
実際のところどうなんやろうか、という疑念が拭えずにいたけど、
今 QEMU 上の sparc でやってみたら本当に小さいのが表示されてから大きくなった。
遅マシンで助かるのはこれなんだよなー。
2025/03/30 (日)
◎
[アサルトリリィ]
アサルトリリィプロジェクト5周年記念ライブ (@ 市川市文化会館)、昼夜配信。
プロジェクト5周年はアニメというか一柳隊系のプロジェクトが5周年かな。
アサルト自体はもうすぐ10周年だった気がする。
-
これまでのライブはたぶん全部ラスバレが主催(?)だったけど、
今回はプロジェクトが主催(?)なのでだと思うけど開幕から
RAS の OP がかかって爆上がりする。
- りみさんが金髪なところに髪飾りも付けてるので、完全にルイセ。
- ぴ「千葉県のヒュージたち〜」w
- ふるーつでも真顔の夏吉さん。
- 告知コーナー。去年はウンか月単位で遅れたので、
今年は 3/31 からエイプリルフールイベント開始しますっていう告知。
斬新すぎるwww
◎
[nono]
nono 1.4.0 リリース。
HD647180 ASCI の実装と、
ホストドライバを実行時に切り替えられるようにしたのと、
あとはウィンドウの調整たくさんなど。
本当は金曜日くらいにリリースするつもりだった…。
2025/03/31 (月)
◎
[NetBSDとか]
そうこうしてると sys/arch/m68k/m68k に nat が LC040 対応とか言って
あほなパッチを commit したので、お返事を書くなど。
カーネルに nop 足して直ったって喜んでるけど、
その nop 一切関係ないんだよなあ…。
◎
独眼竜政宗 #13。
あれ、須田伯耆殉死したの…?
後半で出てくる須田伯耆は誰? 2代目?
◎
2025年1〜3月期に見てた番組。
- サイエンスZERO
- フロンティア
- ザ・バックヤード 知の迷宮の裏側探訪
- 鉄腕 DASH
- 薬屋のひとりごと(2期)
2025年1〜3月期に消化したもの。
- アニメ「わたしの幸せな結婚」(2期、まだ2話残ってるけど)
- アニメ「Unnamed Memory」(2期)
- アニメ「ギルドの受付嬢ですが、残業は嫌なのでボスをソロ討伐しようと思います」
悪役令嬢転生おじさんは完走扱い。
井崎のホームページへ戻る
isaki@NetBSD.org