Small Device C Compiler 3.6.0 released

A few hours ago, SDCC 3.6.0 was released. SDCC is a free C implementation targeting various 8-bit architectures. In particular, it targets architectures that would be hard to target for GCC or LLVM: Few registers, highly irregular register and instruction sets, etc.

With this release SDCC improved standard compliance (all the mandatory features introduced in C95 and C11 should be there now). The default language dialect is now C11 with some SDCC-specific stuff. But there are still some gaps wrt. features from the C90 and C99 standards. Most notably: union and struct can not be assigned, passed or returned; variable declarations may only appear where C90 allows them; no standard-compliant double or long double; no compound literals.

Today a new release of SDCC was made. We are now at version 3.6.0. > You can get it at: >
formatting link
> > So what's new? > * Merged upstream binutils 2.25 > * New memory management with lower overhead > * Changed default language dialect to --std-sdcc11 > * Diagnostic for missing type specifier: No implicit int outside of C90 > mode anymore > * C11 generic selections > * char type is now unsigned by default (old behaviour can be restored > using --fsigned-char) > * Character constants are now of type int instead of char. > * ISO C95 and ISO C11 wide character constants > * ISO C95 and ISO C11 wide string literals > * Basic standard library support for wide characters: c16rtomb(), > mbrtoc16(), mbsinit(), mbtowc(), mbrlen(), mbrtoc32, c32rtomb(), > mbrtowc(), wcrtomb(), mblen(), wctomb() > * Treat all ports the same in the manual (i.e. mcs51-specific stuff is now > clearly described as such) > * Reorganized interrupt handling for z80, z180, r2k, r3ka, tlcs90, gbz80 > backends > * Workaround for stm8 division hardware bug > * ELF/DWARF support for stm8 > * Output symbol table for ELF > * pic16 port now uses standard-compliant crt0iz that initializes static > and globals to 0 by default > > And of course numerous feature requests and bug fixes are included as well. > > Once again I hope you will enjoy using this new release. > > Maarten Brock > SDCC 3.6.0 Release Manager

Alan Cox' FUZIX uses SDCC as the reference platform, and makes relatively heavy use of long long, a data type otherwise not used much in embedded software. This resulted in some long long bugs being found and fixed, and thus improved long long support in SDCC a lot.

Philipp

P.S.: Two years ago, in SDCC 3.5.0, support for the STM8 appeared in SDCC.A comparison of current C compilers for the STM8 can be found at:

formatting link
SDCC is already doing well in standard compliance, host OS support, license. But size and speed of the generated code need to improve further.

P.P.S.: At FOSDEM 2015, there was a talk on SDCC, that should still give a good introduction today

formatting link

Reply to
Philipp Klaus Krause
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.