dev-2021-11
gingerBill
released this
03 Nov 00:07
·
8515 commits
to master
since this release
New Language Features
matrix
typematrix[Rows, Columns]Element_Type
- A
matrix
is a mathematical type built into Odin. It is a regular array of numbers, arranged in rows and columns - Multiplication between matrices and arrays
- Component-wise operations
- Submatrix casting square matrices
- Submatrix casting non-square matrices
- Column-major memory layout
- Limited to a maximum of 16 elements
- Supports integers, floats, and complex numbers (only)
- Optimized for SIMD vectorization
- Built-in procedures (Compiler Level)
transpose
outer_product
hadamard_product
matrix_flatten
conj
- Built-in procedures (Runtime Level)
determinant
adjugate
inverse
inverse_transpose
hermitian_adjoint
matrix_trace
matrix_minor
odin report
- Reporting of Platform Specific Information
wasi_wasm32
support- Improved WASM support in general
New Packages
core:crypto
vendor:ENet
Package Improvements
- Improvements to
vendor:OpenGL
- Set
VertexAttribPointer
related calls to useuintptr
instead ofrawptr
for the byte offset parameter - Convert all functions taking
GLboolean
tobool
- Set
- Updates to
core:sync/sync2
- Generic
Futex
interface for each platform Sema
implemented withFutex
- Generic
- Improvements to
core:mem/virtual
to make usage consistent - Minor improvements to the SDL vendor packages
core:encoding/json
- add alias forMJSON
asBitsquid
- Improvements to
vendor:microui
- Improvements to
vendor:raylib
- Add more OOM checks within the core library
- Unify
runtime.memory_equal
andruntime.string_eq
logic - Add
id
tothread.Thread
- Add
slice.swap_between
- Add experimental
big.Rat
Compiler Improvements
intrinsics.unaligned_store
intrinsics.unaligned_load
intrinsics.mem_zero_volatile
offset_of_by_string
- Heavily improve the LLVM struct type generation to improve ABI
- Simplify
map
logic and code generation - Disallow
or_return
withindefer
- Fix
strip-semicolon
on some machines which didn't truncate correctly - Allow parsing for
[^]T{}
to improve error messages - Support LLVM 11, LLVM 12, and LLVM 13 in the code
- Fix debug problems
- Improved
bit_set
semantics