OVH Cloud OVH Cloud

2 questions sur la migration Intel (endianness et 64 bits)

36 réponses
Avatar
Gilles Vollant
Je me pose deux questions au sujet du portage de MacOS sur processeur Intel

1) Jusqu'à maintenant, les processeurs Macintosh (les 680x0 comme les
PowerPC dans le mode utilisé par macos) sont big endian, et le x86 est
little endian

Cela rend le portage d'application plus complexe. En effet, un source C peut
parfois être dépendant de l'"endianness"

pour plus de détails:
http://www.nationmaster.com/encyclopedia/Endianness

2) Apple utilisera-t-il le mode 64 bits des x86 (EM64T) ? Cela paraiterait
logique, puisque cela éviterais une nouvelle migration à relativement courte
échéance.

10 réponses

1 2 3 4
Avatar
une.bevueVOTEZ
DINH Viêt Hoà wrote:

Si on lit bien ce que tu dis, ce serait plus intéressant d'avoir un
processeur avec plus de registres qu'un processeur avec plus de bits


à jeux d'intruction équivalent non ?
théoriquement plus il y a de bits plus il y a d'instructions possibles
et surtout de modes d'adressage ???
--
une bévue

Avatar
Vincent Bernat
OoO Vers la fin de l'après-midi du samedi 11 juin 2005, vers 16:46,
Eric Lévénez disait:

Il est donc surprenant que Apple n'exploite que le mode 32 bits, ce


Tu parles de quoi ? Des kits de développement ? Quelle rapport avec les Mac
qui sortirons dans un ou deux ans ?


Ils feront tourner des programmes 32 bits qui ne pourront donc pas
exploiter la partie 64 bits des PC.

qui obligera de nouveau à une migration des applications.


Pourquoi cela ?


Parce qu'un programme 32 bits ne peut pas exploiter les registres
supplémentaires disponibles en 64 bits sans une recompilation.

À moins que
ce soit prévu dès maintenant et que les binaires FAT contiennent à la
fois la version 32 bits et la version 64 bits.


C'est déjà le cas sous Tiger pour certaines applis PPC. Ce sera la même
chose sous x86.


Non, c'est différent. Sous PPC, seules quelques applications ont
intérêt à être compilées pour 64 bits car toutes les autres auront des
performances moindres en 64 bits qu'en 32 bits (c'est aussi le cas
pour les Sparc par exemple). Sous PC, toutes les applications
bénéficient d'une vitesse accrue grâce à l'augmentation du nombre de
registres si elles sont compilées en 64 bits.

Si le kit de développement fourni par Apple ne fonctionne qu'en 32
bits, les développeurs font fournir des applications 32 bits
uniquement. Dans un an, quand les versions 64 bits du matériel d'Apple
sortiront, il faudra recompiler. Le gain en vitesse est à mon avis un
argument commercial pour refaire payer l'acheteur.

De plus, c'est extrêmement bloquant de se trimballer des applis 32
bits et 64 bits sur le même système : plusieurs compilos, plusieurs
versions des libs, non compatibilité binaire entre les applis donc
problèmes avec les plugins. Si Apple choisit un proc compatible EMT64,
c'est vraiment dommage de ne pas choisir directement une toolchain
entièrement 64 bits vu qu'il n'y a en général que des gains au niveau
des performances.
--
Objet: cherche personne pro pour...
qu'il me donne quelques conseil... une sorte de parrain...
-+- nekio in Guide du Fmblien Assassin : "El Padrino..." -+-


Avatar
Vincent Bernat
OoO En ce début d'après-midi ensoleillé du samedi 11 juin 2005, vers
15:23, DINH Viêt Hoà disait:

Si on lit bien ce que tu dis, ce serait plus intéressant d'avoir un
processeur avec plus de registres qu'un processeur avec plus de bits
(les concours de bits, ce que j'en pense ...).


Oui. C'est le gros gain de l'architecture AMD 64. Le nombre de
registres bénéficient à toutes les applications. Le nombre de bits ne
bénéficient qu'aux applications qui savent les exploiter. Ceci
explique d'ailleurs pourquoi on préfère mettre des unités vectorielles
128 bits ou plus pour des opérations spécialisées plutôt que de faire
des procs 64 ou 128 bits.

Si une appli fait des additions sur 32 bits en 64 bits, c'est 32 bits
de gâché mais qui seront quand même pris en mémoire dans le proc. Par
exemple, si tu veux additionner a et b, tu vas récupérer de la mémoire
centrale a puis b. Si tu fonctionnes en 32 bits, tu vas occuper 64
bits dans le cache L1 du proc. Si tu fonctionnes en 64 bits, tu vas
occuper 128 bits car le proc travaille avec des mots de 64 bits. Le
cache est donc moins efficace et les perfs s'effondrent.
--
BOFH excuse #417:
Computer room being moved. Our systems are down for the weekend.

Avatar
Eric Lévénez
Le 11/06/05 21:06, dans , « Vincent Bernat »
a écrit :

OoO Vers la fin de l'après-midi du samedi 11 juin 2005, vers 16:46,
Eric Lévénez disait:

Il est donc surprenant que Apple n'exploite que le mode 32 bits, ce


Tu parles de quoi ? Des kits de développement ? Quelle rapport avec les Mac
qui sortirons dans un ou deux ans ?


Ils feront tourner des programmes 32 bits qui ne pourront donc pas
exploiter la partie 64 bits des PC.


Hein ? Où donc as-tu vu que les futurs Mac/Intel ne seront pas 64 bits ?

qui obligera de nouveau à une migration des applications.


Pourquoi cela ?


Parce qu'un programme 32 bits ne peut pas exploiter les registres
supplémentaires disponibles en 64 bits sans une recompilation.


Alors pour toi "migration", c'est pareil que "recompilation" ? Les applis 32
bits G4 peuvent exploiter les registres 64 bits du G5 sans recompilation si
elles utilisent les bibliothèques Apple. Mais de toute façon une simple
recompilation pour optimiser les long long, ce n'est pas vraiment cela qu'on
appelle un portage ou une migration.

À moins que
ce soit prévu dès maintenant et que les binaires FAT contiennent à la
fois la version 32 bits et la version 64 bits.


C'est déjà le cas sous Tiger pour certaines applis PPC. Ce sera la même
chose sous x86.


Non, c'est différent. Sous PPC, seules quelques applications ont
intérêt à être compilées pour 64 bits car toutes les autres auront des
performances moindres en 64 bits qu'en 32 bits (c'est aussi le cas
pour les Sparc par exemple). Sous PC, toutes les applications
bénéficient d'une vitesse accrue grâce à l'augmentation du nombre de
registres si elles sont compilées en 64 bits.


Tu dis "non", sur l'affirmation que l'on ne peux avoir des programmes
fat-binaries sur x86, puis tu expliques autre chose. Tu n'es pas logique ou
tu veux répondre à côté par principe.

Si le kit de développement fourni par Apple ne fonctionne qu'en 32
bits, les développeurs font fournir des applications 32 bits
uniquement.


Le kit actuel est 32 bits oui.

Dans un an, quand les versions 64 bits du matériel d'Apple
sortiront, il faudra recompiler.


Et alors ? C'est dur de cliquer ? De toute façon avant de fournir une
application sur Mac/Intel il faudra attendre le tout dernier moment pour
avoir des bibliothèques Apple figées car si le développeur sort maintenant
son appli, rien ne dit qu'elle marchera sur la première version officielle
de Mac OS X/Intel. Et dans un an, qui te dit que Mac OS X/Intel ne sera pas
64 bits ? Apple a dit de regarder la roadmap Intel pour voir quel CPU seront
disponibles à ce moment là. Alors au lieu d'affirmer qu'Apple restera en 32
bits, attendons de voir.

Le gain en vitesse est à mon avis un
argument commercial pour refaire payer l'acheteur.


Là je pense que tu ne parles pas d'Apple, mais de société comme Quark, je
pense.

De plus, c'est extrêmement bloquant de se trimballer des applis 32
bits et 64 bits sur le même système :


Ah ? Faudra que j'en parle à mon NeXTSTEP qui gérer les quad-binaries sans
problème.

plusieurs compilos,


L'utilisateur n'a pas installé le compilo, le développeur a un grand disque
si c'est cela ce que tu redoutes. De plus il n'y a qu'un compilo avec des
options différentes intégrant la crosscompilation.

plusieurs
versions des libs,


Si tu parles des sections dans un seul et même exécutable (comme c'est déjà
actuellement le cas dans Tiger, je le regrêt de te l'apprendre), alors oui.

non compatibilité binaire
entre les applis


Hein ? Quelle rapport entre les internes des applications et les IPC ?

donc
problèmes avec les plugins.


Cela dépend de l'architecture. Apple a indiqué que l'on pourrait très bien
avoir une appli Intel utilisant des plugins PPC à travers Rosetta. Alors toi
tu as peur des Plugins incompatibles Intel ? C'est vrai ?

Si Apple choisit un proc compatible EMT64,
c'est vraiment dommage de ne pas choisir directement une toolchain


Une "toolchain", whao. Tu voudrais qu'Apple abandonne Xcode juste parce que
le premier kit de développement d'un OS qui sortira dans un an, n'a pas
toutes les fonctionnalités que tu attends de gcc ? Mais si on suivait ton
raisonnement, que faire d'un "toolchain" importé du monde Linux ou autre si
le Mac OS X/Intel sera 32 bits ? Penses-tu que ton "toolchain" importé sera
compatibles avec le format des applis en bundle et la gestion d'Interface
Builder ? Crois tu qu'en utilisant ton "toolchain" on puisse porter en
quelques minutes tout soft fait sous Xcode pas trop compliqué (ou bien écrit
comme Mathematica) ?

entièrement 64 bits vu qu'il n'y a en général que des gains au niveau
des performances.


Le 64 bits est surtout fait pour l'adressage mémoire. La gestion de la
taille des registres est important aussi mais elle peut marcher sur un
système "32 bits" (voir Mac OS X 10.3 sur G5 par exemple). L'augmentation du
nombre de registres n'est pas toujours une bonne idée sur un système
multitâche, mais cela n'a rien à voir avec le 32 ou le 64 bits.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.



Avatar
Vincent Bernat
OoO En cette soirée bien amorcée du samedi 11 juin 2005, vers 22:03,
Eric Lévénez disait:

Tu parles de quoi ? Des kits de développement ? Quelle rapport avec les Mac
qui sortirons dans un ou deux ans ?


Ils feront tourner des programmes 32 bits qui ne pourront donc pas
exploiter la partie 64 bits des PC.


Hein ? Où donc as-tu vu que les futurs Mac/Intel ne seront pas 64
bits ?


Je ne dis pas qu'ils ne seront pas 64 bits, je dis qu'ils auront dans
un premier temps des programmes 32 bits à se mettre sous la dent.

qui obligera de nouveau à une migration des applications.


Pourquoi cela ?


Parce qu'un programme 32 bits ne peut pas exploiter les registres
supplémentaires disponibles en 64 bits sans une recompilation.


Alors pour toi "migration", c'est pareil que "recompilation" ? Les applis 32
bits G4 peuvent exploiter les registres 64 bits du G5 sans recompilation si
elles utilisent les bibliothèques Apple.


Une bibliothèque peut permettre d'abstraire certaines primitives. Elle
ne permettra jamais au programme d'accéder à un nombre supérieur de
registres, principale optimisation que l'on attend du passage 32 à 64
bits sur un PC. Elle ne permettra pas non plus d'utiliser l'espace
d'adressage du 64 bits. Les bibliothèques d'Apple sont essentiellement
destinées au calcul vectoriel et donc plus orientées vers
l'utilisation d'Altivec. Dans tous les cas, leur usage est très
spécifique :
<URL:http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_vector/chapter_6_section_2.html>

Dans un an, quand les versions 64 bits du matériel d'Apple
sortiront, il faudra recompiler.


Et alors ? C'est dur de cliquer ?


Non, encore faut-il que le possesseur du code source le fasse. Et
absolument rien ne dit qu'il le fera. Par exemple, il voudra être payé
pour (donc nouvelle version payante). Ou alors, il ne voudra tout
simplement pas acheter le kit de compilation à 999$. Ou encore, il
n'en aura pas le temps. Ou encore, le programme est abandonné.

Et dans un an, qui te dit que Mac OS X/Intel ne sera pas
64 bits ?


Cela fait quelques messages que j'évoque le problème de la migration
32 vers 64 bits. C'est sans doute parce que je pense qu'effectivement
Apple passera au 64 bits.

Le gain en vitesse est à mon avis un argument commercial pour
refaire payer l'acheteur.


Là je pense que tu ne parles pas d'Apple, mais de société comme Quark, je
pense.


Pas seulement. Apple pourrait bien commercialiser dans un premier
temps une version partiellement 64 bits de Mac OS X. Avec par exemple
iMovie en 32 bits. Et la prochaine version entièrement 64 bits sera
une autre version majeure. Passage à la caisse.

De plus, c'est extrêmement bloquant de se trimballer des applis 32
bits et 64 bits sur le même système :


Ah ? Faudra que j'en parle à mon NeXTSTEP qui gérer les quad-binaries sans
problème.


Ai-je dit que cela était impossible ?

plusieurs versions des libs,


Si tu parles des sections dans un seul et même exécutable (comme
c'est déjà actuellement le cas dans Tiger, je le regrêt de te
l'apprendre), alors oui.


Je parle des libs qui devront être fournies en 32 et en 64 bits. Tu
développes un produit pour Mac OS X Intel aujourd'hui en utilisant une
librairie d'un éditeur tierce. Tout est en 32 bits. Dans un an, tu
veux une appli 64 bits. Pas de chance, il faut attendre que l'éditeur
tierce sorte la version 64 bits de sa librairie.

D'autant que Apple ne communique absolument pas là-dessus, cela ne va
pas aider à la préparation du passage.

non compatibilité binaire entre les applis


Hein ? Quelle rapport entre les internes des applications et les
IPC ?


Gni ? Une appli 64 bits ne peut pas se greffer sur une appli 32 bits
au niveau binaire. Le cas le plus courant est celui des
plugins. C'est déjà le problème actuellement quand Apple explique
qu'une appli native qui utilise un plugin PPC devra tourner
entièrement sous Rosetta.

donc problèmes avec les plugins.


Cela dépend de l'architecture. Apple a indiqué que l'on pourrait très bien
avoir une appli Intel utilisant des plugins PPC à travers Rosetta. Alors toi
tu as peur des Plugins incompatibles Intel ? C'est vrai ?


Tu as mal lu. L'intégralité de l'application se met à tourner à
travers Rosetta. Je te renvoie directement sur le site d'Apple à ce
sujet :
<URL:http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_exec_a/chapter_7_section_4.html#//apple_ref/doc/uid/TP40002217-CH210-236785>

Si Apple choisit un proc compatible EMT64,
c'est vraiment dommage de ne pas choisir directement une toolchain


Une "toolchain", whao. Tu voudrais qu'Apple abandonne Xcode juste parce que
le premier kit de développement d'un OS qui sortira dans un an, n'a pas
toutes les fonctionnalités que tu attends de gcc ?


Que je sache, la toolchain est toujours gcc. Xcode est un
environnement de développement qui inclut une toolchain. Et
actuellement, il contient bien entre autres une toolchain PPC 64. Il
me semble que tu t'emportes sans t'être réellement documenté.

La grosse différence entre le passage PPC vers Intel et IA-32 vers
x86-64, c'est que dans le second cas, il n'y aura pas besoin de
Rosetta. Tout le reste sera à refaire.
--
panic("Attempted to kill the idle task!");
2.2.16 /usr/src/linux/kernel/exit.c




Avatar
Etienne Herlent
In article ,
Vincent Bernat wrote:

Oui. C'est le gros gain de l'architecture AMD 64. Le nombre de
registres bénéficient à toutes les applications.


Et c'est là qu'on regrette le Z80 et ses 2 jeux de registres. Ah ! Je
n'aurais jamais du me séparer de mon Amstrad CPC464...

Ok, je sors ;o)

--
Les Wampas n'aiment pas la variété pourrie. Didier Wampas
______________________________________ attention à l'@ email antispam
Macintosh, Linux Mac, Palm: http://webperso.easyconnect.fr/eherlent/
GNU/Linux sur Macintosh : http://www.linux-france.org/macintosh/

Avatar
DINH Viêt Hoà

In article ,
Vincent Bernat wrote:

Oui. C'est le gros gain de l'architecture AMD 64. Le nombre de
registres bénéficient à toutes les applications.


Et c'est là qu'on regrette le Z80 et ses 2 jeux de registres. Ah ! Je
n'aurais jamais du me séparer de mon Amstrad CPC464...

Ok, je sors ;o)


je crois que sur les sparc, il y avait ce genre de chose :
n jeux de registres. Cela permettait de changer de contexte plus
rapidement.

--
DINH V. Hoa,

"Paraît-il que c'est ce que recherchent la majorité des djeunz. Il n'y a plus
aucun attrait pour les métiers scientifiques ni techniques. Ils veulent être
chanteur, acteur ou fonctionnaire. C'est désépérant..." -- Emmanuel Delahaye


Avatar
Eric Lévénez
Le 11/06/05 23:39, dans , « Vincent Bernat »
a écrit :

OoO En cette soirée bien amorcée du samedi 11 juin 2005, vers 22:03,
Eric Lévénez disait:

Tu parles de quoi ? Des kits de développement ? Quelle rapport avec les Mac
qui sortirons dans un ou deux ans ?


Ils feront tourner des programmes 32 bits qui ne pourront donc pas
exploiter la partie 64 bits des PC.


Hein ? Où donc as-tu vu que les futurs Mac/Intel ne seront pas 64
bits ?


Je ne dis pas qu'ils ne seront pas 64 bits, je dis qu'ils auront dans
un premier temps des programmes 32 bits à se mettre sous la dent.


Mais tu affirmes cela juste parce que le kit de développement d'un système,
a, un an avant la sortie du premier système, que du 32 bits.

qui obligera de nouveau à une migration des applications.


Pourquoi cela ?


Parce qu'un programme 32 bits ne peut pas exploiter les registres
supplémentaires disponibles en 64 bits sans une recompilation.


Alors pour toi "migration", c'est pareil que "recompilation" ? Les applis 32
bits G4 peuvent exploiter les registres 64 bits du G5 sans recompilation si
elles utilisent les bibliothèques Apple.


Une bibliothèque peut permettre d'abstraire certaines primitives. Elle
ne permettra jamais au programme d'accéder à un nombre supérieur de
registres, principale optimisation que l'on attend du passage 32 à 64
bits sur un PC. Elle ne permettra pas non plus d'utiliser l'espace
d'adressage du 64 bits. Les bibliothèques d'Apple sont essentiellement
destinées au calcul vectoriel et donc plus orientées vers
l'utilisation d'Altivec. Dans tous les cas, leur usage est très
spécifique :


Les bibliothèques d'Apple ne permettent pas, bien sûr ,d'optimiser tout un
programme, mais j'expliquais juste qu'une application pouvait être optimisée
sans recompilation, même si cette optimisation ne vaut pas une recompilation
(qui est une action triviale).

Dans un an, quand les versions 64 bits du matériel d'Apple
sortiront, il faudra recompiler.


Et alors ? C'est dur de cliquer ?


Non, encore faut-il que le possesseur du code source le fasse.


Si un développeur commence aujourd'hui le portage d'un code pour Mac OS
X/Intel, c'est qu'il veut sortir son code (dans un an), et donc il cliquera
sur le bouton de recompilation dans un an moins un jour.

Et
absolument rien ne dit qu'il le fera.


Au contraire, tout indique que ce développeur voudra fournir un programme à
jour et pas un vieux programme d'un an.

Par exemple, il voudra être payé
pour (donc nouvelle version payante).


Argument totalement hors de propos, on parle d'optimisation 32 vs 64 bits
pour Mac OS X/Intel lié au kit de développement actuel.

Ou alors, il ne voudra tout
simplement pas acheter le kit de compilation à 999$. Ou encore, il
n'en aura pas le temps. Ou encore, le programme est abandonné.


Voir plus haut.

Et dans un an, qui te dit que Mac OS X/Intel ne sera pas
64 bits ?


Cela fait quelques messages que j'évoque le problème de la migration
32 vers 64 bits. C'est sans doute parce que je pense qu'effectivement
Apple passera au 64 bits.


Mais il y a aussi une chance qu'Apple saute le mode 32 bits Intel.

Le gain en vitesse est à mon avis un argument commercial pour
refaire payer l'acheteur.


Là je pense que tu ne parles pas d'Apple, mais de société comme Quark, je
pense.


Pas seulement. Apple pourrait bien commercialiser dans un premier
temps une version partiellement 64 bits de Mac OS X. Avec par exemple
iMovie en 32 bits. Et la prochaine version entièrement 64 bits sera
une autre version majeure. Passage à la caisse.


Encore des suppositions.

De plus, c'est extrêmement bloquant de se trimballer des applis 32
bits et 64 bits sur le même système :


Ah ? Faudra que j'en parle à mon NeXTSTEP qui gérer les quad-binaries sans
problème.


Ai-je dit que cela était impossible ?


Non, tu as dit que c'était "extrêmement bloquant", et il n'en est rien.

plusieurs versions des libs,


Si tu parles des sections dans un seul et même exécutable (comme
c'est déjà actuellement le cas dans Tiger, je le regrêt de te
l'apprendre), alors oui.


Je parle des libs qui devront être fournies en 32 et en 64 bits. Tu
développes un produit pour Mac OS X Intel aujourd'hui en utilisant une
librairie d'un éditeur tierce. Tout est en 32 bits. Dans un an, tu
veux une appli 64 bits. Pas de chance, il faut attendre que l'éditeur
tierce sorte la version 64 bits de sa librairie.


Aucun éditeur ne sortira un soft pour Mac OS X/Intel avant la sortie
officielle de Mac OS X/Intel car Apple peut changer un détail au dernier
moment qui fera que le programme ne sera pas compatible. Voir par exemple
Rhapsody.

D'autant que Apple ne communique absolument pas là-dessus, cela ne va
pas aider à la préparation du passage.


Parce que un an, c'est long, et que beaucoup de choses peuvent changer d'ici
là du côté d'Apple et d'Intel.

non compatibilité binaire entre les applis


Hein ? Quelle rapport entre les internes des applications et les
IPC ?


Gni ? Une appli 64 bits ne peut pas se greffer sur une appli 32 bits
au niveau binaire. Le cas le plus courant est celui des
plugins. C'est déjà le problème actuellement quand Apple explique
qu'une appli native qui utilise un plugin PPC devra tourner
entièrement sous Rosetta.

donc problèmes avec les plugins.


Cela dépend de l'architecture. Apple a indiqué que l'on pourrait très bien
avoir une appli Intel utilisant des plugins PPC à travers Rosetta. Alors toi
tu as peur des Plugins incompatibles Intel ? C'est vrai ?


Tu as mal lu.


Non je n'ai rien lu là dessus, ce sont des infos remontées de la WWDC, mais
effectivement elles ne sont pas totalement exacte d'après la doc actuelle
d'Apple que tu sites.

L'intégralité de l'application se met à tourner à
travers Rosetta. Je te renvoie directement sur le site d'Apple à ce
sujet :

<URL:http://developer.apple.com/documentation/MacOSX/Conceptual/universal_bina
ry/universal_binary_exec_a/chapter_7_section_4.html#//apple_ref/doc/uid/TP4000
2217-CH210-236785>

Si Apple choisit un proc compatible EMT64,
c'est vraiment dommage de ne pas choisir directement une toolchain


Une "toolchain", whao. Tu voudrais qu'Apple abandonne Xcode juste parce que
le premier kit de développement d'un OS qui sortira dans un an, n'a pas
toutes les fonctionnalités que tu attends de gcc ?


Que je sache, la toolchain est toujours gcc. Xcode est un
environnement de développement qui inclut une toolchain. Et
actuellement, il contient bien entre autres une toolchain PPC 64. Il
me semble que tu t'emportes sans t'être réellement documenté.


"toochain" ne veut rien dire et pas spécifiquement "gcc". Bien sûr ta
"toolchain" gcc sait compiler en PPC 64, qui en douterait ? La
cross-compilation avec gcc existe depuis pratiquement l'origine de cette
"toolchain". Et quelle "toochain" proposes-tu qui fasse de l'Objective-C, du
C, du C++, de l'Objective-C++ sur PPC 32, 64, et Intel 32 et 64 et qui sait
générer du code Mach-O ? Le problème du passage en mode 64 bits sur Intel ne
vient en rien de la "toolchain" gcc, mais juste de Mac OS X lui-même (de ses
programmes et bibliothèques).

La grosse différence entre le passage PPC vers Intel et IA-32 vers
x86-64, c'est que dans le second cas, il n'y aura pas besoin de
Rosetta. Tout le reste sera à refaire.


Il y a un an de développement en vue.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.





Avatar
Schmurtz
kurtz le pirate wrote:

"Gilles Vollant" wrote:

Cela rend le portage d'application plus complexe. En effet, un source C
peut
parfois être dépendant de l'"endianness"



...tu es sur de ce que tu avance là ?
assembleur d'accord, mais c, je ne vois pas


Sûr.

#include <stdio.h>
int main() {
unsigned int aaa = 0x12345678;
printf("%dn",((char*)&aaa)[0]);
return 0;
}

affiche 18 (0x12) sur un ppc et 120 (0x78) sur un x86

--
Schmurtz



Avatar
Vincent Bernat
OoO Lors de la soirée naissante du dimanche 12 juin 2005, vers 18:16,
Eric Lévénez disait:

Je ne dis pas qu'ils ne seront pas 64 bits, je dis qu'ils auront dans
un premier temps des programmes 32 bits à se mettre sous la dent.


Mais tu affirmes cela juste parce que le kit de développement d'un système,
a, un an avant la sortie du premier système, que du 32 bits.


Oui. Et a priori la machine et l'OS aussi. Et Apple aura du mal à
mettre à jour la machine à distance. Donc les premiers programmes qui
tourneront sur Mac OS X/Intel seront 32 bits. Mais p'tet qu'Apple a
prévu de mettre à jour l'OS et la machine avant un an gratuitement.

Seulement, ce n'est écrit nulle part, donc ces spéculations viennent
uniquement de toi.

Les bibliothèques d'Apple ne permettent pas, bien sûr ,d'optimiser
tout un programme, mais j'expliquais juste qu'une application
pouvait être optimisée sans recompilation, même si cette
optimisation ne vaut pas une recompilation (qui est une action
triviale).


Cela ne concerne qu'un nombre extrêmement réduit d'applications. Et en
lisant les pages consacrées à ce framework, à part LAPACK (ou rien
n'est précisé), tous les modules utilisent uniquement l'Altivec et
seront donc vraisemblablement transformés pour utiliser MMX/SSE. Bref,
il n'y aura aucun gain de performance à passer au 64 bits. Et de toute
façon, un programme ne peut pas tourner à la fois en 64 bits et en 32
bits, on ne peut donc pas lier une biblio qui utilise du 64 bits à un
programme 32.

Dans un an, quand les versions 64 bits du matériel d'Apple
sortiront, il faudra recompiler.


Et alors ? C'est dur de cliquer ?


Non, encore faut-il que le possesseur du code source le fasse.


Si un développeur commence aujourd'hui le portage d'un code pour Mac OS
X/Intel, c'est qu'il veut sortir son code (dans un an), et donc il cliquera
sur le bouton de recompilation dans un an moins un jour.


Et comme par magie, tous les problèmes liés au passage au 64 bits
disparaîtront par miracle. Il faudra aller expliquer ça à Microsoft
qui peine à passer son Windows en 64 bits et aux créateurs de
distribution sous Linux qui ne parviennent pas à proposer tous les
programmes en 64 bits tant bien même ils ont tout le code nécessaire.

Par exemple, il voudra être payé pour (donc nouvelle version
payante).


Argument totalement hors de propos, on parle d'optimisation 32 vs 64 bits
pour Mac OS X/Intel lié au kit de développement actuel.


Ce qui n'empêche pas que le développeur voudra être payé pour. Ça se
voit tout le temps.

Et dans un an, qui te dit que Mac OS X/Intel ne sera pas
64 bits ?


Cela fait quelques messages que j'évoque le problème de la migration
32 vers 64 bits. C'est sans doute parce que je pense qu'effectivement
Apple passera au 64 bits.


Mais il y a aussi une chance qu'Apple saute le mode 32 bits Intel.


C'est mal parti. Crois-tu que Apple qui dispose de tout ce qu'il faut
pour proposer dès maintenant du 64 bits aux développeurs (avec
quelques défauts non encore corrigés, mais il y a un an pour corriger
ceci) s'emmerde à passer par le 32 bits ? Passer de 32 à 64 bits n'est
guère plus trivial que de passer du PPC au x86 et refaire encore une
migration va emmerder les développeurs.

Mais si cela se passe ainsi et que Apple prévient les développeurs
assez tôt, tant mieux !

Pas seulement. Apple pourrait bien commercialiser dans un premier
temps une version partiellement 64 bits de Mac OS X. Avec par exemple
iMovie en 32 bits. Et la prochaine version entièrement 64 bits sera
une autre version majeure. Passage à la caisse.


Encore des suppositions.


C'est sûr que spéculer que le passage en 64 bits se fera de manière
magique, ce ne sont pas des spéculations.

plusieurs versions des libs,


Si tu parles des sections dans un seul et même exécutable (comme
c'est déjà actuellement le cas dans Tiger, je le regrêt de te
l'apprendre), alors oui.


Je parle des libs qui devront être fournies en 32 et en 64 bits. Tu
développes un produit pour Mac OS X Intel aujourd'hui en utilisant une
librairie d'un éditeur tierce. Tout est en 32 bits. Dans un an, tu
veux une appli 64 bits. Pas de chance, il faut attendre que l'éditeur
tierce sorte la version 64 bits de sa librairie.


Aucun éditeur ne sortira un soft pour Mac OS X/Intel avant la sortie
officielle de Mac OS X/Intel car Apple peut changer un détail au dernier
moment qui fera que le programme ne sera pas compatible. Voir par exemple
Rhapsody.


Tu spécules sur le fait qu'il sortira en 64 bits. Dans le cas
contraire, relis ce que j'ai écrit. Imagine que nous sommes un an plus
tard si nécessaire.

D'autant que Apple ne communique absolument pas là-dessus, cela ne va
pas aider à la préparation du passage.


Parce que un an, c'est long, et que beaucoup de choses peuvent changer d'ici
là du côté d'Apple et d'Intel.


Apple avec ses centaines de programmeurs a besoin d'un an pour
envisager le passage au 64 bits, mais les développeurs isolés devront
passer au 64 bits en 15 jours. Mais bien sûr.

Une "toolchain", whao. Tu voudrais qu'Apple abandonne Xcode juste parce que
le premier kit de développement d'un OS qui sortira dans un an, n'a pas
toutes les fonctionnalités que tu attends de gcc ?


Que je sache, la toolchain est toujours gcc. Xcode est un
environnement de développement qui inclut une toolchain. Et
actuellement, il contient bien entre autres une toolchain PPC 64. Il
me semble que tu t'emportes sans t'être réellement documenté.


"toochain" ne veut rien dire et pas spécifiquement "gcc".


Une toolchain, c'est un compilateur et un linker. Dans le cas du
projet GNU, c'est donc gcc et les binutils. Tu peux éventuellement
ajouter un éditeur de texte et des librairies, mais c'est parfaitement
optionnel.

Bien sûr ta "toolchain" gcc sait compiler en PPC 64, qui en
douterait ? La cross-compilation avec gcc existe depuis pratiquement
l'origine de cette "toolchain". Et quelle "toochain" proposes-tu qui
fasse de l'Objective-C, du C, du C++, de l'Objective-C++ sur PPC 32,
64, et Intel 32 et 64 et qui sait générer du code Mach-O ?


Mais la même que actuellement ! Apple utilise toujours gcc comme
toolchain et il sait faire tout ça ! Et pour preuve, Darwin tourne sur
AMD 64 en 64 bits.

Le problème du passage en mode 64 bits sur Intel ne vient en rien de
la "toolchain" gcc, mais juste de Mac OS X lui-même (de ses
programmes et bibliothèques).


Oui, si Mac OS X ne tourne pas en 64 bits sur PC, c'est effectivement
une limitation. Mais si Apple compte (comme tu sembles vouloir
l'indiquer) le sortir en 64 bits dans un an, on devra y faire tourner
des programmes 32 bits et ce sera donc un système mixte. Parce qu'il
n'y a aucune raison que les développeurs aillent plus vite que Apple
pour effectuer sur leurs applications le passage en 64 bits.

Au contraire, pour la plupart, ils ne connaissent pas les problèmes
inhérents au passage en 64 bits (puisque sur PPC ce n'est nécessaire
que pour une poignée de programmes). Ils ne vont donc pas pouvoir
sortir du code 64 bits en un seul jour.
--
BOFH excuse #35:
working as designed




1 2 3 4