Seit heute gibt es SDCC 4.6.0 RC1. Quellcode, Dokumentation, und Binärdateien für Windows, macOS und GNU/Linux, eweils auf amd64 finden sich am üblichen Ort, in den entsprechenden Verzeichnissen:
https://sourceforge.net/projects/sdcc/files/
Wer die Zeit dazu hat, möge RC1 testen, und Erfahrungen berichten.
Abgesehen von Bugfixes sind die bedeutendsten neuen Features seit SDCC 4.5.0:
- C2y _Countof operator
- C2y octal
- C2y if-declaration
- C2y Conditional operator with omitted second operand (originally a GNU extension)
- C99 compound literals
- C23 compound literals with storage class specifiers
- Experimental f8l port
- C2y signed bit-precise integer type of width 1
- C2y bit-precise integer types as fixed underlying type for enum
- C2y umaxabs
- C2y bit utilities
- realloc(ptr, 0) now follows C99 semantics instead of C90 semantics
- r4k port for Rabbit 4000
- Experimental r5k and r6k ports for Rabbit 5000 and 6000
- Support for Dynamic C calling convention in z80-related ports
- Substantially improved code generation for z80-related ports
- ez80 port replaces ez80_z80 port
- C2y functions uabs, ulabs, ullabs
- Improved diagnostics on invalid C2y (some of which was UB up to C23)
- C23 constexpr (mostly)
- C2y containerof macro
- Diagnostics based on [static assignment-expression] array parameter syntax
- Warnings for array parameters where accesses fall outside the bounds
- Basic parameter forward declarations (GNU extension)
- C23 va_start and variadic functions
- _Optional qualifier
- Plain int bit-fields are signed
- strsep
- TLCS-870C(1) support in uCsim
- __far support in Rabbit ports for using a 1 MB address space for data
Philipp (SDCC 4.6.0 release manager)