5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  
レス数が950を超えています。1000を超えると表示できなくなるよ。

【Lisp】プログラミング言語 Clojure #3【JVM】

1 :デフォルトの名無しさん:2013/09/28(土) 11:03:28.38
JVM上で動作するLisp方言「Clojure」のスレ。

Clojure - home
http://clojure.org/
http://www.try-clojure.org/

前スレ:
【Lisp】プログラミング言語 Clojure #2【JVM】
http://toro.2ch.net/test/read.cgi/tech/1318498898/
【Lisp】プログラミング言語 Clojure【JVM】
http://hibari.2ch.net/test/read.cgi/tech/1255533519/

168 :デフォルトの名無しさん:2014/02/01(土) 23:18:43.09
>>167
.javaなruntimeクラスとかどうやってコンパイルしてるん?

169 :デフォルトの名無しさん:2014/02/02(日) 12:57:22.64
ローカルの ~/.m2 リポジトリをUSBメモリやモバイルPCに入れて、
オフラインで lein 使用できないかな?

170 :デフォルトの名無しさん:2014/02/02(日) 13:49:18.44
>>169
$HOMEを書き換えれば使えるんじゃね?

171 :デフォルトの名無しさん:2014/02/02(日) 23:31:31.18
Clojureは今のところJavaで実装されてる。ClojureのコンパイラをClojureで書き直すプロジェクトはClojure Contribの1つとして既に走ってるよ。

172 :デフォルトの名無しさん:2014/02/03(月) 23:57:20.87
Java言語習得済み人に聞きたいんだけどメソッドの大文字小文字の命名規則ってある?
kとKの違いでプログラミングClojureのSnakeゲーム時間めっちゃとられた

173 :デフォルトの名無しさん:2014/02/04(火) 00:30:48.62
メソッド名は小文字から始まって、単語の区切りの先頭を大文字で
なので単語はアンダーバーで区切らず、そのまま連結する

というのが基本で、○○法とかの固有名詞の場合はそのときそのときで

今は日本語のメソッド名も使えるらしいが、その場合のルールは不明

174 :デフォルトの名無しさん:2014/02/04(火) 01:04:01.73
ClojureScriptでhello world書いたら1MB弱あるjsファイル吐かれて驚いたんだけどこれが普通なの?
一応pretty print切ったら600KB少しにはなった

175 :デフォルトの名無しさん:2014/02/04(火) 04:30:37.09
>>174
google closure compilerがゴリゴリ削るはずなんだけど
:optimizations が :none とか :whitespace になってたりしない?

176 :デフォルトの名無しさん:2014/02/04(火) 10:53:27.86
>>173
なるほど、そういうことか
そうやってクラス名とメソッド名を区別するわけか
thx

177 :デフォルトの名無しさん:2014/02/05(水) 06:09:12.77
haskel caml ml scala 使いのおれがclojureにうつるので今現在のおすすめ本ほしえてくれ
主要な本、英語か日本語で 特徴つけてくれたらうれしい

178 :デフォルトの名無しさん:2014/02/05(水) 06:55:56.35
日本語書籍
オーム社
プログラミング Clojure 第二版(PDF版アリ)
Clojureの基本解説書、これよんだ後はclojarsとgithub探訪で事足りるような?

技術評論社
おいしいClojure
フレームワークやライブラリの紹介集なので必要かどうかは微妙だが名前が類推できないものとかをちょろっと知るには便利

英語書籍(基本ebook)
Joy of Clojure
入門書 Programming Clojureとどちらか片方あればOK

Clojure in Action
入門書+α +αの所が良い感じ TDD, Data storage, web, DSLとか

Clojure Programming
これは読んでないのでしらない

179 :デフォルトの名無しさん:2014/02/05(水) 20:27:20.90
Very thanks

やっぱ日本語と英語じゃ理解の速度も深さもちがうから
日本語書籍 オーム社 プログラミング Clojure 第二版(PDF版アリ)
を週末に買いに行くわ

ただ、projectの組み方とか、開発環境の細かい使い方セッティングの仕方とか
かいてあるのもほしい、eclipse for java みたいなののつかいかた
lein とかの使い方、webあされば分かるんだろうけど、
まとまってるのがいい本とかで、その方が達成もあるし。

180 :電波いっぱい:2014/02/05(水) 23:26:58.73
>>179

使い方方面であれば、これはいいと思う。
http://pragprog.com/book/dswdcloj/web-development-with-clojure

webベースのいくつかのシステムを1から作り上げていく過程を解説するという流れで進んでいく。
clojureのバージョンも最新の1.5.1対応。
leiningenの説明もあり。
ideはLightTable。


さておき、Joy of Clojureは入門書では無いと思う。一通り身についた頃に読むと、clojureらしい書き方っていうのがわかる本。

181 :デフォルトの名無しさん:2014/02/06(木) 00:57:12.73
joy of clojureは本自体にそんなことが書いてあるもんなぁ

182 :デフォルトの名無しさん:2014/02/07(金) 00:45:16.62
プログラミングClojureの5,6章はJavaの前提知識がないと辛いものがあるな
7章はめっちゃすんなり読めるのに

183 :デフォルトの名無しさん:2014/02/07(金) 00:51:17.32
>>175
optimizationsをadvancedに変えたら素のJS並に減ったわ
でもこれJSのライブラリと相性悪いみたいなんで萎えた・・・

184 :デフォルトの名無しさん:2014/02/07(金) 08:52:33.77
http://otabat.hatenablog.com/entry/20121123/1353674855
細かい指定方法があった

185 :デフォルトの名無しさん:2014/02/07(金) 11:19:08.24
それを読んだので萎えた

186 :デフォルトの名無しさん:2014/02/08(土) 16:01:14.48
>>180 thanks 日本語の本読んでから見てみる

187 :デフォルトの名無しさん:2014/02/09(日) 22:02:16.24
日本語の書評があったので、転載

1. Web Development with Clojure
Clojure で Web アプリ開発する方法を調べようとして,ググり疲れた人向けです.

本書では Compojure/Ring の組み合わせについて, 一通りサンプル Web アプリケーションが動くまでを解説しています.そのほか (続く)

2. Clojure High Performance Programming
この本はおすすめなので,絶賛します.
この本の大部分は (遅くならない)普通の Clojure プログラムの書き方 の説明に費されています.

そこで,この本は次のような人におすすめです.
初級〜中級レベルの Clojure プログラマをこれから目指す入門者
(続く)


3. Clojure for Domain-specific Languages

これは、英語の書評があったけど、DSLが40ページで、残りが入門書とのこと。
あまりお勧めされてはいなかった。

似たような分野だと、
実践プログラミングDSL ドメイン特化言語の設計と実装のノウハウ

Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM
がある。

そういえば、clojureの書籍での入門順は何ヶ所で見た気がする。こことか
http://www.bigjason.com/blog/a-path-to-clojure

188 :デフォルトの名無しさん:2014/02/10(月) 19:49:57.63
nilと()って分けてみたはいいけどあまりうまくなかったという感じがしない?
利便性に振った結果か、結局色んな所で同一視してるし……

189 :デフォルトの名無しさん:2014/02/10(月) 23:07:26.60
nilとfalseを分けたschemeが嫌いな人には向いてると思う>>Clojure

190 :デフォルトの名無しさん:2014/02/11(火) 00:23:41.32
というか、嫌なら、適当なシンボルを偽に割り当てればいいのではなかろうか

191 :デフォルトの名無しさん:2014/02/14(金) 20:03:15.49
プログラミングClojure第二版の10.4の

lein noir new clojurebreaker

って

lein new noir clojurebreaker

の間違いじゃね?

192 :デフォルトの名無しさん:2014/02/15(土) 08:03:30.33
kindleマーケットで100円の本買ってClojureの勉強はじめた
Android上で動くワンペインアウトラインプロセッサ作りたい

193 :デフォルトの名無しさん:2014/02/15(土) 15:29:39.97
あのkindle本、追体験出来るように書かれてるので独習にいいよね。

194 :デフォルトの名無しさん:2014/02/15(土) 23:15:27.33
seesawで表示させるとUbuntuだとテキストめっちゃ汚いんだけどWindowsだとどうなんだろ

195 :デフォルトの名無しさん:2014/02/16(日) 03:54:07.02
>>194
font設定しないと駄目じゃね?

196 :デフォルトの名無しさん:2014/02/16(日) 04:24:20.25
>>194
Javaのメソッドで直接アンチエイリアスの設定をしないと綺麗にならないよ。

197 :デフォルトの名無しさん:2014/02/16(日) 04:37:24.76
間違えた。"(anti-alias g)"でいけたわ。

198 :デフォルトの名無しさん:2014/02/16(日) 14:18:22.71
clojure-1.6.0がbetaになったらしい
https://groups.google.com/forum/m/#!topic/clojure/tseJgAi3HC4
細かい拡張とバグフィックス
あとはパフォーマンス的には、hashとstmとprotocol呼び出しの効率あがったみたい。

199 :デフォルトの名無しさん:2014/02/16(日) 18:04:34.54
>>198
hashはそんなに重いと感じたことないけどprotocolはすげーありがたい。
stmは粒度気にしてればパフォーマンスあんまり気にならなかったけど、レースコンディションの激しいものでもOKってわけじゃないよね?

200 :デフォルトの名無しさん:2014/02/16(日) 18:21:14.27
>>195
>>196
フォント設定したらそこそこ綺麗になった
thx

201 :デフォルトの名無しさん:2014/02/16(日) 23:16:52.08
>>199
単純に使ってないシステムコール(時計)を消去しただけみたい。

202 :デフォルトの名無しさん:2014/02/16(日) 23:39:30.74
もともとトランザクショナルメモリは、GILやジャイアントロックのようなロックを並列処理出来るようにしたり、書き込みが一箇所に集中しない時に使って楽するものみたいだし、
カウンターみたいなのは、合成(reduce)していく設計になるんじゃないかと思った。

203 :デフォルトの名無しさん:2014/02/16(日) 23:52:52.21
http://tnoda-clojure.tumblr.com/post/60197800824/reducers
最近知ったんだけど、reducers使うと効率いいらしい。

204 :デフォルトの名無しさん:2014/02/17(月) 00:36:36.78
>>203
カリー化ってClojureに実装されてなくね?

205 :デフォルトの名無しさん:2014/02/17(月) 05:27:34.71
>>203
勉強になった

206 :デフォルトの名無しさん:2014/02/17(月) 12:29:59.97
Quilって使ってる人居る?

207 :デフォルトの名無しさん:2014/02/17(月) 22:19:18.20
なんか怖いが第一印象

208 :デフォルトの名無しさん:2014/02/21(金) 00:37:52.59
Quilはけっこう便利
これなら手軽にClojureでゲームが作れたりするんじゃないだろうか
ただgithubのドキュメントがまさにイギリス人の英文って感じなのがあれだけど

209 :デフォルトの名無しさん:2014/02/22(土) 20:26:54.41
test

210 :デフォルトの名無しさん:2014/02/22(土) 20:46:56.31
あれ、まだ?

211 :電波いっぱい:2014/02/23(日) 22:40:30.45
あれって?

212 :デフォルトの名無しさん:2014/02/24(月) 05:52:59.34
かそりんぐ

213 :デフォルトの名無しさん:2014/02/24(月) 12:28:29.24
ID

214 :デフォルトの名無しさん:2014/02/24(月) 23:13:01.99
(every? sequential? [x y])
と書くのだるいから
(sequential? x y)
と書きたいって感じで標準の関数を拡張していくのはよくあること?

あと、R風のベクトル処理できるライブラリとかないかな?Incanterに入ってるのかな?

215 :デフォルトの名無しさん:2014/02/25(火) 22:21:14.29
>>214
ベクトル処理ならmapとReduceあるし
incanterで手軽にlapack使える

216 :デフォルトの名無しさん:2014/02/25(火) 23:53:07.13
Incaterにminusとかplusとかあったみたいね。
(plus 2 [1 2 3]) ;[3 4 5]
単純な演算にmapとか使うのめんどいからさ〜

217 :デフォルトの名無しさん:2014/02/26(水) 06:38:58.46
練習
;;;(plus 2 (1 2 3 )) → (3 4 5)
(defun plus (x lst)
(let ((ptr lst))
(while ptr
(rplaca ptr (+ x (car ptr)))
(setrq ptr (cdr ptr)))
lst))

218 :デフォルトの名無しさん:2014/03/01(土) 08:20:36.25
プログラミングclojure 2版 100page

次のコードが「ほとんどcurry」になるのがなぜかわからん

(defn faux-curry [& args] (apply partial partial args))

ちなみに

(def add-3 ((faux-curry +) 3))
(add-3 7)
-> 10

となる
(ほとんどカリー化のほとんどは すべての引数が固定されたときも定数を返さないから)

219 :デフォルトの名無しさん:2014/03/01(土) 12:05:28.50
カリー化は関数を関数のチェーンに変換することで
部分適用は引数を固定することだから、かな?

220 :デフォルトの名無しさん:2014/03/01(土) 12:32:42.15
「ほとんどカリー化」というか2引数関数のカリー化だな
3引数ならpartial3回いる

221 :デフォルトの名無しさん:2014/03/01(土) 19:37:35.00
compじゃカリー化だめなん?

222 :デフォルトの名無しさん:2014/03/02(日) 10:34:04.97
org.clojure/tools.* とかの最新版ってどうやってさがしてくるん?

223 :デフォルトの名無しさん:2014/03/02(日) 21:48:58.61
apply partial partial とか絶対見たくない

224 :デフォルトの名無しさん:2014/03/02(日) 21:52:38.43
>>222

lein search tools.nrepl

とか?

225 :デフォルトの名無しさん:2014/03/03(月) 00:57:13.85
マクロを利用する関数を書きたい場合って結構あると思うんだけど、
その場合は関数じゃうまくいかなくてマクロを書かざるを得ないな

226 :電波いっぱい:2014/03/03(月) 13:30:21.16
>>225
そんなこと無いと思うけど、具体的にはどんな場合?

227 :デフォルトの名無しさん:2014/03/03(月) 19:10:02.21
関数内でよく使われるマクロはそうでもないけど
トップレベルで使われることを想定してるimportとか
with-outとかwith-precisionとかbindingを利用しているマクロを
さらに拡張しようとした場合に関数だとダメっぽいなあ

228 :デフォルトの名無しさん:2014/03/03(月) 19:41:45.36
(key val key val)のシーケンスからhash-mapに変換する関数はあるけどその逆はないのかな?
引数リストで{:as options}とかした後、そのoptionsをもとのシーケンスに戻したいんだけど
interleave keys vals で元に戻すしかないか

229 :デフォルトの名無しさん:2014/03/03(月) 20:35:19.57
>>224
おおー、ありがと。
lein searchをずっとローカルリポジトリ検索かと思ってた orz

230 :電波いっぱい:2014/03/04(火) 07:01:56.15
>>227
そういうことであれば、そうかもしれないけど、そんなことをするのって、めったにないと思う。

231 :電波いっぱい:2014/03/04(火) 07:06:01.80
>>228
(flatten (seq m))でどうかなぁ。mapになった時点で順番は失われてしまうから、元のシーケンスにはならないけど。

ところで、そんなことが必要になるシチュエーションが思い浮かばないんだけど、どういう時?

232 :デフォルトの名無しさん:2014/03/04(火) 07:52:05.70
>>231
flattenだとvalueがシーケンスの時にうまくいかないと思う
clojure.java.io/readerとか同じようにオプションをとる関数に引き渡していく際に欲しい

233 :デフォルトの名無しさん:2014/03/04(火) 21:07:58.40
LightTableのオススメの設定とかってある?

まだコレくらいしか設定してないけど
#user.keymap
"ctrl-pageup" [:window.zoom-in]
"ctrl-pagedown" [:window.zoom-out]
"alt-c" [:clear-console]
"f3" [:find.next]
"shift-f3" [:find.prev]
"ctrl-/" [:toggle-comment-selection]
"ctrl-w" [:editor.watch.watch-selection]
"ctrl-shift-w" [:editor.watch.unwatch]

f3とかpageupとかも普通に使えるのに驚いた
:toggle-comment-selectionは必須だな。もっと早く知りたかった

Windowsだとalt-wがメニューに吸われるのがだるいなあ・・・

234 :デフォルトの名無しさん:2014/03/04(火) 23:15:28.80
>>228
(mapcat seq mm) とかではだめかな?

235 :デフォルトの名無しさん:2014/03/05(水) 01:16:01.38
>>234
なるほどね。それでいけるね。
apply concatでも大丈夫そう

236 :デフォルトの名無しさん:2014/03/06(木) 02:40:32.58
repl で 
(set! x 4)

とかとしてもエラーにならないxってどうやって定義するの?
(def x 0)
(def ^:dynamic 0)
とかでも
IllegalStateException Can't change/establish root binding of: x with set clojure.lang.Var.set

でエラーになる

237 :デフォルトの名無しさん:2014/03/06(木) 02:57:00.72
clojure.core.clj のソースをみても

(def ^:dynamic *print-level* nil)
とかで定義しているのに、なんで自分で定義したら上のエラーが出るんだ?

238 :デフォルトの名無しさん:2014/03/06(木) 03:20:29.28
>>236
thread localの(bindingした)varに対してset!できる
(def ^{:dynamic true} *TESTVAR* 1)
(binding [*TESTVAR* 2]
*TESTVAR*)
=> 2
(def ^{:dynamic true} *TESTVAR* 1)
(binding [*TESTVAR* 2]
(set! *TESTVAR* 3)
*TESTVAR*)
=> 3

そうでないなら(REPLからとか)
(alter-var-root #'YOUR-VAR-NAME (constantly NEW-VALUE))
みたいにしないと駄目

239 :デフォルトの名無しさん:2014/03/06(木) 04:26:07.41
>>238 なるほどね。Thanks!

でもなんで *print-level*は

(def ^:dynamic *print-level* nil)
で定義されているのに

replで
(set! *print-level* 5)
-> 5
とかできるんだろう

240 :デフォルトの名無しさん:2014/03/06(木) 08:46:49.52
(defn myint []
(let [x (read)]
(binding [mem mem]
(if (< x 0)
(println "good-by")
(do
(set! mem (+ mem x))
(println mem)
(myint))))))

のでつかえばいいんだな

241 :デフォルトの名無しさん:2014/03/06(木) 17:03:49.35
>>239
clojure.mainの中でwith-bindingマクロつかってREPLのループ中でbindingされているから
emacsでnrepl-jack-inとかcider-jack-inして使っているなら clojure.mainをM-.してソースみてみると良いよ
あるいは直接clojureのソースのmain.cljみてみるよろし。(repl関数ね)

242 :デフォルトの名無しさん:2014/03/06(木) 17:27:55.81
sublimeでClojure書いてるひといる?
デフォルトのインデントが糞なのでlispindentって拡張使ってるけど、時々固まるんだよなぁ。

243 :デフォルトの名無しさん:2014/03/06(木) 17:43:10.65
ClojureはLightTableかなぁ
RubyはSublime使うけど

244 :デフォルトの名無しさん:2014/03/06(木) 17:49:45.45
sublime良いエディタだけどclojure使うときはemacsかぬ

245 :電波いっぱい:2014/03/06(木) 22:20:13.89
>>239
被った。
Dynamicのvarをset!できるのは、別スレッドでbindされている場合のみで、
replで*print-length*などをset!できるのは、replが別スレッドで動いていて、
起動時にそれらのvarがbindされているからです。

どこでそのようなことが行なわれているかについては、
https://groups.google.com/d/msg/clojure/ufoDL6eNL3U/czncX8bNNSsJ
にあります。このスレはまったく同じ質問についてのスレなので、他のメッセー
ジも参考になるかと。


ところで、そのdynamicなvarはどのような目的でつかいます?
どこに書いてあったかわすれたけど、set!はclojuerの流儀としてはほとんど
使われなくて、どうしても変更可能な値を管理したい場合はatomなどを使いま
す。

246 :デフォルトの名無しさん:2014/03/07(金) 00:49:09.11
>>245
別スレッドでなくてもset!できますよ

247 :デフォルトの名無しさん:2014/03/09(日) 13:11:05.66
with-meta使えるなあ
付加情報渡すのに便利だわ

248 :デフォルトの名無しさん:2014/03/09(日) 13:20:08.43
塹壕から迫撃砲しよ

249 :デフォルトの名無しさん:2014/03/09(日) 15:55:17.19
シーケンスを引数にとる関数だらけのClojrueではオブジェクト的な構造は使いづらいが
メタ情報を使ってオブジェクト的な構造を表現して渡すのも場合によってはありだな

250 :デフォルトの名無しさん:2014/03/09(日) 20:03:01.27
(get [:a :b :c] 1)は:bなのに
(get '(:a :b :c) 1)はnilになるのな
こんなところではまった。nthを使うべきだった

251 :デフォルトの名無しさん:2014/03/09(日) 23:40:32.71
関数getについて単に無知なんだろ

252 :デフォルトの名無しさん:2014/03/09(日) 23:50:43.49
どういう意味?
リストが暗黙的にマップとして扱われないのはなぜ?

253 :デフォルトの名無しさん:2014/03/10(月) 03:08:58.76
>>252
getはリストとかマップとかは関係なく非線形探索可能なデータに対して使います。(マップ、ベクタ、セット、文字列、配列)
そのようなデータを使う時、nilや指定した値を返すのが便利だから作ったのでしょう。

254 :デフォルトの名無しさん:2014/03/10(月) 19:56:48.85
この例に限らずnilが返ったり、nilを与えたときにどう動作するか
明確にドキュメントに書いてないことが多くて試してみないといけないのがちょっとめんどい

255 :デフォルトの名無しさん:2014/03/11(火) 20:46:55.74
へ?
ベクターは添字でアクセスできるが
リストにそれを求めるのは変だろ
nilが帰ってくるあたりまえ
リストは可変長配列ではないのだから

256 :デフォルトの名無しさん:2014/03/12(水) 20:09:52.24 ID:th2nKpvg
nthではアクセスできるじゃん
hash-mapのvalueにだけ関数を適用して変換できるmap関数のようなものないのかなあ
自作するしかないか

257 :デフォルトの名無しさん:2014/03/12(水) 21:22:44.77 ID:th2nKpvg
coreとcntrib以外にベースになるライブラリってない?
ディレクトリ内を正規表現かglobで検索できる関数が欲しい・・・

258 :デフォルトの名無しさん:2014/03/12(水) 21:32:43.30 ID:w2TVy3P1
glob検索必要って事はWindowsかいね?
普段使いだとUnixとかLinuxとかMacOSだとコマンドラインのレベルでワイルドカード展開しちゃうから必要性感じないのだけど

259 :デフォルトの名無しさん:2014/03/13(木) 00:03:00.15 ID:+EH3xZU4
Android上のclojure起動時間は、ART(KitKatから入ったAOT使うJVMのRuntime)では縮まらない模様だ。
現状のART使ってみたらreplが起動で落ちてしまうので全く使えないのかと思ってたけど、一部動くみたい。
http://nicholaskariniemi.github.io/2014/03/12/clojure-android-startup-benchmarks.html

260 :電波いっぱい:2014/03/13(木) 00:25:56.65 ID:63sq92O1
>>257
Javaのファイル検索にglobがあるからそれをつかっては?

261 :電波いっぱい:2014/03/13(木) 00:36:12.30 ID:63sq92O1
>>256
リストとベクタは順序のある要素の並びだからnthでアクセス
マップはキーと値の関連の集まりだからgetでアクセス。ベクタのインデックスをキーとしてgetが使えるのはオマケ。

マップの全ての値に同じ操作をする必要性かあまり思いつかないけど、reduceを使うときれいにできると思う。

262 :デフォルトの名無しさん:2014/03/13(木) 08:14:17.30 ID:MKpH1D3w
>>256
マップの特定のキーを持つ値に対してであれば、update-inを使いましょう。
全ての値だったらcoreにはないけど、clojure.algo.generic.functor/fmapがあります。

263 :デフォルトの名無しさん:2014/03/13(木) 10:00:28.26 ID:+EH3xZU4
>259 のひとつ前にスタートアップが遅い理由を計測した記事があった
http://nicholaskariniemi.github.io/2014/02/25/clojure-bootstrapping.html
varとmetadataのロードで80%ぐらいかかってるとある

二年前にもAndroidで使おうとしてる人たちが調べてた
http://blog.practical-scheme.net/shiro?20120711-design-decision
http://martinsprogrammingblog.blogspot.de/2012/02/why-is-clojure-so-slow.html
https://raw.github.com/relevance/clojure-conj/master/2011-slides/daniel-solano-gómez-clojure-and-android.pdf
http://clojureclr.blogspot.jp/2011/12/using-ngen-to-improve-clojureclr.html

JVMのlispといってもsbclやkawaの起動は早かったと思う
なのでhello worldベンチするなら一緒にやってあげると、lispではなくclojureの特徴とわかるはず

264 :デフォルトの名無しさん:2014/03/18(火) 14:59:31.28 ID:Tn1P3965
Kormaで並列にMySQLへ接続してると
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure
ってのが出て死ぬ。まだ深追いしてないけど、逐次なら動く。
mysqlのログに一切何も出てないのが謎。

pmapで馬鹿並列にしてるから、何かコネクションの再利用方法とか
設定する必要があるのかな?

265 :デフォルトの名無しさん:2014/03/18(火) 22:33:42.28 ID:AVGKCT5w
max_connection関連かな?わからんけど
TIME_WAITがいっぱいになってたりして

266 :デフォルトの名無しさん:2014/03/19(水) 15:30:04.40 ID:oXIqqE+e
mysqlの問題かもしれんし、もう少し調べます。
スレ汚しすまそ

267 :デフォルトの名無しさん:2014/03/19(水) 20:21:00.17 ID:lJfJcBCq
リソースが取り戻せず、スレッドプールの上限、もしくはmysqlの上限になってるのか。
mysql側は、show processlist;とかで見てみるとか。

スレッド数よりプールが少なくて待たずにおちてるとか、
ライブラリのバグかもしれないし、なんとも言えない。

268 :デフォルトの名無しさん:2014/03/19(水) 20:24:24.96 ID:lJfJcBCq
https://github.com/myfreeweb/clj-bonecp-url/blob/master/README.md
poolさん

263 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)