What's OOP on earth? How to do it in Lua? And what's Lua Class Lib? Let's have an interesting tour to OOP in Lua.
继续阅读 »
xmake里面的lua脚本加载插件,可以让你方便调试和编写一些自定义的lua脚本,这个时候xmake就是一个纯lua的加载引擎。。
例如,我想写个简单的hello xmake!的lua脚本,可以自己建个 hello.lua 文件,编写如下脚本:
lua
function main()
print("hello xmake!")
end
main是入口函数,就跟平常写c类似,然后加载执行下这个lua脚本就行了:
bash
xmake lua /home/xxx/hello.lua
or xmake l /tmp/hello.lua
下面在来个稍微高级点的,我要传递
继续阅读 »
客户端提出搞一个日志上传的接口,方便向服务端提交日志,研究了一下,决定用Nginx嵌入Lua的方式搞。
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。业余时间使用过,感觉小巧轻快,代码风格和Python一样简洁优雅。在Nginx中内嵌Lua,需要你重新编译安装Nginx,加上ngx_lua模块,同时需要安装LuaJIT,可以看看这篇文章"Nginx与Lua"。
安装好相关的模块后,Nginx配置如下:
location ~ /upload { # 调用的路由
# 转到后台处理URL
upload_pass /uploadHandle;
继续阅读 »
之前在给xmake做构建的效率优化的时候,需要对lua脚本的api调用性能进行分析,分析出最耗时一些lua调用api,
找出性能瓶颈,来针对性地进行优化,那么问题来了,如果对lua脚本像c程序那样进行profile呢?
我们现在看下最后实现完的最终效果:
4.681, 98.84%, 1, anonymous : actions/build/main.lua: 36
3.314, 69.98%, 1, anonymous : actions/build/main.lua: 66
3.314, 69.98%,
继续阅读 »
本文针对希望了解Lua或者迅速抓住Lua的关键概念和编程模式的有经验的程序员,因此不打算教给读者诸如条件语句的语法或者函数定义的方式等等显而易见的东西,以及一些诸如变量、函数等现代编程语言普遍的基本概念。本文只打算告诉读者Lua那些与众不同的特性以及它们实际上带来了怎样颠覆以往的、独特的编程思维方式。
继续阅读 »
lua原生并没有提供try-catch的语法来捕获异常处理,但是提供了pcall/xpcall等接口,可在保护模式下执行lua函数。
因此,可以通过封装这两个接口,来实现try-catch块的捕获机制。
我们可以先来看下,封装后的try-catch使用方式:
```lua
try
{
-- try 代码块
function ()
error("error message")
end,
-- catch 代码块
catch
{
-- 发生异常后,被执行
function (errors)
print(errors)
end
}
}
```
上面
继续阅读 »
LTUI是一个基于lua的跨平台字符终端UI界面库。
此框架源于xmake中图形化菜单配置的需求,类似linux kernel的menuconf去配置编译参数,因此基于curses和lua实现了一整套跨平台的字符终端ui库。
而样式风格基本上完全参照的kconfig-frontends,当然用户也可以自己定制不同的ui风格。
另外,LTUI是完全跨平台的,windows上的terminal终端也是完全支持的,在windows上ltui会采用pdcurses来进行窗口绘制。
Github
更新内容
新版本中,我们主要增加了对鼠标事件的支持,除了 curses/ncurses,我们还对 windows 上 pdcurses 也
继续阅读 »
A simplest xmake.lua
```lua
-- define a target with named 'demo'
target("demo")
-- set the target kind, .e.g 'binary' is a console program
-- - static: a static library
-- - shared: a shared library
set_kind("binary")
-- add all c source files in the directory: src
add_files("src/*.c"
继续阅读 »
LTUI是一个基于lua的跨平台字符终端UI界面库。
此框架源于xmake中图形化菜单配置的需求,类似linux kernel的menuconf去配置编译参数,因此基于curses和lua实现了一整套跨平台的字符终端ui库。
而样式风格基本上完全参照的kconfig-frontends,当然用户也可以自己定制不同的ui风格。
另外,LTUI是完全跨平台的,windows上的terminal终端也是完全支持的,在windows上ltui会采用pdcurses来进行窗口绘制。
Github
更新内容
新版本中,我们改进了对鼠标的支持,实现对所有控件的鼠标事件点击响应,这里我们非常感谢 @laelnasan 贡献。
另外我们新
继续阅读 »
xmake通过import接口,可以在自定义脚本中导入各种内置类库和扩展类库模块,使得xmake的插件开发具有更多的灵活性,提供更丰富的功能。
我们先看下,目前xmake提供的一些类库:
.
├── _g.lua
├── assert.lua
├── catch.lua
├── coroutine.lua
├── debug.lua
├── finally.lua
├── format.lua
├── ifelse.lua
├── import
│ └── core
│ ├── base
│ │
继续阅读 »