~/talk

Combining Modern C++ and Lua

Talkat C++ on Sea 2020 · 2020-07-15..07-17· [c-and-cpp]
links:none on file
slides:none on file

Describes a deployed architecture that moves a monolithic C++98 connection manager to C++17 actions + Lua 5.3 behaviors, using SWIG type maps to map std::string/vector/map and to pass Lua callbacks into std::function. Example code (luachat on GitHub) uses asio timers and TCP with one asynchronous TCP connection per message, speedylog for logging and CMake for builds. Field use on Blu Wireless train radios proves it allows live behavior changes without recompiles and speeds up fixes from week-long builds to monthly supported releases.

AI-written summary · about

  1. 0:00Introduction
  2. 0:50Agenda
  3. 2:05Software Philosophy
  4. 4:10Example
  5. 4:40Plea Wireless
  6. 6:18Train radios
  7. 7:20Train environment
  8. 8:28Connection management
  9. 10:57Decoupled architecture
  10. 12:53Architecture diagram
  11. 14:20Questions
  12. 15:03What is Lua
  13. 17:23Lua Stack
  14. 18:50First Example
  15. 24:18LuaChat
  16. 27:18LuaChat Example
  17. 27:53Lua Architecture
  18. 28:44Swig
  19. 31:08Swig Input
  20. 33:11Macros
  21. 34:35Types
  22. 35:50Type Checks
  23. 40:30Lua Actions
  24. 43:28asynchronous messages
  25. 45:00accept
  26. 46:44asynchronous read
  27. 49:17get
  28. 49:37lower behavior
  29. 53:40code overview
  30. 54:01sender code
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.