
Comme nous l'avions annoncé dans l'
annonce précédente , le 3 mars (dimanche), la troisième conférence internationale Lua à Moscou 2019 se tiendra au bureau du groupe Mail.ru.
La conférence se déroulera en 2 volets: rapports et séminaires.
Tous les rapports et séminaires seront en anglais sans traduction simultanée.
Rapports (salle de réunion # 1)
10h30 Début des inscriptions
11h00 - 11h45 "Pourquoi (et pourquoi pas) Lua / Pourquoi Lua (et pourquoi pas)", Roberto Jérusalem, PUC-RioLors de la création d'un langage de programmation, les contradictions des exigences poussent souvent les auteurs à trouver des solutions. Il s'agit d'un phénomène courant dans le monde du développement. Différentes langues parviennent à un compromis de différentes manières, ce qui rend chaque langue plus adaptée à certains scénarios et moins attrayante pour d'autres.
Il y a un ensemble d'objectifs pour la langue Lua, qui détermine la direction de la conception. La priorité est donnée à l'intégration, à la petite taille, à la simplicité et à la portabilité. Il existe d'autres objectifs, tels que les performances et la facilité d'utilisation par des programmeurs non professionnels.
Dans le cadre du rapport, nous discuterons de l'impact de cet ensemble d'objectifs. Nous verrons comment ces objectifs affectent la langue elle-même, son utilisation, ainsi que la possibilité de son application dans divers domaines.
12:00 - 12:45 "resty-threadpool: réinventer Apache dans nginx / resty-threadpool: nouvelle lecture d'Apache dans nginx", Julien Desgats, CloudFlareLes boucles d'événements asynchrones sont un moyen éprouvé de faire évoluer les serveurs réseau. nginx (comme d'autres produits à succès) utilise essentiellement cette technique particulière. Cependant, ses performances dépendent d'une condition clé: la logique métier ne doit pas être élaborée trop longtemps, sinon les performances globales baissent rapidement.
Cloudflare s'appuie fortement sur OpenResty ( bibliothèques nginx + Lua +) pour tout ce qui concerne les serveurs de périphérie. Dans le même temps, des performances prévisibles sont essentielles. Cela nécessite la suppression de certaines parties complexes du traitement de la boucle d'événements. En règle générale, cela se faisait auparavant en écrivant des microservices. Cloudflare a essayé une approche différente: utilisez la fonction de pool de threads nginx . Le rapport décrira en détail les problèmes et les résultats de l'extraction des fonctions de sécurité de base du cycle d'événements.
13h00 - 14h00 Déjeuner
14:00 - 14:45 "Expérience de l'équipe Tarantool avec les outils de développement Lua / Expérience de l'équipe Tarantool avec les outils de développement en langage Lua", Yaroslav Dynnikov, Mail.ru GroupChaque 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 consiste non seulement à écrire du code, mais aussi à le tester, à optimiser et à partager des informations avec d'autres personnes. De nombreux développeurs du projet Tarantool travaillent quotidiennement avec Lua.
Au cours de la conférence, nous discuterons de divers aspects du développement de Lua dans l'équipe Tarantool:
- Est-il pratique pour les développeurs d'écrire du code linted?
- Quels outils utilisent-ils pour le débogage et les tests?
- Comment préparer avec succès la documentation et collecter les packages?
- Et, tout aussi important, de quelles fonctionnalités leur manque-t-il encore?
15h00 - 15h45 «Shaders et Lua / Shaders et Lua», Sergey Lerg, Spiral Code StudioIl n'est pas possible d'écrire des shaders en Lua, mais vous pouvez les contrôler en utilisant ce langage. L'objectif du rapport est de montrer comment vous pouvez facilement créer des effets époustouflants à l'aide de GLSL et Lua. De plus, des astuces et des conseils utiles pour travailler avec des shaders sur le moteur de jeu Defold seront fournis.
15 h 45 - 16 h 15 Pause-café
16:15 - 17:00 «Introduction au dynasme de luajit / Introduction au dynasme de luajit», Mikhail Filonenko, Mail.ru GroupDynasm est un générateur de code machine pour plusieurs architectures (x86, x86_64, etc.).
Il se compose de deux parties:
- générateur de code machine écrit en C
- et préprocesseur assembleur sur Lua.
Le préprocesseur d'origine ne fonctionne qu'avec le code source dans l'assembleur ou C.
De plus, il existe un fork de luapower qui peut prétraiter les fichiers Lua à l'aide de générateurs de code assembleur.
Dans certains cas, il est nécessaire d'utiliser la logique de l'entrée utilisateur. Nous allons examiner cette boîte à outils et créer un simple compilateur d'expression s.
La question principale: "Dans quelle mesure est-il pratique de créer un compilateur pour la saisie utilisateur."
17:15 - 18:00 «Défis de la« paire »et de la« prochaine »compilation JIT / Problèmes de compilation« paires »et« la prochaine »en JIT», Maxim Bolshov, IPONWEBIPONWEB utilise sa propre implémentation de Lua. Le projet est issu de LuaJIT 2.0 avec toutes les limitations. En particulier, les pairs
et next
fonctions next
n'étaient pas prises en charge par le compilateur JIT. Cependant, dans notre base de code Lua, c'est l'une des 3 principales raisons d'interrompre la compilation de la trace, ce qui conduit à des compromis forcés entre le style de code et les performances de l'application.
Le rapport prévoit:
- pour dire ce que signifie appeler la fonction de bibliothèque
JITable
; - Expliquez les spécificités de l'implémentation des
pairs
et next
dans LuaJIT; - parler des limitations JIT qui rendent la compilation de
pairs
et next
tâche non triviale; - démontrer les progrès de la résolution de ce problème.
18:15 - 19:00 «Collecte des ordures à Lua», Roberto Jérusalem, PUC-RioRapport bonus de Roberto.
19h15 - 20h00 Table ronde avec tous les intervenantsSéminaires (salle de cinéma)
14h00 - 15h45 «Cas d'utilisation de Tarantool pour les applications riches / Cas d'utilisation de Tarantool pour les applications multifonctionnelles», Vladimir Perepelitsa, 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.
Le séminaire est conçu pour révéler cette partie des capacités de Tarantool: comment utiliser le serveur LuaJIT intégré avec des sockets, fibres, canaux, ffi, etc.? Comment faire recharger du code à la volée? Ces rubriques seront examinées étape par étape sur l'exemple de la construction d'un serveur de files d'attente.
16h15 - 18h15 "Créer un jeu de plateforme simple avec Defold", Sergey Lerg, Spiral Code StudioPlatformers est un genre de jeu très populaire. Certains d'entre eux sont simples, d'autres sont assez complexes. Dans le cadre du séminaire, je montrerai comment créer un jeu de plateforme de base sur le moteur de jeu Defold. Les auteurs de la plupart des documents de formation sur ce sujet ont tendance à tout simplifier et à montrer la création de niveaux manuellement, alors qu'ils peuvent être générés automatiquement, et utilisent également un moteur physique quand il n'est pas du tout nécessaire.
L'entrée est gratuite.
L'inscription est obligatoire.
Adresse: bureau du groupe Mail.ru, Leningradsky pr., 39, p. 79.
Nous vous attendons à Lua à Moscou 2019!