◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

【Lua】組み込み系言語総合 その7【Squirrel】 [無断転載禁止]©2ch.net


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1474536226/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2016/09/22(木) 18:23:46.74ID:t8yALPnl
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/
2デフォルトの名無しさん
2016/09/22(木) 19:52:44.75ID:t8yALPnl
Lua: http://www.lua.org/
Squirrel: http://www.squirrel-lang.org/
ECMAScript (JavaScript): https://en.wikipedia.org/wiki/List_of_ECMAScript_engines
AngelScript: http://www.angelcode.com/angelscript/
elastiC: http://www.elasticworld.org/
3デフォルトの名無しさん
2016/09/22(木) 19:56:44.34ID:t8yALPnl
NGワードでテンプレが張れないのでざっくり削ってしまった
必要なら補完をお願い
4デフォルトの名無しさん
2016/09/22(木) 21:05:12.80ID:oIZhSgnz
>前スレ999
リファレンスはあくまで言語リファレンスだから、踏み込んだ機能は Programing in Lua 読まないと駄目だよ

該当機能は13.4に解説されてる
5デフォルトの名無しさん
2016/09/22(木) 23:07:14.74ID:t8yALPnl
__index と __newindex の話ならリファレンスにもある
https://www.lua.org/manual/5.3/manual.html#2.4
6デフォルトの名無しさん
2016/09/23(金) 00:05:56.60ID:SHIicrTE
>>4
ありがとうございます
https://www.lua.org/pil/13.4.5.html
これですね。__indexは関数の節約や継承に相当する機能を実現するために
使いますけど[]の定義とこれらは両立は出来ない・・・?
__indexに[]にさせたい関数を入れてしまうとキーを参照しに行くテーブルを設定できませんし
__indexにテーブルを入れてしまうと[]にさせたい関数を書く場所がないような

>>5
すみません。気がつきませんでした。>>4を見た後に探し直したら見つかりました
7デフォルトの名無しさん
2016/09/23(金) 02:26:53.79ID:cTcmD9zg
__indexメタメソッドに設定した関数の中から目的のテーブル参照すりゃ良いだけだと思うが
8デフォルトの名無しさん
2016/09/26(月) 08:06:56.17ID:wXZ7/4lL
ノンプリエンプティブなマルチタスクしか実現できないLuaでファイルアクセルの
オーバーヘッドを掩蔽することは不可能ですか?
IO待ち中にタスクを切り替えられないと思いますけど何か方法があるのでしょうか
9デフォルトの名無しさん
2016/09/26(月) 08:30:26.28ID:Jg/TEaNB
>>8
別スレッドで自動でファイル読み込みして、メモリへの読み込み終わったら通知が来るような仕組みを別途作ればいい
10デフォルトの名無しさん
2016/09/26(月) 08:39:51.12ID:DUFqbT57
Luaだけだと無理だね ホスト側で仕組みを作るしかない
11デフォルトの名無しさん
2016/09/28(水) 00:35:49.15ID:yOlfPxWj
タスクの定義がなんだかよーわからへんけど、1つのスレッドで読み込み要求を発行した後、
そのままそのスレッドで円周率ん万桁とか計算したりした後、
読み込みが終わったかどうかを確認した上で読み込んだ内容をほげほげしたい、と仮定しよう

Win32だったら::ReadFile(::ReadFileEx)はプログラマがマルチスレッドを意識する事なく非同期読み書きが可能
キーワードはReadFile、GetOverlappedResult、
あとCancelIo(一度に沢山読み込むのを例外とかでキャンセルしたりする時に重要、
キャンセルしたら即全部止まる訳じゃないからGetOverlappedResultで待ち合わせないとダメよ)
Linuxの類ならスレッドなりプロセスのフォークなりして最初に読み込んで
単純にLuaスクリプトが追いついたらWait何とかみたいな関数バインドして待たせたらどうだろうか

で、どうしてもLuaが主導で要求を発行した上で自前の他のスレッドでやりたいってんなら
Luaにクリティカルセクションか非同期読み込みに使ったイベントへのアクセス手段を
ホスト(Luaスクリプトを使う側から見た内部)で存続から何から何まで管理して
ロック待ち、ロック開放、イベントシグナル変更、シグナル待ち まで提供しとけば手っ取り早くできなくはない
ただしマルチスレッドプログラミングの注意点をLuaでも守らなきゃならなくなる

最後は>>9の手段についてだけど、これが無難と言えば無難だけど、
通知を待つ手段をコルーチンの類にすると、ちょいと突っ込んだ事を始めるとすぐに限界にぶちあたる筈
どうせ読み込みを開始して必要な処理が終わったらコルーチンか終了フラグをポーリングするんだろうから
いっその事ブロッキングしちゃった方がいいんじゃないかと思わなくもない
この時の注意点はホストからの終了要求も取りこぼさない様に2つ(複数)のハンドルをウェイトする事
12デフォルトの名無しさん
2016/09/28(水) 06:29:58.49ID:Nip8sf3s
Luaに足りない機能が欲しいときはJavaScriptを参考にするといい
この2つはスクリプトエンジン部分が非常によく似ている

非同期処理が欲しいなら、Promiseのように処理完了でコールバックする形式が良い
実装は、非同期I/Oなりスレッドプールなりでご自由に

また、Lua自体を並列実行したい場合は Web Worker が参考になる
新しいStateで独立したグローバル環境を用意し、引数/返値のみマーシャリングする
ホスト側のマルチスレッドを公開する >>11 の方法は間違いで、GCが破綻する
13デフォルトの名無しさん
2016/09/28(水) 06:47:31.69ID:hiAJ49Og
マルチスレッドを公開する方法はluaのスタックが壊れるよな
14デフォルトの名無しさん
2016/09/28(水) 11:28:17.80ID:yOlfPxWj
もちろんlua_newstate lua_newthreadは必須
15デフォルトの名無しさん
2016/09/28(水) 11:31:47.14ID:RDlboUCA
luaもes6みたいにクラス構文追加すればいいのに
typescriptを改造してtypelua作れないだろうか
16デフォルトの名無しさん
2016/09/28(水) 11:33:06.02ID:yOlfPxWj
てかggればQiita辺りがすぐ引っかかる筈

それと外部からの正常な中断(中断ボタンとか)はデバッグ命令かなんかで1000命令に
1回フラグ見てフラグが立ってたらスレッドの終了シーケンスに移行みたいな乱暴な事をしてる
フラグ立ててイベントをシグナル化、Luaのスクリプトから何かをウェイトする時は
そのイベントとその資源の両方をWaitForMultipleObjectsで待ってシグナル化原因を必ず判定
17デフォルトの名無しさん
2016/09/28(水) 11:36:10.73ID:RDlboUCA
typescriptというよりbabelか
型があると組み込みとかで面倒な事になりそうだし
18デフォルトの名無しさん
2016/09/28(水) 12:35:10.14ID:yOlfPxWj
メシ前で言葉足らずだったすまぬ

何から何まで直接APIを生で渡してそのままstate切り替えずにマルチスレッドでGoって話じゃない
lua内の変数の直接の共有はもちろんできないからグローバルでホストのユーザデータ持たせて
そこに固定で配列の排他領域持つなりstd::deque<適当>でメッセージポンプなりしなきゃダメ

で、何故WaitForMultipleObjectsかってーと、極端な話最初に実行し始めたluaのスレッドが
別スレッド用のスクリプトを起動してスレッドが動的に生成されて全部無限ループに陥ったりしたのを
止められるように~とWin32でスレッドをabortしたりすると、実は無限ループじゃなかった時に
使ってたり待ってたりした資源次第でレアなLastErrorや例外になったりして異常なのか正常なのかわからない
luaは俺の知る限り外部からのスレッドセーフな強制中断のメソッドは持ち合わせてないし
google v8なんかも2~3年位前?のI/Fががらりと変わった時に追加された中断メソッドで
ようやく対応ってくらいだからluaにそれを求めるのは酷かも知れない
だから自分で強制中断の手段をlua_sethookでも何でも使って準備しておくのが吉(異論は認める)
19デフォルトの名無しさん
2016/09/28(水) 13:08:14.98ID:Nip8sf3s
>>15
https://github.com/andremm/typedlua
LuaJITのffi宣言は型があるけどLuaへは伝搬しないんだっけか

>>18
もう少し空気を読めるようになろうね
20デフォルトの名無しさん
2016/09/28(水) 13:27:05.51ID:yOlfPxWj
CAsyncFile::~CAsyncFile( void )
{
m_bCancel = true;
if( ( !( m_ctxlist.empty() ) ) || ( 0 < m_uPendingCount ) )
{
m_file.AsyncCancelIo();
}
bool bEnd = false;
while( ( !bEnd ) && ( !( m_ctxlist.empty() ) ) )
{
_SAsyncFileHeapContext & ctx = m_ctxlist.front();
if( !( ctx.heap.bPending ) )
{
m_pfilelist->_SubUsingSize( ctx.heap.uHeapSize );
m_ctxlist.pop_front();
}
else
{
bEnd = true;
}
}
}

身バレしそうだからデストラクタしか晒さないけど丁度こういうの作ってたからさ
FILE_FLAG_OVERLAPPEDはマルチスレッドの正常終了シーケンス辿れるくらいじゃないと使いこなせない
その辺管理できないと要求発行したままスクリプト終了やどっかでエラーが起きた時に
更に追い討ちでアクセス違反の類のエラー起こす
21デフォルトの名無しさん
2016/09/28(水) 21:14:26.38ID:E/gCU/1d
「スレッドではありません。コルーチンです」とか
「オブジェクトではありません。連想配列です」とかはっきり言うべきなんよ
そうしないと「スレッドのくせにこんなこともできないのか」
「オブジェクトのくせに以下同文」ってなる
22デフォルトの名無しさん
2016/09/28(水) 23:59:19.59ID:v1ba5adm
>>21
コルーチンはあくまで言語の遷移の構造を指す用語(サブルーチンと対になる用語)だから、実行の主体を示すのは「スレッド」で正しいぞ
23デフォルトの名無しさん
2016/09/29(木) 06:26:28.32ID:wi991s1d
>>22
それはつまり正しい用語を使った作者は正しくて誤読した読者が悪いってことか

でも正しい奴も悪い奴も全員にメリットのある方法ってないのかな
24デフォルトの名無しさん
2016/09/29(木) 06:40:04.23ID:EoqEFEeY
そもそも誤読するやついるのか?
25デフォルトの名無しさん
2016/09/29(木) 06:46:03.64ID:y8+pYy20
「オブジェクト」については流石に見解が一致しないだろうから
違う用語 or 意図の説明が欲しいな
26デフォルトの名無しさん
2016/09/29(木) 06:59:50.06ID:EoqEFEeY
ん?Javascriptのオブジェクトも許せない人?
27デフォルトの名無しさん
2016/09/29(木) 07:51:10.72ID:a430Zm1B
この流れは俺が悪いのかな?
目的はある意味投機実行ならぬ投機読み込みだよね?
でもって読み込みが終わったらコルーチン遷移だろうと完了待ちブロッキングの関数バインドだろうと
他のWin32のスレッドか完全な別ステート(コンテキスト)のLuaスクリプトでReadFileだろうと
ReadFileExのコールバックルーチンを使おうと必ず全く別のWin32スレッドが必要になる筈なんだけど
いやむしろコルーチンで全部済む方法があったら是非教えてくだちい(皮肉じゃないよ、結構必死)

ちな俺が作ってたのはシナリオインタープリタに例えると、今実行中のステートとは
完全に独立した複数のステートで選択肢の1つ先の全選択肢を入出力ダミーにして投機実行して
全部DISCARDABLEなグローバルヒープに持っとく為に複数ファイルをグローバルなユーザデータの
m_ctxlistに放り込んでFILE_FLAG_OVERLAPPEDで勝手に全部読み込みにいくって感じの代物
デストラクタでGetOverlappedResultできないのは選択肢決定が早かった時にそこで待っちゃうと
本来の読み込み要求(これも排他を待たなきゃいけない)と重なって更に待たされる可能性があるから
でもってどんなエラーが起きてもおいそれとOVERLAPPED構造体は破棄しちゃいけない
最悪メモリリークを選んで他のヒープの開放にいかなきゃいけない
だって、開放したらしたでアクセス違反で他の後始末する前に即ぶっ飛ぶのが目に見えてんだから
単純な決め打ちの非同期入出力なら何とか簡単にできるかも知れんけど、
突っ込んだ事しようとすると頭うにる
28デフォルトの名無しさん
2016/09/29(木) 08:07:35.79ID:y8+pYy20
>>26
いや、連想配列とオブジェクトは何が異なるのか?という意味
おそらくオブジェクトは連想配列+αなんだろうけど
説明しろと言われたら、自分はハッキリ説明できる自信が無い
29デフォルトの名無しさん
2016/09/29(木) 10:10:01.10ID:AXFlgWC+
OSレベルのスレッド
言語レベルのスレッド
区別してもらえると助かります
30デフォルトの名無しさん
2016/09/29(木) 14:17:18.55ID:a430Zm1B
>>27はWin32スレッド以外は”コルーチン””別ステートのLuaスクリプト”としか言ってないんだけど
これでわからないなら非同期は諦めた方がいいかも知れない
ReadFileExのイベントハンドラでやれば良さそうとか考えそうだけど、
スレッドID取得するとシステムの別スレッドだからそこからLuaの何かいじりにいくとスタックぶっ壊すよ
31デフォルトの名無しさん
2016/09/30(金) 08:27:54.40ID:aDhSErqk
>>27
管理主体はシステム側がもって、
他からは読み込んだものをメモリー経由でのみアクセスするようにして、
luaからは弱参照する仕組み作って参照する形で全く問題無いような

Luaで扱えるレベルのシステムを必要以上に難しく作る意味は無い
32デフォルトの名無しさん
2016/09/30(金) 11:13:49.15ID:j0K6lQ2j
JSなら、メインスレッド以外はサーバーにあってメモリーすらアクセスできない事も多い

スタックが壊れるとかいうならスタックにアクセスしなければいいだけなんだよな
33デフォルトの名無しさん
2016/09/30(金) 11:40:47.98ID:LMNz6D7V
>>32
GC中だと何も触れないからLuaスタック以外へのアクセスでも怖いよ
lua_lock / lua_unlock までカスタマイズする気なら、その限りではないが
34デフォルトの名無しさん
2016/09/30(金) 13:28:37.87ID:j0K6lQ2j
Luaスタック以外って
C++の変数かな
まあそうだねC++は怖いね
35デフォルトの名無しさん
2016/09/30(金) 16:24:15.30ID:aFh0nkO3
>>31
そうだよ、結局はシステム側が管理しなきゃならないと思う、それで全部解決する

OVERLAPPEDなReadFileとGetOverlappedResultの発行をバインドするだけという
最も単純で最も無駄な方法であってもそれが必要になるという話
リモートのファイルにReadFile発行した後LANケーブル引っこ抜いて
スクリプト中断なりエラーなり発生させるとわかる
36デフォルトの名無しさん
2016/09/30(金) 18:18:42.06ID:j0K6lQ2j
バインドという単語は公式なマニュアルでは見たことがないので意味が曖昧だが
LuaがC++を呼び出すことしか想定していない気がする
逆にC++がLuaを呼び出す必要がある場合に色々破綻する気がする
37デフォルトの名無しさん
2016/10/01(土) 05:36:10.17ID:PtIPW4Qc
無難に済ますなら呼び出されたC++側のコード(ホストからluaのステートにバインドされた関数)で
C++側から通知か何かがあるかどうかを調べたりするのかな
どうしようもなければlua_sethookで登録したハンドラで一定行実行される度にフラグを見て
最低限の処理をして離脱した後、改めてlua側で何かをするとかしかない
38デフォルトの名無しさん
2016/10/01(土) 06:33:04.10ID:cvsJ/xEf
メッセージキュー作ってlua側から呼んでコールバック実行すればいい
39デフォルトの名無しさん
2016/10/01(土) 07:36:37.31ID:PtIPW4Qc
結局は原則としてlua側の方から結果が存在するかどうか調べにいかなきゃならないね
40デフォルトの名無しさん
2016/10/01(土) 08:31:36.35ID:M5ncT/Oi
>>39
それJavaScriptで同じこと言えるの?
41デフォルトの名無しさん
2016/10/01(土) 08:55:44.45ID:PtIPW4Qc
>>40
>>11みたいに全ステート共通のユーザデータに排他管理されたデータ積んで
イベント発生毎にスレッドプールからスレッド取ってきて独立したハンドラ専用のステートで
そのイベント専用のスクリプトの実行まですればイベントドリブンは可能
そこまで作りこむとスレッドプールの空きに合わせて投機実行してシナリオデータが間接参照してる
他の細々としたファイルの先読みもそんなに大変なことでもなくなる

どっちのレベルに合わせればいいのかわかんね
42デフォルトの名無しさん
2016/10/01(土) 10:40:59.92ID:cvsJ/xEf
>>41
色々知識足りてないね。勉強したら?
43デフォルトの名無しさん
2016/10/01(土) 11:29:58.38ID:PtIPW4Qc
http://fast-uploader.com/file/7030844243482/
ChakraCoreのソースコードを参考にC++/CLIでJSRTを使用
バインドした関数の中でクロージャを確保しても消えない
ある関数の中で作業用の変数をアロケートしてそこでGCしても変数消えない、
スコープ抜けた後のGCできっちり消える
もちろんIEと同じJavaScriptだからMathとかもIEとかと全く同じ、バインドしてるのは・・・
解析した時のテストコードだからちょっと待ってね(バインダは絶対晒さないよ)

それとも何かバインドして同時に16スレッド動く様にしようか?
44デフォルトの名無しさん
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
45デフォルトの名無しさん
2016/10/01(土) 13:38:37.94ID:KgMKfA8p
Mathてビルトインのクラスね。
Window DOM以外は一通り使えるんだな。
しかもIE入ってればいいのか・・・検索しても例は少ない。
これはバインダー欲しいぞ。
46デフォルトの名無しさん
2016/10/01(土) 14:18:37.12ID:PtIPW4Qc
だから絶対やらんて、3時間に設定したからもうすぐロダから消える

何故煽られるのか考えてみた
lua_sethookでcountフックして終了フラグ見たらthrowみたいな強制的なWin32スレッドの終了ではなく
メモリリークしないluaスクリプトの中断とかですらマイナーな手法なのかな?
俺は行と行の間で止まってる事が約束されてるんだから何かの要求があったらyieldの流れに
干渉するような変更とか平気でやってたんだけど、その辺の温度差なのかな?
47デフォルトの名無しさん
2016/10/01(土) 14:38:35.71ID:3sVMm49u
煽ってるやつはどうせ何も分かってないんだからスルー上等…
なところだが奮起していろいろやってくれるのは面白いから応援しよう
48デフォルトの名無しさん
2016/10/01(土) 15:09:40.69ID:M5ncT/Oi
>>46
外の人がブレーキかけない限り停止しないスクリプトって面倒臭くない?
なぜ自律的に停止しないのか
49デフォルトの名無しさん
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しなきゃとかスクリプト終了で全ての待ち合わせが終わる前に
「今のエラーどこだっけ?」とか即再実行したりすると稀に起きる再現性のない原因不明のメモリ破壊
原因わかって「もうこれ全部自分で管理した方がトラブル少なそう」で今に至る、もう手の内は出さない
50デフォルトの名無しさん
2016/10/01(土) 15:45:33.24ID:M5ncT/Oi
無限ループしたから解除したい
バグったからデバッグしたい
これは非同期でもマルチタスクでもなくデバッグの話だよね
51デフォルトの名無しさん
2016/10/01(土) 15:53:18.05ID:PtIPW4Qc
>>50
一番簡単な例として挙げただけでcountフックで止まってる間は再開までに辻褄があってれば
変数の変更から状態遷移の誘発まで色々できるよ
52デフォルトの名無しさん
2016/10/01(土) 16:02:15.47ID:M5ncT/Oi
>>51
「面倒臭くない?」に対して「色々できるよ」は答えになってない
53デフォルトの名無しさん
2016/10/01(土) 16:13:21.80ID:PtIPW4Qc
たしかにボタン1発で終了は意味ないっちゃー意味ないね、忘れてくれていいよ

とりあえず、フックのハンドラに突入したら離脱するまでの間にスタックがluaスクリプトの実行で
動くことはないからAPI全部呼び出し放題だから知らなかった人は遊んでみると面白いかも
54デフォルトの名無しさん
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ならぬ割り込み起動みたいな直接的な真似は流石にやめといた方がいいと思う
55デフォルトの名無しさん
2016/10/01(土) 17:35:44.97ID:cvsJ/xEf
デバッグ用機能を普通に使ってる時点で…
56デフォルトの名無しさん
2016/10/01(土) 17:51:13.00ID:KgMKfA8p
だが面白いことは面白いw
これも実用例も少なくて同人マが少し案として呟いてるだけか。良く見つけるなw
Chakraをあれだけ動かす位だからlua程度なら隅々まで把握しててもおかしくないか。
57デフォルトの名無しさん
2016/10/01(土) 18:57:18.74ID:PtIPW4Qc
なきゃないで自分で追加してたとこだけどね

読んで参考にしたのはChakraCoreだけどあれが使ってたのは最初から窓に入ってるjsrt.dll
あのexeがめっちゃ小さかったのはexeにエンジンくっつける必要がないから
JSRTをv8猿と比べた感想は使い手にとっては微妙、作り手(ChakraCoreの読み手?)にとっては
わかるまでが大変、わかるとめっちゃ使いやすいけど無駄に感じるとこが多すぎ
そりゃv8に勝てずにオプソにしてブン投げてエッジモードJSRT開発にいくわぁなぁ
思想がわかって作りやすいから個人的には好きだけど
58デフォルトの名無しさん
2016/10/01(土) 21:55:14.80ID:nMhs26pq
>>46
yeild でメインループの呼び出し元に安全に戻ってきてるんだから、そこで全部必要な他スレッド処理した上で後始末もして、
必要ならそれぞれ駆動させてるluaスレッドにluaの例外返して、それをスクリプト側で自発的に処理するだけじゃん?

lua側にスレッドではまるコードを入れる必要性が全く無いのにそれを考えるのはナンセンス
59デフォルトの名無しさん
2016/10/02(日) 02:15:08.35ID:4LOtpf4Z
>>58
それな。
間違った方法と気付かず突き進む無能な働き者臭がプンプンする。
60デフォルトの名無しさん
2016/10/02(日) 09:35:31.71ID:ToCp8nQC
スクリプターがみんな優秀とは限らない
UWSCもスクリプトが固まったらいちいちCtrl+Alt+DELだったらくっそめんどくさいと思うよ
61デフォルトの名無しさん
2016/10/02(日) 11:06:09.66ID:2GKgFmK4
コマンドラインだったらアプリが固まってもターミナルは固まらないから楽
でも見た目が文字ばっかりだからダメという面倒臭い価値観を許容できない者は絶滅した
62デフォルトの名無しさん
2016/10/02(日) 11:16:06.69ID:ToCp8nQC
ゲームかどうか問わずマクロもシナリオインタープリタも
行政の廃棄物処理のサイトの裏のパラーメータ決定もコマンドラインとか無理
63デフォルトの名無しさん
2016/10/02(日) 11:30:58.46ID:ToCp8nQC
2行目ですらちょっとマズかったかも知れない・・・あいつらの知識レベルは想像絶するからね
話聞いたらいじってたのは研究の支援受けた大学の学生とか公的もブラックかよと
JSやasだと行末にはとにかく「;」と思い込んでスコープ生成する様な組み込み構文にも付けて
長時間ハマって問い合わせてくるからね!それじゃif文全く機能しないから!→lua(ry
C++/CLI使ってたのはそゆ事
インタープリタに限らず使えそうな物はASP.NETからも使える様に一通りラッピングしてある
64デフォルトの名無しさん
2016/10/02(日) 16:16:10.81ID:aWO2DXf2
重箱の隅突ついてる面々もどうでもいいとこけなしてないで具体的にどうすればいいか物を出さんとな
↑のは仮想PCのロールバックと共に即消え去ったがまぁ普通に作れる物ではなかった
65デフォルトの名無しさん
2016/10/02(日) 17:05:21.48ID:4LOtpf4Z
Boost.AsioのようなAPIにすればいいだけ
66デフォルトの名無しさん
2016/10/02(日) 18:01:25.22ID:aWO2DXf2
だけ で済むなら晒してやりゃいいのに
まー単純に1ファイル非同期読み出しできてもメモリいっぱい読む時間なんてたかが知れる
煩雑さのわりに効果なくてすぐ棄てそうだが
67デフォルトの名無しさん
2016/10/02(日) 18:23:39.86ID:ToCp8nQC
それ以前にFILE_FLAG_SEQUENTIAL_SCAN立てて開いてればいきなりReadFileでえっらい容量を
読もうとしない限り大抵先読みされる筈だから意味ないとおも
68デフォルトの名無しさん
2016/10/02(日) 18:25:45.79ID:2GKgFmK4
コマンドラインをけなして進化したものもあるんじゃないかな
けなすのを止めろと言われて馬鹿正直に止まった者は進化しなかった
69デフォルトの名無しさん
2016/10/02(日) 18:28:10.94ID:ToCp8nQC
>>67
恐らく読み書きでファイルポインタ動かないのはそゆ事
1ファイルを頭から単純に読み込みに行く事は想定してない
シナリオデータがパックされたでかいファイルでジャンプとか複数のファイルとかじゃないと効果薄いとおも
70デフォルトの名無しさん
2016/10/02(日) 18:35:41.27ID:ToCp8nQC
ミスった、>>66

>>68
コマンドラインをけなしてる訳じゃないんだ
むしろFreeBSD11.0(フライング)で盆栽ならぬ現実逃避しながら土方グラマしてるくらい慣れてるし否定はしない
ただ、現実問題ゲームのツールにしても少なくとも俺の知る限りGUIでないと通用しないしサポートも大変
けなしてると思われたなら謝罪する、申し訳なかった
71デフォルトの名無しさん
2016/10/02(日) 21:34:29.07ID:Q2kOE1Eq
これまでにない最も適切な回答が出た希ガス
そして当然の発想を発想するとは思わない理由もわかった希ガス
72デフォルトの名無しさん
2016/10/02(日) 22:57:41.88ID:ToCp8nQC
もしかして、1つのファイルを頭から非同期で良かったん…?
1つのファイルを頭から順の先読みなんてのをユーザが実装する意味ないです、
どう実装するとかインターフェース云々構造云々言うまでもなくフラグ立てれば
キャッシュを見れる位偉い人が下で勝手にやってくれます;
CreateFile直後のReadFileとかよっぽど早い読み込みとかでもなければ
ERROR_IO_PENDING返ってきません、スレ汚し失礼しました;
73デフォルトの名無しさん
2016/10/02(日) 23:23:52.57ID:XhpVhTHi
>>66
PCだと誤差の範囲ですむけど、VITAとかだとひっかかるのがわかるので、非同期&先行読みこみ重要だったり
74デフォルトの名無しさん
2016/10/02(日) 23:34:04.22ID:aWO2DXf2
ググったがMSがフラグ使えって書いてたのはワラタw勉強になった
それを学習した上で簡単な先読みならそういうのはiostreamみたいなので吸収した方が良さそう
スクリプト内にまで持ち込む利点がおもいうかばない
75デフォルトの名無しさん
2016/10/03(月) 00:06:05.41ID:P8G6wOCj
ホストの変更が困難でネイティブなスレッドも非同期の機能も提供してないのかね?
もしそうならコルーチンで少し読んで主処理に戻ってを繰り返すしかないんじゃないかな
スレッドか非同期が使えるならそれに従えばいいしホスト変更できるなら>>74に一票
76デフォルトの名無しさん
2016/10/06(木) 23:17:21.33ID:qdTfrzU1
LuaにもGUIツールキットってあるみたいだけど実用になるのかな?
非同期処理が出来ないとファイルやネットワークへアクセスするたびに
GUIの描画が止まっちゃうと思うんだけど
77デフォルトの名無しさん
2016/10/07(金) 00:35:46.30ID:SRvWi+CW
非同期IOをネイティブコードで実装すりゃいいだろと何度言ったら…
78デフォルトの名無しさん
2016/10/07(金) 01:39:42.67ID:aWd3vjbT
整理してみようか
・ネットワークアクセスというからにはWindowsで非同期読み込み? > yes:>>67
・何を非同期で処理させたい? > ファイルやディスク類:>>75
・WindowsでGUIを非同期で処理させたい? > GdiFlushを参照(元々非同期)
Vitaだとしたら・・・ちょっと検索したけどVitaのLuaってどこかわかりやすい解説サイトない?
ないならVitaでLuaしてない人は軒並みお手上げ
ホストがどんな機能をどんな形でどれだけ提供するかで大分フローは様変わりする
79デフォルトの名無しさん
2016/10/07(金) 03:09:07.32ID:SRvWi+CW
整理といいつつ明後日の方向に持って行こうとする奴…
80デフォルトの名無しさん
2016/10/07(金) 03:33:01.51ID:b8KIq0Ir
なんかネイティブコードをコンパイルできない環境を正当化してるみたいで嫌な感じだ
81デフォルトの名無しさん
2016/10/07(金) 06:16:16.38ID:ZvM+u4Of
ほんとそれ
Luaは汎用言語ではなく組込用なんだから
ホスト次第でやりたいことは何でもできるし、そういうホストを作るだけだろ
82デフォルトの名無しさん
2016/10/07(金) 08:03:48.60ID:zaoGKf4F
組み込み以外のLua使用は認めんといわんばかりの流れだな
83デフォルトの名無しさん
2016/10/07(金) 08:31:12.00ID:SRvWi+CW
デフォルトでCやC++で書いたライブラリロード出来るけど?
84デフォルトの名無しさん
2016/10/07(金) 14:48:04.63ID:38WzhEHE
Lua言語のみでやるんだ!という朝鮮は無意味ということだろ
85デフォルトの名無しさん
2016/10/07(金) 17:53:12.95ID:aWd3vjbT
非同期君がプラットフォームをはっきりさせれば大部分は解決する気がする
又は解決できないことがはっきりする
86デフォルトの名無しさん
2016/10/07(金) 18:10:59.27ID:7KQTkYQu
組み込みじゃなかったらLua使うメリットなくない?
Pythonとかでいい
87デフォルトの名無しさん
2016/10/08(土) 01:59:56.06ID:fW81e7KH
>>86
JITによるJava顔負けの圧倒的な実行速度。しかもJavaより起動が速い
Pythonなんて雑魚
88デフォルトの名無しさん
2016/10/08(土) 05:53:19.72ID:y1l14uzD
環境晒さずにサンプル出させようって魂胆かね
ホストどころか動作環境も晒さないようなら以降非同期は無視でいっかね?
89デフォルトの名無しさん
2016/10/08(土) 06:51:14.10ID:7NFzJV+G
非同期処理ができないと困るという認識は正しいよ
でもLuaの自助努力とか自己責任でやる必要は全くない
JavaScriptの真似をしたりC++に丸投げしたりすればいい
90デフォルトの名無しさん
2016/10/08(土) 07:22:36.43ID:2uwi8nYQ
>>87
よくJITで比べるひとがいるけど、ホントにLuaJITを使ってる?
本家への追従も遅くて、開発体制が不安なんだけど
91デフォルトの名無しさん
2016/10/08(土) 08:10:17.72ID:0b+9II7o
動作環境て非同期で実行する処理書くだけならCでもC++でも標準で書けるじゃん
あとは通信したいならソケットでも使えばいい
92デフォルトの名無しさん
2016/10/08(土) 10:59:59.33ID:p4blcc/t
>>90
低機能でも良いから速度が欲しい場合に使ってみている
93デフォルトの名無しさん
2016/10/08(土) 11:54:59.08ID:y1l14uzD
Pythonのインデントも一長一短なんだよな
PHPもRubyも変数に一癖も二癖もあるし
言葉は悪いが単純な挙動の変更だけを許して余計なことさせたくない時はLuaは不自由だからうってつけ
94デフォルトの名無しさん
2016/10/08(土) 14:03:50.51ID:7NFzJV+G
Perlはソースの長さを減らした方が自由という考え方でLuaもそれに近い
でも言語を一個二個と数えたら言語が増えてるじゃないか一個にしろという勢力もある
95デフォルトの名無しさん
2016/10/08(土) 14:18:59.47ID:2uwi8nYQ
Luaは別にソースは短くならないぞ。function も self も省略できないし
Perlも最近主流の書き方なら、他と比べても短くはない
96デフォルトの名無しさん
2016/10/08(土) 15:01:44.89ID:7NFzJV+G
C++にたとえるとtemplate <typename T> classを省略できなくてもいいんだよ
新しいclassを作らず既存のtemplateを実体化することで短くするから
97デフォルトの名無しさん
2016/10/08(土) 15:55:37.09ID:vTm37qb7
JSとLuaって似てるからTypeScriptのコンパイラ弄ってLuaスクリプトにコンパイルとか出来ないだろうか
98デフォルトの名無しさん
2016/10/08(土) 23:24:45.57ID:etzwi2NN
>>93
selfは省略できるでしょ:
99デフォルトの名無しさん
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 向けも、ひょっとして誰かが作っているかも知れない
101デフォルトの名無しさん
2016/10/09(日) 02:31:30.06ID:Ug+5WYAJ
> lua: added lua target
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限定で速度をある程度犠牲にして汎用性を求めると
http://www.atmarkit.co.jp/fdotnet/dotnettips/101compileinvoke/compileinvoke.html
http://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が起動してしまいます
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
106デフォルトの名無しさん
2016/10/15(土) 11:39:37.03ID:4d5CGaAG
理系にとって最強のアルゴリズムは微分だから
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
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分繰り返し実行させたあと
別の動作
という感じのマクロを組みたくて、できますか?
111デフォルトの名無しさん
2016/10/21(金) 09:06:48.82ID:spSptSrt
>>110
30分たったら繰り返し抜ける条件入れて”別の動作”するだけじゃん?
112デフォルトの名無しさん
2016/10/21(金) 09:20:44.75ID:pdGvRJMA
現在時刻を見て30分の経過を判定したいなら os.time() が使える

ただスキルレベルから推察するに
「30分間の動作」を個別に作成して、30分(以上)間隔での自動起動を登録するのが楽な気がする
113デフォルトの名無しさん
2016/10/21(金) 10:51:50.70ID:ZLbHPX6c
>>112
30分間の動作を個別に作成ということは1回1分の動作を30回行うということでしょう?回数で指定してしまうと、画像認識などを組み込んでいると、固まってしまった時などに対応出来ないので分数で指定したいなと思ったのです。os.timeというのを少し勉強してみます。
114デフォルトの名無しさん
2016/10/21(金) 11:00:26.81ID:ZLbHPX6c
>>111
30分たった、というのをどう書き込めばしたらいいのでしょうか?
115デフォルトの名無しさん
2016/10/21(金) 11:51:09.35ID:99qJcPaT
こう言っちゃ何だけど、ここで聞く以前のレベルだとおも
116デフォルトの名無しさん
2016/10/24(月) 08:10:28.19ID:S9sd0iNh
luaの#で要素数が取れるのは配列の時だけ?
連想配列の時はとれない?
0となりました
117デフォルトの名無しさん
2016/10/24(月) 09:28:56.92ID:uL8us8KR
>>116
とれない。どうしても要素数が欲しければ next() を繰り返して自分で数える。
正確には、配列と連想配列の区別はなく、オブジェクトに対する#演算子は
「nilでない要素を1,2,3..と数えてその最大値を返す」という意味。
内部的にはバイナリサーチを使ったりと最適化はされてはいる
118116
2016/10/24(月) 10:38:12.37ID:XgnbxHK6
>>117
取り方まで教えていただきありがとうございます
nextで数えます
119デフォルトの名無しさん
2016/12/11(日) 07:53:54.30ID:RsXQTiEs
Duktape と node.js の組み合わせというのも面白そう。
120デフォルトの名無しさん
2016/12/18(日) 18:08:35.21ID:vfXpGXVv
luaに興味持ってこのスレきたんですが
どこから勉強すればいいですか
ほんとに経験0です
そらこのサイト漁ってみたけど全く理解できなかったんでなんかいいサイト教えていただきたいです
121デフォルトの名無しさん
2016/12/19(月) 00:54:09.55ID:cmGH62+n
とりあえず、ちみはC言語でどのくらいのプログラムが組めるのかな?
122デフォルトの名無しさん
2016/12/19(月) 09:49:24.63ID:7vRJ7kJt
最初なら動くものを触ったほうが興味が続くだろうから
既存のアプリなりゲームに付属のLua環境で慣れるのが良いだろうね
日英のWikipediaにLuaを採用している製品の一覧がある
123デフォルトの名無しさん
2016/12/20(火) 08:01:28.19ID:kdK8nOSL
>>120
個人的には、コマンドラインでどうこうするよりも
DLLなどを扱える自分の得意言語にLUAを組み込んで
色々やってみるのがおすすめ
124デフォルトの名無しさん
2016/12/20(火) 08:22:49.39ID:LqbSCARG
経験0なのがluaの経験なのか、プログラミングの経験なのか
luaを使うのが目的なのか、目的の為にluaを使おうとしてるのか
それで大分事情は変わってくる

lua簡単そう=Python並にGUIまでやろうと思えばできる と思ってるなら期待はずれ
125デフォルトの名無しさん
2016/12/22(木) 11:41:07.55ID:8NoWo5zW
lua言語だけで全部やろうとするやつなんていないよ。
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安定力半端ねえ
129デフォルトの名無しさん
2017/02/01(水) 09:43:49.71ID:nwC60mRJ
安定しすぎてて話すことが無いくらいだよな
130デフォルトの名無しさん
2017/02/01(水) 20:24:42.65ID:L9Dup9x5
新機能とか使わなきゃ、多少どころか結構古くても殆ど何も変わらんしな
131デフォルトの名無しさん
2017/02/01(水) 22:01:05.85ID:/Tbv2NCs
luaにもクラス構文くれ
132デフォルトの名無しさん
2017/02/02(木) 01:54:26.06ID:+Uwa3xtw
クラスの類は肥大化に加えて速度低下を招くんじゃないかね
JavaScriptみたいなプロトタイプに逃げるとややこしくなるし
素人のコードが実行時に変なとこに読み書きしにいって
とばっちり食う人が出てきたりするかもだし

クラス使うならPHPかAngelScriptおぬぬめ
133デフォルトの名無しさん
2017/02/02(木) 02:05:08.03ID:SQuns8F5
Haxe で lua ターゲットにすればいいんじゃね
134デフォルトの名無しさん
2017/02/02(木) 02:57:06.42ID:ExAPXdhA
Luaはプロトタイプベースのオブジェクト指向言語じゃん
135デフォルトの名無しさん
2017/02/02(木) 03:00:25.24ID:jZJ6Fjye
132はlua使ったこと無いんでしょ
136デフォルトの名無しさん
2017/02/02(木) 03:29:19.53ID:+Uwa3xtw
そうだったんだ、素で知らなかったスマン
プロトタイプベースみたいに実行時にコスト払うの嫌いなんよ
137デフォルトの名無しさん
2017/02/02(木) 05:37:01.12ID:ExAPXdhA
スクリプト言語ならクラスベースだろうが実行時にコストかかんの一緒だろ何言ってんだ
138デフォルトの名無しさん
2017/02/02(木) 05:59:25.88ID:+Uwa3xtw
PHPやAngelScriptは先にコンパイルするよ
それとクラスの宣言自体は何の処理も実行しない
139デフォルトの名無しさん
2017/02/02(木) 06:19:52.32ID:ExAPXdhA
>>138
へぇ、何も実行せずクラスが出来上がるのか。お前の使ってるPHPとASは凄いなー(棒)
140デフォルトの名無しさん
2017/02/02(木) 06:27:58.39ID:+Uwa3xtw
クラス宣言しただけのソースをPHPが暗黙的にコンパイルしたり
AngelScriptにコンパイルさせたりして、それを実行して何か処理が行われるとでも?

プロトタイプベースのスクリプトなら実体作る時に代入とかで変数の中身が変わるから、
それで処理が実行される、というなら話はわかる
インスタンス生成した後、プロトタイプの中身変えて再度インスタンス生成とかできちゃうから
プロトタイプベースの嫌いなんだ
141デフォルトの名無しさん
2017/02/02(木) 09:20:30.60ID:OnfcMI/e
プログラミング言語は偏差値40の人にも理解できるものじゃなきゃダメ。
世間には大量のバカがいる。と先輩から教わった
142デフォルトの名無しさん
2017/02/02(木) 14:20:50.39ID:jH7tx66P
>>141
禿同
143デフォルトの名無しさん
2017/02/02(木) 14:35:52.16ID:Ty4k3X74
でも pcallから例外機構作って スコープ脱出時のフック(Haskellのbracket)作って try catch finally作って デストラクタ呼び出し機構作って クラス機構作って 俺スゲーしたいんだよ……
(案の定 黒魔術過ぎて誰にも見せられないものになった)
144デフォルトの名無しさん
2017/02/02(木) 16:10:30.94ID:u5OOo/+t
俺が言ってるのはLuaにシンタックスシュガーとしてクラス構文を作るって事ね
ES6みたいに

>>133
HaxeってLuaタゲも出来たのか
145デフォルトの名無しさん
2017/02/02(木) 17:22:15.83ID:t5eA0mNb
>>144
Haxe 3.3 からターゲットに入った模様
146デフォルトの名無しさん
2017/02/02(木) 17:26:03.65ID:u5OOo/+t
>>145
3.3が最新だったのか
147デフォルトの名無しさん
2017/02/02(木) 19:06:38.61ID:DsqPoeB2
>>146
最新は3.4でPHP7ターゲット対応らしい
148デフォルトの名無しさん
2017/02/02(木) 19:13:07.99ID:u5OOo/+t
wikipediaの情報が古いだけだったか
wikipediaって芸能とかは反映一瞬だけど技術系はクソ遅いよな
それにしてもHaxe凄い
149デフォルトの名無しさん
2017/02/03(金) 08:54:44.46ID:Z/TrYC07
>>143
finallyはgotoで十分やん的なスタンスみたいよ
150デフォルトの名無しさん
2017/02/03(金) 10:20:50.39ID:ppyFFvug
Luaで扱いたい領域だと、例外処理なんかの複雑なことをさせたくはないな
・「ファイルを開く」「読む」「閉じる」 / 失敗で例外発生
・「ファイルを全部読んだ文字列を返す」 / 失敗ならnilを返す
後者のような、緩い頭で使えるAPIが揃っていたほうが嬉しい
151デフォルトの名無しさん
2017/02/04(土) 02:14:00.58ID:f+CR9CVX
Sublime Text 3の70ドルって700円なんでしょ?
http://www.sublimetext.com/3
https://www.sublimetext.com/buy
152デフォルトの名無しさん
2017/02/04(土) 03:06:13.04ID:pHtZvk4V
sublimeはキーボードマクロ系がいまいち
153デフォルトの名無しさん
2017/02/04(土) 11:10:30.26ID:ZvHVse3h
sublimeの70ドルが700円になる技は知らないが
買う気もないしスレ違いだからまあいいか
154デフォルトの名無しさん
2017/02/12(日) 23:42:27.03ID:9E7ES6fF
Squirrelの拡張子はnut
リスだからか orz
155デフォルトの名無しさん
2017/02/15(水) 09:24:27.53ID:w0SHr4I6
windowsでファイルを開きたいんだけど、
ファイル名の文字コードはS-JIS以外受け付けないんですか?
もしそうなら海外のソフトはファイルを開くのにutf8以外受け付けないんで、
海外のソフトでファイルを開くとsjis文字はutf8に勝手に変換されて
そのファイル名を使ってファイルを開くにはutf8をsjisに
変換するしかないですね。
156デフォルトの名無しさん
2017/02/15(水) 09:29:08.83ID:djpTZ+ZE
wide版のapiならUTF16だよ>Windows
157デフォルトの名無しさん
2017/02/15(水) 10:17:36.65ID:nJh54DV/
>>155
まず何の話をしてるのかから説明すること。
あなたの質問がどうすれたの話題に関係するのか解らないよ
158デフォルトの名無しさん
2017/02/15(水) 11:06:56.17ID:uqX1U/Hr
>>155
「Luaの話」かつ「Lua側の文字コードはUTF-8」として進めるけど
・Luaはfopenにstringの生バイト列を渡すだけ
  https://github.com/lua/lua/blob/master/liolib.c#L257
・日本語版Windowsのfoepnはファイル名にSJISを要求する
ことを踏まえて対処するしかない

スクリプト層で対処するなら、ファイル名をSJIS変換した文字列を作って渡す
ホスト側 (C言語) で対処するなら、UTF-16変換して _wfopen を使うよう liolib.c を改造する

もちろん、ファイルの中身については別対応する必要がある
159デフォルトの名無しさん
2017/02/15(水) 15:13:56.13ID:w0SHr4I6
変換しようとしてlua-iconvっていうのをmsys2でコンパイルしてmp
vと同じフォルダーに置いたけどクラッシュしました。
160デフォルトの名無しさん
2017/02/15(水) 16:33:33.42ID:nr9SjX6f
下の層で文字コードの問題が起きてもLuaは下から上に受け流すだけ
まるで例外処理だな
161デフォルトの名無しさん
2017/02/19(日) 21:18:00.13ID:5UFX9Lbh
mruby/cってmrubyと違うのか?
なんかmbedの日本語フォーラムに動かしたっぽいのが出てるわww
マイコンでmrubyはIoT的には理想なんだろうけど、キツイんじゃないか。
162デフォルトの名無しさん
2017/02/20(月) 08:03:49.27ID:wCsxvy5W
141 名前:デフォルトの名無しさん[sage] 投稿日:2017/02/02(木) 09:20:30.60 ID:OnfcMI/e
プログラミング言語は偏差値40の人にも理解できるものじゃなきゃダメ。
世間には大量のバカがいる。と先輩から教わった
163デフォルトの名無しさん
2017/02/27(月) 07:02:53.95ID:fO2hz1Bl
とあるゲームのluaなんですが、関数の後ろで初期化した変数が定義されてないって言われるんですが
local AAA = "AAA"
local function FUNC() print(AAA,BBB) end
local BBB = "BBB"
FUNC()
この辺りって実装に依存するんですか?言語仕様に寄るところなんですか?
164デフォルトの名無しさん
2017/02/27(月) 08:52:15.69ID:+JCIcCN9
>>163
言語仕様に寄るものだね。Luaを名乗る実装であれば同じ挙動だと思うよ。

Luaはソースの後ろ(下方)で定義された変数を探してくれない。
FUNC() 定義時にまだ local BBB が無いから、グローバルな BBB を見に行く。
165デフォルトの名無しさん
2017/02/27(月) 09:42:32.87ID:fO2hz1Bl
ありがとうございます。
仕様なら頭に入れておこうと思います。
166デフォルトの名無しさん
2017/04/17(月) 19:00:43.83ID:8+oEZ/zD
nuttxって何て読んでる?
167デフォルトの名無しさん
2017/06/02(金) 08:00:15.31ID:908dTl/b
JavaScript やると Lua の良さがつくづく分かるな
168デフォルトの名無しさん
2017/06/03(土) 21:35:59.87ID:2Xsb8/qG
TypeScriptやるとLuaのクソさがつくづく分かるけどな
169デフォルトの名無しさん
2017/06/03(土) 21:55:09.23ID:ByaclAQR
jsでもES6ならLuaより使いやすい
ES7・ES8なら圧倒的JS
170デフォルトの名無しさん
2017/06/03(土) 22:49:59.57ID:PWCBRHZL
JSは何だかんだでメジャーなだけあって、
色んな団体がしのぎを削り合ったり一部の仕様を淘汰したりで、
良くはなってきたからなぁ
171デフォルトの名無しさん
2017/06/03(土) 23:40:38.35ID:ez6eSYjJ
>>168
それはLuaに限らず動的型付け言語全てに当てはまる部分だと思うけどね。
172デフォルトの名無しさん
2017/06/04(日) 01:04:14.41ID:M0TdsG7q
>>171
何故Pythonとかいうゴミが流行ってるのか理解出来ない
機械学習のライブラリ充実しているから嫌でも使うしかないのが最高にクソ
173デフォルトの名無しさん
2017/06/04(日) 01:19:06.80ID:7UKSA8V5
しかしES7とか8を使うための環境整備がクソなのは解消の可能性はあるんでしょうか
174デフォルトの名無しさん
2017/06/04(日) 02:10:45.35ID:gw/bMgjh
>>172
個人的には同感、PHPかRubyでいいじゃんって思わなくもない
けど、あちこちで使われてる以上、技術的な理由か、政治的な理由かはともかく、
流されるしかないんだよな
175デフォルトの名無しさん
2017/06/04(日) 06:04:30.60ID:kT/SS3j0
> PHPかRubyでいいじゃん

( ゚д゚)
176デフォルトの名無しさん
2017/06/04(日) 10:53:16.13ID:HBrB8z41
両方とも嫌われてる言語だね
177デフォルトの名無しさん
2017/06/04(日) 11:03:36.59ID:qUWZGkRh
>>174
まだPHP/Rubyよりはマシだと思うけど、機械学習は静的言語がいいよね
実行時エラー多すぎて辛い
178デフォルトの名無しさん
2017/06/04(日) 11:25:32.80ID:QtczELPi
>>174
無いわ
179デフォルトの名無しさん
2017/06/04(日) 13:45:30.72ID:H8kb5qdv
・何故Pythonか理解できない (Pythonは偶然成功しただけと理解している)
・(偶然だったら) PHPかRubyでいいじゃん
・(偶然が苦手な人には) 実行時エラーが辛い
180デフォルトの名無しさん
2017/06/04(日) 13:48:25.03ID:WmyRhHa0
>>179
なんだその気が狂ったようなレスは。
181デフォルトの名無しさん
2017/06/04(日) 13:51:43.74ID:Thsr1gL6
PHP: web以外だと使いづらい
Ruby: RoR以外殆どつかわれていない

だからじゃないの?
182デフォルトの名無しさん
2017/06/04(日) 13:56:22.12ID:dRfGFLdk
PHPなんて何だかんだでApacheで使われてるのに、そこまで嫌われてたんだw
知らなかったわ、すまなんだ

個人的には静的型付けならC#とかC++でいいじゃんって気がするけど
http://www.atmarkit.co.jp/fdotnet/dotnettips/101compileinvoke/compileinvoke.html

組み込みならAngelScript?ソースじゃなくてコンパイル済みのバイナリぶっこめるし
183デフォルトの名無しさん
2017/06/04(日) 13:57:10.40ID:dRfGFLdk
>>181
確かに文字列じゃなくてバイナリとか使い出すと、別のノウハウ必要になるからねぇ
184デフォルトの名無しさん
2017/06/04(日) 14:34:44.62ID:H8kb5qdv
昔はテキストとバイナリを区別しなかったが
型を区別できないと辛いから二つに分裂した
185デフォルトの名無しさん
2017/06/04(日) 19:49:32.03ID:EOhD2Aoc
>>169
ES6 の import, export をサポートしたブラウザが実在しないという時点で糞だよ
186デフォルトの名無しさん
2017/06/04(日) 20:12:01.89ID:cmHLZ64w
そもそも、es6のexportとimportpは仕様が遅れに遅れてるから、当然。
エンジンで実装してるのも、所詮ベータらドラフト的位置付け。
187デフォルトの名無しさん
2017/06/04(日) 20:16:01.65ID:EOhD2Aoc
うん。だから糞だと言ってる。
188デフォルトの名無しさん
2017/06/04(日) 20:22:07.93ID:EOhD2Aoc
んで、nodejsやらトランスパイラやらでrequirer使うハメになるわけだけど
グローバル変数領域を汚しまくりで、「何このクソ言語?」って感じ
189デフォルトの名無しさん
2017/06/04(日) 20:32:33.94ID:EOhD2Aoc
あと typescript 。
あれはあれで確かにウチラ玄人プログラマからすれば悪くないんだけど
そもそもプログラム素人がターゲットのスクリプト言語なんて程度のものには
型なんて面倒なもののないお気楽さが求められてんじゃねーのかという気がしないでもない。
190デフォルトの名無しさん
2017/06/04(日) 20:59:00.52ID:qVKeiDcr
やりたきゃお気楽にもできるでしょ。
Typescriptは特にそのへん、動的型付けと型ヒント・型推論の混ぜ具合が絶妙と思う。
191デフォルトの名無しさん
2017/06/04(日) 22:12:48.81ID:meHczPjW
JSエンジンでES6対応で簡単にC++に組み込めるのってないですか。
V8は、まともにコンパイルできない。
192デフォルトの名無しさん
2017/06/04(日) 22:46:58.81ID:qUWZGkRh
>>185
webpack使えぼけ
193デフォルトの名無しさん
2017/06/04(日) 23:27:20.64ID:zptvcWS6
>>191
typescriptでtargetをes5指定して簡単にコンパイル出来るes5対応のエンジンを使うのはどうよ?
194デフォルトの名無しさん
2017/06/05(月) 00:02:35.39ID:VDbK/n2F
ES6対応状況がどんなもんか忘れたがChakraCoreはビルドで楽ちんぽじゃろ
195デフォルトの名無しさん
2017/06/05(月) 01:21:48.20ID:jutLW3Aq
>>193
ES6からクラス定義が使えるから、組み込み用途が広がるかなと思ったのです。
ES5なら、V7とかは簡単に組み込めるんだけど。

>>194
ChakraCoreはビルドできるけど、DLL、動的リンク?今のところWindows限定なのが。

V8のgnビルドの途中とか、pythonのエラーと格闘してると本質を忘れてしまいそうになります。

後、MoziraのSpiderMonkeyとか。

どれもこれもビルドするのに必要な情報がなさすぎる。
196デフォルトの名無しさん
2017/06/05(月) 01:38:10.76ID:s9HDUBeH
>>195
え?Windows限定?
https://github.com/Microsoft/ChakraCore

あとtypescriptを組み込み用途として使えば良いんじゃねえのという話なんだけど。事前にjsにコンパイルしたくないというならtypescriptコンパイラも一緒に組み込んだら?
197デフォルトの名無しさん
2017/06/05(月) 07:16:52.61ID:aF+NXNxZ
>>191
electron についてる node.dll が使えそうな気がするんだけど
情報が殆どないよね
198デフォルトの名無しさん
2017/06/05(月) 08:06:21.26ID:pTqNmGMN
>>191
もしかしてV8をCLIでコンパイルしようとしてない?俺もすげーハマったってーか無理
ビルドだけならオプションしっかりしとけばネイティブC++で静的ライブラリ化して使える
違ったらごめん

Win10のUWP限定で良ければ、.NETの名前空間とクラスとかの指定で
あっさりバインドできるんだけど、C++なんだよね・・・
IEの旧JSRTの理解は文献がなさすぎて難しい
199デフォルトの名無しさん
2017/06/05(月) 08:36:12.51ID:0Zxw/Icp
Luaはソースコード自体を文献といってもいい
V8とかもう文献じゃない
200デフォルトの名無しさん
2017/06/05(月) 08:39:17.33ID:pTqNmGMN
V8はなぁ、旧JSRTとほぼ同じ構造って言っていいんだけど、
効率求めすぎてスコープの定義がわかりづらすぎて、
ちょっとバインドして使うにしても敷居が高過ぎる
201デフォルトの名無しさん
2017/06/05(月) 08:40:48.45ID:pTqNmGMN
すまん、構造って言ってもスコープの生成/離脱と変数定数類の生成の話
202デフォルトの名無しさん
2017/06/05(月) 08:46:41.03ID:aF+NXNxZ
あと duktape がある程度は ES2015 対応してきてるけど
203デフォルトの名無しさん
2017/06/05(月) 13:25:16.42ID:jutLW3Aq
>>198
V8のgnでsinファイル作って、それをVS2015で開いてコンパイルするところまで行くんですが、コンパイル中にエラー出まくりで。

ビルドしようとすると、環境を壊してしまいそうです。

gnとか、ninjaとか使わずにsinファイルを添付してほしいですね。
204デフォルトの名無しさん
2017/06/05(月) 13:27:49.88ID:jutLW3Aq
>>202
duktapeのほうが良さそうですね。
ライセンス的にもV7は商用利用はライセンス購入しないとですし。
205デフォルトの名無しさん
2017/06/05(月) 13:30:56.79ID:jutLW3Aq
>>200
V8は確かに効率重視というか、もはや病的。SpiderMonkyとか、Chakraとデッドヒートし過ぎて、この3つは色々と置いてきぼり感が。
206デフォルトの名無しさん
2017/06/05(月) 15:40:41.42ID:VLAg5ezx
>>197
あのnode.dll は、node.js をソースからコンパイルするときに configure --sharedすればつくれるよ
win なら
$ vcbuild.bat dll
でいけるはず

組み込み方法はnode.h とelectronのソースとかC#だけどedge.js のソースとかみて考えるべし
207デフォルトの名無しさん
2017/06/08(木) 09:37:54.76ID:uRhhAv9e
厳格な関数型プログラミングをすれば
共有メモリ(変数)の変更とかないわけだから
マルチスレッドプログラミングに向いてる気がするんだけど、幻想?
208デフォルトの名無しさん
2017/06/08(木) 10:51:36.20ID:/2z0PObd
scalaやHaskellはまさにその目的で使われてるよ
209デフォルトの名無しさん
2017/06/08(木) 13:29:28.61ID:zUfH2DpL
>>207
厳格かどうかってより、理論的にきっちり変数類の排他が可能な設計かどうかだけじゃない?
「.NETで〇〇クラスへのアクセス全てについて排他制御する」って決めてCSで排他すれば動くけど
その実態は背後でGCまで動いてたり、そのメモリ管理の機構は他のスレッドからも
目まぐるしく利用されまくってて、アセンブラレベルで見たら
「排他領域をこんなとこにこんな方法で確保してて大丈夫なのかよ!?」って不安になる
・・・けど、ちゃんと動くんだなこれが
210デフォルトの名無しさん
2017/06/08(木) 21:19:09.44ID:sxQfjcTV
厳格な関数型って式を簡約するだけが目的だろ
簡約するためにマルチスレッドプログラミングするのは可能
だがマルチスレッドプログラミングのために簡約するのは無理
厳格じゃなければ可能
211デフォルトの名無しさん
2017/06/09(金) 08:00:36.03ID:eDPZbdQ0
厳格な関数型には状態がないから
完全独立型マルチスレッドは可能だが
ある程度同期が求められるようなマルチスレッドは無理ってこと?
212デフォルトの名無しさん
2017/06/09(金) 18:52:56.60ID:YSykiNQK
独立型っていうかメモリ非共有型?
関数型は共有とコピーの見分けがつかない
ってことは共有するかコピーするかを自分でプログラムする権利もない
213デフォルトの名無しさん
2017/06/11(日) 20:53:12.50ID:XzV+IpTS
cプログラムへの組み込みが楽で静的型サポートしてるやつ探してるんだけど、もしかしてtypescript+duktape > angelscriptな感じ?
214デフォルトの名無しさん
2017/06/11(日) 20:55:22.01ID:XzV+IpTS
あと、yield/resume みたいな機能ってjavascriptというかduktapeでサポートされてるの?前は無理だった気がするけど
215デフォルトの名無しさん
2017/06/11(日) 20:57:23.67ID:XzV+IpTS
というかもしかしてもしかしてtypescriptってUnity版のjavascriptみたいなもん?
216デフォルトの名無しさん
2017/06/11(日) 21:23:25.64ID:y28miZDE
静的型が欲しいならTypeScriptがベストだろうね
JSエンジンはChakraCoreが相性もいいし実績もあるのでは
Luaでいうyield/resumeは、Promiseを使うのが流儀かな
217デフォルトの名無しさん
2017/06/11(日) 22:14:07.96ID:AskXGu9A
>>214
ES6にあるよ
Luaより個人的には好き
218デフォルトの名無しさん
2017/06/11(日) 22:23:51.05ID:n1Ew9aQP
>>215
全然違う
unityのあれはjavascriptぽいだけの別言語で赤の他人

typescriptはjavascriptを機能拡張したもので、拡張した部分は全部事前にjavascriptに変換してから実行する仕組み
219デフォルトの名無しさん
2017/06/11(日) 22:44:47.98ID:n1Ew9aQP
>>214
javascriptの仕様的にはES6からあるけどduktapeは未サポート

代わりにluaとよく似たcoroutine機能はある
220デフォルトの名無しさん
2017/06/23(金) 09:23:34.50ID:LkqtiFTE
Cへの組み込みならJSよりLuaの方がよいよ。
JSが悪いLuaが良いていいたいわけでなく、
同じスクリプトでも前者はWeb出身、後者は最初から組込前提だから
相性がぜんぜん違う。
まずLuaで作ってみてJSで作り直してみるとよく分かる。
221デフォルトの名無しさん
2017/06/23(金) 10:39:52.64ID:QyiRg5Ao
論点を絞るべきだね。「相性」では曖昧すぎる
構文? 標準ライブラリ? 同期/非同期?
222デフォルトの名無しさん
2017/06/23(金) 12:04:48.78ID:oZi0rQnk
相性という言葉が曖昧であるという意見はエアプの戯言なので無視してOK
223デフォルトの名無しさん
2017/06/23(金) 12:32:33.42ID:QyiRg5Ao
論点を絞るべきだね。「エアプの戯言」では曖昧すぎる
224デフォルトの名無しさん
2017/06/23(金) 13:40:52.63ID:nlthIa1S
>>220
Luaでもいいのかもだけど、JSは使い慣れてるから。
Luaは構文がCとは全然違うから。
225デフォルトの名無しさん
2017/06/23(金) 16:21:28.25ID:LJ/gyu22
LuaはCの組み込み用として作られたはずなのに中括弧じゃなくてendなのは本当謎
226デフォルトの名無しさん
2017/06/23(金) 16:54:48.00ID:TtF2h1gU
Luaって、導入のお手軽さと、Cも知らない様な素人でも使えそうな言語体系だけが
ウリだと思ってたけど、どうなのかね?

実行速度だけを考えたら、AngelScriptみたいなコンパイル済みバイナリ突っ込める奴が無難だし
227デフォルトの名無しさん
2017/06/23(金) 23:04:48.36ID:CpTcczqJ
luaはキーワードの直後にカンマが来たりするのにすごく違和感があるけどそれはcに慣れてるからであって例えばpascalの人なら全然抵抗ない。

むしろluaはカッコの代わりにend 使うから敷居が低そうに見える
デザイナーにちょっとだけスクリプト覚えてよっていう時に、jsよりもluaの方が頼む方としても抵抗がない

初心者にとっては記号満載なcよりも英単語のpascalでしょ。ソースはオレ
228デフォルトの名無しさん
2017/06/24(土) 13:42:15.67ID:hSEQYtOq
組み込みならmrubyという手もあるな
229デフォルトの名無しさん
2017/06/25(日) 09:28:33.98ID:/3bHwdMz
JSはネームスペースに関する機能が貧弱すぎて
所詮web用言語だな~という感じ。
好きだってだけですすむというならとめはしないが。
230デフォルトの名無しさん
2017/06/25(日) 16:59:17.61ID:pOZXxH7E
Luaと大差ない気がするが
231デフォルトの名無しさん
2017/06/25(日) 17:02:33.73ID:H3Pb5ajO
>>229
webpack使おう
232デフォルトの名無しさん
2017/06/26(月) 20:22:56.38ID:qwwVsuZz
組み込む手間の簡単さならJavaだってそうとう楽だぞ

まあフットプリントの大きさを我慢できればの話だが
233デフォルトの名無しさん
2017/06/26(月) 22:16:39.03ID:Th5Kxani
別プロセスでjvm立ち上げるんじゃなくて組み込みって簡単にできたっけ?
234デフォルトの名無しさん
2017/06/27(火) 03:23:35.66ID:IpTuoTqn
http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/invocation.html

これじゃろ
235デフォルトの名無しさん
2017/07/03(月) 22:50:21.20ID:FvNp21wn
V8のコンパイルがやっとできました。
VS2015Update3とWindows10SDKを正しく選択すれば、普通にコンパイル出来た。
最新のVS2017ではダメだし、Windows10SDKもVS2015Update3に付属の一番古いの(バージョン忘れた)でないとダメでした。
Chromeのビルド方法の所に環境についての情報がありました。
甘えかもしれないけど、V8のところにも、書いておいてほしかった。
236デフォルトの名無しさん
2017/07/05(水) 09:34:28.62ID:TMFukfM7
不思議なんだけど、どんなコードをかけばそこまで開発環境とライブラリとバージョンにそこまで依存したものになるの??
237デフォルトの名無しさん
2017/07/05(水) 18:45:12.25ID:d042/M5M
コンパイルオプションがしくってたに1カノッサ
238デフォルトの名無しさん
2017/07/24(月) 08:31:03.22ID:IMbb1Y8+
コンパイルはほぼ自動化されてて、環境さえ整えばなんの苦労もなくって感じです。
v8gen.pyは使い物になりませんでしたが。
239デフォルトの名無しさん
2017/07/25(火) 06:08:17.91ID:s0AzPwAF
あ、今更だけど思い出した、cmakeとか使うんだっけ
めんどくさがらずに環境に合わせてきっちりmakeオプション設定しないとダメだよ
それに使わない機能は全部切れば小さく軽くなるよ
240デフォルトの名無しさん
2017/08/11(金) 13:16:36.72ID:TitR5juA
http://d.hatena.ne.jp/saitodevel01/20101004/1286140929
こちらのvlc拡張機能のluaスクリプトを改造して、リモートのサーバーにあるチューナーから
テレビを視聴したいのですが「このスクリプトはクライアントマシンにチューナーが刺さっているのが前提です)

https://stackoverflow.com/questions/5965062/how-to-establish-an-ssh-connection-in-a-lua-script-to-execute-a-command-on-a-rem
How to establish an ssh connection in a Lua script to execute a command on a remote server? - Stack Overflow

こちらのサイトを参考に
os.execute ('ssh user@192.168.1.4 &'..recdvb --b25 --strip --udp --addr 192.168.1.3 --port 1234 %d - /dev/null &, channel)

などとやってもうまくいきません。luaに関しては素人(ほかにCをかじった程度ですが)何もわからないのですが、
(sshは公開鍵認証にしてパスワード入力無しにしました)どなたかお知恵をくださると嬉しいです。
241240
2017/08/12(土) 15:56:39.62ID:m9ANN/9z
'ssh user@192.168.1.4 &'..
の..が悪いようでした。
なくしたらうまくいきました。スレ汚してすみません。
242デフォルトの名無しさん
2017/08/20(日) 14:10:13.24ID:STpNk5zo
LuaはDSLが非常に作りやすい。
玩具としては最高の言語。
243デフォルトの名無しさん
2017/08/22(火) 07:49:26.32ID:2KYzFZiz
LuaFileSystemのWindows用バイナリって公式では配布されていないのかな?
自分でビルドするよう?
244デフォルトの名無しさん
2018/01/22(月) 23:21:14.37ID:lz/oOL4+
いきなり5ヶ月も書き込みなくなるってw
245デフォルトの名無しさん
2018/01/23(火) 21:29:19.44ID:eZ1ODWeZ
じゃあ語ろうぜ。俺的にはChakraCoreが熱い。

・バイナリ配布されている。dll入れるだけの手軽さ
・APIがC++じゃなくてC。しかもシンプル
・グローバルなコンテキストに依存しない。マルチスレッドでの利用が考慮されている
・ほぼES6
・速い

LuaとV8のいいとこどりみたいな感じ。
246デフォルトの名無しさん
2018/01/24(水) 08:04:17.49ID:wPQrXQ1e
>>245
JSはグローバル変数汚染とかmodule関係とかが弱点の気がするんけどそのへんはどうっすか?
247デフォルトの名無しさん
2018/01/24(水) 08:50:24.70ID:BFkGLEDk
グローバルはコンテキストごとに分離しているからその辺は問題ない。
モジュールはES6 import実装済みってことだけど試せてない。
GitHubのチケットに書いてあったAPIがリリース版じゃ見当たらないんだよなぁ。ドキュメントも見つからないし。
248デフォルトの名無しさん
2018/02/16(金) 06:06:05.04ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
249デフォルトの名無しさん
2018/03/18(日) 17:35:38.46ID:y2Jah45T
number(ビット演算系の関数群を追加したい)とかfile(ファイルサイズを取得する関数を追加したい)にメソッドを
追加したいんだけどどうすればいいんだろ?
ググってもモンキーパッチ系の情報はほとんど引っかからないんだよなぁ
250デフォルトの名無しさん
2018/04/11(水) 21:01:44.65ID:kZyid8rT
何故かPowerPCのアセンブラと格闘してる
こちとらZ80で止まってるので異次元すぎる
251デフォルトの名無しさん
2018/04/13(金) 08:59:09.85ID:lVIiw7Gx
まだ電源とかのコンデンサ乾いてないPPC機とか生きてんのかw
252デフォルトの名無しさん
2018/04/13(金) 18:47:23.42ID:rMLyLS1C
エミュレータ知らんのか
253デフォルトの名無しさん
2018/04/13(金) 23:14:45.81ID:Z2fKlX8X
>>252
開発はエミュレータかもしれんが、本番はリアルじゃないの?
254デフォルトの名無しさん
2018/04/17(火) 04:06:47.64ID:PSaZ7Zjm
V8をVisualStudio2017でビルド出来るようになってますね。
255デフォルトの名無しさん
2018/04/18(水) 04:29:04.07ID:QMTS4xqE
V8のWindows用とAndroid用のライブラリがWindowsとWSLのDebianでビルド出来た!
これでビルド用置いといた仮想環境を削除出来る。
長かった。
256デフォルトの名無しさん
2018/05/23(水) 20:38:37.34ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

23N48
257デフォルトの名無しさん
2018/07/05(木) 01:14:20.30ID:RfoszcD2
LUF
258デフォルトの名無しさん
2018/08/25(土) 17:44:57.37ID:9amKblQT
Atmel Studioのインストールは成功したけど起動しない
先にVisual Studio2017がインストールされてたのが悪影響してるのかな?
259デフォルトの名無しさん
2018/09/03(月) 23:26:46.10ID:E2St7m4+
浮上
260デフォルトの名無しさん
2018/09/15(土) 00:36:27.36ID:KdCLOk6a
あーなんで三連休の初日潰されなきゃいけねーんだよカスが
261デフォルトの名無しさん
2018/11/05(月) 06:10:14.46ID:W2LINBRO
これって何ができるの?
http://www.rtpro.yamaha.co.jp/RT/docs/lua/index.html
262デフォルトの名無しさん
2018/11/05(月) 08:58:39.06ID:ezqN83S0
書いてあるやん
263デフォルトの名無しさん
2018/11/29(木) 02:05:40.15ID:7MAx3EpB
LuaのT{}とかL{}とかってggってもキーワードで絞り込めんのだけんども、
これってどういう意味なん?
Lが専ら数値でインデックスされる事を前提としたテーブルで、Tが連想配列でいいのかな?
264デフォルトの名無しさん
2018/11/29(木) 07:58:43.71ID:RqJI54aC
せっかく日本語化してくれてるんだからマニュアルを嫁
265デフォルトの名無しさん
2018/12/02(日) 06:15:09.47ID:3ib8/uX9
duktape以外にも色々あるんだね。chakra coreね。今度調べてみよ
lowjsとかXS7(Moddable)とかもあったけどこれは?
266デフォルトの名無しさん
2018/12/02(日) 06:17:56.97ID:3ib8/uX9
mJSというのもあった。ググラビリティ低い…
https://github.com/cesanta/mjs
267デフォルトの名無しさん
2018/12/02(日) 06:48:35.40ID:3ib8/uX9
IOTJSつうのもあるな…

俺はフットプリントでかいけどlowjsに惹かれるわ。コアをv8からduktapeに置き換えた普通のnodejsでnpmパッケージ使えるみたいだし。
他の組み込みjavascriptは別にjsじゃなくていいじゃんていう…それこそLuaでいいかなと思いました○
268デフォルトの名無しさん
2018/12/29(土) 03:43:02.31ID:P4ZBbqvc
luaで

openMsg( msgid )
waitMsg() // メッセージ終了まで待機

のような記述をしたいのですが可能でしょうか?
269デフォルトの名無しさん
2018/12/29(土) 10:10:19.18ID:56ZnQ0Ma
コルーチンでできる
MinecraftのComputerCraftがCoroutine駆使した実装してるから見てくるといいぞ
270デフォルトの名無しさん
2018/12/30(日) 15:40:45.53ID:ZcNQjwbG
有難う御座います。
271デフォルトの名無しさん
2019/01/28(月) 17:00:04.71ID:GjcZOiPA
squirrelについて相談なのですが、
コンパイルしてバイナリ化したスクリプトデータを
sq_readclosure( vm, readf, data );
でスタックに積んだ後、
sq_pushroottable( vm ) ;
sq_call( vm, 1, SQFalse, SQTrue );
で、実行は出来るのですが、
スクリプトを頭から実行するのではなく、
Sqrat::RootTable().GetFunction(_SC("testFunc")).Execute();
のように、指定した関数を実行したいのですが、

Function GetFunction(const SQChar* name) {
    HSQOBJECT funcObj;
    sq_pushobject(vm, GetObject());
    sq_pushstring(vm, name, -1);
    if(SQ_FAILED(sq_get(vm, -2))) { // ここで失敗!
        sq_pop(vm, 1);
        return Function();
    }

}

という感じで上手くいきません。
お知恵を貸して頂けると幸いです。
272デフォルトの名無しさん
2019/02/08(金) 20:07:48.14ID:NjrczfEf
もしかして、スクワールもスクラットも64ビット環境非対応?
273デフォルトの名無しさん
2019/02/09(土) 00:04:43.44ID:EpBhfLEl
>>272
squirrel_3_1_stable
sqrat-0.9.2
なら64bit対応だよ。
274デフォルトの名無しさん
2019/03/02(土) 23:13:04.59ID:v9nuhsW/
Luaはcの割り込みに対応させるのは出来ないのかな?
ポーリングしかないか
275デフォルトの名無しさん
2019/03/02(土) 23:43:06.29ID:x3fQB5qB
「cの割り込み」って何?
276デフォルトの名無しさん
2019/03/03(日) 01:27:40.58ID:TRQS0YAY
あーすまんおかしいね
組み込み環境のハードウェア割り込みの事
277デフォルトの名無しさん
2019/03/03(日) 08:35:04.17ID:oO/57lY2
Cの場合でもライブラリなりAPIの類を使うことになるんだろ。
Cで割り込みというとコールバックを登録するとかになるんだろうけど、
だとしたらそれでLuaの関数が呼ばれるように仕込めばいい。
278デフォルトの名無しさん
2019/03/04(月) 10:09:37.93ID:HqEGDwuP
割り込みでluaを使うって狂気だろ
何がしたい
279デフォルトの名無しさん
2019/03/06(水) 13:36:46.66ID:JcAkNipr
あれもこれもと機能増やした言語は廃れるのにな
280デフォルトの名無しさん
2019/03/06(水) 16:24:39.26ID:pP8e2GTT
ルーターの動作変えるためにLuaで試すとき
何度も保存するとEEPROMとかの寿命縮む?
281デフォルトの名無しさん
2019/03/18(月) 18:47:38.72ID:ZALyzRz3
分からンゴ
282デフォルトの名無しさん
2019/03/30(土) 14:54:57.46ID:heVUtWKq
これからluaを再度学ぼうと考えているのですが、
cliインターフェイスのlua tutor的なものがあったような
そんな記憶がありまして、再度実行したいのですが
そういうのありませんでしたでしょうか?
ステップバイステップで学べるvimtutorみたいなやつです…
283デフォルトの名無しさん
2019/03/31(日) 07:54:49.80ID:+lVcWJBV
Dont study, just feeling.
May the force be with us.
284デフォルトの名無しさん
2019/04/24(水) 07:05:25.30ID:a9SVEzCT
AngelScriptのまともな.NETラッパーってないモノかね?
ggっても外人が「それならC#で動的にDLLにコンパイル&実行でいいんじゃね?」とか言われてるし

そうじゃないんだ、例外とかでホスト側を巻き込んで欲しくないんだ
なんちゃってコーダーに余計な事させたくないんだ
大量のコンパイル済みバイナリ複数を1つの圧縮ファイルにぶっこんでコロコロ入れ替えたいんだ
285デフォルトの名無しさん
2019/05/24(金) 22:57:05.84ID:+PO6CV7/
またウイルス作る相談か。
286デフォルトの名無しさん
2019/06/19(水) 03:25:44.89ID:8qBvJS/J
組み込みでClangとかLLVMは使われてるんですか?
恐らくハードウェア毎にCコンパイラを作ってると思うんですが、
bitcodeインタープリタとかコンパイラでもいいのかなとおもうし、
行われてるんでしょうか
287デフォルトの名無しさん
2019/07/02(火) 20:31:12.66ID:9uiNi93O
>>282
tutorialpoints のヤツ?
うちはlove2dでlua勉強したが。
288デフォルトの名無しさん
2019/08/01(木) 15:27:02.77ID:BsvZjx8c
機械の試運転してるんだけど組み込みの部署に行きたい。どう勉強すればええ?
289デフォルトの名無しさん
2019/08/01(木) 18:13:06.88ID:QWiBhMHl
英語
290デフォルトの名無しさん
2019/08/08(木) 00:29:50.58ID:37HjEj5/
他は?
291デフォルトの名無しさん
2019/08/08(木) 07:39:32.23ID:sv1FCfgv
勉強の仕方を勉強する
292デフォルトの名無しさん
2019/08/08(木) 15:52:10.24ID:37HjEj5/
なるほどありがとう
293デフォルトの名無しさん
2019/09/16(月) 09:32:25.33ID:aKGSoPXX
https://www.sbcr.jp/product/4797361667/
こちらで公開されていたサンプルコードを、
どなたかお持ちの方アップロードしていただけないでしょうか?
294デフォルトの名無しさん
2019/09/16(月) 09:57:03.61ID:aKGSoPXX
スクリプト言語による効率的ゲーム開発 新訂版
のサンプルコードです
295デフォルトの名無しさん
2019/09/16(月) 10:12:54.76ID:p8Axp0mz
http://lua.mine.nu/w/LuaBookSupport
https://www.sbcr.jp/support/8644/
296デフォルトの名無しさん
2019/09/16(月) 18:43:52.45ID:aKGSoPXX
>>295
おお、ありがとうございます
こちらのファイルは新訂版のサンプルコードと同じ内容なのでしょうか?
もし違うのなら新訂版も欲しいです
297デフォルトの名無しさん
2019/09/19(木) 00:28:25.72ID:Bs1k1OYW
自作ソフト組込Lua専用デバッガを作成しております。
ローカル変数はlua_getlocalで列挙できるのは分かるのですが
Global変数はどのようにしたらいいのでしょうか?
298デフォルトの名無しさん
2019/09/19(木) 01:20:42.90ID:cUS2KjhP
LUA_RIDX_GLOBALS
299297
2019/09/22(日) 11:53:35.36ID:T346ZRlo
>>298
遅くなりましたがありがとうございます。
今出先なので帰ってから試してみます。
300デフォルトの名無しさん
2020/02/06(木) 13:08:11.27ID:PORni4Cz
おしえてくれ。。
変数a lsbは100/256
変数b lsbは100/256

(a << 6) / b
(a << 14) / b

の時って、どういうLSBになるんだ?
301デフォルトの名無しさん
2020/02/06(木) 13:10:34.76ID:PORni4Cz
違うな、それぞれどれだけ桁落ちするか知りたい(´・ω・`)
302デフォルトの名無しさん
2020/02/06(木) 18:05:22.94ID:QNpIxOnd
スレタイを100回音読してから質問を書き直してくれ
環境書かないと誰も答えようがない
303デフォルトの名無しさん
2020/03/17(火) 12:22:12.20ID:BBRYkqlf
Luaをエミュレータに読み込ませてゲームの改造をしています。メモリの内容をリアルタイムで確認しながらゲームをプレイして調査をしたいのですが、エミュレータ内に表示できる範囲が狭いので、エミュとは別のウィンドウに出したいです。
そんなことを出来るようにする方法はありますか?
304デフォルトの名無しさん
2020/03/17(火) 23:58:56.94ID:VHm9NTR8
iup使ったら出来そうでした~
305デフォルトの名無しさん
2020/03/18(水) 10:17:52.20ID:dFIFySqQ
luaの実行環境次第なんだから
そのエミュの情報出さないとわからんだろ
自己解決したんならいいけど
306デフォルトの名無しさん
2020/05/06(水) 16:25:17.81ID:VbQBf7gI
>>302
環境の問題でもないだろ
307デフォルトの名無しさん
2020/05/06(水) 19:25:28.68ID:QGnKfrsy
何の言語か書かなきゃ答えようもないだろ
308デフォルトの名無しさん
2020/05/07(木) 13:08:27.82ID:2vJTMfiV
>>306
それならあんたが代わりに回答するなり、
何が問題なのか指摘するなりしてやってくれ
309デフォルトの名無しさん
2020/07/26(日) 06:08:04.94ID:BSdSRjtd
KiveraというオンラインゲームはLuaで作ったBot使えるよ。
Downloadsページにある「Version OTC」にBot機能が内蔵されていて
Luaで拡張できるので、興味のある人はやってみて。

https://kivera-global.net/
310デフォルトの名無しさん
2020/10/12(月) 00:35:12.87ID:L064fzzn
C++で作成したアプリの制御用にLuaJITを使っているのだが
そういう時どういうデバッガ使ってる?
今まで自前で作ってたけど、後はコンソールに吐き出す位しかないのかね?
311デフォルトの名無しさん
2020/10/12(月) 01:26:09.61ID:Y0soLAWp
>>310
デバッグビルドのluajitがあれば何でもできそうだけど、そういう話ではないの?
312デフォルトの名無しさん
2020/10/12(月) 02:20:28.67ID:2pD7l+Yq
>>311
Luaスクリプトのデバッグだね
客先でも組めるようにステップ実行やブレークポイント、変数閲覧もできるスクリプトエディタをソフトに組み込んでる
でもこんな面倒臭い事を皆やっているのかと疑問に思ったんだ
なるほどLuaJITのデバッグビルドか
しかしC++の開発環境も必要なのか?うーむ
313デフォルトの名無しさん
2020/12/13(日) 20:33:17.38ID:vTiE4hvS
luaで呼ぶ度に数値を+1させるようなfunctionはどう書けば良いでしょうか?
イメージ的には以下のような感じです。
f();
--> 1
f();
--> 2
C言語で言うstatic変数みたいなものが分かりませんでした。
314デフォルトの名無しさん
2020/12/13(日) 22:03:45.87ID:E31xy0lw
クロージャ使え
315デフォルトの名無しさん
2020/12/13(日) 22:57:15.96ID:kNiOk/ip
f = (function() local x = 0; return function() x = x + 1; return x end end)()
316313
2020/12/13(日) 23:03:30.62ID:vTiE4hvS
>>314
クロージャという概念を初めて知りました。
ありがとうございました。
317デフォルトの名無しさん
2021/02/26(金) 12:34:35.43ID:9a9qZjtH
Luaでリストにリストを代入する前、古い方へnilを代入するのって意味ありますか??
318デフォルトの名無しさん
2021/03/19(金) 18:23:08.07ID:P2oj6WSo
Programming in Luaってもう売ってないみたいなんだけど有った方がいいもの?
319デフォルトの名無しさん
2021/04/29(木) 20:59:30.01ID:ea/d9ZJ8
マウスを押してる間、1秒間マウスカーソルを下に移動させ続けて1秒経過したらそのまま自動で上に動かすにはどうすればいいの?
repeat
MoveMouseRelative(0,2)
Sleep(1,2)
until not IsMouseButtonPressed(1)
をどういじるでしょう
320デフォルトの名無しさん
2021/04/30(金) 10:15:03.33ID:MRn7V4Py
>>318
翻訳されたやつなら古い
英語問題なければ洋書の最新の買った方がいいね
321デフォルトの名無しさん
2021/05/02(日) 12:54:54.22ID:FjBP3ckG
いつの間にかUTF-8モジュールが出てたんだな
LuaJIT使いたかったから丁度いい
https://github.com/starwing/luautf8
322デフォルトの名無しさん
2021/05/27(木) 21:03:00.82ID:XC4mgnbJ
LuaからCの関数へ引数を通してテーブルを渡したい時
C側はどのように書けばいいのでしょうか?
323デフォルトの名無しさん
2021/06/04(金) 12:56:21.97ID:XNcl2YRf
とあるメーカーのソフトがLua使われてるんだが使ってると"chunk has too many syntax levels"ってエラーが出てくる
メーカーには問い合わせ中なんだけどこれなんなん?
324デフォルトの名無しさん
2021/06/04(金) 23:05:56.02ID:JRRppsgD
今のバージョン5.4.3だと、そのエラー出してる場所がない。
近いものは too many lines なら軸解析部で行番号が整数の最大値に来た時に出してるけど

lexerror(ls, "chunk has too many lines", 0);
325_
2022/02/13(日) 21:54:39.68ID:j6vwCCfz
Squirrel 3.2 がリリースされてた。
https://github.com/albertodemichelis/squirrel/releases/tag/v3.2
変更点は、HISTORY見てね
https://github.com/albertodemichelis/squirrel/blob/master/HISTORY
326デフォルトの名無しさん
2022/03/04(金) 05:57:18.94ID:VZkGt1cC
Luaヒッソリとバージョン上がってるね
ちゃんとメンテされてるようで安心した
327デフォルトの名無しさん
2022/10/13(木) 02:53:54.46ID:C/PYUPHF
テステス
328デフォルトの名無しさん
2023/09/28(木) 17:52:03.99ID:llgpCYPm
(`L_` )ククク
329デフォルトの名無しさん
2024/03/04(月) 18:51:07.16ID:INwfbPVb
tic-80やpico8がlua使ってるから来てみたけど8年前に立ったスレなのか…
330デフォルトの名無しさん
2024/04/01(月) 12:15:46.32ID:cuYaxBV3
pico気になっておじさんプログラムの勉強はじめちゃうぞーっておもったけどええか?
331デフォルトの名無しさん
2024/04/01(月) 12:24:55.30ID:Fd4ThCdE
tic-80の方が無料だけどな
インストールはf-droid経由で
332デフォルトの名無しさん
2024/04/01(月) 18:00:31.07ID:O258P8Qp
無料でそっちもいいなって思ったけどとりあえず小さいピクセルでやれるようになるのが良いかなってね
333デフォルトの名無しさん
2024/04/02(火) 11:47:51.22ID:M/L8VhMT
なんだかんだluaは使われ続けてるよな
ゲーム業界では
334デフォルトの名無しさん
2024/04/06(土) 10:23:01.08ID:3StgbNn/
スクリプトとしてはこの程度で十分で余計なものがなく高速だからかな
335デフォルトの名無しさん
2024/04/08(月) 18:39:54.39ID:eqPjoQ9f
クソみたいな言語オタクに目つけられてないからだろうな
あの手合いが目をつけると意味わからん美学や理想化のためのパズル要素みたいな仕様やら
ライブラリやらぶっこんできて魔境化する
言語なんて所詮ツール
それを必要とする人が必要な事につかえりゃそれでいい
336デフォルトの名無しさん
2024/05/02(木) 21:44:27.40ID:duzePK6C
複雑なシステムはみんなパズルではあるけど
必要な物なら肯定する宗派と
面白ければたとえ不要不急でも肯定する宗派に分かれる
337 警備員[Lv.26]
2024/08/24(土) 11:24:45.83ID:siY+/0tp
社内ソフトにLuaを組み込んでいたんだけど、ビジュアルコンピューティングの波に飲まれてほぼお役御免になってしまった
338 警備員[Lv.42]
2024/09/21(土) 14:09:08.37ID:I9vHUIzE
wrenはどうなんだろう?誰か使ってる?

lud20250302102435
このスレへの固定リンク: http://5chb.net/r/tech/1474536226/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「【Lua】組み込み系言語総合 その7【Squirrel】 [無断転載禁止]©2ch.net 」を見た人も見ています:


珈琲



閖上

5
はよ

愚痴
.

.
9

b

a
メモ
報告
報告



\
.

報告

a
j

毒芋
d
o
t

t
t
a
b
1

2
報告

j
報告
j
Y
1
.
五帝
.
ナハ
1
b
2
目薬
愚痴


ひめ
質問
10:49:30 up 55 days, 11:48, 1 user, load average: 8.06, 7.60, 7.98

in 0.95230102539062 sec @0.95230102539062@0b7 on 061123