标签: lua

Lua - 从用户那里获取命令行输入?

在我的lua程序中,我想在继续操作之前停下来并要求用户确认.我不知道如何停止并等待用户输入,怎么办呢?

lua user-input blocking wait

16
推荐指数
3
解决办法
6万
查看次数

重定向/重新定义嵌入式Lua的print()

我在我的C++应用程序中嵌入了Lua.我想重定向打印语句(或者只是简单地重新定义打印函数?),这样我就可以在其他地方显示已计算的表达式.

执行此操作的最佳方法是:重定向或重新定义print()函数?

任何显示如何执行此操作的片段/指针将非常感激.

c c++ lua

16
推荐指数
3
解决办法
8468
查看次数

如何在MacOS上安装Lua?

我刚从官方网站上下载了Lua.

我想在我的Mac上安装它,但我不知道如何.我从来没有尝试过使用Mac来安装和使用其他编译器(xcode,titanium,corona),这对我来说很容易:)

我试过这个链接,但它不起作用.

还有一个完全指导如何在Mac上安装和开始使用Lua?因为我看到的只是windows:S

注意:在我问这个问题之前,我搜索过SOV,但是我找不到答案.

macos lua

16
推荐指数
3
解决办法
4万
查看次数

获取Lua的当前工作目录

Lua在Windows XP SP3上获取当前工作目录(或获取当前运行的Lua文件的目录)是什么?我不想使用LuaFileSystem.

我无法使用os.execute("cd")因为os.execute总是从我的主目录开始(因此总是产生C:\Documents and Settings\username).

lua windows-xp getcwd

16
推荐指数
4
解决办法
3万
查看次数

在objc和lua之间建立一个简单的桥梁?

我已经将Lua与我的ObjC代码(iphone游戏)集成在一起.设置非常简单,但现在,我对桥接有一点问题.我搜索结果等等......似乎没有任何东西可以在没有修改的情况下工作.我的意思是,我已经检查了luaobjc桥(看起来相当古老和连续),我听说LuaCocoa但它似乎不适用于iPhone,蜡太厚了.

我的需求非常多,我只需要能够从lua调用objc方法,并且不介意做额外的工作以使其工作(我不需要一个完全自动的桥接系统).

所以,我决定自己建立一个小桥,基于这个页面http://anti-alias.me/?p=36.它有关于如何完成我需要的关键信息,但教程没有完成,我对从lua等调用时如何处理方法重载有一些疑问......

有人知道在iPhone上的objc和lua之间是否存在任何工作桥梁,或者是否可能很难完成上述网站提供的桥接?

任何信息都将受到欢迎.

iphone lua objective-c cocos2d-iphone ios

16
推荐指数
1
解决办法
4166
查看次数

Lua 5.2 LUA_GLOBALSINDEX替代方案

我有一个嵌入Lua的程序,并实现了一种惰性函数查找.

它在Lua 5.1中的工作方式,只要符号未定义,解释器就会调用一个全局函数钩子来解析符号.

这是实现这个惰性函数查找的C代码的一小部分:

int function_hook(lua_State *pLuaState)
{
  // do the function lookup here
  ....
  return 1;
}

......

//-- create table containing the hook details
lua_newtable(pLuaState);
lua_pushstring(pLuaState, "__index");
lua_pushcfunction(pLuaState, function_hook);
lua_settable(pLuaState, -3);

//-- set global index callback hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
Run Code Online (Sandbox Code Playgroud)

我现在正试图将此代码移至Lua 5.2并遇到问题.

在Lua 5.2中,不再定义LUA_GLOBALSINDEX值,因此这行代码不再编译.

//-- set global call back hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
Run Code Online (Sandbox Code Playgroud)

LUA_GLOBALSINDEX 有一个对此更改的引用,但不幸的是它没有帮助.

重写这一行代码以便解释器在找到未解析的符号时调用function_hook的最佳方法是什么?

c lua

16
推荐指数
1
解决办法
1万
查看次数

现代VM如何处理内存分配?

我正在研究用C编写的简单堆栈机器,主要用于学习目的.在malloc/free用于我的内存操作后,我认为从现代虚拟机中读取一些特定于内存分配的代码是个好主意.

我下载了Lua源代码并开始阅读它.过了一会儿,我意识到涉及很多宏的东西,我找不到真正的内存分配完成的代码(即malloc调用).

find . -exec grep -i "malloc" '{}' \; -print
Run Code Online (Sandbox Code Playgroud)

它只打印了一些malloc名字中包含单词的Lua宏.Lua VM(和编程语言)根本不使用malloc!

所以这引出了一个问题:现代虚拟机如何处理内存分配?Lua如何从堆中分配内存?除了以外有什么方法可以分配malloc吗?其他方法的优缺点是什么?

我也想知道安全地处理分配的内存的最佳实践,设计模式等.我在Lua的源代码中看到,在分配内存之前有很多间接.我在哪里可以了解这些东西?

c lua memory-management vm-implementation

16
推荐指数
2
解决办法
2412
查看次数

math.atan2的倒数?

什么是函数的反函数

math.atan2
Run Code Online (Sandbox Code Playgroud)

我用这个在LUA哪里可以得到的逆math.atan通过math.tan.
但我迷失在这里.

编辑

好的,让我提供更多细节.

我需要计算2点(x1,y1)和(x2,y2)之间的角度

local dy = y1-y2 
local dx = x1-x2
local angle = atan2(dy,dx)* 180 / pi
Run Code Online (Sandbox Code Playgroud)

现在如果我有角度,是否有可能回到dy和dx?

math lua trigonometry

16
推荐指数
2
解决办法
1万
查看次数

Python中的协程如何与Lua中的协程相比?

对于在Lua协程的支持是由提供的功能在coroutine表,主要是create,resume和yield.开发人员将这些协同程序描述为堆栈,一流和非对称.

协程也可在Python,或者使用增强发电机(和yield from)或在3.5版本中增加,async和await.

Python中的协程如何与Lua中的协程相比?它们是堆叠的,一流的还是不对称的?

为什么Python的需要如此多的结构(async def,async with,async for,异步内涵,...)的协同程序,而Lua中能为他们提供只有三个内建的功能呢?

python lua asynchronous coroutine async-await

16
推荐指数
1
解决办法
1242
查看次数

你如何用lua构建一个读写管道?

我想做相当于:

foo=$(echo "$foo"|someprogram)
Run Code Online (Sandbox Code Playgroud)

在lua中 - 也就是说,我有一个包含一堆文本的变量,我想通过一个过滤器运行它(在python中实现它).

任何提示?

补充:真的很想不使用临时文件

lua pipe

15
推荐指数
4
解决办法
2万
查看次数