digitalmars.D.announce - LDC 1.33.0-beta2
Glad to announce the second beta for LDC 1.33. Major changes since beta1: - New CLI option `-femit-local-var-lifetime` to enable stack memory reuse. - C files are now automatically preprocessed using the external C compiler. - Less pedantic checks for conflicting C(++) function declarations ('Error: Function type does not match previously declared function with the same mangled name'). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.33.0-beta2 Please help test, and thanks to all contributors & sponsors!
Jun 10 2023
On Sunday, 11 June 2023 at 02:06:31 UTC, kinke wrote:Glad to announce the second beta for LDC 1.33. Major changes since beta1: - New CLI option `-femit-local-var-lifetime` to enable stack memory reuse.For people testing this release, please enable this flag on your projects. It is disabled by default because it enables aggressive optimizations which may uncover latent bugs in your code: use of variable after its scope has ended. An example: ``` void useAfterScope() { int* p; { int x = 0; p = &x; // cannot statically disallow this because *p = 1; // this is a valid use of things } *p = 5; // but when you do this... stack use after scope bug! } ``` Use of AddressSanitizer with `-femit-local-var-lifetime` would catch this bug. cheers, Johan
Jul 11 2023