Skip to content

v0.12.0

Compare
Choose a tag to compare
@gingerBill gingerBill released this 18 Jan 15:55
· 11243 commits to master since this release

New Features

  • Indexed and ranged fields for array compound literals:
    • [?]int {0 = 123, 5..9 = 54, 10..<16 = 72}
  • Constant compound literals declarations
    • FOO :: [5]int{1, 2, 3, 4, 5};
  • #partial switch
    • Implement the previous #complete switch as the default behaviour
  • Enumerated Arrays:
    • [Enum_Type]Value
    • #partial [Enum_Type]Value
  • SOA Arrays, Slices, and Dynamic Arrays
    • #soa[N]T
    • #soa[]T
    • #soa[dynamic]T
  • New #simd type syntax
    • #simd[N]T
  • Add @(private="file") and @(private="package")
  • Make string type elements immutable, akin to char const * in C
  • Allow #no_bounds_check on an expression
  • Deprecate using import
  • Full System V ABI support
  • Remove requirement for vcvarsall.bat for Windows. Windows SDK and Binaries are found automatically
  • Add -help which prints information about the compiler flags
  • Add x y z w fields to quaternion types
  • Add r g b a fields to array types len(array) <= 4 alongside x y z w fields

Library Improvements

  • Improve package math
  • Add package math/linalg
  • Improve runtime/default_allocators.odin
  • Make default context.temp_allocator thread safe
  • Add strings.unsafe_string_to_cstring
  • Add strings.ptr_from_string
  • Support package thread on unix

Bug Fixes

  • Fix string reversal
  • Fix linux build
  • Fix System V bitcast/transmute bug
  • Fix os.write on darwin
  • Fix transmute of uintptr to/from proc
  • Fix fmt.string_to_enum_value
  • Fix mem.Arena
  • Fix using on array in struct
  • Fix -no-crt on Windows
  • Fix loadsatypos