Workshop Chronology

About Conference

The Lua in Moscow Conference 2017 was held in  Moscow, Russia, on  March 5, 2017.

The main goal of the conference is to allow the Lua community to get together and meet in person and talk about the Lua language, its uses, and its implementation. The conference is open to everyone interested in Lua.

The spoken language of the conference is Russian. Some talks will be presented in English, without translation. See the schedule.


Sunday, March 5th

10:00—10:50 Functions in Lua Roberto Ierusalimschy
13:00—13:50 The rocky road to mcode Javier Guerra Giraldez
14:00—15:00  Lunch
18:00—18:50 Q&A session


  Functions in Lua
Roberto Ierusalimschy PUC-Rio

First-class functions (a.k.a. closures, lambdas, anonymous functions) are a hallmark of functional languages, but they are a useful concept in imperative languages, too.

In most imperative languages, however, first-class functions are an advanced feature used by seasoned programmers. Lua, by contrast, uses first-class functions as a building block of the language. Lua programmers regularly benefit from diverse properties of its functions for routine constructions such as exception handling, module definitions, object-oriented programming, and iterators. Moreover, first-class functions play a central role in the API between Lua and C.

In this talk, we will discuss how the mechanism of first-class functions has impacted the design of Lua and will also glimpse at its implementation.

  Challenges Building Yet Another Lua Implementation
Anton Soldatov IPONWEB

Vanilla Lua interpreter (aka PUC-Rio Lua) is quite fast, and Lua as a language is designed to be easily embeddable into other systems. But sometimes there is still a need for an alternative language implementation: For example, there may be strict business requirements about performance. At first glance, Lua ecosystem provides means for building custom implementations of the language: There is a Reference Manual which covers the language, including libraries and APIs. There are also test suites (both official and third-party) for evaluating compliance.

However, while working on a custom Lua implementation, we have faced certain problems which I'd like to discuss in this talk with the focus on:

• Interpreting the Reference Manual and integrating the official test suite;
• Choosing among multiple third party validation suites;
• Ensuring compliance for APIs provided by the Lua standard libraries.

  Using Lua as a language for fault-resistant distributed backend web-applications
Konstantin Osipov Tarantool

Tarantool - DBMS and high-load applications server, so it has special requirements to language. Reliability and performance - are main values but ease of use is very valued too. Lua, more specifically LuaJIT 2.1 is our main application language for today. Recently we added support also for Rust, Swift, C and C++. We have unique experience of "using" Lua as constantly investigating accidents and crashes from Tarantool users, which occurs both in production and developments stages. So we've got a quite complete picture of requirements for ideal language for back-end.

So my talk will be dedicated to hypothetical requirements for "ideal" language: - reliability: program must never end of host process. - predictability: garbage collection and runtime actions should be predictable for developer. - security - language syntax should be safe in runtime. This concerns usage of undeclared variables and also type system, specifically behavior at division by 0 or at overflow.

Can Lua become such language?

  The rocky road to mcode
Javier Guerra Giraldez Cloudflare

LuaJIT can run Lua at amazing speeds, but it's often hard to know what it really does and when, leading to mystification and cargo cults. Here we follow step by step the journey from Lua source code to the final machine code actually executed, using Loom as a visualization and learning tool.

  Build airplane yourself! Experience of prototyping online-marketing tools with Lua
Dmitry Potapov LogicEditor

Today there are a plenty of tools for Internet-advertisement analysis – Google Analytics, Yandex.Metrika etc. No less them for management and automation of context-advertisements: R-broker, K50, Alytics etc. These tools are good enough for their tasks. When development of own toolset makes sense? How this toolset may look like, in what sequence it should be created, what side projects may be useful? Basing on self-experience, author will try to answer for these and other questions.

  Hard work of making native plugins for a crossplatform game engine
Sergey Lerg Spiral Code Studio

Lua is a beautiful language, it makes complex things easy. In crossplatform game engines one Lua function can lead to hundreds of lines of native code (C++/Java/Obj-C) which are hidden from the game developer and let focus on the end product.

In this talk I show how I create native plugins for the Corona SDK game engine, how different implementations of the same thing on different platforms turn into beautiful uniform Lua API.

  How to make Lua-developers life better and more pleasant?
Artyom Zotov IPONWEB

IPONWEB develops cross-platform solutions for online advertising market and offers it for clients via SAAS model. Business logic is implemented in Lua so IPONWEB seeks and hires Lua developers.

search on for vacancies with Lua keyword returns near 700 CVs. Compare it with results for other keywords: Perl: 9000 CVs, Python: 14 000 CVs, PHP: 55 000 CVs. On job market are very few developers with Lua experience. IPONWEB business grows very rapidly in recent years and company need to hire more and more new Lua-developers. What should be done? Creation of ideal conditions for work and professional development. How we are doing it? This is what my presentation will be about :)


The conference is organized by Alexander Gladysh and the sponsors below.

Sponsored by

Contact Us