History.txt
 Fichier historique du frontal CAML

2/7/95 -> 6/8/95
  Adaptation du frontal Scheme pour commander CAML :
  - suppression de la fentre Output et de la fentre de session, cette 
    dernire tant remplace par la fentre de commande
  - Modification de la communication entre le frontal et le noyau (copier/
    coller pour CAML)
  - Modification des touches spciales de l'diteur, en raison de la syntaxe
    du langage
  - Modification de la fentre du Butineur : affichage ou non des 
    commentaires
  - Modification et amlioration fonctionnelle du sytme graphique

6/8/95 : Version 0.01
  premire diffusion (Mail Pierre SAUNIER / ENSTB) de CMDCAML.EXE et 
  du systme graphique MTGRAPH.ML 

7/8/95
  Ajout de la mthode graphique FloodFill. Voir MTGRAPH.ML, et ajout de la
  commande graphique "ff" pour l'interprteur graphique VB.

8/8/95
  - Corrig un bug dans l'interprteur de commandes graphiques du frontal :
    plus d'erreur (plantage) quand le tampon contenait plus de 32767 
    caractres
  - ajout les touches Ctrl-C (copie) et Ctrl-P (rePeindre) dans la fentre
    graphique

10/8/95
  - ajout l'effacement de la fentre graphique en cas de raffichage. Cela
    garantit un fonctionnement correct de floodfill quand la fentre 
    graphique est au premier plan.
  - amlior le raffichage de la fentre graphique en cas de redimension-
    nement.

16/8/95
  - aprs test, la version Windows de CAMLWIN du 7/7/95 pas assez stable.
    on reste sous DOS !
  - cr la version anglaise, par l'intermdiaire de MULTLNG.ML. Semble ok.
  - envoy une disquette version 0.01  MONASSE (UPS)

18/8/95 : Version 0.02
  - enfin termin la fonction graph_drawtext de MTGRAPH.ML. Elle accepte
    maintenant des caractres " dans la chane affiche. Exemple :
    graph_drawtext "\"(sin 2x)/x\""
  - modif le frontal (-> version 0.02) qui gre maintenant correctement
    les accents dans les chanes traces dans la fentre graphique.

19/8/95
  - Charg par FTP la version CAML 0.7 de l'INRIA. Fonctionnement avec le 
    frontal OK. Erreur de syntaxe nouvelle dtecte  l'excution de 
    TSTGRAPH.ML : dans for i= -10 to 10 do ... l'espace avant -10 est 
    maintenant necssaire...

20/8/95
  - Corrig bug de la fentre graphique qui plantait le frontal si 
    dimensionne trop petite.

23/8/95
  - lgrement modifi la barre de menu de la fentre de commande.
    Permet maintenant de mettre le focus sur la fentre DOS par 
    Ctrl-A
  - Positionnement systmatique de la fentre graphique en bas  
    droite de l'cran.
  - Envoy une disquette version 0.02  :
          Damien DOLIGEZ
          Caml Light, projet Cristal
          INRIA Rocquencourt
          B.P. 105
          78153 Le Chesnay cedex
          France

24/8/95
  - Bug : quand on valuait  partir de la fentre MDI, alors que la 
    fentre de commande et/ou celle de CAML taient rduites, l'valuation ne
    se faisait pas correctement (collage impossible)
    Corrig : les fentres sont restaures avant valuation

25/8/95
  - remise  "" de l'info en bas de MDIForm en fin de sauvegarde
  - Pour essayer d'viter le papillottement dsagrable quand on recharge
    un environnement, lgrement modifi la fonction wks_load :
    * hook sur mdiform  0 au dbut
    * restauration du hook aprs la mises  jour de la fentre de commande
      plutt qu'avant.
    Tout a ne marche que trs modrment
  - le bug corrig du 20/8 de la fentre graphique en a fait apparaitre un
    autre : erreur si minimise.
    Corrig cette erreur stupide !
  - Si MDI en icne et si un seul click sur l'icne -> butineur
    restaur si charg. Corrig en testant l'tat de la fentre MDI dans
    le form_activate de la fentre d'dition

27/8/95
  - Autoris le passage  la fentre de commande par Ctrl-A pendant le collage
    (pas d'appel  la fonction load_caml : recherche directe du handle de 
    fentre)
  - restaur le DoEvents dans read_workspace aprs le chargement de la fentre 
    MDI -> paint des panels 3D correct avant chargement des fichiers.
  - introduit une barre d'icnes dans la fentre MDI :
    * Oprations sur fichiers
    * affichage des fentres (commande et graphique)
    * ajout un bouton dans la fentre graphique pour basculer sur la fentre
      de commande
  - Hook la fentre graphique pour capturer le msg WM_SETCURSOR, afin 
    d'afficher un texte d'aide sur le panneau contenant les boutons quand la
    souris passe dessus. De mme dans la fentre MDI (qui tait dj Hooke)

28/8/95 : Version 0.03
  - complt la barre d'icnes (butineur, disposition des fentres)

29/8/95
  - complt la barre d'icnes : imprimante !
  - GPF  l'INRIA... En l'absence d'autres infos, suspecte une conversion
    long->word. Change le type retourn par la fonction load_caml en integer.
  - bug lger : l'valuation restaurait la fentre CAML si elle n'tait PAS
    normale; le fait maintenant si elle est rduite.

31/8/95
  - retir le linkmode 'Server' de certaines formes --> DDEML.DLL plus 
    necssaire !
   - envoy par mail  MONASSE et LEROY un zip->uuencode de CMDCAML.EXE
     (version du 31/8/95; 01:10:54; 97111 octets)

1/9/95
  - Bug d  la surcharge de la queue de messages de l'application :
    la restauration d'un environnement se faisait mal (mauvaises 
    slections, comportement anormal de la souris...) s'il comprenait 
    plus de 5 fentres ouvertes.
    * Ajout DoEvents (->vidage queue)  la fin du chargement de chaque 
      fentre enfant.
    * Protg un maximum des entres de menu, et du QueryUnload pour 
      viter les ractions des fentres pendant le chargement de 
      l'environnement.

4/9/95
  - ajout une nouvelle cl dans le fichier d'initialisation :
    section [CAML], cl ExeSize.
    * si cette cl est absente -> lancement sans vrification
    * si prsente, doit correspondre  la taille du fichier exe.
      En cas de diffrence de taille -> message d'erreur et arrt du prgme.
      Test simplissime en cas d'attaque virale.
    
11/9/95
  - aprs test du frontal sous Windows 95 (et oui, a marche...), ajout
    la mise  zro du message dans le Hook des fentres d'dition pour 
    le message SHOWPOS. Dclenchait un papillotement trs dsagrable de
    l'cran.

18/11/95 : Version 0.04
  * Cr le fichier d'aide CL7RFHLP.HLP, rcuprant la doc de l'INRIA. 
    Modifi le frontal pour appeler ce fichier par Ctrl-F1

19/12/95
  * Ajout dans le menu Evaluer "Include" la slection, ainsi que dans le 
    menu flottant.
  * Corrig un  bug lger : la fentre du butineur tait ractualise quand
    le focus revenait sur la fentre de commande, aprs une valuation par
    Ctrl-S/T.
  * Modifi la temporisation dans la fentre graphique. 4 fois plus rapide !

10/2/96
  * Corrig la Doc. Coup le fichier d'infos en deux.
  
05/03/96
  * Ajout dans le fichier d'initialisation la cl "camlhelpfile", qui permet de
    fixer le nom du fichier d'aide utilis pour le langage.
  * mise  jour du fichier d'aide pour camlwin (version 0.71)

28/3/96
  * Commenc  adapter le frontal  CAMLWIN
    Trouv la ligne de commande pour utiliser la fentre DOS
    Restructur le fichier CMDCAML.INI en introduisant de nouvelles sections
      - General
      - Caml (pour la version DOS)
      - Camlwin (pour la version WINDOWS)
    Commenc la gestion diffrencie des kernels

29/3/96
  Les bugs de CamlWin rendent le fonctionnement assez pnible !
  
30..31/3/96
  Adaptation  CAMLWIN  peu prs fonctionnelle.
  #####Problmes restant  traiter : #####
  * le titre de la fentre dpend de l'tat des fentres enfants...
  * Il faudrait srement hooker la fentre de CAMLWIN pour pouvoir revenir 
    sur la fentre du frontal en douceur. Semble poser des pbs : WinSight
    plante quand j'essaie d'espionner CAMLWIN !

31/03/96 Version 0.05
  * introduit dans la fentre de commande la variable hWinKernel, pour
    mmoriser le handle de la fentre du kernel.
    Gestion assure dans la fonction load_caml
  * introduit dans le fichier INI : section CAMLWIN, CmdShowGraph
    utilise pour dclencher l'affichage de la fentre graphique dans 
    CAMLWIN
  * Bug corrig : F4/F5 pendant l'valuation d'un F4/F5 dclenchait une 
    erreur, le fichier temporaire n'tant pas encore ferm.
  * incorpor le moteur de recherche grep.dll, icne dans la barre, etc...
    Semble fonctionner 
  * corrig bug ridicule, qui ne se manifestait pas sous CAML version 0.7
    Les fichiers d'change du graphisme CAML avaient un nom comportant 9
    caractres...

1/04/96
  * envoy un fichier ZIP  JM Geoffroy pour test.
  * corrig plusieurs bugs stupides pour le fonctionnement du frontal sous
    Windows 95.
  * envoy un exe corrig  JMG pour test.

3/4/96
  * bug : avec CAMLWIN, les fichiers sont de l'ANSI. plus de conversion
    quand inclusion du tampon.

6/4/96
  * sablier pendant le chargement du noyau
  * amlior le dchargement du noyau  la fermeture du frontal.

19/4/96
  * corrig bug lger dans la bote de remplacement (mauvaise gestion si 
    caractre recherch ddoubl dans le tampon)

20/4/96
  * remis le parenthsage lectrique (). (d'origine dans la version Scheme !)
    L'ai enrichi en incluant aussi les {} et []

3/8/96
  Aprs FTP de OCaml, lgrement modifi quelques traitements mineurs :
  * nouvelle cl "CmdToInclude" dans le fichier cmdcaml.ini, car CAML Light 
    utilise "include nom_fichier_sans_extension" alors que OCaml utilise 
    "#use nom_fichier_avec_extension"

4/8/96
  Ajout une cl dans le fichier ini, dans la section [Environnement] :
  * ChargeDernier = 0 | -1
    pour savoir si on charge automatiquement le dernier environnement 
    actif lors de la fermeture prcdente du frontal.
    Utile dans un contexte "salle de TP info" ...
  * Ajout un bouton KeyWords dans le fichier d'aide -> accs direct
     la page des mots cls.

24/8/96 Version 0.06
  Ajout dans la fentre de commande :
  * un menu supplmentaire : diter, avec les commandes habituelles
  * le support du bouton droit de la souris -> menu personnalis.
  Rien de bien original, mais cela permet de passer  la version 0.06

25/8/96
  Ajout une cl optionnelle dans la section [General] du fichier .INI
  * AlternateEditor=.....
    pour pouvoir choisir un diteur externe quand le fichier qu'on tente
    d'ouvrir dpasse 32 Ko. PAr dfaut, le frontal essaiera de lancer
    WRITE.EXE

03/09/96  Version 0.07
  A la suite des toujours excellentes (?) suggestions du cher Alain S, le
  frontal peut maintenant tre associ aux fichiers *.ml* et *.cws dans
  le gestionnaire de fichiers (W3.1) ou l'explorateur (W95)
  C'est  dire qu'il accepte un argument en ligne de commande :
  - fichier *.ml*   -->  chargement dans l'environnement courant
  - fichier *.cws  -->   chargement de l'environnement dsign.

05/09/96
  Suggestion A.S : retrouver l'tat agrandi d'un fentre enfant.
  Tout tait dj prvu, mais une erreur de dclaration perturbait la
  restauration. Corrig.

06/09/96
  Bug : un fichier *.ml* ou *.cws provoquait une erreur fatale si dans
  un rpertoire diffrent de l'exe quand la cl de vrif de taille 
  prsente dans le fichier .INI  Corrig.

06/12/96 : Version O.71
  - Ajout de la traduction automatique des fichiers MAC
  - corrig lger bug : mauvaise slection de l'extension par dfaut quand 
    le path du prcdent fichier charg contenait un point.
  - pass  la version 0.71. Forte promotion donc...

9/12/96
  - Courrier de X. Leroy pour mise  jour CAML 0.72. Commenc les modifs dans 
    le fichier d'aide.
    De plus, JM Geoffroy aimerait bien une aide contextuelle...

10/12/96
  - Fini la mise  jour du fichier d'aide (Version O.72). Ai de plus ajout
    toutes les notes (k) afin de permettre l'aide contextuelle.

11/12/96
  - L'aide contextuelle marche. Nouvelle ligne dans le menu d'aide (Shift-F1)
    Fonctionnement assez astucieux (hook sur MDIForm pour modifier le menu 
    AVANT que VB ne s'en rende compte !)

13/12/96
  - aprs avoir enfin compris comment fonctionne CAML et CAMLWIN avec les 
    caractres accentus, modifi la conversion automatique ASCII<->ANSI
    Cette conversion prend maintenant en compte le type de kernel utilis
    * si CAML (DOS) alors format ASCII par dfaut
    * si CAMLWIN, format ANSI par dfaut.
    Cela rgle les problmes lis  la compilation de fichiers comportant des
    accents.
    
14/12/96 : Version 0.72
  - Ai rajout la possibilit d'avoir des fichiers d'initialisation 
    automatique au chargement d'un environnement. Si dans le rpertoire du
    fichier <environnement>.CWS, il existe un fichier <environnement>.ML, 
    ce fichier est automatiquement inclus.

16/12/96 - Version 0.73
  - scuris les E/S (dtection d'erreur plus attentive)
    Diffusion INRIA

29/12/96
  - ajout dans la bote de recherche un label affichant le nom du fichier
    examin.

15/01/97->17/01/97 - Version 0.8b1
  - Ajout un Meta mode, avec la possibilit de dfinir des squences Macro.
    Dessin les botes dialogue, crit le code, et tout, et tout...
    Utilise essentiellement la syntaxe et les possibilits de SendKeys
    
18/01/97
  - Ajout un raccourci Ctr-l pour revenir au let primitif d'un bloc de code
    Coupl aux macros prcdentes, permet la slection rapide de la phrase 
    englobante...

19/1/97
  - Mise  jour de l'aide et de la doc. 

22/1/97
  - Ajout la gestion du titre de la fentre MDI quand on se trouve en Meta-mode.
    Idem pour la barre d'infos dans la fentre MDI

23/1/97
  - Modif du programme pour pouvoir excuter  partir d'un serveur (rseau).
    * Vrif systmatique des E/S sur les fichiers manipuls
    * fichier temporaire pour inclusion maintenant dans le rpertoire temporaire
      dfini dans l'environnement par la variable TEMP, ou le rpertoire Windows.
      
25/1/97 - Version 0.8b2
  - plein de modifs :
    * le pretty-read fonctionne plus finement. Indente la prochaine ligne en
      fonction du dernier mot significatif de la ligne courante (limination des
      commentaires en particulier). Fonctionne  l'aide d'une regexp qui devra
      tre compile  partir d'une chane situe dans le fichier INI 
    * la touche BackSpace ramne maintenant au niveau d'indentation infrieur.
    * Nouveau menu et raccourci (Ctrl-I) pour indenter conformment  la 
      technique prcdente la ligne courante  partir de la ligne prcdente.
      Devrait tre complet pour tenir compte du dbut (?) de la ligne courante
      ceci afin de pouvoir grer les retraits ngatifs.
    * TAB insre maintenant directement des espaces dans le tampon. Le nombre
      doit tre paramtrable dans le fichier INI 
    
28/1/97 - Version 0.8b3
  - encore des modifs :
    * supprim Ctrl-I,  revoir plus tard...
    * fonctionnement enrichi de TAB et Shift-TAB, selon que du texte est ou non 
      slectionn
    * ajout les touches manquantes pour les raccourcis. Tout le clavier (ou presque
      est accessible
    * transcodage MAC->ANSI. petit problme de conflit avec OEM => cl suppl dans
      le fichier INI
    * remis la dtection (et slection) d'un bloc parenths.(Alt-flches +/- Shift)

30/1/97
  - supprim le transcodage MAC->ANSI. Entrait en conflit avec OEM, et causait un grand 
    nombre de problmes assez pnibles en cas d'utilisation du kernel DOS.
  - Modifi la gestion de la sortie de Windows : quand le programme tait lanc depuis
    le serveur, provoquait une erreur fatale (l'application ne s'arrtait pas avant la 
    fermeture de la session). Ajout une bote de dialogue obligeant  fermer le frontal.
  - supprim la cl CmdLineByLine
  
2/2/97->4/2/97
  - le butineur affiche maintenant les lignes dfinies par une expression rgulire
    dfinie dans le fichier .INI
  - bug corrig : plus de perte de focus parasite en cas de rechargement d'un
    environnement.
  - revu et corrig : fonctionnement rseau correct (esprons-le !)
  - amlior les messages en cas d'erreur en plusieurs endroits.
  - ajout un menu supplmentaire : outils permettant de lancer depuis le frontal 
    d'autres applications.
    
9/2/97
  - ajout une cl dans la section EDITOR : defMacroVisible
    permettant de masquer le menu de dfinition des macros. Utile dans un contexte
    salle de TP....
  - modifi les raccourcis pour le menu macros (pas de prfixe pour la touche la 
    plus courante....

11/2/97
  - remis la traduction des fichiers MAC->ANSI, dans le cas rduit o les lignes
    du fichier MAC se terminent par des CR isols. Sinon, rien n'est fait...
    
20/02/97
  - Fonctionnement de l'impression enfin  la limite du satisfaisant :
    * gestion correcte des lignes trop longues (repliement des lignes  l'impression)
    * police d'impression, taille et marges configurables dans le fichier INI
      (PrinterFontName, PrinterFontSize (en points)  et PrinterMargin (en twips))
      

(* EOF *) 