所有报告和研讨会均将以英文进行,无需同时翻译。
在创建编程语言时,需求中的矛盾通常会迫使作者折衷解决方案。 这在开发世界中很常见。 不同的语言以不同的方式折衷,这使得每种语言更适合某些场景,而对其他场景的吸引力较小。Lua语言有一组目标,它确定了设计方向。 优先考虑可嵌入性,小尺寸,简单性和可移植性。 还有其他目标,例如性能和非专业程序员的易用性。作为报告的一部分,我们将讨论这组目标的影响。 我们将看到这些目标如何影响语言本身,其使用以及其在各个领域中应用的可能性。
异步事件循环是扩展网络服务器的一种行之有效的方法。 nginx(就像其他成功的产品一样)基本上使用了这种特殊技术。 但是,其性能取决于关键条件:业务逻辑的制定时间不能太长,否则总体性能会迅速下降。Cloudflare的边缘服务器非常依赖OpenResty (nginx + Lua +库)。 同时,可预测的性能至关重要。 这需要从事件循环中删除一些复杂的处理部分。 通常,以前是通过编写微服务来完成的。 Cloudflare尝试了另一种方法:使用nginx线程池函数 。 该报告将详细描述从事件周期中提取基本安全功能的问题和结果。
每种编程语言都有自己的生态系统,这对于社区的福祉至关重要。 应用程序开发不仅要编写代码,还要测试代码,优化并与他人共享信息。 Tarantool项目中有很多开发人员每天都在与Lua合作。在演讲中,我们将在Tarantool团队中讨论Lua开发的各个方面:对开发人员来说,编写线性代码有多方便?他们使用哪些工具进行调试和测试?如何成功准备文件并收集包裹?同样重要的是,它们仍然缺少哪些功能?
无法在Lua中编写着色器,但是可以使用此语言控制它们。 该报告的目的是演示如何使用GLSL和Lua轻松创建惊人的效果。 此外,还将提供有关在Defold游戏引擎上使用着色器的有用提示和建议。
Dynasm是用于多种架构(x86,x86_64等)的机器代码生成器。它由两部分组成:用C编写的机器代码生成器和Lua上的汇编程序预处理器。原始预处理器仅适用于汇编器或C中的源代码。另外,luapower提供了一个分支,可以使用汇编代码生成器对Lua文件进行预处理。在某些情况下,有必要使用来自用户输入的逻辑。 我们将研究这个工具包,并创建一个简单的s表达式编译器。主要问题:“创建用于用户输入的编译器有多方便。”
IPONWEB使用自己的Lua实现。 该项目是从LuaJIT 2.0分叉而来,具有所有限制。 特别是,JIT编译器不支持pairs和next函数。 但是,在我们的Lua代码库中,这是中断跟踪编译的三大原因之一,这导致强制在代码样式和应用程序性能之间进行权衡。该报告计划:告诉调用库函数JITable是什么意思;说明在LuaJIT中pairs和next的实现的细节;讨论使编译pairs成为可能的JIT限制,以及next艰巨任务;演示解决此问题的进度。
pairs
next
JITable
罗伯托的奖金报告。
乍一看,Tarantool是一个数据库。 而且很难看到该产品作为应用服务器的全部潜力。该研讨会旨在展示Tarantool功能的这一部分:如何将内置的LuaJIT服务器与套接字,光纤,通道,ffi等配合使用? 如何使代码即时重载? 这些主题将在构建队列服务器的示例中逐步研究。
平台游戏是一种非常流行的游戏类型。 其中一些很简单,另一些则非常复杂。 在研讨会的框架中,我将展示如何在Defold游戏引擎上创建基本平台游戏。 关于该主题的大多数培训材料的作者都倾向于简化一切并手动显示级别的创建,而这些级别可以自动生成,并且在根本不需要它时也使用物理引擎。
Source: https://habr.com/ru/post/zh-CN441364/More articles:CI / CD模式和反模式。 第二部分如何理解“外国”法规并加入新团队?推出首款Beresheet商业登月器Openshift-红帽工艺品Kibana用户指南。 可视化。 第三部分商店是否需要时尚Crossell:Retail Rocket在图像分析方面的经验来提出建议海王星以前看不见的月亮是什么样的?无所畏惧的保护。 Rust中的线程安全[星期五]如何用物理炸鸡超越纯度:什么可以和什么不能逆渗透膜All Articles