Lua Workshop 2018
will be held in Kaunas, Lithuania,
on September 6–7, 2018,
cortesy of CUJO.
the main goal of the workshop is to allow the Lua
to get together and meet in person and talk about
the Lua language, its uses, and its implementation.
The workshop is open to everyone interested in Lua.
Register now to reserve a seat.
Please make your own travel and accommodation arrangements.
See the tips in the
if you need help or have special requirements.
Registrations are now open.
There is no registration fee but registration is required
because space is limited.
To register to attend the workshop, send a message to
including your full name and the name of your company or organization,
As confirmation, your name will appear in the
list of participants.
The program is available
We shall have
a plenary talk by
(Lua's chief architect)
and several contributed talks.
There will also be plenty of time for getting together and chatting about Lua.
If you'd like to speak at the workshop,
send a tentative title and a short abstract
with your registration.
The workshop will be held at the CUJO AI Headquarters in Zemieji Sanciai:
A. Juozapavičiaus pr. 31B
See the precise location in the
The workshop is organized by
The organizers can be contacted at
Registered participants are listed here.
If you have sent a registration and your name does not appear here in a couple of days, please let us know.
- Pierre Chapuis (Lima Technology)
- Björn Ritzl (King)
- Alexey Gulev (PotatoJam)
- Sergey Lerg (Spiral Code Studio)
- Oleg Naydin (SRI Infotech)
- Ruslan Menibaev (Range Soft)
- Oleg Pridiuk (King)
- Etiene Dalcol
- Denis Rakcheyev
- Italo Maia (booking.com)
- Donatas Abraitis (Hostinger.com)
- Edgaras Lukoševičius (Hostinger.com)
- Nerijus Bendziunas
- Alan Vezhbitskis (Tesonet)
- Kęstutis Žvinklys (Tesonet)
- Ahmet Burak Sağlık (Chremiasoft)
- Rimantas Baranauskas (Oracle)
- Kipras Mancevičius (Oracle)
- Anton Soldatov (IPONWEB)
- Gytis Basinskas (Oracle)
- Deimantas Galčius (VTeX)
- Žilvinas Vaiciukevičius (Laserpas)
- Sergio Hernán Hidalgo Espinoza (Yachay Tech University)
- Javier Guerra (Cloudflare)
- Ignacio Burgueño (King)
- Alëna Ponomarenko (Social Quantum)
- Sebastian Spaar (ariadne-service gmbh)
- Motiejus Jakštys (Uber)
- Mikhail Kupriyanov (Kaspersky Lab)
- Majtyka Marek (Tieto)
- Maxim Bolshov (IPONWEB)
- Lolita Tolenė (VTeX)
- Pedro Tammela (CUJO AI)
- Giedrius Balbieris (CUJO AI)
- Ana Lúcia de Moura (LabLua, PUC-Rio)
- Paulius Zaleckis (Transunion)
- Giedrius Stalioraitis (Tesonet)
- Hisham Muhammad (Kong)
- Rasa Šataitė (CUJO AI)
- Vadim Zborovskii (SRC RF TRINITI)
- Arvydas Rumša (CUJO AI)
- Renato Maia (CUJO AI)
- Elias Hogstvedt
- Gabriel de Quadros Ligneul (CUJO AI)
- Egmantas Girnis (CUJO AI)
- Paulius Zaliaduonis (Bendras)
- Augustinas Bacvinka (CUJO AI)
- Tomi Tavela
- Enrique García Cota (Kong)
- Carlos Carvalho (CUJO AI)
- Aapo Talvensaari (Kong)
- Agnė Bankauskienė (VTeX)
- Linas Nenorta (CUJO AI)
- Saulius Reklaitis
- Darius Joksas (Teltonika)
- Saulius Krasuckas (Telia Lietuva)
- Marius Karotkis (Fischer international)
- Eimantas Žvirblys (Teltonika)
Writing an RTS game in two days
(Spiral Code Studio)
I've participated in Ludum Dare and made a mix of a strategy game and a
clicker with Defold game engine in 3D. The game is called StarClick
(Spiral Code Studio)
There is no OOP in Lua and often when people try to bring it to Lua it ends
up not very well.
An overview of different object oriented approaches for Lua.
How do you use your Lua skills to start making games - workshop
Björn Ritzl and Oleg Pridiuk
This no-slides workshop guides you of how to quickly start making games
without much experience in gamedev, but with good Lua skills. We'll
start with an empty project and by the end of the workshop we'll have
a small game running on mobiles and the browser.
We'll give people the kick-start and supply them with a demo-project so they
can experiment at home. So we won't require attendees to follow us on their
laptops during the workshop.
Rewriting LuaJIT: Why and How?
In our company, we have used Lua for more than 10 years to describe the
business logic of our projects. The long journey started with PUC-Rio Lua,
went through LuaJIT, and finally led us to our own implementation based on
LuaJIT 2.0. In my talk, I would like to discuss:
- why we eventually decided to start a new implementation of Lua;
- how we tested it and ensured compliance for APIs provided by the Lua
- tandard libraries;
- how we extended our implementation (I will discuss adding support for
immutable objects and preemptive coroutines as examples);
- what tools we created around our platform to ease troubleshooting and
The route to ARM
At Cloudflare, ARM servers are coming. We're in the midst of a
project to port all our services from the current Intel-only to a more
diverse environment. Given that roughly half of each CPU's time is
spent running LuaJIT code and the huge number of machines we deploy
to, we have to follow and investigate many corner cases. This talk
will present a few of the challenges and lessons learned so far.
Effil: yet another way for multithreading in Lua
Multithreading is one of the eternal problems of script languages. Lua suffers from this problem too: no native support of OS threads and interpreter state lock. Existing solutions that work with threads in Lua use different approaches and do not cover all our needs at once. This talk explains how Effil
solves this problem.
The Effil is a multithreading library for Lua. It aims to provide high level abstraction of threads usage and interaction. Based on multiple interpreter states approach, Effil reimplements a set of Lua mechanisms (tables, metatables, GC) from scratch to make objects live outside of Lua state and be transmittable between threads. In sum with other features this library makes thread usage simple and efficient.
Scripting Linux system calls with Lua
Recent versions of the Linux kernel introduced a feature to offload TLS encryption/decryption to kernel space, letting users use send/recv system-calls transparently.
Kernel scripting is a paradigm in Operating Systems that allows users or programs to modify, at run time, kernel tailored behaviors using scripts in high level languages like Lua.
Inspired by the new TLS feature, in this talk we explore system-call scripting, using Lua scripts in a kernel-scripted Operating System, to modify the behavior accordingly. We present a prototype implementation and discuss possible real world use cases.
New features in LuaRocks 3.0
LuaRocks 3.0 is out, and it contains a bunch of new features which are
easy to miss out if you're used to the typical LuaRocks workflows. In
this talk, we'll take a tour around the features of this new release,
including the changes and simplifications of the rockspec format, and
the introduction of project-based workflows, where you can install a
separate set of rocks for a project and work with a private rocks tree
without disturbing your main system.
Lua (and Fortran) in thermomechanical simulations
(SRC RF TRINITI)
The talk covers the use of Lua as an extension and glue language for
the computer codes which perform engineering thermomechanical
analysis. One of the applications is specification of the physical
material properties, boundary conditions, volume sources and other
input parameters by the user. Those values can depend on many
variables and be defined as constant, tables, formulae or algorithms.
A database of user functions written in Lua is one of the feasible
solutions. We describe the architecture and some implementation
details, including Lua bindings to Fortran-2003/2008. Another topic is
development of the thermomechanical simulation software where the
control logic written in Lua serves as a glue for the computational
modules written in Fortran, C and other static high-performance
LuaMemory - Writable Byte Sequences in Lua
Lua strings can handle binary data, but as they are immutable it is usually
necessary to create temporary strings with partial data prior to compose
the desired final byte sequence. LuaMemory provides an alternative to
strings by use of memory areas, which work as writable byte sequences that
can be used to compose the binary data and avoid the creation of temporary
In this talk, we present how to use the Lua module to create and manipulate
memory areas. We also show how to use the provided C API to manipulate
these memory areas from C, and also how to use it to write or adapt current
libraries that handle strings to be able to handle memory areas
Pallene: designing a statically typed language around Lua
Gabriel de Quadros Ligneul
Pallene is a companion language for Lua aimed to archive good performance
by relying on a static-type system and an ahead-of-time compiler. Pallene
is also designed to seamlessly interoperate with Lua, hence
performance-sensitive code can be written in one language and the scripting
in the other. In this talk we are going to focus on the design of arrays in
Pallene, a single data structure that is shared between the two languages.