Anyflo n´est pas un product commercial, mais
mon outil de création. Il est modifié très souvent sans garantie de
compatibilité avec les versions précédentes.
Il existe de nombreux bugs no
encore corrigés ou apparus à la suite de la correction d’autres bugs.
Toute combinaison d´un nombre quelconque de commandes étant légale, leur nombre est
potentiellement infini, toutes n´ont donc pas pu être testées, certaines restent à implémenter,
d´autres à débuger...
L’interpréteur
Parenthésages
Certaines expressions sont interprétées de façon erronées, il suffit en général de les sur parenthéser .
Ainsi:
if(ax!=Ax[2] || ay!=Ay[2])
Doit être remplacé par:
if((ax!=Ax[2]) || (ay!=Ay[2]))
if(w[3]>0)
Doit être remplacé par:
if((w[3]>0))
if(n>4 && w[3]=="=")
Doit être remplacé par:
if(n>4 && (w[3])=="=")
De même:
if(++x<5)
Doit s´écrire:
if((++x)<5)
Crochets et accolades
Certaines écritures sont mal interpretées:
v[0] += 1; doit être remplacée par:
v[0] = v[0] + 1;
De même v{0} += 1,2,3; doit être remplacée par:
v{0} = v{0} + (1,2,3);
x[expr]; doit être remplacée par x[(expr)];
Example: [1+y[2]]; Must be replaced by; par x[(1+y[2])];
nn=Nom{i},".wav"; Must be replaced by nn=(Nom{i}),".wav";
De même x[0,y[2]]; doit être remplacée par x[0,(y[2])];
De même nn=Nom{i},".wav"; doit être remplacé par nn=(Nom{i}),".wav";
De même:
a[b[i]];
Doit s´écrire:
a[(b[i])];
a[b[i]];
Doit s´écrire:
a[(b[i])];
Détection des erreurs
Le nom de la fonction où s´est produite l´erreur est exacte, mais le numéro de la ligne peut
être erronée.
Si une erreur est mal détectée lors d´un read func, un
edit func donne la liste des noms des fonctions bien compilées, l´erreur
s´est donc probablement produite dans la suivante de la dernière listée.
Fuite de mémoire
Il reste encore certains mallocs non libérés pouvant donner lieu à une saturation
de la mémoire virtuelle, employer interaction time(tmax) pour relancer
le programme après tmax images (par exemple tmax=90000 définit un tempo
d´environ 1 h).
Globaux
Les variables de type global ne sont pas encore prises en compte.
Divers
ini func;
attach_view();
OK, mais:
ini func;attach_view();
plante...
for(i=1,5);
product une erreur, mais pas:
for(i=1,5)NIL;
Le graphique
Le traitement des images peut dysfonctionner en mode interpréteur, préférer le mode
interaction.
Périphériques
Le type UDP peut faire planter le programme.
Helps et démos
Je me suis efforcé de maintenir à jour les "helps", les "demos*.func",
les "exemple_*.func", les "test*.func", etc; mais de nombreuses erreurs demeurent encore dans ces fichiers.
Certaines démos graphiques (comme demo1_displ.func ne peuvent
tourner que sur un écran de dimensions (1024,768) au moins (sur un écran plus petit les menus ne
sont pas affichés dans leur intégralité).