New Threads

HDBC-mysqlで、ブロックが発生するクエリを実行した際に、他のスレッドが停...

HDBC-mysqlで、ブロックが発生するクエリを実行した際に、他のスレッドが停止してしまい困っています。
対処方法などご存知の方いたら教えて下さい。
(HDBCというより、ffiで一般的な話な気もしますが、調べてもわからず、、)

module Main where

import Control.Monad
import Database.HDBC
import Database.HDBC.MySQL
import Control.Concurrent

main = do
  forkIO $ do  -- quickQuery'でブロックが発生した時点で処理がとまる
    forM_ [0..10] $ \i -> do
      print i
      threadDelay $ 1000*1000
  conn <- connectMySQL defaultMySQLConnectInfo {  } 
  withTransaction conn $ \c -> do
    quickQuery' c "select * from hoge where id = 1 for update" [] -- 別途ロックしてから実行
  threadDelay $ 10000*1000


ghc-options:         -threaded -rtsopts -with-rtsopts=-N -eventlog

3 replies

凄く初歩的な質問で恐縮なのですが、 Text←→Intの変換は、どのような方法が...

凄く初歩的な質問で恐縮なのですが、
Text←→Intの変換は、どのような方法が定番なのでしょうか?

今は、プログラム毎に(pack . show)や(read . unpack)で変換しているのですが、
毎回記述するので、何かライブラリ側で提供されていないのかなぁと思う一方、
text-showとData.Text.Readで行うのも対称的じゃないので、どうなんでしょう?と思っている次第です。
よろしくお願い致します。

16 replies

機械学習のライブラリで良さげなものを教えてください。

機械学習のライブラリで良さげなものを教えてください。

7 replies

haddock の質問です。 モジュールや関数のドキュメントの出力する/しないを...

haddock の質問です。
モジュールや関数のドキュメントの出力する/しないを、環境変数か何かで切り替えたりするようなことはできますでしょうか?
内部向け(development)と外部向け(production)で、出力内容を切り替えたいです。

7 replies

stackのtestフォルダー内にあるファイル(例えば`Spec.hs`)で定義...

stackのtestフォルダー内にあるファイル(例えばSpec.hs)で定義した関数をghciを用いてターミナルで実行できるようなコマンドがあったと思うのですが、なんでしたっけ。。
例えば Spec.hs内にfoo :: [Int] -> Boolという関数があった場合にはghci内で
quickCheck foo
と呼び出したいのです。

3 replies

`blaze-html`を用いて以下のようなものを生成したいのですが、どうすれば...

blaze-htmlを用いて以下のようなものを生成したいのですが、どうすればよいでしょうか

<p>Hello <span>World</span></p>

3 replies

Stackを用いてGHCをインストールしていなくても各OSで実行可能なプログラム...

Stackを用いてGHCをインストールしていなくても各OSで実行可能なプログラムを生成する方法ってありますかね。。

8 replies

machinecell の質問です。 ストリームを最後まで `accum` して...

machinecell の質問です。
ストリームを最後まで accum して、その結果を使ってストリームを最初から流し直す、みたいなプロセスってどう書けばよいのでしょうか?
雰囲気的には、こんな感じのことがやりたいです。

-- |
-- >>> P.run pa [1 .. 3]
-- [(1,6),(2,6),(3,6)]
pa :: Monad m => P.ProcessT m (P.Event Int) (P.Event (Int, Int))
pa = proc x -> do
  sum' <- P.accum 0 -< (+) <$> x
  end <- P.onEnd -< x
  sum'' <- returnA -< sum' <$ end
  returnA -< (,) <$> x <*> sum''     -- Event a は Applicative でないのでここでエラー

7 replies

<https://conscientiousprogrammer.com/blo...

https://conscientiousprogrammer.com/blog/2014/08/07/understanding-cloure-transducers-through-types/
上記の記事の中で以下のような記載があったので iteratee について調べていたのですが、
関連する資料は 2010 年ごろの物が多く最新の情報などはあまり反映されていないようでした。(気がするだけかも?)
> well-known types such as foldables, iteratees, lenses, etc.

https://www.yesodweb.com/blog/2010/09/enumerators-tutorial-part-1
この記事は enumerator パッケージにおける実装などについて詳しく書いているのですが肝心の enumerator が deprecated になっていました。

このあたりについてどの辺が参考になるかなど教えていただけると嬉しいです。
ちなみに、オリジナルのものはまだ目を通せていないです。
http://okmij.org/ftp/Haskell/Iteratee/index.html)

3 replies

module exportで昔からわからないことがあるんですが `import ...

module exportで昔からわからないことがあるんですが
import qualified Data.Text as T
のようにimportしたものを1つのファイルにまとめてprefixを共通させることは出来ますかね?
プレフィクスなしのものはmodule exportで出来るんですが…
as Import.Tみたいに書いても出来ない

12 replies

functorの定義にreturnが入っていないのはどうしてですか?(圏論のfu...

functorの定義にreturnが入っていないのはどうしてですか?(圏論のfunctorの定義的には入って欲しいと思ったんですが)

6 replies

型宣言の中に :~&gt; という記号を見かけることがあるのですが、これは何者な...

型宣言の中に :~> という記号を見かけることがあるのですが、これは何者なんでしょうか・・・? コード例としてはQiitaの以下の記事があります(コメントで質問しているのも私です)

20 replies

ソースを非公開のままで Haskell 製のライブラリを提供する方法を探してます...

ソースを非公開のままで Haskell 製のライブラリを提供する方法を探してます。
ソース非公開のパッケージを作る方法(= pre built なバイナリ + ヘッダのようなもの)ってありますでしょうか?

15 replies

windowsでHDBC-mysql使っている方いますか? こちらの記事やhdb...

windowsでHDBC-mysql使っている方いますか?
こちらの記事やhdbc-mysqlのissueを見ると使うの結構大変そうだなと思ったのですが、どちらもある程度古い記述のため、もしかしたら周辺環境とかで状況変わってないかなと。
http://tsubaki.hatenablog.com/entry/20121020/1350734844

3 replies

こんにちは。 HaskellでMessagePackのライブラリはどれを使えばよ...

こんにちは。 HaskellでMessagePackのライブラリはどれを使えばよいかご存知の方、教えていただけますか?

data-msgpackというライブラリが該当するかと思い調べているのですが、 timestampの読み込みで、このコードだと、 2バイト目以降を読んでいるように思うのですが、 msgpackの仕様をみると、2バイト目は“Type”なので、読むなら3バイト目以降じゃないといけない気がしてます。ちゃんとテストすればいいのですが、そもそもこのライブラリでよいのかどうか自信がなく、深入りするまえにおたずねしています。

https://github.com/TokTok/hs-msgpack/blob/ecfa24d5e237639597797b8e826b37e92efe4fe3/src/Data/MessagePack/Get.hs#L146

https://github.com/msgpack/msgpack/blob/master/spec.md#ext-format-family

3 replies

`stack hoogle` コマンドを普通に実行すると、現在開発している(st...

stack hoogle コマンドを普通に実行すると、現在開発している(stack.yamlを置いている)プロジェクトのインデックスを生成したいのか、開発中のプロジェクトのビルドを始めます。
これを、依存しているパッケージのドキュメントに対するインデックスの生成に限定することはできるでしょうか?
開発中のプロジェクトは、ビルドが通らない状態になっていることが多いので、開発中のプロジェクトが原因でインデックスを生成できないのはつらいです。

3 replies

2つのライブラリーがあって、 `MonadError SomeException...

2つのライブラリーがあって、 MonadError SomeException m => m a な文脈の中で MonadThrow m => m a な関数を使いたくなったんですが、混ぜるハックありますかね?

foo :: MonadError SomeException m => m a
foo = do
  -- ここで使いたい
  -- 型はライブラリー A で決まってある

bar :: MonadThrow m => m a
-- これを使いたい
-- 型はライブラリー B で決まってある

11 replies

Extensible Effectが保持するモナド数によらずに定数時間で処理でき...

Extensible Effectが保持するモナド数によらずに定数時間で処理できるのはなぜなんですか?(この記事です https://konn-san.com/prog/haskell/extensible-effects.html

6 replies

Slack上の「Haskell入門 関数型プログラミング言語の基礎と実践」読書会...

Slack上の「Haskell入門 関数型プログラミング言語の基礎と実践」読書会で
「transformersパッケージと mtlパッケージの違いはなんだろう」
という疑問が出てました。
https://umekitahs.slack.com/

4 replies

`machinecell` について質問です。 <https://hackage...

machinecell について質問です。
https://hackage.haskell.org/package/machinecell

複数のストリームが同時に流れることがあると思うのですが、その場合、複数スレッドで並行(?)処理されるような機能はありますでしょうか?
readme に parallel という文字が見えるのですが、それがどういう意味なのかいまいちつかめず・・・

6 replies