write ahead log

ロールフォワード用

C

chibiccを読んだときに出てくるアライメント調整用関数のアルゴリズムの名前が知りたい

rui氏作のCコンパイラであるchibiccを読むとアライメント調整用の関数がある。 GitHub - rui314/chibicc: A small C compiler // Round up `n` to the nearest multiple of `align`. For instance, // align_to(5, 8) returns 8 and align_to(11, 8) returns…

malloc動画とか呼ばれてるやつを見た

そのうち見ようかなとか思って何年も放置してたので見てみた。 www.youtube.com 動画だとちょっとなと思う人はこの記事がかなり良い気がする。 さすが専門の会社は違う。 www.valinux.co.jp 感想とか 20行のK&R mallocに勝とうとしたら5000行になった、とい…

clang-formatを使う

golangに慣れるとコードフォーマッタが欲しくなりますね. C, C++でスタイルを適当に合わせたい時にはclang-formatというものがあります. インストール $ sudo apt install clang-format 設定ファイルを作る .clang-formatというファイルを作っておくとそれに…

Win32 APIを使ってC言語でテトリスを作った

作った. github.com 前回コンソールで作ったのでGUIにしてみた. twinbird-htn.hatenablog.com でも途中でメンドクサクなって全然カラフルじゃないしボタンもない. Win32 APIに触ってみたかったので作り始めたが, 作ってわかったことは.NETとWin Formsは偉大…

Msys2環境でWindowsプログラミングする時のメモ

Windowsプログラミングで直接API触ったことないのに気づいたので, なんとなく初めて見た時のメモ. 触ってみてわかったことは.NETとWindows Formsのありがたみ. 環境構築とビルド方法 ビルド環境のインストール pacman -S mingw-w64-x86_64-toolchain GDIを使…

ncursesを使ってc言語でテトリスを作った

作った. github.com ない機能 こんな機能がありません.ほしい. 次に出現するのブロックを画面の横に表示する機能 ブロックをキープする機能 矢印キーの対応 回転する時の軸補正 スコアの付け方(今は一律一行10ポイント) 落下速度のゲーム状況に応じた変更 な…

gitのfirst commitをビルドする

Git C

興味わいたのでやってみたけど意外とうまくいかなかったのでメモ. ソース自体はgithubにミラーがあって, ここから手に入る. ubuntu trustyの64bit環境でやった. そのまま素直にビルドしようとすると以下のエラーが出た. vagrant@vagrant-ubuntu-trusty-64:~/…

何度か挫折しつつ不純lispインタプリタを作った

作りました. github.com 詳細はgithubのREADMEをどうぞ.(酷い英語ですが) 当初は純lispを作ろうと思ったのでpureという名前ですが, tak関数を動かしたいなど欲が出てきたので 純粋でも何でもなくなってます. GCはありますが, マクロはありません. (私がマク…

Cで可変長引数のマクロを作る

C

Cで可変長引数のマクロを作れるらしい.(但し, C99以降) 知らなかったのでメモっとく. 要点 ...はVA_ARGSで置き換えられる. ちょっとした例 よくあるマクロ (組み込みとかでありがち.ふつうは#ifdefとかで囲む) char buf[1024]; //適当なサイズ,名前のバッフ…

lexを使う

少し前に構文解析プログラム入門の定番である電卓でも作ってみようかなとRubyで書いた. わかったことはとにかくめんどくさい. 電卓程度なので手抜きをたくさんできるんだけど、実際、+をAddに変更しようかと思うと、もっとちゃんとした字句解析も必要になる.…

gccを使って64bit Linux環境で32bit実行ファイルのビルド

動かん アセンブラを吐かせたいのでGASがちょっと気になって以下のページを見ながらちょこちょこ触っていたら、一部プログラムが動かない. Capm Network - GAS なんでかなー、とか思ったけど、自分のマシンが64bitになったのを思い出す. ということで64bit環…