
Conforme relatamos no
anúncio anterior , em 3 de março (domingo), a terceira conferência internacional Lua em Moscou 2019 será realizada no escritório do Mail.ru Group.
A conferência será realizada em 2 fluxos: relatórios e seminários.
Todos os relatórios e seminários serão em inglês sem tradução simultânea.
Relatórios (sala de reunião nº 1)
10:30 Início do registro
11:00 - 11:45 “Por que (e por que não) Lua / Por que Lua (e por que não)”, Roberto Jerusalem, PUC-RioAo criar uma linguagem de programação, as contradições nos requisitos geralmente levam os autores a comprometer as soluções. Esta é uma ocorrência comum no mundo do desenvolvimento. Idiomas diferentes chegam a um acordo de diferentes maneiras, o que torna cada idioma mais adequado para alguns cenários e menos atraente para outros.
Há um conjunto de objetivos para a linguagem Lua, que determina a direção do design. É dada prioridade à capacidade de incorporar, tamanho pequeno, simplicidade e portabilidade. Existem outros objetivos, como desempenho e facilidade de uso por programadores não profissionais.
Como parte do relatório, discutiremos o impacto desse conjunto de metas. Veremos como esses objetivos afetam o próprio idioma, seu uso, bem como a possibilidade de sua aplicação em vários campos.
12:00 - 12:45 "resty-threadpool: reinventando o Apache no nginx / resty-threadpool: nova leitura do Apache no nginx", Julien Desgats, CloudFlareOs loops de eventos assíncronos são uma maneira comprovada de escalar servidores de rede. O nginx (como outros produtos de sucesso) basicamente usa essa técnica específica. No entanto, seu desempenho depende de uma condição essencial: a lógica de negócios não deve ser elaborada por muito tempo; caso contrário, o desempenho geral cai rapidamente.
O Cloudflare depende muito do OpenResty (bibliotecas nginx + Lua +) para tudo relacionado a servidores de borda. Ao mesmo tempo, o desempenho previsível é crítico. Isso requer a remoção de algumas partes complexas do processamento do loop de eventos. Como regra, isso era feito anteriormente escrevendo microsserviços. O Cloudflare tentou uma abordagem diferente: use a função pool de threads nginx . O relatório descreverá em detalhes os problemas e resultados da extração das principais funções de segurança do ciclo de eventos.
13:00 - 14:00 Almoço
14:00 - 14:45 “Experiência da equipe Tarantool com ferramentas de desenvolvimento Lua / Experiência da equipe Tarantool com ferramentas de desenvolvimento na linguagem Lua”, Yaroslav Dynnikov, Grupo Mail.ruCada linguagem de programação possui seu próprio ecossistema, o que é importante para o bem-estar da comunidade. O desenvolvimento de aplicativos não é apenas escrever código, mas também testá-lo, otimizar e compartilhar informações com outras pessoas. Existem muitos desenvolvedores no projeto Tarantool que trabalham com Lua todos os dias.
Durante a palestra, discutiremos vários aspectos do desenvolvimento de Lua na equipe Tarantool:
- Quão conveniente é para os desenvolvedores escreverem códigos com frases?
- Quais ferramentas eles usam para depuração e teste?
- Como preparar com êxito a documentação e coletar pacotes?
- E, igualmente importante, que recursos eles ainda não possuem?
15:00 - 15:45 "Shaders e Lua / Shaders e Lua", Sergey Lerg, Spiral Code StudioNão é possível escrever shaders em Lua, mas você pode controlá-los usando esta linguagem. O objetivo do relatório é demonstrar como você pode facilmente criar efeitos impressionantes usando GLSL e Lua. Além disso, serão fornecidas dicas e conselhos úteis sobre o trabalho com shaders no mecanismo de jogo Defold.
15:45 - 16:15 Intervalo para café
16:15 - 17:00 “Introdução ao dinastia de luajit / Introdução ao dinastia de luajit”, Mikhail Filonenko, Mail.ru GroupDynasm é um gerador de código de máquina para várias arquiteturas (x86, x86_64, etc.).
Consiste em duas partes:
- gerador de código de máquina escrito em C
- e pré-processador de assembler em Lua.
O pré-processador original funciona apenas com o código-fonte no assembler ou C.
Além disso, existe uma bifurcação do luapower que pode pré-processar arquivos Lua usando geradores de código do assembler.
Em alguns casos, é necessário usar a lógica da entrada do usuário. Veremos este kit de ferramentas e criaremos um compilador simples de expressão s.
A principal questão: "Quão conveniente é criar um compilador para entrada do usuário".
17:15 - 18:00 “Desafios dos 'pares' e 'próximos' de compilação do JIT / Problemas de compilação 'pares' e 'próximos' do JIT", Maxim Bolshov, IPONWEBIPONWEB usa sua própria implementação de Lua. O projeto foi bifurcado do LuaJIT 2.0 com todas as limitações. Em particular, os pairs
e as next
funções não eram suportadas pelo compilador JIT. No entanto, em nossa base de código Lua, esse é um dos três principais motivos para interromper a compilação de rastreio, o que leva a trocas forçadas entre o estilo do código e o desempenho do aplicativo.
O relatório planeja:
- diga o que significa chamar a função de biblioteca
JITable
; - Explique as especificidades da implementação de
pairs
e a next
em LuaJIT; - fale sobre as limitações do JIT que tornam a compilação de
pairs
e, em next
tarefa não trivial; - demonstrar o progresso da solução desse problema.
18:15 - 19:00 “Coleta de lixo em Lua”, Roberto Jerusalem, PUC-RioRelatório de bônus de Roberto.
19:15 - 20:00 Mesa redonda com todos os alto-falantesSeminários (sala de cinema)
14:00 - 15:45 "Casos de uso Tarantool para aplicativos avançados / Casos de uso Tarantool para aplicativos multifuncionais", Vladimir Perepelitsa, Mail.ru GroupÀ primeira vista, Tarantool é um banco de dados. E é muito difícil ver todo o potencial deste produto como um servidor de aplicativos.
O seminário foi desenvolvido para revelar essa parte dos recursos do Tarantool: como usar o servidor LuaJIT embutido com soquetes, fibras, canais, ffi, etc.? Como fazer o código recarregar em tempo real? Esses tópicos serão examinados passo a passo no exemplo da construção de um servidor de filas.
16:15 - 18:15 “Criando um jogo de plataformas simples com Defold”, Sergey Lerg, Spiral Code StudioPlatformers é um gênero de jogo muito popular. Alguns deles são simples, outros são bastante complexos. Na estrutura do seminário, mostrarei como criar um jogo de plataformas básico no mecanismo de jogo Defold. Os autores da maioria dos materiais de treinamento sobre esse tópico tendem a simplificar tudo e mostrar a criação de níveis manualmente, enquanto eles podem ser gerados automaticamente, e também usam um mecanismo físico quando não é necessário.
A entrada é gratuita.
O registro é obrigatório.
Endereço: escritório do Mail.ru Group, Leningradsky pr., 39, p. 79.
Estamos esperando por você na Lua em Moscou 2019!