150

Pollux
:
Et sinon, j'ai fini d'implémenter mon flag "Unoptimizable" pour les sources GNU as, donc l'optimisation est maintenant (dès la prochaine bêta si Sebastian accepte mes patches tels quels) sure à 100% pour toutes les sources en C ou assembleur GNU.

Bah voilà smile Sauf qu'il manque encore le support A68k.

Hmmm... Faut pas y compter. J'ai en moins en moins envie de rajouter des trucs à A68k, vu qu'il est vraiment obsolète. J'ai déjà rajouté des trucs comme le mode all-relocs qui ont transformé le code de A68k en véritable bordel vu que ce n'était pas du tout prévu, et c'est vraiment lourd à maintenir. Pourquoi pas utiliser l'assembleur GNU, tout simplement?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

151

Pasqu'il est merdique tu n'as pas encore compris ou quoi ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

152

Godzil> T'es obligé d'être malpoli quand tu t'adresses à KK ou quand tu parles de TIGCC en général ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

153

Je ne fait que repeter de maniere consise ce qu'on repete a kk depuis bientôt 3ans neutral
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

154

Si gnu as est capable de compiler du code d'a68k de façon 100% transparente (avec toutes les options et syntaxes que celà implique), ok. Sinon, pourquoi remplacer un outil standard par un assembleur quelconque ?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

155

Godzil
: Pasqu'il est merdique tu n'as pas encore compris ou quoi ?

Il n'est pas merdique, il peut faire presque tout ce que A68k peut faire (et on va voir pour TIGCC 0.96 de rajouter les détails qui manquent), plus des trucs que A68k ne peut pas faire (pseudo-opcodes jbCC, sections de taille impaire, sections "mergeable", relogements négatifs vers un symbole externe, assemblage des sources générées par GCC, mode où tous les relogements externes sont supposés PC-relatifs etc.). Et un de mes buts pour TIGCC 0.96 sera de faire un mode de compatibilité A68k qui va avaler les sources A68k et qui sera géré de manière transparente par tigcc.exe et ide.exe, pour que les trolls basés sur la syntaxe arrêteront.

Mais je vais quand-même voir ce que je peux faire pour A68k en attendant.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

156

Ximoon
: Si gnu as est capable de compiler du code d'a68k de façon 100% transparente (avec toutes les options et syntaxes que celà implique), ok. Sinon, pourquoi remplacer un outil standard par un assembleur quelconque ?

L'outil standard est plutôt l'assembleur GNU (on est une toolchain basée sur GCC, bon sang!), A68k est l'assembleur quelconque (un vieux freeware porté de l'Amiga).

Mais on ne va en effet pas supprimer A68k tant que GNU as n'aura pas un mode compatible au niveau de la syntaxe.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

157

Y'a des fois je me dis que c'est bête, je participerais bien au dével de tigcc, ça m'intéresse. Le seul truc c'est que je ne me sens pas vraiment en adéquation avec les pratiques des mainteneurs actuels...

158

Tu auras beau dire Kevin, mais tant que la cible est le 68000 et rien que le 68000, tu ne pourras pas trouver de langage plus standard que l'assembleur Motorolla 68000 tel que décrit dans la documentation technique du processeur (et a fortiori ratione, pas l'assembleur GNU) neutral
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

159

surtout que tes patchs kevin, si la fsf décide de faire hcier tout le monde en sortant d'un coup un AS totalement source incompatible avec les anciennes version tes patchs tu pourras te les mettre la ou je pense neutral donc patcher AS c'est bien, mais c'est pas une finalité tant que ça sera fait indépendament du projet principal, tout comme vos modifications sur le compilo

Un fork pars d'une version et ne continue pas a "piquer" les version suivante, mais evolue suivant sa propre route. Vous n'avez pas fait un fork, donc vous DEVRIEZ proposer vos modifications a la branche principale, bref
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

160

Extrait de notre conversation d'hier:
[22:44:28] (Kevin_Kofler) Je m'en FOUS de contribuer des patches à la FSF.
[22:44:32] (Kevin_Kofler) Je ne peux de toute façon pas le faire, je refuse de signer leur copyright assignment.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

161

mdr

et apres kk va precher pour la FSF neutral
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

162

163

Godzil :
surtout que tes patchs kevin, si la fsf décide de faire hcier tout le monde en sortant d'un coup un AS totalement source incompatible avec les anciennes version tes patchs tu pourras te les mettre la ou je pense neutral

Bah, on aurait 2 choix:
* rester avec la version qu'on a là et qui marche très bien (bref, faire un véritable fork)
* porter nos patches. Ça ne serait pas une première, nous sommes obligé de porter ou réecrire une partie non négligeable de notre patchset GCC à chaque mise à jour majeure de GCC.
donc patcher AS c'est bien, mais c'est pas une finalité tant que ça sera fait indépendament du projet principal, tout comme vos modifications sur le compilo

Je ne vois pas le problème. Nous adaptons nos logiciels à nos besoins.
Un fork pars d'une version et ne continue pas a "piquer" les version suivante, mais evolue suivant sa propre route.

Ben, ce qu'on fait, c'est un "parallel fork", et c'est beaucoup plus fréquent qu'un fork véritable. Les distributions Linux font ça avec tous les paquets. Et regarde le nombre de versions patchées du noyau Linux qui traînent.
Vous n'avez pas fait un fork, donc vous DEVRIEZ proposer vos modifications a la branche principale, bref

Ils n'ont qu'à venir les prendre chez nous s'ils les veulent. (C'est souvent comme ça que ça marche pour les patches au noyau Linux, d'ailleurs. Quelqu'un fait un patchset, et puis quelqu'un d'autre se dit, "Tiens, pourquoi n'est-ce pas dans le noyau?" et il intègre le patchset au noyau.) Mais ils ne les veulent pas, ils ne veulent que du code sur lequel le copyright US a été assigné à la FSF. Et ben, tant pis pour eux alors.

Un autre exemple de "parallel fork" est (était? Je ne sais pas à quel point en est la divergence maintenant.) XEmacs vs. GNU Emacs. Et il y a eu le même problème qu'il y a ici: la FSF ne voulait/pouvait pas intégrer les changements de XEmacs pour des histoires de copyright assignment.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

164

D'ailleurs, je pense que GCC aurait beaucoup plus de contributeurs s'il n'y avait pas cette bureaucratie de la FSF derrière. À chaque fois, les mainteneurs de GCC se demandent pourquoi ils n'ont pas plus de contributeurs (surtout en comparant au noyau Linux), et donnent des explications des plus bizarres, et si quelqu'un a enfin le courage de donner la vraie raison (FSF copyright assignments), il est objet de dérision.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

165

Et puis je suis presque sûr qu'une grande partie de nos patches seraient rejetés pour des raisons techniques (c'est-à-dire qu'ils n'en voudraient pas même si on signait leur copyright assignment) aussi.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

166

ba oui, à cause de l'architecture de tigcc tongue
(Et au fait, le bouton Edit tu l'as pas encore trouvé ?)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

167

Kevin > Tu viendras pas dire que je t'ai pas prévenu, donc deuxième (et dernière) fois : le bouton "Editer" est pas là pour décorer.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

168

GoldenCrystal :
ba oui, à cause de l'architecture de tigcc tongue

Ça dépend de ce que tu veux dire par "architecture"...
Ce n'est pas à cause des critères que tu as énoncés qu'il y a un problème, mais parce que nous remplaçons par exemple presque complètement la gestion des flottants de GCC pour pouvoir gérer les flottants BCD. Et puis il y a aussi les extensions au format COFF que les mainteneurs FSF ne verraient pas forcément de bon œil. Et les nombres binaires aussi. Et nos patches pour remettre les extensions qu'ils ont virées seraient refusés sans absolument aucun doûte.
Vertyos
: Kevin > Tu viendras pas dire que je t'ai pas prévenu, donc deuxième (et dernière) fois : le bouton "Editer" est pas là pour décorer.

Bah, le bouton "Éditer" ne remonte pas le topic, donc vous pourriez râter une partie...

Et sinon: Êtes-vous surs que vous voulez le support du flag Unoptimizable dans A68k? Ça voudra dire que les fichiers objet générés par A68k ne seront linkables plus que par ld-tigcc.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

169

170

Bah, le bouton "Éditer" ne remonte pas le topic, donc vous pourriez râter une partie...

(c'est pas faux, je peux très bien comprendre cette raison, même si des fois, ça ressemble un peu aux monologues de geogeo smile)
avatar

171

Bon, on a discuté d'a68k, sujet réglé.
On a discuté de KK, c'est pas le sujet.
Geogeo, n'en parlons pas.

-> Le sujet est et demeure d'éventuelles suggestions pour tigcc, ça serait pas mal qu'on puisse y retourner avec un minimum d'objectivité et de calme.

edit: va pour les réponses aux questions encore dans le sujet comme celles de Martial Demolins au #168, du moment que ça ne déborde pas smile
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

172

Martial Demolins
: mais que les fichiers qui auront ce flag, non?

Mais a priori, à peu près tous les fichiers contiendront ce flag à un endroit où un autre.

Ce que je peux faire, c'est faire encore un switch pour activer/désactiver cela. Mais je suis déjà à peu près à court de switches pour A68k. sad (Ben oui, une lettre, c'est limitant...)

MISE À JOUR: J'ai implémenté le flag Unoptimizable dans A68k maintenant. Mais les fichiers objet ne sont pas compatibles avec les vieux linkers. sad PpHd, si tu veux pouvoir les lire dans MakePrgm, il faut virer le MSBit des offsets source des relogements (AND avec 0x7fffffff).

Voilà le patch pour MakePrgm:
--- object.cc_	Tue Dec 31 23:11:36 1996
+++ object.cc	Tue Sep 21 04:11:22 2004
@@ -94,7 +94,7 @@
 					reloc[section].ofs=new int[count];
 					// Read in the relocation info
 					for (int i=0;i<count;i++)
-						reloc[section].ofs[i]=ReadDWord(fp);
+						reloc[section].ofs[i]=ReadDWord(fp)&0x7fffffffl;
 				}
 				else
 				{
@@ -233,7 +233,7 @@
 						{
 							ROM.ref[ROM.count].type=LibRefDWord;
 							ROM.ref[ROM.count].func=func;
-							ROM.ref[ROM.count++].ofs=ReadDWord(fp);
+							ROM.ref[ROM.count++].ofs=ReadDWord(fp)&0x7fffffffl;
 						}
 					}
 					else if (!strncmp(sym,"_RAM_CALL_",10))
@@ -245,7 +245,7 @@
 						{
 							RAM.ref[RAM.count].type=LibRefDWord;
 							RAM.ref[RAM.count].func=func;
-							RAM.ref[RAM.count++].ofs=ReadDWord(fp);
+							RAM.ref[RAM.count++].ofs=ReadDWord(fp)&0x7fffffffl;
 						}
 					}
 					else if (!strncmp(sym,"_extraramaddr@",14))
@@ -258,7 +258,7 @@
 						{
 							RAM.ref[RAM.count].type=LibRefDWord|LibRefExtra;
 							RAM.ref[RAM.count].func=func;
-							RAM.ref[RAM.count++].ofs=ReadDWord(fp);
+							RAM.ref[RAM.count++].ofs=ReadDWord(fp)&0x7fffffffl;
 						}
 					}
 					else if (strlen(sym)>=5 && sym[strlen(sym)-5]=='@') // Library reference
@@ -277,14 +277,14 @@
 							{
 								lib[libNum].ref[lib[libNum].count].type=LibRefDWord;
 								lib[libNum].ref[lib[libNum].count].func=func;
-								lib[libNum].ref[lib[libNum].count++].ofs=ReadDWord(fp);
+								lib[libNum].ref[lib[libNum].count++].ofs=ReadDWord(fp)&0x7fffffffl;
 							}
 					}
                else // Unknow Imported labels
                {
                  printf("WARNING !!! WARNING !!! TRY TO IMPORT AN UNKNOW LABEL : %s\n", sym);
                  strncpy(Symbol[SymCount].name, sym, 128);
-                 Symbol[SymCount].ofs =ReadDWord(fp);
+                 Symbol[SymCount].ofs =ReadDWord(fp)&0x7fffffffl;
                  SymCount++;
                }
 				}
@@ -312,7 +312,7 @@
 						{
 							RAM.ref[RAM.count].type=LibRefWord;
 							RAM.ref[RAM.count].func=func;
-							RAM.ref[RAM.count++].ofs=ReadDWord(fp);
+							RAM.ref[RAM.count++].ofs=ReadDWord(fp)&0x7fffffffl;
 						}
 					}
 					else if (!strncmp(sym,"_extraramaddr@",14))
@@ -330,7 +330,7 @@
 						{
 							RAM.ref[RAM.count].type=LibRefWord|LibRefExtra;
 							RAM.ref[RAM.count].func=func;
-							RAM.ref[RAM.count++].ofs=ReadDWord(fp);
+							RAM.ref[RAM.count++].ofs=ReadDWord(fp)&0x7fffffffl;
 						}
 					}
 					else if (strlen(sym)>=5 && sym[strlen(sym)-5] == '@')// Library or linker-defined reference
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

173

Tu veux pas faire une autre section CODE plutot ? Ca serait plus propre.

174

Oui, c'est ce que j'allais dire...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

175

PpHd
: Tu veux pas faire une autre section CODE plutot ?

Comment ça?
Et je n'ai pas envie de tout refaire.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

176

Au lieu de generer une section ".section_code"
tu generes une section ".optimisable_section_code"

177

Impossible. Le flag "unoptimizable" est une propriété par relogement, pas par section. Une même instruction peut avoir un relogement optimisable et un non-optimisable (move.l label1,label2).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

178

Mais un même groupe de 4 octets peut avoir un relogement optimisable ou non.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

179

Pollux
: Mais un même groupe de 4 octets peut avoir un relogement optimisable ou non.

On ne peut certainement pas couper en une section par relogement, ça ferait totalement foirer "remove unused sections" et "reorder sections".
C'est une propriété par relogement, donc on doit la représenter avec un flag par relogement.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

180

Mais où j'ai parlé d'une section par relogement trifus

Ce serait plutôt une section optimizable-reloc avec la liste des relogements qu'on peut optimiser (et un vieux fichier objet n'aurait pas cette section, ce qui assure aussi de la compatibilité et d'une fait qu'on ne fait que des optimisations là où c'est correct de le faire)

Et s'il n'y a pas de manière propre (documentée, backward-compatible...) de mettre des flags *dans* la section de relogement, ben c mieux de faire une autre section "flags de relogement" smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)