Changeset 3095 in Sophya
- Timestamp:
- Oct 13, 2006, 5:15:52 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/Manual/modifs.tex
r3061 r3095 29 29 \begin{titlepage} 30 30 \begin{center} 31 {\Large \bf Liste de modifications de SOPHYA } \\[5mm] 32 { \large (fait ou faire ) } \\ 33 {\large Janvier 2003 - Novembre 2005 } \\[25mm] 31 {\Large \bf Liste de modifications de SOPHYA } \\[5mm] 32 {\large Janvier 2003 - Septembre 2006 } \\[25mm] 34 33 Liste des tags et dates : \\[5mm] 35 34 {\large 36 35 \begin{tabular}{lcl} 37 36 V = 0.727 & \hspace{10mm} & Octobre 1999 \\ 38 V = 0.8 & \hspace{10mm} & F vrier 2000 \\39 V = 1.1 & \hspace{10mm} & F vrier 2001 \\37 V = 0.8 & \hspace{10mm} & F\'evrier 2000 \\ 38 V = 1.1 & \hspace{10mm} & F\'evrier 2001 \\ 40 39 V = 1.2 & \hspace{10mm} & Juillet 2001 \\ 41 40 V = 1.3 & \hspace{10mm} & Novembre 2001 \\ 42 V = 1.5 & \hspace{10mm} & D cembre 2002 \\41 V = 1.5 & \hspace{10mm} & D\'ecembre 2002 \\ 43 42 V = 1.7 & \hspace{10mm} & Septembre 2003 \\ 44 43 V = 1.9 & \hspace{10mm} & Juin 2005 - SANS tag CVS \\ 45 V = 1.9xx & \hspace{10mm} & en cours (09/2005 ...) \\ 44 V = 1.9xx & \hspace{10mm} & 09/2005 ... 09/2006 \\ 45 V = 2.0 & \hspace{10mm} & Septembre 2006 - tag CVS \\ 46 46 47 47 \end{tabular} … … 1173 1173 1174 1174 \section{Mgr} 1175 {\Large Avril-Mai 2005 : Basculement vers la nouvelle version de scripts 1175 \begin{itemize} 1176 \item Avril-Mai 2005 : Basculement vers la nouvelle version de scripts 1176 1177 de gestion du code (module {\bf BuildMgr/ } ) 1177 1178 On n'a plus a se preoccuper des indications de cette section 1178 } 1179 1180 \subsection{Variables d'environnement SOPHYAxxx (17/9/2003) } 1179 1180 \item 1181 1181 Septembre 2003 (17/9/2003) : Changement DPCDEVREP, DPCBASEREP 1182 1182 en SOPHYADEVREP , SOPHYABASEREP , EROSCXX en SOPHYACXX 1183 1184 \subsection{Modifs Makefile - Message du 3 Mars 2004 } 1185 Modifs effectuees - m nouveau module BuildMgr 1186 1187 \subsection{ Modifs Makefile - Message du 8 Juillet 2004 } 1188 \begin{verbatim} 1189 A/ Makefile(s) (voir aussi mon message du 3 mars 2004) 1190 A-1/ Structures des repertoires 1191 >> On garde la structuration avec 1192 + un Makefile par module 'librairie' 1193 + un ensemble de modules librairies sans lib externe -> libsophya.slb 1194 + un ensemble de modules librairies avec lib externe -> libextsophya.slb 1195 + Des modules programmes (PrgUtil/ PrgMap/ ) avec un makefile par module programme 1196 + un Makefile de haut niveau (actuellement ds Mgr/Makefile 1197 Ce Makefile de haut niveau sera aussi simplifi - en particulier la partie 1198 concernant la fabrication des shared-libs (.slb) et Makefile.slb 1199 + On garde aussi la convention de generation automatique des GNUmakefile, qui sont 1200 ensuite renommes eventuellement en Makefile, conserves ds la base 1201 - Plus d'inclusion automatique du nom du system-compilo (Linux-g++ OSF1-cxx ...) 1202 dans les noms de repertoires 1203 - Plus de structure ExtLibDir obligatoire (remplace par des -Ipath -Lpath pour les 1204 compils/links 1205 - Si besoin, on fait subir le meme sort que Makefile.h a Makefile.slb 1206 1207 On aura donc : (message du 3 mars 2004) 1208 il y aura qu'une seule variable d'environnement : (SOPHYAROOT ou 1209 SOPHYARACINE) par exemple 1210 $SOPHYAROOT/Include 1211 Attention le repertoire Include/ NE sera donc PLUS commun pour plusieurs 1212 systemes-compilo. 1213 /Libs 1214 /ShLibs 1215 /Exec 1216 /Objs 1217 Un fichier Makefile.h ds $SOPHYAROOT/Include 1218 contiendra les flags de compilation dfinis pour un systme/compilo. 1219 A la base, on aura ds Mgr/ un fichier Makefile.h pour chaque combinaison 1220 compilo-compilo; 1221 Mgr/makef_osf1_cxx.h 1222 Mgr/makef_linux_g++.h 1223 Mgr/makef_linux_KCC.h 1224 Mgr/makef_darwin_g++.h (Mac) 1225 Mgr/makef_sgi_CC.h 1226 etc ... 1227 C'est ce fichier qui est copi en Include/Makefile.h, ventuellement 1228 complete/modifie 1229 1230 ----- Fichier Makefile.h 1231 # Section generale 1232 SOPHYAROOT = 1233 SOPHYACXX= 1234 ... 1235 # Section compilation 1236 CC_COMPILER (nom du compilo cc) 1237 CXX_COMPILER ( c++) 1238 CPPFLAGS , (flag du preprocesseur), en particulier 1239 les -Iincludepath (chemin pour les includes SOPHYA 1240 CFLAGS flag de compilation c 1241 CXXFLAGS flags de compilation c++ 1242 # Section Link 1243 LIBPATH -L... -L... (chemin pour les librairies et les lib externes (cfitsio, ...) 1244 LIBLIST -lm -lcfitsio ... (les librairies) 1245 1246 Ces variables doivent pouvoir etre utilise par la classe CxxCompilerLinker. 1247 Il faut donc prevoir peut-etre un autre fichier cccpp_flags.h (ou qque chose 1248 du meme genre) avec la syntaxe C/C++ de chaines de caracteres 1249 pouvant etre include (par #include) ds cxxcmplnk.cc 1250 1251 le fichier machdefs.h ds $SOPHYAROOT/Include est genere a partir du fichier 1252 machdefs_mkmf.h actuel (on pourra songer ulterieurement a le casser en 1253 plusieurs morceaux si necessaire) et contiendra en entete les flags 1254 qui modifie la generation du code 1255 1256 exemple 1257 #define Linux 1258 #define SOPHYA_DEBUG 1259 .... 1260 1261 Dans les fichier Makefile pour chaque module, on abandonnera 1262 les regles (et repertoire) de compilation par defaut et on aura 1263 donc: 1264 INC= $SOPHYAROOT/Include 1265 OBJ = $SOPHYAROOT/Objs 1266 LIB=... 1267 $(OBJ)toto.o : toto.cc $(INC)toto.h $(INC)titi.h ... 1268 $CXX $CXXFLAGS -c -o $(OBJ)toto.o toto.cc 1269 .... 1270 1271 \end{verbatim} 1272 1273 1274 \section{Plan de modifs pour SOPHYA V 2.0 PI/piapp V 4.0 } 1275 1276 {\Large {\bf Dec 2005} : La majorite des modifs ont ete mise en oeuvre - 1277 Il faut nettoyer la liste et la transformer en liste pour la version 2.2 ou 2.4 ...} \\ 1278 1279 {\bf Plan tabli en septembre 2003 : } 1280 1281 \subsection{Gestion du code (Mgr/ ) } 1282 \begin{verbatim} 1283 1284 o Chemins/variables d'environnement 1285 - Remplacer DPCDEVREP DPCBASEREP par SOPHYADEVREP et SOPHYABASEREP 1286 - Remplacer EROSCXX par SOPHYACXX (?) 1287 o Simplifier/rationaliser les makefiles 1288 - Mettre les flags de compils pour chaque compilo-systeme dans un fichier au lieu 1289 d'avoir tout Makefile.h 1290 Exemple fichier Mgr/linux_g++.flags 1291 CPPFLAGS = ... 1292 CXXFLAGS = ... 1293 LIBS = ... 1294 1295 o Mettre un script pour chercher les lib externes (c-fitsio, FFTW, ...) et creer 1296 eventuellement l'arborescence ExtLibs 1297 1298 o Inclure la definition des flags influant sur le code (comme 1299 -DOSF1/Linux/Darwin/IRIX64 1300 SO_BOUNDCHECKING a la fin du fichier machdefs.h que l'on fabriquera a 1301 partir de du machdef_mkmf.h ) 1302 PB-> ce fichier deviendra alors dependant du systeme et de l'installation ! 1303 Faut-il deplacer alors Include/ sous uname-$EROSCXX (Linux-g++) 1304 ou carrement considerer que la separation pour differents systemes doit se faire au 1305 niveau de SOPHYADEV/BASE/REP ? 1306 1307 o Abandonner (?) les regles de compilation par defaut 1308 Inclure dans les Makefile la ligne de commande : 1309 $(OBJ)toto.o : toto.cc toto.h titi.h ... 1310 $(COMPILECXX) -$(CPPFLAGS) $(CXXFLAGS) -c -o $(OBJ)toto.o toto.cc 1311 1312 o Garder les Makefile simple (eviter trop de tests et syntaxe complique) 1313 1314 \end{verbatim} 1315 1316 \subsection{Code/Librairie SOPHYA $\rightarrow$ V 2.0)} 1317 \begin{verbatim} 1318 1319 o Fichiers PPersist (BaseTools) : 1320 - Ajouter la possibilite d'ecrire des complex(r_4> complex<r_8> 1321 (actuellement c'est ecrit sous forme de 2*r_4 ou 2*r_8) 1322 - Ajouter des tag de positionnement qui pourrait servir au cas 1323 ou on utiliserait le fichier PPF comme fichier de swap 1324 Ces tags ne peuvent pas etre les memes que les name-tag 1325 existant actuellement. 1326 Une utilisation annexe de ces tags peut etre alors un moyen 1327 de verifier que le fichier n'est pas corrompu 1328 Ce tag se presente alors sous forme de 1329 <tag (1 byte)><FilePosition (8 byte, long int)> 1330 On peut alors parcourir le fichier et verifier la coherence de 1331 ces tags. 1332 - Il faut aussi ajouter au niveau de POutPersist et PInPersist 1333 les services pour ecrire et lire une collection de tag de 1334 positionnement, afin qu'un objet puisse utiliser une liste de 1335 tag pour se positionner 1336 1337 o BaseTools/ Voir autres remarques ds fichier Manual/sophya_afaire.txt 1338 concernant en particulier les NDataBlock<T> DataBlock<T> ... 1339 1340 o Les tableaux : TArray/ 1183 \end{itemize} 1184 1185 1186 1187 \section{Plan de modifs pour SOPHYA V 2.x PI/piapp V 4.x } 1188 1189 {\bf Sep 2006} : La grande majorit\'e des modifs pr\'evues en 2003 ont \'et\'e 1190 effectu\'ees. Reste \`a faire , si besoin : 1191 \begin{itemize} 1192 \item SophyaLib::TArray/ 1193 \begin{verbatim} 1341 1194 - Ajouter une classe de base abstraite GenericMatrix<T> 1342 1195 avec methode d'acces aux elements, nb de lignes, nb de colonnes, 1343 ...1344 1196 - Introduire les TinyMatrix (TinyMatrix<T, int L, int C>) 1345 1197 avec passage de/vers TMatrix<T> (et TinyVector<T, int N>) ? 1346 1347 1198 - Introduire des matrices creuses simples SpareMatrix<T> 1348 1349 1199 - Introduire les DiagonalMatrix<T> 1350 1351 Remarque: Les TMatrix TinyMatrix et SparseMatrix heritent de GenericMatrix 1352 1353 o HiStats 1354 - Faire une classe SuperNTuple (!), facile a utiliser, sachant swaper sur les 1355 PPF, avec des champs de differents type 1356 1357 o IFFTW/ 1358 - Passage a FFTW 3.x ? 1359 1360 o Voir autres remarques pour l'ensemble des modules ds Manual/sophya_afaire.txt 1361 \end{verbatim} 1362 1363 \subsection{Code/Librairie PI ($\rightarrow$ V 4.0)} 1364 \begin{verbatim} 1365 1366 o Menu contextuel pour les Drawers 1367 - Ajouter a PIImage, PIScrDrawWdg(2D), PIDraw3DWdg(3D) un menu obtenu 1368 sur <Shift><Bouton-1> par exemple, avec la liste de tous les Drawers 1369 permettant d'afficher la fenetre des options graphiques, ou le fenetre 1370 des options ou la fenetre des options texte, activer deplacement/resize 1371 des drawers, suppression (delete) ou detach des drawers, et en fonction 1372 du widgets, la fenetre des axes ou de controle d'image 1373 1374 o Mettre l'option auto-scale (rapport entre axes X,Y,Z) pour les Drawers3D 1375 verifer/debugger la definition de la boite 3D au niveau des Drawers3D 1376 1377 o Traceur d'histos, NTuples, ... 1378 Remplacer le trace des lignes par morceau fait par appel multiples 1379 a DrawLine a un seul appel a DrawPolygon (si les lignes sont connectes 1380 bien sur) --> Ca ameliore sensiblement l'aspect pour le trace en pointille 1381 1382 o Ajouter un traceur de Bar-chart 2D OU ApplePie (facile !) 1383 On donne une serie de nombres, serie de couleur, + serie de strings 1384 et on trace alors une sorte d'histo, avec des barres (rectangles) espaces 1385 Ou bien on trace un cercle divise en zones 1386 1200 Remarque: Les TMatrix TinyMatrix et SparseMatrix heritent de GenericMatrix 1201 \end{verbatim} 1202 1203 \item PI/ piapp 1204 \begin{verbatim} 1205 o Ajouter un traceur de ApplePie (BarChart fait ) 1387 1206 o Ajouter un traceur de Lego-Plot 1388 1389 o PIImageWindow (Une fenetre avec une PIImage, un Zoom et une vue globale)1390 Assemblage1391 1392 1207 o (?) Une fonction pour faire facilement une fenetre d'alerte ou d'info (?) 1393 1394 \end{verbatim}1395 1396 \subsection{(s)piapp ($\rightarrow$ V 4.0)}1397 \begin{verbatim}1398 1399 o Verifier l'interpreteur et introduire le type de variable vecteur1400 qui peut etre detecte par exemple lors de l'initialisation par set1401 set a 'Bonjour CMV' # -> variable scalaire1402 set va [ 12 14 hello ... ] # variable de type vecteur $va[]1403 1404 1208 o Voir comment on pourrait "joindre" deux objets ayant l'interface NTupleInterface 1405 1209 pour pouvoir plotter des objets, l'un vs l'autre 1406 1407 o Separer la classe PIACmd en une classe de base (CShellLikeInterpreter)1408 (a mettre ds SysTools) et la classe PIACmd a laisser ds PIext1409 1410 1210 o (???) Introduire quelque chose du style 1411 1211 AddDialogue("Cmd", "dialogue-description) 1412 1212 qui pourrait fabriquer automatiquement une fenetre avec des champs a remplir 1413 1213 pour les commandes usuelles (???) 1414 1415 o Voir les autres commentaires ds Manual/spiapp_afaire.txt 1416 1417 \end{verbatim} 1214 \end{verbatim} 1215 \end{itemize} 1418 1216 1419 1217
Note:
See TracChangeset
for help on using the changeset viewer.