更新:
全部の実験で命令の総数を揃えました。
分かりにくくてすみません……
計算機が全くわからない。
俺たちは勘で計算している。
どなたかこの解釈について教えてほしいです。。。。。
C# のHelloworldの基礎を説明できる人、弊社に一発で入社できますよ。ってかんじだ。
— きょん@うさみみモード (@kyon_mm) 2017年5月16日
@func_hs 別に言語はとわないつもりですけど、 C# だとうれしい。
— きょん@うさみみモード (@kyon_mm) 2017年5月16日
前一度調べたので記事をまとめておく。
OCamlプログラムの初期化は複雑だなぁ思った次第です。
ハマった
X = a b c X += d e f all: echo $(X)
これはmake
を叩いてみるとa b c e e f
と出力される。
まぁ+=はこれで良さそう。
ちょっと直感に反している例として、make X=123
みたいに
外側から与えられる場合。これは123
とだけ出力される。
コレを123 d e f
と出力させたかったらoverride
を加えればいい。
X = a b c override X += d e f all: echo $(X}
これで無事123 d e f
と出力される。
しかしまぁこれ、なかなか悩ましくて外側から与えられる場合には、例えばコンパイルフラグが完全な状況になっていて欲しい場合もあり悩ましい。
例えば最終的にCFLAGS=-DA -DB
となってて欲しいところを-DAだけ外から与えてoverride +=
で-DB
とする設計の場合、この+=を無視できなくなってしまう。しかし外側から与えられると共通のフラグは勝手に+=されて欲しい気持ちにもなって悩ましい。。。
結局は人間の運用をどうするべきかということなのですが、まぁ結論がない。。。。。
本きれいですーうおー pic.twitter.com/jZrHDGBVvC
— インターネットも届かない闇 (@no_maddo) 2017年4月9日
電子書籍販売し始めました!!!
コンパイラを作って遊ぼう - nomaddo - BOOTH
技術書典2に本を出してきました。う-15 「コンパイラを作ってあそぼう」です。 @alt_apさんの素晴らしいイラストを見て!
殺伐とした部屋に突然の萌え絵が!!!お願いしたイラストがでかく印刷されるの満足度たかい! pic.twitter.com/eU1aWkZef6
— インターネットも届かない闇 (@no_maddo) 2017年4月9日
締め切り駆動開発しようと思って、締め切りギリギリに申し込んだ。1月初めだったかな。
感想としては締め切り駆動は進捗はでるけど寿命を減らす感がある(徹夜3回くらいした
印刷所から直入だったから荷物手ぶら状態だったけど、色々小物が必要だった
時給で換算すると余裕で100円を切るやつ。
赤字にならなくてよかった。
今回使ったlatexのテンプレートを貼っておきます。
今回私の本文はこれだけで作っています。あと図にパワポから生成したpdf。
遷移図みたいなの書くのにパワポが最高。graphvizとか書いてられない。
GitHub - nomaddo/b5-book-template
.shからmakeコマンドを叩きたくなり、さらにその中で実行するMakefileの変数を上書きする 処理を書きたくなった。そのラップするスクリプトはどう書いたらよいだろうか。
#include <stdio.h> int main() { #ifdef A printf("a"); #endif #ifdef B printf("b"); #endif }
all: gcc $(CFLAG) a.c
さて問題、これをCFLAG=-DA -DB
にするようにmakeするためのシェルスクリプトはどう書いたらよいだろうか。
ただし、この実行は複数回やるので変数に束縛することにする。
var="CFLAG=\"-DA -DB\"" make "$var"
コレを実行すると以下のようになる。
$ bash build.sh make: 無効なオプション -- 'D' make: 無効なオプション -- '"'
さあ何が悪いのかな。
今日1時間ほど詰まった問題を書いてみました。
正解はMakefileの$(CFLAG)が"$(CFLAG)"
となっていないからです。
まぁshellはつらいですね……