問題タブ [luajit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - lcurses のワイド文字
Lua でlcursesを使ったプログラミングを始めているときに、同じコードがluaとluajitで異なる動作をすることに気付きました(ソースが UTF-8 で保存されている場合):
luajitで実行すると、すべてが期待どおりに出力されますが、通常のluaでは、すべての UTF-8 文字が奇妙に見えるシーケンスに変換されます。
これは、en_US.UTF-8 ロケールの UTF-8 対応コンソールで Linux で実行されました。また、 lcurses rockに付属しているcurses.soを調べたところ、適切なncursesライブラリ (ワイド文字をサポート)を使用していることがわかりました。
ソフトウェアのバージョン:
- ルア 5.1.4
- luajit 2.0.0 beta7
- ncurses 5.9
- lcurses 6-2 (luarocks からインストール)
編集:
最初から書き忘れていた質問自体:
- なぜこれが起こるのか誰か知っていますか?
- プレーンなルアで動作させるには?
lua - luajit2.0.0 -- セグメンテーション違反: 11
http://lua-users.org/wiki/SimpleLuaApiExampleの簡単な例を使用してテストを行います。サンプルは libluajit.a と静的にリンクできますが、実行すると次のエラー メッセージが表示されます。
2012-11-08 にリリースされた LuaJIT-2.0.0 を使用しています。私のOSはMac OSX Lion 10.7.5です。
テスト手順:
luajit-2.0.0 をコンパイルします。
サンプルアプリをコンパイルして実行する
test.cとscript.luaはどちらもhereから来ています。フォルダーlj2には、正常にコンパイルされた上記の luajit-2.0.0 のソース コードが含まれています。
clang コンパイラを使用する gcc コンパイラを使用するしかし、lj2/src/luajit.c を test.c に置き換えると、成功します。これは非常に奇妙です。下記参照:
luajit - Luajit API の最適な使用
Lua コードを生成して実行するプログラムを開発しています。
(1) コマンドライン luajit コンパイラーを使用できるようにプログラムにファイルを生成するように依頼するか、(2) API を介して luajit を直接実行するようにプログラムに依頼することができます。
いくつかのベンチマークの後、方法 (1) の方が高速であるように見えます。APIを最適な方法で使用していないのではないかと思います。私は基本的に一連の dostring(chunk) を実行し、エラーをチェックします。
では、パフォーマンスを目指すときに API を使用する良い方法はありますか?
lua - カスタムLuaバイトコードインタープリターのLuaJITとluac
関連:標準の Lua バイトコードと LuaJIT バイトコードの違い
私は Lua バイトコード インタープリターを作成しており、最初のバイトコードを生成するために LuaJIT と luac のどちらを使用するかを決定しようとしています。私はインタプリタを書いているので、JIT のパフォーマンスを得るつもりはないので、すべてはコンパイラの品質と生成されたバイトコードの設計にかかっています。
どちらのコンパイラも大幅に優れていますか?
私はこれを Dart (解釈も) で書いているので、コンパイラからの自由な最適化は大歓迎です。
optimization - LuaJITFFI文字列の比較
文字列ステータスを頻繁に使用するサードパーティのCAPIをバインドしています。例(擬似コード):
ほとんどの場合str
、"OK"
文字列になります。
それをチェックする最速の方法は何ですか?
ここでは文字列のインターンを避けたいと思います。
optimization - Argv 関数と LuaJIT FFI の vararg の比較
これよりも argv 関数を処理する効率的な方法はありますか?
lua - out引数として使用されるLuaJIT ffiへのポインタを渡す方法は?
次の C コードがあると仮定します。
...LuaJITで以下を行うには?
lua - グローバルは悪いですが、これにより何らかの方法でパフォーマンスが向上しますか?
私はLuaJITで作業しており、次のようにすべてのライブラリと「foo」内に保存されているものを持っています:
今、私は、メタテーブルを使用し、すべてのライブラリをローカルに保持することはまったく役に立ちますか? または、それは問題ではありません。私が考えたのはこれです:
現在、これをベンチマークするツールは実際にはありませんが、ライブラリの実際のコンテンツをローカルテーブルに保持すると、パフォーマンスがまったく向上しますか? 少しでも?
基本的に私が知りたいのは、次のことだけです。パフォーマンスに関しては、2番目の方法の方が優れていますか?
誰かがLuaでグローバル変数がどのように処理されるかについてリンク/詳細な説明を与えることができれば、これを説明することができればそれも素晴らしいでしょう.
opengl-es - LuaJIT ベクトル ライブラリ
3D インタラクティブ シーンをすばやく作成する方法として、OpenGL ES 2.0 で LuaJIT を使用しています。
私は車輪の再発明に忙しく、独自のベクター ライブラリを作成しています。私の質問は、他の誰かがこの種のことを経験したことがありますか? そこにライブラリはありますか?LuaJIT 専用にビルドされたライブラリはありますか (LuaJIT の FFI を使用)?
c++ - luajit未定義参照の埋め込み
luajit を C++ アプリケーションに (静的に) 埋め込もうとして失敗しました。luajit サイトの手順に従っても役に立ちませんでした。この件に関してグーグルで検索しましたが、関連する情報が得られず、考えられるすべてのことを試しました。
私が実行している問題は、g ++が適切にリンクしていないか、またはluajit insが適切に構築されていないことのようです。
これは私がコンパイルしようとしているものです:
そして、私が得ているundefined reference
エラーは、luajit をまったくリンクしていないかのようなエラーです。
次のようにリンク オプションを設定した後、Eclipse cdt (mingw) でコンパイルしようとしています。
そして、Eclipse cdtは次のようにコンパイルしようとしているようです:
ダウンロードページからLuaJIT-2.0.1 zip (最新バージョン) をダウンロードし、次のようにインストール ガイドに従いました。
- 解凍しました。
- コマンドを起動し、cded
LuaJIT-2.0.1/src/
- 走っ
make BUILDMODE=static
て素敵なOK Successfully built LuaJIT
メッセージをもらいました
それ以外には、luajit の埋め込みに関する多くの情報はありません。インストール ガイドにもありません。
ただし、src
フォルダをgrep するとluaL_newstate
、libluajit.a
.
私は使用しています:
- ミングス
g++ (rev, Built by MinGW-builds project) 4.8.0 20130314 (experimental)
- ミングス
GNU Make 3.82.90 Built for i686-pc-msys
- Win8 64bit