3 ms·
Interesting project! I have not looked to closely at the source so forgive me for asking - Are you doing a source to source or byte code to source transformati
by jxndbdbd 3mo ago
Interesting project! I have not looked to closely at the source so forgive me for asking
- Are you doing a source to source or byte code to source transformation?
- How are you beating lua performance, since the naive implementation of a dynamic language would require tons of tables with pointer chasing
- _samt_ 3mo agoThanks! - clx compiles directly from Lua source code. It has its own parser and C++20 code generator; it does not use Lua bytecode - The goal isn't necessarily to beat Lua, but some workloads benefit from the optimizations performed by modern C++ compilers. As for tables, clx doesn't use a naive boxed-object model. Tables have a split array/hash layout: integer keys are stored in a contiguous array, while other keys use an open-addressed hash table. That keeps common accesses cache-friendly and avoids a lot of pointer chasing.
- jxndbdbd 3mo agoThanks for the explanation!