Konferenzprogramm Lua in Moskau 2019



Wie wir in der vorherigen Ankündigung berichtet haben , wird am 3. März (Sonntag) die dritte internationale Konferenz Lua in Moskau 2019 im Büro der Mail.ru Group stattfinden.

Die Konferenz wird in zwei Streams abgehalten: Berichten und Seminaren.

Alle Berichte und Seminare werden ohne Simultanübersetzung in englischer Sprache verfasst.


Berichte (Besprechungsraum Nr. 1)



Bild 10:30 Beginn der Registrierung

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

Bei der Erstellung einer Programmiersprache führen Widersprüche in den Anforderungen häufig dazu, dass Autoren Lösungen kompromittieren. Dies ist in der Entwicklungswelt weit verbreitet. Verschiedene Sprachen kommen auf unterschiedliche Weise zu einem Kompromiss, wodurch jede Sprache für einige Szenarien besser geeignet und für andere weniger attraktiv ist.

Für die Lua-Sprache gibt es eine Reihe von Zielen, die die Richtung des Designs bestimmen. Vorrang haben Einbettbarkeit, geringe Größe, Einfachheit und Portabilität. Es gibt andere Ziele, wie Leistung und Benutzerfreundlichkeit für nicht professionelle Programmierer.

Im Rahmen des Berichts werden wir die Auswirkungen dieser Ziele erörtern. Wir werden sehen, wie sich diese Ziele auf die Sprache selbst, ihre Verwendung sowie die Möglichkeit ihrer Anwendung in verschiedenen Bereichen auswirken.


12:00 - 12:45 "Resty-Threadpool: Neuerfindung von Apache in Nginx / Resty-Threadpool: Neue Lesart von Apache in Nginx", Julien Desgats, CloudFlare

Asynchrone Ereignisschleifen sind eine bewährte Methode zur Skalierung von Netzwerkservern. nginx verwendet (wie andere erfolgreiche Produkte) grundsätzlich diese spezielle Technik. Die Leistung hängt jedoch von einer Schlüsselbedingung ab: Die Geschäftslogik sollte nicht zu lange ausgearbeitet werden, da sonst die Gesamtleistung schnell abnimmt.

Cloudflare verlässt sich in Bezug auf Edgeserver stark auf OpenResty (nginx + Lua + Bibliotheken). Gleichzeitig ist eine vorhersehbare Leistung von entscheidender Bedeutung. Dies erfordert das Entfernen einiger komplexer Verarbeitungsteile aus der Ereignisschleife. Dies wurde in der Regel zuvor durch Schreiben von Microservices durchgeführt. Cloudflare versuchte einen anderen Ansatz: Verwenden Sie die Nginx-Thread-Pool-Funktion . Der Bericht beschreibt detailliert die Probleme und Ergebnisse des Extrahierens der grundlegenden Sicherheitsfunktionen aus dem Ereigniszyklus.


13:00 - 14:00 Mittagessen

14:00 - 14:45 „Erfahrung des Tarantool-Teams mit Lua-Entwicklertools / Erfahrung des Tarantool-Teams mit Entwicklungstools in der Lua-Sprache“, Yaroslav Dynnikov, Mail.ru Group

Jede Programmiersprache hat ein eigenes Ökosystem, das für das Wohl der Community wichtig ist. Bei der Anwendungsentwicklung wird Code nicht nur geschrieben, sondern auch getestet, optimiert und Informationen an andere Personen weitergegeben. Es gibt viele Entwickler im Tarantool-Projekt, die jeden Tag mit Lua zusammenarbeiten.

Während des Vortrags werden wir verschiedene Aspekte der Entwicklung von Lua im Tarantool-Team diskutieren:

  • Wie bequem ist es für Entwickler, Flusencode zu schreiben?
  • Welche Tools verwenden sie zum Debuggen und Testen?
  • Wie kann man Dokumentation erfolgreich vorbereiten und Pakete sammeln?
  • Und ebenso wichtig ist, welche Funktionen fehlen ihnen noch?


15:00 - 15:45 "Shader und Lua / Shader und Lua", Sergey Lerg, Spiral Code Studio

Es ist nicht möglich, Shader in Lua zu schreiben, aber Sie können sie mit dieser Sprache steuern. Der Bericht soll zeigen, wie Sie mit GLSL und Lua auf einfache Weise atemberaubende Effekte erzielen können. Außerdem werden nützliche Tipps und Ratschläge zur Arbeit mit Shadern in der Defold-Spiel-Engine gegeben.


15:45 - 16:15 Kaffeepause

16:15 - 17:00 „Einführung in den Dynasmus von Luajit / Einführung in den Dynasmus von Luajit“, Mikhail Filonenko, Mail.ru Group

Dynasm ist ein Maschinencodegenerator für verschiedene Architekturen (x86, x86_64 usw.).
Es besteht aus zwei Teilen:

  • Maschinencodegenerator geschrieben in C.
  • und Assembler-Präprozessor auf Lua.

Der ursprüngliche Präprozessor arbeitet nur mit Quellcode in Assembler oder C.
Darüber hinaus gibt es eine Abzweigung von luapower, mit der Lua-Dateien mithilfe von Assembler-Codegeneratoren vorverarbeitet werden können.

In einigen Fällen ist es erforderlich, die Logik aus Benutzereingaben zu verwenden. Wir werden uns dieses Toolkit ansehen und einen einfachen S-Expression-Compiler erstellen.
Die Hauptfrage: "Wie bequem ist es, einen Compiler für Benutzereingaben zu erstellen."


17:15 - 18:00 "Herausforderungen der 'Paare' und 'nächsten' JIT-Kompilierung / Kompilierungsprobleme 'Paare' und 'nächste' in JIT", Maxim Bolshov, IPONWEB

IPONWEB verwendet eine eigene Implementierung von Lua. Das Projekt wurde mit allen Einschränkungen von LuaJIT 2.0 gespalten. Insbesondere die pairs und die next Funktionen wurden vom JIT-Compiler nicht unterstützt. In unserer Lua-Codebasis ist dies jedoch einer der drei Hauptgründe für die Unterbrechung der Trace-Kompilierung, was zu erzwungenen Kompromissen zwischen Codestil und Anwendungsleistung führt.

Der Bericht plant:

  • zu sagen, was es bedeutet, die Bibliotheksfunktion JITable ;
  • Erläutern Sie die Besonderheiten der Implementierung von pairs und die next in LuaJIT.
  • Sprechen Sie über die JIT-Einschränkungen, die das Kompilieren von pairs und die next nicht triviale Aufgabe machen.
  • Demonstrieren Sie den Fortschritt bei der Lösung dieses Problems.


18:15 - 19:00 "Müllabfuhr in Lua", Roberto Jerusalem, PUC-Rio

Bonusbericht von Roberto.


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

Seminare (Kinosaal)



14:00 - 15:45 Uhr „Tarantool-Anwendungsfälle für umfangreiche Anwendungen / Tarantool-Anwendungsfälle für multifunktionale Anwendungen“, Vladimir Perepelitsa, Mail.ru Group

Tarantool ist auf den ersten Blick eine Datenbank. Und es ist ziemlich schwierig, das volle Potenzial dieses Produkts als Anwendungsserver zu erkennen.

Das Seminar soll diesen Teil der Funktionen von Tarantool aufzeigen: Wie wird der integrierte LuaJIT-Server mit Sockeln, Fasern, Kanälen, ffi usw. verwendet? Wie kann man Code im laufenden Betrieb neu laden? Diese Themen werden am Beispiel des Aufbaus eines Warteschlangenservers Schritt für Schritt untersucht.


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

Platformers ist ein sehr beliebtes Spielgenre. Einige von ihnen sind einfach, andere ziemlich komplex. Im Rahmen des Seminars werde ich zeigen, wie ein grundlegender Plattformer auf der Defold-Spiel-Engine erstellt wird. Die Autoren der meisten Schulungsmaterialien zu diesem Thema vereinfachen in der Regel alles und zeigen die manuelle Erstellung von Ebenen, während sie automatisch generiert werden können. Außerdem verwenden sie eine physische Engine, wenn sie überhaupt nicht benötigt wird.


Der Eintritt ist frei.
Eine Registrierung ist erforderlich.
Adresse: Büro der Mail.ru Group, Leningradsky pr., 39, S. 79.

Wir warten auf Sie bei Lua in Moskau 2019!

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


All Articles