Index: trunk/SophyaLib/Manual/modifs.tex
===================================================================
--- trunk/SophyaLib/Manual/modifs.tex	(revision 3187)
+++ trunk/SophyaLib/Manual/modifs.tex	(revision 3229)
@@ -1,3 +1,4 @@
 \documentclass[twoside,11pt,A4]{article}
+% \documentclass[twoside,11pt,A4]{report}
 \usepackage[french]{babel}
 
@@ -26,9 +27,19 @@
 \newcommand{\carre}{$\Box \ $}
 
+%%%% Pour le decoupage en sections
+% \newcommand{\groupe}[1]{\chapter{#1}}
+% \newcommand{\titre}[1]{\section{#1}}
+% \newcommand{\soustitre}[1]{\subsection{#1}}
+%%%
+\newcommand{\groupe}[1]{\section{#1}}
+\newcommand{\titre}[1]{\subsection{#1}}
+\newcommand{\soustitre}[1]{\subsubsection{#1}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{document}
 \begin{titlepage}
 \begin{center}
 {\Large \bf Liste de modifications de SOPHYA } \\[5mm] 
-{\large Janvier 2003 - Septembre 2006 } \\[25mm]
+{\large Janvier 2003 - Juin 2007 } \\[25mm]
 Liste des tags et dates : \\[5mm]
 {\large 
@@ -47,5 +58,11 @@
 
 \end{tabular}
-}
+} \\[8mm]
+%%%%%%
+\begin{tabular}{ll}
+R. Ansari            &  ansari@lal.in2p3.fr       \\
+C. Magneville        &  cmv@hep.saclay.cea.fr     
+\end{tabular}
+
 \end{center}
 \end{titlepage}
@@ -55,5 +72,131 @@
 \newpage
 
-\section{BuildMgr} 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\groupe{De V2.0 (Sep2006)  V2.2 (Jun2007) }
+\titre{BuildMgr} 
+\begin{itemize}
+\item[\rond] Avril 2007 :  Amlioration du script configure, qui prend en charge 
+la gestion des diffrents flags de compilation (mis dans fichier machdefs.h gnr
+ou dans sophyamake.inc (pour les flags du compilateur) - Nettoyage du fichier 
+BaseTools/machdefs\_mkmf.h et des fichiers osname\_compilo.inc
+\begin{verbatim}
+csh> cd BuildMgr/
+csh> ./configure -h
+configure [-sbase SOPHYABASE] [-scxx SOPHYACXX] [-incln] 
+  [-minc mymake.inc]  [-compopt 'cc/cxxOptions'] 
+  [-arch64] [-sasz64] [-nofpic] [-nothsafe] [-boundcheck] [-sodebug]
+  [-extp dir1 -extp dir2 ...] [-extip dir1 -extip dir2 ... ] 
+                   [-extlp dir1 -extlp dir2 ... ]
+  [-noextlib] [-noext fits] [-noext fftw] 
+                     [-noext lapack] [-noext astro]
+  [-noPI] [-slballinone]
+  [-usefftw2 -uselapack2] 
+  (See SOPHYA manual/web pages for a detailed description 
+   of configure options)
+\end{verbatim}
+\end{itemize}
+
+%%%%%%
+\titre{BaseTools} 
+\begin{itemize}
+\item[\rond] Avril 2007 {\bf ThreadSafe } \hspace{5mm}
+Les oprations de partage de rfrence rendues thread-safe pour les classes 
+{\bf NDataBlock$<$T$>$ , SegDataBlock$<$T$>$, SwSegDataBlock$<$T$>$} 
+\begin{itemize}
+\item Ajout de la classe {\bf ThSafeOp} avec les mthodes {\tt lock() , unlock() } utilisant 
+un mutex. 
+\item Ces mthodes peuvent tre rendues transparentes (sans effet) en activant le flag \\
+{\tt SO\_NOTHSAFE} (option -nothsafe de configure) 
+\item Cette protection / synchronisation semble tre efficace en ce qui concerne les 
+constructeurs de copie et l'extraction de sous-tableaux pour TArray, TMatrix,TVector.
+(programme de vrification Tests/zthr.cc - option sync ).  
+\item En ce qui concerne les classes SegDataBlock , SwSegDataBlock, l'efficacit 
+de la protection n'a pas t teste. Les oprations d'criture sur les DataTable 
+devront aussi  tre protges pour l'utilisation multi-thread.
+\end{itemize}
+\item[\rond] Avril 2007 :  Nettoyage du fichier machdefs\_mkmf.h, suppression des flags 
+de compilation optionnelle MacOS 8.x  9.x / compilo CodeWarrior
+\item[\rond]  Fev 2007 :  Ajout methode NDataBlock::RenewObjId() , et Dealloc() (alias de Delete())
+et correction bug ds SwSegDataBlock::GetCstSegment() 
+\end{itemize}
+
+%%%%%%
+\titre{TArray} 
+\begin{itemize}
+\item[\rond] Avr 07 : Constructeur de copie et extraction de sous-tableaux rendus thread-safe 
+(voir ci-dessus)
+\item[\rond]  Jan 07 : Ajout classes/methodes de cast de contenu - sans conversion (fichier arrctcast.h)
+\item[\rond]  Fev 07 :  Ajout methode TArray::RenewObjId() (reecriture PPF), et ZeroSize()
+(deallocation tableau / le rendre vierge=sans taille)
+\end{itemize}
+
+%%%%%%
+\titre{HiStats} 
+
+\begin{itemize}
+\item[\rond]  Jan 2007 :  Remaniement profond de la classe HistoErr et ajout de la classe Histo2DErr
+\end{itemize}
+
+%%%%%%
+\titre{SkyMap} 
+
+\begin{itemize}
+\item[\rond]  Fev 2007 :  Ajout methode RenewObjId() (reecriture PPF) pour les cartes spheriques 
+et localmap
+\end{itemize}
+
+%%%%%%
+\titre{FitsIOServer}
+
+\begin{itemize}
+\item[\rond]  Jan/Fev 2007 :  Passage a la version LONGLONG  ( fits\_xxxll ) permettant 
+la gestion de tailles $ > 2^{32} $
+\end{itemize}
+
+%%%%%%
+\titre{PI/piapp}
+\begin{itemize}
+\item[\rond]  Avril 2007 {\bf (PI)}:  La source des problmes sur MacOS/PowerPC (G4/G5)
+et AIX (architecture Power) a finalement t identifi et corrig/
+Parmi ces problmes:  des pull-down menus mal placs (MenuBar), ou encore des 
+dysfonctionnement de boutons dans les fentres de dialogues. \\
+Source et correction: \hspace{5mm} {\tt XtMoveWidget / XtResizeWidget} remplac par \\
+\hspace*{10mm} {\tt XtMakeGeometryRequest}   
+\item[\rond]  Avril 2007 {\bf (PIext/piapp)}: 
+\begin{itemize}
+\item Ajout de la classe {\bf NOMAdapter\_DVList}
+pour la prise en charge des objets DVList. 
+Accs aux variables par {\tt \$\{dvlName.varName\} } 
+\item Accs  l'objet DVList attach aux TArray, TMatrix, DataTable par \\
+\hspace*{5mm}  {\tt \$\{objName.info.varName\} }
+\item L'adaptateur de DataTable permet aussi d'accder aux lignes de la table par \\
+\hspace*{5mm} {\tt \$\{tableName.row.num\} }
+\item Prise en charge de la classe {\tt Image<T>} par l'adaptateur des matrices 
+{\tt NOMAdapter\_TMatrix<T> } au lieu de l'adaptateur spcifique 
+{\tt NOMAdapter\_Image<T>  }
+\end{itemize}
+\item[ \rond] Janvier 2007  {\bf (PI)}:  modification des trac\'es des histogrammes PIHisto.
+La classe PIHisto prend en entr\'ee un wrapper P1DHistoWrapper.
+Les wrappers HistoWrapper et HistoErrWrapper sont cr\'ees.
+Ainsi les HistoErr peuvent \^etre dessin\'es sous forme d'histogrammes.
+Mise en place des options graphiques permettant de dessiner les
+valeurs (``val''), erreurs (``err'') et le nombre d'entr\'ees par bin (``nb'')
+pour les HistoErr. Idem pour les versions $2$ dimensions.
+\end{itemize}
+
+%%%%%%%%
+\titre{Documentation (Manual/) } 
+\begin{itemize}
+\item[\rond]  Jan 2007 :  Ajout fichier de mesure de performances comparees entre 
+differentes processeur / OS / compilateur {\tt perfmachine.txt }
+\end{itemize}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\groupe{De V1.5 (Dec2002)  V2.0 (Sep2006) }
+\titre{BuildMgr} 
 \begin{itemize}
 \item[\rond] Juin 2006 :  Ajout targets cleanobj prgall tests prgutil
@@ -68,15 +211,9 @@
 SOPHYABASE/include/sophyamake.ic \\
 \end{itemize}
-\section{BaseTools} 
-
-\begin{itemize}
-\item[\rond]  Fev 2007 :  Ajout methode NDataBlock::RenewObjId() , et Dealloc() (alias de Delete())
-et correction bug ds SwSegDataBlock::GetCstSegment() 
-\end{itemize}
-
-\centerline{\bf \large \rule{20 mm}{0.4 mm}  \hspace{5mm} 
-Tag SOPHYA V=2.0 , Sep 2006  \hspace{5mm}   \rule{20 mm}{0.4 mm}  } 
-
-\subsection{Modifs} 
+
+%%%%%%
+\titre{BaseTools} 
+
+\soustitre{Modifs} 
 
 \begin{itemize}
@@ -101,10 +238,14 @@
 \end{itemize}
  
-\subsection{PPF}
-\begin{itemize}
-\item[\rond] Novembre 2003 (21/11/2003) - Ajout rawstream.h .cc \\
-Classes RawInOutStream  ,  RawInFileStream , RawOutFileStream
-\item[\rond] Dcembre 2003 - Ajout ppfbinstream.h .cc \\
-Classes PPFBinaryIOStream , PPFBinaryInputStream , PPFBinaryOutputStream
+\soustitre{PPF}
+\begin{itemize}
+\item[\rond] Avril 2005 - Ajout de wrapper de lecture/ecriture PPF pour les vecteurs de
+la librairie standard (classe PPFWrapperSTLVector$<$T$>$ ) fichier ppfwrapstlv.h
+\item[\rond] Ajout de la classes utilitaire PPF\_TPointer\_IO$<$T$>$ 
+(fichiers ppftpointer.h .cc)
+\item[\rond] Amelioration de l'impression ds AnalyseTags (ppfbinstream.cc)
+\item[\rond] scanppf.cc revision 1.8 (2005/04/05)
+modification programme scanppf: ajout option -lh -lho pour lister les classes PP
+ersist handler
 \item[\rond] Dcembre 2003 (9/12/2003) Fin de l'ensemble des modifs pour les
 PPF V3 \\
@@ -119,17 +260,13 @@
 \centerline{\tt  int\_8 WritePositionTag() PutPosTagTable(...) } 
 - Ajout programme de test Tests/ppftswap.cc
-\item[\rond] Avril 2005 - Ajout de wrapper de lecture/ecriture PPF pour les vecteurs de
-la librairie standard (classe PPFWrapperSTLVector$<$T$>$ ) fichier ppfwrapstlv.h
-\item[\rond] Ajout de la classes utilitaire PPF\_TPointer\_IO$<$T$>$ 
-(fichiers ppftpointer.h .cc)
-\item[\rond] Amelioration de l'impression ds AnalyseTags (ppfbinstream.cc)
-\item[\rond] scanppf.cc revision 1.8 (2005/04/05)
-modification programme scanppf: ajout option -lh -lho pour lister les classes PP
-ersist handler
-
-\end{itemize}
-
-
-\subsection{Nouvelles classes}
+\item[\rond] Dcembre 2003 - Ajout ppfbinstream.h .cc \\
+Classes PPFBinaryIOStream , PPFBinaryInputStream , PPFBinaryOutputStream
+\item[\rond] Novembre 2003 (21/11/2003) - Ajout rawstream.h .cc \\
+Classes RawInOutStream  ,  RawInFileStream , RawOutFileStream
+
+\end{itemize}
+
+
+\soustitre{Nouvelles classes}
 \begin{itemize}
 \item[\rond] Ajout de la classe {\bf TimeStamp} pour la manipulation de date et heure - 
@@ -150,16 +287,7 @@
 \end{itemize}
 
-
-\section{TArray}
-
-\begin{itemize}
-\item[\rond]  Jan 07 : Ajout classes/methodes de cast de contenu - sans conversion (fichier arrctcast.h)
-\item[\rond]  Fev 07 :  Ajout methode TArray::RenewObjId() (reecriture PPF), et ZeroSize()
-(deallocation tableau / le rendre vierge=sans taille)
-\end{itemize}
-
-\centerline{\bf \large \rule{20 mm}{0.4 mm}  \hspace{5mm} 
-Tag SOPHYA V=2.0 , Sep 2006  \hspace{5mm}   \rule{20 mm}{0.4 mm}  } 
-
+%%%%%
+\titre{TArray}
+%%
 Il s'agit essentiellement des ameliorations en terme de performances et 
 de correction d'erreur. 
@@ -293,14 +421,8 @@
 
 
-\section{HiStats} 
-
-\begin{itemize}
-\item[\rond]  Jan 2007 :  Remaniement profond de la classe HistoErr et ajout de la classe Histo2DErr
-\end{itemize}
-
-\centerline{\bf \large \rule{20 mm}{0.4 mm}  \hspace{5mm} 
-Tag SOPHYA V=2.0 , Sep 2006  \hspace{5mm}   \rule{20 mm}{0.4 mm}  } 
-
-\subsection{Classe Histo,HProf,HistoErr,Histo2D } 
+%%%%%%%%
+\titre{HiStats} 
+%%%%%
+\soustitre{Classe Histo,HProf,HistoErr,Histo2D } 
 \noindent
 - Aout 2006 : refonte profonde des allocations memoire et delete de
@@ -315,5 +437,5 @@
 et NOMAdapter\_HistoErr, NOMAdapter\_Histo2DErr sont cr\'ees dans PIext.
 
-\subsection{NTuple}
+\soustitre{NTuple}
 la classe NTuple peut maintenant avoir des colonnes float ou double.
 Il y a maintenant deux methodes Fill(r\_4 *) et Fill(r\_8 *)
@@ -321,5 +443,5 @@
 
 
-\subsection{ Les DataTable (SuperNTuple) }
+\soustitre{ Les DataTable (SuperNTuple) }
 
 {\bf Octobre-Novembre 2005 } \\
@@ -424,14 +546,7 @@
 
 
-\section{SkyMap} 
-
-\begin{itemize}
-\item[\rond]  Fev 2007 :  Ajout methode RenewObjId() (reecriture PPF) pour les cartes spheriques 
-et localmap
-\end{itemize}
-
-\centerline{\bf \large \rule{20 mm}{0.4 mm}  \hspace{5mm} 
-Tag SOPHYA V=2.0 , Sep 2006  \hspace{5mm}   \rule{20 mm}{0.4 mm}  } 
-
+
+\titre{SkyMap} 
+%%%
 \begin{itemize}
 \item[\rond] Juin 2006: Prise en charge du rangement mmoire {\bf NESTED} dans 
@@ -503,5 +618,5 @@
 \end{itemize}
 
-\section{Samba }
+\titre{Samba }
 
 \begin{itemize}
@@ -550,9 +665,9 @@
 
 %%%%%%%%%%%
-\section{SysTools} 
+\titre{SysTools} 
 {\bf Mai-Juin 2006 } classe ZThread - petites modifs/amliorations lies
  la gestion des signaux et mthodes kill 
 
-\subsection{Classe SOPHYA::Commander (module SysTools) }
+\soustitre{Classe SOPHYA::Commander (module SysTools) }
 Mai-Juin 2006:
 Debug (?) de gestion/controle des threads dans la classe Commander - 
@@ -791,5 +906,5 @@
 \end{itemize} 
 
-\subsection{Classes CExpressionEvaluator et RPNExpressionEvaluator }
+\soustitre{Classes CExpressionEvaluator et RPNExpressionEvaluator }
 \begin{itemize}
 \item[\rond]  Ajout des classes RPNExpressionEvaluator et CExpressionEvaluator 
@@ -844,14 +959,8 @@
 \end{itemize}
 
-\section{FitsIOServer}
-
-\begin{itemize}
-\item[\rond]  Jan/Fev 2007 :  Passage a la version LONGLONG  ( fits\_xxxll ) permettant 
-la gestion de tailles $ > 2^{32} $
-\end{itemize}
-
-\centerline{\bf \large \rule{20 mm}{0.4 mm}  \hspace{5mm} 
-Tag SOPHYA V=2.0 , Sep 2006  \hspace{5mm}   \rule{20 mm}{0.4 mm}  } 
-
+
+%%%%%%%%
+\titre{FitsIOServer}
+%%%
 \begin{itemize}
 \item[\rond] Aout 2006 : Ecriture/Lecture des classes Histo,HProf,HistoErr,Histo2D dans fichier FITS.
@@ -891,5 +1000,5 @@
 \end{itemize}
 
-\section{LinAlg} 
+\titre{LinAlg} 
 Extension des fonctionalits de la classe {\tt LapackServer<T>} : 
 (Juillet 2004 / cmv , Fvrier 2005 / Reza)
@@ -909,5 +1018,5 @@
 \end{itemize}
 
-\section{IFFTW}
+\titre{IFFTW}
 \noindent 
 - Juillet 2007 : Passage a FFTW 3 \\
@@ -915,6 +1024,6 @@
 in(1).imag() pouvait etre ecrase.
 
-\section{PI,PIext,piapp} 
-\subsection{PI: Classes modifiees - ameliorees}
+\titre{PI,PIext,piapp} 
+\soustitre{PI: Classes modifiees - ameliorees}
 \begin{itemize}
 \item[\rond] {\bf  PIImageNavigator } \\
@@ -935,14 +1044,6 @@
 \item[\rond] BUG A corriger, DrawOpaqueString ds PIGraphPS (sortie postscript)
 \end{itemize}
-%
-\rond Janvier 2007: modification des trac\'es des histogrammes PIHisto.
-La classe PIHisto prend en entr\'ee un wrapper P1DHistoWrapper.
-Les wrappers HistoWrapper et HistoErrWrapper sont cr\'ees.
-Ainsi les HistoErr peuvent \^etre dessin\'es sous forme d'histogrammes.
-Mise en place des options graphiques permettant de dessiner les
-valeurs (``val''), erreurs (``err'') et le nombre d'entr\'ees par bin (``nb'')
-pour les HistoErr. Idem pour les versions $2$ dimensions.
-% 
-\subsection{ Codage texte des options graphiques (11 Mars 2004)}
+%%%% 
+\soustitre{ Codage texte des options graphiques (11 Mars 2004)}
 \begin{verbatim}
 //   Methode retournant un vecteur de string a partir des options
@@ -978,9 +1079,9 @@
 \end{verbatim}
 
-\subsection{ Trace des axes (11 Mars 2004)}
+\soustitre{ Trace des axes (11 Mars 2004)}
     Ajouter la possibilite de specifier l'origine (le point de croisement des axes)
 lorsque les axes ne sont pas de type 'box' - classes PIAxes et PIElDrawer.  FAIT
 
-\subsection{ Selection graphique (souris) du drawer actif (11 Mars 2004)}
+\soustitre{ Selection graphique (souris) du drawer actif (11 Mars 2004)}
 \begin{verbatim}
 J'ai ajoute la methode PIDrawer::GetDistanceToPoint(double x, double y)
@@ -1010,5 +1111,5 @@
 \end{verbatim}
 
-\subsection{ Manipulation interactive des drawers (3 Juin 2004) }
+\soustitre{ Manipulation interactive des drawers (3 Juin 2004) }
 La manipulation interactive des drawers ( l'aide d'un menu) a
 t finalise pour les PIImage PIScDrawWdg PI3DWdg .
@@ -1027,5 +1128,5 @@
 \end{verbatim}
 
-\subsection{ Traceur de bar-graph (classe PIBarGraph) (3 Juin 2004) } 
+\soustitre{ Traceur de bar-graph (classe PIBarGraph) (3 Juin 2004) } 
 Ajout du traceur de bar-graph (classe {\bf PIBarGraph}) ds module PI/
 et commande {\tt bargraph}  ds PIext/basexecut.cc .
@@ -1045,5 +1146,5 @@
 \end{verbatim}
 
-\subsection{ Traceur de lignes de texte (classe PITextDrawer)  (3 Juin 2004) } 
+\soustitre{ Traceur de lignes de texte (classe PITextDrawer)  (3 Juin 2004) } 
 
 Ajout d'une classe de traceur de lignes de texte (classe {\bf PITextDrawer}) et commande 
@@ -1059,5 +1160,5 @@
 \end{verbatim}
 
-\subsection{ Gestion de re-scale-ing des  axes en 3D  (3 Juin 2004)  }
+\soustitre{ Gestion de re-scale-ing des  axes en 3D  (3 Juin 2004)  }
 
 Mise en place complete (?) de la gestion de re-scale-ing des  axes en 3D 
@@ -1083,5 +1184,5 @@
 
 \end{verbatim}
-\subsection{piapp (PIext/ProgPI) }
+\soustitre{piapp (PIext/ProgPI) }
 \begin{itemize}
 %%%%
@@ -1209,13 +1310,6 @@
 \end{itemize}
 
-\section{Documentation (Manual/) } 
-\begin{itemize}
-\item[\rond]  Jan 2007 :  Ajout fichier de mesure de performances comparees entre 
-differentes processeur / OS / compilateur {\tt perfmachine.txt }
-\end{itemize}
-
-\centerline{\bf \large \rule{20 mm}{0.4 mm}  \hspace{5mm} 
-Tag SOPHYA V=2.0 , Sep 2006  \hspace{5mm}   \rule{20 mm}{0.4 mm}  } 
-
+\titre{Documentation (Manual/) } 
+%%%%
 Documentation des classes de SysTools. \\
 Extrait message du 12 Aout 2004 : \\
@@ -1237,5 +1331,5 @@
 \end{verbatim}
 
-\section{Mgr} 
+\titre{Mgr} 
 \begin{itemize}
 \item Avril-Mai 2005 : Basculement vers la nouvelle version de scripts 
@@ -1250,5 +1344,5 @@
 
 
-\section{Plan de modifs pour SOPHYA V 2.x PI/piapp V 4.x }
+\titre{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
