Programa de conferencias Lua en Mosc√ļ 2019



Como informamos en el anuncio anterior , el 3 de marzo (domingo), la tercera conferencia internacional Lua en Mosc√ļ 2019 se llevar√° a cabo en la oficina del Grupo Mail.ru.

La conferencia se llevar√° a cabo en 2 transmisiones: informes y seminarios.

Todos los informes y seminarios serán en inglés sin traducción simultánea.


Informes (sala de reuniones n. ¬į 1)



imagen 10:30 Inicio del registro

11:00 - 11:45 "Por qué (y por qué no) Lua / Por qué Lua (y por qué no)", Roberto Jerusalén, PUC-Río

Al crear un lenguaje de programaci√≥n, las contradicciones en los requisitos a menudo empujan a los autores a comprometer las soluciones. Este es un hecho com√ļn en el mundo del desarrollo. Diferentes idiomas llegan a un compromiso de diferentes maneras, lo que hace que cada idioma sea m√°s adecuado para algunos escenarios y menos atractivo para otros.

Hay un conjunto de objetivos para el lenguaje Lua, que determina la direcci√≥n del dise√Īo. Se da prioridad a la capacidad de inserci√≥n, tama√Īo peque√Īo, simplicidad y portabilidad. Hay otros objetivos, como el rendimiento y la facilidad de uso por parte de programadores no profesionales.

En el informe, discutiremos el impacto de este conjunto de objetivos. Veremos cómo estos objetivos afectan el lenguaje en sí, su uso, así como la posibilidad de su aplicación en varios campos.


12:00 - 12:45 "resty-threadpool: reinventando Apache en nginx / resty-threadpool: nueva lectura de Apache en nginx", Julien Desgats, CloudFlare

Los bucles asíncronos de eventos son una forma comprobada de escalar servidores de red. nginx (como otros productos exitosos) básicamente usa esta técnica en particular. Sin embargo, su rendimiento depende de una condición clave: la lógica empresarial no debe resolverse por mucho tiempo, de lo contrario, el rendimiento general cae rápidamente.

Cloudflare depende en gran medida de OpenResty ( bibliotecas nginx + Lua +) para todo lo relacionado con los servidores perimetrales. Al mismo tiempo, el rendimiento predecible es crítico. Esto requiere eliminar algunas de las partes de procesamiento complejas del bucle de eventos. Como regla, esto se hizo previamente escribiendo microservicios. Cloudflare intentó un enfoque diferente: use la función de grupo de subprocesos nginx . El informe describirá en detalle los problemas y resultados de extraer las funciones básicas de seguridad del ciclo de eventos.


13:00 - 14:00 Almuerzo

14:00 - 14:45 ‚ÄúExperiencia del equipo de Tarantool con herramientas de desarrollo de Lua / Experiencia del equipo de Tarantool con herramientas de desarrollo en el idioma de Lua‚ÄĚ, Yaroslav Dynnikov, Grupo Mail.ru

Cada lenguaje de programación tiene su propio ecosistema, que es importante para el bienestar de la comunidad. El desarrollo de aplicaciones no es solo escribir código, sino también probarlo, optimizar y compartir información con otras personas. Hay muchos desarrolladores en el proyecto Tarantool que trabajan con Lua todos los días.

Durante la charla, discutiremos varios aspectos del desarrollo de Lua en el equipo de Tarantool:

  • ¬ŅQu√© tan conveniente es para los desarrolladores escribir c√≥digo linted?
  • ¬ŅQu√© herramientas usan para depurar y probar?
  • ¬ŅC√≥mo preparar con √©xito la documentaci√≥n y recoger paquetes?
  • Y, igual de importante, ¬Ņqu√© caracter√≠sticas les faltan todav√≠a?


15:00 - 15:45 ‚ÄúShaders y Lua / Shaders y Lua‚ÄĚ, Sergey Lerg, Spiral Code Studio

No es posible escribir sombreadores en Lua, pero puede controlarlos usando este lenguaje. El prop√≥sito del informe es demostrar c√≥mo puede crear f√°cilmente efectos sorprendentes utilizando GLSL y Lua. Adem√°s, se dar√°n consejos √ļtiles y consejos sobre c√≥mo trabajar con sombreadores en el motor del juego Defold.


15:45 - 16:15 Pausa para el café

16:15 - 17:00 "Introducción al dinamismo de luajit / Introducción al dinamismo de luajit", Mikhail Filonenko, Grupo Mail.ru

Dynasm es un generador de código de máquina para varias arquitecturas (x86, x86_64, etc.).
Consta de dos partes:

  • generador de c√≥digo de m√°quina escrito en C
  • y preprocesador ensamblador en Lua.

El preprocesador original solo funciona con código fuente en ensamblador o C.
Además, hay una bifurcación de luapower que puede preprocesar archivos Lua utilizando generadores de código de ensamblador.

En algunos casos, es necesario usar la lógica de la entrada del usuario. Examinaremos este kit de herramientas y crearemos un compilador de s-expression simple.
La pregunta principal: "¬ŅQu√© tan conveniente es crear un compilador para la entrada del usuario".


17:15 - 18:00 “Desafíos de 'pares' y 'próxima' compilación JIT / Problemas de compilación 'pares' y 'próxima' en JIT", Maxim Bolshov, IPONWEB

IPONWEB usa su propia implementación de Lua. El proyecto fue bifurcado de LuaJIT 2.0 con todas las limitaciones. En particular, los pairs y las next funciones no fueron compatibles con el compilador JIT. Sin embargo, en nuestra base de código Lua, esta es una de las 3 razones principales para interrumpir la compilación de rastreo, lo que conduce a compensaciones forzadas entre el estilo del código y el rendimiento de la aplicación.

El informe planea:

  • para decir qu√© significa llamar a la funci√≥n de biblioteca JITable ;
  • Explicar los detalles de la implementaci√≥n de pairs y next en LuaJIT;
  • hablar sobre las limitaciones de JIT que hacen que compilar pairs y next tarea no trivial;
  • Demostrar el progreso de la soluci√≥n de este problema.


18:15 - 19:00 ‚ÄúRecolecci√≥n de basura en Lua‚ÄĚ, Roberto Jerusal√©n, PUC-R√≠o

Informe de bonificación de Roberto.


19:15 - 20:00 Mesa redonda con todos los oradores

Seminarios (sala de cine)



14:00 - 15:45 ‚ÄúCasos de uso de Tarantool para aplicaciones ricas / Casos de uso de Tarantool para aplicaciones multifuncionales‚ÄĚ, Vladimir Perepelitsa, Grupo Mail.ru

A primera vista, Tarantool es una base de datos. Y es bastante difícil ver todo el potencial de este producto como servidor de aplicaciones.

El seminario est√° dise√Īado para revelar esta parte de las capacidades de Tarantool: ¬Ņc√≥mo usar el servidor LuaJIT incorporado con sockets, fibras, canales, ffi, etc.? ¬ŅC√≥mo hacer que el c√≥digo se vuelva a cargar sobre la marcha? Estos temas se examinar√°n paso a paso en el ejemplo de creaci√≥n de un servidor de cola.


16:15 - 18:15 "Haciendo un juego de plataformas simple con Defold", Sergey Lerg, Spiral Code Studio

Platformers es un género de juego muy popular. Algunos de ellos son simples, otros son bastante complejos. En el marco del seminario, mostraré cómo crear un juego de plataformas básico en el motor del juego Defold. Los autores de la mayoría de los materiales de capacitación sobre este tema tienden a simplificar todo y muestran la creación de niveles manualmente, mientras que pueden generarse automáticamente, y también usan un motor físico cuando no es necesario.


La entrada es gratuita.
Se requiere registro .
Dirección: oficina de Mail.ru Group, Leningradsky pr., 39, p. 79.

¬°Te esperamos en Lua en Mosc√ļ 2019!

Source: https://habr.com/ru/post/441364/


All Articles