You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fetching MSVC also optionally fetches C/C++ headers for cross-compilation
Experimental C backend.
Allow the @section attribute on local static variables.
Make $feat accept the same syntax as @feat.
Added @asmname, which is similar to @cname but does not add any normal name-prefixing on targets where that is normal (such as MachO).
Add --function-sections and --data-sections (function-sections / data-sections in project.json) to place each function or global variable in its own section, so the linker can discard unused ones #3051.
Removed experimental support for cenum, faultset and distinct alternative names.
Docs now use the constset, attrmacro and excuse.
The static Linux binary now uses mimalloc for faster codegen and is aliased to c3-linux.tar.gz.
Fixes
Regression for vec.pow(x).
Macros with "const" declarations were compile time folded despite needing the declaration.
Vectors created through casts in globals would miscompile, e.g. Foo global = { .v = (int[<3>])8 }.
Support $$bswap for all power of two integers, including single bytes (in which case it is a no-op).
Fix source locations for byte literal values continued on a new line.
Faulty selection of subscript operator overload when calling method #3499
Retain @nostrip on optimized code even if no use is found, static variables may now also have nostrip. #3500
Multi-dimensional array comparisons on types with == overloaded would not compare.
Lazy resolution of function pointer types could cause a segfault when unifying ternary types. #3552
@swap now works with non-pure arguments.
Incorrect lowering of vectors when created from designated initializers with zeroes at the end.
Stdlib changes
Added std::gfx module.
Added IntRect, IntVec2, IntVec3 and IntVec4 types.
Updated organization of the MacOS / Darwin bindings, reorganized by framework, added many functions and split into std::os::darwin and std::os::macos, with among other things easy ObjC dispatch.
Updated win32 bindings with many functions, reorganized by header.
Cross-platform dylib handling with DylibHandle, os::dlopen, os::dlsym and related functions in std::os.
Added Duration.to_sec
Updated posix libc with shm_open, shm_unlink, truncate and ftruncate.
Add NonNull and Nullable types for members with mandatory null checks.
Cap durations and time to long::max/long::min with saturating maths.