Releases: CE-Programming/toolchain
CE C/C++ Toolchain
The v12.1 toolchain includes some new features, bugfixes, and improvements! 🎉
Thanks to all the contributors!
This is primarily a bugfix release over 12.0, as well as supplying both native intel&ARM binaries for macOS!
Getting Started
Check out the CE C/C++ Toolchain Documentation.
Downloads
Windows: CEdev-Windows.zip
Linux: CEdev-Linux.tar.gz
macOS (intel): CEdev-macOS-intel.dmg
macOS (arm): CEdev-macOS-arm.dmg
Changelog
-
New features
- Added convbin support for bundles by @mateoconlechuga
- Added
isblank
function by @mateoconlechuga - Added
_fpclassifyf
and_isnormalf
by @ZERICO2005 - Added both intel+arm macOS releases by @adriweb
-
Bugfixes
- Fixed
_isinf
function by @runer112 - Fixed
__ftoll
ABI and left shift amount by @calc84maniac - Fixed graphx line clipping issue (#353) by @mateoconlechuga
- Fixed
msd_Close
msddrvce freezing issue (#477) by @mateoconlechuga - Fixed multiple issues with
inchar
/outchar
andfget
/fput
functions by @mateoconlechuga - Fixed some memory leaks in convimg by @mateoconlechuga
- Fixed
-
Improvements:
- Optimized all
isxxxxx
ctype.h functions by @calc84maniac / @mateoconlechuga - The
inchar
function now returnsint
to support EOF by @mateoconlechuga
- Optimized all
For a breakdown of changes, please see the changelog file.
CE C/C++ Toolchain (nightly)
Important
This is where all the latest development happens! (build is from the master branch)
Use only if you want a bleeding-edge toolchain (but mostly stable) or encounter any bugs as they might be squashed here.
This release is automatically updated.
Documentation is versioned per release; you can find the master
branch docs here. Use the sidebar's bottom selector to switch versions.
Downloads
- Windows: CEdev-Windows-nightly.zip
- Linux: CEdev-Linux-nightly.tar.gz
- macOS intel: CEdev-macOS-intel-nightly.dmg
- macOS arm: CEdev-macOS-arm-nightly.dmg
CE Libraries
- Libraries Group: clibs.8xg
- Libraries Zip: clibs_separately_in_zip.zip
v12.0
The v12.0 toolchain includes some new features, bugfixes, and improvements! 🎉
Thanks to all the contributors!
Most notable is support for 48-bit routines using int48_t
and uint48_t
, first proposed by @fundudeone and heavily optimized and improved by @calc84maniac! These types can be used in place of int64_t
and uint64_t
for better performance and size.
Getting Started
Check out the CE C/C++ Toolchain Documentation.
Downloads
Windows: CEdev-Windows.zip
Linux: CEdev-Linux.tar.gz
macOS: CEdev-macOS.dmg
Changelog
-
New features
- Added optimized 48-bit runtime routines by @calc84maniac / @fundudeone
- Added strftime implementation by @mateoconlechuga
- Added flip and rotate options for tilesets to convimg by @mateoconlechuga
- Added support for different memory allocators by @mateoconlechuga
-
Bugfixes
- Exit functions are no longer read-only by @commandblockguy
- Fixed off-by-one localtime day calculation (#469) by @mateoconlechuga
- Fixed clipped text respecting multiple transparent colors (#353) by @mateoconlechuga
- Fixed stop token in os_RunPrgm by @mateoconlechuga
- Fixed initializer_list definition by @jacobly0
- Fixed write crash in fileioc (#461) by @mateoconlechuga
- Fixed floating point multiply bug by @calc84maniac
- Fixed incorrect sign compare in __lcmpzero by @calc84maniac
- Fixed bug in fatdrvce that could corrupt the root directory when creating a file by @mateoconlechuga
- Fixed ldexpf behaviour for NaN and Inf by @ZERICO2005
- Fixed duplicated OS_TOK_STAT_F define by @adriweb
- Fixed some repository submodule issues by @myclevorname
- Fixed color quantization for unique colors in convimg by @mateoconlechuga
-
Improvements:
- Fixes/improvements for str[n]casecmp by @calc84maniac
- Fixes/improvements for GetStringInput by @calc84maniac
- Fix skipping of large USB transfers by @jacobly0
- Ensure interface is set in MSDDRVCE by @mateoconlechuga
- Optimize 24-bit and 32-bit and/or/xor operations by @calc84maniac
- Optimize malloc implementation by @calc84maniac
- CI macos improvements by @adriweb
- Greatly optimized the fatdrvce fat_SetFileBlockOffset function by @mateoconlechuga
- Enforce fatdrvce to only support uppercase filenames by @mateoconlechuga
- Added prefix and suffix options for convimg by @JonasVdS18
For a breakdown of changes, please see the changelog file.
CE C/C++ Toolchain (v11.2)
The v11.2 toolchain includes some new features, bugfixes, and improvements! 🎉
Thanks to all the contributors!
Getting Started
Check out the CE C/C++ Toolchain Documentation.
Downloads
Windows: CEdev-Windows.zip
Linux: CEdev-Linux.tar.gz
macOS: CEdev-macOS.dmg
Changelog
-
New features
- Add back dedicated timer functions by @mateoconlechuga
- Use timer 1 for clock and related functions by @mateoconlechuga
-
Bugfixes
- Fix sprintf/vsprintf/snprintf/vsprintf bounds checking by @mateoconlechuga
- Fixes for convimg (palette generation) by @mateoconlechuga
-
Improvements:
- Add framerate limiting example by @commandblockguy
- Ensure tools are compiled statically by @mateoconlechuga
- Improve macOS deployment tools by @adriweb
- Minor documentation improvements by @mateoconlechuga
For a breakdown of changes, please see the changelog file.
CE C/C++ Toolchain (11.1)
The v11.1 toolchain includes some new features, bugfixes, and improvements! 🎉
Thanks to all the contributors!
Getting Started
Check out the CE C/C++ Toolchain Documentation.
Downloads
Windows: CEdev-Windows.zip
Linux: CEdev-Linux.tar.gz
macOS: CEdev-macOS.dmg
Changelog
-
New features
- Changes fatdrvce API to make it easier to use by @mateoconlechuga
- Adds
os_GetTokenInput
to get tokenized input from the OS by @mateoconlechuga - Support hex string for fixed colors in convimg by @mateoconlechuga
-
Bugfixes
- Fixes
os_GetStringInput
to support more menus by @mateoconlechuga - Add some pointer checks to usbdrvce examples by @adriweb
- Change
OS_MATRIX_ELEMENT
to row-major by @Nikhil-42 - Fix 1-wide
gfx_Rectangle_NoClip
calls by @runer112 - Numerous fixes in both convbin and convimg by @mateoconlechuga
- Fixes
-
Improvements:
- Add comments for symbols to grahpx source code by @TIny-Hacker
- Improve error for long variable names by @mateoconlechuga
- Add VS Code IDE documentation by @commandblockguy
- Add names to some anonymous structures by @adriweb
- Update fasmg-ez80 support by @jacobly0
- Add more info about system values by @adriweb
- Allow for overriding of source file extensions by @mateoconlechuga
- Default example binaries to archive by @LogicalJoe
For a breakdown of changes, please see the changelog file.
CE C/C++ Toolchain (11.0)
The v11.0 toolchain includes support for working with USB devices! 🎉
Thanks to the hard work by @jacobly0, a new CE library named usbdrvce is available for interfacing with the USB port of the calculator in either host or device mode. Additionally, @commandblockguy has created the srldrvce library for communicating with USB serial-based protocols such as CDC and FTDI. For mass storage devices such as flash drives and SD cards, @mateoconlechuga implemented msddrvce and fatdrvce for reading and writing logical blocks on the drives, as well as providing functions for interacting with a FAT32-based filesystem.
These libraries took a long time to get to this point, and still are being worked on, so give them a try and report any issues you may encounter. Join our Discord/IRC chat in order to ask questions, or provide input on what you would like to see in terms of documentation for interfacing with these libraries.
Thanks to all the contributors!
Getting Started
Check out the CE C/C++ Toolchain Documentation.
Downloads
Windows: CEdev-Windows.zip
Linux: CEdev-Linux.tar.gz
macOS: CEdev-macOS.dmg
Changelog
- Add usbdrvce library for interfacing with the USB port by @jacobly0
- Add srldrvce library for interfacing with serial-based devices by @commandblockguy
- Add msddrvce and fatdrvce libraries for interfacing with mass storage devices by @mateoconlechuga
- Fix fileioc library
ti_ArchiveHasRoom
and addti_ArchiveHasRoomVar
function by @mateoconlechuga - Fix defines for OS_VAR_Z and OS_VAR_THETA by @commandblockguy
- Update convimg to support more conversion options by @mateoconlechuga
- Fix convimg option
max-entries
by @mateoconlechuga - Ensure spaces aren't provided in the program name by @mateoconlechuga
- Optimize utility function in fileioc by @jacobly0
- Optimize 24-bit right shift for much lower maximum runtime by @calc84maniac
- Improve macOS codesigning and nightly builds by @adriweb
- Update documentation for os_GetCSC and os_GetKey by @RealStoneSword
- Optimize __ishl for bounded execution time for larger shifts by @calc84maniac
For a breakdown of changes, please see the changelog file.
CE C/C++ Toolchain (10.2)
The v10.2 toolchain includes some new features, improvements, and bugfixes! 🎉
Thanks to all the contributors!
Getting Started
Check out the CE C/C++ Toolchain Documentation.
Downloads
Windows: CEdev-Windows.zip
Linux: CEdev-Linux.tar.gz
macOS: CEdev-macOS.dmg
CE Libraries
Download the latest CE Libraries to fully utilize the CE C/C++ Toolchain.
These libraries add runtime support for fast graphics, file access, keypad integration, and more.
Documentation for the libraries can be found here.
Changelog
- Add
os_Eval
andos_EvalVar
for direct evaluation of equations by @mateoconlechuga - Fix comparison of int32_t and int64_t by @runer112.
- Fix
printf
when printing certain floating point values by @mateoconlechuga. - Add automated DMG code signing / notarization for nightly macOS builds by @adriweb.
- Fix printing of
int32_t
by @jacobly0. - Fix
gfx_FloodFill
issue on bottom on screen wrapping by @mateoconlechuga. - Updated and improved
convfont
support with text-based fonts by @drdnar. - Change the type of CLOCKS_PER_SECOND to match clock_t by @commandblockguy.
- Deprecate
TI_REAL_TYPE
andti_Ans
style of macros by @mateoconlechuga. - Deprecate
sk_key_t
andti_var_t
typedefs by @mateoconlechuga. - Compiler fix for missing register class check by @jacobly0.
- Added comments for 8XP programs in
convbin
by @mateoconlechuga. - Added transparent pixel support in
convimg
by @mateoconlechuga. - General documentation updates and improvements.
For a much more detailed list of changes, please see the changelog file.
CE C/C++ Toolchain (10.1)
The toolchain v10.1 is a bugfix release over v10.0, along with some new features and improvements! 🎉
Thanks to all the contributors!
Getting Started
Check out the CE C/C++ Toolchain Documentation.
Downloads
Windows: CEdev-Windows.zip
Linux: CEdev-Linux.tar.gz
macOS: CEdev-macOS.dmg
CE Libraries
Download the latest 'Standard' CE Libraries to fully utilize the CE C Toolchain.
These libraries add runtime support for fast graphics, file access, keypad integration, and more.
Documentation for the libraries can be found here.
Changelog
- Fixes invalid jump targets generated by the compiler by @jacobly0.
- Fixes
strcasecmp
compilation. - Fixes
make debug
when LTO is enabled. - Adds
byteswap.h
header file as standard. - Added
zx0
compression option for generating compressed programs viaconvbin
by @mateoconlechuga. - Added
zx0
compression option for images converted withconvimg
. - Moves C++ includes to separate include directory to ensure no C include overlap.
- Added optional LibLoad library support via
LIBLOAD_OPTIONAL
makefile option. - Implement optimized
lbswap
andllbswap
by @runer112 in #386 - Documentation updates and improvements.
For a much more detailed list of changes, please see the changelog file.
CE C/C++ Toolchain (10.0)
The toolchain v10.0 is a major update release over v9.x, with new features/libraries/docs, and lots of improvements! 🎉
Thanks to all contributors!
Getting Started
Read the Getting Started Guide.
Downloads
Windows: CEdev-Windows-v10.0.zip
Linux: CEdev-Linux-v10.0.tar.gz
macOS: CEdev-Mac-v10.0.dmg (not available, check v10.1)
CE Libraries
Download the latest 'Standard' CE Libraries to fully utilize the CE C Toolchain.
These libraries add runtime support for fast graphics, file access, keypad integration, and more.
Documentation for the libraries can be found here.
Changelog
- New: 64-bit math support. By @runer112 in #354
- New: LTO (link-time optimization) is now available and enabled by default - it may help generating smaller binaries.
- New: Ellipses functions added to GraphX. By @PeterTillema.
- Bugfixes in the ez80-clang compiler, in the tooling (convimg, convbin...) and libload
- Bugfixes in standard functions (
asin
,strrchr
,strtok
...), OS ones (os_RealAsinRad
,os_RealAcosRad
), library ones (ti_RclVar
), and headers. - Optimize and add static math functions. By @runer112 in #354
- Complete refactor of the headers to simplify and better split features. By @drdnar in #378
- Documentation: Lots of improvements and details added, following the various refactors listed above, but also typos, clarifications, etc.
For a much more detailed list of changes, please see the changelog file.
CE C/C++ Toolchain (9.2.2)
Getting Started
Read the Getting Started Guide.
Downloads
Windows: CEdev-Windows-v9.2.2.zip
Linux: CEdev-Linux-v9.2.2.tar.gz
Mac: CEdev-Mac-v9.2.2.dmg
CE Libraries
Download the latest 'Standard' CE Libraries to fully utilize the CE C Toolchain.
These libraries add runtime support for fast graphics, file access, keypad integration, and more.
Documentation for the libraries can be found here.
Changelog
This is a bugfix release over v9.2, make sure to update!
- Fix an edge case when creating multiple appvars with
convimg
- Prevent
fileioc
from crashing if the user provides an invalid slot
For a more detailed changelog of v9.2, please see the changelog file.