makeMistakesToLearnHaskell
makeMistakesToLearnHaskell copied to clipboard
インストールにかかる時間を短くする・簡単にする
現状はソースからビルドしなければならないので、基本的に遅い。 特に https://github.com/haskell-jp/makeMistakesToLearnHaskell/issues/9 への対応でpandocを依存関係に加えることを検討している現在、よりビルド時間が長くなることが懸念される。
なので、 https://github.com/haskell-jp/makeMistakesToLearnHaskell/pull/29 や https://github.com/haskell-jp/makeMistakesToLearnHaskell/pull/30 などの対策を通して、実行ファイル(と同時にassetsも)まとめてインストールできる状態にしたい。
Haskell Dayに関しては、ビルド待ち時間中に読む代わりのコンテンツを検討しているため、優先度を敢えてmediumにしています。
background で runhaskell を呼んでるようなので、静的バイナリでの配布は後にして Docker image を作ることにします。
image は https://github.com/phadej/docker-ghc のものを使おうと思うのですが、そのまま利用すると mmlh: <stdout>: commitAndReleaseBuffer: invalid argument (invalid character) というエラーがでるので、ちょっとカスタマイズする予定です。
こっちだとそのエラー出ないんだけどなぁ・・・。(しかし runhaskell が入っていない)
- https://github.com/haskell-works/stack-build/blob/master/minimal/Dockerfile
ん?さすがに stack setup は別途やっていただくつもりでしたので、Dockerにするのはちょっとやり過ぎなのではないかと(あっちゃいけないものではないですけども)
基本的にはHaskellをはじめる人をターゲットにするので、stackを入れてstack setupまではどうせやることになるでしょうから。
基本的にはHaskellをはじめる人をターゲットにするので、stackを入れてstack setupまではどうせやることになるでしょうから。
なるほど。stack setup するのであれば、どちらのケースでも利用可能なので気にしなくて大丈夫ですね。
とりあえず緊急回避として、pandocで変換済みのHTMLをリポジトリに突っ込んでおくという手も…
捕捉:
dockerを使ってちょっと試そう、みたいなユースケースを除いて、原則としてstackのインストールとstack setupはユーザーに別途やっていただく、という方針でインストーラーを作っていただきたいです。
そこまでインストーラーがやってしまうと、mmlhが独自のHaskellの始め方を伝えることになってしまい、ほかで紹介している方法と異なってしまうためです。
メモ: Linuxでやる場合はSnapsで作るのがよさそう? https://gihyo.jp/admin/serial/01/ubuntu-recipe/0513