Heute erschien der Release Candidate 1 für SDCC 4.4.0. Quellcode, Dokumentation, und Binärdateien für Windows, macOS und GNU/Linux, jeweils auf amd64 finden sich am üblichen Ort, in den entsprechenden Verzeichnissen: https://sourceforge.net/projects/sdcc/files/ Die bedeutendsten Neuerungen seit 4.3.0 sind: * Optimizations for rotations. * struct / union parameters for hc08, s08 and mos6502. * Many bug fixes for -ms08 --stack-auto. * struct / union return support for hc08 and s08 (caller side only). * Generalized constant propagation. * New command line option --syntax-only to only parse the input. * Added C99 header inttypes.h * Added library functions imaxabs, imaxdiv, llabs, strtoimax, strtoll, strtoull, strtoumax, wcsncmp, wcstoimax, wcstol, wcstoll, wcstoul, wcstoull, wcstoumax * New r800 port to better support the ASCII Corp R800 and Zilog Z280. * Changed the default calling convention for r2k, r2ka, r3ka, tlcs90, ez80-z80 from version 0 to 1 (this is an ABI break, and will require changes to user-written asm functions or their declarations). * Improved optimizations for code speed for stm8, pdk, z80 (and related). * New mos65c02 port to better support the WDC 65C02. Das umfassende ChangeLog findet sich unter: https://sourceforge.net/p/sdcc/code/HEAD/tree/tags/sdcc-4.4.0-rc1/sdcc/ChangeLog Philipp (SDCC 4.4.0 Release Manager) P.S.: Mein persönlicher Eindruck ist, dass viele der neuen Features aus 4.3.0 in manchen Corner Cases noch etwas problematisch waren, sich dies aber seither deutlich gebessert hat. Ich würde also allen, die die neuen C23-Features aus SDCC 4.3.0 verwenden, raten, bald auf 4.4.0 umzusteigen.
:
Bearbeitet durch User
Zufälligerweise entdecke ich so, dass der SDCC seit ca. 2 Jahren den 6502 unterstützt. Seit Jahren liegt ein 6502 Projekt auf Eis, ein weiterer BASIC Computer... Das angedachte BASIC stammt von mir und ist nur noch teilweise vorhanden. Ich war irgendwann gefrustet vom cc65 und seit dem liegt es. Ich werde mir den 6502 Port des SDCC jetzt direkt mal ansehen. Da kommt die Bastel-Lust wieder hoch :) Danke für den Tip, der eigentlich als ganz anderer gedacht war :)
> Ich werde mir den 6502 Port des SDCC jetzt direkt mal ansehen. Da kommt > die Bastel-Lust wieder hoch :) Auch in diesem Fall würde ich dazu raten, SDCC 4.4.0 statt 4.3.0 zu verwenden: Insbesondere für reentrante Funktionen hat der mos6502-Port in SDCC 4.3.0 oft schlechten Code generiert. Da gab es in letzter Zeit noch einige Bugfixes. P.S.: Es gibt zur Zeit auch eine Umfrage dazu, welche Ports / Zielarchitekturen SDCC-Nutzer verwenden (wer den mcs51-Port benutzt, kann gern in den Kommentaren bei der Umfrage angeben, welche Variante es ist, insbesondere, falls es sich um eine mit mehreren dptr handelt): https://terminplaner4.dfn.de/EQgiMIYKQafCQLtr
Philipp Klaus K. schrieb: > P.S.: Es gibt zur Zeit auch eine Umfrage dazu, welche Ports / > Zielarchitekturen SDCC-Nutzer verwenden (wer den mcs51-Port benutzt, > kann gern in den Kommentaren bei der Umfrage angeben, welche Variante es > ist, insbesondere, falls es sich um eine mit mehreren dptr handelt): Dafür habe ich SDCC verwendet und kennen gelernt, als ich mit Mikrocontrollern überhaupt begonnen habe. AT89C51AC3 und Keil Demo Version war sch*****. Für den AC3 musste ich nur einen anderen 8051-Header anpassen. War wohl so um 2003-2005, also bald 20 Jahre.
Philipp Klaus K. schrieb: > * Changed the default calling convention for r2k, r2ka, r3ka, tlcs90, > ez80-z80 from version 0 to 1 (this is an ABI break, and will require > changes to user-written asm functions or their declarations). Da bin ich beim Z80 schon auf die Nase gefallen und mußte downgraden um nicht auch noch alle vorhandenen Libs anpassen zu müssen. Ich habe nichts gegen die neue calling convention, da wieder etwas overhead wegfällt, aber das 'einfach' so umzustellen sorgt bei mir für einen großen Haufen zusätzlicher Arbeit. In der Doku habe ich auch keine schöne Gegenüberstellung alt-vs-neu gefunden, oder welchen Schalter ich wo setzen muß, damit mein alter Code erstmal weiterlaufen kann. Trotzdem schön, das es eine Weiterentwicklung gibt, weil früher war auch nicht alles besser :-)
Rick schrieb: > oder welchen Schalter ich wo setzen muß, damit mein alter Code > erstmal weiterlaufen kann. die Compiler-Option dafür ist
1 | --sdcccall 0 |
oder
1 | --sdcccall 1 |
. Ähnliches gibt's auch bei der Funktionsdeklaration, so dass alter und neuer Code gemeinsam in derselben Datei weiter existieren kann.
> Ich werde mir den 6502 Port des SDCC jetzt direkt mal ansehen. Da kommt > die Bastel-Lust wieder hoch :) Der heute veröffentlichte RC2 behebt noch 3 Fehler aus dem RC1, von denen hauptsächlich der mos6502-Port betroffen war.
Nach einigen Verzögerungen gibt es nun SDCC 4.4.0: https://sourceforge.net/projects/sdcc/files/ Auch der Vergleich der aktuellen Compiler für STM8 wurde aktualisiert: http://www.colecovision.eu/stm8/compilers.shtml
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.