1 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 15:10:32.28 .net] LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で 使われるプログラミング言語についてのスレッドです まとめwiki(なにか質問する前に必ずみること!) wikiwiki.jp/lua/ その他の参考URLは>2から ■前スレ 【Lua】組み込み系言語総合 その5【Squirrel】 toro.2ch.net/test/read.cgi/tech/1321063450/ ■過去スレ その4 hibari.2ch.net/test/read.cgi/tech/1301414458/ その3 hibari.2ch.net/test/read.cgi/tech/1272643397/ その2 pc12.2ch.net/test/read.cgi/tech/1243210301/ その1 pc12.2ch.net/test/read.cgi/tech/1205208141/ プログラミング言語 Lua その3 pc11.2ch.net/test/read.cgi/tech/1160799232/
694 名前:デフォルトの名無しさん mailto:sage [2015/05/16(土) 00:33:56.90 ID:nBVK7qH/.net] Lua自体にはメソッドという分別は無いので関数かどうかで判断するだけだな for k,v in piars(player) do if type(v) == "function" then printf(k, v) end end
695 名前:デフォルトの名無しさん [2015/05/16(土) 00:48:49.46 ID:yj1J+1ps.net] お〜 できました〜 かゆいところにきちんと手が届いてくれていい言語ですねぇコレ ありがとうございます。
696 名前:デフォルトの名無しさん mailto:sage [2015/05/18(月) 06:50:19.69 ID:QWumnvsF.net] すう様はきちんと考えながら英語を喋ってるよ。 あれはカンペとかじゃない。
697 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 14:34:42.08 ID:dht99EFe.net] Luaで悩んでいます。ご教示お願いいたします。 下記のようなテキストの入った複数の配列があり、 tbl01={"a","b","c"} tbl02={"d","e","f"} tbl03... ストリング型のstrという変数に"tbl"という文字列が入っています。 やりたいことは、文字列型の値を何とか加工してtblの要素にアクセスしたいんです。 str[1] とするとエラーが出ますし・・・(まあそうですよね) 強引にtable型に型変換できないかな?とか悩んでいます。 文字列しか受け取れない場合、複数ある配列にアクセスするには どのようにすればよろしいでしょうか? 詳しい方教えてください。お願いします!
698 名前:687 mailto:sage [2015/05/19(火) 14:37:23.12 ID:dht99EFe.net] ↑すみません、間違えました。 strの中に入っている文字列は"tbl"ではなく"tbl01"としています。 いずれにせよ無理ですが…
699 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 16:19:59.83 ID:Nw+B6083.net] >>690 string.sub() or .byte() 1文字ずつ処理するのはC系に比べて苦手。 代わりに正規表現が使えないか要検討。
700 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 16:23:48.21 ID:26zc2bnI.net] 微妙にエスパー能力が必要な質問だが、こういうことけ? local function getTableByName(name) local tables = { tbl01 = {'a', 'b', 'c'}, tbl02 = {'d', 'e', 'f'}, } return tables[name] end local str = 'tbl01' local t = getTableByName(str) print(t[1])
701 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 16:28:09.88 ID:Nw+B6083.net] >>690 違うな。質問の意図を取り違えていたかも? str[1]の代わりになるのは >>692 だが、 元々の目的が「変数に入っている変数名を経由したアクセスがしたい」ならば _G を使う: str = "tbl01" assert(_G[str] == tbl01) tbl01 等がグローバル変数、ローカル変数、他テーブルの要素で処理が違うものになるから、これでダメならまた聞いてくれ。
702 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 22:19:05.65 ID:dht99EFe.net] >>692 >>693 お二方、ありがとうございます! エスパーみたいな質問になってしまいましたね。すみません。 実現したいことの詳細をより細かく記載します。どうしても実現したいので。もう3日悩んでます。 ゲームを制作しています。 ゲームエンジンからluaを呼んでluaで処理させることができるのですが、 ゲームエンジンの仕様でlua側に渡せる値が文字列のみです。 luaで何をしたいかというと、上記のように大量にテーブルを作って中身も代入しておきます。 すべて文字列のデータです。 ゲームエンジン側から@文字列Aテーブル名の二つの値を渡します。(もちろん両方文字列でしか渡せません) その二つの値がlua側に渡ったら、Aを使ってテーブルを探し、@を使ってそのテーブルの中に @と同じ文字列があるか比較します。 文字列があったら1を返して、なかったら2を返す…ということを実現したいのです。 >>690 の例で行くと、ゲームエンジンから@"a"とAtbl01をもらって、lua側のtbl01をforで回して 探していけばいいや…と思っていました。しかし、 strにtbl01が入っていたとして、 for i=1 , table.maxn(str) , 1 do …なんてことをすると、文字列なのでエラーが返ってきますorz いろいろ試してみてstr[i]なんてことまでやってみる始末。もちろん動
703 名前:かないですが。 そもそもluaって動的に型を決めてくれるので明示的にこちらから「こいつはtable型だよ!」 って指定できないんですね。(java使っている者でして…) 説明不足なら捕捉します。後出し申し訳ありません。何卒よろしくお願いいたします。 [] [ここ壊れてます]
704 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 22:35:28.81 ID:UWcSl4nD.net] >>695 table型だよって指示できないもなにも、変数strの中身はあくまでstringなんだから、Javaで同じことやる場合でもHashTableかなんか使うよね? つまり、>>694 がやりたいことなんじゃないの? table.maxn(_G[str]) でできると思うよ
705 名前:デフォルトの名無しさん mailto:sage [2015/05/19(火) 23:29:17.09 ID:dht99EFe.net] >>696 やりました!!! 要素にアクセスできましたーー! そのまま文字列一致の判定をして、フラグ1が返ってきました。 これでゲームの核の部分が作れました。 そもそも_Gの使い方を間違ってました… しかしLuaって色々弄って思ったのですが想像以上に柔軟なんですね。 お三方、親身に教えてくださってありがとうございます。
706 名前:デフォルトの名無しさん mailto:sage [2015/05/25(月) 21:08:36.02 ID:sCH5oSB/.net] 質問失礼します。 OSX 64bit Unity という環境で Lua を使用しています。 Windowsでは正常に動くのですが、OSX 64bit で動かすと LuaDLL.luaL_newstate(); で null が返ってきて困っています。 パッケージを見ると Mac (x86 only) と明記してありました。 OSX 64bit でも動かしたいのですが、どうやれば良いでしょうか?
707 名前:デフォルトの名無しさん mailto:sage [2015/05/25(月) 21:17:17.45 ID:WFHyWYJ8.net] 64bitなdllを別途準備しないとダメじゃね?
708 名前:695 mailto:sage [2015/05/25(月) 21:18:45.04 ID:sCH5oSB/.net] >>699 そうですよね。。。 makeは通ったんで、頑張ってみます!
709 名前:695 mailto:sage [2015/05/28(木) 19:45:28.97 ID:52beXCpy.net] 詰まりました。。。 LuaJIT-2.0.2を利用しているのですが、OSX用のuniversal binaryで出力する方法が分かりません。 Luaの速さに全体重を乗っけてるんで、今更別の言語への切り替え等は考えられません。 分かる方、ぜひ教えてください。
710 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 01:55:02.89 ID:p/ahFCvT.net] 個々にビルドした場合はlipoというツールで合体させるらしい? https://www.google.co.jp/search?q=lipo+universal+binary
711 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 02:07:51.90 ID:p/ahFCvT.net] luajitではなく、luaならhomebrewとかみるとuniversalのオプションがあるね。 brew install lua --universal >698も根が深そうな。。。 https://www.google.co.jp/search?q=luaL_newstate+64bit https://gist.github.com/nddrylliog/8722197
712 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 02:13:23.25 ID:p/ahFCvT.net] とおもったけど、普通に64bitになっていた。 https://github.com/Homebrew/homebrew/blob/master/Library/Formula/luajit.rb $ lipo -info /usr/local/opt/luajit/bin/luajit Non-fat file: /usr/local/opt/luajit/bin/luajit is architecture: x86_64
713 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 09:55:09.44 ID:2a3TZL/2.net] >>702-704 ありがとうございます! LuaJITの32bit版ライブラリと64bit版ライブラリを出力して、lipoというソフトで合体という事ですよね? 試行錯誤してみます!
714 名前:695 mailto:sage [2015/05/29(金) 15:29:21.86 ID:2a3TZL/2.net] >>698 も根が深そうな。。。 まさにコレでした。 問題は2つあったんですね。 もうお手上げです。 とりあえず勉強になりました。 ありがとうございました。
715 名前:695 mailto:sage [2015/05/30(土) 02:16:04.85 ID:WJHjPFg2.net] ちょっとレスにミスったんで、訂正 >>703 >698も根が深そうな。。。 ↑まさにコレでした。
716 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 16:28:17.35 ID:SxkHJw7D.net] 最新のsnes9xでluaを読み込む方法を教えてください pastebin.com/nBuJChc9 を動作させたいです
717 名前:デフォルトの名無しさん [2015/09/30(水) 15:13:43.25 ID:gLrxUsPl.net] Nekoって一応プログラミング言語だったのか Haxeのプログラムを動かすVMとだけ思ってた https://en.wikipedia.org/wiki/Neko_(programming_language)
718 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 15:57:26.40 ID:2TkwnPLU.net] 新進気鋭のプログラミング言語「Neko」ってなに? news.mynavi.jp/articles/2007/08/06/neko/
719 名前:デフォルトの名無しさん [2015/10/06(火) 22:32:11.35 ID:uxUTfTFS.net] 受ける会社大丈夫? 下記の条件が全て当てはまる会社にご注意下さい。 ・IT系 in tokyo ・「社名 労基」でググると過去の2chスレが出てくる ・転職会議で2.5点
720 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 00:53:22.02 ID:Kl04gCQo.net] Ravi https://github.com/dibyendumajumdar/ravi lua5.3互換、静的型付け追加、jit
721 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 01:29:46.09 ID:+L1p2dWm.net] きみのためなら死ねる。Ravi!
722 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 08:39:42.03 ID:LHJrrN+c.net] FlashAirにLuaが組み込まれてた
723 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 06:26:50.82 ID:sv1H4v2t.net] duktapeはどうなん? 使ってる人いる?
724 名前:デフォルトの名無しさん [2015/12/08(火) 17:05:55.06 ID:yVFhtqC/.net] スマホのマクロアプリのスクリプトがLuaのコードで書かれてるんだけどusleep関数を使うと徐々にズレてくるんだが正確に待機させる事ってできます? 命令としてはタップ、待機、タップの繰り返しなんだけども10回目くらいで目に見えて遅れてる usleep自体正確じゃなく、1回ズレると以後ズレた地点から待機時間が計算されるからその繰り返しになっていると思う os.clockで開始時間計って目的のタップまでの待機時間を計算していくしかないかなと思ってるんだけどいかんせん700回以上を計算して行くのは心が折れるので何か方法があれば教えて下さい
725 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 17:52:14.14 ID:V92FzyIA.net] >>716 luaに限った話じゃないが 次に目を覚ましたい時刻までの差分だけ寝れば?
726 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 18:05:12.63 ID:yVFhtqC/.net] >>717 os.clockでタップさせたいタイミング全ての時間を取得するって事ですか?
727 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 18:45:35.86 ID:V92FzyIA.net] >>718 「全ての時間」ってのがよくわからないな。キリのいい間隔ではだめなのか? 例えば 200ms おきにタップしたいなら、 ベース時刻から 0, 200, 400, 600ms …の経過で処理するんでしょ? で、200ms の処理の際に時計を見て、実際には 205ms の時刻なら、次は 400 - 205 = 195ms だけ寝る。 何かしら負荷がかかって 400ms の時刻に近すぎたり過ぎたりしたら スキップするなり、数回間隔を狭めて調整する処理も要るかも。
728 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 23:00:53.20 ID:yVFhtqC/.net] >>719 一定間隔ではないんですよね 止める時間はだいたい4パターンのうちどれか タップした時の時間と目的の時間を比較する方法があれば良いんですが 一定間隔ズレているなら良いですが徐々に少しずつ遅れているなら結局700回を全て調整していくしかないわけですよね… コツコツ頑張ります
729 名前:デフォルトの名無しさん [2015/12/09(水) 01:20:52.01 ID:uEc6NdFX.net] 【 オンラインTCGエディター 】 >>1 デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。 例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っており
730 名前:ながら、 当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。 既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。 バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーロー、シャーマン・キングなど のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。 マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。 WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。 設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。 個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。 ↓ エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。 ↓ 遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。 なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・ バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。 ↓ 各社TCGを再現するテストプレイ ⇒ 更に改良や修正。 ↓ 機能制限した下位版を5万円以上で発売 + デュエリ−グ用に改造した上位版でサーバー稼動=営業開始。 ↑ 下位版の改造および商用利用には、別途で当社との契約が必要。 さ〜て、製作ベンダー見つけよっと!ww(クス http://wc2014.2ch.net/test/read.cgi/entrance2/1449039272/-18 [] [ここ壊れてます]
731 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 01:11:18.19 ID:TU1EcnmS.net] 初心者ですがLuaのサイト行ってダウンロードしたんですけど インストール出来ません アドバイスを御願いします(´・ω・`)
732 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 01:46:15.47 ID:LbvdgCkv.net] >>722 luabinaries.sourceforge.net/
733 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 05:57:27.20 ID:47mVpj3E.net] >>720 local start_usec = sysyem_usec(); 〜色々やる〜 usleep(sleep_time - (sysyem_usec() - start_usec)); これだけの話じゃないの? ちなみにos.clockはprogramが使用したCPU時間だからCPUが寝てる間は増えないよ
734 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 18:30:13.07 ID:Sj5i/aUt.net] >>722 OSがワカランけど ソースをコンパイルするなら tar zxvf lua-5.3.2_Sources.tar.gz cd lua53 make linux or make macosx or make mingw or make posix or make solaris or make install
735 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 20:02:10.72 ID:lAIllFG+.net] Luaは組み込みが簡単だっていうけど Javaの呼び出しAPI使う方がずっと簡単じゃん Javaなら書くのにEclipseとか使えるし
736 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 21:06:07.28 ID:YzB9fcaP.net] コンパイル型の言語を組み込んで何がしたいんだ?
737 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 08:07:50.80 ID:QEjOaegz.net] 「組み込みが簡単」の意味を誤解してるに一票
738 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 03:28:28.16 ID:Va0MVjV0.net] じゃあJavaをアプリケーションに組み込んでみなよ
739 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 04:05:21.99 ID:Va0MVjV0.net] luaのスタック操作APIが面倒というのならbind用ライブラリ一杯ある lua-users.org/wiki/BindingCodeToLua それ使うとJNIが面倒と思えるぐらい便利なのあるよ
740 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 04:14:11.05 ID:0EvHa66G.net] 静的型付きの組み込み言語ってないの? 実行時コンパイルできるやつ
741 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 04:27:46.70 ID:Va0MVjV0.net] >>731 それってエラーになるの結局実行時だしIDEがサポートしないとメリットなくない?
742 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 05:37:06.41 ID:0EvHa66G.net] すまん言葉が足りなかった。 そうじゃなくて、実行時コンパイル「も」できるやつと言いたかった。つまり実質Evalを捨ててない静的型付き言語。 というかIDEサポートなくたってメリットあるだろ・・・コンパイル時に型エラー出るじゃん
743 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 07:27:44.99 ID:H4zd5jav.net] >>712 みたいなLLVMバックエンドの奴なら
744 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 07:39:28.66 ID:H4zd5jav.net] いやそんなの組み込むのは無理か、間違い
745 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 09:54:45.69 ID:EOECSf3M.net] >>733 JavaScriptを組み込んでTypeScriptで書く IDEサポートも VisualStudio なり VisualStudio Code なりがある v8なりJsRTが使える環境なら性能面でもかなり良い選択だと思う
746 名前:デフォルトの名無しさん [2016/01/11(月) 17:05:44.51 ID:if9kJcKP.net] >>736 v8をアプリに組み込むのは手間だし(クロスプラットフォームを考えると尚更) altJs系の言語はeval出来るって要件満たしてない
747 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 15:56:16.83 ID:pvMT9PCj.net] jsのエンジンってposix系のapiってあるの? commonjsのnode組み合わせたり必要なんだよね? v8意外にもあるみたいだけど。 mattn.kaoriya.net/software/lang/c/20150815003033.htm
748 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 15:58:08.09 ID:pvMT9PCj.net] cljsだとeval出来るようだ。
749 名前:デフォルトの名無しさん mailto:sage [2016/01/15(金) 01:33:01.12 ID:9hWfybeU.net] >>733 AngelScript|Д`)ノ<静的型付き言語と聞いて。Anyもあるよ!
750 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 20:51:03.31 ID:0e0GcKQy.net] PSLってのはどうよ? 俺はスクリプト言語に静的型はそれ程魅力無いと思ってるし実績あるからLuaでいいやってなってるけど
751 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 13:23:45.64 ID:xtpCszE9.net] >>58 Lua の文法って簡単なんだなーと思って試しにパーサを書いてみてたんだけど、 マニュアルの BNF 通りだと左再帰になってるから無限ループに陥ってしまった。 間接的な左再帰だから俺のへぼい知識では除去できなかった。 実際に Lua の実装では再帰下降してるっぽいからなんとかしてるんだとは思うけど、 左再帰を除去した文法規則の表とかってどっかにないかな? ソースコード読むしかない?
752 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 02:54:56.98 ID:kn/5LVuq.net] Lua使ってる人binderは何使ってる? そんなもん要らん!標準のstack APIで充分だ!って人もどれくらい居るんかな
753 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 11:34:52.69 ID:Pw2nI7hG.net] わしはstack形にすっかり慣れた
754 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 23:47:27.75 ID:kn/5LVuq.net] 慣れても面倒くさいものは面倒くさくね? C++のオブジェクトをLuaから使えるようにするだけでもやりたくなくなる
755 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 07:57:29.11 ID:lmUWOHWt.net] 英語より面倒な日本語にもすっかり慣れたしなんとかなるもんだよ
756 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 23:36:18.56 ID:8yWl5BHB.net] Lua ってパッチ当てないと日本語つかわれへんの? 21世紀にもなってなんでや。
757 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 00:44:14.34 ID:lRklN/w3.net] >>747 utf8ならそれなりに使える 21世紀にもなってSJISは使ってないんだろ? とはいえファイル名はOSネイティブの文字コードが要るとか 幾つか注意点や手を入れたくなる所はあるが
758 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 01:00:10.15 ID:Jx1/Vtha.net] >>747 使えるけど?
759 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 23:42:25.61 ID:wmCOjGkS.net] SJIS使ってないなんて都合が良いことありえないw Winだと何しても所詮SJISから逃れることはできん。 むしろSJISに対応してないプログラムの方が大問題だ。
760 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 23:52:14.71 ID:wmCOjGkS.net] >>747 今の言語だと、ソースをマルチバイトで記述しようが、utf8で記述しようが、 マルチバイト書いたソースから、utf8で書いたクラス呼ぼうが、 変換などソースのどこを探しても1行たりとも表れないのが常識なんだけれども Luaは変換だらけ。
761 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 00:44:16.88 ID:FMLvAXOG.net] string型をバイナリ配列として利用しようとするコードが存在する限りもう無理ぽ
762 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 01:33:38.19 ID:XGMa0UOY.net] swigでsample.iに typedef struct { int a; int b[4]; }hoge_t; int hogehoge(hoge_t * test); と書いて swig -lua sample.i 実行で吐き出されるグルー関数を使う場合 luaの記述は test = require "xxx" test_t = hoge_t() test. a =10 result = hogehoge(test_t ) とかすればよいのですが、 test.b[1]=3とか test.b[2]=4とかするとグルー関数でパラメータチェックで弾かれます。 構造体のポインタ渡しで構造体の中に配列がある場合は LUA側でどんな記述をすればいいのだろう?
763 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 01:35:33.28 ID:XGMa0UOY.net] 間違えた↑訂正 test_t = hoge_t() test_t. a =10 result = hogehoge(test_t ) とかすればよいのですが、 test_t.b[1]=3とか test_t.b[2]=4とかするとグルー関数でパラメータチェックで弾かれます。 構造体のポインタ渡しで構造体の中に配列がある場合は LUA側でどんな記述をすればいいのだろう?
764 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 06:22:46.35 ID:pWou2Qho.net] >>750 ANSI 版の API を使ってるやつこそクソ。 正直言って A 付きの Windows API は全部廃止してもいいくらいだ。 UNICODE 版の API 使えよ。
765 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 08:17:19.47 ID:ToPlCIrz.net] >>755 Luaの話ならstringはchar固定でwchar_t等に変更するのは本体の改造が要る。 Luaのstringは、byte-arrayという名前のほうが適切だと言える。 不適切な変換はしないが、「UTF8として解釈するならutfモジュールを使え」というスタンス。 同様に、SJISに対応したいなら自分でsjisモジュールを作ることになる。 Windowsがsetlocale("UTF8")をサポートしていないのが面倒の原因なんだよな。 他のOSならできるから、もうみんなUTF8に統一して満足しちゃってる。
766 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 15:39:47.51 ID:brMGa4PB.net] いち早くUnicode()に対応したはいいけど2バイトに収まりきらず、固定長じゃなくなってメリットが何もなくなった上に 他のプラットフォームは軒並みUTF-8になってしまって孤立してしまったが互換性のためにSJISを捨てられないWindowsさん MSVCで設定とかでUTF-8版のCライブラリ(中でUTF-16に変換するような)を使えるようにしてくれたらいいような気もするんだけど何か問題あるんだろうか
767 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 16:03:19.95 ID:TvHQKkN9.net] ラテン語圏のやつらが作る言語はいつもこう。
768 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 19:16:06.06 ID:brMGa4PB.net] ははっ、 RubyのWindowsでの日本語対応がマトモだったと思ってる?
769 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 19:54:12.16 ID:Jcxd0Fsw.net] Windows切るだけで解決する
770 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 20:10:36.21 ID:pWou2Qho.net] Windows の API を UTF-8 にすべきだったとは思わんのだよな。 UTF-8 を基本にしてしまうと ASCII コードの範囲内で使う分には対応してようがいまいが使えちゃうから、 対応してない部分が顕在化し難いまま混在してわけわからんようになるのが見えてる。 その点、 UTF-16 と ASCII (ANSI) が混ざったらすぐ発覚する。
771 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 20:32:40.84 ID:brMGa4PB.net] >>761 へぇ Windows以外はわけわからんようになってるという主張でございますか?
772 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 21:00:24.37 ID:I7CO4PTN.net] 主要なコードもUTF8じゃなく、OS内部もUTF8じゃなく、標準入出力もUTF8じゃなく、あげく、UTF8にしても世界の文字の一部しか対応できないので いうような利点はないってことでしょ。 utf8にしても、実際の運営としてはASCIIのような運営範囲なんでしょ?w
773 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 21:04:55.16 ID:ToPlCIrz.net] >>761 の真意はよくわからんが char (1 byte) にしか対応していないコードや製品が氾濫するのは困るが wchar_t (2 byte) にしか対応していないものなら許容できるってニュアンスか? それもサロゲートペアができて破綻したけどな。 絵文字のせいで目にする機会も無いではないし。
774 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 21:28:04.79 ID:brMGa4PB.net] >>763 何言ってるのかよくわからんけど >>UTF8にしても世界の文字の一部しか対応できないので 表現できる範囲はUTF-16も同じなんだが、それもダメって言ってるんだよね? ってことはつまりSJISとかそれぞれのエンコーディングで適切な処理を行えってこと? 俺はUTF-8のコードポイントの区切りかたは知ってるけど、 他の言語の専用エンコーディングどころか SJISのコードポイントの区切り方すら知らないわ、 それをプログラミング言語作る人にしかも日本語とかまったく使わない海外の作者に強いるとかできないっすわ。
775 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 21:36:38.36 ID:TvHQKkN9.net] そんなもん自慢話にもならん。誰それ構わず噛み付いてアホか。
776 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 21:53:39.03 ID:brMGa4PB.net] 誰が自慢話してるんだ?
777 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 23:17:47.52 ID:AF25xcuE.net] 妥協も多いけど現実的だったオリジナルのUnicodeが、世界中のあらゆる文字をひとつのコードで 表現するという無謀な目標を掲げた10646と合流してごみ溜めのようになった。 そんなのに付き合って苦労するのはバカらしいから、基本多言語面だけサポートしてサロゲートペアは トーフ扱いするのが現実的。どうせろくにフォントも無いし。
778 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 23:26:52.29 ID:pWou2Qho.net] >>762 コードページの概念を捨てられないという主張。 そりゃ全部 UTF-8 に出来ればベストだとは思うよ。 でも捨てられない以上、下手に混ざってわけわからんようになるよりは混ざったらすぐわかる方がマシって話。
779 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 23:56:37.35 ID:wLhOEYBg.net] 各国のコンソールのコードページも65001じゃないし、65001じゃ 日本語もまともに表示できないわけで。 逆にプログラミング言語ごときが数十億人が使ってる現実的な各文字コードを押しのけて utf8に全文書統一しろ、今すぐしろとか言っても、相手にされんよ。
780 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 00:27:48.85 ID:/BZKOehd.net] Unicodeで表現できない文字って少なくとも日本では名前に変体文字使ってる数%がごねてるだけでしょ 数十億人とか盛りすぎ
781 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 00:47:56.49 ID:/BZKOehd.net] というかSJISには割り当てられててUnicodeで割り当てられてない文字ってあるの? >>768 最近の携帯電話使ったことないのかい? >>770 Windows内部はUnicodeで扱ってるからコンソールもUnicodeで表現できない文字は表示できませんよ WindowsのコンソールをCP65001にしてもまともに表示できないのは実装がタコなだけ あとメジャーな携帯電話のOSはどちらもUnicodeですけどこれは本当に数十億人が使ってますよ
782 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 02:13:32.99 ID:bnndf23C.net] iOSは消滅確実だが、Androidは十分残りそうだなぁ。 実装がカスとかいったところで、モノ生産してるデスクトップ85%から占めてるてるものを 否定して見ない振りしてもしょうがない。 逆にビューワー(携帯)なんか資産性がないからどうでもいいよ。
783 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 03:04:06.56 ID:/BZKOehd.net] 話をどこへ持っていきたいのかよくわからんけど元々は、 WindowsがUTF-8をまともにサポートすべきかっての論点だと思ってたけど。だからいまの実装を見ないふりもなにもないよ。 MicrosoftがWindowsでUTF-8をちゃんとサポートししようとしても今と変わらずクソ実装になるって主張じゃないよね? >逆にビューワー(携帯)なんか資産性がないからどうでもいいよ。 プログラムを動かすのは大多数が持ってるビューワーなわけで、それこそ否定して見ないふりしてどうすんのよ。 今はサーバーはLinuxで携帯はiOS or Androidなわけで、プログラムを実行する環境全体を見るとWindowsなんて少数派だよ。
784 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 08:26:37.09 ID:X7qr0C1S.net] OSのネイティブ (C言語) では UTF-16 (Windows) と UTF-8 (それ以外) があるけど 今主流の言語 (Java, C#, Swift/Obj-C, JavaScript) のレベルでは ほぼ UTF-16 に統一された印象があるんだが、この認識は間違っているだろうか? ファイル入出力では文字コード変換をするのは前提として。 OSうんぬんより、むしろ文字列型がUTF-16でない言語が問題な気がする。
785 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 12:03:30.10 ID:BlYk2woR.net] 結局こういう面倒な問題はグレーにしてるLuaが勝ち組
786 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 14:43:17.15 ID:8fDg9LDU.net] >(Java, C#, Swift/Obj-C, JavaScript) その辺の言語はUTF-8が産まれる前からある言語だからな SwiftはUTF-16じゃないし(もちろん扱えるけど)、goは基本UTF-8
787 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 15:15:51.79 ID:su9E+X74.net] Ruby ソースコードはコメントで指定、文字列型は内部にエンコーディング情報を持ってる python 内部表現はデフォルトucs4(WindowsだけUTF-16) php よく知らんけどググってみる限り統一されてなさそう というわけでUTF-16に統一されてるわけじゃないよ。
788 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 15:22:16.66 ID:22sNDRQR.net] 結局のところ、このスレ的にはC言語の整合がとれてないのが困りどころよな wchar_t をいまさら統一とは言わないけど、なんか統一した別枠の仕様を標準化してほしい
789 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 15:44:17.53 ID:22sNDRQR.net] あ、C/C++の規格的にはもう11で統一されてたのか char16 _t がutf-16、char32_tがutf-32で固定の組み込み型。u"" U"" でそれぞれリテラル指定も可能 ただし全部これに対応したライブラリーは整備されてないので、 実情はあんまかわらん模様
790 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 15:52:48.40 ID:22sNDRQR.net] アプリ内部はchar16_tかchar32_tでかいて、 OS依存処理は分離した上で、winはwchar_t がutf-16だからそのままワイド系の関数やapi使って、 unix系はwchar_tは信頼できないから、c16rtomb かc32rtomb でmbに変換して対応、が、C11以降の正しい書き方ってことかな
791 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 22:02:21.26 ID:iW4Rvogm.net] ここ何のスレだっけ…?
792 名前:デフォルトの名無しさん mailto:sage [2016/02/06(土) 22:11:19.39 ID:+jWWiLZa.net] 組み込み言語だろ。流れには沿ってるよ
793 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 00:18:29.86 ID:LSSjhAu+.net] >>780 だからUTF-8に統一すりゃいいのにって話に戻るわけだ
794 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 00:48:50.94 ID:4QXOAnIu.net] 言語処理系がSJISソースコードを処理できるか(5C問題)と、言語やOSの内部文字コードの話がたまに混ざる。