2019-01-01から1年間の記事一覧
opamでcoqをインストールしようとすると以下のようなエラーになった。 $ opam --version 2.0.5 $ opam list # Packages matching: installed # Name # Installed # Synopsis base-bigarray base base-threads base base-unix base camlp5 7.10 Preprocessor-…
LDCのバグで困っている、というので調査をしてみた。 調べてみると、どうもこれはLDCで実行バイナリを生成する場合(より正確にはmain関数を定義している場合)のみ行われるcopy-relocation checkのために必要とされるようだ。 なんでcopy-relocation checkが…
ふと、DMDが生成するデバッグ情報を調べていたところDMDはDWARF v3でデバッグ情報を付与するようだ。 DMDのバージョンは2.089.0を使っている。 $ dmd --version DMD64 D Compiler v2.089.0 Copyright (C) 1999-2019 by The D Language Foundation, All Right…
前回の帰省のタイミングでアップデート。松江・米子近郊。 松江 山美世(うなぎ) おすすめ度: 9/10 値段: やや高め 今松江近辺で一番美味しいうなぎはここ。 ちょっと立地がわるいかも、米子空港からは近い。 うなぎの名店は他に「いずも」や「おおはかや」な…
最近ちっともDMDのビルドがうまくいかない。 ホストのコンパイラとしてDMD 2.087.1にパスを通した状態で、全部(dmd,druntime,phobos)のレポジトリに make -f posix.mak clean をかけた状態でmasterを更新してdmdで make -f posix.mak -j4、 phobosでも make …
プログラミングRustをちらちら読んでいたら並列化の例としてあったので、いまさらマンデルブロー集合を実装した。 元のコードがRustなのでなるべく型安全な感じに書いてみたつもり。 他の言語でfind相当のものがcountUntilという名前で、findは別の操作を行…
zshにパッチあてて使ってるんだけど、ビルド方法とか一応メモしておく。 zshのビルドは楽にできる、まあ今回の作業では必要なかったのだけれど。 $ apt install -y yodl # 依存ライブラリ, あとPerlとかも必要 $ ./Util/preconfig $ ./configure $ make パッ…
kazuho/jailing をD言語に置き換えてみました。 これです。 目的 実用的にはLinuxであればどの環境でもPerl5が入っていることは期待できるし外部依存もないので特に意義はないです。 あくまで学習目的というやつです。コードサイズも小さいし、いいかなって…
3/25~4/2でベイルート(レバノン)、ロンドン・リバプール(イギリス)旅行に行っていたので雑に記録を残しておく ベイルート 直行便がないのでフランクフルト経由。フランクフルトのラウンジで食べたパン・ソーセージとビールがこの旅で一番うまかった可能性が…
人にはそれぞれの感想がある、これは自分のために整理するくらいの意味合い よかったところ ゴマちゃんことゴマすりクソバードがいいキャラだった フレンズのキャラデザがよかった ゴマすりクソバードとバンドウイルカがかわいかった ごまちゃんやチーターの…
DMDのコード内ではargcが0な環境を想定してコードが書かれているが、そういう環境は存在するのだろうか。 調べてみるとわりとすぐにstackoverflowがみつかった。 c - executing a process with argc=0 - Stack Overflow posix_spawnを使えばできるようなので…
ここ最近Isabelleを触っている。 Coqと比べると日本語の資料が少ないのでつらい。 とりあえずいろいろわからないことが出てきたので並べてみる。 2以上の自然数を扱うと簡約できない 例としてmap関数を定義する。 fun map :: "('a \<Rightarrow> 'b) \<Rightarrow> 'a list \<Rightarrow> 'b list</rightarrow></rightarrow></rightarrow>…
おなじみ(?), safe functionを考えてみようの会です. 突然ですが, 以下のコードは合法でしょうか? void main() @safe { (cast(void function() @safe) null)(); } 結果はおおかた予想がつくとは思いますが、Segmentation Faultになります。 (dmd-2.084.0)$ …
(2019/02/07; いくつか追記したのでそちらのほうもみてください) 現在の最新版コンパイラ(DMD 2.084.0)だと, このコードはSEGVで落ちてしまう. auto foo(scope void delegate() @safe dg) @safe { return dg; } auto bar(void delegate() @safe dg) @safe …
なんかおもしろいコンパイラのバグに遭遇したのでめも。 もともとはpeggedを使ったプロジェクトで dub build --build=profile でビルドしたバイナリを実行するとSEGVに遭遇するんだけど・・・、という問題だった。 とりあえずgdbにかけてみると >>> bt 10 #0…
C言語のmainでめちゃくちゃできる、ってネタみたけど別にDでもできるよな。 main is usually a function はでないけど。 extern (C) void main() pure nothrow @nogc { asm pure nothrow @nogc { naked; db 0x31; db 0xC0; // xor EAX, EAX; db 0xFF; db 0xC…