2021/08/09 & 08/10

Table of Contents

  1. 大学の入学手続きをやった
  2. 夏休みに入った
  3. nim で Lua を動かしていた
  4. 追記: ファミマの麻婆丼について
  5. 追記: 『CPUの創りかた』について

大学の入学手続きをやった

学生証に使おうと思っていた写真のサイズが違っていたので、証明写真を印刷してきた。 最近の証明写真機は過去撮影した画像を再印刷できて便利だ。

また、手続にあたって宿舎の話になった 自室にキッチンがないために、自炊する環境に工夫が要りそうだなと感じた。 浴室もないため、銭湯などはないかと調べたら、中心地からは遠いことがわかった。 学生の方はどのようにしているのか、気になる。

夏休みに入った

やりたいこと、やるべきことは沢山あるのはわかっているのだが、それらは整理されていない。 よって、暇のように感じてしまう、というあるあるが繰り広げられた。

何やろうと思ってたんだっけ……?と思い出してみたら、卒研、読書、ゲーム等々、案外思いつくものだなと感じた。

nim で Lua を動かしていた

nim という言語は C 言語を中間言語としてコンパイルすることができる(その他にも JavaJavaScriptC++を介してコンパイル可能らしい)。 その機能を用いて様々な C のライブラリが使える。

C 言語から様々な操作が簡単にできる Lua ももちろん、その恩恵に預かることができる。 Nim から Lua を操作するためのライブラリは4つほどあったが、その中でもよかったものを 2 つほどピックアップした。 まず、公式のものLua 5.0、5.1、5.2 に対応している。Lua の C API をそのまま Nim が使えるようにしただけのもの。 次に、nimLUALua 5.3 が使えて、かつ LuaAPI を Nim っぽく使えるらしい。

最初のうちは公式のものを fork して、使ってみた。しかし、Nim のコードが古いのか、コンパイルエラーになる。よって後者を使ってみることにした。

しかし、後者を採用した場合、Lua 5.3 は MSYS2-UCRT のリポジトリにはないため、ビルドする必要がある。 ビルドするにあたっては、このドキュメントを参照した。

curl -O https://www.lua.org/ftp/lua-5.3.6.tar.gz
tar xzf lua-5.3.6.tar.gz
cd lua-5.3.6
make mingw
make mingw install

しかし、lua53.dll がないとエラーを吐かれる。 成果物の中にはあるようなので、make install する過程でコピーされてなかったかと思い、 install -m 0755 src/lua53.dll /usr/local/binとしたら、動いたのでよかった。

しかし、ここを参考にLuaのC APIを理解しようと試みたが、Nimの型システムでハマった。具体的にはintからcsize_tへの変換する方法がわからなかった。

追記: ファミマの麻婆丼について

08/10の昼飯に食べた。味噌のようコクがありウマ辛!って感じだった。

追記: 『CPUの創りかた』について

先日、友人を作っているCPUのクロック回路のシュミットトリガインバータを破壊したという話を日記に書いた。 どの部品が壊れたのかを検証していたら、技術職員の方が『CPUの創りかた』を手にとり、「20年前の本だよね。出たときは衝撃的だったな」とおっしゃっていた。 寡黙な方だったので、びっくりした。