How that-sky-project/that-sky-engine works
That Sky Engine is a compatibility-oriented codebase for modules targeting Sky:CotL v0.32.2. The visible product workflow exposes reflected C++ classes to Lua: class bindings create Lua globals and callbacks, which use metadata to construct, inspect, cast, and delete objects. Object storage can come from a bounded heap, with an STL allocator fallback; the heap itself uses dlmalloc mspaces. The README gives no broader feature workflow, and source excerpts are partial, so this map focuses on these evidenced runtime responsibilities.
Main entry points: LuaInterface.cpp Lua bindings · Heap.cpp Tagged heap · Meta.cpp Metadata system · Meta.hpp Metadata types
Components 10
Lua interoperability
- Lua bindings
src/Code/Base/LuaInterface.cpp
Runtime reflection
- Metadata system
src/Code/Base/Meta.cpp - Metadata types
src/Code/Base/Meta.hpp
Memory management
- Tagged heap
src/Code/Memory/Heap.cpp - Heap interface
src/Code/Memory/Heap.hpp - Mspace allocator
libraries/dlmalloc-2.8.6/malloc.c - STL allocator
src/Code/Utils/StlAllocator.cpp - Platform locks
src/Code/Utils/TSPOS.hpp
Other components
- Lua scripts
- Lua runtime
Connections 10
- Lua scripts → Lua runtime: runs on
- Lua runtime → Lua bindings: dispatches callbacks
- Lua bindings → Lua runtime: reads and writes values
- Lua bindings → Metadata types: uses class metadata
- Metadata system → Metadata types: implements metadata
- Metadata system → Lua runtime: converts Lua values
- Lua bindings → Heap interface: allocates and frees objects
- Tagged heap → Mspace allocator: allocates from mspace
- Tagged heap → STL allocator: falls back on exhaustion
- Tagged heap → Platform locks: uses optional locking