LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
Luaに限定してるわけではないのでレスする場合は言語を明記してください
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/
その他の参考URLは>2から
■前スレ
【Lua】組み込み系言語総合 その6【Squirrel】
http://echo.2ch.net/test/read.cgi/tech/1362895832/
■過去スレ
その5 http://toro.2ch.net/test/read.cgi/tech/1321063450/
その4 http://hibari.2ch.net/test/read.cgi/tech/1301414458/
その3 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/
探検
【Lua】組み込み系言語総合 その7【Squirrel】 [無断転載禁止]©2ch.net
2016/09/22(木) 18:23:46.74ID:t8yALPnl
2016/09/29(木) 08:07:35.79ID:y8+pYy20
2016/09/29(木) 10:10:01.10ID:AXFlgWC+
OSレベルのスレッド
言語レベルのスレッド
区別してもらえると助かります
言語レベルのスレッド
区別してもらえると助かります
2016/09/29(木) 14:17:18.55ID:a430Zm1B
>>27はWin32スレッド以外は”コルーチン””別ステートのLuaスクリプト”としか言ってないんだけど
これでわからないなら非同期は諦めた方がいいかも知れない
ReadFileExのイベントハンドラでやれば良さそうとか考えそうだけど、
スレッドID取得するとシステムの別スレッドだからそこからLuaの何かいじりにいくとスタックぶっ壊すよ
これでわからないなら非同期は諦めた方がいいかも知れない
ReadFileExのイベントハンドラでやれば良さそうとか考えそうだけど、
スレッドID取得するとシステムの別スレッドだからそこからLuaの何かいじりにいくとスタックぶっ壊すよ
2016/09/30(金) 08:27:54.40ID:aDhSErqk
>>27
管理主体はシステム側がもって、
他からは読み込んだものをメモリー経由でのみアクセスするようにして、
luaからは弱参照する仕組み作って参照する形で全く問題無いような
Luaで扱えるレベルのシステムを必要以上に難しく作る意味は無い
管理主体はシステム側がもって、
他からは読み込んだものをメモリー経由でのみアクセスするようにして、
luaからは弱参照する仕組み作って参照する形で全く問題無いような
Luaで扱えるレベルのシステムを必要以上に難しく作る意味は無い
2016/09/30(金) 11:13:49.15ID:j0K6lQ2j
JSなら、メインスレッド以外はサーバーにあってメモリーすらアクセスできない事も多い
スタックが壊れるとかいうならスタックにアクセスしなければいいだけなんだよな
スタックが壊れるとかいうならスタックにアクセスしなければいいだけなんだよな
2016/09/30(金) 11:40:47.98ID:LMNz6D7V
2016/09/30(金) 13:28:37.87ID:j0K6lQ2j
Luaスタック以外って
C++の変数かな
まあそうだねC++は怖いね
C++の変数かな
まあそうだねC++は怖いね
2016/09/30(金) 16:24:15.30ID:aFh0nkO3
>>31
そうだよ、結局はシステム側が管理しなきゃならないと思う、それで全部解決する
OVERLAPPEDなReadFileとGetOverlappedResultの発行をバインドするだけという
最も単純で最も無駄な方法であってもそれが必要になるという話
リモートのファイルにReadFile発行した後LANケーブル引っこ抜いて
スクリプト中断なりエラーなり発生させるとわかる
そうだよ、結局はシステム側が管理しなきゃならないと思う、それで全部解決する
OVERLAPPEDなReadFileとGetOverlappedResultの発行をバインドするだけという
最も単純で最も無駄な方法であってもそれが必要になるという話
リモートのファイルにReadFile発行した後LANケーブル引っこ抜いて
スクリプト中断なりエラーなり発生させるとわかる
2016/09/30(金) 18:18:42.06ID:j0K6lQ2j
バインドという単語は公式なマニュアルでは見たことがないので意味が曖昧だが
LuaがC++を呼び出すことしか想定していない気がする
逆にC++がLuaを呼び出す必要がある場合に色々破綻する気がする
LuaがC++を呼び出すことしか想定していない気がする
逆にC++がLuaを呼び出す必要がある場合に色々破綻する気がする
2016/10/01(土) 05:36:10.17ID:PtIPW4Qc
無難に済ますなら呼び出されたC++側のコード(ホストからluaのステートにバインドされた関数)で
C++側から通知か何かがあるかどうかを調べたりするのかな
どうしようもなければlua_sethookで登録したハンドラで一定行実行される度にフラグを見て
最低限の処理をして離脱した後、改めてlua側で何かをするとかしかない
C++側から通知か何かがあるかどうかを調べたりするのかな
どうしようもなければlua_sethookで登録したハンドラで一定行実行される度にフラグを見て
最低限の処理をして離脱した後、改めてlua側で何かをするとかしかない
38デフォルトの名無しさん
2016/10/01(土) 06:33:04.10ID:cvsJ/xEf メッセージキュー作ってlua側から呼んでコールバック実行すればいい
2016/10/01(土) 07:36:37.31ID:PtIPW4Qc
結局は原則としてlua側の方から結果が存在するかどうか調べにいかなきゃならないね
2016/10/01(土) 08:31:36.35ID:M5ncT/Oi
>>39
それJavaScriptで同じこと言えるの?
それJavaScriptで同じこと言えるの?
2016/10/01(土) 08:55:44.45ID:PtIPW4Qc
42デフォルトの名無しさん
2016/10/01(土) 10:40:59.92ID:cvsJ/xEf >>41
色々知識足りてないね。勉強したら?
色々知識足りてないね。勉強したら?
2016/10/01(土) 11:29:58.38ID:PtIPW4Qc
ttp://fast-uploader.com/file/7030844243482/
ChakraCoreのソースコードを参考にC++/CLIでJSRTを使用
バインドした関数の中でクロージャを確保しても消えない
ある関数の中で作業用の変数をアロケートしてそこでGCしても変数消えない、
スコープ抜けた後のGCできっちり消える
もちろんIEと同じJavaScriptだからMathとかもIEとかと全く同じ、バインドしてるのは・・・
解析した時のテストコードだからちょっと待ってね(バインダは絶対晒さないよ)
それとも何かバインドして同時に16スレッド動く様にしようか?
ChakraCoreのソースコードを参考にC++/CLIでJSRTを使用
バインドした関数の中でクロージャを確保しても消えない
ある関数の中で作業用の変数をアロケートしてそこでGCしても変数消えない、
スコープ抜けた後のGCできっちり消える
もちろんIEと同じJavaScriptだからMathとかもIEとかと全く同じ、バインドしてるのは・・・
解析した時のテストコードだからちょっと待ってね(バインダは絶対晒さないよ)
それとも何かバインドして同時に16スレッド動く様にしようか?
2016/10/01(土) 11:39:15.57ID:PtIPW4Qc
myValue += 2;
var a = new TestUnman( 10 );
a.Method( 10 );
var b = new TestUnman( 1 );
b.Method( 100 );
var result = a.Value + myValue;
Msg( a.Value + "+" + myValue );
Msg( b.Value + "+" + myValue );
result;
TestUmanのValueはただの変数のget/setしかない、Msg()でメッセージボックス
google v8 と spidermonkey との速度差、循環参照でのGCの挙動の違いとかをテストしてた
使うDLL見れば怪しい事してないのはわかる筈、紛れも無くJSRT、珍しいでしょ、解析がんばった
Mathとかで比較しても挙動は間違いなくIE
var a = new TestUnman( 10 );
a.Method( 10 );
var b = new TestUnman( 1 );
b.Method( 100 );
var result = a.Value + myValue;
Msg( a.Value + "+" + myValue );
Msg( b.Value + "+" + myValue );
result;
TestUmanのValueはただの変数のget/setしかない、Msg()でメッセージボックス
google v8 と spidermonkey との速度差、循環参照でのGCの挙動の違いとかをテストしてた
使うDLL見れば怪しい事してないのはわかる筈、紛れも無くJSRT、珍しいでしょ、解析がんばった
Mathとかで比較しても挙動は間違いなくIE
2016/10/01(土) 13:38:37.94ID:KgMKfA8p
Mathてビルトインのクラスね。
Window DOM以外は一通り使えるんだな。
しかもIE入ってればいいのか・・・検索しても例は少ない。
これはバインダー欲しいぞ。
Window DOM以外は一通り使えるんだな。
しかもIE入ってればいいのか・・・検索しても例は少ない。
これはバインダー欲しいぞ。
2016/10/01(土) 14:18:37.12ID:PtIPW4Qc
だから絶対やらんて、3時間に設定したからもうすぐロダから消える
何故煽られるのか考えてみた
lua_sethookでcountフックして終了フラグ見たらthrowみたいな強制的なWin32スレッドの終了ではなく
メモリリークしないluaスクリプトの中断とかですらマイナーな手法なのかな?
俺は行と行の間で止まってる事が約束されてるんだから何かの要求があったらyieldの流れに
干渉するような変更とか平気でやってたんだけど、その辺の温度差なのかな?
何故煽られるのか考えてみた
lua_sethookでcountフックして終了フラグ見たらthrowみたいな強制的なWin32スレッドの終了ではなく
メモリリークしないluaスクリプトの中断とかですらマイナーな手法なのかな?
俺は行と行の間で止まってる事が約束されてるんだから何かの要求があったらyieldの流れに
干渉するような変更とか平気でやってたんだけど、その辺の温度差なのかな?
47デフォルトの名無しさん
2016/10/01(土) 14:38:35.71ID:3sVMm49u 煽ってるやつはどうせ何も分かってないんだからスルー上等…
なところだが奮起していろいろやってくれるのは面白いから応援しよう
なところだが奮起していろいろやってくれるのは面白いから応援しよう
2016/10/01(土) 15:09:40.69ID:M5ncT/Oi
2016/10/01(土) 15:22:20.28ID:PtIPW4Qc
>>47ひでぇ; いや、俺が釣り針に食いついた自爆かな?
いつもはあちこちROMだけど、非同期周りで頭がうにってるとこに同じネタが来てたからつい・・・
>>48使うの自分だけならいいけど「無限ループ解除できないの?」の対応めんどくさい
それにasもv8もJSRTも外部からの停止メソッド当然の様に積んでるし
luaでも出来るってわかっちゃったら俺の中では当然実装しちゃう
置き土産、非同期でReadFileしてもキャッシュにあると即リザルト確定、そこそこ頭いいのかと思いきゃ
ヘッドの位置とか取得できないらしくて単純な判定しかしてない、ようするに自分でスレッド作って
そっちでブロッキングReadFileしてるのと殆ど変わらない、だから>>11みたいになる
しかもReadFileはハイブリッドカーネル内部ではなくkernel32.dllがユーザ空間にWin32スレッドを生成、
だから時間が掛かるでかい読み込みが終わる前にプロセス(デバッグ含む)毎終了すると何食わぬ顔で終了
しかしReadFile直後にLANケーブル引っこ抜いてCancelIoしたりしてもReadFileはウェイトのまま
ここでCancelIoしてもGetOverlappedResultしなきゃとかスクリプト終了で全ての待ち合わせが終わる前に
「今のエラーどこだっけ?」とか即再実行したりすると稀に起きる再現性のない原因不明のメモリ破壊
原因わかって「もうこれ全部自分で管理した方がトラブル少なそう」で今に至る、もう手の内は出さない
いつもはあちこちROMだけど、非同期周りで頭がうにってるとこに同じネタが来てたからつい・・・
>>48使うの自分だけならいいけど「無限ループ解除できないの?」の対応めんどくさい
それにasもv8もJSRTも外部からの停止メソッド当然の様に積んでるし
luaでも出来るってわかっちゃったら俺の中では当然実装しちゃう
置き土産、非同期でReadFileしてもキャッシュにあると即リザルト確定、そこそこ頭いいのかと思いきゃ
ヘッドの位置とか取得できないらしくて単純な判定しかしてない、ようするに自分でスレッド作って
そっちでブロッキングReadFileしてるのと殆ど変わらない、だから>>11みたいになる
しかもReadFileはハイブリッドカーネル内部ではなくkernel32.dllがユーザ空間にWin32スレッドを生成、
だから時間が掛かるでかい読み込みが終わる前にプロセス(デバッグ含む)毎終了すると何食わぬ顔で終了
しかしReadFile直後にLANケーブル引っこ抜いてCancelIoしたりしてもReadFileはウェイトのまま
ここでCancelIoしてもGetOverlappedResultしなきゃとかスクリプト終了で全ての待ち合わせが終わる前に
「今のエラーどこだっけ?」とか即再実行したりすると稀に起きる再現性のない原因不明のメモリ破壊
原因わかって「もうこれ全部自分で管理した方がトラブル少なそう」で今に至る、もう手の内は出さない
2016/10/01(土) 15:45:33.24ID:M5ncT/Oi
無限ループしたから解除したい
バグったからデバッグしたい
これは非同期でもマルチタスクでもなくデバッグの話だよね
バグったからデバッグしたい
これは非同期でもマルチタスクでもなくデバッグの話だよね
2016/10/01(土) 15:53:18.05ID:PtIPW4Qc
2016/10/01(土) 16:02:15.47ID:M5ncT/Oi
>>51
「面倒臭くない?」に対して「色々できるよ」は答えになってない
「面倒臭くない?」に対して「色々できるよ」は答えになってない
2016/10/01(土) 16:13:21.80ID:PtIPW4Qc
たしかにボタン1発で終了は意味ないっちゃー意味ないね、忘れてくれていいよ
とりあえず、フックのハンドラに突入したら離脱するまでの間にスタックがluaスクリプトの実行で
動くことはないからAPI全部呼び出し放題だから知らなかった人は遊んでみると面白いかも
とりあえず、フックのハンドラに突入したら離脱するまでの間にスタックがluaスクリプトの実行で
動くことはないからAPI全部呼び出し放題だから知らなかった人は遊んでみると面白いかも
2016/10/01(土) 16:40:57.34ID:PtIPW4Qc
連投すまん、なんかわかった、俺じゃなくてスクリプト作成者が、なのね
俺は中身知ってるからスクリプトで苦労なんて殆どしないし
VSのデバッグで動かすから無限ループしようと暴れだそうとShift+F5だから何の事だろって思った
別に俺はめんどくさくない、スクリプト作成者が後で強制終了しまくってイラついて
俺んとこに来ようと知ったこっちゃあああああいや、ごめんなさい、来ないで下ちい
開始時に
lua_sethook( pluastate, luahookCallback, LUA_MASKCOUNT, APP_LUA_SETHOOK_MASKCOUNT );
どっかに
static void luahookCallback( lua_State * const pluastate, lua_Debug * const pluadebug )
{
if( s_bRequestedTerminating )
{
luaL_error( pluastate, CStringA( "ほげえええええええええええええ" ) );
}
}
UIのスレッドや他のスレッドが止まれー云うたらvolatileなs_bRequestedTerminatingいぢる、たったこれだけ
で、面倒な事言われたり聞かれたりしそうだから言わなかったけど
lua_call動いてもカウント継続するから値やホストやスクリプトや状況によってはスタック溢れる
goto onならぬ割り込み起動みたいな直接的な真似は流石にやめといた方がいいと思う
俺は中身知ってるからスクリプトで苦労なんて殆どしないし
VSのデバッグで動かすから無限ループしようと暴れだそうとShift+F5だから何の事だろって思った
別に俺はめんどくさくない、スクリプト作成者が後で強制終了しまくってイラついて
俺んとこに来ようと知ったこっちゃあああああいや、ごめんなさい、来ないで下ちい
開始時に
lua_sethook( pluastate, luahookCallback, LUA_MASKCOUNT, APP_LUA_SETHOOK_MASKCOUNT );
どっかに
static void luahookCallback( lua_State * const pluastate, lua_Debug * const pluadebug )
{
if( s_bRequestedTerminating )
{
luaL_error( pluastate, CStringA( "ほげえええええええええええええ" ) );
}
}
UIのスレッドや他のスレッドが止まれー云うたらvolatileなs_bRequestedTerminatingいぢる、たったこれだけ
で、面倒な事言われたり聞かれたりしそうだから言わなかったけど
lua_call動いてもカウント継続するから値やホストやスクリプトや状況によってはスタック溢れる
goto onならぬ割り込み起動みたいな直接的な真似は流石にやめといた方がいいと思う
55デフォルトの名無しさん
2016/10/01(土) 17:35:44.97ID:cvsJ/xEf デバッグ用機能を普通に使ってる時点で…
2016/10/01(土) 17:51:13.00ID:KgMKfA8p
だが面白いことは面白いw
これも実用例も少なくて同人マが少し案として呟いてるだけか。良く見つけるなw
Chakraをあれだけ動かす位だからlua程度なら隅々まで把握しててもおかしくないか。
これも実用例も少なくて同人マが少し案として呟いてるだけか。良く見つけるなw
Chakraをあれだけ動かす位だからlua程度なら隅々まで把握しててもおかしくないか。
2016/10/01(土) 18:57:18.74ID:PtIPW4Qc
なきゃないで自分で追加してたとこだけどね
読んで参考にしたのはChakraCoreだけどあれが使ってたのは最初から窓に入ってるjsrt.dll
あのexeがめっちゃ小さかったのはexeにエンジンくっつける必要がないから
JSRTをv8猿と比べた感想は使い手にとっては微妙、作り手(ChakraCoreの読み手?)にとっては
わかるまでが大変、わかるとめっちゃ使いやすいけど無駄に感じるとこが多すぎ
そりゃv8に勝てずにオプソにしてブン投げてエッジモードJSRT開発にいくわぁなぁ
思想がわかって作りやすいから個人的には好きだけど
読んで参考にしたのはChakraCoreだけどあれが使ってたのは最初から窓に入ってるjsrt.dll
あのexeがめっちゃ小さかったのはexeにエンジンくっつける必要がないから
JSRTをv8猿と比べた感想は使い手にとっては微妙、作り手(ChakraCoreの読み手?)にとっては
わかるまでが大変、わかるとめっちゃ使いやすいけど無駄に感じるとこが多すぎ
そりゃv8に勝てずにオプソにしてブン投げてエッジモードJSRT開発にいくわぁなぁ
思想がわかって作りやすいから個人的には好きだけど
2016/10/01(土) 21:55:14.80ID:nMhs26pq
>>46
yeild でメインループの呼び出し元に安全に戻ってきてるんだから、そこで全部必要な他スレッド処理した上で後始末もして、
必要ならそれぞれ駆動させてるluaスレッドにluaの例外返して、それをスクリプト側で自発的に処理するだけじゃん?
lua側にスレッドではまるコードを入れる必要性が全く無いのにそれを考えるのはナンセンス
yeild でメインループの呼び出し元に安全に戻ってきてるんだから、そこで全部必要な他スレッド処理した上で後始末もして、
必要ならそれぞれ駆動させてるluaスレッドにluaの例外返して、それをスクリプト側で自発的に処理するだけじゃん?
lua側にスレッドではまるコードを入れる必要性が全く無いのにそれを考えるのはナンセンス
59デフォルトの名無しさん
2016/10/02(日) 02:15:08.35ID:4LOtpf4Z2016/10/02(日) 09:35:31.71ID:ToCp8nQC
スクリプターがみんな優秀とは限らない
UWSCもスクリプトが固まったらいちいちCtrl+Alt+DELだったらくっそめんどくさいと思うよ
UWSCもスクリプトが固まったらいちいちCtrl+Alt+DELだったらくっそめんどくさいと思うよ
2016/10/02(日) 11:06:09.66ID:2GKgFmK4
コマンドラインだったらアプリが固まってもターミナルは固まらないから楽
でも見た目が文字ばっかりだからダメという面倒臭い価値観を許容できない者は絶滅した
でも見た目が文字ばっかりだからダメという面倒臭い価値観を許容できない者は絶滅した
2016/10/02(日) 11:16:06.69ID:ToCp8nQC
ゲームかどうか問わずマクロもシナリオインタープリタも
行政の廃棄物処理のサイトの裏のパラーメータ決定もコマンドラインとか無理
行政の廃棄物処理のサイトの裏のパラーメータ決定もコマンドラインとか無理
2016/10/02(日) 11:30:58.46ID:ToCp8nQC
2行目ですらちょっとマズかったかも知れない・・・あいつらの知識レベルは想像絶するからね
話聞いたらいじってたのは研究の支援受けた大学の学生とか公的もブラックかよと
JSやasだと行末にはとにかく「;」と思い込んでスコープ生成する様な組み込み構文にも付けて
長時間ハマって問い合わせてくるからね!それじゃif文全く機能しないから!→lua(ry
C++/CLI使ってたのはそゆ事
インタープリタに限らず使えそうな物はASP.NETからも使える様に一通りラッピングしてある
話聞いたらいじってたのは研究の支援受けた大学の学生とか公的もブラックかよと
JSやasだと行末にはとにかく「;」と思い込んでスコープ生成する様な組み込み構文にも付けて
長時間ハマって問い合わせてくるからね!それじゃif文全く機能しないから!→lua(ry
C++/CLI使ってたのはそゆ事
インタープリタに限らず使えそうな物はASP.NETからも使える様に一通りラッピングしてある
2016/10/02(日) 16:16:10.81ID:aWO2DXf2
重箱の隅突ついてる面々もどうでもいいとこけなしてないで具体的にどうすればいいか物を出さんとな
↑のは仮想PCのロールバックと共に即消え去ったがまぁ普通に作れる物ではなかった
↑のは仮想PCのロールバックと共に即消え去ったがまぁ普通に作れる物ではなかった
65デフォルトの名無しさん
2016/10/02(日) 17:05:21.48ID:4LOtpf4Z Boost.AsioのようなAPIにすればいいだけ
2016/10/02(日) 18:01:25.22ID:aWO2DXf2
だけ で済むなら晒してやりゃいいのに
まー単純に1ファイル非同期読み出しできてもメモリいっぱい読む時間なんてたかが知れる
煩雑さのわりに効果なくてすぐ棄てそうだが
まー単純に1ファイル非同期読み出しできてもメモリいっぱい読む時間なんてたかが知れる
煩雑さのわりに効果なくてすぐ棄てそうだが
2016/10/02(日) 18:23:39.86ID:ToCp8nQC
それ以前にFILE_FLAG_SEQUENTIAL_SCAN立てて開いてればいきなりReadFileでえっらい容量を
読もうとしない限り大抵先読みされる筈だから意味ないとおも
読もうとしない限り大抵先読みされる筈だから意味ないとおも
2016/10/02(日) 18:25:45.79ID:2GKgFmK4
コマンドラインをけなして進化したものもあるんじゃないかな
けなすのを止めろと言われて馬鹿正直に止まった者は進化しなかった
けなすのを止めろと言われて馬鹿正直に止まった者は進化しなかった
2016/10/02(日) 18:28:10.94ID:ToCp8nQC
>>67
恐らく読み書きでファイルポインタ動かないのはそゆ事
1ファイルを頭から単純に読み込みに行く事は想定してない
シナリオデータがパックされたでかいファイルでジャンプとか複数のファイルとかじゃないと効果薄いとおも
恐らく読み書きでファイルポインタ動かないのはそゆ事
1ファイルを頭から単純に読み込みに行く事は想定してない
シナリオデータがパックされたでかいファイルでジャンプとか複数のファイルとかじゃないと効果薄いとおも
2016/10/02(日) 18:35:41.27ID:ToCp8nQC
2016/10/02(日) 21:34:29.07ID:Q2kOE1Eq
これまでにない最も適切な回答が出た希ガス
そして当然の発想を発想するとは思わない理由もわかった希ガス
そして当然の発想を発想するとは思わない理由もわかった希ガス
2016/10/02(日) 22:57:41.88ID:ToCp8nQC
もしかして、1つのファイルを頭から非同期で良かったん…?
1つのファイルを頭から順の先読みなんてのをユーザが実装する意味ないです、
どう実装するとかインターフェース云々構造云々言うまでもなくフラグ立てれば
キャッシュを見れる位偉い人が下で勝手にやってくれます;
CreateFile直後のReadFileとかよっぽど早い読み込みとかでもなければ
ERROR_IO_PENDING返ってきません、スレ汚し失礼しました;
1つのファイルを頭から順の先読みなんてのをユーザが実装する意味ないです、
どう実装するとかインターフェース云々構造云々言うまでもなくフラグ立てれば
キャッシュを見れる位偉い人が下で勝手にやってくれます;
CreateFile直後のReadFileとかよっぽど早い読み込みとかでもなければ
ERROR_IO_PENDING返ってきません、スレ汚し失礼しました;
2016/10/02(日) 23:23:52.57ID:XhpVhTHi
>>66
PCだと誤差の範囲ですむけど、VITAとかだとひっかかるのがわかるので、非同期&先行読みこみ重要だったり
PCだと誤差の範囲ですむけど、VITAとかだとひっかかるのがわかるので、非同期&先行読みこみ重要だったり
2016/10/02(日) 23:34:04.22ID:aWO2DXf2
ググったがMSがフラグ使えって書いてたのはワラタw勉強になった
それを学習した上で簡単な先読みならそういうのはiostreamみたいなので吸収した方が良さそう
スクリプト内にまで持ち込む利点がおもいうかばない
それを学習した上で簡単な先読みならそういうのはiostreamみたいなので吸収した方が良さそう
スクリプト内にまで持ち込む利点がおもいうかばない
2016/10/03(月) 00:06:05.41ID:P8G6wOCj
ホストの変更が困難でネイティブなスレッドも非同期の機能も提供してないのかね?
もしそうならコルーチンで少し読んで主処理に戻ってを繰り返すしかないんじゃないかな
スレッドか非同期が使えるならそれに従えばいいしホスト変更できるなら>>74に一票
もしそうならコルーチンで少し読んで主処理に戻ってを繰り返すしかないんじゃないかな
スレッドか非同期が使えるならそれに従えばいいしホスト変更できるなら>>74に一票
2016/10/06(木) 23:17:21.33ID:qdTfrzU1
LuaにもGUIツールキットってあるみたいだけど実用になるのかな?
非同期処理が出来ないとファイルやネットワークへアクセスするたびに
GUIの描画が止まっちゃうと思うんだけど
非同期処理が出来ないとファイルやネットワークへアクセスするたびに
GUIの描画が止まっちゃうと思うんだけど
77デフォルトの名無しさん
2016/10/07(金) 00:35:46.30ID:SRvWi+CW 非同期IOをネイティブコードで実装すりゃいいだろと何度言ったら…
2016/10/07(金) 01:39:42.67ID:aWd3vjbT
79デフォルトの名無しさん
2016/10/07(金) 03:09:07.32ID:SRvWi+CW 整理といいつつ明後日の方向に持って行こうとする奴…
2016/10/07(金) 03:33:01.51ID:b8KIq0Ir
なんかネイティブコードをコンパイルできない環境を正当化してるみたいで嫌な感じだ
2016/10/07(金) 06:16:16.38ID:ZvM+u4Of
ほんとそれ
Luaは汎用言語ではなく組込用なんだから
ホスト次第でやりたいことは何でもできるし、そういうホストを作るだけだろ
Luaは汎用言語ではなく組込用なんだから
ホスト次第でやりたいことは何でもできるし、そういうホストを作るだけだろ
2016/10/07(金) 08:03:48.60ID:zaoGKf4F
組み込み以外のLua使用は認めんといわんばかりの流れだな
83デフォルトの名無しさん
2016/10/07(金) 08:31:12.00ID:SRvWi+CW デフォルトでCやC++で書いたライブラリロード出来るけど?
2016/10/07(金) 14:48:04.63ID:38WzhEHE
Lua言語のみでやるんだ!という朝鮮は無意味ということだろ
2016/10/07(金) 17:53:12.95ID:aWd3vjbT
非同期君がプラットフォームをはっきりさせれば大部分は解決する気がする
又は解決できないことがはっきりする
又は解決できないことがはっきりする
2016/10/07(金) 18:10:59.27ID:7KQTkYQu
組み込みじゃなかったらLua使うメリットなくない?
Pythonとかでいい
Pythonとかでいい
2016/10/08(土) 01:59:56.06ID:fW81e7KH
2016/10/08(土) 05:53:19.72ID:y1l14uzD
環境晒さずにサンプル出させようって魂胆かね
ホストどころか動作環境も晒さないようなら以降非同期は無視でいっかね?
ホストどころか動作環境も晒さないようなら以降非同期は無視でいっかね?
2016/10/08(土) 06:51:14.10ID:7NFzJV+G
非同期処理ができないと困るという認識は正しいよ
でもLuaの自助努力とか自己責任でやる必要は全くない
JavaScriptの真似をしたりC++に丸投げしたりすればいい
でもLuaの自助努力とか自己責任でやる必要は全くない
JavaScriptの真似をしたりC++に丸投げしたりすればいい
2016/10/08(土) 07:22:36.43ID:2uwi8nYQ
91デフォルトの名無しさん
2016/10/08(土) 08:10:17.72ID:0b+9II7o 動作環境て非同期で実行する処理書くだけならCでもC++でも標準で書けるじゃん
あとは通信したいならソケットでも使えばいい
あとは通信したいならソケットでも使えばいい
2016/10/08(土) 10:59:59.33ID:p4blcc/t
>>90
低機能でも良いから速度が欲しい場合に使ってみている
低機能でも良いから速度が欲しい場合に使ってみている
2016/10/08(土) 11:54:59.08ID:y1l14uzD
Pythonのインデントも一長一短なんだよな
PHPもRubyも変数に一癖も二癖もあるし
言葉は悪いが単純な挙動の変更だけを許して余計なことさせたくない時はLuaは不自由だからうってつけ
PHPもRubyも変数に一癖も二癖もあるし
言葉は悪いが単純な挙動の変更だけを許して余計なことさせたくない時はLuaは不自由だからうってつけ
2016/10/08(土) 14:03:50.51ID:7NFzJV+G
Perlはソースの長さを減らした方が自由という考え方でLuaもそれに近い
でも言語を一個二個と数えたら言語が増えてるじゃないか一個にしろという勢力もある
でも言語を一個二個と数えたら言語が増えてるじゃないか一個にしろという勢力もある
2016/10/08(土) 14:18:59.47ID:2uwi8nYQ
Luaは別にソースは短くならないぞ。function も self も省略できないし
Perlも最近主流の書き方なら、他と比べても短くはない
Perlも最近主流の書き方なら、他と比べても短くはない
2016/10/08(土) 15:01:44.89ID:7NFzJV+G
C++にたとえるとtemplate <typename T> classを省略できなくてもいいんだよ
新しいclassを作らず既存のtemplateを実体化することで短くするから
新しいclassを作らず既存のtemplateを実体化することで短くするから
2016/10/08(土) 15:55:37.09ID:vTm37qb7
JSとLuaって似てるからTypeScriptのコンパイラ弄ってLuaスクリプトにコンパイルとか出来ないだろうか
98デフォルトの名無しさん
2016/10/08(土) 23:24:45.57ID:etzwi2NN >>93
selfは省略できるでしょ:
selfは省略できるでしょ:
2016/10/09(日) 00:02:57.29ID:438jyFxV
多分それは運が良かっただけで実力じゃないんだがそれがいい
100デフォルトの名無しさん
2016/10/09(日) 01:37:00.71ID:1kkxdGM8 >>97
Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS(ES5), Flash, PHP, C++, Java, C#, Python に書き出せる。
大規模開発に強く、Windows8.1対応。IDEは、FlashDevelop
このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
Haxeプログラミング入門、尾野政樹、2015
Lua 向けも、ひょっとして誰かが作っているかも知れない
Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS(ES5), Flash, PHP, C++, Java, C#, Python に書き出せる。
大規模開発に強く、Windows8.1対応。IDEは、FlashDevelop
このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
Haxeプログラミング入門、尾野政樹、2015
Lua 向けも、ひょっとして誰かが作っているかも知れない
101デフォルトの名無しさん
2016/10/09(日) 02:31:30.06ID:Ug+5WYAJ > lua: added lua target
https://haxe.org/download/version/3.3.0-rc.1/
https://haxe.org/download/version/3.3.0-rc.1/
102デフォルトの名無しさん
2016/10/09(日) 02:31:55.27ID:MEz+Ye2w コード効率の良さならRubyが頭いくつか抜きん出ているような
103デフォルトの名無しさん
2016/10/09(日) 02:46:40.48ID:vqX9HXbg 規模の小さなファームには向かないけど複数の高級なプラットフォーム向けならそうなりそうね
が、Windows限定で速度をある程度犠牲にして汎用性を求めると
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/101compileinvoke/compileinvoke.html
ttp://www.84kure.com/blog/2014/07/17/c-c%E3%81%8B%E3%82%89c%E3%81%AEdll%E3%82%92%E5%91%BC%E3%81%B6%E6%96%B9%E6%B3%95/
もはや.NETが最初から入ってるのが当たり前だしこっち行っちゃう気がするな
これを起点に何でもできちまうから企業なんかは無料版に乗せると
自力で機能拡張するのが出てきて有料版を食われる可能性があったりするが
が、Windows限定で速度をある程度犠牲にして汎用性を求めると
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/101compileinvoke/compileinvoke.html
ttp://www.84kure.com/blog/2014/07/17/c-c%E3%81%8B%E3%82%89c%E3%81%AEdll%E3%82%92%E5%91%BC%E3%81%B6%E6%96%B9%E6%B3%95/
もはや.NETが最初から入ってるのが当たり前だしこっち行っちゃう気がするな
これを起点に何でもできちまうから企業なんかは無料版に乗せると
自力で機能拡張するのが出てきて有料版を食われる可能性があったりするが
104デフォルトの名無しさん
2016/10/14(金) 23:18:31.17ID:m7wFj9IA for i=1,10 do
local result=()
if #result >=1then
break
else()
end
usleep()
end
作りたいものは10回認識したあとそれでも条件が一致しなかった場合にelseを起動するという文なのですがどうしたらよろしいでしょうか。↑の文だと1回しか認識してくれずその後すぐにelseが起動してしまいます
local result=()
if #result >=1then
break
else()
end
usleep()
end
作りたいものは10回認識したあとそれでも条件が一致しなかった場合にelseを起動するという文なのですがどうしたらよろしいでしょうか。↑の文だと1回しか認識してくれずその後すぐにelseが起動してしまいます
105デフォルトの名無しさん
2016/10/15(土) 07:22:22.29ID:ZbexwM8p >>104
アルゴリズムの問題でLuaに直接の関係はないと思うが…
if (function()
for i=1,10 do
if 条件(i) then return true end
usleep()
end
return false
end)() then
成功()
else
失敗()
end
※条件 = function() return #result >= 1 end
アルゴリズムの問題でLuaに直接の関係はないと思うが…
if (function()
for i=1,10 do
if 条件(i) then return true end
usleep()
end
return false
end)() then
成功()
else
失敗()
end
※条件 = function() return #result >= 1 end
106デフォルトの名無しさん
2016/10/15(土) 11:39:37.03ID:4d5CGaAG 理系にとって最強のアルゴリズムは微分だから
booleanを返す関数とか興味なさそうだよな
booleanを返す関数とか興味なさそうだよな
107デフォルトの名無しさん
2016/10/20(木) 22:50:26.41ID:yOW97v2T 30分たったら別の動作をするというマクロを組みたいのですがどうしたらいいでしょうか?
108デフォルトの名無しさん
2016/10/20(木) 23:17:53.03ID:qfvHlq80 プラットホームとなるハードとOSと、
その”マクロ”を実現する為に使うインタープリタのライブラリと、
ホスト及びスクリプトの変更の可否と作成/変更するのは誰なのかをはっきりさせよう
その”マクロ”を実現する為に使うインタープリタのライブラリと、
ホスト及びスクリプトの変更の可否と作成/変更するのは誰なのかをはっきりさせよう
109デフォルトの名無しさん
2016/10/20(木) 23:35:02.03ID:CADipw6U >>107
cron
cron
110デフォルトの名無しさん
2016/10/21(金) 08:41:00.29ID:ZLbHPX6c iPhoneのautotouchです
例えば
::repeat::
touchDown(11, 728.44, 1325.47);
usleep(66621.17);
touchMove(11, 714.09, 1318.31);
usleep(8072.75);
goto repeat
↑を30分繰り返し実行させたあと
別の動作
という感じのマクロを組みたくて、できますか?
例えば
::repeat::
touchDown(11, 728.44, 1325.47);
usleep(66621.17);
touchMove(11, 714.09, 1318.31);
usleep(8072.75);
goto repeat
↑を30分繰り返し実行させたあと
別の動作
という感じのマクロを組みたくて、できますか?
111デフォルトの名無しさん
2016/10/21(金) 09:06:48.82ID:spSptSrt >>110
30分たったら繰り返し抜ける条件入れて”別の動作”するだけじゃん?
30分たったら繰り返し抜ける条件入れて”別の動作”するだけじゃん?
112デフォルトの名無しさん
2016/10/21(金) 09:20:44.75ID:pdGvRJMA 現在時刻を見て30分の経過を判定したいなら os.time() が使える
ただスキルレベルから推察するに
「30分間の動作」を個別に作成して、30分(以上)間隔での自動起動を登録するのが楽な気がする
ただスキルレベルから推察するに
「30分間の動作」を個別に作成して、30分(以上)間隔での自動起動を登録するのが楽な気がする
113デフォルトの名無しさん
2016/10/21(金) 10:51:50.70ID:ZLbHPX6c >>112
30分間の動作を個別に作成ということは1回1分の動作を30回行うということでしょう?回数で指定してしまうと、画像認識などを組み込んでいると、固まってしまった時などに対応出来ないので分数で指定したいなと思ったのです。os.timeというのを少し勉強してみます。
30分間の動作を個別に作成ということは1回1分の動作を30回行うということでしょう?回数で指定してしまうと、画像認識などを組み込んでいると、固まってしまった時などに対応出来ないので分数で指定したいなと思ったのです。os.timeというのを少し勉強してみます。
114デフォルトの名無しさん
2016/10/21(金) 11:00:26.81ID:ZLbHPX6c >>111
30分たった、というのをどう書き込めばしたらいいのでしょうか?
30分たった、というのをどう書き込めばしたらいいのでしょうか?
115デフォルトの名無しさん
2016/10/21(金) 11:51:09.35ID:99qJcPaT こう言っちゃ何だけど、ここで聞く以前のレベルだとおも
116デフォルトの名無しさん
2016/10/24(月) 08:10:28.19ID:S9sd0iNh luaの#で要素数が取れるのは配列の時だけ?
連想配列の時はとれない?
0となりました
連想配列の時はとれない?
0となりました
117デフォルトの名無しさん
2016/10/24(月) 09:28:56.92ID:uL8us8KR >>116
とれない。どうしても要素数が欲しければ next() を繰り返して自分で数える。
正確には、配列と連想配列の区別はなく、オブジェクトに対する#演算子は
「nilでない要素を1,2,3..と数えてその最大値を返す」という意味。
内部的にはバイナリサーチを使ったりと最適化はされてはいる
とれない。どうしても要素数が欲しければ next() を繰り返して自分で数える。
正確には、配列と連想配列の区別はなく、オブジェクトに対する#演算子は
「nilでない要素を1,2,3..と数えてその最大値を返す」という意味。
内部的にはバイナリサーチを使ったりと最適化はされてはいる
119デフォルトの名無しさん
2016/12/11(日) 07:53:54.30ID:RsXQTiEs Duktape と node.js の組み合わせというのも面白そう。
120デフォルトの名無しさん
2016/12/18(日) 18:08:35.21ID:vfXpGXVv luaに興味持ってこのスレきたんですが
どこから勉強すればいいですか
ほんとに経験0です
そらこのサイト漁ってみたけど全く理解できなかったんでなんかいいサイト教えていただきたいです
どこから勉強すればいいですか
ほんとに経験0です
そらこのサイト漁ってみたけど全く理解できなかったんでなんかいいサイト教えていただきたいです
121デフォルトの名無しさん
2016/12/19(月) 00:54:09.55ID:cmGH62+n とりあえず、ちみはC言語でどのくらいのプログラムが組めるのかな?
122デフォルトの名無しさん
2016/12/19(月) 09:49:24.63ID:7vRJ7kJt 最初なら動くものを触ったほうが興味が続くだろうから
既存のアプリなりゲームに付属のLua環境で慣れるのが良いだろうね
日英のWikipediaにLuaを採用している製品の一覧がある
既存のアプリなりゲームに付属のLua環境で慣れるのが良いだろうね
日英のWikipediaにLuaを採用している製品の一覧がある
123デフォルトの名無しさん
2016/12/20(火) 08:01:28.19ID:kdK8nOSL124デフォルトの名無しさん
2016/12/20(火) 08:22:49.39ID:LqbSCARG 経験0なのがluaの経験なのか、プログラミングの経験なのか
luaを使うのが目的なのか、目的の為にluaを使おうとしてるのか
それで大分事情は変わってくる
lua簡単そう=Python並にGUIまでやろうと思えばできる と思ってるなら期待はずれ
luaを使うのが目的なのか、目的の為にluaを使おうとしてるのか
それで大分事情は変わってくる
lua簡単そう=Python並にGUIまでやろうと思えばできる と思ってるなら期待はずれ
125デフォルトの名無しさん
2016/12/22(木) 11:41:07.55ID:8NoWo5zW lua言語だけで全部やろうとするやつなんていないよ。
Cなどで作った外部関数をコールしたりDLLで拡張したりでGUI作るのが一般的かと。
Cなどで作った外部関数をコールしたりDLLで拡張したりでGUI作るのが一般的かと。
126デフォルトの名無しさん
2017/01/02(月) 14:24:52.29ID:Z2Rzarkn 遊んでるゲームがLua内蔵してるからそれを使って
カスタマイズしてみたいけどプログラミング経験無し
というケースだとほぼ間違いなく挫折する
カスタマイズしてみたいけどプログラミング経験無し
というケースだとほぼ間違いなく挫折する
127デフォルトの名無しさん
2017/01/31(火) 21:25:07.85ID:l9i4M/G6 Lua 5.3.4 released.
128デフォルトの名無しさん
2017/02/01(水) 08:43:33.03ID:VgN1at3T Lua安定力半端ねえ
レスを投稿する
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- 【悲報】中国営業に熱心な日本人タレントたち、中国のイベントが続々と中止に… まだ予定中のアイドルとか歌手とかたくさんいるけど [452836546]
- 自閉症が「んなっしょい」と連呼するお🏡
- 押井守の映画「天使のたまご」が4Kリマスターされて上映されるみたいなんだけどこれ面白いの? [268718286]
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
