programming

もっと見る programming

ホーム

gitprogrammingtooling

Git 参照について

Git refとは何か、.git/refs配下のファイルとpacked-refsファイルがどう関係するのか、そしてなぜ「refとはブランチである」というメンタルモデルがエッジケースで混乱を招き続けるのか。

luaprogrammingZig

ZigでLuaを拡張する 1:Hello World

ZigでLua拡張モジュールを書くチュートリアル。hello worldから始め、Luaがロード可能な共有ライブラリのビルド、C ABI境界、境界を越えて値を受け渡すために必要なLua C APIの部分を扱う。

emacsprogrammingtooling

hutch 的 Emacs 界面截图,左侧是补丁列表、右侧是 diff 与评审批注

hutch:Emacsでのローカルコードレビュー

hutchはmagitのローカルコードレビューインターフェースです。作者はコメント追跡ではなくパッチをレビューすることを主張し、ホスティングプラットフォームが強いるコメント中心のワークフローがローカル開発に適さない理由を説明しています。

コンパイラerlangprogramming

Gleam はもう Erlang のソースコードにコンパイルされない

Gleam は以前、Erlang ソースコードにコンパイルして erlc に渡していた。バージョン 1.19 では直接 BEAM バイトコードを生成するようになった。この記事では、それによって得られた利点、なぜ BEAM アセンブリまで踏み込まなかったのか、そしてこの変更がもたらした最適化について説明する。

Cprogrammingsystems

编辑器自身运行时的截图:终端窗口里显示一段 C 源码,底部状态栏写着文件名与行号 src/main.c - 1075 of 1412 lines,最下方是搜索提示

C と POSIX システムコールでゼロ依存のターミナルエディタを書く

著者が初めてCを書き、Kiloガイドに従ってターミナルエディタを作った:raw modeはtcgetattr/tcsetattr、バイトストリームをキー入力に解析(ANSIエスケープシーケンス含む)、ioctl(TIOCGWINSZ)でウィンドウサイズを取得、write()で行ごとに描画。サードパーティライブラリは一切不使用。

Cコンパイラprogramming

暗色哥特式建筑的石墙与尖拱,拱窗内透出暗红色光

1+1を計算したいだけなのに、関数型プログラミング言語を一つ書くことになった

著者は算術式を二分木に変換するデータ構造の課題を出され、ついでに評価器を書き、数日後にはクロージャ、ガベージコレクション、カスタムメモリアロケータ、REPL、FFIを備えるまでになった。全文でCコードを示しながら段階的に解説する。