Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

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

MSYS2でHDBC-sqlite3をコンパイル

当然のことながら、msys2のshellではなくmingw64のshellから操作する。 まず、 sqlite3 を入れる。 pacman -S mingw64/mingw-w64-x86_64-sqlite3 後はビルドするだけなんだけど、2点注意がいる。 --extra-include-dirs と --extra-lib-dirs にmingw64関連の…

AllowAmbiguousTypes拡張と型適用

このように f を定義して実行したい。 f :: String -> String f = show . read main :: IO () main = putStrLn $ f "True" エラーが出る。 Prelude> :l test.hs [1 of 1] Compiling Main ( test.hs, interpreted ) test.hs:5:5: error: • Ambiguous type var…

ConnectionFailure getAddrInfo: does not exist (Name or service not known) が出た

vagrantで ubuntu/zesty64 を使ったら、 https://github.com/commercialhaskell/stack/issues/2536 的なメッセージが出てかなりの高確率で stack setup に失敗した。 そもそも安定版使ってないほうが悪かったので、 ubuntu/xenial64 使うようにしたら収まっ…

2017年センター試験英語

最近ひどく疲れているので http://www.toshin.com/center/ から英語を解いた。リスニングが42点で筆記が169点。おもったよりひどくないと思ってしまったけど、本来満点取らないと駄目なやつだよね、これ。現役の頃を思い出して気分転換にはなったので良しと…

stackのコードを読む(3)

リソルバのダウンロード先URLのデフォルトは Stack.Config.Urls で定義されているがコンフィグで上書きできる リゾルバはYAMLでこんな感じで全パッケージとバージョンが書かれてる packages: drawille: .. 省略 .. version: '0.1.2.0' .. 省略 .. descriptio…

ghci 7.10 と 8.0 のレコード記法の違い

DuplicateRecordFields を実装した影響だと思うけど、 ghci で重複するレコード名を定義したときの振る舞いが 7.10 と 8.0 で違ってる。 まず 7.10 。「フィールド定義が消される」という振る舞いに見える。 $ stack --resolver ghc-7.10 ghci Configuring G…

stackのコードを読む(2)

stack.yaml はどこで読むのか Runner.hs#withBuildConfigAndLock なんてのがあって、ここで読んでいる。実際に読んでいるのは Config.hs#loadProjectConfigとかで、こいつが FromJSONのインスタンス になっていてパースしてる。設定の優先順位とかは この辺 …

stackのコードを読む

stackのコードを読んでるのでメモ。まだ全然肝心なところに入ってない。 パーサーでコマンドライン引数をパースして、パースの結果として得られる関数を実行する作り optparse-applicativeをフォークして使っている なんの処理を加えてるのかは読んでない 例…

Data.List.(\\)

(\\) という演算子 *1 でリストの差を取れるのだけど、こいつは最初の出現しか削除してくれない。というのを知らなくて、バグった。 Prelude> import Data.List Prelude Data.List> [1, 2, 2, 3, 3, 1] \\ [1, 2, 3] [2,3,1] 複数引くとその個数だけ消える。…