[0.8.1] - 2026-05-02
Bug Fixes
- Float precision during codegen for integer float value (6d8ade4)
- Literal number types weren't properly lowered in the LIR (16145b6)
- Parameters are now actually check to know if the type exists (c3d2b7a)
- Unions signature and declaration order were malformed in the codegen (87e3789)
- Fields positions are now deterministic and stable across builds (110d75e)
- Strings now properly represent special characters + unicode values (3ea369d)
- Allow for
namespace::enum::variant(d204f99) - Allow function pointer casting (fc39cfe)
- You can now get function pointers from namespaces' functions (ed34e91)
atlas77 packagewouldn't add namespace names on object types where it was used (43ae639)- Different case warnings are now ignored for std types and functions (87a9738)
- Trivially_copyable structs with a destructor are now rejected (8134969)
- Return statement did not reset variable state in ownership pass (307f681)
- Std c99 & clang warnings for the codegen (a8fae44)
- Method in generic structs are now lazily instantiated (8e85794)
- Variables weren't getting registered if their value type and declared type wasn't the same. Causing a lot of annoying cascading errors (5fef9ea)
- Std::expected wasn't well formed (915a010)
- Most examples should now be working (1b421e5)
- Removed all faulty "std::move" to replace them with "std::ptr::read". (a67a048)
- Allow empty object literal (e.g.
Foo {}) (577eba5) - The ownership pass now also runs for methods and dtor (c4906f9)
- Can only move from local variables now (730029f)
- Add back language for external items (e.g.
extern "C") (e6ace4d) - Update the hello world example to use the std namespace (67c89e1)
- Recursive pointers to generics now error out (7088b22)
- Static access for classes in namespaces (9307ddb)
- Removed "name_should_be_in_different_case" warning for extern declaration (346964a)
- Removed "
NoFieldInStruct" error (2cba551) - Issue with .dll-s not being included in output directory (bf4ca9e)
- Add
vendor/tinycc/includepath even on windows target for TCC (9718402) - Potential fix for GNU toolchain users (34a4877)
- Skip block-exit RAII drops when block ends with return (6e091a6)
Documentation
- Updated ROADMAP.md and README.md (e9aaa3c)
- Updated the roadmap (af26a79)
- Updated the README.md file (c1810e7)
Features
- Ignore invalid variables to avoid cascades of errors (33f2e1b)
- Add variadic type support in parser and lexer (9767712)
- Implement intrinsic type_id (13204cb)
- Add very basic reflections to the language (47fc828)
- Add external unions to the laguage (824ae73)
- Added back a very simple instant/duration API (a71a217)
- Add string type instead of raw '*uint8' (166760b)
- Add support for special methods (b85eba7)
- Add
std::hashableconstraint + warnings for badly formed special methods (e2bef49) - Added support for bitwise operators (
<<, >>, !, &, |, ^) (6708593) - Added
std::alloc<T>() -> *Tas a safer wrapper over malloc(uint64) (40facba) - Add
std::take<T>(*T) -> T(4f55120) - Add
std::map<K, V>(447a7f6) - Add nullable structs/methods modifiers (9853b2c)
- Add
std::either<L, R>to the language (b4cea81) - Add method generics (FINALLY) to the language (15c7a6a)
- Add
std::ptr::read/write/swap(e34cbda) - Added String::push_str() + one string example (bba261a)
- Add std::realloc/zero_alloc/calloc to std/memory (bf7c321)
- Added
#[c_name("name_in_c")flag for external items (3ac0d8f) - Added std namespace for... std thingies (2f7f17a)
- Added automatic library generation from C header file into
atlas77-my_header.h,atlas77-my_header.c&my_header.atlas(320600a) - Add
source_dirsfor all sources directory like I did for lib_dirs or include_dirs (e6aa6fb) - Implement very simple, stupid but working namespaces (a3595b1)
- Add
atlas.tomlbuild configuration file (6dbd347) - Add generic function pointers
add<int64>(bf9f00e) - Implementation of function pointers (98a2960)
Refactor
- Update LirOperand to include size information for immediate values (ac860df)
- Unify the attributes parsing a bit (65540e3)
Misc
- Removed useless core/experimental/reflection file (f477962)
- Remove unused test.clif (should have been done earlier) (2a39ee1)
- Removed NameShouldBeInDifferentCase warning (ddddeb0)
- Removed all unused experimental libraries (89962d4)
- Removed raylib & blue-engine bindings (a022c71)
- Small clean up of the compiler + enable of require drop union field warning (7cb9019)
- Precise if a stdlib is outdated or not (f090124)
- Trimmed down the atlas77 header and renamed it (e240f7d)
- Remove raylib directory (52960ff)
- Made
normalize_library_name_for_runtimeonly available on windows (d955ca0) - Move expected into the std namespace (c672d1e)
- Move std/math into the std namespace (25d5df3)
- Trimmed down test.atlas (377d173)
- Removed
self/directory, this will be moved into its own repo one (96ab999) - Cleaned up raylib library so every symbols are public (c272ecd)
- Bump all packages version to latest (12e5bf0)
- Remove
LirInstr::AggregateCopy+ fixraylib/import (82ba69e) - Clean up examples and stdlib (1d50e0f)
What's Changed
Full Changelog: v0.8.0...v0.8.1