並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 58件

新着順 人気順

GHCの検索結果1 - 40 件 / 58件

GHCに関するエントリは58件あります。 プログラミングHaskellHotEntry などが関連タグです。 人気エントリには 『10年間使ってみて見えたHaskellの闇と光 - Qiita』などがあります。
  • 10年間使ってみて見えたHaskellの闇と光 - Qiita

    はじめに わたしがHaskellを使い始めてもうそろそろ10年目になります。(タイトルは多少サバを読んでいますね) これまで使ってきた感想をまとめます。 Haskellのつらいところ まずは愚痴らせてください。 コンパイルが遅い 依存モジュールはすべてソースコードからビルドする必要があります。(バイナリ形式のモジュールはありません) 最初のビルドに20分くらい待つのはザラです。 複雑な型システムをつかうと型推論や型レベル計算に時間がかかります。 高速なHaskellプログラムを書くためには多くの関数をインライン化する必要があります。最適化ビルドではインライン展開によってコードサイズが大きくなるので時間がかかります。 デバッグが難しい 公式のGHCiデバッガはありますが、今のところIDEから簡単に利用できるわけではないですし、コンパイル済みのライブラリはデバッグできないです。 近年スタックト

      10年間使ってみて見えたHaskellの闇と光 - Qiita
    • Haskell書いてるときになんとなく気をつけていること - LugendrePublic

      信頼性はない 都市伝説かもしれん 大体枕詞に特別な理由がなければがつく 思いついたら徐々に更新する それは違うよってことがあったら @Lugendre まで ghc 8.6.5の話(8.8.1は仕事で使ってなくてな......) コンパイル通るかの確認だけなら最適化オプションO0でコンパイルする stackでいうとstack build --fast 動かすときはO2ビルドしたほうがいいが,インライン展開に5億年消費する なんならこのくらいは静的解析に任せてもいいが,でかいプロジェクトだと一定時間動いてハングアップするのしか世の中にないのでオワリ VSCode のせい説もある ghcideに期待 CIするときは必ずキャッシュする 毎回一から依存関係やGHCのビルドが走って余裕で1時間超えるようになるので データ構造のフィールドは特に理由がない限り正格にする 意図しないサンクを潰すため 単相

        Haskell書いてるときになんとなく気をつけていること - LugendrePublic
      • WebAssembly backend merged into GHC

        Tweag has been working on a GHC WebAssembly backend for some time. Recently, the WebAssembly backend merge request has landed in GHC, and is on course to appear in the upcoming 9.6 release series. This post will give a quick demonstration of how to try it out locally, and explain what comes in this patch and what will be coming next. Playing with WASM locally If you’re using nix on x86_64-linux, c

          WebAssembly backend merged into GHC
        • GHCのIOマネージャの歴史と僕の苦悩 - あどけない話

          これは、Haskell Advent Calendar 2021 の8日目の記事です。 Haskellのコンパイラとして事実上一択となったGHCには、「軽量スレッド」が実装されています。軽量スレッドは、ネイティブスレッドよりも軽量なスレッドで、他の言語では「グリーンスレッド」とも呼ばれています。Haskellerが並行プログラミングをするときは、軽量スレッドを息を吸うかのように使います。 複数の軽量スレッドの入出力を束ねるのが、IOマネージャです。IOマネージャも単なる軽量スレッドであり、OSから入出力のイベントを受け取り、それぞれの軽量スレッドにイベントを通知します。 軽量スレッド(っぽい)機能を提供する他の言語では、GHCのIOマネージャを参考にしているようです。僕はIOマネージャの開発に深く関わっています。この記事ではIOマネージャの歴史をまとめるとともに、主にmacOSでの実装に関

            GHCのIOマネージャの歴史と僕の苦悩 - あどけない話
          • GHCのバックエンドについて | 雑記帳

            先日リリースされたGHC 9.2.1で、64ビットArm(AArch64)向けのネイティブコード生成器(Native Code Generator; NCG)が実装された。これを機会にGHCのバックエンドについて簡単にまとめてみる。 概略 GHCでHaskellプログラムをコンパイルすると、いくつかの中間言語を経て最終的には機械語が出力される。 この工程の最後の部分を「バックエンド」と呼ぶ。 GHCには Native Code Generator (-fasm)LLVM backend (-fllvm)unregisterised via-C backend の3種類のバックエンドが存在する。このほか、バイトコードインタープリターと-fno-codeもデータ型的にはバックエンドの一種として扱われている。(参照:compiler/GHC/Driver/Backend.hs) Native C

            • State モナドの代わりに Reader モナドを使う

              注意 この記事は公開当時主張に誤りを含んでいたため,大幅に書き直しています.また,公開当時の主張の誤りについても,付録として載せておきました. Haskell で State モナドはモナドの代表格だ.Haskell 入門者は,多くの場合,状態を伴った計算を State モナドで書くことを習うだろう.しかし,実用上の多くの場面では,State モナドではなく他の選択肢を選んだ方がいい場合がある.一つの選択肢が,Reader モナドと可変参照を使う方法だ.今回は,この手法を使う利点と利用場面について考えていこうと思う. なお,環境として以下を想定している.

                State モナドの代わりに Reader モナドを使う
              • Apple Silicon MacでのHaskell/GHCの現状・2022年3月編 - Qiita

                この記事は Haskell Advent Calendar 2021 の21日目の記事です。 2020年に発表されたApple Silicon (Arm) Macは、2021年に新チップ “M1 Pro/Max” が、2022年には新チップ “M1 Ultra” が登場し、ますます勢いを増しています。Mac使いの皆さんはもう手にされましたか? 新しいアーキテクチャーにはハードウェアだけではなくソフトウェアの対応も重要です。この記事では、2022年3月時点のApple Silicon MacへのHaskellエコシステムの対応状況をまとめます。 この記事では、なるべくRosetta 2を使わず、Armネイティブに動作する環境を構築することを目指します。 インストールにどれを使うか UnixでHaskell環境を構築する場合、 パッケージマネージャーを使う GHCupを使う Stackを使う

                  Apple Silicon MacでのHaskell/GHCの現状・2022年3月編 - Qiita
                • Haskell For a New Decade

                  Haskell Problems For a New Decade It has been a decade since I started writing Haskell, and I look back on all the projects that I cut my teeth on back in the early part of this decade and realise how far the language and tooling have come. Back then Haskell was really barely usable outside of the few people who would “go dark” for months to learn it or those lucky enough to study under researcher

                  • Reddit で振り返る今年の英語圏 Haskell 界隈の話題 - Qiita

                    Haskel advent calendar 2023 の1日めの記事です. お仕事も情報系でなく,多忙を言い訳に数年ほとんどコード自体をかけていなかったのですが,最近 e-Gov 法令検索 で公開されている法令XMLを読みたい需要があって久しぶりに Haskell で書いてみたらやはり書きやすく,とても楽しくて改めて感動しました.書きながら自然に思考が整理される感じがよい. Hoogle は変わらぬ使いやすさでモリモリサポートしてくれるし,環境構築も GHCup などが噛み合って随分スムーズで,Haskell Language Server も成熟してきているようです.環境構築については,昨年の Advent Calendar の1日め @mod_poppo さんの記事 などが参考になります. 最近入った言語拡張にも,ちょっとだけコード書く位でも(大規模なあるいは高度なコードじゃなくても

                      Reddit で振り返る今年の英語圏 Haskell 界隈の話題 - Qiita
                    • GHCに初めてコントリビュートした/最近のGHC動向 | 雑記帳

                      事実上の標準デファクトスタンダードなHaskell処理系であるGHCに貢献するというのが去年掲げた目標だったが、それがようやく実現したので報告する。ついでに、最近のGHC開発状況についても簡単にまとめてみる。 「貢献」と言っても色々あって、バグ報告とかも立派な貢献なのだが、ここで目標としていたのは「書いたコードをGHC本体に取り込んでもらう」ことである。 一つ目:fromInteger :: Integer -> {Float,Double} 年末に書いた記事 Haskell/GHCでの浮動小数点数の扱い – Qiita にあるように、現行のGHCのfromIntegerは値の大きさによって丸め方法が違っている。それによってどういう問題が引き起こされるかというと、 import Numeric import Data.Word main = do putStrLn $ "literal :

                      • Haskell Optimization Handbook

                        Haskell Optimization Handbook¶ by Jeffrey M. Young This book assumes you are using ghc 9.2.x or above and using the Linux operating system. If you are new then the best place to start is the How to use this book chapter. If you are returning then feel free to jump to the Table of Contents and best wishes. It is dangerous to go alone, please take this handbook and good luck! Sincerely, The Contribu

                        • 限定継続いろいろ | 雑記帳

                          このブログでは限定継続について過去に何回か記事を書きました: LunarMLと継続限定継続と例外とモナド 今回、LunarML向けのVMに限定継続を実装してみて理解が深まったので、改めて記事にします。 限定継続:スタックを使ったざっくりとした説明 今回はスタックを使って限定継続をざっくりと説明してみます。 関数という概念を持つプログラミング言語では、スタックを使って関数の呼び出しを管理することが多いです。コールスタックとか、スタックのバックトレースとか言いますよね。ここではネイティブのスタックか仮想マシンのスタックかというのは問いません。 関数を呼び出すと、フレームと呼ばれる領域がスタックに確保されて、関数への引数やローカル変数はそこに確保されたりします。 例えば、以下のプログラムを考えます: void g() { // すごい計算 } void f() { double j; g();

                          • GHC IO モナドの中身

                            Haskell の IO モナドって,中身どうなってたんだろと気になってて,ちょっと調べてみた.そのメモ. IO モナドと RealWorld まずは基本から. IO モナドは, Haskell の根幹となるモナドで, main も IO で書く. GHC では中身は次のように定義されている [1]: -- In GHC.Types module of ghc-prim package newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #)) 見ての通り, IO a は State# RealWorld -> (# State# RealWorld, a #) の newtype だ.あんまり見慣れない State# RealWorld という型と (# , #) という型が出てきたけど, State# RealWo

                              GHC IO モナドの中身
                            • JavaScript backend merged into GHC | IOG Engineering

                              A new JavaScript backend was merged into GHC on November 30th, 2022! This means that the next release of GHC will be able to emit code that runs in web browsers without requiring any extra tools, enabling Haskell for both front-end and back-end web applications. In this post, we, the GHC DevX team at IOG, describe the challenges we faced bringing GHCJS to GHC, how we overcame those challenges, and

                              • Nix で Haskell IDE Engine をシュッと入れる - ryota-ka's blog

                                この記事は以下のページに移転しました. blog.ryota-ka.me みなさん,Haskell やってますか?普通に Haskell IDE Engine を入れようとするとビルドにメッチャ時間がかかって「地獄か?」という感じがするので,Nix でシュッと入れていきましょう. Nix のインストール Nix を入れていない人はいないと思うけど,念の為インストール手順です. 「Nixはこの会社以外で役に立つことはないけど、人生が豊かになるから勉強した方がいい」— ポアソン氏 (@hiroqn) June 28, 2019 $ curl https://nixos.org/nix/install | sh $ nix-channel --add https://nixos.org/channels/nixpkgs-unstable $ nix-channel --update Cachix

                                  Nix で Haskell IDE Engine をシュッと入れる - ryota-ka's blog
                                • 独断と偏見で語るGHCのderiving系拡張 - Qiita

                                  先日のHaskell Dayでderivingに関する発表があった Haskell Day 2019を開催しました! aiya000, 「しんさんきぼう」のDerivingストラテジー ので、触発されて私もderivingについて思うところを書いてみます。主にderiving系拡張の落とし穴・注意点に重点を置きます。 標準でderiveできるやつ、またはGHCに組み込まれているやつ (stock deriving) 標準で Eq, Ord, Enum, Bounded, Show, Read, Data.Ix.Ix がderiveできます。この手の話題で Ix はよく見落とされます。ちゅうか Haskell 2010 Language Report, Chapter 11 のderive可能なクラスの一覧からもオミットされている……。 GHC拡張を有効にすることで、他のいくつかのクラスでも

                                    独断と偏見で語るGHCのderiving系拡張 - Qiita
                                  • 新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド

                                    今まで不満の多かったHaskellのレコードの扱いを改善するための一歩として、NoFieldSelectorsというGHC拡張の実装を進めている。 動機 Haskellにはレコードを定義するための構文がある。 data User = User { userId :: Int , userName :: Text } こう定義すると、各フィールドごとにuserId :: User -> IntとuserName :: User -> Textというゲッターに相当する関数が生成される。これらの関数は特別な意味合いを持っており、以下のレコード操作の構文にも利用できる。 構築 User { userId = 0, userName = "Zero" } パターンマッチ case foo of User { userId = x, userName = name } -> ... 更新 foo {

                                      新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド
                                    • GHC 9.2 で導入されたQuick Look型推論アルゴリズムについて - 朝日ネット 技術者ブログ

                                      初めまして、朝日ネット開発部の hogeyama です。 今回は Haskell の中級的なトピックとして、 GHC 9.2 で導入された Quick Look 型推論アルゴリズムを取り上げようと思います。 概要 Haskell のデファクトスタンダードなコンパイラである GHC では通常の多相(ジェネリクス)の一般化である非可述的多相(impredicative polymorphism)を実装していますが、その型推論アルゴリズムは長らく「型推論が弱い」「実装が不安定でコンパイラのバージョンアップでデグレが起きる」といった問題を抱えていました。 しかし昨年10月、Quick Look という新しいアルゴリズムが GHC 9.2 に実装されたことでこの問題が解決しました。 本記事ではこの Quick Look によって何が変わるのか、利用する際に何に気をつければよいのかを非可述的多相の概要

                                        GHC 9.2 で導入されたQuick Look型推論アルゴリズムについて - 朝日ネット 技術者ブログ
                                      • DWARF support in GHC (part 1)

                                        This post is the first of a series examining GHC’s support for DWARF debug information and the tooling that this support enables: Part 1 introduces DWARF debugging information and explains how its generation can be enabled in GHC. Part 2 looks at a DWARF-enabled program in gdb and examines some of the limitations of this style of debug information. Part 3 looks at the backtrace support of GHC’s ru

                                        • Call Arity と融合変換

                                          GHC は,最適化のため Call Arity と呼ばれるコード解析を行っている.この解析で,自由変数が何個引数を持っていいかを判定し,イータ展開を可能にする.リストにおける融合変換とも密接な関係のある解析だ.こいつの存在とどういうことをやっているかはだいたい知っていたんだけど,ちょっと詳しく知りたい事例があったので調べてみた.そのメモ. なお元ネタは,Breitner (nomeata) 先生の Call Arity . イータ展開と最適化 Haskell は知っての通り関数型プログラミング言語なので,息を吐くように関数を第1級として使うし,標準ライブラリに無数の高階関数がある.関数は全てカリー化されていて,部分適用も可能だ.ただ困ったことに Haskell は実用されており,これらの関数型プログラミング言語で常用されているテクニックで書かれたプログラムで,通常のプログラミング言語程度と

                                            Call Arity と融合変換
                                          • Haskellの文字列リテラルはGHCでどのようにコンパイルされるか - Qiita

                                            Haskellの文字列とは まず、Haskell標準の文字型・文字列型が何であるかを確認しておきます。 Haskell 2010では Char 型はUnicode characterを表す、とされています。 Haskell 2010 Language Report -- 6.1.2 Characters and Strings 「文字」というのが非自明な概念であることを知っている方であればUnicode characterって具体的にはなんやねん!と言いたくなるかと思いますが、GHCにおいては Char 型はUnicodeコードポイントを表します。つまり、 0 以上 0x10FFFF 以下の整数 です。特に、サロゲートコードポイント(0xD800 以上 0xDFFF 以下)も有効な Char 型の値です。 GHC の Char 型の説明 String は Char のリストです。 これらの

                                              Haskellの文字列リテラルはGHCでどのようにコンパイルされるか - Qiita
                                            • サンクの構造を見る - Qiita

                                              GHCでは評価戦略がデフォルトで遅延評価ですが、このために引数に関数を適用しただけでは評価自体は行われずに、サンクとして扱われます(ここではinliningやstrictness-analysis等の最適化は考慮しません)。 サンクとは評価を進めるための情報は揃っているけども(遅延評価のために)評価を進めないままに扱うための構造です。GHCでのサンクの実態は引数のないクロージャです。 そしてこのサンクの中身はHaskell上から確認する手段はありません... と思っていたのですが、最近1は中身を確認することができる様ですね。 http://hackage.haskell.org/package/ghc-heap-view ghc-heap-viewはサンクを含むHeap上の構造を確認するためのライブラリです。 前提条件 ここでは以下の環境で動作確認を行っています。 MacOS ghc-8.

                                                サンクの構造を見る - Qiita
                                              • GHC 9.2の新機能と、GHCの動向2021

                                                Haskell Day 2021で「GHCの動向2021」というタイトルで発表しました、mod_poppoです。この記事では、発表の補足としてGHC 9.2の新機能の紹介と、 Data.List の単相化に関する補足を行います。 Haskell Day 2021の動画と筆者のスライドは、それぞれ次のリンクから参照できます: Haskell Day 2021 - YouTube GHCの動向2021 「GHCの動向」のタイトル的な元ネタ(?)は、筆者が3月にブログに書いた GHCに初めてコントリビュートした/最近のGHC動向 です。時代遅れになった記述もあると思いますが、よかったら読んでみてください。 GHC 9.2の新機能 2021年10月29日に、待望のGHC 9.2.1がリリースされました。公式の変更点は 2.1. Version 9.2.1 — Glasgow Haskell Com

                                                  GHC 9.2の新機能と、GHCの動向2021
                                                • GHC 環境構築 概観 と PowerShell - 趣味はデバッグ……

                                                  Haskell の開発環境を構築する方法は何通りかあり、新しいツールが出ると「今はこれだ」とほめるブログも公開されますがそれが初学者を混乱させることがよくあります。 本記事ではビルドツールのインストールにしぼり、開発支援、例えば ghc-mod・haskell-ide-engine・hhp には言及しません。 いくつか典型的な構築方法を確認した後、新たに私が作成したツールを紹介しより初学者を混乱に落とし入れます。 重鎮 Haskell Platform www.haskell.org Haskell 解説書史1の第1波から第3波までのデファクトスタンダードであった重鎮 Haskell Platform です。コンパイラー GHC とパッケージマネージャー Cabal、それにいくつかの準標準ライブラリーをまとめてインストールできるツールでこれをインストールするだけで入門書のコードはすぐ動くと

                                                    GHC 環境構築 概観 と PowerShell - 趣味はデバッグ……
                                                  • リテラルをコンパイラ時にチェックする

                                                    Haskell はいくつかのリテラルで型クラスを使用したオーバーロードを許容している.例えば,Haskell で 1 と書いた場合,この型は 1 :: Num a => a になり, Num のインスタンスを定義することで,リテラルに対する実体をユーザも制御できるようになっている.GHC拡張で文字列に対してのオーバーロードなども提供されている.ただ,提供するデータ型とリテラルによっては,プログラムが意図通りに動かなかったりクラッシュしてしまったりすることがある.これを事前にチェックする仕組みを,コンパイラプラグインで実装する方法を紹介する. なお,環境として以下を想定している. Haskell のオーバーロードリテラルHaskell では整数及び浮動小数点数リテラルにおいて,オーバーロードが許容されている.それぞれ, 整数リテラル: Num のインスタンス 浮動小数点数リテラル: Frac

                                                      リテラルをコンパイラ時にチェックする
                                                    • GitHub - fumieval/Haskell-breaking-changes

                                                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                                                        GitHub - fumieval/Haskell-breaking-changes
                                                      • LiquidHaskell Blog

                                                        LiquidHaskell is a GHC Plugin Posted by Ranjit Jhala Aug 20, 2020 I enjoy working with LH. However, I’d be the very first to confess that it has been incredibly tedious to get to work on existing code bases, for various reasons. LH ran one file at a time; it was a hassle to systematically analyze all the modules in a single package. LH had no notion of packages; it was impossible to import specifi

                                                        • Five benefits to using StandaloneKindSignatures - Ryan Scott

                                                          GHC 8.10.1 is slated to be released soon, and among the improvements that it offers is the new StandaloneKindSignatures language extension. Standalone kind signatures (or “SAKS” for short) are like type signatures, except that they describe type-level declarations instead of term-level values. Here is one example of a standalone kind signature that describes the kind of a type synonym: {-# LANGUAG

                                                          • HIW 2019で発表された、GHC 8.8で導入された機能 - Haskell-jp

                                                            こんにちは。 今回からいくつか、「Haskell Implementors’ Workshop 2019」に私が先月参加した際のレポートとして、印象深い発表をテーマごとに分けた短い記事を執筆します。 最近公開されたGHC 8.8の話はもちろん、未来のGHCやその他のHaskellの処理系を知るのによいイベントでしたので、その一部だけでも伝われば幸いです。 Link to hereそもそもHaskell Implementors’ Workshop (HIW)とは? シリーズ(?)第1回目なので、簡単にHIWそのものについて紹介しておきましょう。 HIWは、ICFP (International Conference on Functional Programming)という関数型プログラミングについての国際会議に併設された、Haskellの実装者のためのワークショップです。 名前の通り、G

                                                              HIW 2019で発表された、GHC 8.8で導入された機能 - Haskell-jp
                                                            • Using GHC low-latency garbage collection in production

                                                              This is a guest post by Domen Kožar. In this post I’ll dive into how low-latency garbage collection (GC) has improved developer experience for Cachix users. The need for low latency Cachix serves the binary cache protocol for the Nix package manager. Before Nix builds a package, it will ask the binary cache if it contains the binary for a given package it wants to build. For a typical invocation o

                                                              • A First Look at Info Table Profiling

                                                                In this post, we are going to use a brand-new (at the time of writing) and still somewhat experimental profiling method in GHC to show how to identify a memory leak and the code causing it. This new profiling method, implemented by Matthew, allows us to map heap closures to source locations. A key feature of this new profiling mode is that it does not require a profiled build (i.e. building with -

                                                                • GHC 9.0.1 released

                                                                  The GHC team is very pleased to announce the availability of GHC 9.0.1. Source and binary distributions are available at the usual place. In addition to numerous bug fixes, GHC 9.0.1 will bring a number of new features: A first cut of the new LinearTypes language extension, allowing use of linear function syntax and linear record fields. A new bignum library, ghc-bignum, improving portability and

                                                                    GHC 9.0.1 released
                                                                  • Stealing Impl from Rust

                                                                    With the new OverloadedRecordDot language extension, we can use the . character to access stuff on records. {-# language OverloadedRecordDot #-} data User = User { name :: String } main :: IO () main = do let user = User { name = "Matt" } putStrLn user.name This is syntax sugar for the following code: import GHC.Records data User = User { name :: String } instance HasField "name" User String where

                                                                    • IDE: Haskell Language Server, binaries and installation

                                                                      Posted on July 24, 2020 by Luke Lau If you’ve ever had to install haskell-ide-engine or haskell-language-server, you might be aware that it is quite a lengthy process. There are several reasons for this, two of the most significant being: Both haskell-ide-engine and haskell-language-server act as a kitchen sink for plugins. These plugins all depend on the corresponding tool from Hackage, and as a

                                                                      • Making GHCIDE smarter and faster: a fellowship summary

                                                                        As a Tweag Open Source fellow, I aimed to improve and build on the Haskell IDE experience, mainly by contributing to the ghcide and haskell-language-server projects. My main goals were to polish up the overall experience, and integrate hiedb, a product of a Summer of Code project last year, into ghcide. The product of this fellowship was a good selection of ghcide and haskell-language-server featu

                                                                          Making GHCIDE smarter and faster: a fellowship summary
                                                                        • Haskell2020 Is Dead, but All Hope Is Not Lost :: Reasonably Polymorphic

                                                                          Haskell2020 is the long-awaited sequel to Haskell2010 — a formal, prescriptive standard of the Haskell language, that all implementations should adhere to. Today we have two previous standards, Haskell2010 and Haskell98, but neither is particularly in-line with the language as it’s written in this day and age. The aim of Haskell2020 is to bring these older standards in line with the way the langua

                                                                          • 2023年にHaskell関連で知ってよかったこと - あどけない話

                                                                            これはHaskell Advent Calendar 2023の19番目の記事です。 フォーマッター 以前、フォーマッターをいくつか試しましたが、どれもイマイチでした。しかし、fourmoluはいけてます。fourmoluは、Ormoluのフォークで、Ormoluが偉大なのでしょう。両方試しましたが、僕はformoluに決めました。 Hackageに上がっているので好きな方法でインストールしてください。 % cabal install fourmolu formoluにHaskellのプログラムを渡すと、整形したプログラムを出力してくれます。ファイルの内容を直接書き換えたいときは、-iオプションを渡します。エディタやIDEと連動できますが、お試しでプロジェクト全体を整形するには、以下のようにするといいでしょう。 % find . -name "*.hs" | xargs fourmolu

                                                                              2023年にHaskell関連で知ってよかったこと - あどけない話
                                                                            • The state of GHC on ARM — The Glasgow Haskell Compiler

                                                                              bgamari - 2020-05-15 The ARM architecture represents an overwhelming majority of CPUs on this planet. Furthermore, there are now GHC users (myself included) who stake their livelihood on being able to deploy their Haskell applications on ARM-based platforms. As such, the task of making GHC run well on ARM has never been more important. This task has a long history, being the project that brought m

                                                                              • HIW 2019で発表された、GHC 8.10に導入されるであろう機能 - Haskell-jp

                                                                                前回から引き続き、Haskell Implementors’ Workshop 2019への参加レポートとして、私の印象に残った発表をいくつか紹介します。 今回は、「GHC 8.10に導入されるであろう機能」です。 いずれも該当するMerge Requestはmasterブランチにマージ済みなので、おそらくGHC 8.10で提供されるでしょう。 Link to hereHoleFitPlugins and the future of interactive development in GHC 発表者: Matthías Páll Gissurarson Chalmers University of Technology, Sweden 該当のMerge Request: !153 該当のGHC Proposal: なし 昨年のHaskell Symposiumでも発表されてGHC 8.6

                                                                                  HIW 2019で発表された、GHC 8.10に導入されるであろう機能 - Haskell-jp
                                                                                • GHC Development

                                                                                  DocumentationThe Wiki is a comprehensive resource about GHC development. Use it when this cheatsheet is insufficient. Documentation for master is built with GitLab CI: User's Guide – command line options, language extensions, and so on. Libraries – Haddock for base, containers, transformers, and other boot libraries. Getting the CodeGHC has its own GitLab instance. You can sign in with your GitHub

                                                                                  新着記事