话题编程语言 › Lua

编程语言:Lua

Lua强语言的设计与实现

MLN是一款基于Lua的跨平台框架,伴随着使用范围的不断扩大,我们充分体会到跨平台框架给项目开发带来的灵活性和便捷性。但由于Lua语言是一种动态解释的轻量级语言,他自身的语法和语义都比较简单,也不支持面向对象,因此在使用MLN开发项目时,会遇到一些Lua语言本身的限制,比如不支持类型检查,不支持类和继承,不支持泛型,不支持重载等等,这些限制会给开发带来一些困难。尽管我们可以通过一些技巧来解决这些问题,比如通过元表来实现类和继承,通过闭包来实现泛型,通过函数指针来实现重载等等,但是这些技巧都有一些不可避免的限制,也给代码开发产生了许多麻烦,所以我们需要一种更加强大的方式来解决这些问题。

因此我们设计出一套基于Lua的强语言,他的语法接近于现代的Kotlin语言,支持类型检查,类和继承,泛型,重载等特性,并在Lua强语言的基础上,重新设计MLN的项目结构,提供对应的语言开发插件,从而让开发者能够更加专注于业务逻辑的开发,而不是在繁琐的代码实现上浪费太多的精力。在设计过程中,我们还考虑到了和旧项目的兼容问题,提供与Lua进行混合编译的能力,从而让开发者可以在不改动旧项目的情况下,逐步迁移项目到Lua强语言的实现上。

本文章会介绍Lua强语言的设计思路和编译器的具体实现,希望能够给大家带来一些启发。

lua覆盖率测试概述

随着lua在公司各业务中落地范围的逐步扩大,我们对lua项目的质量要求与标准也在不断提高,为此,我们提供了应用于黑盒测试阶段的lua结构化测试方法,在业务测试的过程中,通过代码覆盖率技术收集代码的执行数据来完成qa测试过程与代码测试质量的量化。但在过去两年多的业务演进中,接入方的工程类型、结构、业务特性呈现出越来越多的多样化发展,导致lua覆盖率工具接入的兼容成为急需解决的问题,因此需要我们做进一步兼容与升级。

2.3x faster using the Go plugin to replace Lua virtual machine

We’re excited to share with you the latest update on our open-source project Talaria. In our efforts to improve performance and overcome infrastructure limitations, we’ve made significant strides by implementing the Go plugin to replace Lua VM.

Our team has found that the Go plugin is roughly 2.3x faster and uses 2.3x less memory than the Lua VM. This significant performance boost has helped us improve overall functionality, scalability, and speed.

For those who aren’t familiar, Talaria is a distributed, highly available, and low-latency time-series database that’s designed for Big Data systems. Originally developed and implemented at Grab, Talaria is a critical component in processing millions and millions of transactions and connections every day, which demands scalable, data-driven decision-making.

Lua AST静态分析探索

在日常测试中,我们不乏遇到一些修改了问题A却产生问题B,而且这两个问题间的联系并不是那么直观的情况。

面对此类问题,有没有办法通过自动化的方式,将改动关联的功能展示出来,推荐给功能测试同学进行回归呢?

初探OpenResty

目前OpenResty大多用在API网关的开发中,当然也可以用来替代Nginx,用于反向代理和负载均衡的场景。

Uncovering the truth behind Lua and Redis data consistency

Redis does not guarantee the consistency between master and its replica nodes when Lua scripts are used. Read more to find out why and how to guarantee data consistency.

深入理解 Lua 虚拟机

详细讲解 Lua 字节码文件的存储结构及各字段含义

OpenResty原理剖析及应用

​OpenResty通过汇聚各种设计精良的Nginx模块,从而将Nginx有效地变成一个强大的通用Web应用平台。

一个尾调用相关的诡异报错信息

一个 OpenResty 的接口报错了,我查了一下日志,发现如下报错信息: bad argument #1 to ‘test’ (string expected, got userdata) 看上去这就是一道送分题啊:无非就是 test 函数的第一个参数类型应该是 string,实际传递的却是 userdata。就当我觉得可以轻而易举解决问题的时候,突然发&

Writing a DSL in Lua

DSLs, or domain specific languages, are programming languages that are designed to implement a set of features specific to a particular problem or field. An example could be Make , the build tool,…

Redis进阶实践之七Redis和Lua初步整合使用

一、引言 Redis学了一段时间了,基本的东西都没问题了。从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功

A Look at the Design of Lua

Credit: Bug Fish Lua is a scripting language developed at the Pontifical Catholic University of Rio de Janeiro (PUC-Rio) that has come to be the leading scripting language for video games…

Nginx Lua日志收集

本文由美丽联合安全小哥哥JoyChou提供~

谈谈基于 OpenResty 的接口网关设计

@yishuailuo 2017-09-15 09:35 字数 9597 阅读 22796 谈谈基于 OpenResty 的接口网关设计本文讲述基于 OpenResty 的接口网关设计,主要谈及接口网关的请求路由与安全认证ÿ

Nginx Lua Web Application Security

Lua与C++交互及相互调用示例

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-22 22:57
浙ICP备14020137号-1 $Map of visitor$