Bugs connus


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
Le graphique
Périphériques
Helps et démos

















































L’interpréteur

Parenthésages
Crochets et accolades
Détection des erreurs
Fuite de mémoire
Globaux
Divers

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é).