LUA TIP

  1. lua-zmp
  2. luajit  FFI库,直接lua脚本中写C语言,省去bind或自己写userdata。
  3. LuaRocks  Versioned Components For Lua   第3方包管理工具。
  4. lrexlib 正则表达式库
  5. LOOP:Lua Object-Oriented Programming
  6. LuaNode  Asynchronous I/O for Lua
  7. c++ lua wrapper

    oolua, luabind,tolua

    OOLua is quicker than ToLua++ and Luabind, and it won’t need to have boost as Luabind, won’t to have complex build steps as ToLua++.

  8. lua debuger

    rldb
    http://luaforge.net/projects/rldb/

    decoda

    http://www.unknownworlds.com/decoda

    remdebug

    http://www.keplerproject.org/remdebug/

    lldebug

    http://luaforge.net/projects/lldebug/
    http://kneo.blogbus.com/logs/24242949.html
    http://code.google.com/p/lua-debugger/
    http://www.cppblog.com/airtrack/archive/2011/01/06/137825.html
    http://blog.csdn.net/pankun/archive/2009/04/07/4055614.aspx
    hrld

  9.  lua 反编译  luadec

  10. lua 单元测试

    lmock

    http://luaforge.net/projects/lmock

    luaunit

    1. require"luaunit"  
    2. require"lmock"  
    3. function foo() error() end  
    4. function invoke_foo() return foo("lua") end  
    5. Test = {}  
    6. function Test:testInvokeFoo()  
    7.   local mock = lmock.create()  
    8.   mock:method( "foo" )  
    9.     :expects( lmock.once() )  
    10.     :with( lmock.eqx("lua") )  
    11.     :will(10)  
    12.   local rst = mock:run( invoke_foo , "lua" )  
    13.   assert_equals( rst , 10 )  
    14.   mock:verify()  
    15. end  
    16. LuaUnit:run()  

     

  11. IDE : DForD LuaCoding
  12. 获取当前文件名 debug.getinfo(1).source
  13. lua中只有table和full userdata有不同的metatable。其他类型都是:一个类型共享一个metatable。比如number, string各自有自己的metatable。以及所有的lightuserdata,由于是void *,即使放入的是不同的类型,也是视为一个类型,共享一个metatable;所以给null的lightuserdata设置metatable,等同于给所有lightuserdata设置了metatable。"lua_pushlightuserdata(L,NULL);放入metatable;    lua_setmetatable(L,-2);"
  14. lua的一个C库,dll或so。源码中对lua开放的就一个函数,require这个库的时候,等于调用这个函数。所以这个函数push了几个值到lua栈,就等于返回几个值。目前看到都是只push一个值的:一种是push只有一个函数,一种是push一个table可以含有一堆函数。使用的时候在lua内用一个local xxx = require "xxx"。
  15. lua的库,开放的函数必须 为 int _EXPORT luaopen_XXX (lua_State* L)  XXX和文件名必须一样,不然会出现error loading module “XXX”  from file的错误。

你可能感兴趣的:(LUA,lua,asynchronous,components,正则表达式,单元测试,equals)