О конференции


Конференция Lua in Moscow 2019 состоялась в  Москве,  3 марта 2019г.

Цель конференции — собрать вместе Lua-сообщество, чтобы его представители могли встретиться лично и обсудить язык Lua, его использование и применения. Главным гостем и докладчиком конференции был Роберто Иерусалимский, создатель языка Lua и профессор PUC-Rio.

Рабочим языком конференции являлся английский.

События конференции


Подпишись


Программа конференции


Доклады
Large Conference Room

11:00—11:45
Roberto Ierusalimschy
12:00—12:45
Julien Desgats
13:00—13:45
Tarantool team’s experience with Lua developer tools
Yaroslav Dynnikov
14:00—15:00
Обед
15:00—15:45
Sergey Lerg
15:45—16:15
Кофебрейк
16:15—17:00
Michael Filonenko
18:15—19:00
Roberto Ierusalimschy
19:15—20:00
Круглый стол
Воркшопы
Cinema Hall

13:00—14:00
Mons Anderson
14:00—15:00
Обед
15:00—15:45
Mons Anderson
16:15—18:15
Sergey Lerg

Тезисы


Roberto Ierusalimschy

  Why (and why not) Lua
Roberto Ierusalimschy PUC-Rio
 Slides

The design of a programming language, as that of any other artifact, entails many tradeoffs involving conflicting requirements. Different languages solve these tradeoffs in different ways, making each more appropriate for some scenarios and less attractive for other settings.

Lua has its own set of goals, which guides its design. This set prioritizes embeddability, small size, simplicity, and portability. (There are other goals, too, such as performance and ease of use by non-professional programmers.)

In this talk, we will discuss the impact of this set of goals. We will see how these goals impact the language itself, how it impacts its uses, and how it impacts its suitability for different application domains.

Julien Desgats

Resty-threadpool: Reinventing Apache in nginx
Julien Desgats CloudFlare
 Slides

Asynchronous event loops are a proven way to scale network servers, nginx (among many other successful products) use this technique at its core. However its performance depends on a key assumption: the business logic must not run for too long, otherwise the overall performance collapses quickly.

At Cloudflare[1], we rely heavily on OpenResty[2] (nginx+Lua+libraries) for our edge servers and ensuring a predictable performance is critical. Offloading some complex parts of the processing outside of the event loop is therefore necessary and was usually done by writing microservices. We tried another approach leveraging the nginx thread pool feature [3]. In this talk I will go in detail about the the challenges and results of taking core security features out of the event loop.

Yaroslav Dynnikov

Tarantool team’s experience with Lua developer tools
Yaroslav Dynnikov Mail.Ru Group
 Slides

Every programming language has its own ecosystem, which is important for community wellbeing. Application development is not only about writing the code, but also about testing it, optimizing and sharing with others. Here in Tarantool we have many developers, who interact with Lua full-time.

I’m going to discuss different aspects of Lua development in our environment. How we write code comfortably with linting. What tools we use for debugging and testing. How we manage documentation and packaging conveniently. And, more importantly, what features we lack.

Sergey Lerg

  Shaders and Lua
Sergey Lerg Spiral Code Studio
 Slides

It's not possible to write shaders in Lua, but it's possible to control them with Lua. I want to demonstrate how easy it is to make beautiful effects with the power of GLSL and Lua. Additionally I will provide useful tips and tricks of working with shaders in the Defold game engine.

Michael Filonenko

DSL compilation with DynASM
Michael Filonenko Mail.Ru Group
 Slides

Dynasm is machine code generator for several architectures (x86, x86_64, etc). It contains two parts:
- machine code generator written on c
- and assembler preprocessor on lua.

Original preprocessor works only with c/assembler sources. And there is fork by luapower which can preprocess lua files with assembler code generators. There is case when we want to use logic from user-input. Let's research this toolset and make simple s-expression compilator. The main question is "How comfortable it is to make compilator for user input"
Maxim Bolshov

  Challenges of ‘pairs’ and ‘next’ JIT compilation
Maxim Bolshov IPONWEB
 Slides

In IPONWEB we have our own Lua implementation. It was forked from LuaJIT 2.0 and inherited all its limitations. In particular, ‘pairs’ and ‘next’ functions were not supported by JIT compiler. However, on our Lua codebase this is a top-3 reason of trace compilation aborts, which imposes some trade-offs between code style and application performance.
In the talk I am going to:
* discuss what it means to make library function call JITable;
* explain implementation specifics of ‘pairs’ and ‘next’ in LuaJIT;
* tell about JIT limitations which makes ‘pairs’ and ‘next’ compilation a not so trivial task;
* demonstrate our progress in solving this task.

Roberto Ierusalimschy

Garbage Collection in Lua
Roberto Ierusalimschy PUC-Rio
 Slides

In this talk, we discuss how the garbage collector in Lua has evolved, from a simple mark-and-sweep collector to an incremental collector and then to the new generational collector, to appear in Lua 5.4.

Mons Anderson

Tarantool usecases for rich applications
Mons Anderson Mail.ru Cloud Solutions
 Slides

At first look, Tarantool is a database. And rather hard to see the whole potential of this product as an application server. I will tell and show how to unlock its potential: how to use the built-in LuaJIT server with sockets, fibers, channels, ffi and many more. How to make code to be reloadable on the fly. These themes will be discussed step by step on the example of building the queue server as a sample application.

Sergey Lerg

  Making a simple platformer with Defold
Sergey Lerg Spiral Code Studio

Platformers are a very popular game genre, some are simple, some are rather complex. In this workshop I will demonstrate how to make a basic platformer with the Defold game engine. Most tutorials on this topic tend to oversimplify things with handcrafted levels when they can be generated and with the usage of a physics engine when it's completely unnecessary.

Организаторы


Конференция организована Александром Гладышем при поддержке спонсоров. Председатель программного комитета конференции Lua in Moscow 2019 Антон Солдатов.

Спонсоры


Свяжитесь с нами

 agladysh@lua.moscow

Расскажите о конференции

#luainmoscow19