It’s been a year since last time I touched Le’Sec. Lots of thinking about an object storage API and what that may entail, but also about how the core parts of this library was made, with all the macros to implement C type factories. I ended up being quite dissatisfied with the result, and looking for better ways to make C type templates.
What I’ve ended up doing is to still use C preprocessor macros, but rather than having complex macros that implement stuff, I’ve turned to having special inclusion files with the implementations as is, but where you’re supposed to set up all the names as aliases for their “real” counterpart… using C preprocessor macros.
There are also other issues, like how arguments are passed to the dispatch function, and how the dispatch function has to treat those arguments, along with whether they are passed by reference or by value, that get reimplemented, taking inspiration from Rust and Zig.
Therefore, the Le’Sec Core library is to be deprecated, to be split apart into the new projects Le’Core (already underway), Le’Crypt and Le’Store.
I wrote more details in the story rad:zQ8psYPsgeSGJQrsUqXCP5oWdrPM/blob?path=story-25-Current-Status.org.