Dojo suite

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Dojo suite

Serge Stinckwich-4
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)]   \  /
                                                             ##



_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: Dojo suite

Serge Stinckwich-4

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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: Dojo suite

Gilles Jobin
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 <[hidden email]> 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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: Dojo suite

Gilles Jobin
Oups...Jjai enfoncé le bouton send un peu trop rapidement, donc :

On 7/27/06, Gilles Jobin <[hidden email]> 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 <[hidden email]> 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 :
> <a href="http://www.xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement/" title="http://www.xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> 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
<a href="http://purl.org/net/SergeStinckwich" title="http://purl.org/net/SergeStinckwich" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://purl.org/net/SergeStinckwich                       oooooo
Smalltalkers do: [:it | All with: Class, (And love: it)]   \  /
                                                             ##



_______________________________________________
Squeak-fr mailing list
[hidden email]
<a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr" title="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr



_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: Dojo suite

stéphane ducasse-2
In reply to this post by Serge Stinckwich-4
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
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
>

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: Dojo suite

Serge Stinckwich-4

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 mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr