31Fermer33
Kevin KoflerLe 18/11/2007 à 06:04
Il y a plusieurs erreurs dans les améliorations du désassembleur:

* Le correctif pour MOVEQ (rev 2666) n'est pas bon. Justement, un move #n peut être autre chose qu'un moveq, c'est pour ça qu'on te demande de distinguer! Il faut faire ça à l'intérieur du désassembleur.
* Je ne suis pas sûr pour les *I (rev 2667) non plus. Un add #imm est-il toujours un addi?
* rev 2668: là, tu as changé par exemple st en sra, ça ne va pas, il faut faire un cas particulier pour bt. Changer dbt en dbra n'est pas correct non plus, parce que dbra veut dire dbf.

Je suis aussi contre ton copier-coller du désassembleur de UAE. Commençons par dire que j'ai fait beaucoup de merges, y compris pas mal de merges de UAE dans TiEmu, donc je sais de quoi je parle. Le copier-coller est à peu près la pire des méthodes en ce qui concerne les merges! Ça veut dire effectivement que ce code n'est plus mergeable, et donc qu'on ne profite pas des nouveautés de UAE, de plus, si une interface interne de UAE change, il faudra porter le désassembleur à la main. Donc je préfèrerais que tu revertes le copier-coller de la révision 2672 et que tu fasses tes modifications à l'intérieur des sources de UAE. Quelques règles pour faciliter les merges (qui m'ont bien servi sur mes projets qui ont de nombreux patches, notamment le GCC de TIGCC):
* ne pas faire des modifications qui ne changent rien au fonctionnement, en particulier:
- ne pas toucher à l'indentation (et autre formatage)! D'ailleurs, ne pas toucher à l'indentation même si on rajoute ou supprime des niveaux de profondeur (par exemple un if de plus ou de moins), il vaut mieux un bloc mal indenté que des diffs inutiles sur chaque ligne.
- ne pas rajouter/supprimer/corriger des commentaires
- ne pas faire des "nettoyages" dans le code qui n'est pas à toi, il vaut mieux du code sale que des diffs inutiles
* si on veut supprimer de grosses parties du code, utiliser des #if 0 plutôt que d'effacer de gros blocs qui risquent de changer dans l'un ou l'autre détail et donc de casser le merge (en revanche, pour quelques lignes, supprimer est mieux)
Avec ton copier-coller, tu es parti pour faire exactement le contraire (adapter l'indentation à ton système, faire des nettoyages, ...), et donc on ne pourra plus merger, donc je suis absolument contre.

D'ailleurs, j'ai fait pas mal de modifications sur le désassembleur de GDB aussi, je les ai bien faites à l'intérieur des sources de GDB!