Lua In Moskau 2019 Konferenzprogramm



Wie im vorherigen Beitrag angekĂŒndigt, wird am 3. MĂ€rz (dem ersten Sonntag im MĂ€rz) im Moskauer BĂŒro der Mail.ru Group die dritte internationale Lua-Konferenz, Lua in Moskau 2019, stattfinden. Einzelheiten zum Zeitplan finden Sie unter der KĂŒrzung.

Die Konferenz wird zwei parallele Tracks beinhalten: VortrÀge und Workshops.

Alle VortrÀge und Workshops werden in englischer Sprache ohne gleichzeitige Interpretation ins Russische gehalten.


VortrÀge (Konferenzraum Nr. 1)



Bild 10:30 Abzeichenabholung

11:00 - 11:45 „Warum (und warum nicht) Lua“, Roberto Ierusalimschy, PUC-Rio

Das Design einer Programmiersprache wie jedes andere Artefakt bringt viele Kompromisse mit sich, die mit widersprĂŒchlichen Anforderungen verbunden sind. Verschiedene Sprachen lösen diese Kompromisse auf unterschiedliche Weise, sodass sie fĂŒr einige Szenarien besser geeignet und fĂŒr andere Einstellungen weniger attraktiv sind.

Lua hat seine eigenen Ziele, die das Design bestimmen. Dieser Satz priorisiert Einbettbarkeit, geringe GrĂ¶ĂŸe, Einfachheit und PortabilitĂ€t. (Es gibt auch andere Ziele, wie Leistung und Benutzerfreundlichkeit fĂŒr nicht professionelle Programmierer.)

In diesem Vortrag werden wir die Auswirkungen dieser Ziele diskutieren. Wir werden sehen, wie sich diese Ziele auf die Sprache selbst auswirken, wie sie sich auf ihre Verwendung auswirkt und wie sie sich auf ihre Eignung fĂŒr verschiedene Anwendungsbereiche auswirkt.


12:00 - 12:45 "Resty-Threadpool: Apache in Nginx neu erfinden", Julien Desgats, CloudFlare

Asynchrone Ereignisschleifen sind eine bewĂ€hrte Methode zur Skalierung von Netzwerkservern. Nginx (neben vielen anderen erfolgreichen Produkten) verwendet diese Technik im Kern. Die Leistung hĂ€ngt jedoch von einer wichtigen Annahme ab: Die GeschĂ€ftslogik darf nicht zu lange ausgefĂŒhrt werden, da sonst die Gesamtleistung schnell zusammenbricht.

Bei Cloudflare verlassen wir uns bei unseren Edgeservern stark auf OpenResty (nginx + Lua + -Bibliotheken) und stellen sicher, dass eine vorhersehbare Leistung von entscheidender Bedeutung ist. Das Entladen einiger komplexer Teile der Verarbeitung außerhalb der Ereignisschleife ist daher erforderlich und wurde normalerweise durch Schreiben von Mikrodiensten durchgefĂŒhrt. Wir haben einen anderen Ansatz versucht, bei dem die Nginx-Thread-Pool-Funktion genutzt wird . In diesem Vortrag werde ich detailliert auf die Herausforderungen und Ergebnisse der Herausnahme der wichtigsten Sicherheitsfunktionen aus der Ereignisschleife eingehen.


13:00 - 14:00 Mittagessen

14:00 - 14:45 Uhr „Erfahrung des Tarantool-Teams mit Lua-Entwicklertools“, Yaroslav Dynnikov, Mail.ru Group

Jede Programmiersprache hat ein eigenes Ökosystem, das fĂŒr das Wohlbefinden der Gemeinschaft wichtig ist. Bei der Anwendungsentwicklung geht es nicht nur darum, den Code zu schreiben, sondern ihn auch zu testen, zu optimieren und mit anderen zu teilen. Hier in Tarantool haben wir viele Entwickler, die ganztĂ€gig mit Lua interagieren.

Ich werde verschiedene Aspekte der Lua-Entwicklung in unserer Umgebung diskutieren:

  • Wie wir bequem mit Flusen Code schreiben.
  • Welche Tools verwenden wir zum Debuggen und Testen?
  • Wie wir Dokumentation und Verpackung bequem verwalten.
  • Und vor allem, welche Funktionen uns fehlen.


15:00 - 15:45 "Shaders and Lua", Sergey Lerg, Spiral Code Studio

Es ist nicht möglich, Shader in Lua zu schreiben, aber es ist möglich, sie mit Lua zu steuern. Ich möchte zeigen, wie einfach es ist, mit der Kraft von GLSL und Lua schöne Effekte zu erzielen. ZusĂ€tzlich werde ich nĂŒtzliche Tipps und Tricks fĂŒr die Arbeit mit Shadern in der Defold-Game-Engine bereitstellen.


15:45 - 16:15 Kaffeepause

16:15 - 17:00 "EinfĂŒhrung in den Dynasmus von Luajit", Michael Filonenko, Mail.ru Group

Dynasm ist ein Maschinencodegenerator fĂŒr verschiedene Architekturen (x86, x86_64 usw.). Es enthĂ€lt zwei Teile:

  • Maschinencode-Generator geschrieben in C,
  • und Assembler-PrĂ€prozessor in Lua.

Der ursprĂŒngliche PrĂ€prozessor funktioniert nur mit C / Assembler-Quellen. Und es gibt eine Abzweigung von luapower, die Lua-Dateien mit Assembler-Codegeneratoren vorverarbeiten kann. Es gibt einen Fall, in dem wir Logik aus Benutzereingaben verwenden möchten. Lassen Sie uns dieses Toolset untersuchen und einen einfachen S-Expression-Compiler erstellen.

Die Hauptfrage lautet: "Wie komfortabel ist es, einen Compiler fĂŒr Benutzereingaben zu erstellen?".


17:15 - 18:00 "Herausforderungen von 'Paaren' und 'nÀchster' JIT-Zusammenstellung", Maxim Bolshov, IPONWEB

In IPONWEB haben wir unsere eigene Lua-Implementierung. Es wurde von LuaJIT 2.0 gegabelt und erbte so alle seine EinschrĂ€nkungen. Insbesondere pairs und next Funktionen wurden vom JIT-Compiler nicht unterstĂŒtzt. In unserer Lua-Codebasis ist dies jedoch ein Hauptgrund fĂŒr AbbrĂŒche der Trace-Kompilierung, der einige Kompromisse zwischen Codestil und Anwendungsleistung mit sich bringt. In diesem Vortrag werde ich:

  • Besprechen Sie, was es bedeutet, dass die Bibliotheksfunktion JITable .
  • ErklĂ€ren Sie die Implementierungsspezifikationen von pairs und die next in LuaJIT.
  • ErzĂ€hlen Sie von JIT-EinschrĂ€nkungen, die pairs und die next Kompilierung zu einer nicht so trivialen Aufgabe machen.
  • Zeigen Sie unsere Fortschritte bei der Lösung dieser Aufgabe.


18:15 - 19:00 "MĂŒllabfuhr in Lua", Roberto Ierusalimschy, PUC-Rio

Ein Bonusvortrag von Roberto.


19:15 - 20:00 Runder Tisch mit allen Lautsprechern

WerkstÀtten (Kinosaal)



14:00 - 15:45 "Tarantool-AnwendungsfĂ€lle fĂŒr umfangreiche Anwendungen", Mons Anderson, Mail.ru Group

Auf den ersten Blick ist Tarantool eine Datenbank. Und es ist ziemlich schwer, das gesamte Potenzial dieses Produkts als Anwendungsserver zu erkennen.

Ich werde Ihnen dabei helfen, dieses Potenzial auszuschöpfen: Verwendung des integrierten LuaJIT-Servers mit Sockets, Fasern, KanĂ€len, ffi und vielem mehr. So machen Sie Code im laufenden Betrieb nachladbar. Diese Themen werden am Beispiel des Aufbaus des Warteschlangenservers als Beispielanwendung Schritt fĂŒr Schritt erlĂ€utert.

16:15 - 18:15 „Mit Defold einen einfachen Plattformer erstellen“, Sergey Lerg, Spiral Code Studio

Plattformer sind ein sehr beliebtes Spielgenre, einige sind einfach, andere ziemlich komplex. In diesem Workshop werde ich zeigen, wie man mit der Defold-Game-Engine einen einfachen Plattformer erstellt. Die meisten Tutorials zu diesem Thema vereinfachen Dinge mit handgefertigten Levels, wenn sie generiert werden können, und mit der Verwendung einer Physik-Engine, wenn dies völlig unnötig ist.

Der Eintritt ist frei, aber vergessen Sie nicht, sich anzumelden .

Standort: Mail.ru KonzernbĂŒro, Moskau, Leningradsky Prospekt 39, Bld. 79.

Wir freuen uns, Sie auf der Lua in Moskau 2019 begrĂŒĂŸen zu dĂŒrfen!

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


All Articles