Conference program Lua in Moscow 2019
As we reported in the previous announcement , the 3rd international conference Lua in Moscow 2019
will be held at the Mail.ru Group office on March 3 (Sunday). The conference will be held in 2 streams: reports and seminars.
All reports and seminars will be in English without simultaneous translation.
Reports (meeting room # 1)
10:30 Start of registration
11:00 - 11:45 “Why (and why not) Lua / Why Lua (and why not)”, Roberto Jerusalem, PUC-Rio
When creating a programming language, contradictions in requirements often push authors to compromise solutions. This is a common occurrence in the development world. Different languages come to a compromise in different ways, which makes each language more suitable for some scenarios and less attractive for others.
There is a set of goals for the Lua language, which determines the direction of design. Priority is given to embeddability, small size, simplicity and portability. There are other goals, such as performance and ease of use by non-professional programmers.
As part of the report, we will discuss the impact of this set of goals. We will see how these goals affect the language itself, its use, as well as the possibility of its application in various fields.
12:00 - 12:45 "resty-threadpool: reinventing Apache in nginx / resty-threadpool: new reading of Apache in nginx", Julien Desgats, CloudFlare
Asynchronous event loops are a proven way to scale network servers. nginx (like other successful products) basically uses this particular technique. However, its performance depends on a key condition: the business logic should not be worked out for too long, otherwise the overall performance drops rapidly.
In Cloudflare rely heavily on OpenResty (nginx could the Lua + + libraries) in all that relates to edge servers. At the same time, predictable performance is critical. This requires removing some of the complex processing parts from the event loop. As a rule, this was previously done by writing microservices. Cloudflare tried a different approach: use the nginx thread pool function. The report will describe in detail the problems and results of extracting the basic security functions from the event cycle.
13:00 - 14:00 Lunch
14:00 - 14:45 “Tarantool team's experience with Lua developer tools / Experience of the Tarantool team with development tools in the Lua language”, Yaroslav Dynnikov, Mail.ru Group
Each programming language has its own ecosystem, which is important for the well-being of the community. Application development is not only writing code, but also testing it, optimizing and sharing information with other people. There are many developers in the Tarantool project who work with Lua every day.
During the talk, we will discuss various aspects of the development of Lua in the Tarantool team:
- How convenient is it for developers to write linted code?
- What tools do they use for debugging and testing?
- How to successfully prepare documentation and collect packages?
- And, just as importantly, what features do they still lack?
15:00 - 15:45 “Shaders and Lua / Shaders and Lua”, Sergey Lerg, Spiral Code Studio
It is not possible to write shaders in Lua, but you can control them using this language. The purpose of the report is to demonstrate how you can easily create stunning effects using GLSL and Lua. In addition, useful tips and advice on working with shaders on the Defold game engine will be given.
15:45 - 16:15 Coffee break
16:15 - 17:00 “Intro to dynasm from luajit / Introduction to dynasm from luajit”, Mikhail Filonenko, Mail.ru Group
Dynasm is a machine code generator for several architectures (x86, x86_64, etc.).
It consists of two parts:
- machine code generator written in C
- and assembler preprocessor on Lua.
The original preprocessor only works with sources in assembler or C.
In addition, there is a fork from luapower that can pre-process Lua files using assembler code generators.
In some cases, it is necessary to use the logic from user input. We will look at this toolkit and create a simple s-expression compiler.
The main question: "How convenient is it to create a compiler for user input."
17:15 - 18:00 “Challenges of 'pairs' and 'next' JIT compilation / Compilation problems 'pairs' and 'next' in JIT", Maxim Bolshov, IPONWEB
IPONWEB uses its own implementation of Lua. The project was forked from LuaJIT 2.0 with all limitations. In particular, the functionspairs
andnext
were not supported by the compiler JIT. However, in our Lua codebase, this is in the top 3 reasons for interrupting trace compilation, which leads to forced tradeoffs between code style and application performance.
The report plans:
- to tell what it means to call a library function
JITable
;- explain the specifics of implementation
pairs
andnext
in LuaJIT;- tell JIT restrictions that make compilation
pairs
andnext
non-trivial task;- demonstrate the progress of solving this problem.
18:15 - 19:00 “Garbage collection in Lua”, Roberto Jerusalem, PUC-Rio
Bonus report from Roberto.
19:15 - 20:00 Round table with all speakers
Seminars (cinema hall)
14:00 - 15:45 “Tarantool use cases for rich applications / Tarantool use cases for multifunctional applications”, Vladimir Perepelitsa, Mail.ru Group
At first glance, Tarantool is a database. And it’s quite difficult to see the full potential of this product as an application server.
The seminar is designed to reveal this part of Tarantool’s capabilities: how to use the built-in LuaJIT server with sockets, fibers, channels, ffi, etc.? How to make code reload on the fly? These topics will be examined step by step on the example of building a queue server.
16:15 - 18:15 “Making a simple platformer with Defold”, Sergey Lerg, Spiral Code Studio
Platformers is a very popular game genre. Some of them are simple, others are quite complex. In the framework of the seminar, I will show how to create a basic platformer on the Defold game engine. The authors of most training materials on this topic tend to simplify everything and show the creation of levels manually, while they can be generated automatically, and also use a physics engine when it is completely unnecessary.
The entrance is free.
Registration is required.
Address: office of Mail.ru Group, Leningradsky pr., 39, p. 79.
We are waiting for you at Lua in Moscow 2019!