昔の最近の出来事(2025.03)

2025/03/31

テレワーク。早めに終了。

買ったままになっていた「よつばと!(16)」を読了。 まさかの大阪先生?! 「あずまんが大王」からの地続き展開(か否かは定かではありませんが)とは。

2025/03/30

昼前起床。

掃除したり。

「トリリオンゲーム」のアニメを録画で見ていてたまたま気づいたのですが、エンディングクレジットの 中のCGデザイナーに「くつぎけんいち」という名前が並んでいました。 あの くちぎけんいち?(二次元倶楽部)と思ったのですが どうやらそうらしい。最近のアニメ映画作品に モデリングアーティストとして参加していたりするみたい。 ほぅ....。

CapsLockキー。一般的には英文字の小文字を大文字に変換して入力するような機能をトグル切り替えするキー という説明になっていると思いますが、Windowsでは IMEのON/OFFトグル(「半角/全角」キーと同じ)に なっていて、本来のCapsLock機能は「SHIFTキー+CapsLockキー」になっているよなぁ?と思ったりも。 CapsLock機能を本来の意味で使っている人って居るのだろうか? また、US配列でもCapsLockキーはIMEのON/OFFに使えると思うのですが、あまりそういう話を聞いたことは ありません(JIS配列の「半角/全角」キーの位置に近しい「Alt + `」とか「Ctrl + Space」とかで代用 っていう事を長々と書いた記事しか見当たらない)。

CygwinビルドのEmacs masterブランチ(31系)で拡大表示したときにカラー絵文字表示がバグる件。 もしかしてWindows10だけの症状だったりする?と思い、Windows11機でも試してみたのですが やっぱりバグるようです。

Emacs31.0.50絵文字表示バグ on Windows11

Windows10だけの現象であれば、Emacs31のリリース時期的に まぁ許容できるかと思ったのですが、 Windows11でもバグるのであればダメだな。

2025/03/29

昼過ぎ起床。寝すぎ。

Emacsの git masterブランチ(31系)のログをみていたら src/w32dwrite.c の更新が入っていたようだったので、 以前見つけた表示を拡大していくと描画がバグる件が どうなるのか?を確認してみたり。結果から言うと状況変わらず。
という訳で何が起こっているのかを少し調べてみたり。先に言うと 今のところ原因は特定できていません。 API実行のエラーチェックは入っているようだったので、src/config.hで EMACSDEBUGを有効にして みたのですが、特にエラーは発生していない模様。見かけ上、APIの中で描画が一部行なわれずに 正常終了している感じになっているようです。うーむ?🤔

「メダリスト」のアニメ。めっちゃ面白かった。いつになるかは まだ分かりませんが 2期も楽しみです。

2025/03/28

テレワーク。気持ち早めに終了。

調べ事をして終了。

2025/03/27

テレワーク。早めに終了。

何気に Emacsで describe-bindings でキーバインドの一覧を眺めていたら C-x C-d に list-directory という コマンドが割当たっているのを知ったり。単純に 指定したディレクトリを ls でバッファに 表示するコマンドのようです。さておき、Windowsで Cygwinを普段使いしていると気にした事が無かったのですが、 ファイルの一覧を元にしてテキスト編集するような場面 (例えばファイル名とファイルの簡単な説明の一覧みたいなのを作るような場合)で、 ファイルの一覧ってどうやって取得するだろうな?と思ったり。 単純には コマンドプロンプトや PowerShellを使う事になるかとは思いますが、 そうならない人は居るのだろうか?とは思ったりも。因みに、Edgeで Copilotに 「Windowsで、あるフォルダのファイルの一覧をテキストファイルに保存するにはどういうやり方がありますか?」 と聞いたらコマンドプロンプトやPowerShell、サードパーティ製のツールを使用する方法が回答されました。 やはり原始的な方法が最強なのかも知れません。
そういやファイルエクスプローラでファイルを選択&コピー(Ctrl-c)したのち、 テキストエディタ上で ペースト(Ctrl-v)したら選択したファイル名の一覧が貼り付けられる.... とはなりませんでした。まぁ、できるのならば Copilotで回答されるレベルだとは思いますが。 ファイルエクスプローラでファイルをリネームする際にテキスト文字列としてコピーする方法はあります。 数個であればそれで一覧を作ってしまう人は居るかも知れない。それはそれで技かも知れませんが。

2025/03/26

テレワーク。早めに終了。

Web巡回して終了。

2025/03/25

テレワーク。早めに終了。

GIMPの 3.0.2が 3月23日付けでリリースされているのに気づいたり (GIMP 3.0.2 Released)。 3.0から一週間しか経っていませんが、メジャーアップデートの一発目なので仕方ないかも知れません。 入れてみたのですが、インストーラーや起動時のスプラッシュ画面は3.0.0と表示されてますが3.0.2のようです。 なんか以前にも同じ事があったと思いますが、 画像にバージョン番号を入れるのはやめた方が良いのでは?とは思ったりも。
あと、フィルター適用をキャンセルしたとき ナビゲーションウインドウの描画がキャンセル前のまま (プリビューでフィルター適用された画像のまま)になっているような。

そういや本日でへっぽこページは25周年を迎えました。まさか四半世紀も続けるとは思っていなかったのですが、 毎度見てくださっている方々に感謝いたします。ふにゃふにゃしたページですがこれからもよろしくお願いいたします🙂

2025/03/24

テレワーク。早めに終了。

調べ事をして終了。

2025/03/23

昼前起床。

掃除したり洗濯したり。

録画消化したりぐうたら過ごして終了。

そういえば「葬送のフリーレン」のアニメ二期が放送されるというCMが流れていたのですが、 2026年1月の話って 随分先の話だよなぁ?と思ったりも。

2025/03/22

昼前起床。

image-diredで落ちる件。そういやCygwin本体のmemmove()が原因なので Emacs-29.4でも落ちるのですが、 emacs-w32の方は落ちるのを確認していたのですが、Cygwinパッケージの emacs-gtkの方ではどうなんだっけ? と思って確認してみたり。サムネイル表示の元になるファイルが生成される前に大量のログ出力が行なわれ、 且つmessage-log-maxの値に達した場合に発現するので emacs-gtkでも再現するハズ。 2回ほど試してみたところ 再現し易さに違いはありましたが2回とも再現しました。 想定通りですが 大丈夫だったものが突然ダメになるのはやっぱり辛い。

重い腰を上げて、収納にしまってあった未使用PCを取り出したり。あとディスプレイも。 今回 X68kは対象外で。箱も捨てようと考えたのですが、意外と大きい&発泡スチロールの梱包材も あって小さくならない為、中身だけ出して箱は元の位置に戻したり😓。 本体を取り出しただけで今日のところは精一杯。

2025/03/21

テレワーク。早めに終了。

image-diredで落ちる件。普段使いのWindows10機でも 先日の memmove()もどきコードを使うパッチをあてて Cygwin 3.6.0で効果確認を行なってみたり。回避はできていそう。しばらくテストしてみよう。

2025/03/20

AM中に起床。

image-diredで落ちる件。実際にはメッセージログの加工の問題なのですが、 ずっこけ場所の絞り込みができていませんでした。 仕方ないので、Windows11機で Cygwin 3.6.0 を使ってデバッグprintfを仕込みながら場所を 特定してみました。その結果、関数del_range_both()→del_range_2()→gap_left() の中で 呼び出す memmove()の中で死ぬという感じになっていそうな事が判りました。 memmove()は Cygwin呼び出しになるので、この中はトレースできないという感じになっているようです。
「memmove(to,from,size)」の実行前にtoとfromの指す領域をひと舐めしてサイズやポインタが変じゃないか? を確認してみたのですがズッコケる事はありませんでした。しかしその領域の memmove()でダメになっている感じ。 そこで、memmove()っぽいものを手書きしてみたところ ズッコケなくなりました。 地雷を避けているので想定通りなのですが、memmove()を取っ掛かりにしてCygwin側も調べてみる感じか。

memmove()自体は Emacs本体ソースコードでも各所で使用されているようですが、 なぜ insdel.c:gap_left() 内の memmove() だけで引っかかるのか謎。確かに image-diredの動き上、 大量にログを出力するので地雷を踏む確率が他よりも高くなるのかも知れませんが、 それにしてもピンポイント過ぎないか?とは思ったりも。

Cygwinの方は見当が付かず。gitリポジトリを cloneしてひとまず「git diff cygwin-3.5.4 cygwin-3.5.7」 とかで差分を眺めてみたものの、関係しそうに思えるところは判らず。 変更点に土地勘も心当たりも無いので全く当たりが付きません🥺。

2025/03/19

テレワーク。早めに終了。

image-diredで落ちる件。Cygwin 3.6.0が出てたので、 以前のメモの通り 3.5.4で大丈夫だったのが 3.6.0でどうなるか確認してみたり。 ワークアラウンドが効かなかった Windows11 で確認してみたのですが、3.6.0でもやっぱり落ちます。むぅ。 一応「message-log-max を t にする」は回避策として有効なので、どうしてもダメな場合はこれで対応するしかないか....

2025/03/18

テレワーク。早めに終了。

現在日本テレビで放送されている「金曜ロードショー」の前身は「水曜ロードショー」だったのですが、 TBSでも同タイトルの映画放送番組があったのを知りました (「水曜ロードショー (日本テレビ)」のWikipediaと 「水曜ロードショー (TBS)」のWikipedia)。 TBSの方は1991年以前に地方局で放送されてなかったら記憶に無いのですが、 1991年以降に関東圏に移り住んでからも記憶に無いです😓。

全然気づいていなかったのですが、3月16日付けで GIMP 3.0がリリースされていた模様 (アナウンス「GIMP 3.0 Released」)。 2021年末とかに出るのかな?とか思った事もありましたが(以前の日記)、 大分時間がかかった感じです。ちょろっと使ってみたところでは特に問題無さげ。

2025/03/17

テレワーク。早めに終了。

Web巡回して終了。

2025/03/16

昼過ぎ起床。寝すぎ。

掃除したり。

そういえばTVK(テレビ神奈川)で「キャッツ・アイ」のアニメの再放送が行なわれています。 それはさておき Wikipedia を見ていて、週刊少年ジャンプでの連載って1981年40号-1984年44号の3年間なんだっけ? と思ったりも。ただ、ジャンプコミックスは全18巻なので、4巻/年で逆算すれば4年半くらいの連載では? と思ったのですが、何故か12巻~18巻が毎月発行されていたらしい。 連載期間と巻数(≒ページ数)が合っていないように思います。不思議。

2025/03/15

AM中に起床。

「メダリスト」のアニメ。スケートのことはさっぱりわかりませんが、 めっちゃ面白くて観てしまいます。何気に登場キャラクターが多いように思ったりも。 ミケ太郎を久しぶりに見た(ストーリー上の時間だと1年ぶりのような気が)。

2025/03/14

テレワーク。早めに終了。

今まで全く遭遇することのなかった Emacsのキーバインド。 「C-x r なんとか」で矩形関連の編集がまとまっているというのを知りました。 その中の「C-x r N」に「rectangle-number-lines」というのが割当たっていて、 例えば行頭を矩形で複数行選択したのちに実行すると、行数分の行番号を行頭に振る事ができるようです。 ほぅ....。飾り無しの最小限の行番号付与なのも良いです。 これまでは、例えば、行番号を振りたい行を選択しておいて「C-u M-|」で 外部コマンド「cat -n」を実行する方法とかを使っていました。でも、「cat -n」は6桁固定(%6d相当)だったり、 行番号の後ろに TAB文字を使用されたりするので、大抵それらを少し加工する必要があるのが イマイチだなぁと思っていたところでした。 ついでに「C-x r t」に「string-rectangle」が割当たっていたり、「C-x r c」で矩形選択 領域を空白文字で上書きしたりに割当たっているのを知りました。 頻繁に使わないけど同じような事をやろうとするとちょっと面倒で、 何かやりよう無いか?と調べる時間で面倒だけどやっちゃえば終わるくらいの、 絶妙なものが割当たっている感があるように思ったりも。

そういや検索すれば出てくるのだろうか?と思って検索してみるも、 そのものズバリ「rectangle-number-lines」に到達するものは出てきませんでした。 それはさておき、最近のGoogle検索結果は最初の方に「AIによる概要」というのが出てきて 「Emacsで行番号を振るには、特定のキーの組み合わせを使用します」と表示されていたので どれどれ?と思って見てみたのですが、ちょっと何言ってるか分からない感じでした😓

emacs 行番号を振る の AIの回答

因みに、Emacs 29.4の Infoには 「13 Killing and Moving Text」に 「13.5 Rectangles」というセクションがあり、そこに rectangle-number-lines のバインドについての説明があります。 思いますに、Emacsの Infoを AI検索(文章の意味検索)出来ればそれで十分なのではなかろうか?とは思ったりも。

2025/03/13

テレワーク。早めに終了。

Web巡回して終了。

2025/03/12

テレワーク。気持ち早めに終了。

image-diredで落ちる件。そういえば Windows11では Cygwin を 3.5.4にロールバックしての確認を していなかったのですが、WindowsUpdateのついでに確認してみたり。3.5.7の時のようにすぐに落ちたりしなかった ので 大丈夫そうかと思ったのですが、一度 サイレント落ちしました🥺。まだ何度も試していませんが、 やっぱり「message-log-max を t にする」を、当面の回避策とせざるを得ないかもしれません。

そういやまだ Cygwinパッケージには Emacs-30.1は来てないな。

2025/03/11

テレワーク。早めに終了。

全然関係無い流れで 「回転速度のWikipedia」 の存在を知ったのですが、最初の方に 「回転速度は、回転数ともいい、単位時間あたりに物体が回転する速さ(回数)のことである。」 と記されていました。回転数を回転速度の意味で使う事ってあるか?とは思ったりも。

2025/03/10

テレワーク。早めに終了。

Emacsで横に長いテキストファイルを読み込んで行番号表示(M-x display-line-numbers-mode)すると やけにCPUを食ってるなぁ?と思ったりも。横長ではないバッファにフォーカスを移すとCPU消費は されないみたい。特に操作していない時にもCPUを食っているようですが、バッファにフォーカスが無い 場合と同じではないもよう。

2025/03/09

昼頃起床。

掃除したり洗濯したり。

ちょろり買い物にお出かけ。どうしても「アオイホノオ(31)」を捕獲できず。 近所の書店では既刊分が置かれなくなっている為 死に筋判定されてっぽい。うーむ。

D言語のコンパイラ(DMD)のリリースが去年の8月から 2.110.0 preview のまま止まっていましたが (以前のメモ)、3月7日にリリースされた模様 (Change Log: 2.110.0)。

2025/03/08

AM中に起床。

そういえば、新調を計画しているデスクトップPCのスペックを調べていて、 映像出力可能なUSB-typeCが付いてない場合があるなぁ? と思ったり。現在保有しているノートPCには映像出力可能なUSB-typeCが付いているので、 液晶タブレットを繋ぐのはケーブル1本なのですが(電源供給は別)、 これが無いと、USB入力ポートとしてUSB-typeCを使うものの映像はHDMI供給が必要になりケーブルが2本になります。 気を付けなくてはならなさそうなのは、単にDP出力をUSB-typeC変換するアダプターの存在。 映像は出力できるけどUSB入力ポートとしては機能しないので、これだとタブレットとして機能できない事になります。

2025/03/07

テレワーク。気持ち早めに終了。

調べ事をして終了。

2025/03/06

テレワーク。早めに終了。

Web巡回して終了。

2025/03/05

テレワーク。早めに終了。

そういや新PCのリプレースの話もあるのですが、そろそろ使わなくなったPCを処分しないと 収納スペースも溢れてるなぁ?と思ったり。PCは引っ越しなどの移動時の梱包の事を考えて 箱を取ってあるのですが、当面引っ越しの予定も無いし 処分すれば しばらくスペースの事は考えなくて済みます。 という訳で処分方法を調べてみたり。 なんかメーカーページを見ても 結局 PC3Rのページ に誘導されるな...そういうものなのか?🤔

2025/03/04

テレワーク。早めに終了。

image-diredで落ちる件。今の所 再現操作を行なっても Cygwin 3.5.4では image-diredで落ちてません。

2025/03/03

テレワーク。早めに終了。

image-diredで落ちる件。Cygwinを 3.5.7から3.5.4にロールバックして再現を試してみたところ、 落ちる事は無さそうです。という訳で一度は疑いを解いたのですが、 Cygwinが原因だという事でほぼ確定。 元に戻すにはまた色々落とす必要があるので、しばらく Cygwin 3.5.4 で様子見してみる事にしよう。

2025/03/02

AM中に起床。

掃除したり洗濯したり。

image-diredが落ちる件。 関数message_dolog()の中で message-log-max の値に応じて溢れた分を del_range_both() という関数で削除しているようですが、この関数を実行すると落ちる事があるという感じ。 message-log-maxの値が tだと、削除処理自体が行なわれないという事になるようです。 また、値を大きくする事でも範囲内であれば削除処理が行なわれないので、結果として落ちにくくなる ように感じるのですが、上限に達すると削除処理が実行され始めるので、いずれダメになると考えられます。 del_range_both()の実行をコメントアウトすると、結果的に message-log-max に t を指定したのと 同じ動きになります。
関数del_range_both()の実行がトリガになっているのは間違い無さそうなのですが、 関数del_range_both()自体は10年以上コードに変更は無いようです。 使い方の問題なのか、それともずっとバグっているけど今までバレていないのか、よくわからず。

image-diredが落ちる件って、LinuxでビルドしたEmacsでも再現しない?と思いビルドしてみたり。 VirtualBoxのFedoraには developパッケージが色々入っていなかったのでconfigureで突っかかりまくりましたが、 ひとまずビルドできたので、再現を試してみたのですが再現せず。 Cygwinに原因のある可能性はまだ残っているかも知れないな....

当面の回避策は message-log-maxを t にするしか無さそう。 ただし、今の所 image-diredのサムネイル生成時にしか発現しないので、それ以外のタイミングで 適当に message-log-max に値を設定すれば そのサイズでバッファは縮小されます。 image-diredを実行する時に t にして、サムネイル作成中かどうかを image-dired-queue を調べて nilになったら元のサイズに戻すといった対応も考えられるかも知れません。

今のところCygwinの3.6.0はまだいつリリースされるか判りませんが、アップデート後にどうなるか様子を見てみる事にしよう。 忘れていましたが、Emacs-29.4でも落ちるようになっているので、Cygwinが原因の可能性はまだ残っています。 3.5.4にロールバックして確認するってのもあるかとは思いますが、全部落とす必要があったりして 非常に面倒なのと、それが判ったところで やっぱりCygwinの修正に期待するしか無いというのもあります...

2025/03/01

AM中に起床。

image-diredが落ちる件。 message-log-maxを 50000に増やしても(落ちにくくはなりましたが)まだダメだったので、 50000を tにして無限にしてみたところ、今度は落ちなくなったり。 また、nilにしてロギングを抑止しても大丈夫そう。 何が起こっているかとかはともかく、反応するパラメータが見つかったので、 何かしら直せないものかとは思ったりも。
という訳で Cygwinの問題では無かったです。毎度疑ってすみません。

豆腐描画の画像オブジェクトはすぐに削除されて新規にオブジェクトが割り当て直されるようです。 しかしファイルが存在しないとその旨をログ書き込みして再び豆腐描画を行ないます。 ファイルが存在しない状態が続くと 結果としてオブジェクトの解放と再割り当てが高頻度で 繰り返される事となり、大量のログ出力が行なわれる感じになっているようです。 また、豆腐描画を大量に行なっていると、ELISPの実行が極端に遅くなるようで、 豆腐を解決する画像ファイル生成も遅くなります。 「豆腐が多いと画像生成が遅くなる」→「画像生成が遅いと豆腐の解決も遅くなる」 →「豆腐の解決が遅くなると大量に豆腐の描画を行なわなくてはならない」→最初に戻る.... といった感じのスローダウンが生じているようです。 今回の落ちる件は 大量のログ処理がうまくできていない事に端を発しているので 直すところは別なのですが、 そもそも前述のスローダウン状態に陥ると非同期実行にもかかわらずフォアグラウンドの 処理に影響が出て 操作自体がもっさりするのがイマイチです。 なんとかできないものかと、ちょろっとだけ 画像オブジェクトの解放を遅らせてみたりしてみた のですが、劇的な改善にはならず。

Windows11のCygwin64でEmacs-30.1をビルドしてちょろっと動かしてみたのですが、 何故かorg-mode関係で思惑と違う動きになったり。


原因判明。読み込むorg-modeのパスが適切ではありませんでした😓。 普段使いのorg-modeは git masterを使っているのですが、Emacsの開発版とかのビルドでは ./lisp/org を読み込んでいたりします。Windows11のPCでは開発版ビルド用の設定が チョンボってました。修行が足りません。

そういやCygwinパッケージ版の Emacs-30.1は まだ来ていないな。

ロギングでSegfaultになる原因を調べてみる事に。 先日、関数vadd_to_log()の中に原因がありそうで、 更に関数message_dolog()を実行していると記しました。で、message_dolog()の実行をスキップしてみると message-log-maxを1000(デフォルト値)とかにしても大丈夫そうで、動きもなにやらスムーズな感じに なったりも。 message_dolog()の中で メッセージを追加した後に 再描画のフラグを立てているようなのですが、 それをやめると message-log-maxが1000でも大丈夫そうです。 なぜ再描画をやめれば大丈夫なのかまでは判りませんが、ワークアラウンドとして再描画を行なわない 事にして、フラグで元の動作に戻せるようなパッチにしてみる事にします。
今に始まったことではありませんが、image-diredは色々な不具合を露見させるなぁ?と思ったりも。

Windows10でパッチを作って動作確認をした後、Windows11でも落ちる事を確認してからパッチの効果 確認をしてみたところ、やっぱり落ちたり。えぇ....😰。とりあえずgdbに乗せて再現させてみた のですが、「Program terminated with signal SIGTRAP, Trace/breakpoint trap.」で止まってて なんで?って感じ。message-log-max を tで無限にすると落ちなくなる事から、 起こっている事象は変わらないのじゃないか?と推測したりも。 因みに message-log-max を nilにした場合も落ちないのですが、こちらは 関数message_dolog()の入口で nilだったら何もしないという動きになっているので、 message_dolog()を実行していない(ロギング自体をしていない)のと同じ動きと言えます。


TOP PREV