タグ

haskellに関するauthorNariのブックマーク (6)

  • HaskellとRuby1.8までのグリーンスレッド

    nari3 @nari3 GVLの話で思い出したけど、山さんが書かれてたユーザスレッドの話って( http://t.co/jmqrhonlZ3 )どうなんだろう。Ruby側からの意見がなかった気がするけど、書いてあるとおりってことなんだろうか。 2013-03-29 11:18:35 nari3 @nari3 "We have an accurate GC, which means that the Haskell stack can be movable, whereas the C stack isn't" うーん…? 2013-03-29 11:28:23

    HaskellとRuby1.8までのグリーンスレッド
    authorNari
    authorNari 2013/03/29
    グリーンスレッド,まとめてみた
  • GCをみればRTSが見えてくる、かも。。。

    2012/12/15の「年末恒例 #QtJP #MeeGoJP #KDE #TizenJP #FirefoxOSJP #LinaroJP 超勉強会2012」用に作成した資料です。

    GCをみればRTSが見えてくる、かも。。。
  • Chapters - Learn You a Haskell for Great Good!

    Introduction About this tutorial So what's Haskell? What you need to dive in Starting Out Ready, set, go! Baby's first functions An intro to lists Texas ranges I'm a list comprehension Tuples Types and Typeclasses Believe the type Type variables Typeclasses 101 Syntax in Functions Pattern matching Guards, guards! Where!? Let it be Case expressions Recursion Hello recursion! Maximum awesome A few m

  • (続)Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話

    Haskell(GHC)での軽量ユーザスレッドの実装方法で、Cmm が軽量スレッドのポイントと書きました。しかし、GHC の実装者 Simon Marlow 先生から「Cmm は関係ないよ」と教えて頂きました。 StgCall StgCall がいくつかのレジスタを保存するのは、採用しているCの関数呼び出し規約がそうなっているから。スレッドとはまったく無関係。 GHC のランタイムは C で書かれている。よって、スケジューラからスレッドを呼び出すと、C から Haskell を呼び出すことになる。C では、呼び出された関数がレジスタを保存しなければならない。Haskell の関数には、こういった制約はない。なので、C から Haskell の関数を呼び出す際は、C の規約を肩代わりしてやる必要がある。それが StgCall。 スタック Haskell のスタックは C のスタックと同様、特

    (続)Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話
    authorNari
    authorNari 2011/10/29
    グリーンスレッド, "安全なポイントのみでコンテキストスイッチする","保存しなければならないコンテキストは、CPU に依存しない"
  • Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話

    命令型言語の JavaRuby がユーザスレッドからカーネルスレッドに移行したのとは対照的に、関数型言語の Erlang や Haskell では軽量なユーザスレッドを提供することに成功しています。僕は、この違いが何から生じているのか理解したいと思っています。この記事では、これまで調べたことをまとめます。 軽量なユーザスレッドは Erlang が有名ですが、Haskell (GHC)でも利用できることを重ねて強調しておきます。Haskell の方が Erlang よりも速いようです。追記:フェアな比較ではないようなので、話半分で参照して下さい。 Rubyの場合 Ruby 1.8 まで提供されていたユーザスレッドは、軽量とは言えませんでした。その理由は、ユーザスレッドをコンテキストスイッチさせる際にスタックをコピーしていたからです。Rubyソースコード完全解説の第19章 スレッドによれ

    Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話
    authorNari
    authorNari 2011/10/29
    green thread, "スタックポインターを書き換えるアセンブラを頑張って書いている"
  • Parsec, 高速なコンビネータパーサ

    文書は次に掲げる URL で示される文書の部分的な邦訳です。 http://www.cs.uu.nl/people/daan/download/parsec/parsec.html Parsec, 高速なコンビネータパーサ Daan Leijen University of Utrecht Dept. of Computer Science PO.Box 80.089, 3508 TB Utrecht The Netherlands daan@cs.uu.nl, http://www.cs.uu.nl/~daan Parsec, 高速なコンビネータパーサ Daan Leijen University of Utrecht Dept. of Computer Science PO.Box 80.089, 3508 TB Utrecht The Netherlands daan@

  • 1