【Lua】組み込み系言語総合 その4【Squirrel】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/03/30(水) 01:00:58.93使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/
その他の参考URLは>2から
■前スレ
【Lua】組み込み系言語総合 その3【Squirrel】
http://hibari.2ch.net/test/read.cgi/tech/1272643397/
■過去スレ
その2 http://pc12.2ch.net/test/read.cgi/tech/1243210301/
その1 http://pc12.2ch.net/test/read.cgi/tech/1205208141/
プログラミング言語 Lua
その3 http://pc11.2ch.net/test/read.cgi/tech/1160799232/
その2 http://pc8.2ch.net/test/read.cgi/tech/1063711237/
その1 http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
0482デフォルトの名無しさん
2011/07/18(月) 22:38:33.21目的を達成できるならそうかもね
0483デフォルトの名無しさん
2011/07/18(月) 22:45:38.12C++で言うと
void hoge::fuga() { assert(typeid(this) == typeid(hoge())); ・・・ }
なんてするアホは居ない
でもluaだと
selfが期待した型じゃないなんてことはよくある(意図的にしたり、.と:のタイプミスだったり)
ほかの引数も同様だ
宣言を書く手間と
もっとガチガチに強固なクラスを作る機能を提供してくれてもいいじゃないか
0484デフォルトの名無しさん
2011/07/18(月) 22:49:26.22チェックコード書く手間と宣言書く手間って大差なくね?
0485デフォルトの名無しさん
2011/07/18(月) 22:53:19.87静的型付け言語だからね。
他のスクリプト言語と比べて、デフォルトで連想配列とコルーチンオブジェクトがないのが難点かな?
0486デフォルトの名無しさん
2011/07/19(火) 21:38:23.250487デフォルトの名無しさん
2011/07/19(火) 21:42:31.150488デフォルトの名無しさん
2011/07/19(火) 21:46:08.570489デフォルトの名無しさん
2011/07/20(水) 00:16:55.37できれば最弱バージョンから最強バージョンに一回だけアップデートしたい
0490デフォルトの名無しさん
2011/07/20(水) 00:38:38.71バージョンアップしたら以前のスクリプトが使えなくなった、ってそんなに多いかな?
0491デフォルトの名無しさん
2011/07/20(水) 01:05:22.16http://lua-users.org/wiki/LuaTypeChecking
http://metalua.luaforge.net/
0492デフォルトの名無しさん
2011/07/20(水) 06:20:15.30それから coroutine.resume() で関数抜けた後(coroutine.status == "dead"な状態)に
そのコルーチンオブジェクト?は再利用は可能でしょうか?
0493デフォルトの名無しさん
2011/07/20(水) 08:06:07.040494デフォルトの名無しさん
2011/07/20(水) 10:22:12.90出来ることの差なんてないし
0495デフォルトの名無しさん
2011/07/20(水) 10:30:24.24dクス。luabindでの例とかありますね。
しかしluaでほとんど処理させてるんで導入したくないでござる。
>>494
状態の数が多い処理だと記述は確かに楽なんですけどね。
それもアリかもですね。
海外のコードみてても普通にcreateして変数上書きしてたりしますね。
速度関係無いなら別にこれでいいかな。
何か簡単ならやっとこうと思ったんですけどね。
0496デフォルトの名無しさん
2011/07/20(水) 10:38:12.38「スクリプト言語による〜」でもわざわざ言及されてたし、差が出るかどうか計った人いたら教えて欲しい
0497デフォルトの名無しさん
2011/07/20(水) 10:43:11.130498デフォルトの名無しさん
2011/07/20(水) 11:50:48.25〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0499デフォルトの名無しさん
2011/07/20(水) 17:43:18.24/ ヽ
// ',
| { _____ |
(⌒ヽ7´ ``ヒニ¨ヽ
ヽ、..二二二二二二二. -r‐''′ Lua!!
/´ 〉'">、、,,.ィ二¨' {. ヽ _ _
`r、| ゙._(9,)Y´_(9_l′ ) ( , -'′ `¨¨´ ̄`ヽ、
{(,| `'''7、,. 、 ⌒ |/ニY { \
ヾ| ^'^ ′-、 ,ノr')リ ,ゝ、ー`――-'- ∠,_ ノ
| 「匸匸匚| '"|ィ'( (,ノ,r'゙へ. ̄ ̄,二ニ、゙}了
, ヘー‐- 、 l | /^''⌒| | | ,ゝ )、,>(_9,`!i!}i!ィ_9,) |人
-‐ノ .ヘー‐-ィ ヽ !‐}__,..ノ || /-‐ヽ| -イ,__,.>‐ ハ }
''"//ヽー、 ノヽ∧ `ー一'´ / |′ 丿! , -===- 、 }くー- ..._
//^\ ヾ-、 :| ハ  ̄ / ノ |. { {ハ. V'二'二ソ ノ| | `ヽ
,ノ ヽ,_ ヽノヽ_)ノ:l 'ーー<. / |. ヽヽヽ._ `二¨´ /ノ ノ
/ <^_,.イ `r‐'゙ :::ヽ \ `丶、 |、 \\'ー--‐''"//
\___,/| ! ::::::l、 \ \| \ \ヽ / ノ
0500デフォルトの名無しさん
2011/07/20(水) 20:10:21.260501デフォルトの名無しさん
2011/07/20(水) 20:18:14.490502デフォルトの名無しさん
2011/07/20(水) 20:35:30.860503デフォルトの名無しさん
2011/07/20(水) 21:19:29.14そんな餌で(ry
0504デフォルトの名無しさん
2011/07/20(水) 21:32:43.910505デフォルトの名無しさん
2011/07/20(水) 22:07:03.410506デフォルトの名無しさん
2011/07/21(木) 00:27:27.81いや、すまん。組み込み家電っつーか、組み込み機器でも良いんだけど。
今のところヤマハのルーターぐらいしか応用例知らなくて。
0507デフォルトの名無しさん
2011/07/21(木) 08:52:59.70\ ヽ ) ) \\ \\
( \ \∩___∩ \\
\ \ ⌒⌒| ノ ヽ \\
\ \ / ● ● ト、\ \\\
\ Y | ( _●_) ミ\ \\\
\ / 彡、_ |∪| ノ \ \\\
(____)―ヽノ' ヽ  ̄ ̄ ヽ\\
\, j l l .l }
Lua! l (_ノノノノ
0508デフォルトの名無しさん
2011/07/21(木) 20:39:48.550509デフォルトの名無しさん
2011/07/21(木) 20:52:30.120510デフォルトの名無しさん
2011/07/21(木) 21:14:47.470511デフォルトの名無しさん
2011/07/21(木) 21:21:11.850512デフォルトの名無しさん
2011/07/21(木) 21:35:15.980513デフォルトの名無しさん
2011/07/21(木) 21:39:58.680514デフォルトの名無しさん
2011/07/21(木) 21:54:01.010515デフォルトの名無しさん
2011/07/22(金) 00:02:37.93仮にAcceedがどんなに良い言語だったとしても検索してゲイビデオが出てきたら普及する前に潰れるわ
0516デフォルトの名無しさん
2011/07/22(金) 00:27:44.840517デフォルトの名無しさん
2011/07/22(金) 00:28:28.810518デフォルトの名無しさん
2011/07/22(金) 09:19:34.560519デフォルトの名無しさん
2011/07/22(金) 10:32:05.920520デフォルトの名無しさん
2011/07/22(金) 12:28:16.27GitHubかBitBucketで公開して
0521デフォルトの名無しさん
2011/07/22(金) 15:40:15.330522デフォルトの名無しさん
2011/07/22(金) 15:44:17.660523デフォルトの名無しさん
2011/07/22(金) 18:23:03.47ありがとうございます。
じゃあ組み込み用途には使えないって事ですね…
0524デフォルトの名無しさん
2011/07/22(金) 21:15:38.67アプリでデバッガ用意してねって話なんですね。
これはLuaに限らず、Squirrelでも同じと。
0525デフォルトの名無しさん
2011/07/23(土) 08:56:21.91\ ヽ ) ) \\ \\
( \ \∩___∩ \\
\ \ ⌒⌒| ノ ヽ \\
\ \ / ● ● ト、\ \\\
\ Y | ( _●_) ミ\ \\\
\ / 彡、_ |∪| ノ \ \\\
(____)―ヽノ' ヽ  ̄ ̄ ヽ\\
\, j l l .l }
Lua! l (_ノノノノ
0526>>524
2011/07/23(土) 09:00:18.66アプリが管理してる lua_State* 渡してコンソール画面だしてやる感じにします。
いや〜しかし面白いですねコレ。
0527デフォルトの名無しさん
2011/07/23(土) 09:03:26.360528デフォルトの名無しさん
2011/07/24(日) 01:04:03.98それが出来る状況ならdebug.debugも可能だと思うw
0529デフォルトの名無しさん
2011/07/24(日) 09:13:48.04そんな感じじゃないのかな。
0530デフォルトの名無しさん
2011/08/05(金) 06:10:07.590531デフォルトの名無しさん
2011/08/05(金) 06:44:55.58○ Luaのリファレンスを一読しました
0532デフォルトの名無しさん
2011/08/05(金) 10:15:40.190533デフォルトの名無しさん
2011/08/05(金) 10:45:28.69だから確認したって。
スレッド毎にステート作ってやればぜんぜんOK。
0534デフォルトの名無しさん
2011/08/05(金) 11:01:35.900535デフォルトの名無しさん
2011/08/05(金) 11:05:32.78訳を見て原文を見抜けない人には猫に小判
0536デフォルトの名無しさん
2011/08/05(金) 11:14:16.75はあ?
0537デフォルトの名無しさん
2011/08/05(金) 11:16:17.78Lua states, created with lua_newstate or luaL_newstate are completely
separate and thread safe.
0538デフォルトの名無しさん
2011/08/05(金) 11:17:13.87でもステートと付随するVMの操作を複数のスレッドにまたがって行うことはできないからスクリプト言語としてはスレッドセーフじゃない
0539デフォルトの名無しさん
2011/08/05(金) 11:18:45.08「ステートと付随するVMの操作」ってなによ
0540デフォルトの名無しさん
2011/08/05(金) 11:20:21.50メインスレッドだけで動かしてそこに別機構でメッセージパッシングするのが安全安心
0541デフォルトの名無しさん
2011/08/05(金) 11:23:34.71もう作ったんで。
Luaがスレッド毎VMに耐えることを確認しました。
ちなみにそれほど面倒じゃないです(言語によるのでしょうが)。
0542デフォルトの名無しさん
2011/08/05(金) 11:26:59.340543デフォルトの名無しさん
2011/08/05(金) 11:29:18.99別に面倒じゃないです。
0544デフォルトの名無しさん
2011/08/05(金) 11:31:38.690545デフォルトの名無しさん
2011/08/05(金) 22:38:38.78普通にC++使ってるほうがいいって気付いた。
スクリプト言語ってやっぱりCGI以外で存在意義ってないな。
0546デフォルトの名無しさん
2011/08/05(金) 22:47:20.080547デフォルトの名無しさん
2011/08/05(金) 22:51:48.650548デフォルトの名無しさん
2011/08/05(金) 22:53:01.73そんな時は鉛筆削りで代用してる
0549デフォルトの名無しさん
2011/08/05(金) 22:54:05.290550デフォルトの名無しさん
2011/08/05(金) 23:39:00.60それは Lua がスレッドセーフなのではなく、
君のプログラムがスレッドセーフなのである。
業界標準に従った用語法を使わないと、書籍や
論文を読むときに自分が困ることになるので、
勝手なオレ用語は改めた方がいい。
0551デフォルトの名無しさん
2011/08/06(土) 00:11:44.16print(" ")
print(' ')
print ' '
print " "
いろいろあってどれ使うか迷う
0552デフォルトの名無しさん
2011/08/06(土) 01:00:20.800553デフォルトの名無しさん
2011/08/06(土) 09:08:54.34はいはい。業界君乙。
0554デフォルトの名無しさん
2011/08/06(土) 09:10:50.780555デフォルトの名無しさん
2011/08/06(土) 09:11:43.390556デフォルトの名無しさん
2011/08/06(土) 09:14:47.50つまりお前のプログラムのバグでスレッドアウトってだけだろ?
Luaのせいにすんなよ
0557デフォルトの名無しさん
2011/08/06(土) 09:54:20.580558デフォルトの名無しさん
2011/08/06(土) 09:54:52.310559デフォルトの名無しさん
2011/08/06(土) 10:01:43.94スレッドごとにlua_stateを独立して保持してやれば、スレッド毎に独立して動きます。
こういう意味でLua(のDLL)はスレッドセーフです。
なお、各lua_state間(各スレッド間)で情報共有(グローバルj変数などの共有)が
できるかどうかまでは確認していません。
0560デフォルトの名無しさん
2011/08/06(土) 11:28:47.230561デフォルトの名無しさん
2011/08/06(土) 11:49:24.27はい
0562デフォルトの名無しさん
2011/08/06(土) 11:53:31.69書き込み可の共有変数を無くすか
Luaは後者
0563デフォルトの名無しさん
2011/08/06(土) 11:58:08.53はい
0564デフォルトの名無しさん
2011/08/06(土) 12:00:59.78「スレッドセーフなライブラリだ」とか普通に使うよなぁ。
業界君の業界ってどこなんだろ?
四次元の世界のプログラマとかか?
0565デフォルトの名無しさん
2011/08/06(土) 12:15:10.670566デフォルトの名無しさん
2011/08/06(土) 12:33:46.57ruby しかり python しかり。
lua とか squirrel はそもそもスタック操作が atomic じゃないわけで、最初からそういう点でのスレッドセーフを確保するつもりが全く無い実装だよね
VM わけてスレッドセーフなのはあたりまえすぎるというか、そうなってない言語実装とかはずかしくて表にだせないような
0567デフォルトの名無しさん
2011/08/06(土) 12:43:36.75http://sourceforge.net/p/safelua/wiki/Home/
SandBox? TryLuaみたいなサイトでも作るんかな
0568デフォルトの名無しさん
2011/08/06(土) 12:45:18.95Luaはlua_sate毎に別スレッドで動かせることを確認した次第です。
それ以外のことは知りません。
0569デフォルトの名無しさん
2011/08/06(土) 13:11:29.76スレッドセーフであることの確認って
ソースコードチェックする以外にどうやるの?
0570デフォルトの名無しさん
2011/08/06(土) 13:21:50.16実際に使ってみるとか。
0571デフォルトの名無しさん
2011/08/06(土) 13:23:14.44RubyやPythonってひとつのプロセスに複数VM持てたっけ?
0572デフォルトの名無しさん
2011/08/06(土) 13:39:14.58こいつは本質的にはLuaと同じ方法でスレッドセーフを実現してる
0573デフォルトの名無しさん
2011/08/06(土) 13:56:53.74ストレステストです。
0574デフォルトの名無しさん
2011/08/06(土) 14:09:01.86グローバルに一つやね。スレッドセーフは GIL で確保する実装
ruby はマルチVMの研究はやってたと思うけど詳しいことは知らない
マルチVMでシームレスに使うには結局メッセージパッシングの機構を
つくりこむ必要があってそこで難航してたんじゃなかったっけか
lua や squirrel はその点は総スルーしてるから、使う側はあきらめるか独自に頭をひねる必要がある
0575デフォルトの名無しさん
2011/08/06(土) 14:16:15.190576デフォルトの名無しさん
2011/08/06(土) 14:20:57.31スレッドセーフと呼ばない、というのが業界標準なのか?www
それどこ業界よ?
0577デフォルトの名無しさん
2011/08/06(土) 16:59:20.24lua_stateが別でも相互に参照し合いたいってことか?
イラネ
そんなマイナーな議論よそでやってくれよ
0578デフォルトの名無しさん
2011/08/06(土) 17:02:54.39Luaをコントロールする言語側でロックなり何なりして情報を共有すればいいだけ。
Lua言語ですべてやろうとする馬鹿は消えてほしい
0579デフォルトの名無しさん
2011/08/06(土) 17:09:56.18Luaはlua_state毎に別スレッドで動作させることができます。
そういう意味でLuaはスレッドセーフです。
異なるlua_satateで情報を共有できるか否か、というのはまた別の話になりますです。
普通は母体となるC言語なり何なりでロックしてから情報を書き換えるなどすればよいだけなので、
一般的な意味でも、Luaはスレッドセーフであるといえると思います。
0580デフォルトの名無しさん
2011/08/06(土) 17:15:36.47Luiz Henrique de Figueiredoのコメント。
http://lua-users.org/lists/lua-l/2011-07/msg00072.html
Lua states, created with lua_newstate or luaL_newstate are completely
separate and thread safe.
0581デフォルトの名無しさん
2011/08/06(土) 17:19:02.57スレッドセーフと呼ばない、という業界が存在するらしく
話がかみ合わない場合があるので注意。
■ このスレッドは過去ログ倉庫に格納されています