Bonjour à tous, j'ai un problème avec le code que l'on a construit à plusieurs pendant le dernier Dojo Smallalk. A voir ici : http://www.xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement/ Lundi24Juillet2006 Quand je lance les trois tests, ils ne passent pas. Puis je lance : JeuDeLaVie newWithGrilleVide, puis j'inspecte la variable d'instance grille et elle ne contient pas le bon tableau qui est sensé représenter un tableau vide (le tableau : #(#($. $. $.) #($. $. $.)#($. $. $.))). Le tableau est modifié dans la méthode : naissanceEnLigne: l colonne: c
J'ai l'impression qu'il y a un problème de partage de littéraux ... J'ai essayé de faire des copies des tableaux pour éviter ce genre de problème, mais cela ne marche pas visiblement ... any ideas ?
Cordialement, -- oooo Dr. Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Le 27 juil. 06 à 11:34, Serge Stinckwich a écrit :
Bonjour à tous, j'ai un problème avec le code que l'on a construit à plusieurs pendant le dernier Dojo Smallalk. A voir ici : http://www.xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement/ Lundi24Juillet2006 Quand je lance les trois tests, ils ne passent pas. Puis je lance : JeuDeLaVie newWithGrilleVide, puis j'inspecte la variable d'instance grille et elle ne contient pas le bon tableau qui est sensé représenter un tableau vide (le tableau : #(#($. $. $.) #($. $. $.)#($. $. $.))). Le tableau est modifié dans la méthode : naissanceEnLigne: l colonne: c
J'ai l'impression qu'il y a un problème de partage de littéraux ... J'ai essayé de faire des copies des tableaux pour éviter ce genre de problème, mais cela ne marche pas visiblement ... any ideas ?
Dans VW, c'est un peu plus cohérent car si j'essaie de modifier un litteral array, il me dit que c'est immutable. -- oooo Dr. Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Bonjour Serge, Je suis peut-être complètement dans le champs, mais losrsque je fais JeuDeLaVie newWithGrilleVide, le compilateur se plaint un peu. J'ai donc modificer newWithGrilleVide par :
On 7/27/06, Serge Stinckwich Serge.Stinckwich@info.unicaen.fr wrote:
Le 27 juil. 06 à 11:34, Serge Stinckwich a écrit :
Bonjour à tous, j'ai un problème avec le code que l'on a construit à plusieurs pendant le dernier Dojo Smallalk. A voir ici : http://www.xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement/ Lundi24Juillet2006 Quand je lance les trois tests, ils ne passent pas. Puis je lance : JeuDeLaVie newWithGrilleVide, puis j'inspecte la variable d'instance grille et elle ne contient pas le bon tableau qui est sensé représenter un tableau vide (le tableau : #(#($. $. $.) #($. $. $.)#($. $. $.))). Le tableau est modifié dans la méthode : naissanceEnLigne: l colonne: c
J'ai l'impression qu'il y a un problème de partage de littéraux ... J'ai essayé de faire des copies des tableaux pour éviter ce genre de problème, mais cela ne marche pas visiblement ... any ideas ?
Dans VW, c'est un peu plus cohérent car si j'essaie de modifier un litteral array, il me dit que c'est immutable. -- oooo Dr. Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Oups...Jjai enfoncé le bouton send un peu trop rapidement, donc :
On 7/27/06, Gilles Jobin gilles.jobin@gmail.com wrote:
Bonjour Serge, Je suis peut-être complètement dans le champs, mais losrsque je fais JeuDeLaVie newWithGrilleVide, le compilateur se plaint un peu. J'ai donc modifié newWithGrilleVide par
newWithGrilleVide " |nouveauJeu| nouveauJeu := super new." self grille: #(#($. $. $.) #($. $. $.)#($. $. $.)). "^ nouveauJeu"
En lançant JeuDeLaVie new newWithGrilleVIde, on trouve bien la variable grille espérée.
Je crois, et c'est p.e. là que je suis dans le champs, que nouveauJeu := super new crée une instance de la classe OBJET et, donc, ne peut connaître la variable grille. Me tromperais-je? Gilles
On 7/27/06, Serge Stinckwich Serge.Stinckwich@info.unicaen.fr wrote:
Le 27 juil. 06 à 11:34, Serge Stinckwich a écrit :
Bonjour à tous, j'ai un problème avec le code que l'on a construit à plusieurs pendant le dernier Dojo Smallalk. A voir ici : http://www.xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement/ Lundi24Juillet2006 Quand je lance les trois tests, ils ne passent pas. Puis je lance : JeuDeLaVie newWithGrilleVide, puis j'inspecte la variable d'instance grille et elle ne contient pas le bon tableau qui est sensé représenter un tableau vide (le tableau : #(#($. $. $.) #($. $. $.)#($. $. $.))). Le tableau est modifié dans la méthode : naissanceEnLigne: l colonne: c
J'ai l'impression qu'il y a un problème de partage de littéraux ... J'ai essayé de faire des copies des tableaux pour éviter ce genre de problème, mais cela ne marche pas visiblement ... any ideas ?
Dans VW, c'est un peu plus cohérent car si j'essaie de modifier un litteral array, il me dit que c'est immutable. -- oooo Dr. Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
je n'ai pas regarde le code mais il faut savoir que les literaux sont parse a scan-time et stocker dans les objets qui representent les methodes (dans le literalFrame des CompiledMethods) donc en general il ne faut pas modifier un element d'un tableau qui ne serait reference que par une variable locale par exemple.
On 27 juil. 06, at 12:01, Serge Stinckwich wrote:
Le 27 juil. 06 à 11:34, Serge Stinckwich a écrit :
Bonjour à tous, j'ai un problème avec le code que l'on a construit à plusieurs pendant le dernier Dojo Smallalk. A voir ici : http://www.xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement/ Lundi24Juillet2006 Quand je lance les trois tests, ils ne passent pas. Puis je lance : JeuDeLaVie newWithGrilleVide, puis j'inspecte la variable d'instance grille et elle ne contient pas le bon tableau qui est sensé représenter un tableau vide (le tableau : #(#($. $. $.) #($. $. $.)#($. $. $.))). Le tableau est modifié dans la méthode : naissanceEnLigne: l colonne: c
J'ai l'impression qu'il y a un problème de partage de littéraux ... J'ai essayé de faire des copies des tableaux pour éviter ce genre de problème, mais cela ne marche pas visiblement ... any ideas ?
Dans VW, c'est un peu plus cohérent car si j'essaie de modifier un litteral array, il me dit que c'est immutable. -- oooo Dr. Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Le 28 juil. 06 à 10:25, stéphane ducasse a écrit :
je n'ai pas regarde le code mais il faut savoir que les literaux sont parse a scan-time et stocker dans les objets qui representent les methodes (dans le literalFrame des CompiledMethods) donc en general il ne faut pas modifier un element d'un tableau qui ne serait reference que par une variable locale par exemple.
Oui, j'ai compris le problème. Il me semble déjà être tombé dans ce genre de piège ... C'est expliqué ici : http://wiki.cs.uiuc.edu/cs497rej/What+is+the +diff.+between+Array+with:+1+with:+2+and+a+literal+array J'ai rajouté une note dans la FAQ sur le Wiki : http://community.ofset.org/wiki/FAQ_d%C3%A9veloppeur_Squeak
C'est un peu tordu d'ailleurs. Je trouve que cela devrait être empêché d'une manière ou d'une autre. VW génère une erreur par exemple.
-- oooo Dr. Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
squeak-fr@lists.squeakfoundation.org