ときどきの雑記帖 RE* (新南口)
YOU'VE GOT TO HELP YOURSELF
三昧
今日は一日“プロレス格闘技入場曲”三昧 - 今日は一日○○三昧(ざんまい) - NHK
(ほぼ)聴いてた。 すぐにフェードアウトしてるような感じがして(実際のところどうだかは知らない) 今一つな感じ。 ゲストの「裏話」も面白いんだけど曲聴きたいときに話が盛り上がると もやもやが。
しずえさん
山手線で復活してるか思ってたら山手線でもマリオだった。
限定未公開
街中で「限定未公開」という看板を見かけたんだけど どういう意味だろう?
C72
大昔のCコンパイラーをx86向けに修正した人がいたらしい。
- C72: A port of the earliest C compiler to x86 (2021) | Hacker News
- vegesm/c72: The first C compiler ported to x86
A port of the earliest C compiler to x86. The compiler generates 32-bit code and works on modern Linux with a current libc. It follows the architecture of the original implementation closely, keeping the bugs and missing features.
If you are interested in a more in-depth description see Dennis Ritchie’s A Tour through the UNIX C compiler. Although it is for a newer version with some differences, it is still helpful to understand c1.
んで、ふとv7のCコンパイラーって
*p++ = *q++:
みたいなコードに対して本当に
PDP-11のアドレッシングを活用したコードを吐くのか気になったので(ry
いや、だってCの++
と--
には前置と後置があるけど
PDP-11にはpost incrementと pre decrementしかないじゃないですか。
https://raw.githubusercontent.com/v7unix/v7unix/master/v7/usr/src/cmd/c/c11.c
case AUTOI:
printf("(r%d)%c", p->nloc, flag==1?0:'+');
return;
case AUTOD:
printf("%c(r%d)", flag==2?0:'-', p->nloc);
return;
https://raw.githubusercontent.com/v7unix/v7unix/master/v7/usr/src/cmd/c/c12.c
unoptim(atree)
struct tnode *atree;
{
略
if ((subtre->op==INCAFT||subtre->op==DECBEF)&&tree->type!=LONG
&& p->op==NAME && p->class==REG && p->type==subtre->type) {
p->type = tree->type;
p->op = subtre->op==INCAFT? AUTOI: AUTOD;
return(p);
}
v7unix/table.s at master - v7unix/v7unix - GitHub
/ c code tables-- compile to register
/ ++,-- postfix
cr32:
%a,1
movB1 A1',R
I'B1 A1''
%aw,n
mov A1',R
I A2,A1''
%e*,1
F1*
movB1 #1(R1),R
I'B1 #1(R1)
%n*,1
F*
movB1 #1(R),-(sp)
I'B1 #1(R)
movB1 (sp)+,R
%el*,1
F1*
mov #1+2(R1),R+
mov #1(R1),R
I $1,#1+2(R1)
V #1(R1)
table.sのこれがどのように実際の出力になるのかは(まだ)よくわからないのだけど、 c12.cの条件文をみるとpre decrementやpost increment を活用したコードを 出力してるっぽい。
v7のエミュレーター環境を用意してコンパイルしてみればいい話ではあるのだけど。
承認された適切な方法
最近のRubyコアの動向: 2022年3月版(翻訳)|TechRacho by BPS株式会社
読んでいたら
多くの開発者がカスタムの#hashメソッドを不十分な方法で使っています。 これではハッシュテーブルの衝突が無駄に発生してパフォーマンスが低下してしまいます。
承認された適切な方法を使うことで、開発者がこのメソッドを実装するときに正しい方向に導かれるようになります。 この方法はほとんどの場合とても簡単です。
この辺の訳文に疑問を感じたので例によって原文に当たろうとしたけど mediumの壁に阻まれて確認することができなかった。 まあ月が変われば読めるかもしれないけど、どうするかなあ (つーかいつの間にか月間制限数に行ってたのか)。
鬼車
Release Release 6.9.8 · kkos/oniguruma
【江ノ島電鉄線 上下線 遅延情報】
— とれいんふぉ 首都圏エリア 非公式運行情報など (@Trainfo) April 30, 2022
江ノ電は、行楽客による一部ドア口への集中混雑・江ノ島〜腰越の併用区間での道路混雑などの影響で、藤沢〜鎌倉の上下線に30分以上(列車2本分+10分以上)の遅れがでています。 pic.twitter.com/YMVWz0kMVm
鎌倉から江ノ電ルートアホみたいに並んでてワロタァ pic.twitter.com/Tg77rRxvP0
— きひろちゃん(9歳幼女) (@aki33524) April 30, 2022