星にゃーんのブログ

ほとんど無害。

2017-01-01から1年間の記事一覧

Hakyllでブログ作った

こうののブログ - Home stackにはHakyll用のテンプレートもあるので、ブログ制作そのものは簡単にできる。 Github Pagesの仕様にあわせるため若干のハックが必要だった。 具体的には、記事作成そのものはblogブランチで行い、_site/以下をmasterブランチにコ…

CのVariable-length array

C99では, 実行時に配列の長さを指定できる機能が追加された. #include <stdio.h> int foo(int n) { int array[n]; int array[0] = 1; int array[1] = 1; for (int i = 2; i < n; i++) { array[i] = array[i-1] + array[i-2]; } return array[n-1]; } sizeofは実行時に</stdio.h>…

stack ghciでllvm-hs読み込めないときにすること

$ stack ghci Configuring GHCi with the following ... lookupSymbol failed in relocateSection (relocate external) /usr/local/Cellar/llvm-4.0/4.0.0/lib/llvm-4.0/lib/libLLVMLTO.a: unknown symbol `__ZN4llvm3lto11thinBackendERNS0_6ConfigEjNSt3__…

GHCでFizzBuzz

GHCでFizzBuzzを書いた。 gen_nats(Max, Ns) :- true | gen_integers(1, Max, Ns). gen_integers(N, Max, Is) :- N =< Max | Is = [N | Is1], N1 := N + 1, gen_integers(N1, Max, Is1). gen_integers(N, Max, Is) :- N > Max | Is = []. map([], Fs) :- tru…

GHC(Guarded Horn Clauses)のインストール

GHC

GHCとは https://ja.wikipedia.org/wiki/Guarded_Horn_Clauses/ インストール方法 今回は、SWI-Prolog上に実装されたGHCの処理系をインストールする。 SWI-Prologは SWI-Prolog からインストールできる。 次に、 Software from UEDA Lab. から GHC system ru…

"int main(void) { return 0; }"のLLVM IRを読んだメモ

とりあえずの学習メモとして残す。 理解が怪しいところは?や(?)などをつけている。 理解が進んだ後に整理したものを書きたい。 int main (void) { return 0; } このプログラムはCにおける(多分)最小のプログラムで、単にステータスコード0を返すだけのプログ…

「最新コンパイラ構成技法」でハマったところのツイまとめ 5/3

SML/NJで最新コンパイラ構成技法のソース読み込んだら(CMで)、"unbound structure: TextIO in path TextIO.instrem"とか言われて詰んだ— こうの (@takoeight0821) 2017年5月3日 sources.cmに$/basis.cmを追加したらうまくいった(あと、smlnj-lib.cmも$/smlnj…

RoswellでCommon Lisp環境をセットアップする

(2018-11-30 追記) この記事の内容は古くなっている可能性があります。 Roswellとは (ざっくりと) Common Lispの処理系やQuicklisp、SLIMEなどのインストール、処理系ごとのオプションの違いの吸収などを行うすごい便利なツール。 Common Lisperなら使って損…

Common Lispのライブラリ事情

ANSI Common Lispでは、ライブラリのフォーマットについてあまりちゃんとした仕様が存在しません。 当然、ライブラリを扱えないのは不便極まりないことですから、その点をカバーするためのシステムが存在します。 REQUIRE, PROVIDE 現在非推奨の、ANSI Commo…