New Language Features
- Allow casting from floats to complex numbers and quaternions
@(linkage=<string>)for procedures and variables@(require)for procedures#load_hash(<filepath>, <string-hash-kind>)-target:js_wasm32target (custom Web JavaScript runtime to run Odin executables)
New Compiler Features
- Add
ODIN_NO_CRTglobal boolean constant - Add
ODIN_BUILD_MODEglobal string constant - Allow compilation of assembly files on Windows through
nasm.exein conjunction with theforeign importsystem (.asm,.s,.Sfiles) -extra-assembler-flags:<string>-timings-export:<string>
Compiler Improvements
- Improve matrix related operations
- Correctly support
-default-to-nil-allocatorfor all platforms -no-crtimprovements on Windows- General wasm32 improvements
- Internal compiler (not language) improvements to data structures
- Improve compilation passes on LLVM 12.0.1 and LLVM 13.0.0 (compiler still defaults to LLVM 11.1.0)
- Correct
x in ptrlogic - Numerous bug fixes
New Packages
vendor:raylibversion 4.0core:math/linalg/glsl- GLSL-like mathematics types and operationscore:math/linalg/hlsl- HLSL-like mathematics types and operations
Package Improvements
- Make
mathprocedurescontextless - Add
asinh,acosh,atanh - Represent matrices in
fmtas expected - Make runtime builtin matrix procedures
contextless package runtimelinkage improvementslinalg.matrix4_look_at_from_fru- Implement
math.ldexpandmath.frexpin native Odin - Add
log1p,erf,erfc,ilogb,logbnextafter,gamma,lgamma,signbittocore:math - Add support for darwin to
core:c/libc - Add numerous new
core:cryptopackages - Add
os.read_at_leastandos.read_fullutility procedures - Correct reading from a console on Windows