トップページtech
981コメント297KB

【Lua】組み込み系言語総合 その4【Squirrel】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/03/30(水) 01:00:58.93
LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめ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
0604デフォルトの名無しさん2011/08/08(月) 19:58:01.99
>>603
ありがとうございます
いままで知らなかったのが嘘の様なほどの基本なんですね
0605デフォルトの名無しさん2011/08/08(月) 20:38:51.81
>>602
なんで?サイズが大きくなるから?
0606デフォルトの名無しさん2011/08/08(月) 21:27:29.26
>>600
AngelScript|Д`)ジー
0607デフォルトの名無しさん2011/08/08(月) 21:29:24.91
>>601
BNF記法でイコールみたいな感じらしい
0608デフォルトの名無しさん2011/08/08(月) 22:37:40.90
定義だろ。
0609デフォルトの名無しさん2011/08/09(火) 07:59:00.89
>>605
コーディング時間が長くなるとかより、コード解析速度ダウンのほうが痛いから。
0610デフォルトの名無しさん2011/08/09(火) 17:50:24.15
複合代入はともかくインクリメントは流石に要らんな
0611デフォルトの名無しさん2011/08/09(火) 18:55:10.81
>>592
フツーにあるし
http://code.google.com/p/android-scripting/
0612デフォルトの名無しさん2011/08/09(火) 22:10:48.62
Luaはスクリプト言語なんだから全部の式に戻り値付けてほしい。
X = if Y < 0 then -1 else 1 end みたいに。
あとメタテーブルがあるんだから演算子は必ず代入しないといけないのもやめてほしい
Table + {1,2,3} とか
0613デフォルトの名無しさん2011/08/09(火) 22:13:14.72
スクリプト言語 → 全部の式に戻り値

この論理がどう繋がってるのかわからんのだが 
0614デフォルトの名無しさん2011/08/09(火) 22:28:57.95
確かにw

要は3項演算子が欲しいんだろ?
0615デフォルトの名無しさん2011/08/09(火) 23:01:07.79
好きなように改造してしまえばいいじゃない
0616デフォルトの名無しさん2011/08/09(火) 23:14:02.07
X = Y < 0 and -1 or 1
でいいんじゃなかったっけ
0617デフォルトの名無しさん2011/08/10(水) 00:10:49.21
>>613
Ruby脳なんだよ
0618デフォルトの名無しさん2011/08/10(水) 00:17:16.81
AngelScript|Д`)<インクリメント演算子欲しい子よっといで
0619デフォルトの名無しさん2011/08/10(水) 00:21:33.23
マイナーすぎるからやだ(´・д・`)
0620デフォルトの名無しさん2011/08/10(水) 00:26:46.59
んで、luaの三項演算子もどきのソレだけど、確か何か欠点が無かったっけ
0621デフォルトの名無しさん2011/08/10(水) 01:10:41.77
素直にand/orとして解釈すれば欠点はないが、もどきとしての解釈は自己責任
f(x and g(y) or z)
自己責任で適当な f, g を選ぶ
0622デフォルトの名無しさん2011/08/10(水) 01:27:08.33
天使さん不憫すぐるw
0623デフォルトの名無しさん2011/08/10(水) 02:03:13.96
>>620
true and false or true
0624デフォルトの名無しさん2011/08/10(水) 02:14:37.63
>>623
ソレダ
真のときの返値が偽値のときにおかしくなるんだな
0625デフォルトの名無しさん2011/08/10(水) 08:53:45.48
Pythonでは (x and [y] or [z])[0] とする
0626デフォルトの名無しさん2011/08/10(水) 11:40:58.81
Prologではカットを使う
Schemeでは(call/cc (lambda (k) (or (and x (k y)) z)))
0627デフォルトの名無しさん2011/08/10(水) 19:26:22.15
>>625
今のPythonには、そもそも三項演算子がある
ちょっと珍しい書法だが

条件が真の際の返値 if 条件式 else 条件が偽の際の返値
0628デフォルトの名無しさん2011/08/10(水) 20:59:09.92
なんでそこまで1行にこだわるのかね何回も使うなら関数定義すりゃいいのに。
F(条件、真、偽)とかじゃ駄目なの?
0629デフォルトの名無しさん2011/08/10(水) 21:24:49.30
そりゃ遅延評価の言語ならIFだって関数にできるけどさ
0630デフォルトの名無しさん2011/08/10(水) 21:28:05.19
>>628
それだと返値に関数が指定されたとき
関数に全く副作用が無く、かつ
呼ばれることによるオーバーヘッドが気にならない程度の小さい関数ならば良いが

呼ばれることによって何らかの状態が変わってしまうものや
呼ぶことによって大量の処理が動く場合はマズいことになる
0631デフォルトの名無しさん2011/08/10(水) 22:03:12.74
スピード求めるならCにでもやらせればいいと思うんだが・・・
今さら気がついたんだけど1行でも動くんだな。関数なんか書かなくていいっすね
もっとリファレンスきちんと読み直してくるわ



0632デフォルトの名無しさん2011/08/10(水) 22:39:02.20
>>631
スピードって、複合代入やインクリメントの話?
06336282011/08/10(水) 22:48:23.43
話の内容勘違いしてるの気がついて逃げようとしただけだから
もうほっといてくれー(ノ_・。)
0634デフォルトの名無しさん2011/08/13(土) 06:59:24.23
結局luaってゲームぐらいしか活用できるとこないの?
0635デフォルトの名無しさん2011/08/13(土) 07:55:39.27
ゲーム用なら値を倍精度じゃなくて単精度にして欲しいんだが。

結局、Basicにチン毛が生えた程度の誰得言語だなLua。
0636デフォルトの名無しさん2011/08/13(土) 07:58:33.32
>>635
??
0637デフォルトの名無しさん2011/08/13(土) 08:38:05.84
別にゲーム専用じゃないし、ゲーム開発者のLua紹介だと数値表現変更できるって書いてあるよ。
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html#2.2
> 数値 は実数 (double) を表現する。 (しかし数値の内部表現としてfloatやlongなど他の型を使うよう
> Luaインタプリタをビルドし直すのは簡単である。ファイル luaconf.h を参照。)
0638デフォルトの名無しさん2011/08/13(土) 08:46:12.16
ゲーム作らないからよくわからないけど、x86基準にしたら単精度ってメモリがない環境向けじゃないかな。
http://boinc.oocp.org/benchmark.php
> Intel x86 プロセサでは、単精度でも倍精度でも速度の差はあまりありません。
http://lua-users.org/wiki/FloatingPoint

(単精度で用意したAngelScriptとかSquirrelのプログラムと比較しないと意味ないだろうけど)
数値計算ループ自体は他のスクリプト言語より速いしLuaJITならかなり速い。
http://shootout.alioth.debian.org/u32/benchmark.php?test=mandelbrot&lang=all
http://luajit.org/performance_x86.html

ゲームみたいなフレーム単位のリアルタイム処理やってると固定小数点演算とかライブラリ使うみたいだし、
シビアでいろいろ大変ですね。
http://www2.muroran-it.ac.jp/circle/mpc/front/old1/program/algorithm/fixedpoint/index.html
0639デフォルトの名無しさん2011/08/13(土) 08:55:52.88
>256-266
ループしてるよ!
0640デフォルトの名無しさん2011/08/13(土) 11:08:49.02
PSPだと double 使うと悲惨なことになるよ
0641デフォルトの名無しさん2011/08/13(土) 14:10:24.86
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

0642デフォルトの名無しさん2011/08/13(土) 20:44:27.38
doubleで頂点データなんか用意したら、そんな精度要らないのにメモリやキャッシュを無駄にするし、x86でもSSEを前提に設計するだろうに。
0643デフォルトの名無しさん2011/08/13(土) 21:08:55.04
LuaJITだと、JITがSSE2向けに作ってある
0644デフォルトの名無しさん2011/08/17(水) 00:13:26.24
組み込みだとdoubleはまだまだきついね
かといってLuaは整数、少数で変数分けてないからfloatにすると精度がきついので
固定少数を検討することになる

ところで蒸し返すようで悪いんだが、Luaはスレッドセーフではないよね?
リエントラントに作ってあって、アプリ実装者がやりやすいように作ってあるだけで
LuaGemsの人はState分離したらスレッドセーフにできるよって言ってるだけだし、

いや、規制で書き込めなくて、過去スレで何回かスレッドセーフではないって言われてるのに
なんか理不尽な流れだなーと思って眺めてたんだ。オレオレ君が間違った認識持って帰る分には
いいんだけどね
0645デフォルトの名無しさん2011/08/17(水) 00:15:17.22
てめえの垢で呟いてろオッサン
0646デフォルトの名無しさん2011/08/17(水) 00:33:01.21
なんでだれも実際のコードで試さないの?
0647デフォルトの名無しさん2011/08/17(水) 00:35:37.68
とっくに試して自明だからだろ

同一のstateとそれから派生した state は別スレッドからは扱えない。スレッド毎に作る分には問題ない

事実は単にこれだけ。
0648デフォルトの名無しさん2011/08/17(水) 05:04:41.03
そう。
それに対して「僕はこうだとおもいまーす」はブログに書いといてください
0649デフォルトの名無しさん2011/08/17(水) 08:38:38.61
>>644
Luaはstate単位でスレッドセーフ。
それをもってスレッドセーフでないというのは単なる言葉遊び。好きにしろ。
0650デフォルトの名無しさん2011/08/17(水) 08:41:27.32
>>644
Do not confuse Lua threads with OS threads.

By Luiz Henrique de Figueiredo
0651デフォルトの名無しさん2011/08/17(水) 08:50:19.38
>>650
そんな間違いをしてる人はこの話の流れで一人もいないぞ
0652デフォルトの名無しさん2011/08/17(水) 13:33:36.16
スレッドセーフについては、複数走らせたい場合はStateを複数作れば
いいわけで、大した問題ではない。
一つのStateを複数のスレッドから使う場合も、Mutexでアクセス権を付与すれば
いいだけだし、そもそもそんな使い方をする状況もあるのか怪しい。

複数走らせてるLuaStateから同じC変数にアクセスする必要性ならわかるが、
それはLuaがスレッドセーフになってるかは関係ないケースだし。
スレッドセーフ厨の人は、どういう状況を想定してるんだろ?
0653デフォルトの名無しさん2011/08/17(水) 15:01:51.00
「C++のこのクラスはスレッドセーフですか?」って聞かれて
「インスタンスを分ければスレッドセーフです」って言ってるようなもんだよな。スレッドセーフ君
0654デフォルトの名無しさん2011/08/17(水) 15:26:57.48
>>652
「スレッドごとにスクリプトを走らせたい」ってのが第一義の目的として、
単純には state 複数で実現できるのはわかった上で、それだとグローバル変数を
簡単に共有できないから「一つのState を使いたい」って要望がでてくるんだと思われ。

その要望自体は皆理解はできると思う

で、一つのStateを複数のスレッドから使おうとした場合、確かにスクリプトの呼び出しとか
の部分だけを整理して Mutex で固めてしまうのは簡単なんだけど、
「スクリプトが複数スレッドで動いてる」って状況だと、そのスクリプト自体が lua/squirrel の
内部処理を自分のAPIつかっていろいろ呼び出してしまってるので、その操作も
全部精査した上で適切にロックする処理を全部の箇所に足す必要があります。
「付与すればいいだけ」なんだけど、その場所がかなり多くて調べるのもうまく動くかチェックするのも大変。
lua も squirrel もスタック操作がステートフルなので、APIをロックするだけではダメだからね。

俺はそんな作業頼まれても絶対やりたくないので、聞かれたら
「lua も squirrel も単一State の操作はスレッドセーフにできないからやめとけ」って説明します。
0655デフォルトの名無しさん2011/08/17(水) 15:35:57.26
単一State の操作をスレッドセーフにするバカっているの?
0656デフォルトの名無しさん2011/08/17(水) 15:46:11.04
>>653
それはLuaの実態がStateであると捉えるか、VM関数群であると捉えるかで
変わるんじゃない。

C標準関数みたいに内部変数が使いまわされてるのが混ざってないのだから、
マルチスレッドでの使用は一応考慮されて設計してるのでしょ。
0657デフォルトの名無しさん2011/08/17(水) 15:48:59.44
python とか ruby は実際そういうことをやってるよね。もっとも逆に「複数ステート」相当が無いんだけど。

lua や squirrel でやる物好きは、なかなかいないと思うけど、誰かが作ったら使う人はいるんじゃね?
0658デフォルトの名無しさん2011/08/17(水) 15:52:20.26
>適切にロックする処理を全部の箇所に足す必要

そんなことしなくてもコルーチンと併用して、VMが一時停止したときだけ
ロック解除すれば良いかと。
それ以前にグローバル変数はLua上で管理しない方がてっとり早いだろうけど。
0659デフォルトの名無しさん2011/08/17(水) 15:54:16.80
>>657
lua_newthreadがまさにそれじゃね
0660デフォルトの名無しさん2011/08/17(水) 16:03:24.61
>>658
コルーチンベースでのVMまるごとロックならそもそもスレッド全くわける必要がないような……

>>659
あれはコルーチン用のステート生成なので、親stateともども別スレッドから同時にはさわれません
0661デフォルトの名無しさん2011/08/17(水) 16:04:19.31
>>660
PythonやRubyはいけるの?
初耳
0662デフォルトの名無しさん2011/08/17(水) 16:11:47.34
>コルーチンベースでのVMまるごとロックならそもそもスレッド全くわける必要がないような

そうだよね。
だからなおさら1Stateを複数スレッドで〜という状況がありえないと思う。
0663デフォルトの名無しさん2011/08/17(水) 18:30:49.46
>>654
その要望自体理解できないが。
単に設計ミスじゃね。何でもかんでもLuaに頼る必要なかんべ。
0664デフォルトの名無しさん2011/08/17(水) 18:33:13.35
>>653
それの何が問題かをいってくれないと。
インスタンス単位でスレッド単位で十分なクラスなんだからそれでいいじゃん。
LuaもState単位でスレッドセーフが保障されていれば十分。
それ以上を望むのは馬鹿とマニアだけ。
0665デフォルトの名無しさん2011/08/17(水) 18:34:24.23
>>659
Do not confuse Lua threads with OS threads.

By Luiz Henrique de Figueiredo
0666デフォルトの名無しさん2011/08/17(水) 18:36:47.79
>>654
「グローバル変数を共有とかお馬鹿な設計はやめとけ」の間違いだろ?
Lua様のせいにしてんじゃねぞ、こら
0667デフォルトの名無しさん2011/08/17(水) 18:47:37.03
まとめ
Luaはlua_state毎に別スレッドで動作させることができます。
そういう意味でLuaはスレッドセーフです。
異なるlua_satateで情報を共有できるか否か、というのはまた別の話になりますです。
普通は母体となるC言語なり何なりでロックしてから情報を書き換えるなどすればよいだけなので、
一般的な意味でも、Luaはスレッドセーフであるといえると思います。
0668デフォルトの名無しさん2011/08/17(水) 18:58:47.61
>>664
言い方の問題じゃね?
「vectorはスレッドセーフである」とか普通は言わないでしょ
0669デフォルトの名無しさん2011/08/17(水) 19:11:08.78
まぁ完全なスレッドセーフではないよな。
スレッド運用可能程度で。
0670デフォルトの名無しさん2011/08/17(水) 19:15:17.29
関数がリエントラントでもスレッドセーフと呼ばないのは自由だが
馬鹿だと思われるから気をつけた方が良いよ
0671デフォルトの名無しさん2011/08/17(水) 19:18:32.78
>>661
CPython と CRuby は GIL で実現してるので実質同時に動くスクリプトは一つだけど、まあ、実現はしてる。
他の実装だと、MacRuby は既に GIL 無しになってて、実際に複数スレッドで同時にスクリプトが走る。
あとは Rubinius もたしか開発ブランチでは GIL 排除してる。
CPython は GIL 排除は目標にあがってたけどまだ実現はしてなかったはず
Jython と JRuby はJava上の実装だけど完全に複数スレッド対応ずみ

>>663
「スクリプトだけでなんでもやる」的なスクリプト言語では、現実に求められてる要望だよ。
マルチコア時の性能がかなり上がるからね。

もっとも、俺も Lua でする必要はさっぱり無いと思う。適材適所やね
0672デフォルトの名無しさん2011/08/17(水) 20:01:03.74
AngelScript|Д`)<AngelScriptは一応マルチスレッド環境対応って書いてるけど大丈夫なのかな?
AngelScript|Д`)<boost::threadと組み合わせて複数のスクリプト動かした時は問題なかったけど。
06736442011/08/18(木) 00:37:04.54
まずごめん。予感はしてたんだがやっぱり荒れ気味にしてしまった
とりあえず >>647 の認識で合ってるか気になったんだ。
前の流れのときは(今もいるっぽいが)悪口雑多撒き散らしてまで
「一般的にスレッドセーフ」でまとめたい人がいたから。
これに関しては定義を決めないと結論出ないし、これでまとめるには
誤解を招くと思ったんで、 >>647 でおkなのを確認したかった

>>670
関数はそれでいいと思うんだけどvectorもLuaも状態を持ってるから、
ちょっと前提が違う。関数もstatic変数で状態持ってたら崩れる

でなんか面白い議論になってるLuaStateを単一でマルチスレッド化に
需要あんの?って話だけど、ちょっとずれてるかもしれんがGameProgrammingGemsの
7か8にそういう話が載ってたような。確か、変数、関数をスレッド数分
コピーしたくないから、一箇所に集めてアクセスさせる話だったと思う。
State自体はスレッド数あったかもしれんからずれてるかもしんない。
本は会社においてるから確認できなくてすまん。
ただ、最近は8コアとかざらだから無視できないのかもしれないね

あとほんと、なんか自分の自身が無いのに巻き込んだようですまない。
0674デフォルトの名無しさん2011/08/18(木) 02:08:07.86
>>671
> >>661
> CPython と CRuby は GIL で実現してるので実質同時に動くスクリプトは一つだけど、まあ、実現はしてる。
それで良しとするならLuaでも同じじゃないの?
countフックしてスイッチングするだけじゃん
0675デフォルトの名無しさん2011/08/18(木) 10:20:35.12
Lua Programming Gems http://www.lua.org/gems/
という本の
Enhanced Coroutines in Lua
という記事で、Lua のコルーチンをネイティブスレッドに対応させる拡張が紹介されてます。
ソースコードだけダウンロードできます。
使った事ないけど。
0676デフォルトの名無しさん2011/08/18(木) 15:18:24.60
>>668
多分この中でお前だけ話を理解できてない。
0677デフォルトの名無しさん2011/08/22(月) 22:05:23.49
AngelScript2.21.1リリース記念火気庫ヽ( ´∀`)ノ ボッ
http://www.gamedev.net/topic/609014-angelscript-2211-released/

asOBJ_ASHANDLEを使えばvalue typeをハンドルのように扱えるらしい
CScriptHandleは・・・どんな型の変数でもreference typeのように扱えるアドオンか?
Win64とMinGWでのnative calling conversionか・・・、うちには関係ないな
CSerializerというアドオンはモジュールの変数を、スクリプトを再コンパイルした後も内容を維持するためのものっぽい
0678デフォルトの名無しさん2011/08/22(月) 22:11:06.82
Lua 5.2リリース記念火気庫ボッはまだですか
0679デフォルトの名無しさん2011/08/22(月) 22:28:51.39
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
0680デフォルトの名無しさん2011/08/23(火) 14:24:57.18
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

0681デフォルトの名無しさん2011/08/23(火) 20:53:31.84
>CSerializerというアドオンはモジュールの変数を、スクリプトを再コンパイルした後も内容を維持するためのものっぽい 
これがsuspendで一時停止させたスクリプトの状態まで保存してくれるとなるとすげぇ便利なんだけどなぁ…
今度調べてみよう。
0682デフォルトの名無しさん2011/08/26(金) 14:17:09.17
ログ復活
0683デフォルトの名無しさん2011/08/26(金) 18:59:01.22
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン
0684デフォルトの名無しさん2011/08/31(水) 21:00:58.75
Luaのメタテーブルの__addメソッドでテーブルとテーブルの足し算をしたいのですが、
同じメタテーブルを設定したテーブルのXとYがあって、
X = X + Y と X = Y + X を区別するために、
今、呼び出されているメタテーブルがXとY、どちらのメタテーブルか、
判定する方法はないでしょうか?
同じメタテーブルを設定しているので、getmetatableでも判定できないので困ってます。
0685デフォルトの名無しさん2011/09/01(木) 00:41:00.58
__addに指定したメソッドの中で判別できるでしょ
0686デフォルトの名無しさん2011/09/04(日) 11:49:09.40
こういう答え方するオタクの事
前からキモイと思っていたけど病気だったんだな
ttp://livedoor.blogimg.jp/hamusoku/imgs/1/c/1cd6fc3e.jpg

「俺ごときが知ってる事を答えれない奴はどんなに見下してもいい」
とか顔を真っ赤にして反論してくれよw
0687デフォルトの名無しさん2011/09/04(日) 12:50:40.32
Firefox 9、「型推論エンジン」をついに統合 -JavaScriptさらに高速化
http://s.journal.mycom.co.jp/news/2011/09/01/079/

効果は言語によって違うのだろうけど、LuaJITなどに移植し易い機能だったら、
patch対応出来るのだろうか
0688デフォルトの名無しさん2011/09/04(日) 13:20:09.35
http://www.extremetech.com/computing/94532-firefox-9-javascript-performance-improved-by-20-30-with-type-inference
詳細項目みると単純ループや数値計算まわりで、LuaJITの最適化済みの得意分野になるので、あんまり期待できないかも。
0689デフォルトの名無しさん2011/09/04(日) 16:12:14.33
>>686

482 :名無しさん@初回限定:2007/09/10(月) 02:39:05 ID:+7lLhCDw0

2chで調べ物をしたい時は「教えてください」って書いても
なかなか教えてもらえない。

そういう時は、知ったかぶり風に間違ったことを自信満々に書く。
そうすると、ものすごい勢いでツッコミを入れてもらえる。
0690デフォルトの名無しさん2011/09/04(日) 21:07:22.31
アスペ診断か
この板でもっと流行らせるべき
0691デフォルトの名無しさん2011/09/06(火) 00:38:09.21
Javascriptかー。最近Node.jsが熱いらしいね
webGLもあるしどうなるかな
0692デフォルトの名無しさん2011/09/07(水) 20:36:46.82
LuaでLuacのバイトコードコンパイルでもJITコンパイルでもなくて
普通にバイナリにコンパイルしてDLLかなんかにするっていう
そんな魔法のようなことできませんか?
0693デフォルトの名無しさん2011/09/07(水) 21:28:07.12
普通に C とかで書くかプログラマ辞めろ
0694デフォルトの名無しさん2011/09/08(木) 09:02:27.07
>>692
ネイティブバイナリにするのが重要なのか、DLLにするのが重要なのか、
どちらなのかでアプローチが変わると思う。
0695デフォルトの名無しさん2011/09/08(木) 20:57:31.40
>>693
ひどい…そんな風に言わなくたっていいじゃない!

>>694
配布形式は全部バイナリで、
開発中はVMにDLL読み込ませて呼び出し〜みたいにできたらいいなぁ。
ということで両方知ってたら教えてください。
0696デフォルトの名無しさん2011/09/08(木) 21:04:45.62
llvm-luaとかで、バイナリコード吐けるのかな?
0697デフォルトの名無しさん2011/09/08(木) 21:40:20.80
周辺のモジュールも含めて全体をコンパイルするのはJITでないと難しい気がする。
単体でコンパイルして意味があるのかよくわからん。
0698デフォルトの名無しさん2011/09/08(木) 22:48:17.38
>>695
DLLにLuaを埋め込めばいいのでは?
0699デフォルトの名無しさん2011/09/09(金) 09:50:27.31
>>695
ネイティブの速度が必須とかじゃなきゃ、698の言うとおり
Luaを丸ごとDLLにすれば良いだけじゃ。
配布形式は全部バイナリでというのは、スクリプトが別ファイルになってるのが
嫌なのだろうか?
もしそうならスクリプトのソースをバイナリに埋め込めばいい。
07006952011/09/09(金) 22:00:26.22
>ネイティブの速度
…現状で遅いんで、ちょっとでも早くならないかなと思って聞きました…。

0701デフォルトの名無しさん2011/09/09(金) 22:57:30.61
>>700
どの部分が遅いのかテストしてみたら?
なんかよう分からんけどLuaは遅いという理由だと
全部Cで書けとしか言えない
0702デフォルトの名無しさん2011/09/10(土) 00:10:13.57
LuaJIT使ってるかい?
0703デフォルトの名無しさん2011/09/10(土) 06:44:17.73
スクリプトは所詮スクリプト。
適材適所。
07046952011/09/10(土) 07:21:42.29
JITより早くしたいから最適化コンパイラでもないかなぁと思って聞いたんですが、
ムリポ ナイポですかね。理解した。
■ このスレッドは過去ログ倉庫に格納されています