Releases: llvm-mos/llvm-mos-sdk
Releases · llvm-mos/llvm-mos-sdk
SDK v20.2.0
New targets
- #375 -
geos-cbm
- Create applications for Commodore GEOS! - @Dirk-Schnorpfeil
Optimizations
- llvm-mos/llvm-mos#474 - Follow
TAX
andTAY
when optimizing immediate loads - @pfusik
Bug fixes
- llvm-mos/llvm-mos#476 - Allow the project to compile on Apple Silicon again - @pr1metine
- #376 - Fix
strpbrk
(and thusstrtok
) - @ivop
SDK v20.1.0
New features
- #365 -
commodore
- AddLOAD
flag enum, including specific values for thecx16
- @mlund - #367 -
cx16
- Add missing emulator registers - @mlund - #372 -
cx16
- AddJSRFAR
macro - @mlund - #368 -
cx16
- Add ROM bank label enum - @mlund - #369 -
cx16
- Split wrapper routines into dedicated sections for linker garbage collection - @mlund - #370 -
cx16
- Add VERA PSG register data structure (__vera_psg
) - @mlund
Optimizations
Bug fixes
SDK v20.0.0
Breaking changes
- #357 -
cx16
- Improve interface ofcx16_k_joystick_get
- @mlund freopen(NULL, ...)
now fails unconditionally - @pfusik- This is simpler than attempting to reopen the file, and the prior implementation was buggy. Failing is allowed by the C standard, and it's "good enough for Windows CRT".
Bug fixes
- #357 -
cx16
- Fix joystick bitmasking bugs incx16.h
- @mlund - #354 - Fix double free in
freopen
on OOM - @pfusik - Fix memory errors on
freopen
failure - @pfusik - #362 - Prevent
fopen(filename, "a")
from truncating file likefopen(filename, "w")
- @pfusik - #364 - Fix use after free in
_stdio_closeall
(file closure at program end) - @pfusik
Optimizations
- Various code size and performance optimizations for
freopen
- @pfusik
SDK v19.1.1
SDK v19.1.0
New features
Optimizations
- llvm-mos/llvm-mos#471 - Prevent debug instructions from preventing late copy optimization - @Domkeykong
SDK v19.0.0
Breaking changes
cx16
- 2850b2a - Exit by return to BASIC on Commander X16 (rather than the infinite loop of other Commodore targets)- This target's BASIC functions somewhat more like a shell than the other Commodore family targets, and along those lines, it manages to keep most of the zero page available for user programs. Accordingly, C can be seen to operate within, rather than replace, the BASIC environment.
neo6502
- #345 - Output.neo
file format instead of raw binary - @bcampbell
Bug fixes
SDK v18.0.0
Breaking changes
- #342 -
commodore
family targets now infinitely loop on exit- This fixes a day-one SDK bug with the
commodore
targets. They freely clobber BASIC ZP, but they then return to BASIC. This is arguably a bug fix, but I'm marking it as a breaking change due to how significantly the behavior changes. - See #341.
- This fixes a day-one SDK bug with the
New features
- From upstream, C23's
#embed
is now supported. This allows turning arbitrary binary files into comma-separated lists of numbers in the preprocessor, for direct inclusion in character arrays.
SDK v17.1.2
SDK v17.1.1
Bug fixes
- 63e13de - Fix minimal
stdio
ungetc
(and thusscanf
)- The
ungetc
buffer was accidentally given typebool
, so the characters thatscanf
wouldungetc
would be forced to 1.
- The
SDK v17.1.0
New features
- The SDK completes the first pass of porting cc65's
stdio
capabilities. It's not very well tested, so expect the unexpected. (I've given the commodore and atari ports some smoke testing, but not the rp6502. That is likely to work as-is though, since the cc65 POSIX stuff was already added to llvm-mos previously.)- Notable exception:
atari
'slseek
has not yet been ported, since it only works on Sparta DOS X. See #333
- Notable exception:
- ELF POSIX utility script to generate
atari800
label files (atari800lbl
)
Bug fixes
- #332 - Exit to Atari DOS via
JMP (DOSVEC)
. TheDUP
clobber detection isn't robust in Atari DOS, so exiting viaRTS
may cause a crash. We could have fixed this by re-ordering theXEX
file chunks, but reloading theDUP
effects aJMP (DOSVEC)
anyway, so may as well. - @cwedgwood - Add missing
devnum
symbol to non-c64
commodore
targets' POSIX file I/O layers. This fixesstdio
on these targets.