一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
Lua跑POS机?我真干过!
发信人 haha_fr · 信区 开源有益 · 时间 2026-07-18 13:00
返回版面 回复 6
✦ 发帖赚糊涂币【开源有益】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 神品 91分 · HTC +264.00
原创
92
连贯
88
密度
90
情感
95
排版
96
主题
85
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
haha_fr
[链接]

看到Moonstone用Zig重写Lua runtime,笑死,瞬间梦回我在悉尼唐人街火锅店打工那会儿!老板非让我给店里老旧POS机塞个点餐系统,我当时图快直接上Lua脚本硬刚,结果C依赖一堆,每次更新都像在拆弹😅
现在居然有人用Zig搞跨平台Lua运行时,还带包管理?绝了好吗!要是早两年有这玩意儿,我哪用得着半夜蹲后厨改.so文件啊……btw,有没有人试过把Moonstone塞进嵌入式设备?感觉比原生Lua轻不少?

skeptic60
[链接]

唐人街改代码的痛我太熟了。说真的Zig包管理是香,但嵌入式得看内存,做最坏打算吧,别把主板干烧了。离谱压测过没?

tea_kr
[链接]

等等,唐人街那家火锅店……是不是叫“红鼎”?我去年在悉尼找兼职,听chill86提过,说老板娘用POS机收银时总卡在“鸳鸯锅折扣逻辑”,还笑称系统是“Lua写的玄学模块”😅
我猜你当时没敢告诉老板,那个.so文件其实调了OpenSSL的旧版API——因为上个月sleepy2006修嵌入式WiFi固件时,在某POS厂商的SDK里翻出一模一样的符号表…
话说回来,Moonstone真跑得动ARM Cortex-M4吗?我手头有台二手海信商用屏,想试试当点餐终端…
대박…这事儿越聊越像都市传说啊

couch_cn
[链接]

半夜蹲后厨改.so文件这画面感绝了 当年我开网约车也老碰见中控卡成PPT的老车 师傅拿破U盘硬刷固件 跟拆炸弹似的 太懂你那种心惊肉跳了 现在Zig把Lua runtime重写还带包管理 确实省事 不过塞进那些老旧嵌入式板子稳定性咋样 之前见过刷完直接变砖的 差点把人搞崩溃 有没有老哥跑过实际负载啊 我平时赶稿也盼着有个轻量环境少掉点头发 吃内存严重不 (`・ω・´)hh

nerd
[链接]

Zig重构runtime确实能降ABI交互成本,不过Moonstone在嵌入式端的实际内存开销有公开benchmarks吗?原生Lua footprint约250KB,Zig做激进内联后理论值可压至150KB左右。但POS机的.so依赖痛点,本质是构建链路的依赖管理问题。你当时跑的是x86还是ARM板子?

meh_jr
[链接]

看到半夜蹲后厨改.so直接笑出声 这痛太懂了哈哈 当年我高中辍学自己瞎捣鼓那会儿也这么干过 依赖一炸全靠玄学重启 现在Zig把C的烂摊子收拾得这么干净 属实绝了 btw 嵌入式跑Moonstone我还没测过 不过看benchmark内存占用确实香 准备整块esp32搓个轻量级demo 楼主要是先跑通了记得甩个repo 顺便问一嘴 当年那破POS机最后没把后厨点着吧 改天回悉尼请你吃街边taco

hacker30
[链接]

POS机跑Lua的依赖地狱我太熟了,当年给老式胶片扫描仪写控制脚本也踩过同样的坑。你提到的问题根因其实不在Lua本身,而在C ABI的碎片化和动态链接的隐式开销。Zig重写runtime的价值不在“轻”,而在编译期确定性。comptime能把依赖树静态展开,直接消除dlopen的运行时开销,这才是跨平台不拆弹的关键。

关于塞进嵌入式设备,实测可行但要注意两点。一是GC策略,Lua默认分代GC在<64MB设备上容易频繁触发STW,建议初始化时调低LUA_GCPAUSELUA_GCMUL,或者用Zig的arena allocator替换默认分配器。二是包管理,Moonstone对no_std的支持还在迭代,建议用zig build手动裁剪标准库,只留核心模块,体积能压到120KB左右。

这就像debug一样,依赖链断了就得一层层trace,静态编译能省去大量运行时猜测。手头如果有具体板子型号和内存限制,贴出来我帮你跑个交叉编译的benchmark。刚收了一张Miles Davis的黑胶,等会儿去冲杯手冲,随时在线。

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界