タグ

ghcに関するigrepのブックマーク (366)

  • GHC 9.10の新機能

    GHC 9.10.1-alpha1が2024年3月14日にリリースされました。正式版のリリースは4月ごろを目指しているようです(9.10.1 · Milestones · Glasgow Haskell Compiler / GHC · GitLab)。 この記事では、GHC 9.10の新機能を確認していきます。過去の類似の記事は GHC 9.2の新機能と、GHCの動向2021 GHC 8.10とGHC 9.0の新機能 GHC 9.4の新機能 GHC 9.6の新機能 GHC 9.8の新機能 です。 この記事は網羅的な紹介記事とはなっていません。是非、公式のリリースノート類も参照してください: 2.1. Version 9.10.1 — Glasgow Haskell Compiler 9.10.0.20240313 User's Guide docs/users_guide/9.10.1-

    GHC 9.10の新機能
  • 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関連で知ってよかったこと - あどけない話
  • Glasgow Haskell Compiler の書換え規則における高階型のパターン照合 - Qiita

    この記事は Haskell Advent Calendar 2023 の 18 日目の記事です. はじめに 2023 年 10 月にリリースされた GHC 9.8 で,GHC の書換え規則における高階型のパターン照合が強化されました. 強化された書換え規則を実際に試してみたので,書換え規則の基を振り返りつつ,簡単に紹介したいと思います. GHC 9.8.1 リリースノート より: Rewrite rules now support a limited form of higher order matching when a pattern variable is applied to distinct locally bound variables, as proposed in GHC Proposal #555. For example:

    Glasgow Haskell Compiler の書換え規則における高階型のパターン照合 - Qiita
    igrep
    igrep 2023/12/19
  • GHCへの私の貢献2023 | 雑記帳

    この記事は Haskell Advent Calendar 2023 の6日目の記事です。 私はここ数年、HaskellコンパイラーであるGHCに貢献しています。この記事では、今年(2023年)に私が行った貢献を紹介します。 GHCの開発は独自ホストされたGitLab上で行われています。 Glasgow Haskell Compiler / GHC · GitLab 私の貢献 今年は貢献と言っても、バグ報告のみ(修正パッチは含まない)のケースが多いです。私はLunarMLが忙しいので……。 FMAについてコメント(2月ごろ) 2〜3月ごろに、FMA (fused multiply add) を計算するプリミティブをGHCに実装するマージリクエストが出ていました。 !9996: Add fused multiply-add operations · Merge requests · Glas

    igrep
    igrep 2023/12/06
    素晴らしい
  • 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
    igrep
    igrep 2023/12/01
    ほとんどRedditは見てないのでありがたや
  • Haskell/GHCのSIMDについて考える | 雑記帳

    最近のコンピューターの性能を活用するには、何らかの並列化が必須です。具体的にはSIMDの活用やマルチコア(それとGPU)です。プログラミング言語でこれらを利用できれば「C言語よりも速い」を名乗れます。この記事では並列化技術のうち、SIMDを考えます。 HaskellコンパイラーであるGHCにはSIMDのプリミティブ(データ型と関数)が実装されています。しかし、広く使われているとは言い難いです。 使いづらい要因はいくつか考えられます。使えるバックエンドの少なさが一つで、現状(GHC 9.8時点)では、x86(_64)向けのLLVMバックエンドでしか使えません。AArch64など他のアーキテクチャーや、NCGバックエンドでは使えません。 別の要因として、用意されたプリミティブが少ないというものがあります。例えば、整数のビット演算はできません。 現状 論文 GHCにSIMDプリミティブを実装した

    igrep
    igrep 2023/08/18
  • Asterius から GHC WebAssembly バックエンドに移行した話 - Qiita

    はじめに 趣味で作っているアプリケーションを Haskell で書いていて、これをブラウザで動かせるようにしたいというのがありました。 そこで、 Haskell で書いたコードを、WebAssembly にコンパイルすることでブラウザ上で呼び出せるようにする そのための諸々の手順を GitHub Actions で自動化しつつ GitHub Pages にデプロイする というのをやるために、かつて Asterius という Haskell → WebAssembly コンパイラを使っていたのですが、最近これが GHC 体にマージされたという話があり、移行することにしました。 Asterius とは Haskell から WebAssembly へのコンパイラです。 Asterius を動かしてみた人の情報としては、以下が詳しいと思います。 AsteriusでHaskellの関数をJSから

    Asterius から GHC WebAssembly バックエンドに移行した話 - Qiita
  • GitHub - kazu-yamamoto/network-cabal

    igrep
    igrep 2023/05/15
    ビルドするGHCのバージョンを9.4未満に制限するために、baseのバージョン上限を書き換えた話
  • GHC 9.6の新機能

    GHC 9.6.1が2023年3月12日にリリースされました。 GHC 9.6.1 is now available - Announcements - Haskell Community この記事では、GHC 9.6の新機能を確認していきます。過去の類似の記事は GHC 9.2の新機能と、GHCの動向2021 GHC 8.10とGHC 9.0の新機能 GHC 9.4の新機能 です。 この記事は網羅的な紹介記事とはなっていません。是非公式のリリースノート類も参照してください: 2.1. Version 9.6.1 — Glasgow Haskell Compiler 9.6.1 User's Guide Changelog for base-4.18.0.0 | Hackage GHC 9.6.x Migration Guide GHC 9.6に入る機能 JavaScriptバックエンド

    GHC 9.6の新機能
  • 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
  • 限定継続いろいろ | 雑記帳

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

    igrep
    igrep 2022/10/30
    LunarML, Wasm stack-switching proposalを試しに実装するのに良さそう(どっちも詳細詳しくないので知らんけど)
  • The Haskell Error Index — Haskell Error Index

    Welcome This site describes the various messages that can be returned by Haskell-related tools, including both errors and warnings. For example GHC, the most-commonly-used Haskell implementation, started emiting a code with the format [GHC-12345] for its messages in version 9.6.1. These codes can be looked up below for further information. Other Haskell-related tools are welcome to add their own m

  • GHC ignores lines beginning `#!`

    igrep
    igrep 2022/10/16
    へぇ。不思議。
  • GHC 9.4の新機能

    GHC 9.4.1が2022年8月7日にリリースされました(GHC 9.4.1 released — The Glasgow Haskell Compiler)。 この記事では、GHC 9.4の新機能を確認していきます。過去の類似の記事は GHC 9.2の新機能と、GHCの動向2021 GHC 8.10とGHC 9.0の新機能 です。 GHC 9.4に入る機能 ここでは筆者が独断と偏見で選んだ変更をリストしています。公式の変更リストは 2.1. Version 9.4.1 — Glasgow Haskell Compiler 9.4.1 User's Guide ソース:docs/users_guide/9.4.1-notes.rst · ghc-9.4 · Glasgow Haskell Compiler / GHC · GitLab Changelog for base-4.17.0.

    GHC 9.4の新機能
    igrep
    igrep 2022/08/14
    ありがたや
  • 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型推論アルゴリズムについて - 朝日ネット 技術者ブログ
    igrep
    igrep 2022/05/26
    Simplify subsumptionはこれのためだったのか。なるほどなぁ。
  • IDE: Multiple Home Units for GHC - GSoC Aftermath

    Posted on October 12, 2020 by Fendor It has been a great summer for Haskell IDEs. Multiple successful Google Summer of Code projects and lots of contributions to Haskell Language Server. Additionally, Haskell IDE Engine has finally been put to rest! Lots of news, lots to talk about. In this blogpost, I will tell you a bit about my own Google Summer of Code project, in the scope of which I tackled

    igrep
    igrep 2022/03/14
  • Typed Template Haskell in GHC 9

  • 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
    igrep
    igrep 2021/12/21
    “(テスト目的にはガンガン使ってやりましょう、というかalpha版やRCの時点でそうすべきだった)” それなー...
  • Bazel でも GHC 9.2.1 でビルドがしたい

    記事は 「Haskell Advent Calendar 2021」の4日目の記事です。 空いてたので埋めました。 Bazelというビルドツールがあります。Bazelでは、いわゆるライブラリのようなものを使うことで、簡単にさまざまなプログラムのビルドやテストの実行を同じインターフェースで行うことができます。例えば: bazelbuild/rules_go : Goプログラムのビルドやテストなど bazelbuild/rules_docker : Dockerイメージのビルドやプッシュなど bazelbuild/rules_nodejs : Nodeプログラムのビルドやテストなど そして、tweag/rules_haskell を使うことで、Bazel を利用して Haskell プログラムのビルドが行えます。今回は今年でた新しいバージョンの Haskell 処理系、GHC 9.2.1 を

  • GHC Source Pluginによるシンボルの削除 - Qiita

    目的 Haskellのパッケージに含まれるあるシンボルをパッケージに外に見せたくない場合に、 逆に見せたいシンボルを列挙して対応していませんか? 今回紹介する方法はGHC Source Pluginを使ってシンボルをパッケージ外に出さない方法を紹介します。 動機の確認 シンボルをパッケージ外に出さない方法を紹介する前になぜそのようなことをやりたいのか確認しておきます。 C++の関数をHaskellで呼び出せるようにinline-c-cppでラッパを作りたい場合に基的には外に見えるようにしたいが inline_c_ffi_適当な番号というinline-c-cppの内部関数が生成されました。 inline-c-cppのtemplate haskellに渡すデータは次のようなファイルなのですが、

    GHC Source Pluginによるシンボルの削除 - Qiita