From Hirrolot to ~hirrolot/metalang99
I'm happy to announce Metalang99 v1.12.0, Datatype99 v1.5.2, and Interface99 v0.8.0! Metalang99 has undergone the process of refactoring and concepts unification, e.g., now choice types are represented as tuples. Datatype99 has one bug fix: `derive` has been made into a proper functional macro instead of a plain identifier. Interface99 ships with the improved syntax: `iMethod`/`defaultIMethod` have been renamed to `vfunc`/`vfuncDefault`, added `VCALL_*` macros for convenient virtual table calls, and a mechanism for convenient `self` downcasting through `VSelf` & `VSELF(T)`.
From Hirrolot to ~hirrolot/metalang99
Two significant releases have just been pushed! Metalang99 ships with a new collection, sequences, and the macros `ML99_boolMatch` & `ML99_boolMatchWithArgs` to match a boolean value. The new version of Interface99 features default method implementations and reduced syntax boilerplate: #define State_IFACE \ method( int, get, void *self) \ method(void, set, void *self, int x) interface(State);
From Hirrolot to ~hirrolot/metalang99
Metalang99 v1.8.0 has been just released. It ships with a new function called `ML99_charLit`; it converts a Metalang99 character to a C character literal: // 'q' ML99_charLit(v(q)) The plain version is available under the name `ML99_CHAR_LIT`.
From Hirrolot to ~hirrolot/metalang99
Metalang99 v1.4.1 has been just released [1]! This release comes with a few small bug fixes for neat compiler diagnostic messages, implemented in the previous release. [1] https://github.com/Hirrolot/metalang99/releases/tag/v1.4.1
From Hirrolot to ~hirrolot/metalang99
Just published a blog post [1] explaining why I've chosen preprocessor macros instead of external codegen. Check it out! [1] https://hirrolot.github.io/posts/whats-the-point-of-the-c-preprocessor-actually.html
From Hirrolot to ~hirrolot/metalang99
Metalang99 v1.4.0 has been just released [1]! This release ships with neat diagnostic messages via `_Static_assert`, even for compilers other than GCC (such as MSVC, Clang). [1] https://github.com/Hirrolot/metalang99/releases/tag/v1.4.0