type holyshared = Engineer<mixed>

技術的なことなど色々

OCaml

OCamlのパッケージインストール時にファイルをコピーする

OCamlプログラムをduneを使用してビルドしている場合、インストールする時にバイナリファイル以外のファイルも一緒にコピーしたい場合があると思います。 それをopam、duneを使用している時にどのように行うか調べました。 Duneの設定 設定はduneファイルにS…

テスト容易性設計のやつOCamlでやってみた

自分の場合は現在時刻を引数で渡すようにしました。 モジュールやコンテキスを表すデータ型みたいなものを渡してもいいんですが仰々しいので。 t-wada.hatenablog.jp コードはここに置いてあります。 Design-for-testability - OCaml version · GitHub 実装…

jbuilderからduneに変えた

dune1.0がリリースされたので、jbuilderからduneに置き換えました。 作業内容としてはそんなに修正箇所はありませんでした。 github.com 作業内容 jbuildファイルの変更 jbuildファイルをduneにリネーム 設定ファイルの変更 コマンドをjbuilderからduneに変…

js_of_ocamlをjbuilder(dune)で試してみた

OCamlのバイトコードをJSに変換できるツール、js_of_ocamlを試して見ました。 とりあえず、jbuilder(dune)を使用して、JSを出力できるようにはなりました。 今回はビルドの方法だけの内容です。 必要なもの opam経由で必要なパッケージをインストールします…

ppx_inline_testの仕様が変わったみたい

ppx_inline_testの仕様が変わったぽいです。 今まで、テスト実行時にコンソールにテスト結果が表示される仕様だったと思うのですが、デフォルトで表示されなくなったようです。 なのでテスト実行されているのかがわかりにくくなっています。 テスト結果を表…

ppx_inline_testでモジュール内にテストコードを書く

これはML Advent Calendar 2017の記事です。 枠が空いていて、誰も書いてなかったので書きました。 OCamlのテスト用のツールで、構文拡張を使用したppx_inline_testがあります。 今まで、OUnitを使っていたのですが試しに使用してみました。 使用するのに必…

Typesafetyの0.10.0をリリースした

Typesafetyの0.10.0をリリースし、下記の変更を加えました。 OASISからjbuilderへの移行 タイプチェックがパスした時も、レビューコメントを残せるようにした OASISからjbuilderへの移行 ビルドツールをOASISからjbuilderへ変更しました。 移行作業自体は1日…

jbuilderでビルドに必要なファイルを生成する

jbuilderでビルドに必要なファイルを生成する方法を調べました。 なんで調べたかというと、atdgenでjsonのパーサーのコードを出力したかったからです。 パッケージのインストール jbuilder、atdgenをインストールします。 opam install atdgen jbuilder rule…

typesafety_cliのビルドツールの変更計画

CI上でテスト前の型チェックのエラーをGitHubのPRのコメントとして投稿するツールtypesafety-cliのビルドツールを変えようとしています。 具体的にはOASISからjbuilderに移行しようとしています。 開発当初はOASISで良かったのですが、以下の理由で辛く感じ…

Hackの型のチェックのエラー内容をレビューコメントとして投稿できるようにした

Hackの型チェックをCI上で行っていたのですが、エラー内容を見るのにCI環境側までいちいち見に行かないといけないので、OCamlでレビューコメントとして投稿できるtypesafety-cliを作りました。 レビューコメントは下記のような感じになります。 https://gith…

OUnitでOCamlライブラリのテストを書く

これはML Advent Calendar 2016の18日目の記事です。 OCamlのテストフレームワークのOUnitについて解説します。 また、Oasisの簡単な説明も行います。 プロジェクトのセットアップ OCamlのプロジェクトでは、だいたいの場合はOasisを使います。 Oasisはビル…