💾 Archived View for amigadu.de › af › 39620_en.gmi captured on 2022-03-01 at 15:08:33. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Go to the original message on the web >
Published: Tuesday, 01 March 2022 - 14:01:32 (+0100)
Written by: AndreasM
vbcc released in the Version 0.9h.
Changes:
New features:
Compiler defaults to C99, use -c89 to forbid C99 extensions.
Several improved warnings/error messages.
New option -sec-per-obj puts all code functions and data objects in their own section, which may be removed by linker section garbage collection.
Simple implementation of -merge-strings.
Added -warnings-as-errors option.
Define macros __OPTSPEED__/__OPTSIZE__ depending on options.
Recognize builtin functions with __asm_ prefix.
Added -depobj option.
Added -force-statics and -prefer-statics.
New backends for 6502 and 6809.
Support for charset conversions (8-bit targets).
Code compressor (currently only for 6502).
Better out-of-the-box support for non-8-bit-based types.
Several improvements regarding the backend interface.
m68k: defines macro __SMALL_DATA__ with -sd option
m68k: added -vbcccall/__vbccargs
vc: new option -rmcfg-* to disable options from a config file
vc: frontend does Unix-path conversion also for -o
vclib: New 6502 targets: Atari, BBC, C64, Mega65, NES, Simulator, X16
vclib: New 6809 targets: OS-9, Simulator
vclib: __gmtoffset and __dstflag may be overwritten separately
vclib: strftime() supports ISO-8601 date format through %F
vclib: added strtof()
vclib: m68k-amigaos based on NDK 3.2
vclib: m68k-amigaos supports Roadshow additions and <proto/bsdsocket.h>
vclib: m68k-amigaos adds reaction.lib for ReAction GUI support
vclib: m68k-amigaos UTC offset is automatically initialized when possible
vclib: m68k-amigaos configs use -amiga-softfloat (inlines) by default
vclib: m68k-atari small-data support and libraries
vclib: ppc-morphos support for (sysv,base)-ABI libraries
vclib: ppc-amigaos adapted to new SDK
Performance improvements:
Improved function inlining / cross-module inlining.
Several improvements in register allocation.
Improved constant propagation.
New peephole optimizations.
New optimization and tuning options for constant initializations.
Improved recalculation of stack slots.
Slightly improved common subexpression elimination.
Range-optimizations and induction variable shortening.
Allow strength reduction for constant left-shifts.
Handling of volatile is improved.
Compile-time calculations of constant pointer values.
m68k: improved register allocation
m68k: improved Fastcall-ABI support
m68k: improved builtin libcalls
m68k: improved copying of (long) doubles in memory with the FPU
m68k: better use of scaled addressing modes
m68k: some FPU code improvements
m68k: fixed performance regression of internal memcpy
vclib: reworked assembler inlines
Bug fixes:
Lots of fixes in the compiler core and backends. Thanks for your reports!
vclib: bad assert.h in 0.9g: it must be possible to include the assert-macro multiple times (with and without NDEBUG defined)
vclib: m68k-amigaos protos declare device library bases with struct Device*.
vclib: m68k-amigaos ReAction classes must not be automatically opened with auto.lib but with reaction.lib.
vclib: m68k-amigaos adds missing InvertString() for amiga.lib
vclib: PPC 64-bit signed modulo fixed
vclib: fixed mktime(), tm_mday is 1-based, and recognize gmtoffset
vclib: fgetpos() has to return 0 on success
In such a complex project there will of course be bugs. Most, especially the serious, bug fixes will be available immediately as a patch. The rest comes with the next release, or by request from the author.