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

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/

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
ttp://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は公開鍵認証にしてパスワード入力無しにしました)どなたかお知恵をくださると嬉しいです。

2412402017/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を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

新着レスの表示
レスを投稿する