Difference between revisions of "SDCC 3.7.0 Release"

From SDCC wiki
Jump to: navigation, search
m (Feature List)
m (Tasks)
Line 174: Line 174:
|  [https://sourceforge.net/p/sdcc/feature-requests/451/ 451]  
|  [https://sourceforge.net/p/sdcc/feature-requests/451/ 451]  

Revision as of 10:09, 25 September 2017

Release schedule

Delivery Planned date Actual date
SDCC 3.7.0 RC1
SDCC 3.7.0 RC2
SDCC 3.7.0 Release

See the SDCC 3.7.0 Release Plan.


If you think there is a functionality that should be included or a bug that needs to be fixed in the release, please submit it to the Feature Requests at http://sourceforge.net/tracker/?group_id=599&atid=350599 or Bugs at http://sourceforge.net/tracker/?group_id=599&atid=100599 and copy Request ID and Summary fields to the following table, where:

Request ID: Request ID from Feature Requests or Bugs
Summary: Summary from Feature Requests or Bugs
Proposed by: Who proposed the feature or bug fix
Time: Estimate of the implementation time
Developer: Who will implement the feature or bug fix
Status: Current status

Request ID Summary Proposed by Time Developer Status
2870755 Accessing the stack spth
sdas merge with asxxxx 5.0 borutr a lot more borutr/maarten work in progress
2085 mcs51/ds390 bool fails when bit type is not allowed spth DONE
1710546 struct: aggregate assignment spth
674638 structures cannot be passed as function parameters spth
3326880 float classification macros spth
3486540 gcc-torture-execute-pr38212 fails spth
3486535 gcc-torture-execute-pr20466-1 fails spth
3502632 gcc-torture-execute-20010224-1 fails for z80-related spth
3289630 variable length arrays spth
3495899 CSE ignores pointer aliasing problems. spth
3573141 Handle static vars like global ones in initialization spth
327 mcs51 code in device/lib spth
1731 More sdcdb bugs spth
403 Regression testing for pic16 spth
1866 [PIC16] Global variables not initialized to 0 by default (maybe enable crt0iz as default) DiegoHerranz QUASIDONE
2241 wrong code generated for a function call inside nested loops spth DONE
451 Intermingled declarations and code spth
165 C99 compliance: for (int i=0; ... spth spth DONE
332 Compound literals spth
450 K & R function style spth
2545 signed enum comparisons fail spth maarten DONE
2559 Wrong operand in left shift by literal spth DONE
2539 expression with bool result assigned to bitfield generates wrong code spth DONE
2542 Cast overwrites lower byte of 16-bit result (andgets wrong upper byte) spth spth DONE
2585 Wrong result in left shift of int by int spth maarten DONE

Feature List

There is always a problem to create a list of new features when a new SDCC release is announced. The following list is an attempt to create such a list "on the fly". Every time a new feature which is visible or interesting for the SDCC users is implemented, it should be added to the following list.

  • Changed putchar() prototype from void putchar(char) to int putchar(int) to improve standard-compliance and allow error reporting.
  • Various speed improvements in stm8 backend - Dhrystone score more than doubled, resulting in SDCC achieving the highest Dhrystone scores among STM8 C implementations.
  • Various speed improvements for multiplications resulting in SDCC achieving the highest Coremark scores among STM8 C implementations.
  • Declarations in for loops (ISO C99).
  • 64-bit integers (long long) for the mcs51 backend.
  • Full _Bool support for mcs51 and ds390 backend (now _Bool is fully supported in SDCC regardless of backend).
  • Additional wide character library functions: mbstowcs() and wcstombs(), btowc() and wctob(), wcscmp(), wcslen().
  • Changed PRNG for rand() from LCG to xorshift to improve speed and quality.
  • Support for Small-C calling convention on the callee side (i.e. function definitions with Small-C calling convention).
  • The obsolete macro SDCC (which used to contain the version number encoded as an integer) has finally been removed (except for mcs51, where it will survive a little bit longer for SiLabs IDE compability).
  • New deviced supported by simulator (TLCS-90, and the 517, F380, XC88X mcs51-variants along with dual-dptr and MDU support).
  • Timer, UART (incl interrupt) and I/O support in STM8 simulator.
  • Simulator support for banked memory and bit banding.
  • Various simulator improvements: Conditional breakpoints, breakpoints by function name from SDCC debug output, OMF input, VCD output, simulator interface for simulated program and new operators in expressions.
  • Deprecated --nojtbound and the corresponding pragma.
  • Faster register allocator reduces compilation time by about 25% (does not apply to mcs51, ds390 which use a different register allocator).
  • Execution count guessing and use of execution count guesses in stm8 register allocation improve optimization for code speed.
  • Changed getchar() prototype from char getchar(void) to int getchar(void) to improve standard-compliance and allow error reporting.
Personal tools