====== Commit 2008-12-20 ====== ===== Modifs ===== ==== Fac binaire portable ==== Depuis l'utilisation intensive de ''size_t'' dans le code, les FACs binaires ne sont plus compatibles entre machines. Pour y remédier, je liste ici les différents types et leurs tailles respectives sur nos machines: ^ host ^ corto ^ garfield ^ calimero ^ clifton ^ chinook ^ ^ OS | win32 | vista64 | linux-x86 | linux-64 | alpha-linux | ^ byte order | little | little | little | little | little | ^ char | signed | signed | signed | signed | signed | ^ system | 32 bits | 64 bits | 32 bits | 64 bits | 64 bits ^ Remarques ^ ^ sizeof(char) | 1 | 1 | 1 | 1 | 1 | OK | ^ sizeof(short) | 2 | 2 | 2 | 2 | 2 | OK | ^ sizeof(int) | 4 | 4 | 4 | 4 | 4 | OK | ^ sizeof(long) | 4 | 4 :!: | 4 | 8 | 8 | = sizeof(void*) SAUF Vista64! | ^ sizeof(float) | 4 | 4 | 4 | 4 | 4 | OK | ^ sizeof(double) | 8 | 8 | 8 | 8 | 8 | OK | ^ sizeof(size_t) | 4 | 8 | 4 | 8 | 8 | = sizeof(void*) | ^ sizeof(void*) | 4 | 8 | 4 | 8 | 8 | fonction du système 32/64 bits | ^ sizeof(bool) | 1 | 1 | 1 | 1 | 1 | OK | ^ sizeof(__int64) | 8 | 8 | | | | utilisable sous Windows | ^ sizeof(long long) | | | 8 | 8 | 8 | utilisable sous Unix | Comme on peut le voir, toutes nos machines sont de type "little endian" et utilisent des "signed char" par défaut. Si on veut un jour lancer Metafor sur Mac ou sur Sun et relire les FACs sur des machines normales, il faudra faire la traduction "big-endian" => "little-endian" (je m'en chargerai, c'est pas difficile). Bref, on voit que les FACs clifton et chinook sont identiques et peuvent être relus sous Vista x64 sans problème (parce qu'on n'utilise pas des ''long''!). De même, les FACs calimero sont lisibles sous WinXP, mais illisibles sous Vista x64 (ça va merdouiller au premier ''size_t'' rencontré). La plupart des types sont codés identiquement sur toutes les machines mis à part ''long'' et ''size_t''. * Pour ''long'', il n'y a pas de problème puisqu'on n'utilise jamais ce type... et qu'on ne l'utilisera jamais! * Pour ''size_t'', l'idéal est de sauver un entier non signé sur 64 bits quelle que soit la machine utilisée. Avec cette méthode, tous les FACs sont compatibles sur les machines actuelles. L'inconvénient est que tous les anciens FACs calimero et WinXP deviennent illisibles. Bref, il faudra refaire tourner nos anciens cas-tests (...ah non, pas les miens vu que je suis sous Vista-x64 ;-)) ==== Suppression des résidus DECCXX ==== Il est temps d'enterrer définitivement le vieux système OSF: * ''MetaStrStream'' peut être avantageusement remplacé par ''std::ostringstream'' (qui buguait sous OSF). * ''template<>'' peut être utilisé partout où il le faut d'après Stroustrup. * J'ai viré les résultats de batterie OSF (récupérable par "svn -r" pour les nostalgiques). ===== Fichiers ajoutés/supprimés ====== --- //[[r_boman@yahoo.fr|Romain BOMAN]] 2007/12/20 09:04//