Archives de Catégorie: Code

J’ai travaille ce soir une petite heure sur la GUI. Je suis passe de SDL a GTK pour plus de commodite. J’ai aussi beaucoup rajoute de commentaires pour la lisibilite du code.

 

Publicités

Ce soir j’ai commence a implementer les fonctions de lecture de fichiers, que j’utilise aussi dorenavant pour le fichier de configuration global de la simulation aussi. Du coup c’est tout de suite beaucoup plus clair ! Avant de finir les fonctions de lecture je dois finaliser la structure des cognits deuxieme version, meme si ca sera du coup beaucoup plus facile a modifier les fichiers de config si la structure doit evoluer plus tard. Mais avant ca je vais retoucher l’interface graphique, toujours en SDL, pour pouvoir suivre plus facilement ce qu’il se passe durant la simulation…

J’ai corrige le probleme d’hier, et ca a l’air de faire des merveilles. Mais il reste une petite cochonnerie a nettoyer, et refaire des tests. Ca va prendre un peu de temps car sans le processus extrinseque d’evolution le mebius a besoin de beaucoup plus de temps pour converger vers une solution. Mais quand ca marchera et que chacun des deux processus pris independamment convergera, les deux ensembles devraient faire des etincelles ! Pour l’instant, le mebius continue a cogiter et moi je me couche.

Ce soir j’ai localise et compris ce qui clochait dans la fonction d’apprentissage. Maintenant il va falloir trouver comment reparer. Ca sera pour demain soir…

Ce soir j’ai continue a verifier en detail le fonctionnement de la fonction d’apprentissage. Mais ca va me prendre encore quelques jours…

Ca y est j’ai debusque l’anerie aussi monumentale que stupide…

Euh je sais meme plus ou j’en etais du coup ! Vite, vite, demain soir et apres demain soir je suis encore occupe a faire la fete. Ca n’avance pas en ce moment ! Pour ce qu’il reste de ce soir, c’est donc 100% Mebius project !

 

 

J’ai envie de jeter ma becane par la fenetre !! J’ai perdu une journee a m’arracher les cheveux sur le bug d’hier. Totalement inexplicable, sur une portion de code qui n’a pas bouge. Et finalement je viens de trouver. Quand je compile avec l’option -O0 ca se met a faire n’importe quoi. J’utilisais cette option d’optimisation suite a l’utilisation de Valgrind. Il y a en effet des problemes de decalage de numero de ligne pendant le debuggage en fonction du niveau d’optimisation. Ca m’a bien permis de nettoyer le code, mais une fois que j’ai arrete d’utiliser Valgrind j’ai laisse l’option dans mon Makefile, d’autant plus que -O0 est le niveau d’optimisation par defaut. Et Boum ! … Bon j’ai pas le temps de chercher si c’est un bug documente du compilateur gcc, mais en tout cas dorenavant je marcherai sur des oeufs quand je tripoterai les options de compilation.

(Edit : erreur de ma part, le bug ne venait pas de l’option de compilation)

Ce soir j’ai continue un petit peu a nettoyer le code.

Valgrind

J’ai rapidement suspecte des problemes de pointeurs dans les choux pour expliquer les bizarreries d’hier. Cette fois pour faire le menage, plutot que d’y aller comme un barbare a la main, j’ai cherche s’il y avait un de ces merveilleux outils de debuggage comme j’en utilisais au boulot autrefois, en OpenSource. Et merveille, oui ca existe. Ca s’appelle Valgrind, le site web est la : http://valgrind.org/ Je l’ai tout de suite installe et lance, et ca n’a pas mis longtemps a me debusquer des cochonneries. Allez hop, on se retrousse les manches et on repart pour une seance grand menage !

Ce soir j’ai trouve et corrige un bug dans la fonction d’apprentissage qui expliquait en partie les problemes rencontres precedemment. Mais aussi la duree de vie des Mebius etait trop courte, je pense qu’ils manquent de temps pour apprendre. Pendant que je dors je laisse tourner un run et on verra demain matin ce que ca a donne.
Je termine aussi en parallele l’arbre genealogique.