File: changements.txt

package info (click to toggle)
tclex 1.2a1-15
  • links: PTS
  • area: main
  • in suites: lenny, squeeze, wheezy
  • size: 568 kB
  • ctags: 438
  • sloc: ansic: 3,772; tcl: 452; makefile: 101; sh: 85; lex: 48
file content (297 lines) | stat: -rw-r--r-- 13,755 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
Dernire modification: 20/07/1999, 11:04

-------- 01/08/1998 tcLex version 1.0 --------


-------- 02/09/1998 tcLex version 1.0p1 --------

1. Bug potentiel corrig quand un lexeur global tait cr  partir d'un 
namespace. Par exemple :

	namespace eval foo {
	  lexer ::bar::baz ...
	}

La commande cre tait ::foo::bar::baz au lieu de ::bar::baz. De plus, la 
valeur de retour est maintenant le nom complet (comme pour proc) et non le nom 
spcifi (relatif au namespace).

2. Bug majeur corrig dans le traitement incrmental. Utilis avec le rejet de 
rgle, certaines rgles taient incorrectement ignores. Cette correction 
apporte aussi une amlioration des performances lors du traitement incrmental.

3. Coquilles mineures corriges dans la documentation : l'exemple montrant la 
diffrence entre conditions inclusive et exclusive tait incorrect.

4. Erreur de syntaxe corrige dans le fichier pkgIndex.tcl par dfaut fourni 
avec la version prcdente. Ce fichier ne marchait pas  cause d'accolades en 
trop :(. Heureusement "pkg_mkIndex" fonctionnait.

5. Ajout de fichiers de configuration pour Unix, grand merci  John Ellson de 
Lucent <ellson@lucent.com> pour ces fichiers !

6. Remplacement de "static const char*" par "static char*"  certains endroits 
pour viter des avertissement de compilation sur Unix. Merci  John Ellson 
<ellson@lucent.com> et Paul Vogel <vogel@cygnet.rsn.hp.com> de me l'avoir fait 
remarquer.

7. Ajout de l'extension .txt  tous les fichiers texte de la distribution. Ceci 
facilite leur lecture sous Windows.

8. Ajout du prsent fichier (changements.txt)


-------- 11/11/1998 tcLex version 1.1a1 --------

1. Rcriture complte de l'interface de regexp. Une version modifie du moteur 
regexp de Tcl est maintenant incluse dans le code. Bien que le code soit ainsi 
lgrement plus gros, (le binaire fait quelques ko de plus), cela permet une 
meilleure gestion des cas de dpassement de chane, qui taient une limite 
majeure des versions prcdentes. Cela permet galement les regexps sensibles 
aux lignes sous Tcl8.0 (voir ci-dessous). Ajout des fichiers tcLexRE.h et 
tcLexRE.c -- qui  son tour inclut RE80.c ou RE81.c (les moteurs de regexp 
modifis) selon la version de Tcl.

2. Compltement retravaill le code de manipulation de chanes, afin de le 
rendre propre par rapport  Unicode sour Tcl8.1. Il stocke maintenant la
chane au format Unicode au lieu de UTF-8, afin que l'utilisation d'indices soit 
plus facile (UTF-8 utilise des caractres de taille variable et donc ncessite 
des procdures de parcours spcifiques). Apporte galement des amliorations 
significatives avec les grandes chanes (avant, la chane UTF-8 entire tait 
convertie en Unicode par le moteur regexp  chaque essai de rgle).

3. Bug corrig avec index sous Tcl8.1 (la correction est en rapport avec les 
changements ci-dessus). L'index retourn etait l'index en octets et non l'index 
en caractres.

4. Fichier tcLexPrivate.h renomm tcLexInt.h pour plus de cohrence avec Tcl. 
5. Ajout de l'option -args pour permettre le passage d'arguments 
supplmentaires, en utilisant la mme syntaxe que proc. Par exemple :

	lexer foo -args {a b {c 3}} ...
	foo eval $string 1 2; # a=1, b=2, c=3 par dfaut

6. Ajout de l'option -lines pour le traitement sensible aux lignes. Ceci change 
le comportement de "^$" et "." dans les regexps, et procure une faon portable
d'utiliser des regexps sensibles aux lignes (Tcl8.0 ne les supporte pas, et 
Tcl8.1 ncessite une syntaxe particulire). L'implmentation a t rendue 
possible par l'inclusion du code de regexp.

7. Ajout d'une structure TcLex_Buffer permettant des amliorations fututes : 
diffrents types d'entres (chane, variable, fichier, "channel") ainsi que des 
tampons d'entre multiples.

8. Rorganisation du code pour faciliter les amliorations futures. 

9. La valeur de retour de "lexer" est maintenant une chane vide, comme avec 
proc (contrairement  ce que j'ai crit prcdemment).

10. Bug corrig d  des dsallocations de mmoires excessives, merci  Claude 
BARRAS <barras@etca.fr>.

11. Ajout des sous-commandes "input" et "unput", suivant les suggestions de Neil 
Walker <neil.walker@mrc-bsu.cam.ac.uk>. Elles sont similaires  celles de flex, 
input() et unput(), sauf que unput ne peut pas rinjecter des caractres 
arbitraires dans la chane d'entre (c'est un choix de conception, pas une 
limite technique).


-------- 19/11/1998 tcLex version 1.1a2 --------

1. Ajout de l'option -nocase pour l'insensibilit  la casse. Sous Tcl8.0, cela 
a ncessit une incursion plus profonde dans le code de regexp.

2. Ajout de l'option -longest pour choisir la plus longue identification 
(longest prefered matching) (comme flex) plutt que la premire identification 
(par dfaut).

3. Retravaill le code de rejet de rgle afin qu'il marche correctement et 
efficacement avec -longest. Cela l'a aussi rendu plus sr.


-------- 25/11/1998 tcLex version 1.1a3 --------

1. Bug majeur corrig dans la modification du moteur regexp de Tcl8.0, causant 
l'chec de certaines regexps (particulirement celles avec des sous-expressions 
marques par ?). Par exemple, l'expression "a?b" reconnaissait la chane "b", 
mais pas la chane "ab".

2. Ajout de sous-commandes "create" et "current"  la commande lexer. La  
premire est optionnelle et sert lors de la cration des lexeurs :

	lexer ?create? <name> ?args ... args?

La seconde peut tre utilise pendant un traitement pour rcuprer le nom du 
lexeur active courant, par exemple :

	[lexer current] index

Cela vite d'utiliser le nom du lexeur partout, et est utile quand les lexeurs 
sont renomms, aliass ou imports. Suggestion faite par Leo Schubert 
<leo@bj-ig.de>. Ces nouvelles sous-commandes introduisent une incompatibilit 
potentielle : les lexeurs ne peuvent plus tre nomms "create" ou "current" 
(mais a ne devrait pas tre un problme).


-------- 18/12/1998 tcLex version 1.1b1 --------

1. TcLex est maintenant conu pour tre li  Tcl8.0.4 ou Tcl8.1b1. Quelques 
changements ont t apports aux fichiers sources pour prendre en compte de 
nouvelles directives d'importation quand on compile des DLLs Windows 
(introduites avec Tcl8.0.3).

2. Lgre modification du makefile.vc de Windows pour compiler les fichiers 
objets dans des rpertoires distincts en fonction de certains paramtres (debug, 
version de Tcl).

3. Le fichier RE81.c est maintenant bas sur le source de regexp de Tcl8.1b1.

4. Rcriture complte de la documentation. Elle inclut maintenant une 
comparaison avec flex ainsi qu'une page de manuel classique. Elle utilise HTML + 
CSS afin que les fureteurs rcents puissent afficher une prsentation amliore 
tout en permettant aux fureteurs textuels d'afficher du texte formatt 
correctement.

5. Ajout de plusieurs exemples, certains de Neil Walker (thanks, Neil!),  
certains de moi (Frdric BONNET).


-------- 11/01/1999 tcLex version 1.1b2 --------

1. Ajout du point d'entre SafeTcl (Tclex_SafeInit).

2. Bug corrig qui semblait arriver uniquement sur certains systmes Unix (SGI 
et Solaris) mais affectait de mme potentiellement d'autres systmes. Certains 
lexeurs taient incorrectement signals comme inactifs mme quand retourns par 
[lexer current]. La source de ce bug tait l'absence d'une borne infrieure dans 
le dsallateur d'tat de lexeur (StateDelete) qui donnait aux tats suivant un 
index ngatif, causant l'erreur "inactive lexer". Bug rapport par Claude BARRAS 
et Neil Walker.

3. Bug corrig dans le moteur regexp corrig de Tcl8.0, qui faisait que les 
retours chariot taient traits comme des caractres quelconques mme en mode 
sensible aux lignes lorsqu'ils taient utiliss avec * ou +. Bug rapport par 
Neil Walker.

4. Gestion de ^$ amliore en mode sensible aux lignes sous Tcl8.0 afin qu'ils 
se comportent de la mme faon que sous Tcl8.1.

5. Bug corrig dans la gestion des chanes vides: certaines actions taient 
appeles deux fois, une pour la chane identifie et une pour une chane vide  
la fin de la prcdente.

6. Avertissements corrigs sous Unix, prcdemment rapports par Claude BARRAS 
mais oublis dans la version prcdente: la structure regexec_state dans RE80.c 
(moteur regexp corrig de Tcl8.0) tait utilise avant d'tre dfinie. Ces 
avertissements taient silencieux sous Windows (niveau d'avertissement trop 
bas?).


-------- 04/04/1999 tcLex version 1.1 finale --------

1. Coquille mineure corrige dans RE80.c : dans la fonction findChar, le 
paramtre c tait dclar comme int* au lieu de int. Cela n'avait pas 
d'influence (il tait transform en char de toute faon) mais gnrait des 
avertissements avec certains compilateurs (pas le mien malheureusement )-:. 
Rapport par Volker Hetzer <hetzer.abg@sni.de>.

2. TcLex est maintenant conu pour tre li  Tcl8.0.4 (ou patchlevel suprieur) 
ou Tcl8.1b2. Sur ce dernier, tcLex est configur par dfaut pour utiliser les 
nouvelles fonctions de stubs. Seules quelques modifications mineures du code ont 
t ncessaires. Tcl8.1b1 n'est plus du tout support.

3. Macros de compatibilit supprimes dans tcLexInt.h maintenant que les 
anciennes fonctions sont de retour dans Tcl8.1b2.

4. Bug majeur corrig apparaissant avec les lexeurs prfrant la plus longue 
chane reconnue ("longest-prefered matching lexers"). Quand plusieurs rgles 
reconnaissaient le mme nombre de caractres, la dernire rgle dfinie tait 
choisie au lieu de la premire,  cause d'un mauvais oprateur de comparaison 
('<' tait utilis  la place de '<=' dans RuleTry). Cela cassait l'exemple 
"pascal".

5. Code reformatt afin qu'il utilise des indentations de 4 espaces au lieu de 
2, pour mieux se conformer aux conventions Tcl de codage en C. C'est assez 
cosmtique mais cela rend le code un peu plus lisible.


-------- 30/04/1999 tcLex version 1.1.1 --------

1. TcLex est maintenant conu pour tre li  Tcl8.0.4 (ou patchlevel suprieur) 
ou Tcl8.1b3. Tcl8.1b2 n'est plus du tout support.

2. Suppression de la redfinition de TclUtfToUniCharDString et 
TclUniCharToUtfDString dont on avait besoin avec la version stubs de Tcl8.1b2, 
maintenant que Tcl_UtfToUniCharDString et Tcl_UniCharToUtfDString sont 
disponibles publiquement dans Tcl8.1b3.

3. Suppression de la bidouille rendue ncessaire par la non-exportation de 
TclRegCompObj par la version stub de Tcl8.1b2. Tcl8.1b3 exporte maintenant la 
procdure publique Tcl_GetRegExpFromObj qui fait la mme chose.

4. Incohrence de regexp corrige entre Tcl8.0 et Tcl8.1 avec le traitement 
sensible aux lignes. Les regexps avec des champs ngatifs ("negated ranges", 
dsol pour la traduction :) (comme [^a]) pouvaient recouvrir plusieurs lignes 
sous Tcl8.0 mais pas sous Tcl8.1 (le comportement correct).

5. Nettoy le code regexp modifi et propos sous forme de correctif pour le 
noyau Tcl.

6. Rcrit le code d'analyse d'arguments utilisant Tcl_GetIndexFromObj afin 
qu'il utilise des constantes symboliques plutt que des index entiers.

7. Ajout de liens vers la page tcLex de Neil Walker's (thanks Neil!)  partir de 
la doc.


-------- 25/04/1999 tcLex version 1.1.2 --------

1. Bug corrig dans le traitement sensible aux lignes sous Tcl8.0. Ce bug a t 
introduit par la modification prcdente no. 4, et se situait dans le code de 
regexp traitant des champs ngatifs dans certains cas.


-------- 24/06/1999 tcLex version 1.1.3 --------

1. Bug majeur corrig avec Tcl 8.1.1. Le nouveau mcanisme de cache de regexp 
introduit par Tcl 8.1.1 entrait en conflit avec la faon dont tcLex stockait les 
regexps compiles. Le code de gestion de regexps a t compltement retravaill. 
Bug rapport par by Claude BARRAS.

2. Ajout l'URL vers le regexp-HOWTO de chez Scriptics dans la doc 
(http://www.scriptics.com/support/howto/regexp81.html).


-------- 20/07/1999 tcLex version 1.1.4 --------

1. Bug majeur corrig avec Tcl 8.1. Les fonctions BufferNotStarving() et
BufferAtEnd() mlangeaient des index en caractres et en octets, ce qui
entrainait des dpassements de chane. Bug rapport par Neil Walker. Il est
tonnant que ce bug ne se soit pas dclar avant car les risques de dpassement
taient quasi systmatiques, or il ne plantait tcLex que dans des cas bien
prcis (difficiles  reproduire sous Windows).


-------- 03/09/1999 tcLex version 1.2a1 --------

1. Ajout le support pour Tcl8.2 et suprieur. Maintenant que le moteur regexp 
de Tcl8.2 procure les fonctions dont tcLex a besoin (cad. dtection de 
dpassement de chane et recherche limite au dbut chane), tcLex ne ncessite 
plus de modification de ce moteur. Ceci rend le code plus simple car il utilise 
maintenalnt les fonctions standard de la bibliothque Tcl. Ajout le fichier 
RE82.c

2. La chane d'entre est maintenant stocke sous forme de Tcl_Obj et non plus 
de Tcl_DString. Retravaill le code correspondant en consquence (RuleTry(), 
RuleExec(), RuleGetRange()). Sous Tcl8.0, on utilise la chane 8bits de l'objet. 
Sous Tcl8.2, la chane Unicode (pas UTF-8) (en fait, on passe la chane aux 
procdures de bibliothque Tcl, qui  leur tour utilisent la reprsentation 
Unicode de l'objet). Sous Tcl8.1, ajout d'un type d'objet Unicode et des 
procdures relatives (par exemple Tcl_NewUnicodeObj(), Tcl_GetUnicode() et 
Tcl_GetCharLength()) afin d'tre compatible source avec Tcl8.2. Ces nouveaux 
objets Unicode utilisent des Tcl_DStrings Unicode comme reprsentation interne.

3. Modifi le comportement de "lexer begin initial" afin qu'il vide la pile de 
conditions au lieu d'empiler la condition "initial"  son sommet. Cela rend 
l'criture de certains lexeurs plus facile (par exemple, les exemples flex de 
Neil Walker).