|
1 | 1 | # Change Log |
2 | 2 |
|
3 | | -## [Unreleased](https://github.com/CE-Programming/toolchain/compare/v14.2...master) |
| 3 | +## [Unreleased](https://github.com/CE-Programming/toolchain/compare/v15.0...master) |
| 4 | + |
| 5 | +# [v15.0](https://github.com/CE-Programming/toolchain/releases/tag/v15.0) (2026-05-01) |
| 6 | + |
| 7 | +This version is now built around LLVM/Clang v19 (instead of v15) and the move from the fasmg-based assembling+linking to a GNU binutils/GAS one, for user programs, making the toolchain more maintainable, more standard, more portable, and **much faster** than before. On top of that foundation, this release expands the runtime and standard library and brings a large round of fixes, optimizations, and automatic tests. |
| 8 | + |
| 9 | +## New Features |
| 10 | + |
| 11 | +- Upgraded the supported compiler stack to LLVM/Clang v19. |
| 12 | +- Reworked the build flow around GNU binutils/GAS and added the `cedev-obj` helper to inspect ELF outputs and generate CRT/libload metadata. |
| 13 | +- Added LZ4 decompression routines in the runtime and corresponding `lz4` / `lz4hc` compression modes in `convimg`. |
| 14 | +- Added direct 8ek app output support across the toolchain, including `.8ek` output, application linker support, application descriptions, and emitted relocations (see `APPLICATION` makefile flag). Proper installer support for real on-calc app distribution remains outside the toolchain scope for now. |
| 15 | +- Expanded libc/CRT/C++ runtime support with `strtok_r`, `strsep`, `_Complex` floating-point helpers, `cxa_guard` support, improved `<fenv.h>` / `<cfenv>` conformance, and constructor/destructor priority handling. |
| 16 | +- Add overlap support for gfx_CopyRectangle. |
| 17 | + |
| 18 | +## Fixes |
| 19 | + |
| 20 | +- Fixed `atexit`, `on_exit`, and `_Exit`. |
| 21 | +- Fixed long-double softfloat ABI issues and additional floating-point corner cases. |
| 22 | +- Fixed `fgetc` / `fputc` null-stream handling. |
| 23 | +- Fixed `(v)asprintf` behavior for zero-length output. |
| 24 | +- Fixed `atof(f)` return values. |
| 25 | +- Fixed `LIB_ALLOCATOR` and `LIB_PRINTF` linking, and improved circular `LIB_*` dependency handling. |
| 26 | +- Fixed several application-build issues while bringing `.8ek` support online. |
| 27 | +- Fixed assumptions about the target environment, especially around the `__TICE__` define, making the toolchain more usable beyond strictly CE-specific targets. |
| 28 | +- Fixed `convbin` invocation in the top-level `libs` target. |
| 29 | +- Fixed Windows path handling and other tooling issues across `convbin` and `convimg`. |
| 30 | +- Fixed fontlib_SetFont ignore line spacing parameter option to always ignore. |
| 31 | + |
| 32 | +## Improvements |
| 33 | + |
| 34 | +- Made the toolchain's `memcpy` / `memmove` the default implementation. |
| 35 | +- Added assembly include files for <errno.h> <fenv.h> and <math.h> in the toolchain sources |
| 36 | +- Optimized `calloc`, `bss` zeroing, `strerror`, `perror`, `nanoprintf`, libload, random, and many CRT integer helper routines. |
| 37 | +- Added or improved fallback CRT routines that avoid shadow-register or interrupt-sensitive behavior for several multiplication and division paths. |
| 38 | +- Optimized ZX0/ZX7 decompression paths and added LZ4-backed asset workflows. |
| 39 | +- Optimized graphx circle routines and text entry points. |
| 40 | +- Optimized fatdrvce cluster and sector lookup/traversal. |
| 41 | +- Optimized multiply high routines. |
4 | 42 |
|
5 | 43 | # [v14.2](https://github.com/CE-Programming/toolchain/releases/tag/v14.2) (2026-01-13) |
6 | 44 |
|
|
0 commit comments