ときどきの雑記帖 RE* (新南口)
NE2000
命令セット
同じ処理、3つの命令セット——x86_64・ARM・z/Architecture のアセンブリを読み比べる
メインフレームのものもあるのがめずらしい
明朝体
- 明朝体って何種類あるか知っていますか? - 話題の「明朝体展」レポート(1) | マイナビニュース
- 明朝体の歴史を体感できる巨大年表が圧巻! - 話題の「明朝体展」レポート(2) | マイナビニュース
- デジタルフォントの手書き原図に驚く - 話題の「明朝体展」レポート その3 | マイナビニュース
- 100年以上前の明朝体が、いまも使い続けられている - 話題の「明朝体展」レポート(4) | マイナビニュース
【市谷の杜 本と活字館 企画展「明朝体」】
会期:2026年2月21日(土)~2026年5月31日(日)
へー
SOM
- SOM: Simple Object Machine
- GitHub - SOM-st/CSOM: CSOM - C implementation of the Simple Object Machine Smalltalk · GitHub
Sort Chinese numbers
bug#80761: Proposal: Sort Chinese numbers
メモ
VLIW
VLIW: The “Impossible” Computer : r/programming
そんなのもありましたねえ…
STL containers in pure C
- Implementing C++ STL containers in pure C — what I learned : r/programming
- GitHub - springkim/OpenCSTL: Open source C container library like C++ STL · GitHub
メモその2
awk
goawk
gawk
バージョンアップがあったせいかちょっとバグレポが活発
Possible bug in Gawk 5.3.2 due to split() fix
$ echo 'a.a.a' | ./gawk-5.2.1 '{ n = split($0, a, /./); for (i=1; i<=n;
i++) { print i, a[i] } }'
1
2
3
4
5
6
$ echo 'a.a.a' | ./gawk-5.3.2 '{ n = split($0, a, /./); for (i=1; i<=n;
i++) { print i, a[i] } }'
1 a
2 a
3 a
$ echo 'a.a.a' | original-awk '{ n = split($0, a, /./); for (i=1; i<=n;
i++) { print i, a[i] } }'
1
2
3
4
5
6
$ echo 'a.a.a' | mawk '{ n = split($0, a, /./); for (i=1; i<=n; i++) {
print i, a[i] } }'
1
2
3
4
5
6
最初これを //でsplitするのと勘違いしちゃったのだけど、
/./ でなのね。
で、このバグ(?)が入り込んだコミットも指摘されていて
Fix subtle issue with split(). - gawk.git - gawk
diff --git a/field.c b/field.c
index ab1964fd..5464083b 100644
--- a/field.c
+++ b/field.c
@@ -1198,8 +1198,8 @@ do_split(int nargs)
warned = true;
lintwarn(_("split: null string for third arg is a non-standard extension"));
}
- } else if (fs->stlen == 1 && (sep->re_flags & CONSTANT) == 0) {
- if (fs->stptr[0] == ' ') {
+ } else if (fs->stlen == 1) {
+ if ((sep->re_flags & CONSTANT) == 0 && fs->stptr[0] == ' ') {
parseit = def_parse_field;
} else
parseit = sc_parse_field;
というもの。これだとちょっとわかりづらいので 範囲をもう少し広げてコードを見ると
fs = sep->re_exp;
if (fs->stlen == 0) {
static bool warned = false;
parseit = null_parse_field;
if (do_lint && ! warned) {
warned = true;
lintwarn(_("split: null string for third arg is a non-standard extension"));
}
} else if (fs->stlen == 1 && (sep->re_flags & CONSTANT) == 0) {
if (fs->stptr[0] == ' ') {
parseit = def_parse_field;
} else
parseit = sc_parse_field;
} else {
parseit = re_parse_field;
rp = re_update(sep);
}
}
else ifのところで
/./は長さが1(fs->stlen == 1{)
でregexp constant (sep->re_flags & CONSTANT) == 0)
なので、その内側のif~elseに行って
fs->stptr[0]がスペースではないので
parseit = sc_parse_field;`
として1文字でのフィールド分割を行うように設定する。と
で、この動きは
Re: Possible bug in Gawk 5.3.2 due to split() fix
Thanks for the report. I will review. POSIX isn’t as clear about things as it (c|sh)ould be.
というのがメンテナーのarnoldの主張で
Re: Possible bug in Gawk 5.3.2 due to split() fix
* When the third argument is a string, then the same rules as for FS apply:
* * A single space --> Default fields splitting
* * Any other single character --> That character splits
* * Longer than one character --> Regex splitting
ということになった(なる)らしい
Re: Corrupted output with function call and array lookup
とんがり帽子
とんがり帽子というとついメモルと続けてしまう老人は挙手しなさい5秒以内だ✋️
— 西野花@hana Nishino (@hana_nishino) April 8, 2026
名前を出してはいけない ララァ専用モビルアーマーとか
C
ITの歴史に疎くてC言語はなぜCなのかをよく理解していない。
— しどっち | しがないエンジニア (@shidocchi3963) April 9, 2026
AやBではダメだったのか。
なんか怪しげな説がちらほら
I
「この中で一番『プログラミングにに詳しい素敵な大人』ってだあれ?」
— からさん (@karasan_itips) April 11, 2026
「for文のループカウントに使う『i』ってあるわよね?」
「なんで???」
「なんで『i』なの?」#ITチコちゃん
スレッドを追いかけると諸説入り乱れてますな(笑
49
すべてのMacに潜む深刻な脆弱性が発覚しました。49日17時間の連続稼働後、新しいTCP接続が一切できなくなるとのことです。
— TechFeed公式 (@techfeedapp) April 9, 2026
システムは正常に見えるのにネットワーク接続だけ静かに死ぬという、トラブルシューティング泣かせの症状ですね。サーバー用途でMac… pic.twitter.com/bA8losumaV
この話を見てWindows96にもそんなバグあったような… と思ったのだけど、 お仲間が
当時そもそも Windows をそこまで長時間稼働させ続けられる人が居なかったので、誰も気にしてなかった覚えがある。 https://t.co/M29WfhiPUR
— UNAGI𝕏の (@unagix) April 10, 2026
根っこ(ミリ秒単位のカウントのオーバーフロー)は同じみたいすね