Releases: llvm-mos/llvm-mos-sdk
Releases · llvm-mos/llvm-mos-sdk
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.
SDK v17.0.0
Breaking changes
__from_ascii
now returns an int, and itswrite
callback does as well. This allows it to forward an EOF error code from its internalwrite
function and exit early.fpos_t
is now 32-bit for compatibility with cc65. If you need files larger than 2GiB, you probably don't want a 6502.
New features
stdio
is now feature-complete (parity w/ cc65) forcommodore
family targets- Text mode now converts at runtime from the execution character set (always ASCII) to the platform character set (PETSCII on non-cx16 systems).
Other changes
- The minimal stdio's FILE pointers are now non-null and all different.
- The simple
ungetc
was moved into the minimal stdio and the minimalgetchar
altered accordingly.
SDK v16.0.0
Breaking changes
__from_ascii
and__to_ascii
now take a void pointer to a context object and pass it though to the read/write callback. This is a trick fromdl_iterate_phdr
to allow passing general lambdas that refer to an ambient context.
New features
- Port
fwrite
from PDCLib; port cc65 file writing backend (write
) forcommodore
- Known issue: Doesn't yet support ASCII->PETSCII translation in text mode; outputs as if opened in binary mode
Bug fixes
SDK v15.3.0
New library features
- All of the below only support the
c64
. Picked this arbitrarily; other backends will come later. fopen
- There's not actually much you can do with open files, and if you try to use most
stdio
functions andfopen
in the same project, the link will fail.
- There's not actually much you can do with open files, and if you try to use most
fclose
(with automaticfclose
on exit)rename
tmpfile
tmpnam
SDK v15.2.0
New features
Bug fixes
- llvm-mos/llvm-mos@d689274 - Fix ld65 "invalid argument" error on Windows when LLD does multiple passes (ca65 integration)