Skip to content

dev-2022-09

Compare
Choose a tag to compare
@Kelimion Kelimion released this 01 Sep 22:21
· 5865 commits to master since this release
74458ab

New Language Features

  • #soa pointer type to ad with refactory to #soa data types
    • e.g. #soa ^#soa[]T

New Compiler Features

  • Make unreachable() a built-in compiler-level procedure
  • Allow for foo() or_else unreachable() or other diverging procedures

Compiler Improvements

  • #load can now optionally import the loaded file data as a different type than []u8
    • #load(path)
    • #load(path, []T) (where T is a type that can be trivially loaded from memory (i.e. no pointers))
    • #load(path, string) (shorthand for string(#load(path)))
  • Deprecate #load_or(path, default) in favour of #load(path) or_else default
  • Allow chaining of #load(path1) or_else #load(path2)
  • Pass size information to allocator to delete, when possible, to improve tracking information
  • Improved detection of rc.exe
  • Improvements to debug symbols for range intervals
  • Fix Objective-C related x->y() calls in Odin
  • Prepare for future LLVM versions
  • Various bugfixes

New Packages

Package Improvements

  • core:image/tga can now load as well
  • Add math.divmod and math.floor_divmod
  • Pretty marshal output for core:encoding/json
  • Add ID3D11Debug to vendor:directx/d3d11 package
  • Add wgl, raw input, and additional Windows imports
  • Add more core:container/queue helpers and peek_front and peek_back
  • Add reflect.get_union_variant
  • Add slice.sort_with_indices family of procedures
  • Improvements to sync.Futex support on windows
  • Add core:sys/valgrind package for valgrind, memcheck, and callgrind
  • Various bugfixes