CarbonLib ou émulation pour Windows ?

Certes et 10.7 ? Dans deux ans, tu réécrits toutes tes applications. :rateau:
10.6 supporte ces technologies car des nombreuses vieilles applications les utilisent mais si Adobe se casse le c... à réécrire ses applications alors qu'ils ne l'ont pas fait depuis bientôt 10 ans qu'existe Mac OSX, c'est qu'ils doivent avoir une bonne raison. Ils ont peut être plus d'infos que toi :D:D:D
 
Désolé, je n'ai toujours pas compris ce que veut dire 64 bits et 32 bits. Quand on déclare un int il sera 64 bits et non plus 32. Qu'est ce que cela change... ?
C'est le code qui sera 64 bits et prendra deux fois plus de place ? Quels sont les gains ?
Eh, Tatouille, explique nous !

Cordialement
 
Désolé, je n'ai toujours pas compris ce que veut dire 64 bits et 32 bits. Quand on déclare un int il sera 64 bits et non plus 32. Qu'est ce que cela change... ?
C'est le code qui sera 64 bits et prendra deux fois plus de place ? Quels sont les gains ?
Eh, Tatouille, explique nous !

Cordialement

Cela permet d'adresser plus de 4 Gigas de ram pour les applications, parfait pour l'image de synthèse, sinon en C un long double sera 'traiter' en une seule fois... théoriquement

le 64 bits consomme un peu plus de mémoire.
 
C'est le code qui sera 64 bits et prendra deux fois plus de place ? Quels sont les gains ?
A toi de choisir la taille de tes données en fonction de tes besoins. Si tu n'as pas besoin d'un long long contente toi d'un int ou d'un short. :rateau:

Sur un Intel 64 bits :
char : 1 octet
short : 2 octets
int : 4 octets
long : 4 octets
long long : 8 octets

Par contre quelle est la subtile différence entre int et long ? :confused:
 
Je pense que Didier "pamphletait" ;) et qu'il n'a pas besoin que tu lui donnes un calcule concernant les types (donne en byte :rateau:) ceci dit pouvant etre aussi a la discretion du compiler*, heureusement le faite de garder une int (bit) de taille 32, ca peut servir because of myint >>32 could give us some surprises! enfin c'est a demi-mot que je viens ici.

*compiler
en effet si ton compiler et pas trop con ici il devrait faire quelques optimizations (pourquoi reserver une taille de 32 ici...)
Bloc de code:
int i;
for (i = 0; i < 5; i++) {} 
// dans le cas LP64 long i; pourquoi reserver une taille de 64 ici...
// pareil pour les pointers
différence entre int et long ? :confused:

32-bit familly et assimiles:

les pointeurs , "int" , "long" ont tous une "largeur/taille" de 32-bit.

true-64-bit familly:
*** si LLP64-env (c'est la que tu trouves long long type rustine), les "int" et "long" ont toujours une "largeur/taille" de 32 , mais les pointeurs ont une taille de 64

*** si LP64-env (LES UNIX-LIKEs), les "int" ont toujours une "largeur/taille" de 32, mais le type "long"
et les pointeurs ont une taille de 64,

*** si ILP64-env, "int", "long" et pointeurs ont une taille de 64,

*** si SILP64-env, "short" ont aussi une taille de 64.

tu comprendras pourquoi certains sont un peu septiques a propos de l'ere 64, un beau bordel en perspective.
 
Certes et 10.7 ? Dans deux ans, tu réécrits toutes tes applications. :rateau:
10.6 supporte ces technologies car des nombreuses vieilles applications les utilisent mais si Adobe se casse le c... à réécrire ses applications alors qu'ils ne l'ont pas fait depuis bientôt 10 ans qu'existe Mac OSX, c'est qu'ils doivent avoir une bonne raison. Ils ont peut être plus d'infos que toi :D:D:D
Se casse les quoi ? Si tu écris les mots à moitié, on ne va pas te comprendre


Désolé, je n'ai toujours pas compris ce que veut dire 64 bits et 32 bits. Quand on déclare un int il sera 64 bits et non plus 32. Qu'est ce que cela change... ?
C'est le code qui sera 64 bits et prendra deux fois plus de place ? Quels sont les gains ?
Eh, Tatouille, explique nous !

Cordialement
La taille des int (entiers naturels), des long et des pointer (alias void*), se voient attribués individuellement soit une taille de 32 bits soit une taille de 64 bits.

Cette assignation dépend du compilateur et du système d'exploitation cible. Mais en pratique, l'OS et le compilateur sont aussi étroitement liés que par contrat (un OS = un compilateur officiel), et on peut le plus souvent de référer à l'OS et à implicitement un compilateur (ou une configuration d'un compilateur).

Il existe plusieurs combinaisons possibles, mais deux d'entre elles (en dehors de plus exotiques) sont plus fréquentes : la convention Windows et la convention UNIX.

Sous Windows 64, int et long font 32 bits, pointer fait 64 bits.
On fait référence à cette convention, sous le terme IL32P64

Sous UNIX 64, int fait 2 bits, long et pointer font 64 bits.
On fait référence à cette convention, sous le terme I32LP64

Personellement, je trouve la convention de Windows plus judicieuse, car correspondant plus aux besoins, plus économe et facilitant la migration des applications 32 bits.

Remarque : ces problèmes ne se posent que parce que le C est le C (pas portable). Un language stricte et préis comme Ada, assigne au type pointer (access) le type requis par le système et les type entiers sont le plus souvent définis par des intervals de valeurs (et peuvent même recevoir des clauses de représentation, pour les interface de bas niveau)

Cela permet d'adresser plus de 4 Gigas de ram pour les applications, parfait pour l'image de synthèse, sinon en C un long double sera 'traiter' en une seule fois... théoriquement

le 64 bits consomme un peu plus de mémoire.
Un peu plus... ou nettement plus ...


Je doute un peu de l'utilité du passage au 64 bits, dont l'évidence n'est pas aussi flagrante que lors du passage du 16 bits au 32 bits (mais je n'ai pas envie d'en discuter sur l'instant).

Et le problème, est comme souvent qu'il s'agira d'une migration forcée (pour forcer un rachat de nouveau matériel ?)


Documents interessants à ce sujet :

Optimization of 64-bit programs
Ce que le 64 bits peut promettre et ne pas promettre.
L'intérêt de ce document, et qu'il n'est pas trop partisan

C variable types and declarations / Size
Bien que le C soit laxiste dans sa définition des type de base et surtout des types dérivés, il existent tout de même des obligations en ce qui concerne les relation entre les différents modificateurs des types de base. Ce document en fait un rappel.

[Libvir] Windows sizeof(long) != Linux sizeof(long)
Interessant témoignage dans une mailing liste, d'une personne venant de découvrir que le type long n'est pas le même sous Winows 64 que sous Linux 64.

64-Bit Programming Models: Why LP64?
Où l'on reparle de la différence entre IL32P64 vs I32LP64
 
Cela permet d'adresser plus de 4 Gigas de ram pour les applications, parfait pour l'image de synthèse, sinon en C un long double sera 'traiter' en une seule fois... théoriquement

le 64 bits consomme un peu plus de mémoire.

GPU + CPU 64-bit, il y a aussi un gros marche concernant la 3d, mais aussi pour les floats... et l'algo... ca ouvre des portes parfois bien plus simples et rapides mais cf: ma precedente reponse.

PS: si tu es sur le campus et le souhaite, on pourra prendre une boisson un de ces jours :zen:

---------- Nouveau message ajouté à 23h46 ---------- Le message précédent a été envoyé à 23h09 ----------

pour en revenir a la question, ayant une experience multi-platforme avec WX ce n'est pas aussi simple et les doigts dans le nez que ca,

il y a encore beaucoup trop d'objets differents par platforme et certains font crasher tout bonnement ton appli (la doc sucks too), il y a bien des macros if WX_MAC WIN GTK ecetera, mais cela demande un test constant sur chaque platforme avec des ajustements et pas des moindres, sur** plus propre que java et rapide que java, car c'est une API C++, MAIS CA N'ECESSITE le fait d'avoir les OS target, et un investissement dans le framework pour connaitre ces nombreux glitches.

:zen:

pour ton argumentaire sur la "probalité fausse", tu devrais lire "Les Principes du calcul infinitésimal", ce qui pourrait te donner quelques explications a propos de la separation, et Couturat avec son fameux "De l'infini mathématique".

et tu devrais installer un simple wordpress sans fioritures ce qui donnerait plus de place au texte :)