Changeset 3095 in Sophya for trunk/SophyaLib/Manual


Ignore:
Timestamp:
Oct 13, 2006, 5:15:52 PM (19 years ago)
Author:
ansari
Message:

nettoyage fichier modifs.tex pour tag V2.0 - Reza 13/10/2006

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/Manual/modifs.tex

    r3061 r3095  
    2929\begin{titlepage}
    3030\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]
    3433Liste des tags et dates : \\[5mm]
    3534{\large
    3635\begin{tabular}{lcl}
    3736V = 0.727 &   \hspace{10mm}  & Octobre 1999 \\
    38 V = 0.8  &   \hspace{10mm}  &  FŽvrier 2000 \\
    39 V = 1.1  &   \hspace{10mm}  &  FŽvrier 2001 \\
     37V = 0.8  &   \hspace{10mm}  &  F\'evrier 2000 \\
     38V = 1.1  &   \hspace{10mm}  &  F\'evrier 2001 \\
    4039V = 1.2  &   \hspace{10mm}  &  Juillet 2001 \\
    4140V = 1.3  &   \hspace{10mm}  &  Novembre  2001 \\
    42 V = 1.5  &   \hspace{10mm}  &   DŽcembre  2002 \\
     41V = 1.5  &   \hspace{10mm}  &   D\'ecembre  2002 \\
    4342V = 1.7  &   \hspace{10mm}  &   Septembre 2003 \\
    4443V = 1.9  &   \hspace{10mm}  &   Juin 2005 - SANS tag CVS \\
    45 V = 1.9xx  &   \hspace{10mm}  &  en cours (09/2005 ...) \\
     44V = 1.9xx  &   \hspace{10mm}  & 09/2005 ... 09/2006  \\
     45V = 2.0  &   \hspace{10mm}  &  Septembre 2006 - tag CVS \\
    4646
    4747\end{tabular}
     
    11731173
    11741174\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
    11761177de gestion du code (module {\bf BuildMgr/ } )
    11771178On 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
    11811181Septembre 2003 (17/9/2003) :  Changement DPCDEVREP, DPCBASEREP
    11821182en 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 dŽfinis pour un systme/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
     1190effectu\'ees. Reste \`a faire , si besoin :
     1191\begin{itemize}
     1192\item SophyaLib::TArray/
     1193\begin{verbatim}
    13411194  - Ajouter une classe de base abstraite GenericMatrix<T>
    13421195    avec methode d'acces aux elements, nb de lignes, nb de colonnes,
    1343     ...
    13441196  - Introduire les TinyMatrix  (TinyMatrix<T, int L, int C>)
    13451197    avec passage de/vers TMatrix<T> (et TinyVector<T, int N>) ?
    1346 
    13471198  - Introduire des matrices creuses simples SpareMatrix<T>
    1348 
    13491199  - 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 
     1200Remarque: Les TMatrix TinyMatrix et  SparseMatrix heritent de GenericMatrix
     1201\end{verbatim}
     1202
     1203\item PI/ piapp
     1204\begin{verbatim}
     1205o Ajouter un traceur de  ApplePie (BarChart fait )
    13871206o Ajouter un traceur de Lego-Plot
    1388 
    1389 o PIImageWindow (Une fenetre avec une PIImage, un Zoom et une vue globale)
    1390   Assemblage
    1391 
    13921207o (?) 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 vecteur
    1400   qui peut etre detecte par exemple lors de l'initialisation par set
    1401   set a 'Bonjour CMV' # -> variable scalaire
    1402   set va [ 12 14 hello ... ] # variable de type vecteur $va[]
    1403 
    14041208o Voir comment on pourrait "joindre" deux objets ayant l'interface NTupleInterface
    14051209  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 PIext
    1409 
    14101210o (???) Introduire quelque chose du style
    14111211  AddDialogue("Cmd", "dialogue-description)
    14121212  qui pourrait fabriquer automatiquement une fenetre avec des champs a remplir
    14131213  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}
    14181216
    14191217
Note: See TracChangeset for help on using the changeset viewer.