ときどきの雑記帖 RE* (新南口)
雨上がりの夜空に
Zガンダム@テレ玉
「ジャブローの風」
- ここであったが百年目
- ウェイブライダーでサーフィン
- ジャブローは引っ越し中
- ハヤト登場
「地下深く」に設置された核爆弾で劇中のような状態になるんだろうか?
次回「シャトル発進」
アムロやフラウ、3人組が登場。
分岐予測
新山祐介 (Yusuke Shinyama): “Intel CPU (第9世代以降) に存在している分岐予測…” - Mastodon 🐘
Intel CPU (第9世代以降) に存在している分岐予測の脆弱性。プロセスが特権をもつかどうかの判定は、 ふつう分岐予測よりも遅れて行われるため、そのタイムラグを利用して任意のメモリ内容の読み出しが可能。
そんなテクニックが
0.1
- Release 0.1 - GNU C Language Intro and Reference
- c-intro-and-ref.git - GNU C Language Intro and Reference
バージョンが上がっていたので何事かと思ったけど 誤字等の修正で内容的には大きな変更(修正)ではなさげ
Accent insensitive
bug#78439: Accent insensitive grep
though you’re venturing into uncharted territory here. Please let us know of any monsters you find.
locale
Windows言語設定の取得API - syghの新フラグメント置き場
ロケールの話は表示言語以上にやっかいな話で、特に浮動小数点数とCSVファイルを扱うアプリの国際化対応をするときは頭痛の種だったりするんですが、 まあ興味がある人は各自調査して試してみてください。ちなみにもともと「ロケール」という用語は、 C言語規格を制定するときに「ローカル」ではローカル変数と紛らわしいということで代わりに使われるようになった言葉らしいです。
そうなんだっけ?>C言語規格を制定するときに「ローカル」ではローカル変数と紛らわしいということで代わりに使われるようになった言葉
Locale (computer software) - Wikipedia には残念ながらHistoryの項目はなし。 あれば調べるとっかかりにはなったんだけど。
ちなみにlocaleの発音は「ロケール」じゃない😄
FORTH
(コードを)読んでいる余裕がナッシング。 面白そうなんだけど
- GitHub - fuzzballcat/milliForth: A FORTH in 340 bytes — the smallest real programming language ever as of yet.
- milliForth/sector.asm at master · fuzzballcat/milliForth · GitHub
- GitHub - agsb/milliForth-6502: The smallest Forth real programming language for 6502. Based in milliForth for x86.
- milliForth-6502/6502/sector-6502.s at main · agsb/milliForth-6502
- milliForth-6502/65C02/sector-65C02.s at main · agsb/milliForth-6502
うるう年
与えられた西暦年がうるう年かどうかの判定を3命令でやるという話で
With the following code, we can check whether a year 0 ≤ y ≤ 102499 is a leap year with only about 3 CPU instructions:
bool is_leap_year_fast(uint32_t y) { return ((y * 1073750999) & 3221352463) <= 126976; }
理屈はともかくとして「へー」といった感想なのだけど、 そこに至るまでの途中で
bool is_leap_year(uint32_t y) { if ((y % 4) != 0) return false; if ((y % 100) != 0) return true; if ((y % 400) == 0) return true; return false; }
が
bool is_leap_year1(uint32_t y) { if ((y % 4) != 0) return false; if ((y % 25) != 0) return true; if ((y % 16) == 0) return true; return false; }
となるのは?
となったが、落ち着いて考えれば
1番目の(y % 4) != 0
があるから
2番目は(y % 25) != 0
でも全体の結果には影響しないし、
同様に最後の(y % 16) == 0
も
前段の結果があるからこれでよいと(400 = 16*25)。
- A leap year check in three instructions
- A leap year check in three instructions | Hacker News
- Faster remainder by direct computation: Applications to compilers and software libraries
- Euclidean affine functions and their application to calendar algorithms
- Identifying leap years | David Turner says…
新刊近刊
ソフデ
おはようございます。いつもより少し早いですが、『Software Design 2025年6月号』は本日(5月16日)発売です。お昼休みやご帰宅時にぜひ書店(リアル書店、ネット書店)でご確認ください。
— SoftwareDesign (@gihyosd) May 16, 2025
1特: ITアクセシビリティ入門
2特: 理想のターミナル環境を求めて
新連載:… pic.twitter.com/QXVRDo1zTr
あまりまじめに追いかけていないので気がつかなかったのだけど、 先月号から 「Ruby×静的型付け戦略」 という連載が始まっていたのね。
特別付録
MonoMax(モノマックス) 2025年 7月号 | 宝島社
付録:本物そっくり!超豪華!文具9点セット(ペヤング ソースやきそば)
メモメモ。
FORTRAN Compiler on IBM 704
A+B**C*(E+F) → +(*(**A))+(*(BC)*[+(*(**E))+(*(**F))]
http://bitsavers.org/pdf/ibm/704/FORTRAN_paper_1957.pdf
A+B**C*(E+F)
という計算式は
+(*(**A))+(*(**B**C)*[+(*(**E))+(*(**F))])
のように解析されて、そこから以下のような命令列が組み立てられる。
u0 = + u1 + u3
u1 = * u2
u2 = * * A
u3 = * u4 * u5
u4 = ** B ** C
u5 = + u6 + u8
u6 = * u7
u7 = ** E
u8 = * u9
u9 = ** F
これには「無駄」があるので「最適化」すると
u0 = + A + u3
u3 = * u4 * u5
u4 = ** B ** C
u5 = +E +F
mini
minirubyは様々なオプションがOFFになってる最小Rubyでこいつを最初につくり、このminirubyをつかって本物のRubyをつくっている。minirubyがないとruby本体に関与するソースコードがdistroが提供する太古のrubyで動かないといけないという制約ができてしまいキツイ。そんな感じだったとおもう。 @ydah_…
— がちゃぴん先生 (@gachacomplete) May 11, 2025
当時はminirubyのビルドにはRubyは不要でした。minirubyは拡張機能専用と言う感じでした。今はminirubyのビルドにRuby必要なんですね。
— 渋川よしき (@shibu_jp) May 11, 2025
miniXXを作ってからそれを使って本命を作るというのは Perl5が最初(少なくともRubyより先)だったと思うけど、 共有ライブラリとのリンクのためじゃなかったかな(要出典)
そういやあPerlにはmicroperlってのもあったような…で調べてみると
perl/README.micro at alpha · atoomic/perl · GitHub 確かに存在していたようではあるのだけど、最新のリポジトリ GitHub - Perl/perl5: 🐪 The Perl programming language には見当たらない。
んでリリースノートを調べていくと
perl5180delta - perl v5.18.0 での変更点 - perldoc.jp
長い間壊れていて存在理由がはっきりしない microperl は削除されます。
perl5400delta - perl v5.40.0 での変更点 - perldoc.jp
Perl 5.18 で約束されたように、 長い間壊れていて現在の目的が不明確な microperl は削除されました。
完全に消去されたのはつい最近だった。
サポート外
Linuxカーネル、i486や一部586のCPUサポートを打ち切りへ https://t.co/MB9NmP4CYe pic.twitter.com/uvHOHfIHFC
— PC Watch (@pc_watch) May 12, 2025
486もかあと遠い目に。 そういや386がサポート外になったのはいつだっけ? と気になったので(ry
Linux カーネル 3.8 では i386 がサポート外に - 理想未来ってなんやねん
スラッシュドットジャパンの記事。気になったのでメモ。 Linux カーネル 3.8 では i386 がサポート外に | スラド
2012年の12月の記事にこういうのがあった。 スラドへのリンクがあるけど、リンク先はなくなっているので ネタ元の記事がどんなものだったのかは不明。
Linux 3.8登場 - i386アーキテクチャのサポートが対象外に | TECH+(テックプラス)
Linus Torvalds氏は2月18日(米国時間)、Linuxカーネルの最新版となる「Linux 3.8」を公開した。 Linux 3.8ではSSDフレンドリなファイルシステム「F2FS」の導入やi386アーキテクチャのサポート終了などが実施されている。
で、386がサポート外になった最初のカーネルのリリースは2013年2月と。
一端
新卒の子に「一端を担う」って表現使ったら「初めて聞きました!使ったことないです!ぼくも使いたいです!」って言ってそのあと使ってた
— しら (@Ilovenoopy) May 16, 2025
素直だな
スポンジかよ https://t.co/Wrju23l0ID
「一翼を~」の間違いじゃないの? と思いつつ調べたら「一端を~」もちゃんと辞書に載っていた。 危ない危ない😓
コロニー
スペースコロニーに穴が開いたらどうなるか、『サリバン家のお引っ越し』のとき計算したんだけど、式がでてこない。10mくらいの穴だと、
— 尻P(野尻抱介) (@nojiri_h) May 16, 2025
”たとえ穴が修復されなくても、人々が高山病にかかり始めるのは、三カ月も先のことだろう”
――と30年前の私は書いている。https://t.co/4VTFF8R3lC
ちょっと前から気になっているのが、コロニーの住人を全滅させるのに必要な毒ガスの量と所要時間。 現実的な時間でできるんだろうか?🤔
それから
このおじさんに出会ってるアナタ、完全なる同世代(笑)#70年代#80年代#昭和レトロ pic.twitter.com/Pb5azYXFsF
— 仲田天使。のBACK TO THE 80's! (@nakadatenshi) May 15, 2025
替え歌
バグは夜更け過ぎに 仕様へと変わるだろう
— Billy (@kswmochi) May 16, 2025