Skip to content

v0.8.1

Latest

Choose a tag to compare

@Gipson62 Gipson62 released this 02 May 00:28

[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 package wouldn'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/include path 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::hashable constraint + warnings for badly formed special methods (e2bef49)
  • Added support for bitwise operators (<<, >>, !, &, |, ^) (6708593)
  • Added std::alloc<T>() -> *T as 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_dirs for all sources directory like I did for lib_dirs or include_dirs (e6aa6fb)
  • Implement very simple, stupid but working namespaces (a3595b1)
  • Add atlas.toml build 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_runtime only 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 + fix raylib/ import (82ba69e)
  • Clean up examples and stdlib (1d50e0f)

What's Changed

Full Changelog: v0.8.0...v0.8.1