ticalc.org
Basics Archives Community Services Programming
Hardware Help About Search Your Account
   Home :: Archives :: News :: TIGCC v0.8 Released

TIGCC v0.8 Released
Posted by Eric on 13 October 2000, 01:33 GMT

Since we haven't had much activity lately, I thought it fitting to post on some Relatively Big News™ today. The TIGCC Team, which includes such illustrious programmers as Jean Canazzi, Sebastian Reichelt, Xavier Vassor, and Zeljko Juric, have released TIGCC v0.8. For this version, TIGCC has been completely patched and recompiled from scratch. Version 0.8 also includes several major updates to the IDE. You can download TIGCC v0.8 here.

 


The comments below are written by ticalc.org visitors. Their views are not necessarily those of ticalc.org, and ticalc.org takes no responsibility for their content.


Re: TIGCC v0.8 Released
Jason Baronciani  Account Info
(Web Page)

He's outdone himself with this one. Finally, we dont have to wait for the syntax to be highlighted....

     13 October 2000, 02:15 GMT

Re: TIGCC v0.8 Released
Amalfi Marini  Account Info
(Web Page)

It's the IDE like the DJGPP-rhide one? I like to see colors when coding, for example:

printf("%d",var);

printf will apear in yellow, "%d" in green, var in yellow and ( , ) in white... this is very helpful, it's easy to see the different parts in every command.

     13 October 2000, 05:52 GMT


Re: Re: TIGCC v0.8 Released
Sebastian Reichelt  Account Info
(Web Page)

Yes. You can even define lists of words that will have different colors, for example "printf", "printf_xy", and "DrawStr" could all have another color from the rest. Moreover, you can define different colors for different levels of parentheses.

     13 October 2000, 16:25 GMT


Re: Re: Re: TIGCC v0.8 Released
Amalfi Marini  Account Info
(Web Page)

COOL! I have downloaded it...but it runs in a window, I though it was a DOS program...COOL!!

     13 October 2000, 18:11 GMT

Re: TIGCC v0.8 Released
Sebastian Reichelt  Account Info
(Web Page)

Sebastian Reichelt, et. al.?

I think most of the people in the TIGCC team (i.e. Xavier Vassor, Zeljko Juric, Jean Canazzi) are actually more important than me.

     13 October 2000, 08:53 GMT

Re: Re: TIGCC v0.8 Released
Samir Ribic  Account Info
(Web Page)

Trail could lead to Richard Stallman, initiator of GNU movement.

     13 October 2000, 13:57 GMT


Re: Re: TIGCC v0.8 Released
Paulo Marques  Account Info

but you're the visual guy! ;) shows you how the PC world works...
On a better use of space:
thanks guys! na TICT too! we love you! :)
---
Cd_Slayer

     13 October 2000, 20:46 GMT


Re: Re: Re: TIGCC v0.8 Released
Sebastian Reichelt  Account Info
(Web Page)

> but you're the visual guy

This, or the fact that I made the setup program, and therefore uploaded it and sent a mail to news@ticalc.org.

     14 October 2000, 01:12 GMT

Re: TIGCC v0.8 Released (with sources!!!)
mmu_man  Account Info
(Web Page)

Wow :) There is the source code :) (to the news author: please do include the link to the source package on such news, as Nick used to do-- though I didn't have to search for long)
I'll be able to recompile the 'linker' under Linux, and produce a TiGcc Package for Linux (The compiler now works *very* well, I even managed to recompile the current Prosit kernel on it--BTW Linux will be the _official_ Prosit devel platform, since I don't want to(also cannot) work under Windows), which will even be more powerful than the windows tigcc :-) (what about Fargo, [tie], ...)
For those who would like to test an alternative to the IDE, you can download a windows version of XEmacs ('the Best Editor in the world'), see the link.

     13 October 2000, 22:34 GMT


Re: Re: TIGCC v0.8 Released (with sources!!!)
Sebastian Reichelt  Account Info
(Web Page)

> There is the source code

Of course, because it now exists. The full source currently resides only on my hard drive, but I'm going to make a CD (which people can theoretically request) just to make sure the whole 300 MB of my Cygwin installation will never be lost. In case you are wondering, I was the one who repatched and recompiled it, but it wouldn't have been possible without the help of Jean Canazzi. I just thought I'd tell you: Just to be sure that everything really works, include the switches "-m68000 -mshort -fcaller-saves" in the command line. They might not be needed at all (I don't think they actually do anything in this case; the last two of them were from the TIGCC for Linux sources), but then again they might be important in some situations.

> The compiler now works *very* well

This one is for all: There has been one problem reported so far. If you have an empty loop that just checks for _rowread to return something but doesn't have anything in its body, and have optimization turned on, the loop might never return. I hope this can be fixed somehow. You can work around this bug by putting "idle()" into the body.

> For those who would like to test an alternative to the IDE, you can download a windows version of XEmacs ('the Best Editor in the world'), see the link.

I'll try it to compare it with my IDE (which will have a sprite editor soon, btw). Do I really have to download 23 MB, though? This is not fun, really, because I'm running over a relatively slow wireless network at home. Please tell me if there is a less bloated version available somewhere. And I just thought you'd want to know that the link doesn't work because ticalc.org put "http://" in front of it. If you remove that, it works fine.

     14 October 2000, 01:03 GMT

Re: Re: Re: TIGCC v0.8 Released (with sources!!!)
Zeljko Juric  Account Info
(Web Page)

> If you have an empty loop that just checks for _rowread to return something but doesn't have anything in its body, and have optimization turned on, the loop might never return.

Hmmm... So I need to rewrite _rowread to be a inline hex-array function (like functions from stdio.h) instead of smart macro. GNU C don't know how to "optimize" a lot of hex values casted to a function type (because it don't have a program flow), so it will not cause any "damage" by unwanted optimizations.

     14 October 2000, 08:30 GMT


Re: Re: Re: Re: TIGCC v0.8 Released (with sources!!!)
Scott Noveck  Account Info
(Web Page)

Zeljko, how about including the source code to hex-array functions commented out in the header files? That way, if somebody wants to modify or use your original routines, they can do so.

I've already found reason to modify the sprite routines to make them handle grayscale sprites - sure, I could make another function that calls the sprite routine twice - once for each plane - but that would add a lot of overhead. I've also stolen your _rowread for use in one of my sample apps, since there was no need to write my own - I'd hate to see it included only as a hex array, in which case I would have had to waste the time to rewrite it.

     14 October 2000, 20:58 GMT


Re: Re: Re: Re: Re: TIGCC v0.8 Released (with sources!!!)
Zeljko Juric  Account Info
(Web Page)

All routines which are given as hex arrays are also given as full C or ASM sources in a separate file called "sources", so you can look everything. I thought that it is better not to overload header files itself.

     14 October 2000, 21:16 GMT


Re: Re: Re: TIGCC v0.8 Released (with sources!!!)
mmu_man  Account Info
(Web Page)

> Of course, because it now exists.
I know about the story :) It wasn't to blame anyone... just to say I'll be able to work.
> include the switches "-m68000 -mshort -fcaller-saves"
Well, actually, not -fcaller-saves, but -fcall-used-d2, as only this is clobbered by function calls, it allows for better optimization :)
Concerning the -m68000, Why in the patch do you set all those defines to 0 ??? (what if I put a 68030 in my TI ??) :

// TIGCC
#define TARGET_68020 0

BTW do you know you can change the default target architecture (to 68000 for example...), saving the need to put a -m68000 flag on the command line. I think it also apply to -mshort...
I'm thinking about including a -mti flag so it changes the defaults (even return convention) only when compiling TI programs...

NTEmacs whould be smaller (thought its interface is prety ugly, but it's Emacs, not XEmacs)... Talking about sprites, (X)Emacs has an XPM mode which allows it to edit .xpm bitmaps, which is worth a look (of course format conversion is needed to have a sprite then, but... And the XPM format is plain ASCII file :) )

ftp://ftp.lip6.fr/pub/ emacs/ntemacs/latest/ (remove the space)

P.S.: Sorry for the broken link :(

     14 October 2000, 10:34 GMT


Re: Re: Re: Re: TIGCC v0.8 Released (with sources!!!)
Sebastian Reichelt  Account Info
(Web Page)

> Well, actually, not -fcaller-saves, but -fcall-used-d2

I changed the definition of CALL_USED_REGISTERS in m68k.h so you don't need this. Are you saying that "-fcaller-saves" is definitely not needed? I just took it from the TIGCC for Linux package; I really don't know.

> Concerning the -m68000, Why in the patch do you set all those defines to 0 ???

To (hopefully) disable code to be created for other processors in any case. I think I found out how to declare -m68000 by default now.

> what if I put a 68030 in my TI ??

Yeah right!

> BTW do you know you can change the default target architecture...

I needed to know the order in which the header files are included. Now I know that you just have to look at m68k-coff.h, which includes m68k-none.h, which includes m68k.h. The modification you have to make are probably mostly to m68k-none.h. I found out that none of these header files actually produce any code, so changing defines later has the effect of changing them for the whole compiler.

> I'm thinking about including a -mti flag so it changes the defaults (even return convention) only when compiling TI programs

That would be a good idea, but you might run into some problems since RETURN_VALUE currently does not check for switches. I will try to do it as well.

     14 October 2000, 11:13 GMT


Re: Re: Re: Re: Re: TIGCC v0.8 Released (with sources!!!)
mmu_man  Account Info
(Web Page)

> I really don't know.
Neither do I.
In fact, I think it is useless.

> I think I found out how to declare -m68000 by default now.
Have a look at the ti-fr forum (the link), and see the patch I made.

> That would be a good idea, but you might run into some problems since RETURN_VALUE currently does not check for switches.
Switches are basicaly things that set bits in an internal variable in gcc (let's call it mflags), I think defining a new switch and doing something like :
#define RETURN_VALUE (mflags & TARGET_TI)?(-mti expr):(+mti expr)
should be ok.

     14 October 2000, 23:47 GMT

Re: TIGCC v0.8 Released
David Phillips  Account Info
(Web Page)

Any thoughts on having a register calling convention? This would be smaller and faster than the standard C calling convention, and would make the performance of C closer to that of hand coded assembly.

     14 October 2000, 02:54 GMT


Re: Re: TIGCC v0.8 Released
Zeljko Juric  Account Info
(Web Page)

Register calling convention will make a lot of troubles, because all TIOS entries expect C calling convention, so it will become nearly impossible to make something like TIGCCLIB.

     14 October 2000, 08:26 GMT

Re: Re: Re: TIGCC v0.8 Released
mmu_man  Account Info
(Web Page)

Why ?
If in the first place the tigcc team had taken the m68k-amigaos-gcc instead of m68k-coff-gcc, it would have been as simple as that:
int myfunc(register int a __asm__("%d1"), register void *b __asm__("%a0"));
Normal fonctions are still called correctly, but functions declared this way are passed parameters in registers (this woul allow smarter library calls...)
But the m68k-coff-gcc doesn't allow it by default, so if we wan't to do it we need to figure out to patch gcc... :-( (btw, I'll have a look at it :-) )

     14 October 2000, 10:16 GMT


Re: Re: Re: TIGCC v0.8 Released
David Phillips  Account Info
(Web Page)

No, you support both. All newer compilers for x86 allow that, and probably most optimizing compilers for any platform will optimize functions by passing parameters using registers.

     15 October 2000, 06:36 GMT


Re: Re: Re: Re: TIGCC v0.8 Released
Jonas Lööf

GCC has no built in support for multiple calling convension in the general source, it has to be implemented for each target. Though not impossible it is quite involved, or at least that's what I recon after a quick glance at the source...

     16 October 2000, 13:00 GMT

1  2  

You can change the number of comments per page in Account Preferences.

  Copyright © 1996-2011, the ticalc.org project. All rights reserved. | Contact Us | Disclaimer