BT

新しい あなたは、アーリーアダプター?それともイノベーター?そんな皆様に、InfoQの新機能をご案内しています。詳細はこちら

HaskellがiOSをサポート、性能を改善

| 作者: Roopesh Shenoy , 翻訳者 徳武 聡 投稿日 2014年4月26日. 推定読書時間: 1分未満 |

原文(投稿日:2014/04/16)へのリンク

GHC 7.8.1がリリースされ、Haskellのエコシステムがいくつか改善された。iOS向けにコンパイルできるようになり、Closed Type Families, Roles, Overloaded Lists, Pattern Synonymsなどの新しい機能が追加され、性能改善が行われた。

Haskellはclangを使ってiOSにコンパイルされる。これはXCode 5を使った開発をサポートする。HaskellにはクロスプラットフォームのGUIがないので、GUIはobjectiveCで別途開発し、GUIコードからHaskellのコードを呼ぶ必要がある。この対応は7ヶ月前から発表されていたが、このサポートを含んだGHCのリリースは初めてだ。

Template HaskellはまだiOSでは使えない。

クロスプラットフォームのコンパイルは全般的に改善されている。例えば、動的リンキングは改善されている。GHCiはデフォルトで組み込みの静的リンカではなく、システム動的リンカを使うようになった。GHCを使えば、新しいコンパイルフラグ"--dynamic-too"で、同時に静的オブジェクトファイルと動的オブジェクトファイルのふたつを生成できる(GHCはまだ静的リンキングを使う)。

このリリース追加された他の機能は次の通り。

  • Closed Type Families - 型ファミリはデータ型をオーバーロードするのに利用される。クローズドのファミリタイプはひとつの場所で定義された同等物のすべての特徴を持ち、拡張できない。元の開発者が意図していなかった問題が発生するを防ぐことができる。
  • Roles - GeneralizedNewTypeDerivingを使ったときに安全でない型の定義を除去してくれる。
  • Overloaded Lists - リストの表記の糖衣構文。Set、Map、IntMap、Vector、Text、Arrayなどのデータ構造の作成に使う。
  • Pattern Synonyms
  • Typeableがpoly-kindになった。Typeable1、Typeable2などを作成するのは、旧式で利用非推奨。
  • 32コアまで線形に拡張する新しいI/Oマネージャ
  • Template Haskellの改善。Roles、アノテーション、"型付きTemplate Haskell式"のサポート。
  • makeのパラレルモード
  • タイプナチュラルの解決の改善(性能改善)

大きな変更は次のリリース(7.10)に来るかもしれない。それは、ApplicativeがMonadのスーパークラスになることだ。この変化を簡単に乗り切るため、現在のバージョンのGHCはMonadであってApplicativeでない型やMonadPlusであってAlternativeでない型のインスタンスには警告が出力される。また、ローカル関数の名前がjoin、<*>、pureで定義されている場合も同様だ。

他にも変更点がある。詳細はリリースノートで確認できる。

GHCとHaskellで使えるHaskell Platformはまだ最新のGHCにはアップデートされていない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT