ルールズ・オブ・プログラミング読書会vol.45
https://scrapbox.io/files/655372c161a776001bf71cc6.jpeg
開催日時
2025年11月11日(火) 19:30~21:00
開催URL
参加人数
4人
ウォーミングアップ
ルール19 作り直しは並列で行うこと
水平線上の雲
ネイティブでもdatasって名前付けてる!
dataがそもそも複数形
for( const CharacterData & datum : data)になるべきでは?
こっちの方が厳密だがわかりにくい・・・
ラテン語原理主義者
CharacterDatumにしないと・・・
本物のスタックベクタークラスはコンテキストが一致しないメモリーを割り当てようとするとアサートするらしい
どうやって実現するのだろう?
StackVectorクラスの生成時のコンテキストをメンバに保持して紐づけているのかな
スタックコンテキストを少々賢くする
StackContextが変わった
StackContext自身がallocをするようになった
使い終わったメモリは解放せずに再利用する
解放しないのかな?
s_contextsの要素がゼロになったタイミングなら解放できそう
StackVectorも変わった
コンストラクタでStackContextインスタンスを渡す形になった
mainSequenceとextraSequenceが本題
unusedChunksは本題に関係ないのに話をややこしくしている感
旧スタックコンテキストから新スタックコンテキストへの移行
新スタックコンテキストの一部インタフェースを旧に寄せるでよかったのでは?
それだと挙動が変わってしまう
完全に旧スタックコンテキストで動くことを保証したかった
メモリの確保順を変化させたくない
徐々に移行させたい
でも移行中に絶対バグるよね
移行用のアダプターがバグってるケース
変数のフラグ(g_useNewStackAlloc)で新旧挙動の切り替え
動的に切り替えたい?
defineのifdefで切り替えられるのでは?
再コンパイルが必要になってしまう
設定ファイルで起動時にどちらにするかを決めるような形を想定しているのかな
StackVector移行に向けた準備
次回ここから
お悩み雑談室
g_useNewStackAllocの現実例
渋谷駅工事
新幹線と阪急
一時期新幹線の路線に阪急が走っていた
切り替えにビルドが必要
ifdefの例やん