[Main]
Title=History

[Top]
<B>Note:</B> Click <A HREF="$$INFOLINK(history)">here</A> for the history of the library, or <A HREF="$$INFOLINK(ide/history)">here</A> for the history of the IDE.
<BR><BR>

<B>June 27, 2009: GCC4TI v0.96 Beta 10, ld-tigcc v1.09, Library v2.72, IDE v2.96</B>

<UL>
<LI>Bugfix: IDEs: add more instructions to the default lists used for syntax coloring.</LI>
<LI>Added: import most of the TI-68k Developer Utilities' "pctools" (formerly TIGCC Tools
Suite) where they belong.</LI>
<LI>Added: documentation: merged several long-standing contributions.</LI>
<LI>Updated: pstarter: removed the essentially unused shrnklib support; optimized the
ttunpack-fast code by applying the same calling convention changes as those applied in the
ttunpack code (saves about 34 bytes, i.e. > 2%).</LI>
<LI>Improved: tprbuilder: return a nonzero exit code if a command run by tprbuilder returned
a nonzero exit code.</LI>
<LI>Bugfix: examples: fix an example whose build has failed since an untested modification
performed in 2005...</LI>
<LI>Added: examples: scripts to check buildability (with tprbuilder) of the examples.</LI>
<LI>Bugfix: gcc: fix a 64-bit compatibility problem in the AMS float support (patch applied on
top of GCC), which triggered harmless warnings in the generated assembly code.</LI>
<LI>Greatly improved: build scripts ("canadian cross"-compilation support, more traces, better
portability, improved packaging, etc.). Most improvements were developed by Lionel Debroux and
Patrick Pélissier.</LI>
<LI>Bugfix: tigcc: fix the build of the Custom DLL example by adding "-n" when invoking ld-tigcc
to generate the decompressor+launcher.</LI>
<LI>Bugfix: examples: rename a number of examples to avoid on-calc name clashes.</LI>
<LI>Updated: a number of size optimizations in TIGCCLIB, one of which touches the very commonly
used SAVE_SCREEN startup code. Most optimizations were developed by Martial Demolins.</LI>
<LI>Updated: history files and READMEs.</LI>
</UL>

<B>January 3, 2009: GCC4TI v0.96 Beta 9, ld-tigcc v1.08, Library v2.71, IDE v2.95</B>

<UL>
<LI>Bugfix: IDEs: add various instructions and macros to the default lists used for
syntax coloring.</LI>
<LI>Bugfix: Fix gcc.exe for Vista (GCC 4.1.2-tigcc-pre10).</LI>
<LI>Updated: Patched GCC 4.1.2 (release) and GNU as 2.16.1 with the TIGCC patch.</LI>
<LI>Bugfix: ld-tigcc: fix warning and runtime abort with _FORTIFY_SOURCE.</LI>
<LI>Bugfix: ld-tigcc: adjust TargetDistance after return optimization (fixes bra.s +0 in SIDE).</LI>
<LI>Bugfix: tprbuilder: fix buffer overflow in MIN_AMS handling.</LI>
<LI>Bugfix: documentation: various tweaks and fixes.</LI>
<LI>Bugfix: include & library: various tweaks and fixes.</LI>
<LI>Added: ld-tigcc: integrate PuCrunch compression, add --pack switch.</LI>
<LI>Added: ld-tigcc: implement --output-data-var switch (allows specifying the on-computer
file name for the data variable).</LI>
<LI>Added: ld-tigcc: better handling of on-calc variable names.</LI>
<LI>Bugfix: ld-tigcc: ignore "relative reloc to symbol in different section" error in the
".deleted" section. This fixes --remove-unused with debugging information and -freg-relative-an.</LI>
<LI>Bugfix: ld-tigcc: seek back to the end after FlashOS relocation so the dummy signature ends
up at the end and not the place of the last relocation in the standalone version.</LI>
<LI>Updated: documentation tools: replace Delphi DumpSections with equivalent shell script,
Port ConvertTexi from Delphi to C++ with Qt 4.</LI>
<LI>Bugfix: ld-tigcc: fix "relative reloc at `0xnnn' to `foo' in different section" errors
when using --remove-unused with debugging information and relocated ROM_CALLs, RAM_CALLs or 
library calls.</LI>
<LI>Added: start the GCC4TI fork of TIGCC, with a different decision scheme.</LI>
<LI>Added: ld-tigcc: support for Flash OS timestamps.</LI>
<LI>Added: tigcclib: Flash OS library (flashos.a).</LI>
<LI>Added: includes: stdint.h and a partial inttypes.h (the platform's vcbprintf doesn't
support 64-bit integers anyway).</LI>
<LI>Added: ld-tigcc: add implementation and documentation of special __ld_bss_even_end
symbol.</LI>
<LI>Updated: Delphi IDE: restore VTI support <B>in addition to</B> TIEmu support, as
requested by multiple experienced TI-68k programmers for two years.</LI>
<LI>Bugfix: ld-tigcc: compilation fix.</LI>
</UL>

<B>October 31, 2006: TIGCC v0.96 Beta 8, ld-tigcc v1.07, Library v2.7, IDE v2.94</B>

<UL>
<LI>Added: A new installer for the Win32 release, based on
<A HREF="http://nsis.sourceforge.net">NSIS</A>.</LI>
<LI>Updated: Many documentation and library updates, see the
<A HREF="$$INFOLINK(history)">TIGCCLIB history</A> for details.</LI>
<LI>Added: A completely new ExePack (PPG) launcher, with an almost halved size.</LI>
<LI>Added: Support for reordering of startup sections (sharing the same startup number) in the
linker.</LI>
<LI>Added: Support for Mlink-format relocs
(<A HREF="$$INFOLINK(httigcc/advanced_mlinkrelocs)">MLINK_FORMAT_RELOCS</A>,
<A HREF="$$INFOLINK(httigcc/advanced_mlinkbss)">MLINK_FORMAT_BSS</A>,
<A HREF="$$INFOLINK(httigcc/advanced_mlinkrom)">MLINK_FORMAT_ROM_CALLS</A>,
<A HREF="$$INFOLINK(httigcc/advanced_mlinkdata)">MLINK_FORMAT_DATA_VAR</A>).</LI>
<LI>Added: Support for debugging information in DWARF 2 format (to be used with a GDB-enabled
TiEmu), including some toolchain bugfixes required to support this feature.</LI>
<LI>Added: Support for the new _nostub comment specification 1.01 and its new
<A HREF="$$INFOLINK(httigcc/comment_authors)">COMMENT_AUTHORS</A> entry.</LI>
<LI>Updated: Patched GCC 4.1.2 (prerelease) and GNU as 2.16.1 with the TIGCC patch.</LI>
<LI>Bugfix: References in assembly code with an explicitly-coded size are now marked unoptimizable
in order to make the linker honor the explicit size as well, not just the assembler.</LI>
<LI>Bugfix: <CODE>tprbuilder</CODE> doesn't crash on long <CODE>tigcc.exe</CODE> command lines
under Windows 9x/Me anymore.</LI>
<LI>Bugfix: <CODE>ld-tigcc</CODE> doesn't try to range-cut in files compiled without range-cutting
support (in programs containing files compiled both with and without range-cutting support)
anymore.</LI>
<LI>Bugfix: Removing unused sections in <CODE>ld-tigcc</CODE> now really removes <I>all</I> unused
sections.</LI>
<LI>Bugfix: Uninitialized static or global variables are now always emitted to the expected section
by GCC.</LI>
<LI>Updated: Bugfixes and improvements to external data variable support.</LI>
<LI>Bugfix: Fixed a segfault during constant-merging in <CODE>ld-tigcc</CODE>.</LI>
<LI>Bugfix: Fixed invalid kernel ROM_CALL or RAM_CALL tables emitted by <CODE>ld-tigcc</CODE> when
unused section removal optimized all ROM or RAM_CALLs away.</LI>
<LI>Bugfix: <CODE>A68k</CODE> doesn't crash on EQUs doing arithmetic with other EQUs which do
arithmetic with undefined symbols anymore, this invalid code now gives a proper error message.</LI>
<LI>Bugfix: Fixed <CODE>-v</CODE> and <CODE>-v0</CODE> being limited to 255 characters in the
Windows command-line compiler.</LI>
<LI>Added: The command-line compiler now supports <CODE>-isystem</CODE> properly.</LI>
<LI>Bugfix: Fixed compilation problems on *BSD and Mac OS X.</LI>
<LI>Added: The standalone version of <CODE>ld-tigcc</CODE> supports a new
<CODE>--outputbin-main-only</CODE> switch to be used by KTIGCC.</LI>
<LI>Updated: ExePack compression support is now Free Software.</LI>
<LI>Updated: On Windows, <CODE>MSVCRT.DLL</CODE> is now required. This DLL comes with all Windows
versions since Windows 95 OSR 2. For the original Windows 95, it is usually installed by Internet
Explorer or Microsoft Office.</LI>
<LI>Bugfix: Fixed *nix install script not to attempt symlinking <CODE>os.h</CODE> to
<CODE>OS.h</CODE> on case-insensitive file systems.</LI>
<LI>Bugfix: Fixed external data variable support for compressed programs in the *nix command-line
compiler.</LI>
<LI>Bugfix: Fixed multiple uses of -Wa or -WA in the *nix command-line compiler.</LI>
<LI>Updated: The IDE now supports TiEmu (20061030 or later) instead of VTI for debugging/testing.</LI>
</UL>

<B>October 24, 2004: TIGCC v0.95, ld-tigcc v1.06, Library v2.6, IDE v2.92</B>

<UL>
<LI>Added: An entirely new <A HREF="$$INFOLINK(ld)">linker</A>, as a basis for
all other improvements (see <A HREF="$$INFOLINK(httigcc/advanced)">Advanced Options of TIGCC</A>).</LI>
<LI>Added: Support for dynamic BSS sections in nostub mode.</LI>
<LI>Added: Linker-side <A HREF="$$INFOLINK(ld/bincode)">code optimization</A>.</LI>
<LI>Added: Support for data variables.</LI>
<LI>Added: Support for <A HREF="$$INFOLINK(gnuexts/SEC85_constructor)">contructors
and destructors</A>.</LI>
<LI>Added: Experimental optional Fargo II support.</LI>
<LI>Updated: Patched GCC 3.3.1 with the TIGCC patch.</LI>
<LI>Updated: Updated PPG launcher created by the
<A HREF="http://tict.ticalc.org/">TI-Chess Team</A>.</LI>
<LI>Added: Basic TI-89 Titanium support.</LI>
</UL>

<B>January 24, 2003: TIGCC v0.94 SP4, Obj2TI v1.01e, Library v2.5 SP4, IDE v2.91</B>

<UL>
<LI>Bugfix: Fixed <A HREF="$$LINK(error.h/ER_throw)">ER_throw</A> bug with
4-digit error numbers.</LI>
<LI>Bugfix: Fixed bug in
<CODE><A HREF="$$INFOLINK(htretval/retval)">ENABLE_ERROR_RETURN</A></CODE>
with <CODE><A HREF="$$INFOLINK(httigcc/minams)">MIN_AMS</A></CODE>
values of 200 or higher.</LI>
<LI>Bugfix: Removed the rejection of a minimum AMS version of 2.07.</LI>
</UL>

<B>January 13, 2003: TIGCC v0.94 SP3, Obj2TI v1.01e, Library v2.5 SP3, IDE v2.91</B>

<UL>
<LI>Bugfix: Incorporated a fix for <A HREF="$$LINK(stdio.h/fclose)">fclose</A>.</LI>
</UL>

<B>January 12, 2003: TIGCC v0.94 SP2, Obj2TI v1.01e, Library v2.5 SP2, IDE v2.91</B>

<UL>
<LI>Bugfix: Important bugfixes for <A HREF="$$LINK(stdio.h/fopen)">fopen</A>,
<A HREF="$$LINK(stdio.h/fread)">fread</A> and
<A HREF="$$LINK(stdio.h/fwrite)">fwrite</A>.</LI>
<LI>Bugfix: Changed <A HREF="$$LINK(default.h/import_binary)">import_binary</A> to
export the symbol, and changed the IDE to make it work with it.</LI>
</UL>

<B>December 30, 2002: TIGCC v0.94 SP1, Obj2TI v1.01e, Library v2.5 SP1, IDE v2.91</B>

<UL>
<LI>Bugfix: Fixed <CODE><A HREF="$$INFOLINK(httigcc/advanced_fileinuse)">SET_FILE_IN_USE_BIT</A></CODE>.</LI>
<LI>Bugfix: Fixed the prototype of <A HREF="$$LINK(rsa.h/MD5Update)">MD5Update</A>.</LI>
</UL>

<B>December 21, 2002: TIGCC v0.94, Obj2TI v1.01e, Library v2.5, IDE v2.91</B>

<UL>
<LI>Updated: Patched GCC 3.2.1 with the TIGCC patch, with a lot of modifications.</LI>
<LI>Updated: Greatly changed the internal structure of the library.</LI>
<LI>Added: Applied a patch for argument passing through registers.</LI>
<LI>Added: Implemented <A HREF="$$INFOLINK(httigcc/advanced_flinerom)">F-Line ROM Calls</A>.</LI>
<LI>Added: Implemented support for PreOS libraries in <CODE>obj2ti</CODE>.</LI>
<LI>Bugfix: Repaired the <B>'-freg-relative-<I>reg</I>'</B> option.</LI>
<LI>Updated: Created an option to ignore system folders in the setup program.</LI>
<LI>Added: Finally wrote a program to update the version numbers in all places.</LI>
<LI>Updated: Enhanced the help file tools to generate the header files as well.</LI>
<LI>Added: Added tools to edit the help system files.</LI>
<LI>Added: Implemented HTML checking for help system files.</LI>
<LI>Added: Added a switch to <CODE>tigcc</CODE> to create archives.</LI>
<LI>Updated: Made <CODE>tigcc</CODE> look for archives in the <CODE>'Lib'</CODE> subfolder of the installation.</LI>
<LI>Updated: Repaired some bugs to support debugging switches like <B>'-ggdb'</B>.</LI>
<LI>Updated: Recompiled all programs under <A HREF="http://www.mingw.org/">MinGW32</A>, thereby removing the need to use <A HREF="http://www.cygwin.com/">Cygwin</A>.</LI>
<LI>Updated: Compressed setup program using <A HREF="http://upx.sourceforge.net/">UPX</A>.</LI>
<LI>Added: Added "See Also" links to the help system.</LI>
<LI>Added: Extracted all examples from the documentation, with a lot of help from <A HREF="mailto:joelt49@yahoo.com">Joel Thompson</A>.</LI>
<LI>Added: Added support for <A HREF="$$INFOLINK(htdll)">nostub libraries</A>.</LI>
<LI>Added: Added missing <CODE><A HREF="$$INFOLINK(gnuexts/SEC72)">long long</A></CODE> operator support.</LI>
</UL>

<B>February 3, 2002: TIGCC v0.93, Obj2TI v1.01, Library v2.41, IDE v2.9</B>

<UL>
<LI>Updated: A lot of updates in the IDE.</LI>
<LI>Updated: Completely redesigned the documentation.</LI>
<LI>Updated: <A HREF="mailto:mig53@yahoo.com">Peter J. Rowe</A> corrected grammar and spelling mistakes in a large part of the doc.</LI>
<LI>Added: Allowed the use of paths for files compiled with <CODE>tigcc</CODE>.</LI>
<LI>Bugfix: Fixed a problem with linking multiple A68k files.</LI>
<LI>Added: Added the <B>'-WA,...'</B> option to pass switches to <CODE>a68k</CODE>.</LI>
<LI>Bugfix: Cleaned up the whole patch code, including the support for <A HREF="$$LINK(stdlib.h/exit)">exit</A> and <A HREF="$$LINK(stdlib.h/atexit)">atexit</A>.
Fixes were developed by Patrick Pélissier, Kevin Kofler, and Stephan Effelsberg.</LI>
<LI>Bugfix: Used an updated version of the ExePack launcher by Thomas Nussbaumer, with fixes contributed by Olivier Armand and Kevin Kofler.</LI>
<LI>Bugfix: Small fixes in the GNU and A68k assemblers.</LI>
<LI>Updated: Changed the setup program to only overwrite the files that were really changed.</LI>
</UL>

<B>November 25, 2001: TIGCC v0.92 SP2, Obj2TI v1.01, Library v2.4 SP1, IDE v2.8 SP4</B>

<UL>
<LI>Updated: Applied the TIGCC patch to GCC 3.0.2.</LI>
<LI>Bugfix: Fixed a bug which made uninitialized global variables slower and larger.</LI>
<LI>Added: Automated the setup creation process to shorten release cycles.</LI>
<LI>Updated: Detected Windows NT in setup.</LI>
</UL>

<B>November 9, 2001: TIGCC v0.92 SP1, Obj2TI v1.01, Library v2.4 SP1, IDE v2.8 SP3</B>

<UL>
<LI>Bugfix: Fixed the problem in obj2ti with uninitialized global variables in kernel mode.</LI>
<LI>Bugfix: Fixed the A68k integration problem (in objcopy) which prevented RAM calls from being used in 16-bit addressing mode.</LI>
<LI>Bugfix: Fixed the IDE bug which made closing large files really slow.</LI>
<LI>Added: In the IDE, it is now possible to switch between files quickly using <CODE>Ctrl+Tab</CODE>.</LI>
<LI>Updated: The program decompressor is stored as an object file now, instead of an assembly file; this removes the need to run the assembler for compression.</LI>
<LI>Updated: Greatly updated the setup program to prevent legal problems.</LI>
</UL>

<B>September 29, 2001: TIGCC v0.92, Obj2TI v1.0, Library v2.4 SP1, IDE v2.8 SP2</B>

<UL>
<LI>Updated: Applied the TIGCC patch to GCC 3.0, which introduces some optimizations and more warnings.</LI>
<LI>Updated: Replaced Xavier's linker with new <CODE>obj2ti</CODE> by <A HREF="mailto:Julien@tigcc.ticalc.org">Julien Muchembled</A>.</LI>
<LI>Added: Added an AmigaOS to COFF converter for A68k programs. This allows for seamless A68k integration in TIGCC.</LI>
<LI>Updated: Included new 32-bit version of A68k by <A HREF="mailto:ghk.kofler@gmx.net">Kevin Kofler</A>.</LI>
<LI>Updated: Implemented floating point constant folding. The floating point system can now be used the same way as on any other machine.</LI>
<LI>Added: The <B>'-Wl,...'</B> and <B>'-Wa,...'</B> options are now available in the command line compiler. This means that you can pass options to the GNU assembler and GNU linker.</LI>
</UL>

<B>May 1, 2001: TIGCC v0.91 SP1, Link v1.2, Library v2.4 SP1, IDE v2.8 SP1</B>

<UL>
<LI>Bugfix: Kernel support is fixed.</LI>
<LI>Bugfix: Support for exit and atexit is clean now. Thanks to <A HREF="mailto:Julien.Muchembled@netcourrier.com">Julien Muchembled</A> for the information.</LI>
<LI>Added: A short credits list is now included in the documentation.</LI>
<LI>Updated: Little maintainance updates in the IDE had to be made.</LI>
<LI>Updated: A few minor bugfixes were also necessary.</LI>
</UL>

<B>March 24, 2001: TIGCC v0.91, Link v1.2, Library v2.4, IDE v2.8</B>

<UL>
<LI>Added: Support for multiple files is now stable since the GNU linker is used.</LI>
<LI>Added: Archives (extension <CODE>.a</CODE>) are now supported. A file <CODE>tigcc.a</CODE> has been created, which is included automatically in all projects.</LI>
<LI>Added: Important debug information is now included in the <CODE>.s</CODE> file(s) if a program is compiled with the <B>'-g'</B> switch or with the corresponding option in the IDE.</LI>
<LI>Added: Support for binary values (<CODE>0b...</CODE>) has been implemented, but its use is strongly deprecated for portability reasons.</LI>
<LI>Updated: Various updates in the IDE have been made.</LI>
</UL>

<B>December 18, 2000: TIGCC v0.9, Link v1.2, Library v2.3, IDE v2.71</B>

<UL>
<LI>Updated: Fixed various bugs in the compiler.</LI>
<LI>Added: Implemented native floating point support.</LI>
<LI>Updated: The IDE and <CODE>tigcc</CODE> now include the necessary patches automatically.</LI>
<LI>Bugfix: GCC now works around the uninitialized data bug if the <B>'-mmlink'</B> switch is not used. This makes programs larger, but it is possible not to initialize data and still compile the program correctly until the bug is fixed.</LI>
<LI>Added: The compiler now accepts the switches <B>'-mpcrel'</B>, <B>'-mlong'</B>, <B>'-mno-tios'</B>, and <B>'-mmlink'</B>.</LI>
<LI>Updated: <CODE>tigcc</CODE> now accepts the <B>'-bsr'</B> switch for using bsr code where possible, the <B>'-pack'</B> switch for compression, and <B>'v'</B> as well as <B>'-v0'</B>.</LI>
<LI>Updated: Made some additions and fixes in the IDE and the library.</LI>
<LI>Updated: Changed the directory structure again, since the previous one didn't really make sense any more.</LI>
</UL>

<B>October 11, 2000: TIGCC v0.8, Link v1.2, Library v2.22, IDE v2.7</B>

<UL>
<LI>Updated: Recompiled GCC using the latest tools and sources.</LI>
<LI>Updated: Included latest versions of the IDE and the Library.</LI>
</UL>

<B>June 26, 2000: TIGCC v0.7, Link v1.2, Library v2.0, IDE v2.6</B>

<UL>
<LI>Updated: The linker now supports <CODE>EXTRA_RAM_TABLE</CODE> symbols.</LI>
<LI>Updated: The linker accepts a new switch: <B>'-outputbin'</B> will make it output the raw executable file as it is on the calculator. Of course this <CODE>'.bin'</CODE> file can not be transferred to the calculator.</LI>
<LI>Updated: The linker will display the compiled file size even with the quiet switch <B>'-q'</B> enabled.</LI>
<LI>Updated: Included library is TIGCCLIB 2.0.</LI>
<LI>Added: Included TIGCC IDE by Sebastian Reichelt.</LI>
<LI>Updated: The directory structure has been completely changed and is now clearer.</LI>
<LI>Updated: The installation is a lot easier thanks to Sebastian Reichelt's setup program.</LI>
</UL>

<B>April 6, 2000: TIGCC v0.65, Link v1.1, Library v1.5</B>

<UL>
<LI>Bugfix: sometimes some weird characters were appended to the file name and it wasn't compiled.</LI>
<LI>Updated: TIGCCLIB is now version 1.5.</LI>
</UL>

<B>Februar 5, 2000: TIGCC v0.6, Link v1.1, Library v1.1</B>

<UL>
<LI>Added: The library tigcclib by Zeljko Juric is added in the package.</LI>
<LI>The source of <CODE>tigccins</CODE> (the installation program) is included in the distribution.</LI>
<LI>Bugfix: Libraries are now compiled correctly (there was a strange bug before).</LI>
<LI>Bugfix: Linking multiple object files now seems to work perfectly (mail
<A HREF="mailto:xvassor@mail.dotcom.fr">Xavier Vassor</A> if you find a bug).</LI>
<LI><CODE>link</CODE>, <CODE>tigcc</CODE>, <CODE>tigccins</CODE> are now 32-bit
console programs (instead of 16-bit DOS programs)</LI>
</UL>

<B>September 26, 1999: TIGCC v0.51, Link v1.01</B>

<UL>
<LI>Bugfix: C symbols that where exported out-of-order by GCC (i.e.
<CODE>library@0000</CODE>, <CODE>library@0002</CODE>, <CODE>library@0001</CODE>...)
are now inserted properly in the <CODE>.89z</CODE>/<CODE>.9xz</CODE> file. This will make it possibe to write libraries in C the way it should be done.</LI>
<LI>Bugfix: The <CODE>_comment</CODE> symbol is now properly recognized in both C and
assembly programs.
Added: Both <CODE>tigcc</CODE> and <CODE>link</CODE> now have the <B>'-q'</B>
option for quiet assembling or compilation. Does not affect warnings and errors.</LI>
<LI>The source of <CODE>link</CODE> and <CODE>tigcc</CODE> is included in the distribution.</LI>
</UL>

<B>July 16, 1999: TIGCC v0.5, Link v1.0</B>

<UL>
<LI>Initial release.</LI>
</UL>
