Programme de la conférence Lua à Moscou 2019



Comme annoncé dans le billet précédent , le 3 mars (le premier dimanche de mars), le bureau de Moscou de Mail.ru Group accueillera la troisième conférence internationale Lua, Lua à Moscou 2019. Voir les détails du calendrier sous la coupe.

La conférence comprendra deux volets parallèles: discussions et ateliers.

Tous les exposés et ateliers seront livrés en anglais, sans interprétation simultanée en russe.


Conférences (salle de conférence # 1)



image 10h30 Retrait du badge

11h00 - 11h45 «Pourquoi (et pourquoi pas) Lua», Roberto Ierusalimschy, PUC-Rio

La conception d'un langage de programmation, comme celle de tout autre artefact, implique de nombreux compromis impliquant des exigences contradictoires. Différentes langues résolvent ces compromis de différentes manières, les rendant plus appropriées pour certains scénarios et moins attrayantes pour d'autres paramètres.

Lua a son propre ensemble d'objectifs, qui guide sa conception. Cet ensemble priorise l'intégration, la petite taille, la simplicité et la portabilité. (Il existe également d'autres objectifs, tels que les performances et la facilité d'utilisation par des programmeurs non professionnels.)

Dans cet exposé, nous discuterons de l'impact de cet ensemble d'objectifs. Nous verrons comment ces objectifs affectent le langage lui-même, comment il affecte ses utilisations et comment il influe sur sa pertinence pour différents domaines d'application.


12:00 - 12:45 «resty-threadpool: réinventer Apache dans nginx», Julien Desgats, CloudFlare

Les boucles d'événements asynchrones sont un moyen éprouvé de faire évoluer les serveurs de réseau, nginx (parmi de nombreux autres produits à succès) utilise cette technique à sa base. Cependant, ses performances dépendent d'une hypothèse clé: la logique métier ne doit pas fonctionner trop longtemps, sinon les performances globales s'effondrent rapidement.

Chez Cloudflare , nous comptons fortement sur OpenResty ( bibliothèques nginx + Lua +) pour nos serveurs de périphérie et assurer une performance prévisible est essentiel. Le déchargement de certaines parties complexes du traitement en dehors de la boucle d'événement est donc nécessaire et a été généralement effectué en écrivant des microservices. Nous avons essayé une autre approche en utilisant la fonction de pool de threads nginx . Dans cet exposé, j'aborderai en détail les défis et les résultats de la suppression des principales fonctionnalités de sécurité de la boucle d'événements.


13h00 - 14h00 Déjeuner

14:00 - 14:45 "Expérience de l'équipe Tarantool avec les outils de développement Lua", Yaroslav Dynnikov, Mail.ru Group

Chaque langage de programmation possède son propre écosystème, ce qui est important pour le bien-être de la communauté. Le développement d'applications ne consiste pas seulement à écrire le code, mais aussi à le tester, à l'optimiser et à le partager avec les autres. Ici, à Tarantool, nous avons de nombreux développeurs, qui interagissent avec Lua à temps plein.

Je vais discuter de différents aspects du développement de Lua dans notre environnement:

  • Comment nous écrivons le code confortablement avec des peluches.
  • Quels outils nous utilisons pour le débogage et les tests.
  • Comment nous gérons facilement la documentation et l'emballage.
  • Et, plus important encore, quelles fonctionnalités nous manquent.


15h00 - 15h45 «Shaders et Lua», Sergey Lerg, Spiral Code Studio

Il n'est pas possible d'écrire des shaders en Lua, mais il est possible de les contrôler avec Lua. Je veux montrer à quel point il est facile de faire de beaux effets avec la puissance de GLSL et Lua. De plus, je fournirai des conseils et astuces utiles pour travailler avec des shaders dans le moteur de jeu Defold.


15h45 - 16h15 Pause café

16:15 - 17:00 «Introduction au dynasme de luajit», Michael Filonenko, Mail.ru Group

Dynasm est un générateur de code machine pour plusieurs architectures (x86, x86_64, etc.). Il contient deux parties:

  • générateur de code machine écrit en C,
  • et pré-processeur assembleur à Lua.

Le préprocesseur d'origine ne fonctionne qu'avec les sources C / Assembler. Et il y a un fork de luapower qui peut prétraiter les fichiers Lua avec des générateurs de code Assembler. Il y a un cas où nous voulons utiliser la logique de l'entrée utilisateur. Faisons des recherches sur ce jeu d'outils et créons un simple compilateur d'expression s.

La question principale est "Comme il est confortable de créer un compilateur pour les entrées utilisateur".


17:15 - 18:00 "Défis des 'paires' et 'prochaine' compilation JIT", Maxim Bolshov, IPONWEB

Dans IPONWEB, nous avons notre propre implémentation Lua. Il a été dérivé de LuaJIT 2.0 et a donc hérité de toutes ses limites. En particulier, les pairs et next fonctions next n'étaient pas prises en charge par le compilateur JIT. Cependant, sur notre base de code Lua, c'est une des trois principales raisons d'abandon de la compilation de trace, ce qui impose certains compromis entre le style de code et les performances de l'application. Dans cet exposé, je vais:

  • discuter de ce que signifie faire appel à la fonction de bibliothèque JITable ;
  • expliquer les spécificités d'implémentation des pairs et next dans LuaJIT;
  • parler des limitations de JIT, ce qui fait des pairs et de la next compilation une tâche pas si simple;
  • démontrer nos progrès dans la résolution de cette tâche.


18:15 - 19:00 «Collecte des ordures à Lua», Roberto Ierusalimschy, PUC-Rio

Un discours bonus de Roberto.


19h15 - 20h00 Table ronde avec tous les intervenants

Ateliers (salle de cinéma)



14h00 - 15h45 «Cas d'utilisation de Tarantool pour les applications riches», Mons Anderson, Mail.ru Group

À première vue, Tarantool est une base de données. Et il est assez difficile de voir tout le potentiel de ce produit en tant que serveur d'applications.

Je vais vous aider à libérer ce potentiel: comment utiliser le serveur LuaJIT intégré avec des sockets, des fibres, des canaux, ffi et bien d'autres. Comment rendre le code rechargeable à la volée. Ces sujets seront abordés étape par étape sur l'exemple de la construction du serveur de files d'attente comme exemple d'application.

16h15 - 18h15 "Créer un jeu de plateforme simple avec Defold", Sergey Lerg, Spiral Code Studio

Les jeux de plateforme sont un genre de jeu très populaire, certains sont simples, certains sont plutôt complexes. Dans cet atelier, je montrerai comment créer un jeu de plateforme de base avec le moteur de jeu Defold. La plupart des didacticiels sur ce sujet ont tendance à simplifier à l'excès les choses avec des niveaux artisanaux lorsqu'ils peuvent être générés et avec l'utilisation d'un moteur physique quand cela est complètement inutile.

L'entrée est gratuite, mais n'oubliez pas de vous inscrire .

Emplacement: Bureau du groupe Mail.ru, Moscou, Leningradsky prospekt 39, bld. 79.

Au plaisir de vous rencontrer à Lua à Moscou 2019!

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


All Articles