Index: trunk/SophyaLib/Manual/modifs.tex
===================================================================
--- trunk/SophyaLib/Manual/modifs.tex	(revision 3093)
+++ trunk/SophyaLib/Manual/modifs.tex	(revision 3095)
@@ -29,19 +29,19 @@
 \begin{titlepage}
 \begin{center}
-{\Large \bf Liste de modifications de SOPHYA } \\[5mm]
-{ \large (fait ou  faire ) } \\
-{\large Janvier 2003 - Novembre 2005 } \\[25mm]
+{\Large \bf Liste de modifications de SOPHYA } \\[5mm] 
+{\large Janvier 2003 - Septembre 2006 } \\[25mm]
 Liste des tags et dates : \\[5mm]
 {\large 
 \begin{tabular}{lcl}
 V = 0.727 &   \hspace{10mm}  & Octobre 1999 \\
-V = 0.8  &   \hspace{10mm}  &  Fvrier 2000 \\
-V = 1.1  &   \hspace{10mm}  &  Fvrier 2001 \\
+V = 0.8  &   \hspace{10mm}  &  F\'evrier 2000 \\
+V = 1.1  &   \hspace{10mm}  &  F\'evrier 2001 \\
 V = 1.2  &   \hspace{10mm}  &  Juillet 2001 \\
 V = 1.3  &   \hspace{10mm}  &  Novembre  2001 \\
-V = 1.5  &   \hspace{10mm}  &   Dcembre  2002 \\
+V = 1.5  &   \hspace{10mm}  &   D\'ecembre  2002 \\
 V = 1.7  &   \hspace{10mm}  &   Septembre 2003 \\
 V = 1.9  &   \hspace{10mm}  &   Juin 2005 - SANS tag CVS \\
-V = 1.9xx  &   \hspace{10mm}  &  en cours (09/2005 ...) \\
+V = 1.9xx  &   \hspace{10mm}  & 09/2005 ... 09/2006  \\
+V = 2.0  &   \hspace{10mm}  &  Septembre 2006 - tag CVS \\
 
 \end{tabular}
@@ -1173,247 +1173,45 @@
 
 \section{Mgr} 
-{\Large Avril-Mai 2005 : Basculement vers la nouvelle version de scripts 
+\begin{itemize}
+\item Avril-Mai 2005 : Basculement vers la nouvelle version de scripts 
 de gestion du code (module {\bf BuildMgr/ } ) 
 On n'a plus a se preoccuper des indications de cette section 
-} 
-
-\subsection{Variables d'environnement SOPHYAxxx (17/9/2003)  } 
+
+\item 
 Septembre 2003 (17/9/2003) :  Changement DPCDEVREP, DPCBASEREP
 en SOPHYADEVREP , SOPHYABASEREP , EROSCXX en SOPHYACXX 
-
-\subsection{Modifs Makefile - Message du 3 Mars 2004 }
-Modifs effectuees - m nouveau module BuildMgr 
-
-\subsection{ Modifs Makefile - Message du 8 Juillet 2004 }
-\begin{verbatim}
-A/ Makefile(s)  (voir aussi mon message du 3 mars 2004)
-A-1/ Structures des repertoires
->> On garde la structuration avec 
-+ un Makefile par module 'librairie'
-+ un ensemble de modules librairies sans lib externe -> libsophya.slb
-+ un ensemble de modules librairies avec lib externe -> libextsophya.slb
-+ Des modules programmes (PrgUtil/ PrgMap/ ) avec un makefile par module programme
-+ un Makefile de haut niveau (actuellement ds Mgr/Makefile 
-  Ce Makefile de haut niveau sera aussi simplifi - en particulier la partie
-concernant la fabrication des shared-libs (.slb) et Makefile.slb 
-+ On garde aussi la convention de generation automatique des GNUmakefile, qui sont 
-ensuite renommes eventuellement en Makefile, conserves ds la base 
-- Plus d'inclusion automatique du nom du system-compilo (Linux-g++ OSF1-cxx ...) 
-dans les noms de repertoires
-- Plus de structure ExtLibDir obligatoire (remplace par des -Ipath -Lpath pour les
-compils/links
-- Si besoin, on fait subir le meme sort que Makefile.h a Makefile.slb
-
-  On aura donc :   (message du 3 mars 2004)
-il y aura qu'une seule variable d'environnement :  (SOPHYAROOT ou
-SOPHYARACINE) par exemple
-$SOPHYAROOT/Include  
-Attention le repertoire Include/  NE sera donc PLUS commun pour plusieurs
-systemes-compilo. 
-                              /Libs
-                              /ShLibs
-                              /Exec
-                              /Objs
-Un fichier Makefile.h ds $SOPHYAROOT/Include
-contiendra les flags de compilation dfinis pour un systme/compilo.
-A la base, on aura ds Mgr/ un fichier Makefile.h pour chaque combinaison 
-compilo-compilo;
-Mgr/makef_osf1_cxx.h 
-Mgr/makef_linux_g++.h
-Mgr/makef_linux_KCC.h
-Mgr/makef_darwin_g++.h  (Mac)
-Mgr/makef_sgi_CC.h
-  etc ...
-C'est ce fichier qui est copi en Include/Makefile.h, ventuellement 
-complete/modifie
-
------ Fichier Makefile.h
-#  Section  generale
-SOPHYAROOT =
-SOPHYACXX=
-...
-#  Section compilation
-CC_COMPILER  (nom du compilo cc)
-CXX_COMPILER (   c++)
-CPPFLAGS , (flag du preprocesseur), en particulier
-les -Iincludepath  (chemin pour les includes SOPHYA
-CFLAGS flag de compilation c
-CXXFLAGS flags de compilation c++
-#  Section Link
-LIBPATH -L... -L... (chemin pour les librairies et les lib externes (cfitsio, ...)
-LIBLIST -lm -lcfitsio ... (les librairies)
-
-Ces variables doivent pouvoir etre utilise par la classe CxxCompilerLinker.
-Il faut donc prevoir peut-etre un autre fichier cccpp_flags.h (ou qque chose
-du meme genre) avec la syntaxe C/C++ de chaines de caracteres
-pouvant etre include (par #include) ds cxxcmplnk.cc
-
-le fichier machdefs.h ds $SOPHYAROOT/Include est genere a partir du fichier
-machdefs_mkmf.h actuel (on pourra songer ulterieurement a le casser en
-plusieurs morceaux si necessaire) et contiendra en entete les flags
-qui modifie la generation du code
-
-exemple
-#define Linux
-#define SOPHYA_DEBUG
-....
-
-Dans les fichier Makefile pour chaque module, on abandonnera
-les regles (et repertoire) de compilation par defaut et on aura
-donc:
-INC= $SOPHYAROOT/Include
-OBJ = $SOPHYAROOT/Objs
-LIB=...
-$(OBJ)toto.o : toto.cc $(INC)toto.h $(INC)titi.h ...
-	$CXX $CXXFLAGS -c -o  $(OBJ)toto.o toto.cc
-....
-  
-\end{verbatim}
-
-
-\section{Plan de modifs pour SOPHYA V 2.0 PI/piapp V 4.0 }
-
-{\Large {\bf Dec 2005} : La majorite des modifs ont ete mise en oeuvre - 
-Il faut nettoyer la liste et la transformer en liste pour la version 2.2 ou 2.4 ...} \\
-
-{\bf Plan tabli en septembre 2003 : } 
-
-\subsection{Gestion du code (Mgr/ ) }
-\begin{verbatim}
-
- o Chemins/variables d'environnement
-   - Remplacer DPCDEVREP DPCBASEREP par SOPHYADEVREP et SOPHYABASEREP
-   - Remplacer EROSCXX par SOPHYACXX (?)
- o Simplifier/rationaliser les makefiles
-   - Mettre les flags de compils pour chaque compilo-systeme dans un fichier au lieu
-     d'avoir tout Makefile.h
-     Exemple fichier Mgr/linux_g++.flags
-      CPPFLAGS = ...
-      CXXFLAGS = ...
-      LIBS = ...
-
-o Mettre un script pour chercher les lib externes (c-fitsio, FFTW, ...) et creer
-  eventuellement l'arborescence ExtLibs
-
-o Inclure la definition des flags influant sur le code (comme 
-   -DOSF1/Linux/Darwin/IRIX64
-   SO_BOUNDCHECKING a la fin du fichier machdefs.h que l'on fabriquera a 
-   partir de du machdef_mkmf.h )
-   PB-> ce fichier deviendra alors dependant du systeme et de l'installation !
-   Faut-il deplacer alors Include/ sous uname-$EROSCXX (Linux-g++)
-    ou carrement considerer que la separation pour differents systemes doit se faire au
-  niveau de SOPHYADEV/BASE/REP ?
-
-o Abandonner (?) les regles de compilation par defaut
-  Inclure dans les Makefile la ligne de commande :
-  $(OBJ)toto.o : toto.cc toto.h titi.h ...
-        $(COMPILECXX) -$(CPPFLAGS) $(CXXFLAGS) -c -o $(OBJ)toto.o toto.cc
-
-o Garder les Makefile simple (eviter trop de tests et syntaxe complique)
-
-\end{verbatim}
-
-\subsection{Code/Librairie SOPHYA $\rightarrow$ V 2.0)}
-\begin{verbatim}
-
-o Fichiers PPersist (BaseTools) :
-  - Ajouter la possibilite d'ecrire des complex(r_4> complex<r_8>
-    (actuellement c'est ecrit sous forme de 2*r_4 ou 2*r_8)
-  - Ajouter des tag de positionnement qui pourrait servir au cas
-    ou on utiliserait le fichier PPF comme fichier de swap
-    Ces tags ne peuvent pas etre les memes que les name-tag
-    existant actuellement.
-    Une utilisation annexe de ces tags peut etre alors un moyen
-    de verifier que le fichier n'est pas corrompu
-    Ce tag se presente alors sous forme de
-    <tag (1 byte)><FilePosition (8 byte, long int)>
-    On peut alors parcourir le fichier et verifier la coherence de
-    ces tags.
-  - Il faut aussi ajouter au niveau de POutPersist et PInPersist
-    les services pour ecrire et lire une collection de tag de
-    positionnement, afin qu'un objet puisse utiliser une liste de
-    tag pour se positionner
-
-o BaseTools/ Voir autres remarques ds fichier Manual/sophya_afaire.txt
-  concernant en particulier les NDataBlock<T> DataBlock<T> ...
-
-o Les tableaux : TArray/
+\end{itemize}
+
+
+
+\section{Plan de modifs pour SOPHYA V 2.x PI/piapp V 4.x }
+
+{\bf Sep 2006} : La grande majorit\'e des modifs pr\'evues en 2003 ont \'et\'e
+effectu\'ees. Reste \`a faire , si besoin :
+\begin{itemize}
+\item SophyaLib::TArray/ 
+\begin{verbatim}
   - Ajouter une classe de base abstraite GenericMatrix<T>
     avec methode d'acces aux elements, nb de lignes, nb de colonnes,
-    ...
   - Introduire les TinyMatrix  (TinyMatrix<T, int L, int C>)
     avec passage de/vers TMatrix<T> (et TinyVector<T, int N>) ?
-
   - Introduire des matrices creuses simples SpareMatrix<T>
-
   - Introduire les DiagonalMatrix<T>
-
-  Remarque: Les TMatrix TinyMatrix et  SparseMatrix heritent de GenericMatrix
-
-o HiStats
-  - Faire une classe SuperNTuple (!), facile a utiliser, sachant swaper sur les
-    PPF, avec des champs de differents type
-
-o IFFTW/
-  - Passage a FFTW 3.x  ?
-
-o Voir autres remarques pour l'ensemble des modules ds Manual/sophya_afaire.txt
-\end{verbatim}
-
-\subsection{Code/Librairie PI  ($\rightarrow$ V 4.0)}
-\begin{verbatim}
-
-o Menu contextuel pour les Drawers
-  - Ajouter a PIImage, PIScrDrawWdg(2D), PIDraw3DWdg(3D) un menu obtenu
-    sur <Shift><Bouton-1> par exemple, avec la liste de tous les Drawers
-    permettant d'afficher la fenetre des options graphiques, ou le fenetre
-    des options ou la fenetre des options texte, activer deplacement/resize
-    des drawers, suppression (delete) ou detach des drawers, et en fonction
-    du widgets, la fenetre des axes ou de controle d'image
-
-o Mettre l'option auto-scale (rapport entre axes X,Y,Z) pour les Drawers3D
-    verifer/debugger la definition de la boite 3D au niveau des Drawers3D
-
-o Traceur d'histos, NTuples, ...
-  Remplacer le trace des lignes par morceau fait par appel multiples
-  a DrawLine a un seul appel a DrawPolygon (si les lignes sont connectes
-  bien sur) --> Ca ameliore sensiblement l'aspect pour le trace en pointille
-
-o Ajouter un traceur de Bar-chart 2D OU ApplePie (facile !)
-  On donne une serie de nombres, serie de couleur, + serie de strings
-  et on trace alors une sorte d'histo, avec des barres (rectangles) espaces
-   Ou bien on trace un cercle divise en zones
-
+Remarque: Les TMatrix TinyMatrix et  SparseMatrix heritent de GenericMatrix
+\end{verbatim}
+
+\item PI/ piapp 
+\begin{verbatim}
+o Ajouter un traceur de  ApplePie (BarChart fait )
 o Ajouter un traceur de Lego-Plot
-
-o PIImageWindow (Une fenetre avec une PIImage, un Zoom et une vue globale)
-  Assemblage
-
 o (?) Une fonction pour faire facilement une fenetre d'alerte ou d'info (?)
-
-\end{verbatim}
-
-\subsection{(s)piapp ($\rightarrow$ V 4.0)}
-\begin{verbatim}
-
-o Verifier l'interpreteur et introduire le type de variable vecteur
-  qui peut etre detecte par exemple lors de l'initialisation par set
-  set a 'Bonjour CMV' # -> variable scalaire
-  set va [ 12 14 hello ... ] # variable de type vecteur $va[]
-
 o Voir comment on pourrait "joindre" deux objets ayant l'interface NTupleInterface
   pour pouvoir plotter des objets, l'un vs l'autre
-
-o Separer la classe PIACmd en une classe de base (CShellLikeInterpreter)
-  (a mettre ds SysTools) et la classe PIACmd  a laisser ds PIext
-
 o (???) Introduire quelque chose du style
   AddDialogue("Cmd", "dialogue-description)
   qui pourrait fabriquer automatiquement une fenetre avec des champs a remplir
   pour les commandes usuelles (???)
-
-o Voir les autres commentaires ds Manual/spiapp_afaire.txt
-
-\end{verbatim}
+\end{verbatim}
+\end{itemize}
 
 
