Skip to content

dev-2022-10

Compare
Choose a tag to compare
@Kelimion Kelimion released this 02 Oct 19:40
· 6004 commits to master since this release

New Language Features

  • cap(Enum), equivalent to max(Enum)-min(Enum)+1
  • ODIN_BUILD_PROJECT_NAME constant
  • //+build-project-name build directive
  • intrinsics.type_convert_variants_to_pointers
  • Add helgrind and valgrind support

Compiler Improvements

  • Greatly improve error messages
  • Preparations for Compiler Explorer support
  • Use uint instead of int to improve bounds checking code generation
  • Replace #optional_second with #optional_allocator_error
  • Remove extra pointer indirection
  • Make intrinsics.count_{ones,zeros,trailing_zeros,leading_zeros} work at compile time
  • Improve map
  • Improve parapoly support for ^T to [^]$V and vice versa
  • Various bugfixes
  • Simplify win32 resource file linking
  • Add Windows 32-bit build system error
  • Add help command, so you can now use odin help build in addition to odin build -help
  • Improve macOS version detection for odin report

New Packages

  • Add vendor:zlib
  • Begin work on core:debug/pe to parse PE files
  • Add core:sys/info to query CPU, GPU, RAM, etc.

Package Improvements

  • Add system:legacy_stdio_definitions.lib to core:c
  • Allow reading/writing files larger than max(i32) on Darwin
  • Allow skipping unused fields in core:encoding/json
  • Add parsing of +/-Inf and NaN to core:strconv
  • Add additional win32 imports and constants
  • Fix typo in map_insert
  • Fix libc.aligned_alloc
  • Add slice.enumerated_array
  • Add serial comms support to core:sys/windows
  • Add complex support to core:libc
  • Correct json unmarshal of maps
  • Fix Darwin libs for vendor:stb/image
  • Added support for ID3D11InfoQueue to vendor:directx
  • Improve core:mem/virtual handling of out of memory on Windows
  • Simplify core:io by removing different unnecessary types and calls
  • Add the builtin procedures abs, clamp, min, max to core:math as aliases